Money
Wallets, the double-entry ledger, payment intents, payouts and settlements.
58 endpoints
POST
/v3/app/pay/wallet
#
bearer driver_app beneficiary_app money.adjust device idempotency credential
Request body Field Type Constraints wallet_idstring (uuid) required — amount_minorinteger required min 1 · max 100000000 currencystring required min length 3 · max length 3 notestring | null optional max length 200 pinstring | null optional max length 12 categorystring | null optional max length 64 itemsobject[] optional max items 50
Response Returns { "data": WalletChargeReceipt }.
Field Type Constraints transaction_idstring (uuid) required — typestring required — statestring required — customerany required — amountMoneyFormatted required — balance_afterany required —
POST
/v3/app/pos-category
#
bearer driver_app beneficiary_app device credential
Request body Field Type Constraints idstring | null optional — namestring required max length 120 activeboolean | null optional — colorstring | null optional —
Response Returns { "data": PosCategoryWrite }.
Field Type Constraints idstring (uuid) required — namestring required — activeboolean required — colorstring | null required —
bearer driver_app beneficiary_app device credential
Request body Field Type Constraints idstring | null optional — namestring required max length 120 amount_minorinteger required min 1 · max 100000000 currencystring required min length 3 · max length 3 activeboolean | null optional — category_idstring | null optional — min_order_qtyinteger | null optional min 1 · max 10000 skustring | null optional max length 64
Response Returns { "data": PosItemWrite }.
Field Type Constraints idstring (uuid) required — namestring required — skustring | null required — activeboolean required — category_idstring | null required — beneficiary_wallet_idstring | null required — priceMoneyFormatted required — min_order_qtyinteger required —
GET
/v3/app/spending-profile
#
bearer beneficiary_app parent_app device credential
Response Returns { "data": [SpendingProfile ] } with meta.next_cursor for the next page.
Field Type Constraints idstring (uuid) required — namestring required — descriptionstring | null optional — daily_limitany optional — weekly_limitany optional — per_txn_limitany optional — allowed_zone_kindsstring[] optional — time_windowsobject[] optional —
bearer beneficiary_app parent_app device idempotency credential
Request body Field Type Constraints from_wallet_idstring (uuid) required — to_wallet_idstring (uuid) required — amount_minorinteger required min 1 · max -9223372036854775808 currencystring required min length 3 · max length 3 notestring | null optional max length 255
Response Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
POST
/v3/app/voucher/redeem
#
bearer beneficiary_app parent_app device credential
Request body Field Type Constraints codestring required max length 32
Response Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
bearer beneficiary_app parent_app device credential
Query parameters Name Type Constraints statusstring | null optional draft open paid partially_paid overdue void
Response Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
POST
/v3/invoice/{id}/pay
#
bearer beneficiary_app parent_app device idempotency credential
Path parameters Request body Field Type Constraints gatewaystring required mpesa kasapay pawapay infinity pesapal bank cash internal +1 more msisdnstring required max length 20
Response Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
bearer driver_app beneficiary_app pass_app money.adjust device idempotency credential
Request body Field Type Constraints band_serialstring required max length 64 amount_minorinteger required min 1 · max 100000000 currencystring required min length 3 · max length 3 device_idstring (uuid) required — notestring | null optional max length 200 pinstring | null optional max length 12 categorystring | null optional max length 64 itemsobject[] optional max items 50
Response Returns { "data": PayReceipt }.
Field Type Constraints transaction_idstring (uuid) required — typestring required — statestring required — studentany required — balance_afterany required —
GET
/v3/payment-intent/{id}
#
bearer beneficiary_app parent_app device credential
Path parameters Response Returns { "data": PaymentIntentDetail }.
Field Type Constraints payment_intent_idstring (uuid) required — statestring required — gatewaystring required — amountobject required — amount. amount_minorinteger required — amount. currencystring required min length 3 · max length 3 transaction_idstring | null required — provider_refstring | null required — failure_reasonstring | null required —
GET
/v3/portal/account/{account}/wallet
#
bearer admin_web device credential
the parent profile's Wallet tab (§11.14).
Path parameters Name Type Notes accountstring
Response Returns { "data": WebAccountWallet }.
Field Type Constraints accountobject required — account. idstring (uuid) required — account. namestring required — walletsobject[] required — childrenobject[] required — recent_transactionsWebTransaction []required —
GET
/v3/portal/charge-rule
#
bearer admin_web device credential
Response Returns { "data": [ChargeRule ] } with meta.next_cursor for the next page.
Field Type Constraints idstring (uuid) required — namestring required — notestring | null required — frequencystring required — amountMoney required — destination_wallet_idstring (uuid) required — subject_scopestring required — subjectsobject[] required — statusstring required — last_processed_atstring | null required —
POST
/v3/portal/charge-rule
#
bearer admin_web money.adjust device credential
Request body Field Type Constraints namestring required min length 2 · max length 120 notestring | null optional max length 300 frequencystring required hourly daily weekly monthly yearlyamount_minorinteger required min 1 · max 100000000 currencystring required min length 3 · max length 3 destination_wallet_idstring (uuid) required — subject_scopestring required all custom
Response Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
DELETE
/v3/portal/charge-rule/{id}
#
bearer admin_web money.adjust device credential
Path parameters Response Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
PATCH
/v3/portal/charge-rule/{id}
#
bearer admin_web money.adjust device credential
Path parameters Request body Field Type Constraints namestring optional min length 2 · max length 120 notestring | null optional max length 300 frequencystring optional hourly daily weekly monthly yearlyamount_minorinteger optional min 1 · max 100000000 statusstring optional active suspendedsubject_scopestring optional all custom
Response Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
PUT
/v3/portal/charge-rule/{id}/subjects
#
bearer admin_web money.adjust device credential
Replace the rule's custom-subject set wholesale (PUT semantics).
Path parameters Request body Field Type Constraints subjectsobject[] required max items 500
Response Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
bearer admin_web device credential
Response Returns { "data": Credits }.
Field Type Constraints wallet_idstring (uuid) required — balanceMoney required — usedMoney required —
POST
/v3/portal/credits/topup
#
bearer admin_web money.credit device credential
Request body Field Type Constraints amount_minorinteger required min 100 · max 100000000 currencystring required min length 3 · max length 3 msisdnstring required —
Response Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
bearer admin_web device credential
Response Returns { "data": [WebLoan ] } with meta.next_cursor for the next page.
Field Type Constraints idstring (uuid) required — wallet_idstring (uuid) required — borrowerstring | null required — principalMoney required — outstandingMoney required — interest_rate_bpsinteger required — penalty_rate_bpsinteger required — interest_periodstring required — statusstring required — term_ends_onstring | null required — next_accrual_atstring | null required — paid_atstring | null required —
bearer admin_web money.credit device credential
Request body Field Type Constraints wallet_idstring (uuid) required — principal_minorinteger required min 1 · max 100000000 currencystring required min length 3 · max length 3 interest_rate_bpsinteger required min 0 · max 10000 penalty_rate_bpsinteger | null optional min 0 · max 10000 interest_periodstring | null optional 1 day 1 week 1 month 1 yearterm_ends_onstring | null optional —
Response Returns { "data": Written }.
Field Type Constraints idstring (uuid) required —
POST
/v3/portal/loan/{id}/repay
#
bearer admin_web money.adjust device credential
Path parameters Request body Field Type Constraints amount_minorinteger required min 1 · max 100000000 currencystring required min length 3 · max length 3
Response Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
bearer admin_web device credential
Query parameters Name Type Constraints fromstring required — tostring required — statestring | null optional created processing succeeded failed expired reversedcursorstring | null optional max length 200 per_pageinteger | null optional min 1 · max 500
Response Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
bearer admin_web money.payout device credential
Request body Field Type Constraints wallet_idstring (uuid) required — amount_minorinteger required min 1 · max 100000000 currencystring required min length 3 · max length 3 msisdnstring required — gatewaystring required mpesa kasapay pawapay infinity pesapal bank cash internal +1 more
Response Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
GET
/v3/portal/payout/{id}
#
bearer admin_web device credential
Path parameters Response Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
DELETE
/v3/portal/pos-category/{id}
#
bearer admin_web settings.manage device credential
Path parameters Response Returns { "data": PosCategoryAdmin }.
Field Type Constraints idstring (uuid) required — namestring required — activeboolean required — colorstring | null required — photoany required — created_atstring (date-time) required — updated_atstring (date-time) required —
POST
/v3/portal/pos-item/copy
#
bearer admin_web settings.manage device credential
PCE-2b: copy items onto other beneficiaries — an upsert per (item, target).
Request body Field Type Constraints item_idsstring (uuid) [] required min items 1 · max items 200 beneficiary_wallet_idsstring (uuid) [] required min items 1 · max items 50
Response Returns { "data": PosItemCopyReceipt }.
Field Type Constraints targetsinteger required — createdinteger required — updatedinteger required —
GET
/v3/portal/spending-profile
#
bearer admin_web device credential
Response Returns { "data": [WebSpendingProfile ] } with meta.next_cursor for the next page.
Field Type Constraints idstring (uuid) required — namestring required — descriptionstring | null required — daily_limit_minorinteger | null required — weekly_limit_minorinteger | null required — per_txn_limit_minorinteger | null required — daily_txn_limitinteger | null required — weekly_txn_limitinteger | null required — allowed_zone_kindsarray | null required — time_windowsarray required — walletsinteger required —
POST
/v3/portal/spending-profile
#
bearer admin_web money.adjust device credential
Request body Field Type Constraints namestring required min length 2 · max length 80 descriptionstring | null optional max length 300 daily_limit_minorinteger | null optional min 0 weekly_limit_minorinteger | null optional min 0 per_txn_limit_minorinteger | null optional min 0 allowed_zone_kindsarray | null optional max items 10 time_windowsobject[] optional max items 10
Response Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
DELETE
/v3/portal/spending-profile/{id}
#
bearer admin_web money.adjust device credential
Path parameters Response Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
PATCH
/v3/portal/spending-profile/{id}
#
bearer admin_web money.adjust device credential
Path parameters Request body Field Type Constraints namestring optional min length 2 · max length 80 descriptionstring | null optional max length 300 daily_limit_minorinteger | null optional min 0 weekly_limit_minorinteger | null optional min 0 per_txn_limit_minorinteger | null optional min 0 allowed_zone_kindsarray | null optional max items 10 time_windowsobject[] optional max items 10
Response Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
GET
/v3/portal/transaction
#
bearer admin_web device credential
Query parameters Name Type Constraints fromstring required — tostring required — typestring | null optional max length 40 wallet_idstring | null optional — cursorstring | null optional max length 200 per_pageinteger | null optional min 1 · max 500
Response Returns { "data": [WebTransaction ] } with meta.next_cursor for the next page.
Field Type Constraints idstring (uuid) required — typestring required — statestring required — amountMoney required — descriptionstring | null required — reverses_transaction_idstring | null required — school_idstring | null required — school_namestring | null required — created_atstring (date-time) required —
POST
/v3/portal/transaction/{id}/refund
#
bearer admin_web money.refund device credential
Path parameters Response Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
bearer admin_web device credential
Query parameters Name Type Constraints statusstring | null optional active redeemed voided expiredcursorstring | null optional max length 200 per_pageinteger | null optional min 1 · max 500
Response Returns { "data": [WebVoucher ] } with meta.next_cursor for the next page.
Field Type Constraints idstring (uuid) required — codestring required — amountMoney required — statusstring required — statestring required — merchant_wallet_idstring (uuid) required — issued_to_wallet_idstring | null required — issued_toany required — redeemedboolean required — expires_atstring (date-time) required — created_atstring (date-time) required —
POST
/v3/portal/voucher
#
bearer admin_web money.adjust device credential
Request body Field Type Constraints amount_minorinteger required min 1 · max 100000000 currencystring required min length 3 · max length 3 merchant_wallet_idstring (uuid) required — issued_to_wallet_idstring | null optional — expires_atstring (date-time) required — countinteger | null optional min 1 · max 1000
Response Returns { "data": VoucherCodes }.
Field Type Constraints codesstring[] required —
POST
/v3/portal/voucher/{id}/void
#
bearer admin_web money.void device credential
Path parameters Response Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
GET
/v3/portal/wallet-type
#
bearer admin_web device credential
Response Returns { "data": [WalletType ] } with meta.next_cursor for the next page.
Field Type Constraints idstring (uuid) required — namestring required — kindstring required — currencystring required — is_defaultboolean required — allow_negativeboolean required — statusstring required — walletsinteger required —
GET
/v3/portal/wallet/{id}
#
bearer admin_web device credential
Path parameters Response Returns { "data": WebWalletDetail }.
Field Type Constraints idstring (uuid) required — holderstring required — typeobject required — type. idstring (uuid) required — type. namestring required — type. kindstring required — balanceMoney required — statusstring required — studentany required — accountany required — spending_profileany required — created_atstring (date-time) required —
POST
/v3/portal/wallet/{id}/charge
#
bearer admin_web money.adjust device credential
Path parameters Request body Field Type Constraints amount_minorinteger required min 1 · max 100000000 currencystring required min length 3 · max length 3 reasonstring required min length 3 · max length 200
Response Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
bearer pass_web admin_web device credential
Response Returns { "data": [PosCategoryAdmin ] } with meta.next_cursor for the next page.
Field Type Constraints idstring (uuid) required — namestring required — activeboolean required — colorstring | null required — photoany required — created_atstring (date-time) required — updated_atstring (date-time) required —
bearer pass_web admin_web settings.manage device credential
Request body Field Type Constraints namestring required max length 120 activeboolean | null optional — colorstring | null optional —
Response Returns { "data": PosCategoryAdmin }.
Field Type Constraints idstring (uuid) required — namestring required — activeboolean required — colorstring | null required — photoany required — created_atstring (date-time) required — updated_atstring (date-time) required —
PATCH
/v3/pos-category/{id}
#
bearer pass_web admin_web settings.manage device credential
Path parameters Request body Field Type Constraints namestring optional max length 120 activeboolean optional — colorstring | null optional —
Response Returns { "data": PosCategoryAdmin }.
Field Type Constraints idstring (uuid) required — namestring required — activeboolean required — colorstring | null required — photoany required — created_atstring (date-time) required — updated_atstring (date-time) required —
bearer pass_web admin_web device credential
Query parameters Name Type Constraints activestring | null optional true falsebeneficiarystring | null optional max length 64 cursorstring | null optional max length 200 per_pageinteger | null optional min 1 · max 500
Response Returns { "data": [PosItemAdmin ] } with meta.next_cursor for the next page.
Field Type Constraints idstring (uuid) required — namestring required — skustring | null required — activeboolean required — category_idstring | null required — beneficiary_wallet_idstring | null required — priceMoneyFormatted required — min_order_qtyinteger required — cost_priceany required — photoany required — created_atstring (date-time) required — updated_atstring (date-time) required —
bearer pass_web admin_web settings.manage device credential
Request body Field Type Constraints namestring required max length 120 amount_minorinteger required min 1 · max 100000000 cost_price_minorinteger | null optional min 1 · max 100000000 currencystring required min length 3 · max length 3 activeboolean | null optional — category_idstring | null optional — min_order_qtyinteger | null optional min 1 · max 10000 beneficiary_wallet_idstring | null optional — skustring | null optional max length 64
Response Returns { "data": PosItemAdmin }.
Field Type Constraints idstring (uuid) required — namestring required — skustring | null required — activeboolean required — category_idstring | null required — beneficiary_wallet_idstring | null required — priceMoneyFormatted required — min_order_qtyinteger required — cost_priceany required — photoany required — created_atstring (date-time) required — updated_atstring (date-time) required —
DELETE
/v3/pos-item/{id}
#
bearer pass_web admin_web settings.manage device credential
Path parameters Response Returns { "data": PosItemAdmin }.
Field Type Constraints idstring (uuid) required — namestring required — skustring | null required — activeboolean required — category_idstring | null required — beneficiary_wallet_idstring | null required — priceMoneyFormatted required — min_order_qtyinteger required — cost_priceany required — photoany required — created_atstring (date-time) required — updated_atstring (date-time) required —
PATCH
/v3/pos-item/{id}
#
bearer pass_web admin_web settings.manage device credential
Path parameters Request body Field Type Constraints namestring optional max length 120 amount_minorinteger optional min 1 · max 100000000 cost_price_minorinteger | null optional min 1 · max 100000000 activeboolean optional — min_order_qtyinteger optional min 1 · max 10000 beneficiary_wallet_idstring | null optional — skustring | null optional max length 64 category_idstring | null optional —
Response Returns { "data": PosItemAdmin }.
Field Type Constraints idstring (uuid) required — namestring required — skustring | null required — activeboolean required — category_idstring | null required — beneficiary_wallet_idstring | null required — priceMoneyFormatted required — min_order_qtyinteger required — cost_priceany required — photoany required — created_atstring (date-time) required — updated_atstring (date-time) required —
bearer beneficiary_app parent_app device idempotency credential
Request body Field Type Constraints wallet_idstring (uuid) required — amount_minorinteger required min 1 · max -9223372036854775808 currencystring required min length 3 · max length 3 gatewaystring required — msisdnstring required max length 20
Response Returns { "data": PaymentIntent }.
Field Type Constraints payment_intent_idstring (uuid) required — statestring required — gatewaystring required — amountobject required — amount. amount_minorinteger required — amount. currencystring required min length 3 · max length 3 instructionsstring optional —
public credential
Query parameters Name Type Constraints activestring | null optional true falsebeneficiarystring | null optional max length 64 cursorstring | null optional max length 200 per_pageinteger | null optional min 1 · max 500
Response Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
public credential
Request body Field Type Constraints namestring required max length 120 amount_minorinteger required min 1 · max 100000000 cost_price_minorinteger | null optional min 1 · max 100000000 currencystring required min length 3 · max length 3 activeboolean | null optional — category_idstring | null optional — min_order_qtyinteger | null optional min 1 · max 10000 beneficiary_wallet_idstring | null optional — skustring | null optional max length 64
Response Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
POST
/v3/waas/pos-item/copy
#
public credential
PCE-2b: copy items onto other beneficiaries — an upsert per (item, target).
Request body Field Type Constraints item_idsstring (uuid) [] required min items 1 · max items 200 beneficiary_wallet_idsstring (uuid) [] required min items 1 · max items 50
Response Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
DELETE
/v3/waas/pos-item/{id}
#
public credential
Path parameters Response Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
PATCH
/v3/waas/pos-item/{id}
#
public credential
Path parameters Request body Field Type Constraints namestring optional max length 120 amount_minorinteger optional min 1 · max 100000000 cost_price_minorinteger | null optional min 1 · max 100000000 activeboolean optional — min_order_qtyinteger optional min 1 · max 10000 beneficiary_wallet_idstring | null optional — skustring | null optional max length 64 category_idstring | null optional —
Response Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
bearer pass_web admin_web device credential
the tenant's wallet register, whichever console (lego L1b). The pass console's flat twin merged into this richer read: indexed search arms, typed Money, joined student/account names, plus the phone and wallet age the help desk was already reading on the pass side.
Query parameters Name Type Constraints holderstring | null optional account student zone tenant agent systemqstring | null optional max length 120
Response Returns { "data": [WebWallet ] } with meta.next_cursor for the next page.
Field Type Constraints idstring (uuid) required — holderstring required — typeobject required — type. namestring required — type. kindstring required — balanceMoney required — statusstring required — studentany required — accountany required — spending_profile_idstring | null required — holder_phonestring | null required — created_atstring (date-time) required —
GET
/v3/wallet/{id}/balance
#
bearer beneficiary_app parent_app pass_web admin_web device credential
Path parameters Response Returns { "data": WalletBalance }.
Field Type Constraints wallet_idstring (uuid) required — balanceMoneyFormatted required —
PATCH
/v3/wallet/{id}/spending-profile
#
bearer beneficiary_app parent_app device credential
Path parameters Request body Field Type Constraints spending_profile_idstring | null optional —
Response Returns { "data": SpendingProfileAssignment }.
Field Type Constraints wallet_idstring (uuid) required — spending_profile_idstring | null required —
GET
/v3/wallet/{id}/statement
#
bearer beneficiary_app parent_app pass_web admin_web device credential
Path parameters Query parameters Name Type Constraints fromstring | null optional — tostring | null optional —
Response Returns { "data": [WalletStatementRow ] } with meta.next_cursor for the next page.
Field Type Constraints idstring (uuid) required — typestring required — statestring required — directionstring | null optional — amountMoneyFormatted required — balance_afterMoneyFormatted required — descriptionstring | null optional — studentany optional — created_atstring (date-time) required —
GET
/v3/wallet/{id}/statement/summary
#
bearer beneficiary_app parent_app pass_web admin_web device credential
Path parameters Query parameters Name Type Constraints fromstring required — tostring required —
Response Returns { "data": WalletStatementSummary }.
Field Type Constraints currencystring required — totalsobject required — net_minorinteger required — opening_minorinteger required — closing_minorinteger required —
POST
/v3/wallet/{id}/topup
#
bearer pass_web admin_web money.adjust device credential
Path parameters Request body Field Type Constraints amount_minorinteger required min 1 · max 100000000 currencystring required min length 3 · max length 3 reasonstring required min length 3 · max length 200
Response Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
POST
/v3/webhook/payment/{gateway}
#
public 120,1
Path parameters Name Type Notes gatewaystring
Response Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.