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.

Use KulmiPay P2P when you need to move funds from one KulmiPay wallet/account to another without sending money through M-Pesa or PesaLink. P2P uses the same Send Money flow: initiate a file, approve it if required, then check status with the returned tracking_id.

Transaction fields

FieldRequiredDescription
accountYesRecipient KulmiPay account or wallet identifier.
amountYesAmount to transfer.
nameNoRecipient name for your records.
narrativeNoPayment reason shown in reports.
idempotency_keyNoUnique key to prevent duplicate transfers.

Initiate a P2P transfer

curl -X POST https://app.kulmipay.com/api/v1/send-money/initiate/ \
  -H "Authorization: Bearer ISSecretKey_live_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "currency": "KES",
    "provider": "P2P",
    "requires_approval": "YES",
    "transactions": [
      {
        "account": "RECIPIENT_ACCOUNT_ID",
        "amount": "1000",
        "name": "Partner Wallet",
        "narrative": "Internal settlement",
        "idempotency_key": "p2p-settlement-001"
      }
    ]
  }'
Confirm the recipient account identifier before sending. P2P transfers move funds inside KulmiPay and should be treated as final once processed.