Skip to main content
POST
Get presigned URL for individual document upload

Authorizations

X-Application-Token
string
header
required

Application-specific token for public URL access. Generated when a customer is created. Provides access to a single application without requiring an API key. Token is valid for 90 days and rate-limited to 250 requests per hour.

Headers

x-idempotency-key
string<uuid>
required

Unique key (UUID) to ensure request idempotency on POST, PUT and PATCH requests.

A key is scoped to your client, the HTTP method and the path, and is remembered for 24 hours after a successful (below 400) response. Repeating the same request (same JSON body, whatever the key order or whitespace) with the same key within that window returns the original response with X-Idempotent-Replayed: true instead of executing the request again. Using the same key on the same endpoint with a different body returns 422 with problem type idempotency-key-reused; the request is not executed. Error responses (4xx and 5xx) are not remembered, so a request refused for a fixable reason can be corrected and retried under the same key. Request bodies that are not JSON (for example file uploads) are not compared.

Path Parameters

application_id
string
required

The unique identifier for the application KSUID is a 27-character globally unique ID that combines a timestamp with a random component. Used for all entity identifiers in the Dakota platform.

Required string length: 27
Pattern: ^[0-9A-Za-z]{27}$
Example:

"1NFHrqBHb3cTfLVkFSGmHZqdDPi"

individual_id
string
required

The unique identifier for the individual KSUID is a 27-character globally unique ID that combines a timestamp with a random component. Used for all entity identifiers in the Dakota platform.

Required string length: 27
Pattern: ^[0-9A-Za-z]{27}$
Example:

"1NFHrqBHb3cTfLVkFSGmHZqdDPi"

Body

application/json

Request to generate a presigned URL for uploading an individual document (identity or EDD). For identity documents (passport, drivers_license_front, drivers_license_back, residence_permit_front, residence_permit_back, national_id_front, national_id_back), id_number is required.

document_type
enum<string>
required

Type of document that can be uploaded for individuals (identity documents + EDD documents).

Identity documents: passport (single-sided), drivers_license_front + drivers_license_back, residence_permit_front + residence_permit_back, national_id_front + national_id_back. Two-sided documents need both sides before the identity requirement is met when you upload them here. Documents imported from a verification provider are the exception: a Sumsub share token is issued for an applicant that provider already verified against its own per-country rules, and some countries are one-sided there (a German driver's license has no back), so an imported identity document satisfies the requirement on its own.

national_id_front / national_id_back are accepted only for national ID cards issued by Colombia (country = CO); other issuing countries are rejected. An individual who submits a national ID card is always reviewed by a compliance analyst and is never approved automatically.

other is a supporting document of no fixed type, such as a file attached to the answer to a request for information on an individual application.

Available options:
passport,
drivers_license_front,
drivers_license_back,
residence_permit_front,
residence_permit_back,
national_id_front,
national_id_back,
proof_of_address,
bank_statement,
utility_bill,
source_of_wealth,
payslip,
employment_contract,
income_verification_letter,
savings_statement,
crypto_statement,
investment_statement,
other
Example:

"passport"

country
string
required

ISO 3166-1 alpha-2 country code of the issuing country. Required for identity documents, not required for EDD documents.

Required string length: 2
Example:

"US"

file_type
enum<string>
required

Supported file type

Available options:
pdf,
jpeg,
png
Example:

"pdf"

id_number
string

REQUIRED for identity documents (passport, driver's license, residence permit, national ID). The ID number on the document (e.g., passport number, driver's license number, national ID number). Not required for EDD documents like bank statements.

Example:

"AB1234567"

filename
string

Optional original filename. Will be sanitized for safe storage and display.

Maximum string length: 100
Example:

"passport_front.jpg"

Response

Presigned URL generated successfully

Response containing a presigned URL for document upload

upload_url
string<uri>
required

Presigned URL to upload the document to. Use PUT method with the file content.

Example:

"https://storage.googleapis.com/bucket/path?..."

upload_id
string
required

Unique identifier for this upload. Use this when calling the verify endpoint.

Example:

"2rftx8ofdxg4xIGC68EnhUc8xWD"

object_path
string
required

The storage path the uploaded file is written to, ending in upload_id. Informational: no endpoint takes it as input. To register the upload, call POST /applications/{application_id}/documents/{document_id}/verifications with upload_id as document_id.

Example:

"applications/2hCjxJzUAW6JVRkZqaF9E0KpM3a/business-documents/2rftx8ofdxg4xIGC68EnhUc8xWD"

expires_at
string<date-time>
required

ISO 8601 timestamp when upload_url stops accepting the upload, one hour after the session was created. Upload before then, or request a new session.

Example:

"2025-01-15T18:30:00Z"