KYB documents (business customers)

Two-step upload, step one. Returns a file_id, a presigned url, and the headers required to PUT the file directly to S3. The URL is valid for 5 minutes and accepts a single PUT.

Step two: call POST /api/external/customer/{customer}/document with the same file_id to register the document.

Max file size 25 MB. Allowed types: application/pdf, image/jpeg, image/png. Files outside these limits are rejected at registration time.

The customer must be of type business. Individual customers do not use this endpoint — they use the legacy file flow (POST /api/external/file/get-presigned-url followed by POST /api/external/customer/{id}/files).

Required scope: customer:write.

POSTapi-prod.blaaiz.com/api/external/customer/{customer}/document/presigned-url

Authorization

oauth2ClientCredentials customer:write
AuthorizationBearer <token>

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

In: header

Scope: customer:write

Path Parameters

customer*string
Formatuuid

Response Body

application/json

Get a KYB document upload URL
curl --request POST \  --url 'https://example.com/api/external/customer/497f6eca-6276-4993-bfeb-53cbbbba6f08/document/presigned-url'
{  "message": "Upload URL generated successfully",  "data": {    "file_id": "f6c04a3e-3cdb-4b07-87e5-7a7c0d8b1c10",    "url": "https://s3.amazonaws.com/...?X-Amz-Signature=...",    "headers": {      "x-amz-acl": "private"    }  }}