충전 요청

은행 입금을 통한 자동충전 요청을 생성합니다.

POSThttps://bank.dmolto.com/request

새로운 충전 요청을 생성합니다. 생성된 요청은 pending 상태이며, 실제 입금이 확인되면 충전 확인 API로 승인됩니다.

요청 본문

필드타입필수제한예시
amount

충전 요청 금액. KRW 정수입니다.

integer필수최소 충전 금액(기본 1,000원) 이상10000
depositor

실제 계좌에 입금할 입금자명입니다. 공백이나 숫자, 영문은 사용할 수 없습니다.

string필수한글 2~4글자"홍길동"
platform

요청을 생성한 서비스 식별자입니다. 예: my-service, shopping-mall, game-server

string필수—"my-service"
ref

플랫폼에서 생성한 고유 주문 번호입니다. 같은 platform과 ref를 재사용하지 마세요.

string필수—"order_1234"
callback_url

이 충전 요청의 승인 또는 거절 결과를 받을 요청 단위 Webhook URL입니다.

string선택공개 호스트명 또는 IPv4, HTTP/HTTPS, 포트 1~65,535, 최대 2,048자"http://141.11.195.85:12345/webhooks/dmolto"

서버에 도메인이 없으면 공개 IPv4를 그대로 입력해도 됩니다. dmolto가 Worker로 전달하기 전에 IP 뒤에.nip.io를 자동으로 붙입니다. 예를 들어 141.11.195.85는 내부에서141.11.195.85.nip.io로 변환되며, dmolto Origin 서버가 사용자 서버에 직접 접속하지 않습니다.

curl -X POST "https://bank.dmolto.com/request" \
  -H "Authorization: $BANK_API_KEY" \
  -H "Content-Type: application/json" \
  --max-time 10 \
  -d '{
    "amount": 10000,
    "depositor": "홍길동",
    "platform": "my-service",
    "ref": "order_1234",
    "callback_url": "http://141.11.195.85:12345/webhooks/dmolto"
  }'

응답

201충전 요청 생성 성공

{
  "charge": {
    "id": "chg_example123",
    "status": "pending",
    "expires_at": "2026-08-15T03:03:00Z"
  }
}

같은 platform/ref가 이미 처리된 요청이면 멱등 응답이 반환될 수 있습니다.

200멱등 응답 예시

{
  "charge": {
    "id": "chg_example123",
    "status": "approved",
    "expires_at": "2026-08-15T03:03:00Z"
  },
  "idempotent_replay": true
}

주요 오류

상태error
400invalid_request
400invalid_callback_url
400amount_below_minimum
403plan_billing_forbidden
409pending_charge_exists
409invalid_plan_payment
429cooldown_active
429rate_limit_exceeded