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.

PesaLink lets customers pay from Kenyan bank accounts. Use it when a customer prefers bank transfer instead of M-Pesa. KulmiPay supports PesaLink alongside M-Pesa for collections. Use the collect payment endpoint with method: "PESALINK".
curl --request POST \
  --url https://app.kulmipay.com/api/v1/payment/collection/ \
  --header 'Authorization: Bearer ISSecretKey_live_xxxxxxxxxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data '{
    "method": "PESALINK",
    "currency": "KES",
    "amount": "1500.00",
    "api_ref": "ORDER-1001",
    "email": "customer@example.com",
    "first_name": "Jane",
    "last_name": "Doe",
    "bank_tarrif": "BUSINESS-PAYS"
  }'

Request fields

FieldTypeRequiredDescription
methodstringYesMust be PESALINK.
currencystringYesUse KES. If another supported currency is provided, KulmiPay converts it to KES before processing.
amountstringYesAmount to collect.
api_refstringRecommendedYour reference for reconciliation.
emailstringNoCustomer email address.
first_namestringNoCustomer first name.
last_namestringNoCustomer last name.
bank_tarrifstringNoBUSINESS-PAYS or CUSTOMER-PAYS.

Response

The response includes an invoice and signature. Store the invoice ID and use it to check payment status.
{
  "invoice": {
    "id": "GQ7KZ2XPNM",
    "state": "PENDING",
    "value": "1500.00",
    "currency": "KES",
    "provider": "PESALINK",
    "api_ref": "ORDER-1001"
  },
  "signature": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
PesaLink availability depends on your KulmiPay account settings. Contact support if your account cannot collect via PesaLink.