부가 API는 계약 체결 이후에 테스트를 포함한 사용 가능합니다.
지급대행은 오픈마켓에서 발생한 매출을 토스페이먼츠가 오픈마켓을 대신하여 셀러(입점 판매자)에게 지급하는 서비스입니다. 직접 수많은 셀러에게 정산할 필요 없이, 정산 업무를 토스페이먼츠한테 맡기고 자금 흐름을 더 효율적으로 관리할 수 있어요.
토스페이먼츠와 직접 계약하지 않은 셀러에게 토스페이먼츠가 정산금을 보내야 되기 때문에 KYC 등 리스크 검토 절차가 있습니다. 그리고 연동 측면에서도 더 강화된 보안을 요구합니다. Request Body가 있는 지급대행 POST 요청은 모두 ENCRYPTION 보안을 사용합니다. ENCRYPTION 보안은 토스페이먼츠에서 발급하는 보안 키를 사용해서 API의 Request Body를 JWE로 암호화하는 방식입니다. 자세한 암호화 방법은 지급대행 가이드에서 확인해주세요.
오픈마켓 쇼핑몰에서 셀러에게 지급할 수 있는 정산 잔액 정보입니다.
- pendingAmount object
셀러에게 지급할 수 없는 잔액 정보입니다. 발생한 매출이 정산 주기 2일 전에
pendingAmount금액으로 업데이트됩니다. 토스페이먼츠 정산 주기가 지난 금액은availableAmount로 전환됩니다.- currency string
통화입니다. 현재는
KRW만 지원합니다. - value number
잔액입니다.
- currency string
- availableAmount object
셀러에게 지급할 수 있는 잔액 정보입니다.
- currency string
통화입니다. 현재는
KRW만 지원합니다. - value number
잔액입니다.
- currency string
/v2/balances셀러에게 지급할 수 있는 정산 금액을 조회합니다.
잔액 조회에 성공하면 Balance 객체가 돌아옵니다.
잔액 조회에 실패하면 에러 객체가 돌아옵니다.
오픈마켓에 입점되어 있는 셀러의 사업자, 계좌 정보입니다.
- id string
토스페이먼츠에서 발급하는 셀러의 고유 식별자입니다. 셀러 조회, 삭제, 지급대행 요청에 사용됩니다. 셀러의 상태 및 지급대행 상태가 바뀌어도
id는 바뀌지 않고, 삭제된id는 다시 발급되지 않습니다. 최대 길이는 35자입니다. - refSellerId nullable · string
오픈마켓 상점에서 직접 등록하는 셀러의 고유 식별자입니다. 연동 중에 참고할 수 있는 값입니다. 등록 이후에 수정할 수 없고, 삭제된 셀러의
refSellerId는 다시 사용할 수 없습니다. 허용된 길이는 7-20자 입니다. - businessType string
사업자 유형입니다.
INDIVIDUAL(개인),INDIVIDUAL_BUSINESS(개인사업자),CORPORATE(법인사업자) 중 하나입니다. - company nullable · object
법인사업자 또는 개인사업자 셀러의 정보입니다.
- name string
사업자명입니다
- representativeName string
대표자명입니다.
- businessRegistrationNumber string
사업자번호입니다
- email string
사업자 이메일입니다. 최대 길이는 100자입니다. 해당 이메일로 KYC 심사 안내가 전송됩니다.
- phone string
사업자 전화번호입니다.
- name string
- individual nullable · object
개인 셀러의 정보입니다.
- name string
개인의 이름입니다.
- email string
개인 이메일입니다. 최대 길이는 100자입니다. 해당 이메일로 KYC 심사 안내가 전송됩니다.
- phone string
개인 전화번호입니다.
- name string
- status string
셀러 상태입니다. 셀러 상태가 바뀌면
seller.changed웹훅이 발송됩니다.-
APPROVAL_REQUIRED: 지급대행이 불가능한 상태입니다. 개인 및 개인사업자 셀러 등록 직후의 상태이며, 본인인증이 필요합니다.-
PARTIALLY_APPROVED: 일주일 동안 1천만원까지 지급대행이 가능한 상태입니다. 등록 직후의 법인사업자 셀러 또는 본인인증을 완료한 개인 및 개인사업자 셀러의 상태입니다.-
KYC_REQUIRED: 지급대행이 불가능한 상태입니다. 일주일 동안 1천만원을 초과하는 금액을 지급 요청하면 셀러는 해당 상태로 변경됩니다. 셀러가 KYC 심사를 완료해야 합니다.-
APPROVED: 금액 제한 없이 지급대행이 가능한 상태입니다. KYC 심사가 정상적으로 완료된 셀러의 상태입니다. - account object
셀러가 정산금을 지급받을 계좌 정보입니다.
- metadata nullable · object
셀러와 관련된 추가 정보를 key-value 쌍으로 담고 있는 객체입니다. 최대 5개의 키-값(key-value) 쌍입니다. 키는
[,]를 사용하지 않는 최대 40자의 문자열, 값은 최대 2000자의 문자열입니다.
/v2/sellers오픈마켓에 입점해있는 셀러의 정보를 토스페이먼츠에 등록합니다. 셀러의 사업자번호, 계좌 유효성를 검증합니다.
셀러 등록은 지급대행 서비스의 POST 요청입니다. ENCRYPTION 보안으로 요청을 보내주세요.
- refSellerId 필수 · string
오픈마켓 상점에서 발급하는 셀러의 고유 식별자입니다. 연동 중에 참고할 수 있는 값입니다. 등록 이후에 수정할 수 없고, 삭제된 셀러의
refSellerId는 다시 사용할 수 없습니다. 허용된 길이는 7-20자 입니다. - businessType 필수 · string
사업자 유형입니다.
INDIVIDUAL(개인),INDIVIDUAL_BUSINESS(개인사업자),CORPORATE(법인사업자) 중 하나입니다. - company object
법인사업자 또는 개인사업자 셀러 정보입니다.
businessType이INDIVIDUAL_BUSINESS또는CORPORATE이면 필수입니다.- name 필수 · string
사업자명입니다.
- representativeName 필수 · string
대표자명입니다.
- businessRegistrationNumber 필수 · string
사업자번호입니다.
-없이 10자리 사업자번호 숫자만 입력해주세요. - email 필수 · string
이메일입니다
- phone 필수 · string
사업자 전화번호입니다.
-없이 숫자로만 구성된 최소 8자의 문자열입니다.
- name 필수 · string
- individual object
개인 셀러 정보입니다.
businessType이INDIVIDUAL이면 필수입니다.- name 필수 · string
개인의 이름입니다.
- email 필수 · string
이메일입니다
- phone 필수 · string
전화번호입니다.
-없이 숫자로만 구성된 최소 8자의 문자열입니다.
- name 필수 · string
- account 필수 · object
셀러가 정산 금액을 지급받을 계좌 정보입니다.
- metadata object
셀러와 관련된 추가 정보를 key-value 쌍으로 담고 있는 JSON 객체입니다. 최대 5개의 키-값(key-value) 쌍입니다. 키는
[,]를 사용하지 않는 최대 40자의 문자열, 값은 최대 2000자의 문자열입니다.
셀러 등록에 성공하면 JWE로 암호화된 Seller 객체가 돌아옵니다. 보안 키로 복호화해서 응답 값을 확인해주세요.
셀러 등록에 실패하면 JWE로 암호화된 에러 객체가 돌아옵니다. 보안 키로 복호화해서 응답 값을 확인해주세요.
셀러 등록에서 발생할 수 있는 에러를 살펴보세요.
/v2/sellers/{id}등록된 셀러 정보를 수정합니다. 수정하고 싶은 필드만 Request Body 파라미터로 보내주세요. 파라미터를 보내지 않으면 정보가 바뀌지 않습니다. 데이터를 삭제하고 싶다면 파라미터의 값을 null로 보내주세요. 등록할 때 필수 값이었던 필드는 삭제할 수 없습니다.
셀러 수정은 지급대행 서비스의 POST 요청입니다. ENCRYPTION 보안으로 요청을 보내주세요.
- id 필수 · string
수정하고 싶은 Seller 객체의
id입니다. 토스페이먼츠에서 발급한 값이며, 오픈마켓 상점에서 발급한refSellerId와 다른 값입니다.
- company object
법인사업자 또는 개인사업자 셀러 정보입니다.
- name 필수
사업자명입니다.
- representativeName 필수
대표자명입니다.
- email 필수
사업자 이메일입니다.
- phone 필수
사업자 전화번호입니다.
-없이 숫자로만 구성된 최소 8자의 문자열입니다.
- name 필수
- individual object
개인 셀러 정보입니다.
- email 필수
이메일입니다.
- phone 필수
전화번호입니다.
-없이 숫자로만 구성된 최소 8자의 문자열입니다.
- email 필수
- account object
셀러에서 정산 금액을 지급받을 계좌 정보입니다.
- bankCode 필수
계좌의 은행 코드입니다. 은행 코드와 증권사 코드를 참고하세요.
- accountNumber 필수
계좌번호입니다.
-없이 숫자만 입력해주세요. 최대 길이는 14자입니다. - holderName 필수
계좌 예금주입니다. 최대 길이는 공백을 포함한 한글 30자, 영문 60자입니다.
- bankCode 필수
- metadata 필수
셀러와 관련된 추가 정보를 key-value 쌍으로 담고 있는 JSON 객체입니다. 최대 5개의 키-값(key-value) 쌍입니다. 키는
[,]를 사용하지 않는 최대 40자의 문자열, 값은 최대 2000자의 문자열입니다.
셀러 수정에 성공하면 JWE로 암호화된 Seller 객체가 돌아옵니다. 보안 키로 복호화해서 응답 값을 확인해주세요.
셀러 수정에 실패하면 JWE로 암호화된 에러 객체가 돌아옵니다. 보안 키로 복호화해서 응답 값을 확인해주세요.
셀러 수정에서 발생할 수 있는 에러를 살펴보세요.
/v2/sellers/{id}등록된 셀러를 삭제합니다. 삭제한 셀러의 id 식별자는 다시 발급되지 않고 조회가 불가능합니다.
- id 필수 · string
삭제하고 싶은 Seller 객체의
id입니다. 토스페이먼츠에서 발급한 값이며, 오픈마켓 상점에서 발급한refSellerId와 다른 값입니다.
셀러 삭제에 성공하면 deleted-entity 객체가 돌아옵니다.
셀러 삭제에 실패하면 에러 객체가 돌아옵니다.
셀러 삭제에서 발생할 수 있는 에러를 살펴보세요.
/v2/sellers/{id}토스페이먼츠에 등록한 하나의 셀러를 조회합니다. 삭제되지 않은 셀러만 조회할 수 있어요.
- id 필수 · string
조회하고 싶은 Seller 객체의
id입니다. 토스페이먼츠에서 발급한 값이며, 오픈마켓 상점에서 발급한refSellerId와 다른 값입니다.
셀러 단건 조회에 성공하면 Seller 객체가 돌아옵니다.
셀러 단건 조회에 실패하면 에러 객체가 돌아옵니다.
셀러 단건 조회에서 발생할 수 있는 에러를 살펴보세요.
/v2/sellers토스페이먼츠에 등록한 셀러 목록을 조회합니다. 삭제되지 않은 셀러만 조회할 수 있어요.
* 라이브 환경에서 비정상적으로 많은 요청을 보내면 429 Too Many Requests 상태 코드가 내려올 수 있습니다.
- limit integer
조회하고 싶은 셀러 개수입니다. 기본 값은
10입니다. 설정할 수 있는 최대값은10000입니다. - startingAfter string
특정 셀러의
id입니다. 해당id의 셀러 다음으로 등록된 셀러부터 조회됩니다. 기본 값은 최초에 등록된 셀러입니다.
셀러 목록 조회에 성공하면 seller-list 객체가 돌아옵니다. entityBody에 다음과 같은 필드가 있습니다.
- hasMore boolean
더 조회할 수 있는 데이터가 있는지 알려줍니다. 마지막 데이터라면
false, 다음 데이터가 있다면true입니다. - size integer
조회된 객체의 개수입니다.
items의 크기입니다. - nextCursor nullable · stirng
다음 조회 시
startingAfter로 설정하면 되는 커서입니다. 만약에 더 조회할 데이터 없다면null입니다. - items array
Seller 객체 목록입니다.
셀러 목록 조회에 실패하면 에러 객체가 돌아옵니다.
셀러 목록 조회에서 발생할 수 있는 에러를 살펴보세요.
지급대행 요청 정보입니다.
- id string
토스페이먼츠에서 발급하는 지급대행 요청의 고유 식별자입니다. 지급대행 취소, 조회 등에 사용됩니다. 최대 길이는 35자입니다.
- refPayoutId nullable · string
지급대행 상점에서 직접 발급하는 지급대행 요청의 고유 식별자입니다. 연동 중에 참고할 수 있는 값입니다. 등록 이후에 수정할 수 없고, 같은 값을 다시 사용할 수 없습니다. 최대 길이는 50자입니다.
- destination string
정산금을 지급받는 셀러입니다. Seller 객체의
id값입니다. - scheduleType string
지급대행의 유형입니다. 아래 둘 중 하나입니다.
-
EXPRESS: 바로지급입니다. 요청한 당일 이내 정산이 지급됩니다.-
SCHEDULED: 예약지급입니다. 요청일을 설정해서 정산 지급을 예약합니다. - payoutDate string
yyyy-MM-dd형식의 지급일입니다. - amount object
셀러에게 지급하는 정산 금액입니다.
- currency string
통화입니다. 현재는
KRW만 지원합니다. - value number
잔액입니다.
- currency string
- transactionDescription string
이체 내역에 표시되는 적요입니다. 최대 길이는 7자입니다.
- requestedAt string
지급대행이 요청된 시점입니다.
yyyy-MM-dd'T'HH:mm:ss±hh:mm형식입니다. - status string
지급대행 상태입니다. 지급대행 상태가 바뀌면
payout.changed웹훅이 발송됩니다.-
REQUESTED: 지급이 요청되었지만 아직 처리되지 않은 상태입니다.REQUESTED상태일 때만 지급대행 요청을 취소할 수 있습니다.-
IN_PROGRESS: 지급을 처리하고 있는 상태입니다.-
COMPLETED: 셀러에 지급이 완료된 상태입니다.-
FAILED: 지급 요청이 실패한 상태입니다.-
CANCELED: 지급 요청이 취소된 상태입니다. - error nullable · object
지급대행 요청에서 일어난 에러 객체입니다.
- metadata nullable · object
지급과 관련된 추가 정보를 key-value 쌍으로 담고 있는 객체입니다. 최대 5개의 키-값(key-value) 쌍입니다. 키는
[,]를 사용하지 않는 최대 40자의 문자열, 값은 최대 2000자의 문자열입니다.
/v2/payouts지급 대상 셀러에게 정산 금액을 이체합니다. 요청 시점에 잔액이 부족하면 지급이 실패합니다.
지급대행 요청은 지급대행 서비스의 POST 요청입니다. ENCRYPTION 보안으로 요청을 보내주세요.
최대 100건의 지급대행을 한 번에 요청할 수 있습니다. 하지만 하나의 요청이 실패하면 요청 모두 실패하고 첫 번째 실패 건에 대한 에러 객체가 응답으로 돌아옵니다. 1건의 지급대행 요청에는 10억 미만의 정산 금액을 이체할 수 있습니다.
지급대행으로 셀러에게 지급한 정산 금액은 회수하기 어렵습니다. 토스페이먼츠는 지급 관련 책임이 없기 때문에 지급대행 서비스를 신중하게 사용해주세요.
* 지급대행 요청 API를 라이브 환경에서 테스트하면 수수료가 부과됩니다.- refPayoutId 필수 · string
상점에서 직접 발급하는 지급대행 식별자입니다. 각 지급대행 요청 건에 고유 값을 발급해야 되고 지급대행 상점에서 참고용으로 사용할 수 있습니다.
- destination 필수 · string
정산금을 지급받는 셀러입니다. Seller 객체의
id값입니다. - scheduleType 필수 · string
지급대행의 유형입니다. 아래 둘 중 하나입니다.
-
EXPRESS: 바로지급입니다. 요청한 당일 이내 정산금이 지급됩니다. 바로지급를 요청할 수 있는 시간은 영업일 08:00~15:00입니다.-
SCHEDULED: 예약지급입니다. 요청일을 설정해서 정산금 지급을 예약합니다. - payoutDate string
yyyy-MM-dd형식의 지급일입니다. 지급대행 유형이SCHEDULED일 때는 필수입니다. 지급일은 미래에 1년 이내에 있는 영업일로만 설정할 수 있어요. 휴일, 공휴일, 과거일자로 설정하면 오류가 발생해요. - amount 필수 · object
지급 금액 정보입니다.
- transactionDescription 필수 · string
이체 내역에 표시되는 적요입니다. 최대 길이는 7자입니다.
- metadata object
요청과 관련된 추가 정보를 key-value 쌍으로 담고 있는 객체입니다. 최대 5개의 키-값(key-value) 쌍입니다. 키는
[,]를 사용하지 않는 최대 40자의 문자열, 값은 최대 2000자의 문자열입니다.
지급대행 요청에 성공하면 JWE로 암호화된 payout-list 객체가 돌아옵니다. 보안 키로 복호화해서 응답 값을 확인해주세요.
객체의 entityBody 필드의 items에서 Payout 객체 목록을 확인할 수 있습니다.
지급대행 요청에 실패하면 JWE로 암호화된 에러 객체가 돌아옵니다. 보안 키로 복호화해서 응답 값을 확인해주세요.
지급대행 요청에 실패하면 요청 건 모두 실패하고 요청 건 중에 첫 번째 에러에 대한 에러 객체가 돌아옵니다.
지급대행 요청에서 발생할 수 있는 에러를 살펴보세요.
/v2/payouts/{id}/cancelREQUESTED 상태의 지급대행 요청 건을 취소합니다. 이미 처리 중이거나 완료된 지급대행 요청 건은 취소할 수 없습니다.
- id 필수 · string
취소하고 싶은 Payout 객체의
id입니다.
지급대행 요청 취소에 성공하면 status가 CANCELED로 바뀐 Payout 객체가 돌아옵니다.
지급대행 요청 취소에 실패하면 에러 객체가 돌아옵니다.
지급대행 요청 취소에서 발생할 수 있는 에러를 살펴보세요.
/v2/payouts/{id}지급 요청 한 건을 조회합니다.
- id 필수 · string
조회하고 싶은 Payout 객체의
id입니다.
지급 요청 단건 조회에 성공하면 Payout 객체가 돌아옵니다.
지급 요청 단건 조회에 실패하면 에러 객체가 돌아옵니다.
지급 요청 단건 조회에서 발생할 수 있는 에러를 살펴보세요.
/v2/payouts지급 요청 목록을 조회합니다.
* 라이브 환경에서 비정상적으로 많은 요청을 보내면 429 Too Many Requests 상태 코드가 내려올 수 있습니다.
- limit integer
조회하고 싶은 지급대행 요청건의 개수입니다. 기본 값은
10이고, 설정할 수 있는 최대값은10000입니다. - startingAfter string
커서로 사용할 지급대행 요청건의
id입니다. 설정한id의 지급대행 요청건 다음으로 등록된 요청건부터 조회됩니다. 설정하지 않으면 최초의 지급대행 요청건부터 조회됩니다. - payoutDateGte string
커서로 사용할 지급일입니다. 해당 지급일과 같거나 더 이후(이상)에 발생하는 지급대행 요청 건을 조회합니다.
- payoutDateLte string
지급일입니다. 해당 지급일과 같거나 더 이전(이하)에 발생하는 지급대행 요청 건을 조회합니다.
지급대행 요청에 payout-list 객체가 돌아옵니다. entityBody에 다음과 같은 필드가 있습니다.
- hasMore boolean
더 조회할 수 있는 데이터가 있는지 알려줍니다. 마지막 데이터라면
false, 다음 데이터가 있다면true입니다. - size integer
조회된 객체의 개수입니다.
items의 크기입니다. - nextCursor nullable · stirng
다음 조회 시
startingAfter로 설정하면 되는 커서입니다. 만약에 더 조회할 데이터 없다면null입니다. - items array
Payout 객체 목록입니다.
지급 요청 목록 조회에 실패하면 에러 객체가 돌아옵니다.
계좌인증은 계좌번호와 소유자 정보를 기반으로 계좌의 유효성과 일치 여부를 확인하는 서비스입니다.
가상계좌 환불이나 지급대행 셀러 등록 과정에서 계좌번호를 수취할 때, 해당 계좌번호가 유효한지 사전에 확인하는 데 사용할 수 있습니다.
** 테스트 환경에서는 실제 인증 절차를 거치지 않고, Mock 데이터가 응답으로 제공됩니다.
/v2/bank-accounts/lookup-holder-name계좌번호를 입력하면 해당 계좌의 예금주명을 반환합니다.
- bankCode 필수 · string
계좌의 은행 코드입니다. 은행 코드와 증권사 코드를 참고해서 두 자리 코드 또는 세 자리 코드를 사용해주세요.
- accountNumber 필수 · string
계좌번호입니다. - 없이 숫자만 입력해주세요. 최대 길이는 14자입니다.
계좌번호로 예금주명 조회에 성공했다면 예금주명(holderName)이 돌아옵니다.
계좌번호로 예금주명 조회에 실패했다면 HTTP 상태 코드와 함께 에러 객체가 돌아옵니다.
/v2/bank-accounts/validate계좌번호를 입력하면 해당 계좌가 유효한지 확인합니다.
- bankCode 필수 · string
계좌의 은행 코드입니다. 은행 코드와 증권사 코드를 참고해서 두 자리 코드 또는 세 자리 코드를 사용해주세요.
- accountNumber 필수 · string
계좌번호입니다. - 없이 숫자만 입력해주세요. 최대 길이는 14자입니다.
확인에 성공했다면 확인 결과(isValid)가 돌아옵니다.
확인에 실패했다면 HTTP 상태 코드와 함께 에러 객체가 돌아옵니다.
/v2/bank-accounts/verify-identifier계좌번호와 식별자가 일치하는지 여부를 반환합니다.
- bankCode 필수 · string
계좌의 은행 코드입니다. 은행 코드와 증권사 코드를 참고해서 두 자리 코드 또는 세 자리 코드를 사용해주세요.
- accountNumber 필수 · string
계좌번호입니다. - 없이 숫자만 입력해주세요. 최대 길이는 14자입니다.
- identityNumber 필수 · string
계좌 소유자의 식별자입니다. 개인 계좌의 경우 생년월일(YYMMDD)이며, 법인 계좌의 경우 사업자등록번호입니다. - 없이 숫자만 입력해주세요.
일치 확인에 성공했다면 확인 결과(isValid)가 돌아옵니다.
일치 확인에 실패했다면 HTTP 상태 코드와 함께 에러 객체가 돌아옵니다.
/v2/bank-accounts/verify-holder-name계좌번호와 예금주 이름이 일치하는지 여부를 반환합니다.
- bankCode 필수 · string
계좌의 은행 코드입니다. 은행 코드와 증권사 코드를 참고해서 두 자리 코드 또는 세 자리 코드를 사용해주세요.
- accountNumber 필수 · string
계좌번호입니다. - 없이 숫자만 입력해주세요. 최대 길이는 14자입니다.
- holderName 필수 · string
예금주입니다. 최대 길이는 공백을 포함한 한글 30자, 영문 60자입니다.
일치 확인에 성공했다면 확인 결과(isValid)가 돌아옵니다.
일치 확인에 실패했다면 HTTP 상태 코드와 함께 에러 객체가 돌아옵니다.
/v2/bank-accounts/verify-holder-real-name계좌번호와 예금주명, 그리고 식별자(생년월일/사업자번호)가 일치하는지 여부를 반환합니다.
- bankCode 필수 · string
계좌의 은행 코드입니다. 은행 코드와 증권사 코드를 참고해서 두 자리 코드 또는 세 자리 코드를 사용해주세요.
- accountNumber 필수 · string
계좌번호입니다. - 없이 숫자만 입력해주세요. 최대 길이는 14자입니다.
- holderName 필수 · string
예금주입니다. 최대 길이는 공백을 포함한 한글 30자, 영문 60자입니다.
- identityNumber 필수 · string
계좌 소유자의 식별자입니다. 개인 계좌의 경우 생년월일(YYMMDD)이며, 법인 계좌의 경우 사업자등록번호입니다. - 없이 숫자만 입력해주세요.
일치 확인에 성공했다면 확인 결과(isValid)가 돌아옵니다.
일치 확인에 실패했다면 HTTP 상태 코드와 함께 에러 객체가 돌아옵니다.