Snippe Documentation
Get started with Snippe's payment API
Snippe is a payment processing API that enables you to accept payments via mobile money, card, and QR code, and send disbursements to mobile money and bank accounts.
Base URL
https://api.snippe.shAuthentication
All API requests require authentication using an API key in the Authorization header:
Authorization: Bearer your_api_key_hereQuick Start
Authentication
Learn how to authenticate with the API using API keys
Payment Sessions
Create hosted checkout pages for your customers
Payments
Collect money via mobile money, cards, or QR codes
Disbursements
Send money to mobile money and bank accounts
Webhooks
Receive real-time payment and payout notifications
Payment Types
Type: mobile
Customer receives a USSD push notification to authorize the payment on their phone.
Supported networks: Airtel Money, M-Pesa, Mixx by Yas, Halotel
Type: card
Returns a payment_url to redirect the customer to a secure checkout page.
Supported cards: Visa, Mastercard, local debit cards
Type: dynamic-qr
Returns a payment_qr_code that customers scan with their mobile money app.
Use case: In-store payments, POS systems
Integration Flow
POST /v1/payments with payment details.Idempotency
Always include an Idempotency-Key header to prevent duplicate transactions
when retrying requests.
POST /v1/payments
Idempotency-Key: unique-key-123If the same key is used twice, the original response is returned.
Rate Limits
API requests are rate-limited to 60 requests per minute.
| Header | Description |
|---|---|
X-Ratelimit-Limit | Maximum requests per minute |
X-Ratelimit-Remaining | Remaining requests in window |
X-Ratelimit-Reset | Seconds until limit resets |
If you exceed the rate limit, you'll receive a 429 Too Many Requests
response. Implement exponential backoff in your retry logic.
Response Format
{
"status": "success",
"code": 200,
"data": {
// Response data
}
}{
"status": "error",
"code": 400,
"error_code": "validation_error",
"message": "Description of the error"
}