Individual customers only. Request a pre-signed URL to upload a legacy 4-slot KYC file for an individual customer.

For type=business customers, do not use this endpoint. Use the dedicated KYB upload endpoints — POST /api/external/customer/{customer}/owner/{owner}/file/presigned-url for owner ID files and POST /api/external/customer/{customer}/document/presigned-url for KYB documents. See the Business customer KYB guide.

Upload process:

  1. Make a PUT request to the upload_url.
  2. Include the headers from the response.
  3. Send the file as binary data in the request body.
  4. Once uploaded, use the file_id to attach the file to the customer record via POST /api/external/customer/{id}/files.

IMPORTANT — Accepted identity documents: Only a Driver's License, Passport, or Resident Permit is accepted. ID cards (National Identity Cards) are NOT accepted.

IMPORTANT — Document quality: All uploaded documents must be clear, legible, and authentic. Blurry, cropped, obscured, or unclear images will not be reviewed and will be rejected. Fraudulent or falsified documents will not be tolerated — repeated attempts will result in the customer being permanently blacklisted from the platform. There are no exceptions or compromises.

Required scope: file:upload.

POSTapi-prod.blaaiz.com/api/external/file/get-presigned-url

Authorization

oauth2ClientCredentials file:upload
AuthorizationBearer <token>

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

In: header

Scope: file:upload

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Individual customers only. This endpoint provides a presigned URL for uploading legacy 4-slot KYC files (identity, identity_back, proof_of_address, liveness_check) for an individual customer.

Do not use this endpoint for type=business customers. Business-type customers use dedicated upload endpoints — POST /api/external/customer/{customer}/owner/{owner}/file/presigned-url for owner ID files and POST /api/external/customer/{customer}/document/presigned-url for KYB documents. See the Business customer KYB guide.

File Category:

  • identity — Identity document. Required to verify an individual customer. Only a Driver's License, Passport, or Resident Permit is accepted. ID cards (National Identity Cards) are NOT accepted.
  • identity_back — Back side of the identity document. Use this when the identity document is two-sided (e.g. driver's license).
  • proof_of_address — Proof of address.
  • liveness_check — Liveness check.

All uploaded documents must be clear, legible, and authentic. Blurry, cropped, obscured, or unclear images will not be reviewed and will be rejected. Fraudulent or falsified documents will not be tolerated — repeated attempts will result in the customer being permanently blacklisted from the platform.

Response Body

application/json

application/json

application/json

Request file upload URL
curl --request POST \  --url 'https://example.com/api/external/file/get-presigned-url' \  --header 'Content-Type: application/json' \  --data '{  "customer_id": "customer_123",  "file_category": "identity"}'
{  "message": "Upload URL generated successfully",  "file_id": "file_123456789",  "url": "https://s3.amazonaws.com/bucket/path?signature=xyz",  "headers": {    "Content-Type": "image/jpeg"  }}