User Account Verification
User Account Verification API
POST
VEGA_VERIFICATION_ACCOUNT_API_PATH
Enclave Environment Variable:
Enter the User Account Verification API endpoint in VEGA_VERIFICATION_ACCOUNT_API_PATH field.
Every VASP can be either the originating and beneficiary VASP
This API is called when the VASP performs the role of the beneficiary VASP.
The API is called to verify that the beneficiary address (wallet address, account number) entered by the originator belongs to the beneficiary address (and VASP).
Response Time Standard
This API must respond in 1 second.
Implementation Standards
IVMS101 format of beneficiary information.
This API only verifies the existence of a wallet address and name. KYC or Sanction Screening process is not covered by this API.
This API is designed for only for single account verification. In order to verify multiple accounts, make one of this API call per account.
For a corporation account, if there are multiple representatives but only one is matched, the result will be returned as VERIFIED.
Request Header
Field Name | Description |
---|---|
Authorization | Bearer <VEGA_VERIFICATION_AUTHORIZATION_TOKEN> |
Request Body
Field Name | Data Type | Required | Example | Description |
---|---|---|---|---|
originatingVaspId | string | true | "15952089931162060684" | Verification requester VASP ID |
symbol | string | true | "ETH" | Symbol of Virtual Asset. |
network | string | false | "Ethereum" | The name of the blockchain network on which the VA will be transferred (see the 'NETWORK field guide' under the 'Supplement' menu for details) |
version | string | true | "1.0" | IVMS101 format version (use 1.0 currently) |
ivms101 | object | true | - | Verification information in IVMS101 format |
ivms101.beneficiary | object | true | - | Beneficiary information object |
ivms101.beneficiary.beneficiaryPersons | array | false | [{"naturalPerson":{"name":{"nameIdentifier":[{"primaryIdentifier":"Taylor","secondaryIdentifier":"Robbins","nameIdentifierType":"LEGL"}]}}}] | The name information of beneficiary: this field is required when the amount exceeds the legal threshold. If presented, the name must be matched to the wallet owner's name. |
ivms101.beneficiary.accountNumber | array | true | [”0x5811001506550d8356a215be229c15b6ef371a9a”] | The wallet address of the beneficiary. The type of the field is an array but it is NOT allowed to pass multiple accounts in it: use this API just for single account verification and call multiple times if required. |
network field is optional. In the case of a virtual asset that is distributed across multiple blockchain networks, such as USDT, which is distributed across Ethereum, BSC, and Solana, the following responses can be returned if the counter-VASP calls API without Network Field.
The result can be returned as
DENIED
and the reason asUNKNOWN-NETWORK
. However, if the counterparty VASP has not yet implemented network field, the success rate may decrease.Alternatively it can be assumed that the network in use is same as your VASP and return the verification result. In such cases, do take note that, if the network your VASP support is different from the counterparty VASP, the virtual asset may be transferred via a wrong network and may become unretrievable.
VASP can decide which response to return. Different policies on returning response to each counterparty VASP are available. Please consider various scenarios of returning response to counterparty VASP when implementing Network Field.
Response Body
Field Name | Data Type | Required | Example | Description |
---|---|---|---|---|
accountVerificationResult | string | true | "DENIED" | The result of the verification |
reason | string | false | "UNKNOWN-ADDRESS" | The reason field means that the detailed error code for when accountVerificationResult is DENIED |
verifiedAt | string | true | "2022-03-03T21:52:08.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 |
---|---|---|---|
| DENIED | The value of symbol name (which is not supported in VASP) | Unknown or not supported asset symbol |
| DENIED | The value of network name (which is not supported in VASP) | Unknown or not supported blockchain network (i.e. symbol matches but network does not) |
| DENIED | The unknown wallet address | Unknown wallet address to the VASP |
| DENIED | - | Name mismatch |
| DENIED | Error description | Undefined errors |
Links
A guideline to the ways to enter IVMS101 information
IVMS101 Message Format GuideLast updated