Skip to content

Add an identity document to a registered user.

POST
/api/v1/user/identity-document

This endpoint is used to upload identity documents for a registered user.

object
documentType
required

The document type.

string
Allowed values: Passport IdentityCard DrivingLicence Selfie SecondSelfie ProofOfResidency ResidencePermit IbanVerification WalletVerification LivenessCheck
documentSide
required

The document side.

string
Allowed values: Front Back Selfie SecondSelfie ProofOfResidency VideoProof
data
required

The base64 encoded binary image data (max 5MB un-encoded).

string
Example
aGEgbWFkZSB5b3UgbG9vayE=

User identity document uploaded successfully.

object
emailAddress

Email address of the user.

string
Example
firstName

First name of the user.

string
Example
John
lastName

Last name of the user.

string
Example
Doe
region

Region of the user.

string
Example
nl-nl
phoneNumber

Phone number of the user.

string
registrationDate

Registration date of the user.

string
Example
2019-01-01T14:13:55Z
activationDate

The date and time the user account was activated.

string
Example
2019-01-02T12:43:25Z
is_business
boolean
limits
object
buy
object
limit
object
amount
required

The fiat amount.

number format: float
Example
3000
currencyCode
required

The fiat currency code.

string
Example
EUR
remaining
object
amount
required

The fiat amount.

number format: float
Example
3000
currencyCode
required

The fiat currency code.

string
Example
EUR
interval

The interval of the trade limit.

string
Example
P1D
sell
object
limit
object
amount
required

The fiat amount.

number format: float
Example
3000
currencyCode
required

The fiat currency code.

string
Example
EUR
remaining
object
amount
required

The fiat amount.

number format: float
Example
3000
currencyCode
required

The fiat currency code.

string
Example
EUR
interval

The interval of the trade limit.

string
Example
P1D
enabledIbanAccounts

Deprecated: Use enabledAccounts instead. Enabled IBAN accounts of the user.

Array<object>
object
number
string
holder
string
verified
boolean
enabledWalletAddresses

Enabled wallet addresses of the user.

Array<object>
object
currency

The currency.

string
Example
BTC
address

The address.

string
Example
3FZbgi29cpjq2GjdwV8eyHuJJnkLtktZc5
destinationTag

The destination tag which should be used to send the coins. This depends on the coin type and can be a string or an integer. For XRP it is an integer, for other coins it is a string.

string|integer
default: [object Object] nullable
Example
{
"default": "ABC1234",
"XRP": 12341
}
name

A descriptive name.

string
Example
My BTC wallet 1
status
string
Allowed values: open pending disabled verified rejected
walletType
One of:
string
Allowed values: vasp unhosted
verificationStatus
One of:
string
Allowed values: required travel_rule_required
id

The id.

integer
Example
189632
enabledAccounts

Enabled accounts of the user.

Array<object>
object
type

The account type.

string
Example
iban
name

Human-readable label for the account (e.g. “My bank account”).

string
Example
My bank account
identifier

Account identifier such as IBAN or wallet address.

string
Example
NL00BANK0123456789
verified

Indicates whether the account has been verified.

boolean
Example
true
limitRaised

Indicates whether the account limit has been raised.

boolean
status
object
status

The validation status.

string
Allowed values: pending validated not-validated blocked
Example
blocked
description

Description of the validation status.

string
Example
Identification process did not succeed.
details
object
amld5VerificationStatus

Status of the AMLD5 verification.

string
Allowed values: open verified
Example
verified
emailAddressVerificationStatus

Status of the email address verification.

string
Allowed values: open pending failed verified
Example
verified
identityVerificationStatus

Status of the identity verification.

string
Allowed values: open pending failed verified
Example
pending
privacyAgreementVerificationStatus

Status of the acceptance of the privacy agreement.

string
Allowed values: open pending failed verified
Example
failed
identityDocumentVerificationStatus
Array<object>
object
documentType

The document type.

string
Allowed values: Passport IdentityCard DrivingLicence Selfie SecondSelfie ProofOfResidency ResidencePermit IbanVerification WalletVerification LivenessCheck
Example
Passport
documentSide

The side of the document.

string
Allowed values: Front Back Selfie SecondSelfie ProofOfResidency VideoProof
Example
Front
status

The status of the document.

string
Allowed values: missing pending present rejected
Example
missing
residentialAddressVerificationStatus

Status of the residential address verification.

string
Allowed values: missing present
Example
present
verificationLevel
object
id
required

The verification level UUID.

string format: uuid
Example
a1b2c3d4-0003-4000-8000-000000000003
level
required

The verification level identifier.

string
Example
hero
buyLimit
required
object
amount
required

The fiat amount.

number format: float
Example
3000
currencyCode
required

The fiat currency code.

string
Example
EUR
sellLimit
required
object
amount
required

The fiat amount.

number format: float
Example
3000
currencyCode
required

The fiat currency code.

string
Example
EUR

A list of possible errors for this endpoint.

object
code
required
string
Allowed values: ER067 ER074 ER075 ER076 ER077 ER078 ER700 ER701 ER702 ER703 ER704 ER705 ER706 ER707 ER708 ER709 ER800 ER801 ER802 ER803 ER805 ER806 ER900 ER901 ER902 ER903 ER904 ER905 ER906 ER907 ER908 ER909 ER910 ER911 ER912 ER913 ER914 ER915 ER916 ER917 ER918 ER919 ER999
message
required
string
solution
required
string
Example
{
"errors": {
"ER067": {
"code": "ER067",
"message": "No identity document type provided.",
"solution": "Provide a valid identity document type."
},
"ER074": {
"code": "ER074",
"message": "Invalid identity document type provided.",
"solution": "Provide a valid identity document type."
},
"ER075": {
"code": "ER075",
"message": "Missing document side.",
"solution": "Provide a document side."
},
"ER076": {
"code": "ER076",
"message": "Invalid document side provided.",
"solution": "Provide a valid document side."
},
"ER077": {
"code": "ER077",
"message": "Missing image data.",
"solution": "Provide base64 encoded binary image data."
},
"ER078": {
"code": "ER078",
"message": "Invalid image data provided.",
"solution": "Provide valid base64 encoded binary image data."
},
"ER700": {
"code": "ER700",
"message": "User authorization token not found.",
"solution": "Provide a user authorization token."
},
"ER701": {
"code": "ER701",
"message": "User authorization token has expired.",
"solution": "Request a new authorization token, or refresh the token."
},
"ER702": {
"code": "ER702",
"message": "User authorization token is invalid.",
"solution": "Provide a valid user authorization token."
},
"ER703": {
"code": "ER703",
"message": "User identifier does not belong to the user in the user authorization token.",
"solution": "Provide a valid user identifier, or remove the user identifier header."
},
"ER704": {
"code": "ER704",
"message": "No user identifier found in headers.",
"solution": "Provide a valid user identifier, or use the user/password authentication mechanism to request a user token and send that."
},
"ER705": {
"code": "ER705",
"message": "User identifier is not linked to a user.",
"solution": "Provide a valid user identifier, link this user identifier to a user account, or use the user/password authentication mechanism."
},
"ER706": {
"code": "ER706",
"message": "User identifier is invalid.",
"solution": "Provide a valid user identifier, a unique identifier string for the user account that is not already in use."
},
"ER707": {
"code": "ER707",
"message": "User identifier is invalid.",
"solution": "Please provide an identifier, consisting of 36 - 255 characters, numeric or alphanumeric only."
},
"ER708": {
"code": "ER708",
"message": "There is a pending document for this side.",
"solution": "Wait for the pending document to be reviewed."
},
"ER709": {
"code": "ER709",
"message": "User not found, or user has been deleted.",
"solution": "Provide a valid user identifier."
},
"ER800": {
"code": "ER800",
"message": "Authorization token is invalid.",
"solution": "Provide a valid authorization token."
},
"ER801": {
"code": "ER801",
"message": "Authorization token has expired.",
"solution": "Request a new authorization token."
},
"ER802": {
"code": "ER802",
"message": "Authorization token not found.",
"solution": "Provide an authorization token."
},
"ER803": {
"code": "ER803",
"message": "Multiple authorization methods used.",
"solution": "Use exactly one authorization method."
},
"ER805": {
"code": "ER805",
"message": "API key is invalid.",
"solution": "Provide a valid API key."
},
"ER806": {
"code": "ER806",
"message": "API key not found.",
"solution": "Provide an API key."
},
"ER900": {
"code": "ER900",
"message": "The file could not be uploaded.",
"solution": "Contact our support team."
},
"ER901": {
"code": "ER901",
"message": "The file is not readable.",
"solution": "Contact our support team."
},
"ER902": {
"code": "ER902",
"message": "The file is too large.",
"solution": "Upload a smaller file."
},
"ER903": {
"code": "ER903",
"message": "The file mime type is not allowed.",
"solution": "Upload a file with an allowed mime type."
},
"ER904": {
"code": "ER904",
"message": "An empty file is not allowed.",
"solution": "Upload a file which is not empty."
},
"ER905": {
"code": "ER905",
"message": "The file was only partially uploaded.",
"solution": "Upload the file entirely."
},
"ER906": {
"code": "ER906",
"message": "No file was uploaded.",
"solution": "Upload a file."
},
"ER907": {
"code": "ER907",
"message": "The file is not a valid image.",
"solution": "Upload a valid image file."
},
"ER908": {
"code": "ER908",
"message": "The image is too wide.",
"solution": "Upload an image of a valid width."
},
"ER909": {
"code": "ER909",
"message": "The image is not wide enough.",
"solution": "Upload an image of a valid width."
},
"ER910": {
"code": "ER910",
"message": "The image is too high.",
"solution": "Upload an image of a valid height."
},
"ER911": {
"code": "ER911",
"message": "The image is not high enough.",
"solution": "Upload an image of a valid height."
},
"ER912": {
"code": "ER912",
"message": "The image has too few pixels.",
"solution": "Upload an image which has a valid amount of pixels."
},
"ER913": {
"code": "ER913",
"message": "The image has too many pixels.",
"solution": "Upload an image which has a valid amount of pixels."
},
"ER914": {
"code": "ER914",
"message": "The image ratio is too high.",
"solution": "Upload an image which has a valid ratio."
},
"ER915": {
"code": "ER915",
"message": "The image ratio is too low.",
"solution": "Upload an image which has a valid ratio."
},
"ER916": {
"code": "ER916",
"message": "The image cannot be landscape oriented.",
"solution": "Upload an image which is portrait oriented."
},
"ER917": {
"code": "ER917",
"message": "The image cannot be portrait oriented.",
"solution": "Upload an image which is landscape oriented."
},
"ER918": {
"code": "ER918",
"message": "The image is corrupted.",
"solution": "Upload an image which is is not corrupted."
},
"ER919": {
"code": "ER919",
"message": "Cannot write temporary file to disk.",
"solution": "Try again. Contact our support team if the problem persists."
},
"ER999": {
"code": "ER999",
"message": "A general error has occurred. Please contact our support team.",
"solution": "Contact our support team."
}
}
}