Build payments into your app in 10 minutes
PayElect is a unified payments API for West Africa and beyond. Accept mobile money, card payments, and digital wallets — with a single integration, automatic provider failover, and real-time webhooks.
What you can build
Sandbox Testing
Full environment that mirrors production. Trigger success, failure, timeout, and pending scenarios on demand.
Production-grade Webhooks
HMAC-signed event delivery with automatic retry (up to 5 attempts) and a full event catalogue.
Split Payments
Marketplace splits — divide each payment between a platform account and up to 20 subaccounts in a single API call.
Multi-provider Routing
Automatic cascade across CinetPay, Orange Money, Wave, MTN MoMo, and Stripe. Failures route to the next available provider.
Payouts
Push funds to mobile money wallets, bank accounts, or PayElect wallets across Guinea, Senegal, and 15+ countries.
Idempotency
Every mutation endpoint accepts an idempotency_key. Safe to retry on network error — never double-charged.
Authentication
PayElect uses a two-step token scheme for payment creation and a direct Bearer client_id scheme for refunds, payouts, and subaccount management.
| Flow | Header | Value | Used for |
|---|---|---|---|
| Access token | Authorization |
Bearer <access_token> |
POST /payment/create, GET /payment/status, GET /payments/gateways |
| Client ID | Authorization |
Bearer <client_id> |
Refunds, Payouts, Subaccounts |
Access tokens expire after 10 minutes. Request a new token before each payment session. Your client_id and client_secret never expire; rotate them from the merchant portal if compromised.
Base URLs
| Environment | Base URL | Notes |
|---|---|---|
| Sandbox | https://api.payelecthq.com/pay/sandbox/api/v1 |
Use your sandbox credentials. No real money moves. |
| Production | https://api.payelecthq.com/pay/api/v1 |
Requires KYB-verified live credentials. |
client_id / client_secret to the production URL returns a MODE_MISMATCH error, and vice-versa.
Getting started in 3 steps
-
1
Get your sandbox API keys
Log in to the merchant portal, open Developer → API Keys, and copy your sandbox
client_idandclient_secret. No application needed for sandbox access. -
2
Follow the Quickstart
The Quickstart guide walks you through getting a token, creating a payment, handling the redirect, and verifying the webhook — with copy-paste code in cURL, PHP, JavaScript, and Python.
-
3
Go live
Complete KYB in the merchant portal, request live credentials, and swap your base URL from
/sandbox/api/v1to/api/v1. No other code changes required.
API conventions
- All requests and responses are JSON (
Content-Type: application/json). - Financial amounts are strings in API requests to avoid floating-point errors (e.g.
"amount": "50000"). - All timestamps are UTC ISO 8601 with a Z suffix:
2026-07-12T09:30:00Z. - JSON response keys are camelCase:
transactionId,paymentUrl. - Successful responses wrap data in a
datakey. Error responses include acodestring and a human-readablemessage. - Rate limits are per-endpoint: authentication 10 req/min, payment create 30 req/min, status and list 60 req/min.