VerifyVASP
Search
K
Comment on page

User Account Verification

post
http://<enclave-endpoint>
/v1/verifications/account
User Account Verification
This API requests verification of whether the beneficiary address (wallet address or account number input by originator) belongs to a beneficiary VASP.
When making a withdrawal from the Originating VASP, the Originating VASP sends the Beneficiary’s wallet address and, optionally, name to Beneficiary VASP (Not recommend).
If the name is unknown to beneficiary VASP, the VASP verifies only the wallet address as it regards the amount is under the baseline.
If the name exists in beneficiary VASP's side, the VASP confirms and returns the combination of wallet address and name under the assumption that the withdrawal amount is over the legal baseline.

Request Body

Request Body Examples
  • When only checks the beneficiary's wallet address
{
"keyType": "PerVasp",
"beneficiaryVaspId": "27372039731940770",
"symbol": "ETH",
"payload": {
"version": "1.0",
"ivms101": {
"beneficiary": {
"accountNumber": ["0x5811001506550d8356a215be229c15b6ef371a9b"]
}
}
}
}
  • When checks the beneficiary's name and wallet address (when withdrawing more than the legal amount)
{
"keyType": "PerVasp",
"beneficiaryVaspId": "27372039731940770",
"symbol": "ETH",
"payload": {
"version": "1.0",
"ivms101": {
"beneficiary": {
"beneficiaryPersons": [
{
"naturalPerson": {
"name": {
"nameIdentifier": [
{
"primaryIdentifier": "Taylor",
"secondaryIdentifier": "Robbins",
"nameIdentifierType": "LEGL"
}
]
}
}
}
],
"accountNumber": ["0x5811001506550d8356a215be229c15b6ef371a9b"]
}
}
}
}
  • When checking only the wallet address of a legal person
{
"keyType": "PerVasp",
"beneficiaryVaspId": "27372039731940770",
"symbol": "ETH",
"payload": {
"version": "1.0",
"ivms101": {
"beneficiary": {
"accountNumber": ["0x5811001506550d8356a215be229c15b6ef371a9b"]
}
}
}
}
  • When checks the name and wallet address of a legal person (when withdrawing more than the legal amount)
{
"keyType": "PerVasp",
"beneficiaryVaspId": "27372039731940770",
"symbol": "ETH",
"payload": {
"version": "1.0",
"ivms101": {
"beneficiary": {
"beneficiaryPersons": [
{
"legalPerson": {
"name": {
"nameIdentifier": [
{
"legalPersonName": "A Company",
"legalPersonNameIdentifierType": "LEGL"
}
]
}
}
},
{
"naturalPerson": {
"name": {
"nameIdentifier": [
{
"primaryIdentifier": "Taylor",
"secondaryIdentifier": "Robbins",
"nameIdentifierType": "LEGL"
}
]
}
}
}
],
"accountNumber": ["0x5811001506550d8356a215be229c15b6ef371a9b"]
}
}
}
}
Field Name
Data Type
Required
Description
keyType
string
true
beneficiaryVaspId
string
true
symbol
string
true
Virtual Asset.
The symbol of virtual assets (ex. ETH instead of Ethereum or Ether)
payload
object
true
IVMS101 format of beneficiary information (wallet address and name)
payload.version
string
true
IVMS101 message format version
payload.ivms101
object
true
Refer IVMS101 protocol for this field

Response Body

Success case

Response Body Examples
  • 200 OK
{
"accountVerificationResult": "VERIFIED",
"verifiedAt": "2022-03-03T21:52:08.092Z"
}

Response Body

Field Name
Data Type
Required
Example
Description
accountVerificationResult
string
true
"DENIED"
The result of verification
reason
string
false
"UNKNOWN-ADDRESS"
The reason field means that the detailed error code for when accountVerificationResult is DENIED
verifiedAt
date
true
"2022-03-03T18:19:20.092Z"
The verification datetime
  • accountVerificationResult field can be "VERIFIED" or "DENIED"
    • VERIFIED: Successfully verified account in beneficiary VASP.
    • DENIED: Unknown account or name, not verified on beneficiary VASP side.
  • reason field specification is as follows.
    • The field is valid only when result field is DENIED.
    • Refer to the below table for the message field value.
reason (string)
result (string)
message (string)
Description
UNKNOWN-SYMBOL
DENIED
The value of symbol name (which is not supported in VASP)
Unknown or not supported asset symbol
UNKNOWN-ADDRESS
DENIED
The unknown wallet address
Unknown wallet address to the VASP
MISMATCHED-NAME
DENIED
-
Name mismatch
UNDEFINED-ERROR
DENIED
Error description
Undefined errors
BLACKLISTED
DENIED
-
The beneficiary is blacklisted
UNVERIFIED-KYC
DENIED
-
The beneficiary's KYC has not been verified

Error Codes

MISSING-* in case of missing mandatory parameters

Response Body Examples
  • 400 Bad Request
{
"code": "MISSING-VASP",
"message": "`beneficiaryVaspId` is required."
}

INVALID-* in case of invalid parameter input

Response Body Examples
  • 400 Bad Request
{
"code": "INVALID-KEY-TYPE",
"message": "`keyType` is invalid value."
}

The case of using a non-alliance member VASP ID

Response Body Examples
  • 400 Bad Request
{
"code": "ALLIANCE-NOT-FOUND",
"message": "Alliance is not found in given vendor"
}

The case of the beneficiaryVaspId of VASP is in inactive status

Response Body Examples
  • 400 Bad Request
{
"code": "ALLIANCE-NOT-ACTIVE",
"message": "Alliance is not active now"
}

The input symbol that is invalid or not supported by the VASP

Response Body Examples
  • 200 OK
{
"accountVerificationResult": "DENIED",
"reason": "UNKNOWN-SYMBOL",
"verifiedAt": "2022-03-03T12:46:34.085Z"
}

The input of an invalid wallet address.

Response Body Examples
  • 200 OK
{
"accountVerificationResult": "DENIED",
"reason": "UNKNOWN-ADDRESS",
"verifiedAt": "2022-03-03T12:47:05.817Z"
}

Mismatch to the address.

Response Body Examples
  • 200 OK
{
"accountVerificationResult": "DENIED",
"reason": "MISMATCHED-NAME",
"verifiedAt": "2022-03-03T12:47:37.456Z"
}