한국어
입금 내역 확인
고객이 발급된 주소로 테스트넷 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는 성공이 아닙니다. 상태 코드에서 전체 상태를 확인합니다.
다음: 잔액과 원장 확인