API를 사용하기 전에 버전 정책을 확인하세요. API 응답이나 웹훅 이벤트 본문에 새로운 필드가 추가와 같이 하위 호환을 지원하는 변경 사항은 버전 릴리즈 없이 기존 API에 반영되니 유의하세요. 자세한 내용은 요청·응답 본문을 참고하세요.
결제에 관한 모든 API와 결제 API의 응답으로 돌아오는 Payment 객체, Cancel 객체를 살펴봅니다.
결제 정보를 담고 있는 객체입니다. 결제 한 건의 결제 상태, 결제 취소 기록, 매출 전표, 현금영수증 정보 등을 자세히 알 수 있습니다.
결제가 승인됐을 때 응답은 Payment 객체로 항상 동일합니다. 객체의 구성은 결제수단(카드, 가상계좌, 간편결제 등)에 따라 조금씩 달라집니다.
- version string
Payment 객체의 응답 버전입니다. 버전 2022-06-08부터 날짜 기반 버저닝을 사용합니다.
- paymentKey string
결제의 키 값입니다. 최대 길이는 200자입니다. 결제를 식별하는 역할로, 중복되지 않는 고유한 값입니다. 결제 데이터 관리를 위해 반드시 저장해야 합니다. 결제 상태가 변해도 값이 유지됩니다. 결제 승인, 결제 조회, 결제 취소 API에 사용합니다.
- type string
결제 타입 정보입니다.
NORMAL
(일반결제),BILLING
(자동결제),BRANDPAY
(브랜드페이) 중 하나입니다. - orderId string
주문번호입니다. 최소 길이는 6자, 최대 길이는 64자입니다. 주문한 결제를 식별하는 역할로, 결제를 요청할 때 가맹점에서 만들어서 사용한 값입니다. 결제 데이터 관리를 위해 반드시 저장해야 합니다. 중복되지 않는 고유한 값을 발급해야 합니다. 결제 상태가 변해도 값이 유지됩니다.
- orderName string
구매상품입니다. 예를 들면
생수 외 1건
같은 형식입니다. 최대 길이는 100자입니다. - mId string
상점아이디(MID)입니다. 토스페이먼츠에서 발급합니다. 최대 길이는 14자입니다.
- currency string
결제할 때 사용한 통화입니다.
- method string
결제수단입니다.
카드
,가상계좌
,간편결제
,휴대폰
,계좌이체
,문화상품권
,도서문화상품권
,게임문화상품권
중 하나입니다. - totalAmount number
총 결제 금액입니다. 결제가 취소되는 등 결제 상태가 변해도 최초에 결제된 결제 금액으로 유지됩니다.
- balanceAmount number
취소할 수 있는 금액(잔고)입니다. 이 값은 결제 취소나 부분 취소가 되고 나서 남은 값입니다. 결제 상태 변화에 따라
vat
,suppliedAmount
,taxFreeAmount
,taxExemptionAmount
와 함께 값이 변합니다. - status string
결제 처리 상태입니다. 아래와 같은 상태 값을 가질 수 있습니다. 상태 변화 흐름이 궁금하다면 흐름도를 살펴보세요.
-
READY
: 결제를 생성하면 가지게 되는 초기 상태입니다. 인증 전까지는READY
상태를 유지합니다.-
IN_PROGRESS
: 결제수단 정보와 해당 결제수단의 소유자가 맞는지 인증을 마친 상태입니다. 결제 승인 API를 호출하면 결제가 완료됩니다.-
WAITING_FOR_DEPOSIT
: 가상계좌 결제 흐름에만 있는 상태로, 결제 고객이 발급된 가상계좌에 입금하는 것을 기다리고 있는 상태입니다.-
DONE
: 인증된 결제수단 정보, 고객 정보로 요청한 결제가 승인된 상태입니다.-
CANCELED
: 승인된 결제가 취소된 상태입니다.-
PARTIAL_CANCELED
: 승인된 결제가 부분 취소된 상태입니다.-
ABORTED
: 결제 승인이 실패한 상태입니다.-
EXPIRED
: 결제 유효 시간 30분이 지나 거래가 취소된 상태입니다.IN_PROGRESS
상태에서 결제 승인 API를 호출하지 않으면EXPIRED
가 됩니다. - requestedAt string
결제가 일어난 날짜와 시간 정보입니다.
yyyy-MM-dd'T'HH:mm:ss±hh:mm
ISO 8601 형식입니다.(e.g.
2022-01-01T00:00:00+09:00
) - approvedAt string
결제 승인이 일어난 날짜와 시간 정보입니다.
yyyy-MM-dd'T'HH:mm:ss±hh:mm
ISO 8601 형식입니다.(e.g.
2022-01-01T00:00:00+09:00
) - useEscrow boolean
에스크로 사용 여부입니다.
- lastTransactionKey nullable · string
마지막 거래의 키 값입니다. 한 결제 건의 승인 거래와 취소 거래를 구분하는 데 사용됩니다. 예를 들어 결제 승인 후 부분 취소를 두 번 했다면 마지막 부분 취소 거래의 키 값이 할당됩니다. 최대 길이는 64자입니다.
- transactionKey nullable · stringDEPRECATED
마지막 거래의 키 값입니다. 한 결제 건의 승인 거래와 취소 거래를 구분하는 데 사용됩니다. 예를 들어 결제 승인 후 부분 취소를 두 번 했다면 마지막 부분 취소 거래의 키 값이 할당됩니다. 최대 길이는 64자입니다.
- suppliedAmount number
공급가액입니다. 결제 취소 및 부분 취소가 되면 공급가액도 일부 취소되어 값이 바뀝니다.
- vat number
부가세입니다. 결제 취소 및 부분 취소가 되면 부가세도 일부 취소되어 값이 바뀝니다. (결제 금액
amount
- 면세 금액taxFreeAmount
) / 11 후 소수점 첫째 자리에서 반올림해서 계산합니다.(e.g. 결제 금액이 10,000원이고, 면세 금액이 3,000원이라면 부가세는
(10000-3000)/11 = 636.3636..
을 반올림한 값 636원입니다.)더 자세한 내용은 세금 처리하기에서 살펴보세요.
- cultureExpense boolean
문화비(도서, 공연 티켓, 박물관·미술관 입장권 등) 지출 여부입니다. 계좌이체, 가상계좌 결제에만 적용됩니다.
* 카드 결제는 항상
false
로 돌아옵니다. 카드 결제 문화비는 카드사에 문화비 소득공제 전용 가맹점번호로 등록하면 자동으로 처리됩니다. - taxFreeAmount number
결제 금액 중 면세 금액입니다. 결제 취소 및 부분 취소가 되면 면세 금액도 일부 취소되어 값이 바뀝니다.
* 일반 상점일 때는 면세 금액으로
0
이 돌아옵니다. 면세 상점, 복합 과세 상점일 때만 면세 금액이 돌아옵니다. 더 자세한 내용은 세금 처리하기에서 살펴보세요. - taxExemptionAmount integer
과세를 제외한 결제 금액(컵 보증금 등)입니다. 이 값은 결제 취소 및 부분 취소가 되면 과세 제외 금액도 일부 취소되어 값이 바뀝니다.
* 과세 제외 금액이 있는 카드 결제는 부분 취소가 안 됩니다.
- cancels nullable · array
결제 취소 이력입니다. Cancel 객체가 배열로 들어옵니다.
- isPartialCancelable boolean
부분 취소 가능 여부입니다. 이 값이
false
이면 전액 취소만 가능합니다. - card nullable · object
카드로 결제하면 제공되는 카드 관련 정보입니다.
- amount number
카드사에 결제 요청한 금액입니다. 즉시 할인 금액(
discount.amount
)이 포함됩니다.* 간편결제에 등록된 카드로 결제했다면 간편결제 응답 확인 가이드를 참고하세요.
- issuerCode string
- acquirerCode nullable · string
- number string
카드번호입니다. 번호의 일부는 마스킹 되어 있습니다. 최대 길이는 20자입니다.
- installmentPlanMonths integer
할부 개월 수입니다. 일시불이면
0
입니다. - approveNo string
카드사 승인 번호입니다. 최대 길이는 8자입니다.
- useCardPoint boolean
카드사 포인트 사용 여부입니다.
* 일반 카드사 포인트가 아닌, 특수한 포인트나 바우처를 사용하면 할부 개월 수가 변경되어 응답이 돌아오니 유의해주세요.
- cardType string
카드 종류입니다.
신용
,체크
,기프트
,미확인
중 하나입니다. 고객이 해외 카드로 결제했거나 간편결제의 결제 수단을 조합해서 결제했을 때미확인
으로 표시됩니다. - ownerType string
카드의 소유자 타입입니다.
개인
,법인
,미확인
중 하나입니다. 고객이 해외 카드로 결제했거나 간편결제의 결제 수단을 조합해서 결제했을 때미확인
으로 표시됩니다. - acquireStatus string
카드 결제의 매입 상태입니다. 아래와 같은 상태 값을 가질 수 있습니다.
-
READY
: 아직 매입 요청이 안 된 상태입니다.-
REQUESTED
: 매입이 요청된 상태입니다.-
COMPLETED
: 요청된 매입이 완료된 상태입니다.-
CANCEL_REQUESTED
: 매입 취소가 요청된 상태입니다.-
CANCELED
: 요청된 매입 취소가 완료된 상태입니다. - isInterestFree boolean
무이자 할부의 적용 여부입니다.
- interestPayer nullable · string
할부가 적용된 결제에서 할부 수수료를 부담하는 주체입니다.
BUYER
,CARD_COMPANY
,MERCHANT
중 하나입니다.-
BUYER
: 상품을 구매한 고객이 할부 수수료를 부담합니다. 일반적인 할부 결제입니다.-
CARD_COMPANY
: 카드사에서 할부 수수료를 부담합니다. 무이자 할부 결제입니다.-
MERCHANT
: 상점에서 할부 수수료를 부담합니다. 무이자 할부 결제입니다.
- amount number
- virtualAccount nullable · object
가상계좌로 결제하면 제공되는 가상계좌 관련 정보입니다.
- accountType string
가상계좌 타입을 나타냅니다.
일반
,고정
중 하나입니다. - accountNumber string
발급된 계좌번호입니다. 최대 길이는 20자입니다.
- bankCode string
- customerName string
가상계좌를 발급한 구매자명입니다. 최대 길이는 100자입니다.
- dueDate string
입금 기한입니다.
yyyy-MM-dd'T'HH:mm:ss
ISO 8601 형식을 사용합니다. - refundStatus string
환불 처리 상태입니다. 아래와 같은 상태 값을 가질 수 있습니다.
-
NONE
: 환불 요청이 없는 상태입니다.-
PENDING
: 환불을 처리 중인 상태입니다.-
FAILED
: 환불에 실패한 상태입니다.-
PARTIAL_FAILED
: 부분 환불에 실패한 상태입니다.-
COMPLETED
: 환불이 완료된 상태입니다. - expired boolean
가상계좌의 만료 여부입니다.
- settlementStatus string
정산 상태입니다. 정산이 아직 되지 않았다면
INCOMPLETED
, 정산이 완료됐다면COMPLETED
값이 들어옵니다. - refundReceiveAccount object
결제위젯 가상계좌 환불 정보 입력 기능으로 받은 고객의 환불 계좌 정보입니다. 은행 코드(
bankCode
), 계좌번호(accountNumber
), 예금주 정보(holderName
)가 담긴 객체입니다.* 구매자의 환불계좌 정보는 결제창을 띄운 시점부터 30분 동안만 조회할 수 있습니다. 이후에는 값이 내려가지 않습니다. 더 자세한 내용은 결제 취소 가이드를 참고하세요.
- accountType string
- secret nullable · string
가상계좌 웹훅이 정상적인 요청인지 검증하는 값입니다. 이 값이 가상계좌 웹훅 이벤트 본문으로 돌아온
secret
과 같으면 정상적인 요청입니다. 최대 길이는 50자입니다. - mobilePhone nullable · object
휴대폰으로 결제하면 제공되는 휴대폰 결제 관련 정보입니다.
- customerMobilePhone string
결제에 사용한 휴대폰 번호입니다.
- settlementStatus string
정산 상태입니다. 정산이 아직 되지 않았다면
INCOMPLETED
, 정산이 완료됐다면COMPLETED
값이 들어옵니다. - receiptUrl string
휴대폰 결제 내역 영수증을 확인할 수 있는 주소입니다.
- customerMobilePhone string
- giftCertificate nullable · object
상품권으로 결제하면 제공되는 상품권 결제 관련 정보입니다.
- approveNo string
결제 승인번호입니다. 최대 길이는 8자입니다.
- settlementStatus string
정산 상태입니다. 정산이 아직 되지 않았다면
INCOMPLETED
, 정산이 완료됐다면COMPLETED
값이 들어옵니다.
- approveNo string
- transfer nullable · object
계좌이체로 결제했을 때 이체 정보가 담기는 객체입니다.
- receipt nullable · object
발행된 영수증 정보입니다.
- url string
고객에게 제공할 수 있는 결제수단별 영수증입니다. 카드 결제는 매출전표, 가상계좌는 무통장 거래 명세서, 계좌이체・휴대폰・상품권 결제는 결제 거래 내역 확인서가 제공됩니다.
- url string
- checkout nullable · object
결제창 정보입니다.
- url string
결제창이 열리는 주소입니다.
- url string
- easyPay nullable · object
간편결제 정보입니다. 고객이 선택한 결제수단에 따라
amount
,discountAmount
가 달라집니다. 간편결제 응답 확인 가이드를 참고하세요.- provider string
선택한 간편결제사 코드입니다.
- amount number
간편결제 서비스에 등록된 계좌 혹은 현금성 포인트로 결제한 금액입니다.
- discountAmount number
간편결제 서비스의 적립 포인트나 쿠폰 등으로 즉시 할인된 금액입니다.
- provider string
- easyPayAmount nullable · numberDEPRECATED
간편결제에 등록되어 있는 계좌로 결제한 금액입니다.
- easyPayDiscountAmount nullable · numberDEPRECATED
간편결제 서비스의 포인트로 결제한 금액입니다.
- country string
결제한 국가입니다. ISO-3166의 두 자리 국가 코드 형식입니다.
- failure nullable · object
결제 승인에 실패하면 응답으로 받는 에러 객체입니다. 실패한 결제를 조회할 때 확인할 수 있습니다.
- code string
오류 타입을 보여주는 에러 코드입니다.
- message string
에러 메시지입니다. 에러 발생 이유를 알려줍니다. 최대 길이는 510자입니다.
- code string
- cashReceipt nullable · object
현금영수증 정보입니다.
- type string
현금영수증의 종류입니다.
소득공제
,지출증빙
중 하나입니다. - receiptKey string
현금영수증의 키 값입니다. 최대 길이는 200자입니다.
- issueNumber string
현금영수증 발급 번호입니다. 최대 길이는 9자입니다.
- receiptUrl string
발행된 현금영수증을 확인할 수 있는 주소입니다.
- amount number
현금영수증 처리된 금액입니다.
- taxFreeAmount number
면세 처리된 금액입니다.
- type string
- cashReceipts nullable · array
현금영수증 발행 및 취소 이력이 담기는 배열입니다. 순서는 보장되지 않습니다. 예를 들어 결제 후 부분 취소가 여러 번 일어나면 모든 결제 및 부분 취소 건에 대한 현금영수증 정보를 담고 있습니다.
계좌이체는 결제 즉시 현금영수증 정보를 확인할 수 있습니다. 가상계좌는 고객이 입금을 완료하면 현금영수증 정보를 확인할 수 있습니다.
* 결제가 이미 승인된 후 현금영수증 발급 요청 API로 발급한 현금영수증은 먼저 처리된 결제 정보와 연결되지 않아 값이
null
입니다. 현금영수증 조회 API로 조회해주세요.* 현금영수증 가맹점이라면 결제했을 때 바로 발급됩니다. 발급을 원하지 않는다면 토스페이먼츠 고객센터(1544-7772, support@tosspayments.com)로 문의해주세요.
- receiptKey string
현금영수증의 키 값입니다. 최대 길이는 200자입니다.
- orderId string
주문번호입니다. 최소 길이는 6자, 최대 길이는 64자입니다. 주문한 결제를 식별하는 역할로, 결제를 요청할 때 가맹점에서 만들어서 사용합니다. 결제 데이터 관리를 위해 반드시 저장해야 합니다. 중복되지 않는 고유한 값을 발급해야 합니다. 결제 상태가 변해도 값이 유지됩니다.
- orderName string
구매상품입니다. 예를 들면
생수 외 1건
같은 형식입니다. 최대 길이는 100자입니다. - type string
현금영수증의 종류입니다.
소득공제
,지출증빙
중 하나입니다. - issueNumber string
현금영수증 발급 번호입니다. 최대 길이는 9자입니다.
- receiptUrl string
발행된 현금영수증을 확인할 수 있는 주소입니다.
- businessNumber string
현금영수증을 발급한 사업자등록번호입니다. 길이는 10자입니다.
- transactionType string
현금영수증 발급 종류입니다. 현금영수증 발급(
CONFIRM
)·취소(CANCEL
) 건을 구분합니다. - amount integer
현금영수증 처리된 금액입니다.
- taxFreeAmount integer
면세 처리된 금액입니다.
- issueStatus string
현금영수증 발급 상태입니다. 발급 승인 여부는 요청 후 1-2일 뒤 조회할 수 있습니다.
IN_PROGRESS
,COMPLETED
,FAILED
중 하나입니다. 각 상태의 자세한 설명은 CashReceipt 객체에서 확인할 수 있습니다. - failure object
결제 실패 객체입니다. 오류 타입을 보여주는
code
와 에러 메시지를 보여주는message
필드가 있습니다. - customerIdentityNumber string
현금영수증 발급에 필요한 소비자 인증수단입니다. 현금영수증을 발급한 주체를 식별합니다. 최대 길이는 30자입니다. 현금영수증 종류에 따라 휴대폰 번호, 사업자등록번호, 현금영수증 카드 번호 등을 입력할 수 있습니다.
- requestedAt string
현금영수증 발급 혹은 취소를 요청한 날짜와 시간 정보입니다.
yyyy-MM-dd'T'HH:mm:ss±hh:mm
ISO 8601 형식입니다. (e.g.2022-01-01T00:00:00+09:00
)
- receiptKey string
- discount nullable · object
카드사의 즉시 할인 프로모션 정보입니다. 즉시 할인 프로모션이 적용됐을 때만 생성됩니다.
- amount integer
카드사의 즉시 할인 프로모션을 적용한 금액입니다.
- amount integer
승인된 결제의 취소 정보입니다. Payment.cancels
에 배열로 돌아옵니다.
- cancelAmount number
결제를 취소한 금액입니다.
- cancelReason string
결제를 취소한 이유입니다. 최대 길이는 200자입니다.
- taxFreeAmount number
취소된 금액 중 면세 금액입니다.
- taxExemptionAmount integer
취소된 금액 중 과세 제외 금액(컵 보증금 등)입니다.
- refundableAmount number
결제 취소 후 환불 가능한 잔액입니다.
- easyPayDiscountAmount number
간편결제 서비스의 포인트, 쿠폰, 즉시할인과 같은 적립식 결제수단에서 취소된 금액입니다.
- canceledAt string
결제 취소가 일어난 날짜와 시간 정보입니다.
yyyy-MM-dd'T'HH:mm:ss±hh:mm
ISO 8601 형식입니다.(e.g.
2022-01-01T00:00:00+09:00
) - transactionKey string
취소 건의 키 값입니다. 여러 건의 취소 거래를 구분하는 데 사용됩니다. 최대 길이는 64자입니다.
- receiptKey nullable · string
취소 건의 현금영수증 키 값입니다. 최대 길이는 200자입니다.
/v1/payments/confirm
paymentKey
에 해당하는 결제를 검증하고 승인합니다.
결제 인증이 유효한 10분 안에 상점에서 결제 승인 API를 호출하지 않으면 해당 결제는 만료됩니다.
- paymentKey 필수 · string
결제의 키 값입니다. 최대 길이는 200자입니다. 결제를 식별하는 역할로, 중복되지 않는 고유한 값입니다.
- orderId 필수 · string
주문번호입니다. 주문한 결제를 식별합니다. 충분히 무작위한 값을 생성해서 각 주문마다 고유한 값을 넣어주세요. 영문 대소문자, 숫자, 특수문자
-
,_
로 이루어진 6자 이상 64자 이하의 문자열이어야 합니다. 결제 데이터 관리를 위해 반드시 저장해야 합니다. - amount 필수 · number
결제할 금액입니다.
결제 승인에 성공하면 Payment 객체가 돌아옵니다. 사용한 결제수단 필드에 값이 제대로 들어왔는지 확인하세요.
결제 승인에 실패했다면 HTTP 상태 코드와 함께 에러 객체가 돌아옵니다.
결제 승인 API에서 발생할 수 있는 에러를 살펴보세요.
curl --request POST \ --url https://api.tosspayments.com/v1/payments/confirm \ --header 'Authorization: Basic dGVzdF9za196WExrS0V5cE5BcldtbzUwblgzbG1lYXhZRzVSOg==' \ --header 'Content-Type: application/json' \ --data '{"paymentKey":"5zJ4xY7m0kODnyRpQWGrN2xqGlNvLrKwv1M9ENjbeoPaZdL6","orderId":"a4CWyWY5m89PNh7xJwhk1","amount":15000}'
/v1/payments/{paymentKey}
승인된 결제를 paymentKey
로 조회합니다. paymentKey
는 SDK를 사용해 결제할 때 발급되는 고유한 키 값으로 결제가 최종 승인된 후 돌아오는 Payment 객체에 담겨있습니다.
- paymentKey 필수 · string
결제의 키 값입니다. 최대 길이는 200자입니다. 결제를 식별하는 역할로, 중복되지 않는 고유한 값입니다.
결제 조회에 성공하면 Payment 객체가 돌아옵니다. 사용한 결제수단 필드에 값이 제대로 들어왔는지 확인하세요.
결제 조회에 실패했다면 HTTP 상태 코드와 함께 에러 객체가 돌아옵니다.
결제 조회 API에서 발생할 수 있는 에러를 살펴보세요.
curl --request GET \ --url https://api.tosspayments.com/v1/payments/5zJ4xY7m0kODnyRpQWGrN2xqGlNvLrKwv1M9ENjbeoPaZdL6 \ --header 'Authorization: Basic dGVzdF9za196WExrS0V5cE5BcldtbzUwblgzbG1lYXhZRzVSOg=='
/v1/payments/orders/{orderId}
승인된 결제를 orderId
로 조회합니다. orderId
는 SDK로 결제를 요청할 때 가맹점에서 만들어서 사용한 값입니다.
- orderId 필수 · string
주문번호입니다. 주문한 결제를 식별합니다. 충분히 무작위한 값을 생성해서 각 주문마다 고유한 값을 넣어주세요. 영문 대소문자, 숫자, 특수문자
-
,_
로 이루어진 6자 이상 64자 이하의 문자열이어야 합니다. 결제 데이터 관리를 위해 반드시 저장해야 합니다.
결제 조회에 성공하면 Payment 객체가 돌아옵니다. 사용한 결제수단 필드에 값이 제대로 들어왔는지 확인하세요.
결제 조회에 실패했다면 HTTP 상태 코드와 함께 에러 객체가 돌아옵니다.
결제 조회 API에서 발생할 수 있는 에러를 살펴보세요.
curl --request GET \ --url https://api.tosspayments.com/v1/payments/orders/a4CWyWY5m89PNh7xJwhk1 \ --header 'Authorization: Basic dGVzdF9za196WExrS0V5cE5BcldtbzUwblgzbG1lYXhZRzVSOg=='
/v1/payments/{paymentKey}/cancel
승인된 결제를 paymentKey
로 취소합니다. 취소 이유를 cancelReason
에 추가해야 합니다.
결제 금액의 일부만 부분 취소하려면 cancelAmount
에 취소할 금액을 추가해서 API를 요청합니다. cancelAmount
에 값을 넣지 않으면 전액 취소됩니다.
* 멱등키를 요청 헤더에 추가하면 중복 취소 없이 안전하게 처리됩니다.
API 직접 실행해보기- paymentKey 필수 · string
결제의 키 값입니다. 최대 길이는 200자입니다. 결제를 식별하는 역할로, 중복되지 않는 고유한 값입니다.
- cancelReason 필수 · string
결제를 취소하는 이유입니다. 최대 길이는 200자입니다.
- cancelAmount number
취소할 금액입니다. 값이 없으면 전액 취소됩니다.
- refundReceiveAccount object
결제 취소 후 금액이 환불될 계좌의 정보입니다. 가상계좌 결제에만 필수입니다. 다른 결제수단으로 이루어진 결제를 취소할 때는 사용하지 않습니다. 보낸 계좌 정보는 유효성 검사가 이뤄집니다. 유효한 계좌로 결제 취소 요청이 되었다면 환불은 취소 요청 후 2일 후에 진행됩니다. 구매자가 가상계좌에 입금을 아직 안 했다면, 결제를 취소해도 환불해야 되는 금액이 없기 때문에 이 파라미터를 추가할 필요가 없습니다. 입금 전에는 부분 취소를 할 수 없고 전체 금액 취소만 할 수 있습니다.
- taxFreeAmount number
취소할 금액 중 면세 금액입니다. 값을 넣지 않으면 기본값인
0
으로 설정됩니다.* 면세 상점 혹은 복합 과세 상점일 때만 설정한 금액이 적용되고, 일반 과세 상점에는 적용되지 않습니다. 더 자세한 내용은 세금 처리하기에서 살펴보세요.
- currency string
취소 통화입니다. PayPal 해외간편결제 부분 취소에는 필수 값입니다. PayPal에서 사용할 수 있는 통화는
USD
입니다. - refundableAmount numberDEPRECATED
현재 환불 가능한 금액입니다. 결제 취소를 안전하게 처리합니다.
환불 가능한 잔액 정보가
refundableAmount
의 값과 다르면 취소를 처리하지 않고 에러를 내보냅니다.* 이 파라미터는 더 이상 사용을 권장하지 않습니다. 안전하게 취소하려면 멱등키를 대신 사용해주세요.
결제 취소에 성공하면 Payment 객체의 cancels
필드에 취소 객체가 배열로 돌아옵니다.
부분 취소를 여러 번 하면 아래와 같이 Payment.cancels
필드에 취소 객체가 여러 개 돌아옵니다. 각 취소 거래마다 거래를 구분하는 transactionKey
를 가지고 있습니다.
결제 취소에 실패했다면 HTTP 상태 코드와 함께 에러 객체가 돌아옵니다.
결제 취소 API에서 발생할 수 있는 에러를 살펴보세요.
curl --request POST \ --url https://api.tosspayments.com/v1/payments/2WkABYDxNyJQbgMGZzorzYWwKBG9kVl5E1em4dKva7XL9njP/cancel \ --header 'Authorization: Basic dGVzdF9za196WExrS0V5cE5BcldtbzUwblgzbG1lYXhZRzVSOg==' \ --header 'Content-Type: application/json' \ --data '{"cancelReason":"고객 변심"}'
/v1/virtual-accounts
구매자가 원하는 은행의 가상계좌 발급을 요청합니다.
API 직접 실행해보기- amount 필수 · integer
결제할 금액입니다.
- orderId 필수 · string
주문번호입니다. 주문한 결제를 식별합니다. 충분히 무작위한 값을 생성해서 각 주문마다 고유한 값을 넣어주세요. 영문 대소문자, 숫자, 특수문자
-
,_
로 이루어진 6자 이상 64자 이하의 문자열이어야 합니다. 결제 데이터 관리를 위해 반드시 저장해야 합니다. - orderName 필수 · string
구매상품입니다. 예를 들면
생수 외 1건
같은 형식입니다. 최대 길이는 100자입니다. 최소 1글자 이상 100글자 이하여야 합니다. - customerName 필수 · string
입금할 구매자명입니다. 최대 길이는 100자입니다.
- bank 필수 · string
가상계좌를 발급할 은행입니다. 가상계좌 발급이 가능한 은행을 참고하세요.
- validHours integer
가상계좌 발급 시점으로부터 가상계좌가 유효한 시간입니다. 설정한
validHours
안에 구매자가 입금을 하지 않으면 주문은 취소됩니다. 설정할 수 있는 최대값은2160
시간(90일)입니다.예를 들어 가상계좌 발급 후 24시간 내에 입금해야 한다면
24
로 설정합니다. 값을 넣지 않으면 기본값168
시간(7일)으로 설정됩니다.validHours
와dueDate
중 하나만 사용할 수 있습니다. - dueDate string
가상계좌 입금 기한입니다.
dueDate
이 지난 시점에 입금을 시도하면 실패합니다. 티켓 예매 등 주문 시간과 상관없이 정해진 시점까지 결제를 받아야 할 때도 사용할 수 있습니다. 설정할 수 있는 최대값은 결제 요청일로부터 90일입니다.yyyy-MM-dd'T'HH:mm:ss
ISO 8601 형식을 사용합니다.예를 들어 입금 기한을 '2023년 10월 10일 자정'과 같이 특정 시점으로 설정하고 싶을 때
2023-10-10T00:00:00
과 같이 사용하세요.validHours
와dueDate
중 하나만 사용할 수 있습니다. - customerEmail string
구매자의 이메일 주소입니다. 결제 상태가 바뀌면 이메일 주소로 결제내역이 전송됩니다. 최대 길이는 100자입니다.
- customerMobilePhone string
구매자의 휴대폰 번호입니다. 가상계좌 입금 안내가 전송되는 번호입니다.
- taxFreeAmount integer
면세 금액입니다. 값을 넣지 않으면 기본값인
0
으로 설정됩니다.* 면세 상점 혹은 복합 과세 상점일 때만 설정한 금액이 적용되고, 일반 과세 상점에는 적용되지 않습니다. 더 자세한 내용은 세금 처리하기에서 살펴보세요.
- useEscrow boolean
에스크로 사용 여부입니다. 값을 넣지 않으면 기본값인
false
로 설정되고 사용자가 에스크로 결제 여부를 선택합니다. - cashReceipt object
현금영수증 발급 정보를 담는 객체입니다.
- type string
현금영수증 발급 용도입니다.
소득공제
,지출증빙
,미발행
중 하나입니다. - registrationNumber string
현금영수증 발급에 필요한 개인 식별 번호입니다. 최대 길이는 30자입니다. 현금영수증 종류에 따라 휴대폰 번호, 사업자등록번호, 현금영수증 카드 번호 등을 입력할 수 있습니다.
- type string
- escrowProducts array
각 상품의 상세 정보를 담는 배열입니다. 예를 들어 사용자가 세 가지 종류의 상품을 구매했다면 길이가 3인 배열이어야 합니다. 에스크로 결제를 사용할 때만 필요한 파라미터입니다.
- id 필수 · string
상품의 ID입니다. 이 값은 유니크해야 합니다.
- name 필수 · string
상품 이름입니다.
- code 필수 · string
상점에서 사용하는 상품 관리 코드입니다.
- unitPrice 필수 · integer
상품의 가격입니다. 전체를 합한 가격이 아닌 상품의 개당 가격입니다.
- quantity 필수 · integer
상품 구매 수량입니다.
- id 필수 · string
가상계좌 발급 요청에 성공하면 virtualAccount
필드에 값이 있는 Payment 객체가 돌아옵니다.
가상계좌 발급 요청에 실패했다면 HTTP 상태 코드와 함께 에러 객체가 돌아옵니다.
가상계좌 발급 요청 API에서 발생할 수 있는 에러를 살펴보세요.
curl --request POST \ --url https://api.tosspayments.com/v1/virtual-accounts \ --header 'Authorization: Basic dGVzdF9za196WExrS0V5cE5BcldtbzUwblgzbG1lYXhZRzVSOg==' \ --header 'Content-Type: application/json' \ --data '{"amount":15000,"orderId":"a4CWyWY5m89PNh7xJwhk1","orderName":"토스 티셔츠 외 2건","customerName":"박토스","bank":"20"}'
자동결제 API로 고객의 결제수단 정보를 인증·등록한 뒤 정기 배송, 음악 스트리밍과 같은 구독형 서비스에서 사용할 수 있습니다.
* 정기 구독형 서비스가 아니라면 자동결제 사용이 제한되니 유의하세요. 더 궁금한 점이 있다면 토스페이먼츠 고객센터(1544-7772, support@tosspayments.com)로 문의해주세요.
자동결제에 사용할 결제수단이 인증되어 등록되었을 때 돌아오는 객체입니다.
등록된 카드 정보와 발급된 billingKey
가 포함되어 있습니다. billingKey
로 자동결제 요청 API를 호출할 수 있습니다.
- mId string
상점아이디(MID)입니다. 토스페이먼츠에서 발급합니다. 최대 길이는 14자입니다.
- customerKey string
구매자 ID입니다. 빌링키와 연결됩니다. 다른 사용자가 이 값을 알게 되면 악의적으로 사용될 수 있습니다. 자동 증가하는 숫자 또는 이메일・전화번호・사용자 아이디와 같이 유추가 가능한 값은 안전하지 않습니다. UUID와 같이 충분히 무작위적인 고유 값으로 생성해주세요. 영문 대소문자, 숫자, 특수문자
-
,_
,=
,.
,@
를 최소 1개 이상 포함한 최소 2자 이상 최대 300자 이하의 문자열이어야 합니다.*
customerKey
는 클라이언트 키와 다릅니다. 클라이언트 키는 연동을 위한 기본 키로 브라우저에서 SDK를 연동할 때 '클라이언트'를 식별하며, 토스페이먼츠에서 제공합니다. - authenticatedAt string
결제수단이 인증된 시점의 날짜와 시간 정보입니다.
yyyy-MM-dd'T'HH:mm:ss±hh:mm
ISO 8601 형식입니다. (e.g.2022-01-01T00:00:00+09:00
) - method string
결제수단입니다. 현재 자동결제는 카드만 지원하기 때문에
카드
로 값이 고정되어 돌아옵니다. - billingKey string
자동결제에서 카드 정보 대신 사용되는 값입니다.
customerKey
와 연결됩니다. 최대 길이는 200자입니다. - card object
발급된 빌링키와 연결된 카드 정보입니다.
* 자동결제 API는 추가 계약 후 사용할 수 있습니다. 추가 계약을 하고 싶다면 토스페이먼츠 고객센터(1544-7772, support@tosspayments.com)로 문의해주세요.
/v1/billing/authorizations/card
고객을 특정하는 customerKey
와 연결할 빌링키 발급을 요청합니다.
customerKey
로 카드 자동결제 요청에 성공하면 Billing 객체가 돌아옵니다.
customerKey
로 카드 자동결제 요청에 실패했다면 HTTP 상태 코드와 함께 에러 객체가 돌아옵니다.
curl --request POST \ --url https://api.tosspayments.com/v1/billing/authorizations/card \ --header 'Authorization: Basic dGVzdF9za196WExrS0V5cE5BcldtbzUwblgzbG1lYXhZRzVSOg==' \ --header 'Content-Type: application/json' \ --data '{"customerKey":"aENcQAtPdYbTjGhtQnNVj","cardNumber":"4330123412341234","cardExpirationYear":"24","cardExpirationMonth":"07","cardPassword":"12","customerIdentityNumber":"881212"}'
* 자동결제 API는 추가 계약 후 사용할 수 있습니다. 추가 계약을 하고 싶다면 토스페이먼츠 고객센터(1544-7772, support@tosspayments.com)로 문의해주세요.
/v1/billing/authorizations/issue
requestBillingAuth 호출 후 쿼리 파라미터로 돌아오는 authKey
, 구매자 ID인 customerKey
로 빌링키 발급을 요청합니다.
* 자동결제 빌링키 발급 요청 엔드포인트가 /v1/billing/authorizations/{authKey}
에서 /v1/billing/authorizations/issue
로 변경되었습니다. 이전 엔드포인트는 사용을 권장하지 않습니다.
카드 자동결제 빌링키 발급 요청에 성공하면 Billing 객체가 돌아옵니다.
카드 자동결제 빌링키 발급 요청에 실패했다면 HTTP 상태 코드와 함께 에러 객체가 돌아옵니다.
curl --request POST \ --url https://api.tosspayments.com/v1/billing/authorizations/issue \ --header 'Authorization: Basic dGVzdF9za196WExrS0V5cE5BcldtbzUwblgzbG1lYXhZRzVSOg==' \ --header 'Content-Type: application/json' \ --data '{"authKey":"e_826EDB0730790E96F116FFF3799A65DE","customerKey":"aENcQAtPdYbTjGhtQnNVj"}'
* 자동결제 API는 추가 계약 후 사용할 수 있습니다. 추가 계약을 하고 싶다면 토스페이먼츠 고객센터(1544-7772, support@tosspayments.com)로 문의해주세요.
/v1/billing/{billingKey}
발급받은 billingKey
로 카드 자동결제를 승인합니다. 카드 자동결제 승인은 최대 30초가 소요됩니다. 타임아웃 값을 최소 30초로 설정하세요.
- billingKey 필수 · string
발급된 빌링키 정보입니다. 고객의 결제 정보로 사용됩니다.
- amount 필수 · integer
결제할 금액입니다.
- customerKey 필수 · string
구매자 ID입니다. 빌링키와 연결됩니다. 다른 사용자가 이 값을 알게 되면 악의적으로 사용될 수 있습니다. 자동 증가하는 숫자 또는 이메일・전화번호・사용자 아이디와 같이 유추가 가능한 값은 안전하지 않습니다. UUID와 같이 충분히 무작위적인 고유 값으로 생성해주세요. 영문 대소문자, 숫자, 특수문자
-
,_
,=
,.
,@
를 최소 1개 이상 포함한 최소 2자 이상 최대 300자 이하의 문자열이어야 합니다. - orderId 필수 · string
주문번호입니다. 주문한 결제를 식별합니다. 충분히 무작위한 값을 생성해서 각 주문마다 고유한 값을 넣어주세요. 영문 대소문자, 숫자, 특수문자
-
,_
로 이루어진 6자 이상 64자 이하의 문자열이어야 합니다. 결제 데이터 관리를 위해 반드시 저장해야 합니다. - orderName 필수 · string
구매상품입니다. 예를 들면
생수 외 1건
같은 형식입니다. 최대 길이는 100자입니다. - cardInstallmentPlan integer
신용 카드의 할부 개월 수입니다. 값을 넣으면 해당 할부 개월 수로 결제가 진행됩니다.
2
부터12
사이의 값을 사용할 수 있고,0
이 들어가거나 값을 넣지 않으면 할부가 아닌 일시불로 결제됩니다. - customerEmail string
구매자의 이메일 주소입니다. 결제 상태가 바뀌면 이메일 주소로 결제내역이 전송됩니다. 최대 길이는 100자입니다.
- customerName string
구매자명입니다. 최대 길이는 100자입니다.
- taxFreeAmount integer
면세 금액입니다. 값을 넣지 않으면 기본값인
0
으로 설정됩니다.* 면세 상점 혹은 복합 과세 상점일 때만 설정한 금액이 적용되고, 일반 과세 상점에는 적용되지 않습니다. 더 자세한 내용은 세금 처리하기에서 살펴보세요.
- taxExemptionAmount integer
과세를 제외한 결제 금액(컵 보증금 등)입니다.
* 과세 제외 금액이 있는 카드 결제는 부분 취소가 안 됩니다.
카드 자동결제 승인에 성공하면 card
필드에 값이 있는 Payment 객체가 돌아옵니다.
카드 자동결제 승인에 실패했다면 HTTP 상태 코드와 함께 에러 객체가 돌아옵니다.
카드 자동결제 승인 API에서 발생 가능한 에러를 살펴보세요.
curl --request POST \ --url https://api.tosspayments.com/v1/billing/Z_t5vOvQxrj4499PeiJcjen28-V2RyqgYTwN44Rdzk0= \ --header 'Authorization: Basic dGVzdF9za196WExrS0V5cE5BcldtbzUwblgzbG1lYXhZRzVSOg==' \ --header 'Content-Type: application/json' \ --data '{"customerKey":"aENcQAtPdYbTjGhtQnNVj","amount":4900,"orderId":"a4CWyWY5m89PNh7xJwhk1","orderName":"토스 프라임 구독","customerEmail":"customer@email.com","customerName":"박토스","taxFreeAmount":0,"taxExemptionAmount":0}'
결제 한 건에서 발생하는 승인과 취소 각각이 거래입니다. 특정 기간에 일어난 모든 결제 승인 및 취소의 요약이 필요할 때 거래 조회 API를 사용하세요.
거래 기록을 비교하는 일을 '거래 대사'라고 부르기도 합니다. '대사'란 기록을 비교・대조해서 데이터를 검증하고 일치시키는 과정을 뜻합니다.
거래 정보를 담고 있는 객체입니다.
하나의 결제 건에 여러 번의 거래가 일어날 수 있습니다. 결제 승인, 취소, 부분 취소가 이루어질 때마다 각각의 거래 정보를 담은 Transaction 객체가 만들어지고 개별 transactionKey
를 가지게 됩니다.
거래 조회 API를 호출하면 지정한 기간 동안 생긴 모든 Transaction 객체들이 배열로 돌아옵니다.
- mId string
상점아이디(MID)입니다. 토스페이먼츠에서 발급합니다. 최대 길이는 14자입니다.
- transactionKey string
거래의 키 값입니다. 한 결제 건의 승인 거래와 취소 거래를 구분하는 데 사용됩니다. 최대 길이는 64자입니다.
- paymentKey string
결제의 키 값입니다. 최대 길이는 200자입니다. 결제를 식별하는 역할로, 중복되지 않는 고유한 값입니다. 결제 데이터 관리를 위해 반드시 저장해야 합니다. 결제 상태가 변해도 값이 유지됩니다.
- orderId string
주문번호입니다. 최소 길이는 6자, 최대 길이는 64자입니다. 주문한 결제를 식별하는 역할로, 결제를 요청할 때 가맹점에서 만들어서 사용합니다. 결제 상태가 변해도 값이 유지됩니다.
- method string
결제수단입니다.
카드
,가상계좌
,간편결제
,휴대폰
,계좌이체
,문화상품권
,도서문화상품권
,게임문화상품권
중 하나입니다. - customerKey string
구매자 ID입니다. 빌링키와 연결됩니다. 다른 사용자가 이 값을 알게 되면 악의적으로 사용될 수 있습니다. 자동 증가하는 숫자 또는 이메일・전화번호・사용자 아이디와 같이 유추가 가능한 값은 안전하지 않습니다. UUID와 같이 충분히 무작위적인 고유 값으로 생성해주세요. 영문 대소문자, 숫자, 특수문자
-
,_
,=
,.
,@
를 최소 1개 이상 포함한 최소 2자 이상 최대 300자 이하의 문자열이어야 합니다.*
customerKey
는 클라이언트 키와 다릅니다. 클라이언트 키는 연동을 위한 기본 키로 브라우저에서 SDK를 연동할 때 '클라이언트'를 식별하며, 토스페이먼츠에서 제공합니다. - useEscrow boolean
에스크로 사용 여부입니다.
- receiptUrl string
거래 영수증을 확인할 수 있는 주소입니다.
- status string
결제 처리 상태입니다. 아래와 같은 상태 값을 가질 수 있습니다. 상태 변화 흐름이 궁금하다면 흐름도를 살펴보세요.
-
READY
: 결제를 생성하면 가지게 되는 초기 상태입니다. 인증 전까지는READY
상태를 유지합니다.-
IN_PROGRESS
: 결제수단 정보와 해당 결제수단의 소유자가 맞는지 인증을 마친 상태입니다. 결제 승인 API를 호출하면 결제가 완료됩니다.-
WAITING_FOR_DEPOSIT
: 가상계좌 결제 흐름에만 있는 상태로, 결제 고객이 발급된 가상계좌에 입금하는 것을 기다리고 있는 상태입니다.-
DONE
: 인증된 결제수단 정보, 고객 정보로 요청한 결제가 승인된 상태입니다.-
CANCELED
: 승인된 결제가 취소된 상태입니다.-
PARTIAL_CANCELED
: 승인된 결제가 부분 취소된 상태입니다.-
ABORTED
: 결제 승인에 실패한 상태입니다.-
EXPIRED
: 요청된 결제의 유효 시간 30분이 지나 거래가 취소된 상태입니다.IN_PROGRESS
상태에서 결제 승인 API를 호출하지 않으면EXPIRED
가 됩니다. - transactionAt string
거래가 처리된 시점의 날짜와 시간 정보입니다.
yyyy-MM-dd'T'HH:mm:ss±hh:mm
ISO 8601 형식입니다. - currency string
결제할 때 사용한 통화입니다.
- amount number
결제한 금액입니다.
/v1/transactions
특정 기간의 거래 기록을 조회합니다. 거래 기록은 거래가 처리된 시점(transactionAt
)을 기준으로 조회합니다.
Query 파라미터 startDate
와 endDate
로 지정한 날짜 정보를 사용합니다. 거래가 일어난 당일부터 거래 기록을 조회할 수 있습니다. 예를 들어 예제의 요청은 2022년 1월 1일부터 1월 2일까지 일어난 거래를 조회합니다.
* 거래 조회는 최대 60초가 소요됩니다. 타임아웃 값을 최소 60초로 설정하세요. 라이브 환경에서 비정상적으로 많은 요청을 보내면 429 Too Many Requests
상태 코드가 내려올 수 있습니다.
- startDate 필수 · string
조회를 시작하고 싶은 날짜와 시간 정보입니다.
yyyy-MM-dd'T'hh:mm:ss
ISO 8601 형식입니다.날짜 정보만 입력하면 시간은 자동으로
00:00:00
으로 설정됩니다.(e.g.
2022-01-01T00:00:00
) - endDate 필수 · string
조회를 마치고 싶은 날짜와 시간 정보입니다.
yyyy-MM-dd'T'hh:mm:ss
ISO 8601 형식입니다.날짜 정보만 입력하면 시간은 자동으로
00:00:00
으로 설정됩니다.(e.g.
2022-01-02T23:59:59
) - startingAfter string
특정 결제 건 이후의 기록을 조회할 때 사용합니다.
transactionKey
값을 전달합니다. 많은 양의 기록을 페이지 단위로 나누어 처리할 때 사용할 수 있습니다. - limit integer
한 번에 응답받을 기록의 개수입니다. 기본값은
100
이고 설정할 수 있는 최대값은5000
입니다.
응답으로 조회한 기간 동안의 일어난 모든 거래 정보가 Transaction 객체로 돌아옵니다.
같은 paymentKey
를 가지고 있는 거래 기록은 transactionKey
로 구분합니다.
거래 조회에 실패했다면 HTTP 상태 코드와 함께 에러 객체가 돌아옵니다.
거래 조회 API에서 발생할 수 있는 에러를 살펴보세요.
curl --request GET \ --url 'https://api.tosspayments.com/v1/transactions?startDate=2022-01-01T00:00:00&endDate=2022-01-02T23:59:59' \ --header 'Authorization: Basic dGVzdF9za196WExrS0V5cE5BcldtbzUwblgzbG1lYXhZRzVSOg=='
[ { "mId": "tosspayments", "transactionKey": "AC45CD421C4E49D7B878522128B8D9C6", "paymentKey": "lOR1ZwdkQD5GePWvyJnrKXP6nDMRb8gLzN97EoqYA60XKx4a", "orderId": "fMgvolnZP6_ZdEYAaWF_1", "method": "카드", "customerKey": "cG_EdskNV1JgX7Y16S6vo", "useEscrow": false, "receiptUrl": "https://dashboard.tosspayments.com/receipt/redirection?transactionId=tosspayments01202301021537455ezz1&ref=PX", "status": "DONE", "transactionAt": "2023-01-02T15:37:45+09:00", "currency": "KRW", "amount": 1500 }, { "mId": "tosspayments", "transactionKey": "E41141562F42C887DB9F45D0FA4101D1", "paymentKey": "XJxNkgDKzOEP59LybZ8BJkX7ky5Y9B86GYo7pRe10BMQwla2", "orderId": "CwNjZgeiXkvmqnzjip78m", "method": "간편결제", "customerKey": null, "useEscrow": false, "receiptUrl": "https://dashboard.tosspayments.com/receipt/redirection?transactionId=tosspayments20230522104630vJoC6&ref=PX", "status": "DONE", "transactionAt": "2023-01-02T15:37:45+09:00", "currency": "KRW", "amount": 15000 }]
매출에서 정산 주기, 수수료율 등에 따라 금액을 계산해 지급하는 것을 정산이라고 합니다. 정산 조회 API로 원하는 기간 동안의 정산 기록을 조회해 보세요.
조회된 정산 정보로 지급 받을 금액 및 날짜, 수수료 정보 등을 확인한 뒤 내 상점의 데이터와 일치하는지 확인할 수 있습니다. 이렇게 정산 기록을 비교하는 일을 '정산 대사'라고 부르기도 합니다. '대사'란 기록을 비교・대조해서 데이터를 검증하고 일치시키는 과정을 뜻합니다.
정산 정보를 담고 있는 객체입니다. 지급 받을 금액 및 날짜, 수수료 정보 등을 상세히 확인할 수 있습니다.
- mId string
상점아이디(MID)입니다. 토스페이먼츠에서 발급합니다. 최대 길이는 14자입니다.
- paymentKey string
결제의 키 값입니다. 최대 길이는 200자입니다. 결제를 식별하는 역할로, 중복되지 않는 고유한 값입니다. 결제 데이터 관리를 위해 반드시 저장해야 합니다. 결제 상태가 변해도 값이 유지됩니다.
- transactionKey string
거래의 키 값입니다. 한 결제 건의 승인 거래와 취소 거래를 구분하는 데 사용됩니다. 최대 길이는 64자입니다.
- orderId string
주문번호입니다. 최소 길이는 6자, 최대 길이는 64자입니다. 주문한 결제를 식별하는 역할로, 결제를 요청할 때 가맹점에서 만들어서 사용합니다. 결제 상태가 변해도 값이 유지됩니다.
- currency string
결제할 때 사용한 통화입니다.
- method string
결제수단입니다.
카드
,가상계좌
,간편결제
,휴대폰
,계좌이체
,문화상품권
,도서문화상품권
,게임문화상품권
중 하나입니다. - amount number
결제한 금액입니다.
- interestFee number
할부 수수료 금액입니다.
- fees array
결제 수수료의 상세 정보입니다. 수수료 상세 정보가 담긴 객체가 배열로 들어옵니다.
- type string
수수료의 세부 타입입니다.
BASE
: 기본 수수료INSTALLMENT_DISCOUNT
: 카드사 혹은 토스페이먼츠가 부담하는 무이자 할부 수수료INSTALLMENT
: 상점이 부담하는 무이자 할부 수수료POINT_SAVING
: 카드사 포인트 적립 수수료ETC
: 기타 수수료 - fee number
수수료 금액입니다.
- type string
- supplyAmount number
결제 수수료의 공급가액입니다.
- vat number
결제 수수료 부가세입니다.
- payOutAmount number
- approvedAt string
거래가 승인된 시점의 날짜와 시간 정보입니다.
yyyy-MM-dd'T'HH:mm:ss±hh:mm
ISO 8601 형식입니다.(e.g.
2022-01-01T00:00:00+09:00
) - soldDate string
지급 금액의 정산 기준이 되는 정산 매출일입니다. 상점의 정산 주기에 따라 달라집니다.
yyyy-MM-dd
형식입니다. (e.g.2022-01-01
)* 정산에서 정산 매출일을 더 자세히 설명합니다.
- paidOutDate string
지급 금액을 상점에 지급할 정산 지급일입니다. 상점의 정산 기준일과 정산 주기에 따라 달라집니다.
yyyy-MM-dd
형식입니다. (e.g.2022-01-01
)* 정산에서 정산 지급일을 더 자세히 설명합니다.
- card nullable · object
카드로 결제하면 제공되는 카드 관련 정보입니다.
- amount number
카드사에 결제 요청한 금액입니다. 즉시 할인 금액(
discount.amount
)이 포함됩니다.* 간편결제에 등록된 카드로 결제했다면 간편결제 응답 확인 가이드를 참고하세요.
- issuerCode string
- acquirerCode nullable · string
- number string
카드번호입니다. 번호의 일부는 마스킹 되어 있습니다. 최대 길이는 20자입니다.
- installmentPlanMonths integer
할부 개월 수입니다. 일시불이면
0
입니다. - approveNo string
카드사 승인 번호입니다. 최대 길이는 8자입니다.
- useCardPoint boolean
카드사 포인트 사용 여부입니다.
* 일반 카드사 포인트가 아닌, 특수한 포인트나 바우처를 사용하면 할부 개월 수가 변경되어 응답이 돌아오니 유의해주세요.
- cardType string
카드 종류입니다.
신용
,체크
,기프트
,미확인
중 하나입니다. 고객이 해외 카드로 결제했거나 간편결제의 결제 수단을 조합해서 결제했을 때미확인
으로 표시됩니다. - ownerType string
카드의 소유자 타입입니다.
개인
,법인
,미확인
중 하나입니다. 고객이 해외 카드로 결제했거나 간편결제의 결제 수단을 조합해서 결제했을 때미확인
으로 표시됩니다. - acquireStatus string
카드 결제의 매입 상태입니다. 아래와 같은 상태 값을 가질 수 있습니다.
-
READY
: 아직 매입 요청이 안 된 상태입니다.-
REQUESTED
: 매입이 요청된 상태입니다.-
COMPLETED
: 요청된 매입이 완료된 상태입니다.-
CANCEL_REQUESTED
: 매입 취소가 요청된 상태입니다.-
CANCELED
: 요청된 매입 취소가 완료된 상태입니다. - isInterestFree boolean
무이자 할부의 적용 여부입니다.
- interestPayer nullable · string
할부가 적용된 결제에서 할부 수수료를 부담하는 주체입니다.
BUYER
,CARD_COMPANY
,MERCHANT
중 하나입니다.-
BUYER
: 상품을 구매한 고객이 할부 수수료를 부담합니다. 일반적인 할부 결제입니다.-
CARD_COMPANY
: 카드사에서 할부 수수료를 부담합니다. 무이자 할부 결제입니다.-
MERCHANT
: 상점에서 할부 수수료를 부담합니다. 무이자 할부 결제입니다.
- amount number
- easyPay nullable · object
간편결제 정보입니다. 고객이 선택한 결제수단에 따라
amount
,discountAmount
가 달라집니다. 간편결제 응답 확인 가이드를 참고하세요.- provider string
선택한 간편결제사 코드입니다.
- amount number
간편결제 서비스에 등록된 계좌 혹은 현금성 포인트로 결제한 금액입니다.
- discountAmount number
간편결제 서비스의 적립 포인트나 쿠폰 등으로 즉시 할인된 금액입니다.
- provider string
- giftCertificate nullable · object
상품권으로 결제하면 제공되는 상품권 결제 관련 정보입니다.
- approveNo string
결제 승인번호입니다. 최대 길이는 8자입니다.
- settlementStatus string
정산 상태입니다. 정산이 아직 되지 않았다면
INCOMPLETED
, 정산이 완료됐다면COMPLETED
값이 들어옵니다.
- approveNo string
- mobilePhone nullable · object
휴대폰으로 결제하면 제공되는 휴대폰 결제 관련 정보입니다.
- customerMobilePhone string
결제에 사용한 휴대폰 번호입니다.
- settlementStatus string
정산 상태입니다. 정산이 아직 되지 않았다면
INCOMPLETED
, 정산이 완료됐다면COMPLETED
값이 들어옵니다. - receiptUrl string
휴대폰 결제 내역 영수증을 확인할 수 있는 주소입니다.
- customerMobilePhone string
- transfer nullable · object
계좌이체로 결제했을 때 이체 정보가 담기는 객체입니다.
- virtualAccount nullable · object
가상계좌로 결제하면 제공되는 가상계좌 관련 정보입니다.
- accountType string
가상계좌 타입을 나타냅니다.
일반
,고정
중 하나입니다. - accountNumber string
발급된 계좌번호입니다. 최대 길이는 20자입니다.
- bankCode string
- customerName string
가상계좌를 발급한 구매자명입니다. 최대 길이는 100자입니다.
- dueDate string
입금 기한입니다.
yyyy-MM-dd'T'HH:mm:ss
ISO 8601 형식을 사용합니다. - refundStatus string
환불 처리 상태입니다. 아래와 같은 상태 값을 가질 수 있습니다.
-
NONE
: 환불 요청이 없는 상태입니다.-
PENDING
: 환불을 처리 중인 상태입니다.-
FAILED
: 환불에 실패한 상태입니다.-
PARTIAL_FAILED
: 부분 환불에 실패한 상태입니다.-
COMPLETED
: 환불이 완료된 상태입니다. - expired boolean
가상계좌의 만료 여부입니다.
- settlementStatus string
정산 상태입니다. 정산이 아직 되지 않았다면
INCOMPLETED
, 정산이 완료됐다면COMPLETED
값이 들어옵니다. - refundReceiveAccount object
결제위젯 가상계좌 환불 정보 입력 기능으로 받은 고객의 환불 계좌 정보입니다. 은행 코드(
bankCode
), 계좌번호(accountNumber
), 예금주 정보(holderName
)가 담긴 객체입니다.* 구매자의 환불계좌 정보는 결제창을 띄운 시점부터 30분 동안만 조회할 수 있습니다. 이후에는 값이 내려가지 않습니다. 더 자세한 내용은 결제 취소 가이드를 참고하세요.
- accountType string
- cancel nullable · object
결제 취소 이력이 담기는 객체입니다.
- cancelAmount number
결제를 취소한 금액입니다.
- cancelReason string
결제를 취소한 이유입니다. 최대 길이는 200자입니다.
- taxFreeAmount number
취소된 금액 중 면세 금액입니다.
- taxExemptionAmount integer
취소된 금액 중 과세 제외 금액(컵 보증금 등)입니다.
- refundableAmount number
결제 취소 후 환불 가능한 잔액입니다.
- easyPayDiscountAmount number
간편결제 서비스의 포인트, 쿠폰, 즉시할인과 같은 적립식 결제수단에서 취소된 금액입니다.
- canceledAt string
결제 취소가 일어난 날짜와 시간 정보입니다.
yyyy-MM-dd'T'HH:mm:ss±hh:mm
ISO 8601 형식입니다.(e.g.
2022-01-01T00:00:00+09:00
) - transactionKey string
취소 건의 키 값입니다. 여러 건의 취소 거래를 구분하는 데 사용됩니다. 최대 길이는 64자입니다.
- receiptKey nullable · string
취소 건의 현금영수증 키 값입니다. 최대 길이는 200자입니다.
- cancelAmount number
/v1/settlements
지정한 날짜 정보로 정산 기록을 조회합니다.
정산 기록은 결제가 일어난 다음 날부터 조회됩니다. 따라서 만약 오늘이 1월 11일이라면, 1월 11일 결제의 정산 기록은 다음 날인 1월 12일에 startDate
를 2024-01-11
로, endDate
를 2024-01-12
로 요청해서 확인할 수 있습니다.
많은 양의 정산 기록을 조회한다면 page
와 size
파라미터를 사용해서 페이지 단위로 기록을 나누어 조회할 수 있습니다. 예를 들어 page
를 3으로, size
를 100으로 설정한다면 설정한 기간 동안의 전체 기록을 100개씩 나누어 보여주고, 전체 페이지 중 3페이지의 기록을 조회합니다.
* 정산 조회는 최대 60초가 소요됩니다. 타임아웃 값을 최소 60초로 설정하세요. 라이브 환경에서 비정상적으로 많은 요청을 보내면 429 Too Many Requests
상태 코드가 내려올 수 있습니다.
- startDate 필수 · string
조회를 시작하고 싶은 날짜 정보입니다.
yyyy-MM-dd
ISO 8601 형식입니다.(e.g.
2022-01-01
) - endDate 필수 · string
조회를 마치고 싶은 날짜 정보입니다.
yyyy-MM-dd
ISO 8601 형식입니다.(e.g.
2022-01-01
) - dateType string
조회 기준이 되는 날짜 타입입니다.
soldDate
(정산 매출일)나paidOutDate
(정산 지급일) 중 하나입니다.결제 금액을 정산 받을 날짜 기준으로 조회하고 싶으면
paidOutDate
를 사용하세요. 파라미터를 사용하지 않으면soldDate
기준으로 조회됩니다. - page integer
조회할 페이지 값입니다. 최소값은
1
입니다. 많은 양의 정산 기록을 조회할 때size
파라미터와 함께 사용합니다. - size integer
한 페이지에서 응답으로 보여줄 정산 기록 개수를 의미합니다. 기본값은
100
이고 설정할 수 있는 최대값은5000
입니다. 많은 양의 정산 기록을 조회할 때page
파라미터와 함께 사용합니다.
정산 조회에 성공하면 Settlement 객체가 담긴 배열이 돌아옵니다.
정산 조회에 실패했다면 HTTP 상태 코드와 함께 에러 객체가 돌아옵니다.
정산 조회 API에서 발생할 수 있는 에러를 살펴보세요.
curl --request GET \ --url 'https://api.tosspayments.com/v1/settlements?startDate=2023-11-25&endDate=2023-11-26' \ --header 'Authorization: Basic dGVzdF9za196WExrS0V5cE5BcldtbzUwblgzbG1lYXhZRzVSOg=='
수동 정산은 일정 기간 동안 쌓인 카드 결제 기록 중에 한 건만 선택해서 정산 받는 방법입니다.
* 수동 정산 요청 API는 추가 계약 후 사용할 수 있습니다. 추가 계약을 하고 싶다면 토스페이먼츠 고객센터(1544-7772, support@tosspayments.com)로 문의해주세요.
/v1/settlements
매입하고 싶은 결제 건을 paymentKey
로 특정해서 카드사에 정산을 요청합니다.
- paymentKey 필수 · string
수동 정산을 요청할 결제 건을 특정하는 키 값 입니다. 최대 길이는 200자입니다.
수동 정산 요청에 성공하면 result
값이 true
로 돌아옵니다.
수동 정산 요청 API에서 발생할 수 있는 에러를 살펴보세요.
curl --request POST \ --url https://api.tosspayments.com/v1/settlements \ --header 'Authorization: Basic dGVzdF9za196WExrS0V5cE5BcldtbzUwblgzbG1lYXhZRzVSOg==' \ --header 'Content-Type: application/json' \ --data '{"paymentKey":"5zJ4xY7m0kODnyRpQWGrN2xqGlNvLrKwv1M9ENjbeoPaZdL6"}'
홈택스 접속 없이 토스페이먼츠에서 제공하는 현금영수증 API로 현금영수증을 편리하게 발급해보세요. 현금영수증 가맹점이라면 토스페이먼츠로 결제하지 않은 건도 발급 및 취소 요청을 할 수 있습니다.
현금영수증 정보를 담고 있는 객체입니다.
- receiptKey string
발급 혹은 취소 요청한 현금영수증 한 건을 특정하는 키 값입니다. 최대 길이는 200자입니다.
현금영수증 발급 API로 요청한 발급 건을 취소하면 앞서 발급했던 건의
receiptKey
에 prefix로c_
가 추가되어 돌아옵니다. - issueNumber string
현금영수증 발급번호입니다. 최대 길이는 9자입니다.
- issueStatus string
현금영수증 발급 상태입니다. 발급 승인 여부는 요청 후 1-2일 뒤 조회할 수 있습니다.
-
IN_PROGRESS
: 현금영수증 발급이 대기 중인 상태입니다.-
COMPLETED
: 현금영수증이 발급된 상태입니다.-
FAILED
: 현금영수증 발급에 실패한 상태입니다. - amount integer
현금영수증 처리된 금액입니다.
- taxFreeAmount integer
면세 처리된 금액입니다.
- orderId string
주문번호입니다. 최소 길이는 6자, 최대 길이는 64자입니다. 주문한 결제를 식별하는 역할로, 결제를 요청할 때 가맹점에서 만들어서 사용한 값입니다. 결제 상태가 변해도 값이 유지됩니다.
- orderName string
구매상품입니다. 예를 들면
생수 외 1건
같은 형식입니다. 최대 길이는 100자입니다. - type string
현금영수증의 종류입니다.
소득공제
,지출증빙
중 하나입니다. - approvalNumber stringDEPRECATED
현금영수증 발급 승인번호입니다. 최대 길이는 9자입니다.
- transactionType string
현금영수증 발급 종류입니다. 현금영수증 발급·취소 건을 구분합니다.
CONFIRM
- 현금영수증을 발급했을 때CANCEL
- 발급된 현금영수증을 취소했을 때 - businessNumber string
현금영수증을 발급한 사업자등록번호입니다. 길이는 10자입니다.
- customerIdentityNumber string
현금영수증 발급에 필요한 소비자 인증수단입니다. 현금영수증을 발급한 주체를 식별합니다. 최대 길이는 30자입니다.
현금영수증 종류에 따라 휴대폰 번호, 사업자등록번호, 현금영수증 카드 번호 등을 입력할 수 있습니다.
- failure nullable · object
결제 실패 정보입니다.
- code string
오류 타입을 보여주는 에러 코드입니다.
- message string
에러 메시지입니다. 에러 발생 이유를 알려줍니다. 최대 길이는 510자입니다.
- code string
- requestedAt string
현금영수증 발급 혹은 취소를 요청한 날짜와 시간 정보입니다.
yyyy-MM-dd'T'HH:mm:ss±hh:mm
ISO 8601 형식입니다. - approvedAt stringDEPRECATED
현금영수증이 발급된 날짜와 시간 정보입니다.
yyyy-MM-dd'T'HH:mm:ss±hh:mm
ISO 8601 형식입니다.(e.g.
2022-01-01T00:00:00+09:00
) - canceledAt nullable · stringDEPRECATED
현금영수증을 발급을 취소한 날짜와 시간 정보입니다.
yyyy-MM-dd'T'HH:mm:ss±hh:mm
ISO 8601 형식입니다.(e.g.
2022-01-01T00:00:00+09:00
) - receiptUrl string
발행된 현금영수증을 확인할 수 있는 주소입니다.
/v1/cash-receipts
현금영수증 발급을 요청합니다. 현금영수증을 발급할 때는 현금영수증 발급 용도와 현금영수증 발급에 필요한 소비자 인증수단 정보가 반드시 필요합니다. 현금영수증 발급 용도를 type
에, 소비자 인증수단은 customerIdentityNumber
에 추가해주세요.
- amount 필수 · integer
현금영수증을 발급할 금액입니다.
- orderId 필수 · string
주문번호입니다. 주문한 결제를 식별합니다. 충분히 무작위한 값을 생성해서 각 주문마다 고유한 값을 넣어주세요. 영문 대소문자, 숫자, 특수문자
-
,_
로 이루어진 6자 이상 64자 이하의 문자열이어야 합니다. 결제 데이터 관리를 위해 반드시 저장해야 합니다. - orderName 필수 · string
구매상품입니다. 예를 들면
생수 외 1건
같은 형식입니다. 최대 길이는 100자입니다. - type 필수 · string
현금영수증의 종류입니다.
소득공제
,지출증빙
중 하나입니다. 소득 공제용 현금영수증을 발급받을 때는 소비자 인증수단으로 휴대폰 번호나 현금영수증 카드 번호가 필요하고, 지출 증빙용 현금영수증을 발급받을 때는 사업자 등록번호를 입력해야 합니다. - customerIdentityNumber 필수 · string
현금영수증 발급에 필요한 소비자 인증수단입니다. 현금영수증을 발급한 주체를 식별합니다. 최대 길이는 30자입니다. 현금영수증 종류에 따라 휴대폰 번호, 사업자등록번호, 현금영수증 카드 번호 등을 입력할 수 있습니다.
결제 고객의 정보가 없어도 상점에서 발급할 때 사용할 수 있는 국세청 지정 코드(010-000-1234)를 활용해 현금영수증을 발급할 수 있습니다.
- registrationNumber 필수 · stringDEPRECATED
현금영수증 발급에 필요한 소비자 인증수단입니다. 현금영수증을 발급한 주체를 식별합니다. 최대 길이는 30자입니다. 현금영수증 종류에 따라 휴대폰 번호, 사업자등록번호, 현금영수증 카드 번호 등을 입력할 수 있습니다.
결제 고객의 정보가 없어도 상점에서 발급할 때 사용할 수 있는 국세청 지정 코드(010-000-1234)를 활용해 현금영수증을 발급할 수 있습니다.
- taxFreeAmount integer
면세 금액입니다. 값을 넣지 않으면 기본값인
0
으로 설정됩니다. 하나의 결제에 과세 상품과 면세 상품이 섞여있다면 이 파라미터로 면세 상품 금액을 보내주세요. 보낸 금액 만큼 현금영수증이 발급됩니다.* 면세 상점 혹은 복합 과세 상점일 때만 설정한 금액이 적용되고, 일반 과세 상점에는 적용되지 않습니다. 더 자세한 내용은 세금 처리하기에서 살펴보세요.
현금영수증 발급 요청에 성공하면 CashReceipt 객체가 돌아옵니다.
CashReceipt 객체의 transactionType
으로 현금영수증 발급(CONFIRM
)과 현금영수증 발급 취소(CANCEL
)를 구분할 수 있습니다. issueStatus
는 요청의 상태를 나타냅니다. 응답의 최초 상태는 IN_PROGRESS
로, 토스페이먼츠에 요청이 잘 전달되었음을 뜻합니다.
현금영수증 발급 요청에 실패했다면 HTTP 상태 코드와 함께 에러 객체가 돌아옵니다.
현금영수증 발급 요청 API에서 발생할 수 있는 에러를 살펴보세요.
curl --request POST \ --url https://api.tosspayments.com/v1/cash-receipts \ --header 'Authorization: Basic dGVzdF9za196WExrS0V5cE5BcldtbzUwblgzbG1lYXhZRzVSOg==' \ --header 'Content-Type: application/json' \ --data '{"amount":15000,"orderId":"a4CWyWY5m89PNh7xJwhk1","orderName":"토스 티셔츠 외 2건","customerIdentityNumber":"01012341234","type":"소득공제"}'
/v1/cash-receipts/{receiptKey}/cancel
현금영수증을 발급한 결제가 취소됐을 때 receiptKey
를 이용해서 현금영수증 발급을 취소합니다.
현금영수증 발급 API의 응답으로 받았던 CashReceipt.receiptKey
를 저장해 두었다가 Path 파라미터로 추가하세요.
부분 취소를 하려면 amount
값에 취소된 금액을 입력해서 사용합니다. amount
값이 없으면 전액 취소됩니다.
- receiptKey 필수 · string
현금영수증의 키 값입니다. 최대 길이는 200자입니다.
- amount integer
현금영수증 발급을 취소할 금액입니다. 값이 따로 없으면 전액 취소됩니다.
현금영수증 발급 취소 요청에 성공하면 CashReceipt 객체가 돌아옵니다.
현금영수증 발급 취소 요청에 실패했다면 HTTP 상태 코드와 함께 에러 객체가 돌아옵니다.
현금영수증 발급 취소 API에서 발생할 수 있는 에러를 살펴보세요.
curl --request POST \ --url https://api.tosspayments.com/v1/cash-receipts/qKl56WYb7w4vZnjEJeQVxbAdOll6d8PmOoBN0k12dzgRG9px/cancel \ --header 'Authorization: Basic dGVzdF9za196WExrS0V5cE5BcldtbzUwblgzbG1lYXhZRzVSOg=='
/v1/cash-receipts
특정 기간 동안 발급된 현금영수증을 조회합니다.
* 현금영수증 조회 API는 버전 2022-07-27 이상에서만 지원합니다. API 버전은 개발자센터에서 확인·변경할 수 있습니다.
* 라이브 환경에서 비정상적으로 많은 요청을 보내면 429 Too Many Requests
상태 코드가 내려올 수 있습니다.
- requestDate 필수 · string
현금영수증 발급이 요청된 날짜로 조회하고 싶을 때 사용합니다.
yyyy-MM-dd
ISO 8601 형식입니다. (e.g.2022-01-01
) - cursor integer
특정 현금영수증 발급 건 이후의 기록을 조회할 때 사용합니다. 이전 조회에서 돌아온
lastCursor
값을 전달합니다. 많은 양의 기록을 페이지 단위로 나누어 처리할 때 사용할 수 있습니다. - limit integer
한 번에 응답받을 기록의 개수입니다. 기본값은
100
이고 설정할 수 있는 최대값은10000
입니다.
현금영수증 조회에 성공하면 아래 값을 포함한 객체가 내려갑니다.
hasNext
: 다음 기록을 조회할 수 있는지 여부입니다. 이 값이false
면 더 조회할 기록이 없습니다.lastCursor
: 특정 현금영수증 건 이후의 기록을 조회할 때 사용합니다. 다음 기록을 조회할 때cursor
파라미터에 이 값을 사용합니다. 이 값은integer
타입입니다.data
: 조회 요청에서cursor
로 특정한 현금영수증 건 이후의 기록입니다. CashReceipt 객체가 담긴 배열이 돌아옵니다.
현금영수증 조회에 실패했다면 HTTP 상태 코드와 함께 에러 객체가 돌아옵니다.
현금영수증 조회 API에서 발생할 수 있는 에러를 살펴보세요.
curl --request GET \ --url 'https://api.tosspayments.com/v1/cash-receipts?requestDate=2022-07-27' \ --header 'Authorization: Basic dGVzdF9za196WExrS0V5cE5BcldtbzUwblgzbG1lYXhZRzVSOg=='
지급대행은 하위 상점(서브몰)의 정산 금액을 토스페이먼츠가 대신 지급하는 서비스입니다. 지급대행 API를 사용하면 상점에서 따로 서브몰 정보를 관리하거나 서브몰에 각각 송금할 필요 없이 편리하게 지급 업무를 할 수 있습니다.
* 지급대행 API는 더 이상 신규 계약을 받지 않는 서비스입니다. 토스페이먼츠 고객센터(1544-7772, support@tosspayments.com)로 문의해주세요.
* 지급대행 API는 최대 60초가 소요됩니다. 타임아웃 값을 최소 60초로 설정하세요.
지급받을 서브몰 정보를 가지고 있는 객체입니다.
정산 지급에 필요한 서브몰의 계좌 정보를 포함하고 있습니다.
- subMallId string
서브몰의 ID입니다. 최대 길이는 20자입니다.
- type string
서브몰의 타입입니다.
CORPORATE
(법인),INDIVIDUAL
(개인) 중 하나입니다. - companyName nullable · string
서브몰의 상호명입니다. 최대 길이는 공백을 포함한 한글 30자, 영문 60자입니다. 서브몰의
type
이CORPORATE
(법인)일 때만 사용됩니다. - representativeName nullable · string
서브몰의 대표자명입니다. 최대 길이는 40자입니다. 서브몰의
type
이CORPORATE
(법인)일 때만 사용됩니다. - businessNumber nullable · string
서브몰의 사업자등록번호 입니다. 길이는 10자입니다. 서브몰의
type
이CORPORATE
(법인)일 때만 사용됩니다. - account object
서브몰에서 정산 금액을 지급받을 계좌 정보를 담은 객체입니다.
- email nullable · string
서브몰 이메일 주소입니다.
- phoneNumber nullable · string
서브몰 연락처입니다.
-
없이 숫자만 넣어야 합니다. 길이는 8자 이상 11자 이하여야 합니다. - metadata nullable · object
서브몰과 관련된 추가 정보를 key-value 쌍으로 담고 있는 객체입니다. 최대 50개의 key-value 쌍을 포함할 수 있으며 전체 크기는 4kB 이하입니다.
/v1/payouts/sub-malls
상점 하위에 새로운 서브몰을 등록합니다. 서브몰에서 정산받을 은행 계좌 정보를 포함해야 합니다.
* 서브몰 등록은 최대 60초가 소요됩니다. 타임아웃 값을 최소 60초로 설정하세요.
* 더 이상 신규 계약을 받지 않는 API 입니다. 토스페이먼츠 고객센터(1544-7772, support@tosspayments.com)로 문의해주세요.
- subMallId 필수 · string
서브몰의 ID입니다. 최대 길이는 20자입니다.
- account 필수 · object
서브몰에서 정산 금액을 지급받을 계좌 정보를 담은 객체입니다.
- type 필수 · string
서브몰의 타입입니다.
CORPORATE
(법인),INDIVIDUAL
(개인) 중 하나의 값을 넣어주세요. - email 필수 · string
서브몰 이메일 주소입니다.
- phoneNumber 필수 · string
서브몰 연락처입니다.
-
없이 숫자만 넣어야 합니다. - companyName string
서브몰의 상호명입니다. 서브몰의
type
이CORPORATE
일 때 필수로 보내야 하는 파라미터입니다. 최대 길이는 공백을 포함한 한글 30자, 영문 60자입니다. - representativeName string
서브몰의 대표자명입니다. 서브몰의
type
이CORPORATE
일 때 필수로 보내야 하는 파라미터입니다. 최대 길이는 공백을 포함한 한글 20자, 영문 40자입니다. - businessNumber string
서브몰의 사업자등록번호 입니다. 서브몰의
type
이CORPORATE
일 때 필수로 보내야 하는 파라미터입니다. 길이는 10자입니다. - metadata object
서브몰과 관련된 추가 정보를 key-value 쌍으로 담고 있는 객체입니다. 최대 50개의 key-value 쌍을 포함할 수 있으며 전체 크기는 4kB 이하여야 합니다. key와 value 모두 문자열 형식이어야 합니다.
서브몰 등록에 성공하면 생성된 Submall 객체가 돌아옵니다.
서브몰 등록에 실패했다면 HTTP 상태 코드와 함께 에러 객체가 돌아옵니다.
서브몰 등록 API에서 발생할 수 있는 에러를 살펴보세요.
curl --request POST \ --url https://api.tosspayments.com/v1/payouts/sub-malls \ --header 'Authorization: Basic dGVzdF9za196WExrS0V5cE5BcldtbzUwblgzbG1lYXhZRzVSOg==' \ --header 'Content-Type: application/json' \ --data '{"subMallId":"testmall100","account":{"bank":"03","accountNumber":"34000000000011","holderName":"김토페"},"type":"CORPORATE","email":"example@email.com","phoneNumber":"01012341234","companyName":"테스트몰100","representativeName":"김토페","businessNumber":"1200220000"}'
/v1/payouts/sub-malls
상점 하위에 등록되어 있는 서브몰을 조회합니다.
* 서브몰 조회는 최대 60초가 소요됩니다. 타임아웃 값을 최소 60초로 설정하세요.
* 더 이상 신규 계약을 받지 않는 API 입니다. 토스페이먼츠 고객센터(1544-7772, support@tosspayments.com)로 문의해주세요.
서브몰 조회에 성공하면 Submall 객체가 담긴 배열이 돌아옵니다.
서브몰 조회에 실패했다면 HTTP 상태 코드와 함께 에러 객체가 돌아옵니다.
서브몰 조회 API에서 발생할 수 있는 에러를 살펴보세요.
curl --request GET \ --url https://api.tosspayments.com/v1/payouts/sub-malls \ --header 'Authorization: Basic dGVzdF9za196WExrS0V5cE5BcldtbzUwblgzbG1lYXhZRzVSOg=='
/v1/payouts/sub-malls/{subMallId}
submallId
에 해당하는 서브몰의 정보를 새로운 정보로 수정합니다.
* 서브몰 수정은 최대 60초가 소요됩니다. 타임아웃 값을 최소 60초로 설정하세요.
* 더 이상 신규 계약을 받지 않는 API 입니다. 토스페이먼츠 고객센터(1544-7772, support@tosspayments.com)로 문의해주세요.
- subMallId 필수 · string
서브몰의 ID입니다.
- account 필수 · object
서브몰에서 정산 금액을 지급받을 계좌 정보를 담은 객체입니다.
- companyName string
서브몰의 상호명입니다. 서브몰의
type
이CORPORATE
일 때 필수로 보내야 하는 파라미터입니다. 최대 길이는 공백을 포함한 한글 30자, 영문 60자입니다. - representativeName string
서브몰의 대표자명입니다. 서브몰의
type
이CORPORATE
일 때 필수로 보내야 하는 파라미터입니다. 최대 길이는 공백을 포함한 한글 20자, 영문 40자입니다. - businessNumber string
서브몰의 사업자등록번호 입니다. 서브몰의
type
이CORPORATE
일 때 필수로 보내야 하는 파라미터입니다. 길이는 10자입니다. - email string
서브몰 이메일 주소입니다.
- phoneNumber string
서브몰 연락처입니다.
-
없이 숫자만 넣어야 합니다. 길이는 8자 이상 11자 이하여야 합니다. - metadata object
서브몰과 관련된 추가 정보를 key-value 쌍으로 담고 있는 객체입니다. 최대 50개의 key-value 쌍을 포함할 수 있으며 전체 크기는 4kB 이하여야 합니다. key와 value 모두 문자열 형식이어야 합니다.
서브몰 수정에 성공하면 수정된 Submall 객체가 돌아옵니다.
서브몰 수정에 실패했다면 HTTP 상태 코드와 함께 에러 객체가 돌아옵니다.
서브몰 수정 API에서 발생할 수 있는 에러를 살펴보세요.
curl --request POST \ --url https://api.tosspayments.com/v1/payouts/sub-malls/testmall100 \ --header 'Authorization: Basic dGVzdF9za196WExrS0V5cE5BcldtbzUwblgzbG1lYXhZRzVSOg==' \ --header 'Content-Type: application/json' \ --data '{"account":{"bank":"03","accountNumber":"34000000000011","holderName":"김토페"},"companyName":"테스트몰200","representativeName":"김토페","businessNumber":"1200220000"}'
/v1/payouts/sub-malls/{subMallId}/delete
submallId
에 해당하는 서브몰 정보를 삭제합니다.
* 서브몰 삭제는 최대 60초가 소요됩니다. 타임아웃 값을 최소 60초로 설정하세요.
* 더 이상 신규 계약을 받지 않는 API 입니다. 토스페이먼츠 고객센터(1544-7772, support@tosspayments.com)로 문의해주세요.
- subMallId 필수 · string
서브몰의 ID입니다. 최대 길이는 20자입니다.
서브몰 삭제에 성공하면 삭제된 서브몰 아이디가 문자열로 돌아옵니다. 삭제된 서브몰 ID는 다시 사용할 수 없습니다.
서브몰 삭제에 실패했다면 HTTP 상태 코드와 함께 에러 객체가 돌아옵니다.
서브몰 삭제 API에서 발생할 수 있는 에러를 살펴보세요.
curl --request POST \ --url https://api.tosspayments.com/v1/payouts/sub-malls/testmall100/delete \ --header 'Authorization: Basic dGVzdF9za196WExrS0V5cE5BcldtbzUwblgzbG1lYXhZRzVSOg=='
지급대행 정보를 담고 있는 객체입니다.
- payoutKey string
하나의 지급대행 건의 키입니다. 최대 길이는 24자입니다.
- subMallId nullable · string
서브몰의 ID입니다. 최대 길이는 20자입니다.
- payoutDate string
금액이 지급될 날짜와 시간 정보입니다.
yyyyMMdd
형식으로 돌아옵니다. (e.g.20220101
) - payoutAmount number
지급할 금액입니다.
- account nullable · object
정산 금액을 지급받을 계좌 정보를 담은 객체입니다.
- requestedAt string
지급대행을 요청한 날짜와 시간 정보입니다.
yyyyMMddHHmmSS
형식으로 돌아옵니다. (e.g.20220101125959
) - status string
지급대행 상태입니다. 아래와 같은 상태 값을 가질 수 있습니다.
-
REQUESTED
: 지급이 요청된 상태입니다.-
IN_PROGRESS
: 지급을 처리하고 있는 상태입니다.-
COMPLETED
: 서브몰에 지급이 완료된 상태입니다.-
FAILED
: 지급 요청이 실패한 상태입니다.-
CANCELED
: 지급 요청을 취소한 상태입니다. - failure nullable · object
지급대행 요청이 실패하면 보내주는 정보입니다.
status
필드가FAILED
일 때만 정보를 보여줍니다.- code string
오류 타입을 보여주는 에러 코드입니다.
INVALID_ACCOUNT
,TRANSFER_FAILED
두 가지 코드만 돌아옵니다. - message string
에러 메시지입니다. 에러 발생 이유를 알려줍니다.
- code string
- transferSummary string
지급대행으로 입금된 금액의 세부 내용(적요)입니다. 서브몰 통장에 표기되는 정보입니다. 최대 길이는 7자입니다.
- metadata nullable · object
서브몰과 관련된 추가 정보를 key-value 쌍으로 담고 있는 객체입니다. 최대 50개의 key-value 쌍을 포함할 수 있으며 전체 크기는 4kB 이하입니다.
/v1/payouts/sub-malls/settlements/balance
서브몰에 정산하기 전에 상점이 현재 지급할 수 있는 잔액을 먼저 조회합니다. 내 상점 계좌의 잔액이 충분한지 확인할 수 있습니다.
* 지급 가능한 잔액 조회는 최대 60초가 소요됩니다. 타임아웃 값을 최소 60초로 설정하세요.
* 더 이상 신규 계약을 받지 않는 API 입니다. 토스페이먼츠 고객센터(1544-7772, support@tosspayments.com)로 문의해주세요.
지급 가능한 잔액 조회에 성공하면 balance
필드에 잔액 정보가 담긴 객체가 돌아옵니다.
지급 가능한 잔액 조회에 실패했다면 HTTP 상태 코드와 함께 에러 객체가 돌아옵니다.
지급 가능한 잔액 조회 API에서 발생할 수 있는 에러를 살펴보세요.
curl --request GET \ --url https://api.tosspayments.com/v1/payouts/sub-malls/settlements/balance \ --header 'Authorization: Basic dGVzdF9za196WExrS0V5cE5BcldtbzUwblgzbG1lYXhZRzVSOg=='
{ "balance": 2000000}
/v1/payouts/sub-malls/settlements
잔액이 충분하다면 서브몰 정보를 배열로 보내서 지급대행을 요청합니다. 한 번에 처리할 수 있는 배열의 최대 길이는 1000개입니다. 1000개를 초과하는 경우에는 지급대행이 처리되지 않습니다.
* 내부 처리로 인해 11:00시-12:00시 사이에는 지급대행 요청을 할 수 없습니다. 해당 시간대를 피해서 API를 호출하세요.
* 지급대행 요청은 최대 60초가 소요됩니다. 타임아웃 값을 최소 60초로 설정하세요.
* 멱등키를 요청 헤더에 추가하면 중복 지급 없이 안전하게 처리됩니다.
* 더 이상 신규 계약을 받지 않는 API 입니다. 토스페이먼츠 고객센터(1544-7772, support@tosspayments.com)로 문의해주세요.
- subMallId 필수 · string
서브몰의 ID입니다. 최대 길이는 20자입니다.
- payoutDate 필수 · string
정산한 금액을 지급할 날짜 정보입니다.
yyyy-MM-dd
ISO 8601 형식입니다. (e.g.2022-01-01
) - payoutAmount 필수 · integer
정산할 금액입니다.
- transferSummary string
지급대행으로 입금된 금액의 세부 내용(적요)입니다. 서브몰 통장에 표기되는 정보입니다. 최대 길이는 7자입니다.
- metadata object
서브몰과 관련된 추가 정보를 key-value 쌍으로 담고 있는 객체입니다. 최대 50개의 key-value 쌍을 포함할 수 있으며 전체 크기는 4kB 이하여야 합니다. key와 value 모두 문자열 형식이어야 합니다.
지급대행 요청에 성공하면 Payout 객체가 배열에 담겨 돌아옵니다. 요청 후 최초 상태(Payout.status
)는 REQUESTED
입니다. 지급 받는 서브몰마다 각각 지급대행 상태를 가지고 있습니다.
* 요청한 지급대행이 완료됐는지 궁금하다면 웹훅으로 받아볼 수 있습니다. 개발자센터 웹훅 페이지에서 PAYOUT_STATUS_CHANGED
이벤트를 등록해주세요. 웹훅 등록 및 테스트 방법은 웹훅 페이지에서 더 알아보세요.
지급대행 요청에 실패했다면 HTTP 상태 코드와 함께 에러 객체가 돌아옵니다.
지급대행 요청 API에서 발생할 수 있는 에러를 살펴보세요.
* 만약 지급대행에 실패해서 status
값이 FAILED
로 바뀌면, Payout 객체에 failure
값이 추가되어 돌아옵니다. 이 정보로 지급대행 요청이 왜 실패했는지 알 수 있습니다.
curl --request POST \ --url https://api.tosspayments.com/v1/payouts/sub-malls/settlements \ --header 'Authorization: Basic dGVzdF9za196WExrS0V5cE5BcldtbzUwblgzbG1lYXhZRzVSOg==' \ --header 'Content-Type: application/json' \ --data '[{"subMallId":"testmall100","payoutAmount":100,"payoutDate":"2022-01-03"},{"subMallId":"testmall200","payoutAmount":200,"payoutDate":"2022-01-03"}]'
[ { "payoutKey": "FPA1000000001", "requestId": "102200046000003", "subMallId": null, "payoutDate": "20221107", "payoutAmount": 50, "requestedAt": "20221106210031", "account": null, "status": "COMPLETED", "metadata": null, "failure": null, "transferSummary": null }, { "payoutKey": "FPA1000000002", "requestId": "102200046000004", "subMallId": null, "payoutDate": "20221107", "payoutAmount": 50, "requestedAt": "20221106210031", "account": null, "status": "COMPLETED", "metadata": null, "failure": null, "transferSummary": null }]
/v1/payouts/sub-malls/settlements/{payoutKey}/cancel
payoutKey
를 Path 파라미터에 추가해서 요청한 지급대행을 취소합니다. 아직 status
값이 REQUESTED
인 요청 건만 취소할 수 있습니다.
* 지급대행 취소는 최대 60초가 소요됩니다. 타임아웃 값을 최소 60초로 설정하세요.
* 더 이상 신규 계약을 받지 않는 API 입니다. 토스페이먼츠 고객센터(1544-7772, support@tosspayments.com)로 문의해주세요.
- payoutKey 필수 · string
요청한 지급대행 건의 키입니다.
지급대행 취소에 실패했다면 HTTP 상태 코드와 함께 에러 객체가 돌아옵니다.
지급대행 요청 취소 API에서 발생할 수 있는 에러를 살펴보세요.
curl --request POST \ --url https://api.tosspayments.com/v1/payouts/sub-malls/settlements/{payoutKey}/cancel \ --header 'Authorization: Basic dGVzdF9za196WExrS0V5cE5BcldtbzUwblgzbG1lYXhZRzVSOg=='
{ "payoutKey": "FPA1000000001", "requestId": "102200046000003", "subMallId": null, "payoutDate": "20221107", "payoutAmount": 50, "requestedAt": "20221106210031", "account": { "bankCode": "03", "accountNumber": "00123412341234", "holderName": null }, "status": "CANCELED", "metadata": null, "failure": null, "transferSummary": null}
/v1/payouts/sub-malls/settlements/{payoutKey}
payoutKey
를 Path 파라미터에 추가해서 조회하고 싶은 한 건의 지급 정보를 조회합니다.
* 지급대행 단건 조회는 최대 60초가 소요됩니다. 타임아웃 값을 최소 60초로 설정하세요.
* 더 이상 신규 계약을 받지 않는 API 입니다. 토스페이먼츠 고객센터(1544-7772, support@tosspayments.com)로 문의해주세요.
- payoutKey 필수 · string
하나의 지급대행 건의 키입니다. 최대 길이는 24자입니다.
지급대행 단건 조회에 실패했다면 HTTP 상태 코드와 함께 에러 객체가 돌아옵니다.
지급대행 단 건 조회 API에서 발생할 수 있는 에러를 살펴보세요.
curl --request GET \ --url https://api.tosspayments.com/v1/payouts/sub-malls/settlements/FPA1000000001 \ --header 'Authorization: Basic dGVzdF9za196WExrS0V5cE5BcldtbzUwblgzbG1lYXhZRzVSOg=='
{ "payoutKey": "FPA1000000001", "requestId": "102200046000003", "subMallId": null, "payoutDate": "20221107", "payoutAmount": 50, "requestedAt": "20221106210031", "account": { "bankCode": "03", "accountNumber": "00123412341234", "holderName": null }, "status": "COMPLETED", "metadata": null, "failure": null, "transferSummary": null}
/v1/payouts/sub-malls/settlements
지급대행 요청에서 사용한 payoutDate
를 기준으로, 지정한 날짜 사이에 지급되었거나 지급될 예정인 지급대행 건을 조회합니다. 조회를 시작하고 싶은 날짜를 startDate
에, 마치고 싶은 날짜를 endDate
에 Query 파라미터로 추가한 뒤 요청합니다.
* 지급대행 조회는 최대 60초가 소요됩니다. 타임아웃 값을 최소 60초로 설정하세요.
* 더 이상 신규 계약을 받지 않는 API 입니다. 토스페이먼츠 고객센터(1544-7772, support@tosspayments.com)로 문의해주세요.
- startDate 필수 · string
조회를 시작하고 싶은 날짜 정보입니다. ISO 8601 형식인
yyyy-MM-dd
를 사용합니다. (e.g.2022-01-01
) - endDate 필수 · string
조회를 마치고 싶은 날짜 정보입니다.
yyyy-MM-dd
ISO 8601 형식입니다. (e.g.2022-01-01
)
지급대행 조회에 성공하면 각 지급대행 정보를 가지고 있는 Payout 객체의 배열이 돌아옵니다.
지급대행 조회에 실패했다면 HTTP 상태 코드와 함께 에러 객체가 돌아옵니다.
curl --request GET \ --url 'https://api.tosspayments.com/v1/payouts/sub-malls/settlements?startDate=2022-01-01&endDate=2022-01-03' \ --header 'Authorization: Basic dGVzdF9za196WExrS0V5cE5BcldtbzUwblgzbG1lYXhZRzVSOg=='
[ { "payoutKey": "FPA1000000001", "requestId": "102200046000003", "subMallId": null, "payoutDate": "20221107", "payoutAmount": 50, "requestedAt": "20221106210031", "account": null, "status": "COMPLETED", "metadata": null, "failure": null, "transferSummary": null }, { "payoutKey": "FPA1000000002", "requestId": "102200046000004", "subMallId": null, "payoutDate": "20221107", "payoutAmount": 50, "requestedAt": "20221106210031", "account": null, "status": "COMPLETED", "metadata": null, "failure": null, "transferSummary": null }]
프로모션 정보를 조회합니다. 고객이 결제할 때 더욱 간편하게 혜택을 받을 수 있도록 혜택 기간, 금액 조건 등에 따라 할인 금액과 코드, 무이자 할부 혜택을 보여주세요.
전체 프로모션 정보를 담고 있는 객체입니다.
- payType string
결제 종류입니다.
NORMAL
,BILLING
,BRANDPAY
중 하나입니다. - type string
프로모션 종류입니다. 아래 네 가지 값 중 하나가 돌아옵니다. 상세 정보는
type
이름과 같은 객체에 들어있습니다.-
CARD_DISCOUNT
: 카드 즉시 할인입니다.cardDiscount
객체에 관련 정보가 돌아옵니다.-
CARD_INTEREST_FREE
: 카드 무이자 할부입니다.cardInterestFree
객체에 관련 정보가 돌아옵니다.-
CARD_POINT
: 카드 포인트 할인입니다.cardPoint
객체에 관련 정보가 돌아옵니다.-
BANK_DISCOUNT
: 계좌 할인입니다.bankDiscount
객체에 관련 정보가 돌아옵니다. - cardDiscount nullable · object
카드사의 즉시 할인 정보입니다.
- issuerCode string
프로모션을 진행하는 카드 발급사 숫자 코드입니다. 카드사 코드를 참고하세요.
- discountAmount number
할인되는 금액입니다.
- minimumPaymentAmount number
카드사 즉시 할인을 적용할 수 있는 최소 결제 금액입니다.
- maximumPaymentAmount number
카드사 즉시 할인을 적용할 수 있는 최대 결제 금액입니다.
- currency string
통화 정보입니다.
- discountCode string
프로모션 코드입니다. 카드사에서 만든 고유한 값으로 결제할 때 함께 넘겨야 하는 값입니다.
- dueDate string
프로모션을 마치는 시점입니다.
yyyy-MM-dd
형식입니다. 종료일의23:59:59
까지 행사가 유효합니다. - balance number
남은 프로모션 예산입니다. 값이 '0'이면 즉시 할인을 적용할 수 없습니다.
- issuerCode string
- cardInterestFree nullable · object
카드 무이자 할부 정보입니다.
- issuerCode string
프로모션을 진행하는 카드 발급사 숫자 코드입니다. 카드사 코드를 참고하세요.
- minimumPaymentAmount number
무이자 할부를 적용할 수 있는 최소 결제 금액입니다.
- currency string
통화 정보입니다.
- dueDate string
프로모션을 마치는 시점입니다.
yyyy-MM-dd
형식입니다. 종료일의23:59:59
까지 행사가 유효합니다. - installmentFreeMonths array
카드 무이자 할부를 적용할 수 있는 개월 수 입니다.
- issuerCode string
- cardPoint nullable · object
카드 포인트 정보입니다.
- issuerCode string
프로모션을 진행하는 카드 발급사 숫자 코드입니다. 카드사 코드를 참고하세요.
- minimumPaymentAmount number
카드 포인트를 적용할 수 있는 최소 결제 금액입니다.
- currency string
통화 정보입니다.
- dueDate string
프로모션을 마치는 시점입니다.
yyyy-mm-dd
형태입니다. 종료일의23:59:59
까지 행사가 유효합니다.
- issuerCode string
- bankDiscount nullable · object
계좌 할인 정보입니다.
- bankCode string
프로모션을 진행하는 은행 숫자 코드입니다. 은행 코드를 참고하세요.
- discountAmount number
할인 금액입니다.
- minimumPaymentAmount number
계좌 할인을 적용할 수 있는 최소 결제 금액입니다.
- maximumPaymentAmount number
계좌 할인을 적용할 수 있는 최대 결제 금액입니다.
- currency string
통화 정보입니다.
- discountCode string
계좌 할인 프로모션 코드입니다. 은행에서 만든 고유한 값으로 결제할 때 함께 넘겨야 하는 값입니다.
- dueDate string
프로모션을 마치는 시점입니다.
yyyy-mm-dd
형태입니다. 종료일의23:59:59
까지 행사가 유효합니다.
- bankCode string
할인 프로모션 정보와 할부 혜택 정보를 담고 있는 객체입니다.
- discountCards array
카드사의 즉시 할인 정보입니다.
- issuerCode string
프로모션을 진행하는 카드 발급사 숫자 코드입니다. 카드사 코드를 참고하세요.
- discountAmount number
할인 금액입니다.
- balance number
남은 프로모션 예산입니다. 값이 '0'이면 즉시 할인을 적용할 수 없습니다.
- discountCode string
즉시 할인 코드(카드사 고유 번호)로 결제할 때 함께 넘겨야 하는 값입니다.
- dueDate string
프로모션을 마치는 시점입니다.
yyyy-MM-dd
형식입니다. 종료일의23:59:59
까지 행사가 유효합니다. - minimumPaymentAmount number
즉시 할인을 적용할 수 있는 최소 결제 금액입니다.
- maximumPaymentAmount number
즉시 할인을 적용할 수 있는 최대 결제 금액입니다.
- currency string
통화 정보입니다.
- issuerCode string
- interestFreeCards array
카드사의 무이자 할부 정보입니다.
- issuerCode string
카드사 숫자 코드입니다. 카드사 코드를 참고하세요.
- minimumPaymentAmount number
무이자 할부를 적용할 수 있는 최소 결제 금액입니다.
- dueDate string
프로모션을 마치는 시점입니다.
yyyy-MM-dd
형식입니다. 종료일의23:59:59
까지 행사가 유효합니다. - installmentFreeMonths array
무이자 할부를 적용할 수 있는 개월 수입니다.
- issuerCode string
/v1/promotions
전체 프로모션 정보를 조회합니다.
API 직접 실행해보기전체 프로모션 조회에 성공하면 Promotions 객체가 돌아옵니다.
전체 프로모션 조회에 실패했다면 HTTP 상태 코드와 함께 에러 객체가 돌아옵니다.
curl --request GET \ --url https://api.tosspayments.com/v1/promotions \ --header 'Authorization: Basic dGVzdF9za196WExrS0V5cE5BcldtbzUwblgzbG1lYXhZRzVSOg=='
/v1/promotions/card
카드사별 혜택을 조회합니다. 즉시 할인, 무이자 정보가 내려갑니다.
API 직접 실행해보기카드사 혜택 조회에 성공하면 CardPromotion 객체가 돌아옵니다.
카드사 혜택 조회에 실패했다면 HTTP 상태 코드와 함께 에러 객체가 돌아옵니다.
curl --request GET \ --url https://api.tosspayments.com/v1/promotions/card \ --header 'Authorization: Basic dGVzdF9za196WExrS0V5cE5BcldtbzUwblgzbG1lYXhZRzVSOg=='