Initiate Local Payout
Use this endpoint to initiate a payout to either a bank account or a mobile money wallet. The beneficiary receives funds based on the selected channel and processing system.
Endpoint
POST /payment/wallet-to-mobileRequest
Headers
Content-Type* — Must beapplication/jsonx-account-id* — Your unique TemboPlus account identifierx-secret-key* — Your TemboPlus API secret keyx-request-id* — Unique UUID per request for tracing
Body Parameters
serviceCode* (string) — The channel to be used for the payout. Supported values include:TZ-AIRTEL-B2C,TZ-TIGO-B2C,TZ-HALOTEL-B2C,TZ-VODACOM-B2C,TZ-BANK-B2C,KE-SAFARICOM-B2C,KE-BANK-B2C.msisdn* (string) — The recipient identifier. For mobile money: recipient's mobile number in format25(4|5)XXXXXXXXX. For banks: formatSWIFT_CODE:ACCOUNT_NUMBER(e.g.,CORUTZTZ:0150123456789).accountNo* (string) — Your disbursement wallet account number. Retrieve this using the Get Disbursement Wallet Balance endpoint.amount* (number) — The payout amount. The value must be a positive integer.countryCode* (string) — Country code. Supported values areTZandKE.currencyCode* (string) — Currency code. Supported values areTZSandKES.narration* (string) — A short description of the payout. This will appear in your statement.recipientNames* (string) — Recipient's full name or company name.transactionRef* (string) — Your unique transaction reference for reconciliation.transactionDate* (string) — The timestamp of the request in ISO 8601 format, e.g.2025-09-11T10:30:00Z.callbackUrl* (string) — Your HTTPS endpoint where TemboPlus will send a POST notification once the payout status changes.
Example Request Payload
Mobile Money Payout
Bank Payout
Responses
200 OK
If the request is valid and the request was successfully sent to the provider for processing.
Response Fields:
statusCode— Indicates the current state of the initiated payout. Possible values includePENDING,PAYMENT_ACCEPTED,PAYMENT_REJECTED,GENERIC_FAILURE, andPROVIDER_FAILED.transactionId— A unique identifier for this transaction, generated by TemboPlus.transactionRef— Echo of your original transaction reference.
400 BAD REQUEST
Most commonly happens in the following two cases:
1. Insufficient Balance
Triggered when the partner’s disbursement wallet does not have enough funds to complete the transfer.
Response Format
2. Validation Error
Returned when the request payload is missing required fields or contains invalid data.
Response Format
Fields inside details and message are optional and vary depending on the specific validation failure.
Common Validation Errors to Avoid
Ensure all required fields are included in the request body.
amountmust be an integer (whole number) — decimals are not allowed.msisdnmust be in the correct international format, according to theserviceCodeused.Use only supported channel codes that correspond to valid
msisdnused.x-request-idmust be included in the request headers.
Last updated