Payouts
A Payout object represents a disbursement of funds to a recipient. Payouts allow you to send money to mobile money wallets and other supported destinations. Currently, EcoCash mobile money is available, with more coming soon.
Approval required: the Payouts API needs prior approval — your account must be approved for B2C services. Contact sales for more.
Validate a payout recipient
Validates a recipient's mobile money account before initiating a payout. This is a synchronous operation that queries the mobile money provider directly to verify the recipient's account status and retrieve their details.
It is recommended to validate recipients before creating payouts to avoid failed transactions.
Request Body Example
Code
Validate a payout recipient › Request Body
The destination for the payout funds. The destination is structured to support multiple destination types. Currently, EcoCash mobile money is the available destination, with more options (e.g., OneMoney, bank transfer) coming soon.
Validate a payout recipient › Responses
Recipient validated successfully
validWhether the recipient account is valid and can receive payouts.
Details about the validated recipient. Only present when valid is true.
List all payouts
Returns a paginated list of payouts. The payouts are returned sorted by creation date, with the most recently created payouts appearing first.
Using pagination
By default, this endpoint returns 10 payouts per page. You can adjust this with the limit parameter
and navigate through pages using the after cursor returned in the paging object.
Code
query Parameters
limitNumber of records to return per page. Use with cursor-based pagination.
firstNumber of records to return for forward pagination. Use with after cursor.
afterCursor for forward pagination. Returns records after this cursor.
lastNumber of records to return for backward pagination. Use with before cursor.
beforeCursor for backward pagination. Returns records before this cursor.
statusFilter payouts by status.
currencyFilter payouts by currency ISO code.
start_dateFilter payouts created on or after this date. Use ISO 8601 format (YYYY-MM-DD).
end_dateFilter payouts created on or before this date. Use ISO 8601 format (YYYY-MM-DD).
List all payouts › Responses
A list of payouts
objectType of the returned object.
Array of payout objects.
Pagination metadata
Create a payout
Creates a new payout to send funds to a recipient. The payout is processed
asynchronously — the response returns immediately with a pending status while
processing happens in the background.
You will receive a webhook notification (payout.succeeded or payout.failed)
when the payout is completed.
Request Body Example
Code
Payout Status
A payout can have one of the following statuses:
pending: The payout has been created and is being processed.paid: The payout completed successfully and funds have been delivered.failed: The payout failed to process.
Create a payout › Request Body
amountA positive integer representing the payout amount in the smallest currency unit (e.g. 100 cents = $1.00).
The minimum amount is 100 (e.g., $1.00).
currencyA three-letter ISO currency code. Currently, only usd and zwg are supported.
The destination for the payout funds. The destination is structured to support multiple destination types. Currently, EcoCash mobile money is the available destination, with more options (e.g., OneMoney, bank transfer) coming soon.
descriptionAn optional description for the payout. This can be used for internal reference or record-keeping.
Maximum 150 characters.
A set of key-value pairs for storing additional information about the payout.
You can specify up to 5 keys, with key names up to 40 characters long and values up to 500 characters long.
Create a payout › Responses
Payout created successfully
idUnique identifier for the payout object. Payout IDs have the prefix po_.
objectA string representing the type of the object. Always "payout" for
payout objects.
Contains the monetary value and currency information for the payout.
livemodeHas the value true if the object exists in live mode or false if
in test mode.
createdTime at which the object was created. Measured in seconds since the Unix epoch.
statusThe status of the payout.
Possible values:
pending: The payout has been created and is being processed.paid: The payout completed successfully and funds have been delivered.failed: The payout failed to process.
descriptionDescription of the payout, if one was provided at creation time.
A set of key-value pairs attached to the payout.
Contains information about the payout destination. The structure depends on the destination type used.
failure_codeError code for a failed payout. This field will be null if the
payout has not failed.
failure_messageA human-readable message providing more details about why the payout failed.
This field will be null if the payout has not failed.
Retrieve a payout
Retrieves the details of an existing payout. You can use this endpoint to check the status of a payout.
Payout details
The payout object contains detailed information about the payout, including:
- The amount sent
- The current status of the payout
- Destination details (recipient info, references)
- Failure information if applicable
path Parameters
idUnique identifier for the payout
Retrieve a payout › Responses
Payout details retrieved successfully
idUnique identifier for the payout object. Payout IDs have the prefix po_.
objectA string representing the type of the object. Always "payout" for
payout objects.
Contains the monetary value and currency information for the payout.
livemodeHas the value true if the object exists in live mode or false if
in test mode.
createdTime at which the object was created. Measured in seconds since the Unix epoch.
statusThe status of the payout.
Possible values:
pending: The payout has been created and is being processed.paid: The payout completed successfully and funds have been delivered.failed: The payout failed to process.
descriptionDescription of the payout, if one was provided at creation time.
A set of key-value pairs attached to the payout.
Contains information about the payout destination. The structure depends on the destination type used.
failure_codeError code for a failed payout. This field will be null if the
payout has not failed.
failure_messageA human-readable message providing more details about why the payout failed.
This field will be null if the payout has not failed.