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.sh

Authentication

All API requests require authentication using an API key in the Authorization header:

Authorization: Bearer your_api_key_here

Quick Start


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


Idempotency

Always include an Idempotency-Key header to prevent duplicate transactions when retrying requests.

POST /v1/payments
Idempotency-Key: unique-key-123

If the same key is used twice, the original response is returned.


Rate Limits

API requests are rate-limited to 60 requests per minute.

HeaderDescription
X-Ratelimit-LimitMaximum requests per minute
X-Ratelimit-RemainingRemaining requests in window
X-Ratelimit-ResetSeconds 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"
}

On this page