송신 VASP가 보낸 '가상자산 주소 조회' 요청에 응답하기 위해 구현해야 하는 API입니다.

📘

POST

/v1/beneficiary/VerifyAddress

자산을 전송하려는 VASP 가 보낸 '가상 자산 주소 조회' 요청에 응답하기 위해 구현해야 하는 API 입니다.
모든 VASP 는 이 API 를 통해서 가상 자산을 이전하려는 VASP 의 주소 조회 API 로 응답할 수 있어야 합니다.

API 동작 명세

  1. currencyaccountNumber를 기준으로 요청된 주소가 수취 VASP 내 주소가 맞는지 검색합니다.
    1. [중요] 주소 검증 방법은 여기를 참고 해주세요.
  2. 수취인 이름이 함께 전송된 경우에는 '자산 이전 허가 요청'의 이름 비교를 수행합니다. (거래소 지정 조회에만 해당합니다.)
  3. 수취 VASP의 accountNumber 와 소유주를 대상으로 WLF(Watchlist Filtering) 을 수행합니다.
  4. 이 모든 과정은 1초를 초과하지 않도록 구현해야 합니다. 요청을 처리할 때 외부 API를 호출하지 말고 미리 Sanction list를 만들어 놓고 필터링해주세요.

Request

이름필수 여부타입
currency필수string
payload필수string

currency: 이전하려는 가상자산의 심볼로, 대소문자를 구분하지 않습니다.


payload: IVMS101객체를 암호화한 string으로 지갑 주소만 검증하기 때문에 전체 IVMS101 객체를 다 입력되지 않았을 수 있습니다. 아래의 Sample payload와 같이 Beneficiary 객체 내에 array<accountNumber>는 필수, beneficiaryPersons는 옵션입니다.

{
  "currency": "XRP",
  "payload": "encrypted ivms101 payload"
}
{
   "ivms101": {
      "Beneficiary": {
        "beneficiaryPersons": [],
        "accountNumber": ["rHcFoo6a9qT5NHiVn1THQRhsEGcxtYCV4d:memo or tag"]
      }
   }
}

Response

'가상자산 주소 조회' 요청에 대해 아래와 같이 응답해주세요.

이름필수 여부타입
result필수string
reasonType옵션string
reasonMsg옵션string
beneficiaryVaspEntityId옵션string

result: 가상자산 주소 검증 결과입니다.

-valid: 정상적인 주소일 때 반환합니다.

-invalid가상자산 주소 조회 결과입니다. reasonType 값으로 상세 내용을 구분할 수 있습니다.


reasonType: result 필드값이 'invalid'인 경우에 이 필드가 추가 됩니다.

-NOT_FOUND_ADDRESS: 가상자산 주소를 찾을 수 없는 경우입니다.

-NOT_SUPPORTED_SYMBOL: 거래할 수 없는 화폐 심볼입니다.

-NOT_KYC_USER: 수신 주소의 소유자가 KYC 인증을 진행하지 않은 경우입니다.

-SANCTION_LIST: 가상자산 주소 또는 소유자가 수취 VASP 의 제재 대상입니다.

-INPUT_NAME_MISMATCHED: 요청 메시지로 전송한 수취인 이름이 실제 소유자의 이름과 일치하지 않는 경우입니다.

-LACK_OF_INFORMATION: 자산 이전을 결정하는데 필요한 정보가 없을 경우입니다.

-UNKNOWN: 그 밖에 다른 이유입니다.


reasonMsg: 'invalid'인 경우 상세 메시지를 정의합니다.


beneficiaryVaspEntityId: 조회 대상 가상자산 주소를 소유하는 VASP가 존재하는 경우 해당 VASP의 Entity ID 입니다.

{
  "result": "invalid",
  "reasonType": "NOT_FOUND_ADDRESS",
  "reasonMsg": "",
  "beneficiaryVaspEntityId": "string"
}