Benta API

API 문서

Benta Payments API는 결제 처리 서비스로, 모바일 알림을 통한 은행 입금 확인을 자동화하는 시스템입니다. 이 문서에서는 API의 사용 방법을 상세히 설명합니다.

결제 흐름도

Benta 결제 시스템은 다음과 같은 흐름으로 동작합니다.

기본 결제 흐름

  1. 결제 생성

    • 클라이언트 서버에서 Benta API를 통해 결제를 생성합니다.
    • API 응답으로 payToken을 받습니다.
  2. 결제 페이지 공유

    • 고객에게 https://checkout.benta.im/{payToken} 링크를 전달합니다.
  3. 고객 결제 진행

    • 고객은 결제 페이지에서 결제 정보를 입력합니다.
    • 고객이 입금을 완료합니다.
  4. 결제 승인 처리

    • Benta 앱에서 입금 알림을 인식하고 결제 상태를 '승인 대기 중'으로 변경합니다.
    • 결제 처리는 다음 두 가지 방식으로 진행할 수 있습니다.

방식 1: Webhook을 통한 결제 처리

sequenceDiagram Customer->>Checkout Page: 결제 정보 입력 및 입금 Benta App->>Benta Server: 입금 알림 인식 Benta Server->>Client Server: Webhook으로 결제 알림 전송 Client Server->>Benta Server: 결제 검증 요청 POST /payments/confirm Benta Server->>Benta Server: 결제 검증 처리 Benta Server->>Client Server: 결제 검증 결과 전달 Client Server->>Customer: 결제 처리

방식 2: Polling 방식으로 결제 처리

sequenceDiagram Customer->>Checkout Page: 결제 정보 입력 및 입금 Benta App->>Benta Server: 입금 알림 인식 Benta Server-->>Benta Server: 결제 상태 '승인 대기 중'으로 변경 loop 주기적 폴링 Client Server->>Benta Server: GET /callback/rest alt 승인 대기 중인 결제가 있는 경우 Benta Server->>Benta Server: 승인 대기 중인 결제 처리 Benta Server->>Client Server: 처리된 결제 정보 전달 Client Server->>Client Server: 결제 완료 처리 Client Server->>Customer: 결제 처리 else 승인 대기 중인 결제가 없는 경우 Benta Server->>Client Server: 비어있는 결과 반환 end end

기술적 세부 사항

1. 결제 생성 API

  • 엔드포인트: POST /api/payments
  • 응답으로 payToken 제공

2. Webhook 결제 알림

  • Benta 서버는 설정된 Webhook URL로 결제 상태 변경 시 알림을 전송
  • 클라이언트 서버는 이 알림을 받아 결제 검증 요청
  • 결제 검증 엔드포인트: POST /payments/confirm

3. Polling을 통한 결제 확인

  • 엔드포인트: GET /callback/rest
  • 클라이언트 서버가 주기적으로 API를 호출하여 승인 대기 중인 결제 확인
  • 승인 대기 중인 결제가 있으면 Benta 서버에서 자동으로 처리
  • 처리된 결제 정보를 클라이언트 서버에 반환

보안 고려사항

  • 결제 토큰 관리
  • 타임아웃 처리

결제 상태 흐름

  1. 결제 생성
  2. 입금자 정보 입력 대기 중
  3. 입금 확인 중
  4. 승인 대기 중
  5. 결제 완료