본문 바로가기
빌링플러스

수시결제 동의 API: 한도 안에서 필요할 때 결제

회원이 동의한 1회·월 한도 안에서 가맹점 시스템이 필요할 때 결제를 요청하는 수시결제 동의 API를 설명합니다.

정기결제는 금액과 날짜가 정해져 있지만, 서비스에 따라 "필요할 때 등록된 카드로 결제"해야 하는 경우가 있습니다. 사용량 추가 요금이나 부가 서비스 결제가 그렇습니다. 빌링플러스에서는 이를 수시결제 동의로 처리합니다. 회원이 1회·월 한도에 동의하면, 가맹점 시스템은 그 한도 안에서 결제를 요청합니다.

정기결제 계약과의 차이

항목정기결제 계약수시결제 동의
금액·시점계약 금액, 청구일그때그때, 가맹점이 요청할 때
실행빌링플러스 배치가맹점 화면 또는 API
실패하면재청구·미납관리즉시 거절 응답, 청구서는 무효
상한계약 금액회원이 동의한 1회·월 한도

동의는 회원이 직접 만듭니다

동의를 만드는 API는 없습니다. 등록창을 열 때 수시결제 방식과 1회·월 한도를 보내면 회원이 등록창에서 한도를 확인하고 카드를 등록하며 동의합니다. 등록 링크나 가입 링크, 담당자 대행 등록으로도 만들 수 있습니다. 같은 카드와 같은 품목명의 동의는 하나만 둘 수 있습니다.

결제 요청

  1. 동의 조회로 이번 달 사용액과 남은 한도, 지금 한 번에 요청할 수 있는 최대 금액을 확인합니다.
  2. POST /v1/charge-consents/{id}/charges에 금액(필요하면 품목명·메모)을 보냅니다. Idempotency-Key가 필요합니다.
  3. 청구서 발행부터 승인까지 한 번에 처리돼 응답에 청구서와 결제 결과가 실립니다.

응답 처리

  • 카드 거절: 정상 응답에 결제 상태 실패가 실리고, 청구서는 무효가 되어 미수로 남지 않습니다.
  • 1회·월 한도 초과, 해지된 동의, 카드 사용 불가: 결제사에 묻지 않고 422로 거절하며 detail.reason에 이유가 실립니다.
  • 같은 동의로 처리 중: 409와 Retry-After가 옵니다.

월 한도는 결과를 기다리는 결제까지 포함해 셉니다. 결과가 나오기 전에 한도가 풀리면 동의한 금액보다 많이 걷힐 수 있기 때문입니다.

웹훅

동의가 만들어지거나 해지되면 이벤트가 나가고, 동의로 일어난 결제·청구서 웹훅에는 동의 번호가 실립니다. 해지는 사유와 함께 남고 되살리지 않습니다. 한도를 바꾸려면 해지한 뒤 다시 동의받습니다.

구현 팁

결제 요청 전에 남은 한도를 확인해 화면에 보여 주면 422가 나기 전에 사용자에게 알릴 수 있습니다. 결제 요청의 멱등키는 가맹점 쪽 주문이나 사용 기록 단위로 만들어, 재시도해도 결제가 한 건만 생기게 하세요.

동의 결제도 일반 결제와 같은 승인 경로를 지나므로 결제 내역·카드 영수증·취소가 똑같이 동작합니다.

다음 단계

필드와 오류 코드는 수시결제 동의 문서에, 창 열기는 등록창 문서에 있습니다.

우리 사업에 맞게 시작하고 싶다면

회원 규모와 지금의 결제 방식을 알려 주시면 담당자가 도입 방법을 안내해 드립니다.