sayren Docs
매출 리포트

매출 리포트 조회

기간·PG·결제수단별 결제·환불·순매출을 집계한다. 스코프 `settlement:r`. - 날짜는 Asia/Seoul 기준이며 `from`·`to` 모두 포함한다. 최대 92일. - 결제는 PG 승인 시각, 환불은 PG 취소 **완료** 시각 기준으로 집계한다. 실패한 환불은 제외된다. - 승인 직후 주문 생성에 실패해 자동 취소된 결제(재고 소진 등)와 이중 결제 차단으로 취소된 결제는 결제와 환불 양쪽에 잡히므로 순매출에는 영향이 없다. - 테스트 결제(샌드박스 결제)의 승인·환불은 기본으로 집계에서 빠진다. `includeTest=true`면 포함한다. - 결제수단(`method` 필터·집계)은 **실제 결제수단**이다. PG가 보고한 수단을 쓰고, 모르면 주문서에서 요청한 수단으로 대신한다. 결제창에서 결제수단이 바뀔 수 있다(카드 결제창의 간편결제 탭 등). - `pgFeeAmount`(PG 수수료)는 참고용 필드다. PG에서 확정 값을 받지 못하면 null이다. - 활동이 없는 날짜·PG·결제수단은 `rows`에서 생략된다.

GET
/v1/sales-report

기간·PG·결제수단별 결제·환불·순매출을 집계한다. 스코프 settlement:r.

  • 날짜는 Asia/Seoul 기준이며 from·to 모두 포함한다. 최대 92일.
  • 결제는 PG 승인 시각, 환불은 PG 취소 완료 시각 기준으로 집계한다. 실패한 환불은 제외된다.
  • 승인 직후 주문 생성에 실패해 자동 취소된 결제(재고 소진 등)와 이중 결제 차단으로 취소된 결제는 결제와 환불 양쪽에 잡히므로 순매출에는 영향이 없다.
  • 테스트 결제(샌드박스 결제)의 승인·환불은 기본으로 집계에서 빠진다. includeTest=true면 포함한다.
  • 결제수단(method 필터·집계)은 실제 결제수단이다. PG가 보고한 수단을 쓰고, 모르면 주문서에서 요청한 수단으로 대신한다. 결제창에서 결제수단이 바뀔 수 있다(카드 결제창의 간편결제 탭 등).
  • pgFeeAmount(PG 수수료)는 참고용 필드다. PG에서 확정 값을 받지 못하면 null이다.
  • 활동이 없는 날짜·PG·결제수단은 rows에서 생략된다.
AuthorizationBearer <token>

userToken(계정 스코프) 또는 storeToken(스토어 스코프)

In: header

Query Parameters

from*string

시작일 (YYYY-MM-DD, Asia/Seoul 기준, 포함)

Match^\d{4}-\d{2}-\d{2}$
to*string

종료일 (YYYY-MM-DD, 포함). from부터 최대 92일

Match^\d{4}-\d{2}-\d{2}$
provider?string

PG 필터

Value in

  • "tosspayments"
  • "portone"
method?string

결제수단 필터 — 실제 결제수단(PG가 보고한 수단, 모르면 요청 수단) 기준. 결제창에서 결제수단이 바뀔 수 있다(카드 결제창의 간편결제 탭 등). 관리 주문 API의 method는 호환용이며 간편결제를 CARD로 표시한다. 실제 수단은 approvedMethod를 본다

Value in

  • "CARD"
  • "BANK_TRANSFER"
  • "VIRTUAL_ACCOUNT"
  • "MOBILE"
  • "EASY_PAY"
groupBy?string

행 집계 기준. 기본 DAY

Value in

  • "DAY"
  • "PROVIDER"
  • "METHOD"
  • "PROVIDER_METHOD"
includeTest?string

테스트 결제(샌드박스 결제) 포함 여부. 기본 false — 테스트 결제의 승인·환불은 집계에서 빠진다

Value in

  • "true"
  • "false"

Response Body

application/json

curl -X GET "https://example.com/v1/sales-report?from=string&to=string"
{  "meta": {    "status": 200,    "code": "OK",    "message": "OK",    "isSuccess": true  },  "data": {    "from": "string",    "to": "string",    "timezone": "Asia/Seoul",    "currency": "KRW",    "groupBy": "DAY",    "provider": "tosspayments",    "method": "CARD",    "includeTest": true,    "summary": {      "paymentCount": 0,      "paymentAmount": 0,      "refundCount": 0,      "refundAmount": 0,      "netAmount": 0,      "pgFeeAmount": 0    },    "rows": [      {        "paymentCount": 0,        "paymentAmount": 0,        "refundCount": 0,        "refundAmount": 0,        "netAmount": 0,        "pgFeeAmount": 0,        "date": "string",        "provider": "tosspayments",        "method": "CARD"      }    ]  },  "error": null}