Upload new documents to make a final decision regarding account application

Upload Document

The Upload Document endpoint allows partners to securely submit documents needed to complete a business account application. Supported document types include identification proofs, financial statements, and proof of address. The system confirms a successful upload so the review and approval process can proceed efficiently.

Endpoint

POST /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 when a business account application requires additional documentation before a final decision can be made. This typically occurs during the underwriting or compliance review stage, when the applicant must submit identity, financial, or address verification materials. Call this endpoint once per document, repeating as needed for each required file within the same upload session.

Request Body

FieldTypeRequiredDescription
profileIdinteger (int32)YesThe unique identifier of the business customer profile associated with the application.
documentUploadSessionIdstringNoSession identifier that groups multiple document uploads for the same application review.
documentTypestringNoType of document being submitted (e.g., GOVERNMENT_ID, BANK_STATEMENT, PROOF_OF_ADDRESS).
fileNamestringNoOriginal file name of the uploaded document including extension (e.g., passport.pdf).
datastringNoBase64-encoded content of the document file.
contentTypestringNoMIME type of the document (e.g., application/pdf, image/jpeg, image/png).
verificatedEntitystringNoThe entity or person the document is intended to verify (e.g., the business owner or the business itself).
{
  "profileId": 100234,
  "documentUploadSessionId": "session-a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "documentType": "GOVERNMENT_ID",
  "fileName": "drivers_license.pdf",
  "data": "JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PC9...",
  "contentType": "application/pdf",
  "verificatedEntity": "John Smith"
}

Response

200 OK

A 200 OK status confirms the document was received successfully. The response body may be empty or contain a confirmation message. No structured response schema is defined for this endpoint.

{}

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 ID not found or no active application session exists
500Internal server error

Common Mistakes

  • Sending the raw binary file instead of a Base64-encoded string in the data field — the field expects a Base64 string, not a multipart file upload.
  • Omitting contentType or providing a mismatched MIME type that does not match the actual file format.
  • Reusing a documentUploadSessionId that has already been closed or finalized, which will cause the upload to be rejected.
  • Providing a profileId that belongs to a personal customer — this endpoint is intended for business account applications only.

Related Endpoints

  • POST /api/auth/v2 — Obtain a Bearer token for authentication
  • POST /api/auth/refresh — Refresh an expiring Bearer token

Example

curl -X POST https://api.banking.netevia.dev/uploadDocument \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "profileId": 100234,
    "documentUploadSessionId": "session-a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "documentType": "GOVERNMENT_ID",
    "fileName": "drivers_license.pdf",
    "data": "JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PC9...",
    "contentType": "application/pdf",
    "verificatedEntity": "John Smith"
  }'
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 request content types

Allowed:
Response
200

Success

Language
Credentials
Bearer
JWT
LoadingLoading…
Response
Click Try It! to start a request and see the response here!