Releasing a Payout Page

When creating a Payout Page, you can specify the release method with the releaseMethod field in the request payload.

There are two options:

Release MethodDescription
MANUALMerchant must explicitly release the payout page via API
AUTOMATICPayout page is released automatically after customer submission

Choosing a Release Method: MANUAL vs AUTOMATIC

  • AUTOMATIC — The payout is processed immediately once the customer confirms and completes onboarding. Simple to implement, but leaves no checkpoint on your side before funds move.
  • MANUAL — Once the customer confirms and completes onboarding, Breeze sends a webhook notifying you that the payout page is in status PENDING with sub-status PENDING_MERCHANT_RELEASE, instead of releasing funds right away. This gives you a chance to run your own balance/risk check and deduct the customer's balance before calling the Payout Page Release endpoint to actually release the funds.
⚠️

We heavily recommend using MANUAL release. It adds a critical checkpoint that protects against race conditions, bugs, or balance manipulation that could otherwise lead to over-payouts — for example, a customer triggering multiple payouts that exceed their actual balance before your system catches up. With MANUAL, you control exactly when the balance is deducted and when the release is triggered, giving you a safer, more auditable flow.

Best practice: Deduct the customer's balance at the moment you call the Release endpoint — not earlier (e.g., not at payout page creation).

Manual Release

If the releaseMethod is set to MANUAL:

  1. The customer submits payout details and completes KYC verification (if required)
  2. The Payout Page enters status PENDING with sub-status PENDING_MERCHANT_RELEASE
  3. Breeze sends a webhook event notifying you that the page is waiting for release
  4. The merchant must call the Payout Page Release endpoint to start processing

Example request:

curl -X POST \
    https://api.breeze.cash/v1/payout_pages/payout_page_404aaaa1c9ced891/release \
    -H 'content-type: application/json' \
    -u "YOUR_API_KEY:"
ℹ️

If you need some manual in-person review for a payout that would take a longer time, it would be better to do so before reaching this manual release step

Automatic Release

If the releaseMethod is set to AUTOMATIC:

  1. The customer submits payout details and completes KYC verification (if required)
  2. The payout page is immediately released for processing
  3. Breeze sends a webhook event where the payout page status is PROCESSING

Did this page help you?