송신 VASP가 보낸 '가상자산 주소 조회' 요청에 응답하기 위해 구현해야 하는 API입니다.
POST
/v1/beneficiary/VerifyAddress
자산을 전송하려는 VASP 가 보낸 '가상 자산 주소 조회' 요청에 응답하기 위해 구현해야 하는 API 입니다.
모든 VASP 는 이 API 를 통해서 가상 자산을 이전하려는 VASP 의 주소 조회 API 로 응답할 수 있어야 합니다.
API 동작 명세
currency
와accountNumber
를 기준으로 요청된 주소가 수취 VASP 내 주소가 맞는지 검색합니다.- [중요] 주소 검증 방법은 여기를 참고 해주세요.
- 수취인 이름이 함께 전송된 경우에는 '자산 이전 허가 요청'의 이름 비교를 수행합니다. (거래소 지정 조회에만 해당합니다.)
- 수취 VASP의
accountNumber
와 소유주를 대상으로 WLF(Watchlist Filtering) 을 수행합니다. - 이 모든 과정은 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"
}