Upload documents

Upload Documents

The Upload Documents endpoint enables partners to securely submit files associated with a customer profile as part of the boarding and compliance workflow. Accepted documents include identity verification records, contracts, financial statements, and other compliance-related files. After a successful upload, the system processes and stores the document, returning metadata that confirms the operation outcome.

Endpoint

POST /netevia/uploadDocument

Authentication

Bearer token required. Obtain via:

POST https://api.banking.netevia.dev/api/auth/v2

Include in header: Authorization: Bearer {token}
Token lifetime: 10 minutes. Refresh via POST /api/auth/refresh.

When to use

Use this endpoint during customer onboarding or ongoing compliance reviews when a document must be attached to a profile. Common scenarios include submitting government-issued IDs for identity verification, uploading business formation documents for a business customer, or providing supporting files requested by the underwriting team. The document is linked to the specified profile and tracked via a document upload session.

Request Body

FieldTypeRequiredDescription
profileIdinteger (int32)YesThe unique identifier of the customer profile the document is being attached to.
documentUploadSessionIdstringNoSession ID grouping multiple document uploads into a single submission workflow. Obtain from the boarding session.
documentTypestringNoCategory of the document being uploaded (e.g., GOVERNMENT_ID, PROOF_OF_ADDRESS, BUSINESS_LICENSE).
fileNamestringNoOriginal file name including extension (e.g., passport_scan.pdf).
datastringNoBase64-encoded content of the file.
contentTypestringNoMIME type of the file (e.g., application/pdf, image/jpeg, image/png).
verificatedEntitystringNoIdentifier of the entity (person or business) whose document is being verified (e.g., a beneficial owner ID or business owner reference).
{
  "profileId": 100234,
  "documentUploadSessionId": "sess_a1b2c3d4e5f6",
  "documentType": "GOVERNMENT_ID",
  "fileName": "drivers_license_front.jpg",
  "data": "BASE64_ENCODED_FILE_CONTENT_HERE",
  "contentType": "image/jpeg",
  "verificatedEntity": "owner_7891011"
}

Response

200 OK

The response may be one of two schemas depending on the operation context: a standard boarding response or a financial account opening response.

BoardingResponse

FieldTypeDescription
profileIdinteger (int32)The profile ID associated with the submitted document.
errorsstring / nullError message string if the operation encountered issues; null on success.
successbooleantrue if the document was uploaded and processed successfully; false otherwise.
changeLogarray / nullList of change log entries recording what was updated as a result of this operation.

changeLog item fields

FieldTypeDescription
requestTypeinteger (int32)Numeric code representing the type of banking request associated with the change.
changesstring / nullHuman-readable description of the change applied.

OpenFinancialAccountResponse (extends BoardingResponse — returned when the document upload triggers account opening)

FieldTypeDescription
profileIdinteger (int32)The profile ID associated with the submission.
errorsstring / nullError message if applicable; null on success.
successbooleantrue if the operation succeeded.
changeLogarray / nullList of change log entries.
financialAccountIdstring / nullID of the newly opened financial account, if the upload triggered account creation.
{
  "profileId": 100234,
  "errors": null,
  "success": true,
  "changeLog": [
    {
      "requestType": 3,
      "changes": "Identity document uploaded and linked to profile."
    }
  ]
}

Error Codes

CodeWhen it happens
400Missing required fields, invalid Base64 encoding, or unsupported content type
401Token missing, expired, or invalid
403Insufficient permissions to upload documents for the specified profile
404Profile not found for the given profileId
500Internal server error during document processing or storage

Common Mistakes

  • Forgetting to Base64-encode the file content before placing it in the data field — sending raw binary or a file path will cause a 400 error.
  • Omitting the contentType field or providing an incorrect MIME type, which can cause the document to be stored or processed incorrectly.
  • Using an expired Bearer token; tokens expire after 10 minutes, so refresh before making the request if the session has been idle.
  • Providing a profileId that does not exist or belongs to a different partner, resulting in a 404 or 403 response.
  • Sending very large files without confirming the maximum file size limit for the environment; oversized payloads may result in a 400 or 500 error.

Related Endpoints

  • POST /api/auth/v2 — Obtain a Bearer token required for authentication
  • POST /api/auth/refresh — Refresh an existing Bearer token before it expires
  • POST /netevia/boardBusiness — Initiate the business customer boarding process that generates a document upload session
  • POST /netevia/boardPersonal — Initiate the personal customer boarding process

Example

curl -X POST https://api.banking.netevia.dev/netevia/uploadDocument \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "profileId": 100234,
    "documentUploadSessionId": "sess_a1b2c3d4e5f6",
    "documentType": "GOVERNMENT_ID",
    "fileName": "drivers_license_front.jpg",
    "data": "BASE64_ENCODED_FILE_CONTENT_HERE",
    "contentType": "image/jpeg",
    "verificatedEntity": "owner_7891011"
  }'
Body Params
int32
string | null
string | null
string | null
string | null
string | null
string | null
Headers
string
enum
Defaults to application/json

Generated from available response content types

Allowed:
string
enum
Defaults to application/json

Generated from available request content types

Allowed:
Response

Language
Credentials
Bearer
JWT
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
text/plain
application/json
text/json