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 thereference
returned in the success response for future queries or audits.- Combine with KYC.
Document verification may be required before the customer status changes fromPENDING
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 status 204 No Content
, which means the document is deleted.
Complete onboarding
Once you have uploaded all required documentation for an Embedded Partner Customer (EPC), 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 17 days ago
After the onboarding process is completed for the new Customer, create a Wallet for them.