POST
Returns a short-lived presigned URL for a verification document. One endpoint, two modes — the body decides which:
For large files, presign + direct upload beats the inline base64 of Upload a KYC document. Send collection (kyc or kyb) and a documentType from the KYC schema:
Then PUT the file to the returned uploadUrl with the same Content-Type. Keep the returned key — it identifies the document later.
The URLs expire — expiresInSeconds is clamped to a server-side maximum. Request the presign right before the transfer, not ahead of time.

Authorizations

Authorization
string
header
required

The user's id_token from authentication — the ID token, not the access_token. The program and environment (sandbox/prod) are read from the token.

Path Parameters

customerId
string
required

The customer's ID.

Body

application/json
collection
enum<string>

Upload: required. Download by key: required. Which document collection.

Available options:
kyc,
kyb
documentType
string

Upload: required. A document type from the program's KYC schema.

contentType
string

Upload: optional. MIME type the file will be PUT with, e.g. application/pdf.

applicationId
string

Download: required. The application the document belongs to.

s3Url
string

Download: the document's storage URI (e.g. from the upload response). Use this or collection + key.

key
string

Download: the document's storage key. Send with collection.

expiresInSeconds
number

Optional. How long the URL stays valid (clamped to a server-side maximum).

Response

Presigned URL

success
boolean
Example:

true

data
object