Skip to main content
POST
/
v1
/
mpesa
/
b2c
Create M‑Pesa B2C disbursement
curl --request POST \
  --url https://api.fingopay.io/v1/mpesa/b2c \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "phoneNumber": "+254712345678",
  "amount": 250000,
  "narration": "Payout for 2025-08-15",
  "merchantTransactionId": "mtx_789",
  "webhookUrl": "https://example.com/webhooks/fingo",
  "metadata": {}
}'
{
  "status": "success",
  "message": "Transaction initiated successfully",
  "data": {
    "merchantTransactionId": "mtx_123",
    "transactionId": "txn_01j7b6f9p5y9h"
  }
}
Debits from your b2c float. Successful delivery is reported via payout.succeeded webhook.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

Idempotency-Key
string<uuid>

Unique key to safely retry POST without duplicates.

Body

application/json
phoneNumber
string
required
Example:

"+254712345678"

amount
integer
required
Example:

250000

merchantTransactionId
string
required
Example:

"mtx_789"

narration
string
Maximum length: 140
Example:

"Payout for 2025-08-15"

webhookUrl
string<uri>
Example:

"https://example.com/webhooks/fingo"

metadata
object

Response

Accepted — final result will be delivered via webhook.

status
string
Example:

"success"

message
string
Example:

"Transaction initiated successfully"

data
object
I