Skip to main content

Payout process

To help you get started with the payout process, we’ll walk through the steps of creating your first payout using our API. We’ll assume that you have completed the onboarding process, been whitelisted for API services, created your OAuth credentials, obtained an access token, and set up your webhooks for both collections and payouts. The following steps will guide you through the payout process:

Step 1: Create a customer

Before you can make any payouts, you need to associate them with a customer. Every payout (and collection) must be linked to a customer in the system.
  • Endpoint: /customer
  • Purpose: This endpoint bootstraps the customer record in our system.
  • Status: When a customer is first created, their status will be marked as "pending".
Make sure to save the customer_id returned from this endpoint as you’ll need it in future steps.
The customer’s country must match the identity document provided for KYC. Also note that only NON-VERIFIED customers can be fully updated. If a customer is already VERIFIED, only fields that are currently null can be updated. If you need to correct a mistake on a verified customer, see Customer data corrections.
Only Driver’s License (drivers_license), Passport (passport), or Resident Permit (resident_permit) are accepted as identity documents for individual customers. For business customers, only Certificate of Incorporation (certificate_of_incorporation) is accepted. ID cards (National Identity Cards) are not accepted. No other document types are supported.
All uploaded documents must be clear, legible, and authentic. Blurry, cropped, obscured, or otherwise unclear images will not be reviewed and will be rejected. Fraudulent or falsified documents will not be tolerated — repeated attempts to submit false or invalid documents will result in the customer being permanently blacklisted from the platform. There are no exceptions or compromises.

Step 2: Upload documents for the customer

Once you have created the customer, the next step is to upload documents to verify their identity. The customer will remain in a "pending" state until their documents (especially id_file) are uploaded and verified. The identity document must be a Driver’s License, Passport, or Resident Permit for individual customers, or a Certificate of Incorporation for business customers. ID cards (National Identity Cards) are not accepted. All uploaded images must be clear and legible — unclear or illegible images will be rejected. Fraudulent documents will result in the customer being permanently blacklisted from the platform.

2.1 Request pre-signed URLs for document upload

  • Endpoint: /file
  • Purpose: Provides a pre-signed URL that allows you to upload documents for the customer.
  • Request: Specify the customer_id and the file_category (e.g. identity, identity_back, proof_of_address, liveness_check).
  • Response: You’ll receive a URL, a set of headers, and a file_id. The URL is where you will upload the actual document.

2.2 Upload the document

  • Method: Use the pre-signed URL to upload the document.
  • Request: Perform a PUT request to the pre-signed URL, uploading the document as a binary file using the URL and headers provided.
Repeat this process for each required document.

2.3 Add files to the customer

After uploading the documents, you’ll need to associate the uploaded documents with the customer using the file_id returned in the previous step.
  • Endpoint: /customer
  • Request: Pass the customer_id as a URL parameter, then include the file_id for each document in the request body.
  • Purpose: Updates the customer by attaching the uploaded files to their profile. The customer status will remain "PENDING" while the documents are reviewed.
id_file triggers verification. Including id_file (the front identity document) in the request signals that document upload is complete and triggers the verification process. Other files (id_file_back, proof_of_address_file, liveness_check_file) can be uploaded before or alongside id_file, but verification will only begin once id_file is included in the request. If the identity document is two-sided (e.g. driver’s license), upload the back side using identity_back as the file category and include id_file_back in the request.
Verification is not instant. After you upload documents for a customer, those documents go through a review process before the customer can be verified. This means you should not expect the customer’s status to change to "VERIFIED" immediately after uploading files.In most cases, the review completes within a few minutes. However, some documents may require an additional level of checks and screening. When this happens, verification can take up to 2 hours, and this is completely normal. You should not escalate or raise a support ticket during this window — enquiries about verifications that have been pending for less than 2 hours will not be attended to.If verification has been pending for 5 hours or more, that indicates something may have gone wrong. At that point — and only at that point — you should contact the operations team at support@blaaiz.com to request that the situation be expedited.To track the outcome of the review, listen for the customer.verified or customer.rejected webhook. Do not poll the API or assume a timeline — let the webhook tell you when the review is complete.

Step 3: Create a payout

Now that the customer is verified (you have received the customer.verified webhook), you can proceed to create a payout.
  • Endpoint: /payout
  • Purpose: Initiate a payout associated with the verified customer.
Before initiating a payout, ensure the following prerequisites are in place for a smooth experience — requirements vary depending on the destination currency.
The following requirements apply regardless of which currency you are sending to.Customer must be verifiedEvery payout must be linked to a verified customer. If your customer’s identity documents have not been uploaded and approved, the payout will be rejected. Make sure you have completed Step 1 and Step 2 above before attempting a payout. Remember: only a Driver’s License, Passport, or Resident Permit is accepted for individual customers, and only a Certificate of Incorporation for business customers.Wallet must existThe wallet_id you pass in the request must belong to your business. If the wallet does not exist or the ID is incorrect, the payout will fail.Sufficient balanceYour wallet must have enough funds to cover both the payout amount and any applicable fees. We recommend calling the fees breakdown endpoint first to confirm the total cost before initiating the payout.Amount must exceed feesIf you are specifying a from_amount (the amount you want to send), it must be greater than the total applicable fees. If the fees are equal to or exceed the amount, the payout will be rejected.Currency pair must be supportedThe combination of from_currency_id and to_currency_id must be an active, supported pair. If sending between those two currencies is not currently enabled, the payout will not go through.Payout method must be valid for the currencyEach currency supports specific payout methods (e.g. bank_transfer, interac, crypto, ach, wire). If you use a method that is not available for the destination currency, the request will be rejected.Business must not be under Enhanced Due DiligenceIf your business has been placed under Enhanced Due Diligence (EDD) review, all payouts will be blocked until the review is resolved. Contact our support team if you encounter this.Customer must not be under Enhanced Due DiligenceSimilarly, if a specific customer has been flagged for Enhanced Due Diligence, payouts for that customer will be blocked. Reach out to support for assistance.