자산 이전 결과(txid) 전송

블록체인에서 자산 이전이 실행된 후, 결과 (Transaction ID) 를 전송합니다.

POST /v1/code/transfer/{BeneficiaryVaspEntityId}/txid

가상 자산을 전송하는 VASP 는 블록체인 상에서 자산의 이전을 실행한 직후 해당 자산의 이전 결과 (Transaction ID) 를 본 API 를 호출해서 자산을 수신하는 VASP 로 전송해야 합니다.

Tx ID 또는 tx hash는 반드시 블록체인 Node Output 데이터를 사용해야 합니다. '0x'를 tx hash 앞에 추가하여 사용하는 경우 tx hash 불일치가 발생할 수 있습니다. 따라서 Node Output에 없는 '0x'가 포함하지 않도록 주의해 주시기 바랍니다.

v1.7 부터는 블록체인 상에 Transaction ID 가 생성되면 트랜잭션이 완료되지 않더라도 자산을 수신하는 VASP 에 먼저 알려줍니다. 이후 블록체인 상에서 컨펌(Confirm) 이 진행되다가 실패하면 자산 이전 종료 API 를 호출해서 실패했음을 알려줍니다.

본 API 를 호출하는 VASP 는 반드시 대상 자산의 전송이 성공인지 실패인지 확인할 수 있어야 합니다. 만약, 대상 VASP 가 정상처리가 아닌 오류를 수신하거나 요청 타임아웃이 발생한 경우에는 주기적인 재시도 로직을 수행해서 다시 요청을 보내도록 구현해야 합니다. 이를 위해서 같은 상태로의 변경 시도는 성공으로 간주합니다.

Path Parameter

  • BeneficiaryVaspEntityId: 자산을 수신하는 주소를 소유하는 VASP 의 EntityID 로 반드시 입력해야 합니다.

REQUEST Body Schema: application/jsonRequest

  • transferId(Required): '자산 이전 허가 요청' 에서 부여한 UUID 입니다. 해당하는 자산 이전 내역에 자산 이전 결과 (Transfer ID) 를 저장하기 위해 설정합니다.

  • txid(Required): 가상 자산 이전을 위해 블록체인 상에 실행된 특정한 트랜잭션을 식별하기 위한 고유한 값입니다. 블록체인 API 에 의해서 생성되며 유일한 값입니다.

  • vout(Optional): utxo타입 코인의 경우 복수의 블록체인 트랜잭션이 하나의 txid 를 공유하면서 그룹을 형성할 수 있습니다. 이때, 고유한 트랜잭션을 식별하기 위해 이 값을 사용합니다. 마찬가지로 블록체인 API 의 실행 결과물입니다.

{
  "transferId": "b09c8d00-8da9-11ec-b909-0242ac120002"
  "txid": "311BFF73D9B7969CCF1042186180159C724FAB59013A7A034A93E5FB9D6BAFE6",
  "vout": ""
}

Response

200 OK

RESPONSE SCHEMA: application/json

  • transferId(Required): 모든 API 에서 자산 이전 트랜잭션을 구별하기 위한 ID 입니다.

  • result(Required): 송금 정보 수신 결과 값입니다.

    • normal: 요청을 정상적으로 처리하여 전달받은 Transaction ID 를 저장 완료한 상태입니다.

    • error: 요청을 처리하는 VASP 에서 요청을 처리하지 못한 상태입니다.

  • reasonType(Optional): result 값이 error 인 경우, 상세 이유를 구분하는 값입니다.

    • TXID_ALREADY_EXISTS: 이미 txid 가 저장된 자산 이전 내역에 대해서 다른 txid 를 저장하도록 요청받은 경우입니다. txid 가 한번 생성되면 실패할 수는 있지만 변경되지는 않습니다.

    • TRANSFER_ALREADY_FAILED: txid 를 저장하려는 TransferId 에 해당하는 자산 내역이 이미 실패한 경우 txid 를 저장할 수 없습니다.

    • UNKNOWN_TRANSFER_ID: Transfer ID 를 찾을 수 없는 경우입니다.

    • UNKNOWN: 현재 이 API 에서 발생할 것으로 예상되는 에러 사유가 없습니다.

{
  "transferId": "b09c8d00-8da9-11ec-b909-0242ac120002",
  "result": "error",
  "reasonType": "TRANSFER_ALREADY_FAILED"
}

Last updated