Skip to content

입금 내역 확인 ​

고객이 발급된 주소로 테스트넷 USDT를 전송하면 네트워크 컨펌과 서비스 처리에 시간이 걸릴 수 있습니다. 입금 거래를 식별할 때는 잔액 변화만 보지 않고 입금 API를 사용합니다.

외부 입금 탐지 ​

bash
deposit_response="$(
  wallet_request GET "/deposits?account_id=$ACCOUNT_ID&type=EXTERNAL&after_id=0&limit=100"
)"
printf '%s\n' "$deposit_response" | jq

입금 cursor 조회에는 type=EXTERNAL 또는 type=INTERNAL이 필요합니다. 두 유형은 서로 다른 ID 시퀀스를 사용하므로 cursor를 공유할 수 없습니다. 고객의 온체인 입금은 EXTERNAL입니다.

Cursor 저장과 이동 ​

응답 형식은 다음과 같습니다.

json
{
  "success": true,
  "data": {
    "items": [],
    "next_cursor": 123,
    "has_more": false
  },
  "error": null
}

각 항목을 deposit_id 기준으로 멱등 저장하고 next_cursor를 저장합니다. has_more가 true이면 즉시 다음 묶음을 조회합니다. 가능하면 항목 저장과 cursor 저장을 하나의 DB 트랜잭션으로 처리합니다.

비최종 입금 추적 ​

ID cursor는 새로 생성된 레코드만 반환하며 이후 상태 변경을 다시 반환하지 않습니다. 발견한 비최종 입금을 ID로 별도 polling합니다.

bash
export DEPOSIT_ID='{deposit-id-from-list}'
wallet_request GET "/deposits/$DEPOSIT_ID?type=EXTERNAL" | jq

최종 상태가 되면 polling을 종료합니다. Explorer나 잔액만으로 컨펌 여부를 추정하지 않고 권위 있는 API 결과에 따라 고객 입금 상태를 갱신합니다.

입금 API의 status를 기준으로 판단하며 user_status를 요구하지 않습니다. PENDING 외의 승인·검증·환불 진행 상태도 추적 대상입니다. COMPLETED만 고객 입금 성공이며 REFUNDED, FAILED는 성공이 아닙니다. 상태 코드에서 전체 상태를 확인합니다.

다음: 잔액과 원장 확인

OOLIN은 BPMG가 제공하는 디지털자산 운영 인프라 제품입니다.