# 가상 자산 주소 조회

## 가상 자산 주소의 소유 여부를 반환합니다.

<mark style="color:green;">`POST`</mark> `/v1/beneficiary/VerifyAddress`

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

모든 VASP 는 이 API 를 통해서 가상 자산을 이전하려는 VASP 의 주소 조회 API 로 응답할 수 있어야 합니다.

**API 동작 명세**

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

**REQUEST Body Schema: application/jsonRequest**

* currency(Required): 이전하려는 가상 자산의 심볼입니다. (대소문자를 구분하지 않습니다)
* payload(Required): 개인정보를 담는 ivms101 메시지를 포함합니다. payload 는 JSON String 을 암호화해서 보냅니다.
  * ivms101(Required):
    * Beneficiary(Required): 수취인의 이름, 지갑 주소 정보를 담기 위한 객체입니다.
      * beneficiaryPersons(Optional): 수취인의 이름이 들어오면 '자산 이전 허가 요청' 과 마찬가지로 수취인 이름 검증을 실시합니다. '자산 이전 허가 요청' API 의 메시지 형식을 참고해 주세요
      * accountNumber(Required): 자산을 이전받는 가상 자산 주소입니다. tag 나 memo 같은 2차 주소는 ':' 구분자 뒤에 붙입니다.

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

**Response**

*200 OK*

*RESPONSE SCHEMA: application/json*

* result(Required): 가상 자산 주소 검증 결과입니다.
  * valid: 정상적인 주소일 때 반환합니다.
  * invalid: 가상 자산 주소 조회 결과입니다. reasonType 값으로 상세 내용을 구분할 수 있습니다.
* reasonType(Optional): result 필드값이 invalid 인 경우에 이 필드를 추가 합니다.
  * NOT\_FOUND\_ADDRESS: 가상 자산 주소를 찾을 수 없는 경우입니다.
  * NOT\_SUPPORTED\_SYMBOL: 거래할 수 없는 화폐 심볼입니다.
  * NOT\_KYC\_USER: 수신 주소의 소유자가 KYC 인증을 진행하지 않은 경우입니다.
  * SANCTION\_LIST: 가상 자산 주소 또는 소유자가 수취 VASP 의 제재 대상입니다.
  * INPUT\_NAME\_MISMATCHED: 요청 메시지로 전송한 수취인 이름이 실제 소유자의 이름과 일치하지 않는 경우입니다.
  * LACK\_OF\_INFORMATION: 자산 이전을 결정하는데 필요한 정보가 없을 경우입니다.
  * UNKNOWN: 그 밖에 다른 이유입니다.
* reasonMsg(Optional): invalid 인 경우 상세 메시지를 정의합니다.
* beneficiaryVaspEntityId(Required): 조회 대상 가상 자산 주소를 소유하는 VASP 가 존재하는 경우 해당 VASP 의 Entity ID 입니다.

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://codevasp.gitbook.io/code-api-docs-ko/vasp-api/undefined.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
