Get a presigned URL for one document, then send the file to it with an HTTP PUT, then register the file on the documents endpoint. Use this transport for every real document: a request body larger than about 8 KB is rejected at the network edge. The URL is valid for 5 minutes and the staged file must be 5 MB or smaller. The session must be HEADLESS. A HOSTED session refuses the call with a 422, because the end customer supplies the documents on the verification link. Signa must be enabled for your business. Required scope: compliance-kyc:create.

POSTapi-prod.blaaiz.com/api/external/compliance/kyc/sessions/{sessionId}/documents/upload-url

Authorization

oauth2ClientCredentials compliance-kyc:create
AuthorizationBearer <token>

Use your OAuth client credentials to obtain a short-lived Bearer token from POST /oauth/token.

In: header

Scope: compliance-kyc:create

Path Parameters

sessionId*string

The verification session id returned by the create endpoint.

Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

Create a document upload URL
curl --request POST \  --url 'https://example.com/api/external/compliance/kyc/sessions/9f2c7b41-6d3e-4c8a-9a20-1e6f0b5d7c33/documents/upload-url' \  --header 'Content-Type: application/json' \  --data '{  "file_name": "passport front.jpg",  "id_doc_type": "PASSPORT"}'
{  "message": "Verification session document upload URL generated successfully.",  "data": {    "url": "https://blaaiz-compliance-prod-storage.s3.eu-west-1.amazonaws.com/merchant-kyc/9d4c4ec5/9f2c7b41/4a7f1c92e0_passport%20front.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=300&X-Amz-Signature=EXAMPLE",    "file_name": "4a7f1c92e0_passport front.jpg",    "headers": {}  }}