지급대행 API

가맹점 하위 상점인 서브몰의 정산금액을 지급대행 API를 사용해서 지급할 수 있습니다. 서브몰 지급 업무 부담을 덜고, 정산 단계도 줄여보세요.

API 사용하기에서 API 사용에 필요한 인증 정보를 구성해두세요.

서브몰에 바로 정산해보세요

지급대행 관련 API는 크게 서브몰을 등록하고 관리하는 API와 등록된 서브몰에 금액을 지급할 때 사용하는 지급관련 API로 나뉩니다. 서브몰 정보를 등록하고, 지급할 수 있는 잔액이 충분한 지 확인한 뒤 정산 요청 API를 호출해서 지급을 완료하는 과정으로 이루어집니다.

서브몰 정보 관리하기

먼저 가맹점에서 API를 통해 서브몰 정보를 등록해둡니다.

서브몰 정보에는 정산받을 은행계좌 정보가 포함되어야 합니다.

요청
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.tosspayments.com/v1/payout-submalls"))
    .header("Authorization", "Basic dGVzdF9ha19aT1J6ZE1hcU4zd1FkNWs2eWdyNUFrWVhRR3d5Og==")
    .header("Content-Type", "application/json")
    .method("POST", HttpRequest.BodyPublishers.ofString("{\"subMallId\":\"testmall100\",\"companyName\":\"테스트몰100\",\"representativeName\":\"김토페\",\"businessNumber\":\"1200220000\",\"account\":{\"bank\":\"기업\",\"accountNumber\":\"34000000000011\"}}"))
    .build();
HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());

아래와 같이 Path 파라미터에 subMallId를 포함해 서브몰 정보를 수정하거나 삭제하는 요청을 보낼 수 있습니다.

서브몰을 삭제하면 서브몰 ID가 응답으로 돌아오고, 삭제된 서브몰 ID는 다시 사용할 수 없습니다.

요청
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.tosspayments.com/v1/payouts/sub-malls/testmall100/delete"))
    .header("Authorization", "Basic dGVzdF9ha19aT1J6ZE1hcU4zd1FkNWs2eWdyNUFrWVhRR3d5Og==")
    .method("POST", HttpRequest.BodyPublishers.noBody())
    .build();
HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());

지급대행 요청하기

지급대행 요청을 하기 전에 잔액조회 API로 가맹점의 계좌 잔액이 서브몰에 지급할 수 있을만큼 충분한지 확인해보세요. 잔액이 충분하면 지급대행 요청 API를 사용할 수 있습니다.

지급대행을 요청할 때는 아래와 같이 서브몰 ID와 지급할 액수, 지급할 날짜를 요청 본문에 포함해야 합니다.

요청
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.tosspayments.com/v1/payouts/sub-malls/testmall100/delete"))
    .header("Authorization", "Basic dGVzdF9ha19aT1J6ZE1hcU4zd1FkNWs2eWdyNUFrWVhRR3d5Og==")
    .header("Content-Type", "application/json")
    .method("POST", HttpRequest.BodyPublishers.ofString("{\"subMallId\":\"testmall100\",\"payoutAmount\":\"10000\",\"payoutDate\":\"2021-01-10\"}"))
    .build();
HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());

요청에 성공하면 HTTP 200 OK와 함께 빈 본문이 돌아옵니다.


지급대행 관련 API에 대해 자세히 알아보세요

  • 더 궁금한 내용이 있나요?자주 묻는 질문
  • 코드 샘플을 참고하세요TossPayments GitHub
  • 기술지원이 필요한가요?디스코드 채팅|이메일 보내기