Transfers
Send funds to a Mobile Money wallet, a Djamo wallet or another Wajub account via the Transfers API.
A Transfer is an outgoing payout from the balance held by our licensed payment partner, to a
Mobile Money wallet, a phone-addressed wallet such as Djamo, or another Wajub account. A bank payout
goes only through a payout account added in the Dashboard, which this API cannot pay. Transfers are
asynchronous, listen to transfer.succeeded and transfer.failed.
private key required
Transfers require the private key (sk...) in the Authorization header.
Marketplaces: acting on behalf of a subaccount
Platforms can pay out on behalf of a connected subaccount by sending an X-Sync header alongside
their own key (requires the withdrawals capability). See Subaccounts for the rules and error cases.
Endpoints
| Method | Path | Description |
|---|---|---|
POST | /transfers | Create a transfer |
POST | /transfers/batch | Create up to 500 transfers in a call |
GET | /transfers | List transfers |
GET | /transfers/{id} | Retrieve a transfer |
The Transfer object
A transfer is read by its id. Its reference is yours and never checked for uniqueness, so
GET /transfers/{id} does not accept it. The Transfers guide
shows a full example.
idstringoptionalpo_… in live, po_test_… in sandbox.referencestring?optionalprovider_referencestring?optionalamountnumberoptionalcurrencystringoptionaldescriptionstring?optionalreasonstring?optionalfailure_reason.statusenumoptionalprocessing, review, succeeded, failed or cancelled, or pending for a Dashboard payout awaiting your confirmation. cancelled is a payout cancelled before it was sent. A payout the operator cancels on its side ends failed.completebooleanoptionaltrue only once the transfer has succeeded. It stays false on failed and cancelled: read status to know whether a transfer is finished.sourcestringoptionalapi for a payout your integration created, dashboard or recurring for one started from the Konsole.failure_reasonstringoptionalstatus is failed or cancelled.failure_messagestringoptionalstatus is failed or cancelled.metadataobjectoptionalledger_balance_currencystring?optionalsandboxbooleanoptionaltrue for a sandbox payout.providerobject?optionalslug and name of the provider that carries the payout. null on a sandbox payout at creation.beneficiaryobjectoptionalid, name, phone, email and deleted. A beneficiary deleted since stays here, with deleted: true.payment_methodobjectoptionalid, account_number and phone of the destination.succeeded_atdatetime?optionalcreated_atdatetimeoptionalupdated_atdatetimeoptionalLifecycle
A live payout is created processing, or review when it is held.
A Dashboard payout awaiting your confirmation reads pending: confirmed, it goes on like a new
payout; rejected, it ends cancelled.
Events
| Event | Trigger |
|---|---|
transfer.created | Transfer created |
transfer.processing | Transfer submitted to the operator |
transfer.succeeded | Transfer successfully executed |
transfer.failed | Transfer failed |
transfer.cancelled | Stopped before it was sent. Today such a payout is announced as transfer.failed |