Add Documents to Customers
Use the following endpoints to attach documents to an existing customer: at the company level or for a specific associate (beneficial owner, director, or signer).
Make sure to study Compliance Requirements before submitting the corresponding documents.
Add documents to a company EPC
Each request can upload multiple documents simultaneously.
When uploading customer documents:
- Reference the correct
customerReference
.- Use
customerPersonReference
when the document belongs to a specific associate.- If
customerPersonReference
is omitted ornull
, the document is attached at the company level for business customers.- Encode files to Base64 before sending.
To add documents to a customer profile, send the POST customers/{customerReference}/documents
request with the customerReference
in the path and the following request body:
[
{
"type": "COMPANY_DOC",
"subType": "INCORPORATION_CERT",
"name": "Company Structure.pdf",
"description": "Document optional description",
"countryCode": "GB",
"externalReference": "2b8d8bde-eef5-408a-9228-96bef24865ad",
"content": "JVBERi0xLjUKJeLjz9MKMSAwIG9iago8PC9UeXBlIC9QYWdl..."
},
{
"customerPersonReference": "9b2c3d4e-567f-48f0-abc1-03a4e3df12ab",
"type": "PASSPORT",
"subType": "FRONT_SIDE",
"name": "John Smith Passport.pdf",
"description": "Document optional description",
"countryCode": "GB",
"externalReference": "2b8d8bde-eef5-408a-9228-96bef24865ad",
"content": "JVBERi0xLjUKJeLjz9MKMSAwIG9iago8PC9UeXBlIC9QYWdl..."
}
]
Parameter | Type | Required | Description |
---|---|---|---|
customerReference | string | Yes | The unique identifier of the customer to whom the documents will be attached. Customer has to be in INFO_REQUIRED status (status after agreement consent) |
Attribute | Type | Required | Description |
---|---|---|---|
customerPersonReference | string(36) | No | Reference that links the document to a specific associate (for example, beneficial owner). If omitted or null, the document is attached at the company level. |
type | string | Yes | The document type, for example COMPANY_DOC Full list of supported COMPANY document type When uploading documents for an associate (e.g. ) refer to the following list for supported document type(s) Full list of supported ASSOCIATE (Individual) document types |
subType | string | No | Additional specification of the document type, e.g. FRONT_SIDE, BACK_SIDE if applicable. When uploading documents for an associate (e.g. PASSPORT) refer to the following list for supported document subType(s) |
name | string(128) | Yes | Optional human-readable filename, e.g. "John Smith Passport.pdf". |
description | string(255) | No | Optional description for the provided document |
countryCode | string(2) | Yes | ISO 3166-1 alpha-2 country code associated with the document. |
externalReference | string(36) | Yes | The internal reference mapped to the document from your end. |
content | string | Yes | Base64-encoded file content. |
In the successful response you receive unique references for tracking the status. That means that the request is accepted and documents are queued for upload.
{
"reference": "d42e1c62-27b8-4b3b-b51e-eb10edeb1731",
"externalReference": "2b8d8bde-eef5-408a-9228-96bef24865ad",
"status": "INIT"
}
{
"code": "DOCUMENTS-4000",
"status": "BAD_REQUEST",
"message": "Invalid document content",
"details": {
"errors": {
"content": [
"Document file content is not valid base64"
]
}
}
}
Manage documents
Tips
- Check Document Status. Retrieve the customer or associated person object to confirm document verification status.
- Retain Document References. Store the
reference
returned in the success response for future queries or audits.- Combine with KYC. Document verification may be required before the customer status changes from
PENDING
toVERIFIED
.
Search Documents
To search for specific documents, send the GET /platform/v1/customers/documents
request with the optional query parameters:
customerReference
externalReference
name
types
subTypes
statuses
(e.g., INIT, PENDING, APPROVED, DECLINED)
Get document download URL
To get a Document Download link, send the GET /platform/v1/customers/documents/{documentReference}/url
request with the {documentReference}
specified in the query.
In the successful response, you receive a temporary URL for document download.
Delete document
To remove a document from a Customer's profile, send the DELETE /platform/v1/customers/documents/{documentReference}
request with the {documentReference}
specified in the query.
In the successful response, you receive the status 204 No Content
, which means the document is deleted.
Complete onboarding
After uploading all required documentation for an Embedded Partner Customer (EPC), wait ~10 seconds for the system to acknowledge the documents. Then, confirm the completion of the onboarding process.
For that, send the POST /platform/v1/customers/{customerReference}/complete-onboarding
request with reference
as the path parameter.
Parameter | Type | Required | Description |
---|---|---|---|
customerReference | string | Yes | The unique reference identifier for the Embedded Partner Customer (EPC) provided during customer creation. |
When you successfully call this endpoint:
- BVNK will initiate final compliance and verification checks.
- In the sandbox environment, EPC verification is automatically approved.
- In production, if the EPC meets all compliance requirements, the status will update to
VERIFIED
. If there are outstanding requirements or issues, the status will move toINFO_REQUIRED
orREJECTED
, prompting manual review or further actions.
Check monitoring status
You can monitor the EPC's verification status via:
- API: Retrieve current EPC onboarding status by sending the
GET /platform/v1/customers/{customerReference}
request. - Portal: Track progress and statuses directly through the BVNK Portal.
- Webhooks: Set up webhooks to receive automated updates on status changes.
Updated 7 days ago
After the onboarding process is completed for the new Customer, create a Wallet for them.