Payout Approvals
To insert an approval step between completing the hosted or direct payout flow and the payout being released for processing, send "isQueued": true in the payout instruction. Otherwise set isQueued to false or omit it, and the payout will proceed automatically without approval.
Payouts awaiting approval pause at the QUEUED status. You can approve or reject them in the Admin Dashboard or via the APIs described on this page.
Payout approvals are strongly recommended and should only be disabled if you already have other rigorous disbursement review processes in place prior to the customer submitting a payout.
Approving Queued Payouts in the Admin Dashboard
Finance users can view the list of pending payouts in the Admin Dashboard and approve or reject them there.
Approving Queued Payouts via API
Merchants with their own back office systems can integrate with Yaspa's simple APIs to approve or reject queued payouts programmatically. As noted in the API specifications, these APIs are also subject to payout security requirements.
Use the Approve Queued Payout (EU) or Approve Queued Payout (US) API to approve the payout. The response contains the payout transaction details. Yaspa then processes the payout and sends a PAYOUT_ACCEPTED webhook or failure webhook depending on the ultimate outcome. Use the webhook, not the API response, to update your records.
curl --request POST \
--url https://api.yaspa.com/v2/payouts/transaction/confirm/d7941707-fe9f-fa8d-2491-3da414 \
--header 'AuthorizationCitizen: {private API key}' \
--header 'Signature: {Base64-encoded signature}' \
--header 'Expires-at: {UNIX timestamp for signature expiration}'Alternatively, use the Reject Queued Payout (EU) or Reject Queued Payout (US) API to reject the payout. Optionally include a rejectionReason to describe why the payout was rejected to help with troubleshooting; for example, if a customer cancelled the payout prior to approval, include that context. The response contains the payout transaction details. Yaspa then sends a PAYOUT_REJECTED webhook with the terminal status CANCELLED_BY_MERCHANT. Ensure that the customer's balance is credited with the amount that should have been decremented when the payout was queued for approval.
curl --request POST \
--url https://api.yaspa.com/v2/payouts/transaction/reject \
--header 'AuthorizationCitizen: {private API key}' \
--header 'Signature: {Base64-encoded signature}' \
--header 'Expires-at: {UNIX timestamp for signature expiration}' \
--header 'content-type: application/json' \
--data '{\n "citizenTransactionId": "d7941707-fe9f-fa8d-2491-3da414",\n "rejectionReason": "Failed internal review"\n}'Updated 3 days ago
