Create M-PESA Payment
POST /api/payments/mpesa-payment
Initiate M-PESA payment for a balance
Query Parameters
- is-virtual boolean
virtual transactions ?
Example: false
Header Parameters
- api-key string required
- api-secret string required
- application/json
Request Body required
- amount double required
Amount being sent
- phoneNumber string required
Phone number of receiver
- balanceId int64 required
Wallet Id of the account to send from
- balanceIdCharge int64
Wallet Id to charge, if left empty the balance that is being debited from will be charged
- reference string required
Reference
- recipient string required
Recipient Name
- recipientIdNumber string
Recipient ID number
- tagId int64
Tag ID
- 201
- 400
M-PESA payment was initiated successfully
Response Headers
x-request-id any
Request Id for traceability
- */*
- Schema
- Example (from schema)
Schema
- paymentId uuid required
Unique identifier for the payment
- success boolean required
Was the payment successful?
- detail string required
Details of the payment
- reference string required
Reference provided for the payment
{
"paymentId": "f9eb1b23-4f78-495c-968c-9dfdfc89a16d",
"success": true,
"detail": "Payment processed successfully",
"reference": "TESTREF1"
}
Error occurred - bad request
- */*
- Schema
- Example (from schema)
Schema
- requestId uuid
Request Id for traceability
- detail string
Detail of the message.
- status string
Possible values: [
API_KEYS_INVALID
,INTERNAL_ERROR
,API_NOT_ACTIVATED
,INSUFFICIENT_FUNDS
,NOT_SUPPORTED
,CURRENCY_NOT_SUPPORTED
,MOBILE_MONEY_NOT_WHOLE_NUMBER
,BALANCE_NOT_FOUND
,BALANCE_NOT_AUTHORISED
,BALANCE_NOT_NUMERIC
,WEB_HOOK_NOT_SPECIFIED_FOR_OTP
,CLIENT_SIDE_ERROR
]Status
{
"requestId": "d4265597-5317-45fd-8d2f-8012870633d5",
"detail": "API key not valid or Internal error",
"status": "INTERNAL_ERROR"
}