Developer Documentation
Six APIs, each with its own page: receive payments, send money, check status, balance, number lookup and webhooks.
SpeedPesa Pro Payments API
Collect and send mobile money payments — M-Pesa, Mixx By Yas, Airtel Money and Halopesa — through one API with simple REST endpoints.
Prerequisites
- API Key — API Key — go to Dashboard → Settings → Developer then click Generate API Key.
- Webhook URL — Webhook URL — register your URL to receive notifications whenever a payment status changes.
How it works
- Step 1 — USSD Push (Payment Request) — Send POST /collections/ussd-push with phone + amount; the customer receives a USSD push to enter their PIN and the status is pending.
- Step 2 — Status — Check the status with GET /transactions/{orderid} until it becomes success or failed.
- Step 3 — Webhook — Or wait for SpeedPesa Pro to send the event to your webhook URL.
Authentication
Every request requires your API key in the headers.
Required Headers
Authorization
Bearer sk_live_XXXXXXXXXXXX
Content-Type
application/json
Base URL
All endpoint paths are appended to the base URL.
All APIs
Click any group to open full details, request body and code samples.
Collection API
USSD PUSH · POSTSend a payment request and receive money from mobile money. You send a request (POST /collections/ussd-push) to the customer; their phone receives a USSD push to enter the PIN.
Open detailsDisbursement API
PAYOUT · POSTSend money to customers, agents or vendors. You send a request (POST) to pay out money; funds go directly to the recipient's phone.
Open detailsTransaction Status API
STATUS · GETCheck the status of any transaction instantly. You simply ask (GET) for the status of a transaction: pending, success or failed.
Open detailsBalance Check API
BALANCE · GETCheck your SpeedPesa Pro balance in real time. You simply ask (GET) for your balance — no money is sent.
Open detailsMobile Number Lookup API
LOOKUP · POSTVerify the number and provider before a transaction. You ask (POST) which network a phone number belongs to before sending money.
Open detailsWebhook API
WEBHOOK · POST to youReceive event notifications directly on your server. SpeedPesa Pro sends a POST to your server every time a transaction status changes.
Open detailsTest the Connection
Ping — Test your API Key
Use this endpoint to confirm your API key works before you start sending real payments.
Use www.speedpesapro.com specifically (without www the request is redirected and some HTTP clients drop the POST body — which causes a server error).
curl -X GET 'https://www.speedpesapro.com/api/public/v1/ping' \
-H 'Authorization: Bearer sk_live_XXXXXXXXXXXX'Error Codes
All errors are returned in one format: success, message.
| Code | HTTP | Meaning | Fix |
|---|---|---|---|
| STB-1001 | 401 | The API key is invalid or has been revoked | Generate a new key from Dashboard → Settings → Developer. |
| STB-1010 | 422 | The request data is incomplete | Check the message field in the response and fix the field mentioned. |
| STB-1042 | 400 | The phone number is not recognised | Use the format 07XXXXXXXX or 2557XXXXXXXX. |
| STB-1055 | 409 | The order reference has already been used | Use a unique reference for every transaction. |
| STB-2044 | 404 | The transaction cannot be found | Confirm the transaction_id or reference you sent. |
| STB-3001 | 429 | You have exceeded the request rate limit | Slow down your requests; the limit is 120 requests per minute. |
| STB-5000 | 500 | An internal system error occurred | Try again after a few seconds; contact support if it continues. |
Support & Resources
Our team helps with integration, troubleshooting and account management.
| Channel | Contact | Response Time |
|---|---|---|
| support@speedpesapro.com | 24 hours | |
| Phone / WhatsApp | +255 700 000 000 | 08:00 – 20:00 EAT |
© 2026 SpeedPesa Pro API Documentation. All rights reserved.