Skip to main content

Documentation Index

Fetch the complete documentation index at: https://developers.kulmipay.com/llms.txt

Use this file to discover all available pages before exploring further.

Internal transfers move funds between two wallets owned by your business. Both wallets must use the same currency. Use this when you want to move funds from a settlement wallet into a working wallet before running Send Money.

Transfer funds

curl --request POST \
  --url https://app.kulmipay.com/api/v1/wallets/wlt_abc123/intra_transfer/ \
  --header "Authorization: Bearer ISSecretKey_live_xxxxxxxxxxxxxxxx" \
  --header "Content-Type: application/json" \
  --data '{
    "wallet_id": "wlt_def456",
    "amount": "10000.00",
    "narrative": "Fund payroll wallet"
  }'
wlt_abc123 in the URL is the source wallet. The wallet_id in the body is the destination wallet.

Request fields

FieldRequiredDescription
wallet_idYesDestination wallet alias ID.
amountYesAmount to transfer. Must be greater than zero and not more than 999999.00.
narrativeYesStatement description for both wallets.

Response

{
  "origin": {
    "wallet_id": "wlt_abc123",
    "label": "Settlement KES",
    "can_disburse": true,
    "currency": "KES",
    "wallet_type": "SETTLEMENT",
    "current_balance": "90000.00",
    "available_balance": "90000.00",
    "updated_at": "2026-05-28T10:15:00Z"
  },
  "destination": {
    "wallet_id": "wlt_def456",
    "label": "Payroll Wallet",
    "can_disburse": true,
    "currency": "KES",
    "wallet_type": "WORKING",
    "current_balance": "10000.00",
    "available_balance": "10000.00",
    "updated_at": "2026-05-28T10:15:00Z"
  }
}
The transfer fails if the wallets use different currencies or if the source wallet does not have enough available balance.