Documents and KYC

Verify your identity to deposit or withdraw fiat from the blockchain

This section explains how to verify a user's identity.

If you are a partner managing multiple user identities, you can create and manage more than one identity. This means you must create each individual identity and submit documents supporting each new one.

Step 1: Submit documents for KYC

All users must verify their identities by submitting documents before being allowed to deposit or withdraw. This requires you to upload digitized copies of your (or your customers') government id and proof of address in JPG, PNG, or PDF format.

To upload files you must send a request to the documents endpoint of type multipart/form-data. The request should contain a link to the file you like to upload, as well as the parameters for creating a file.

Please refer to the FAQs for a list of accepted documents and upload guidelines.

POST /documents
POST /documents
curl -X POST \ \
-H 'Content-Type: multipart/form-data' \
-F 'label=identity card' \
-F identityId=5f5e13fb-c5d7-488b-923b-278b96b138b9 \
-F documentType=IdentityCard \
-F documentSide=FrontSide \
-F '[email protected]/Users/brunoramos/Downloads/public-mint-pk1562254784090_.txt'
POST /documents
"id": "6215e0aa-dde7-40ac-af3b-b6fa733529ff",
"identityId": "e65dde2c-4379-42c7-a665-3f476cebb691",
"status": "active",
"label": "identity card",
"description": "identity card of jonh smith",
"extension": ".jpg",
"fileUrl": "",
"documentType": "IdentityCard",
"documentSide": "FrontSide",
"createdAt": "2020-02-19T15:15:23.546Z",
"updatedAt": "2020-02-19T15:15:23.546Z",
"deletedAt": null

Step 2: Verify KYC status

After you submit the documents, they're automatically sent to our KYC provider for verification. The verification process can take anywhere from a few minutes to a few days, depending on the type of documents and quality of submission.

To check if KYC was successful, make a GET request to the /identities endpoint and pass the id of the identity as a parameter along in the body. If verificationStatus = approved then you've passed it.

GET /identities/:id

Alternatively, if you're a user who manages multiple identities, you can make a request to your /identities endpoint and then filter the results by verificationStatus: approved .

GET /identities/
curl \
-H "Authorization: Bearer {YOUR_API_KEY}"
{filter: identity_confirmed}
"id": "5e0e5129-6e39-46c3-b5c3-e9465ac49034",
"identityOwner": null,
"identityType": "person",
"verificationStatus": "pending",
"blocked": false,
"status": "disabled",
"companyOfficer": false,
"name": "Jonh Doe",
"email": "[email protected]",
"address": {
"city": "Tampa",
"street": "Ochard Street",
"country": "PT",
"postalCode": "12345"
"phone": {
"sms": true,
"number": "345675643"
"tax": {
"state": "FL",
"country": "PT",
"idNumber": "134567890"
"birthday": "1991-12-01T00:00:00.000Z",
"gender": "Male",
"createdAt": "2020-02-19T11:02:14.456Z",
"updatedAt": "2020-02-19T11:02:14.456Z",
"deletedAt": null

Making fiat transactions

After the provider concludes the KYC process, the verificationStatus key will change to approved and you (or your customer) will be allowed to conduct fiat transactions.

Congratulations! You are now ready to take on the next steps and make fiat deposits and withdrawals. Read on to learn how.