Developers
Built to connect with your product
Create a payment request from your backend, send the customer to the returned checkout URL, then read the payment's status — by polling or by receiving a signed webhook.
Overview
The mPay API is JSON over HTTPS. The base URL is https://multiplepay.online/api/v1. Amounts are decimal in the account's currency. A payment request returns a hostedcheckout_url; mPay renders the payment experience, so you never handle payment credentials.
Authentication
Server-to-server calls authenticate with a secret API key issued in the dashboard under Developers. Send it as X-API-Key or as a bearer token. Keys are secret — use them only from your backend, never in browser or mobile code.
X-API-Key: sk_live_xxxxxxxxxxxxxxxxxxxx
# or
Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxxxxxCreate a payment
POST /api/v1/charges creates a payment and returns the hosted checkout URL to send your customer to. reference is your own identifier and is echoed back so you can match the payment to your order.
curl -X POST https://multiplepay.online/api/v1/charges \
-H "X-API-Key: sk_live_xxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"amount": 100.00,
"method": "cashapp",
"customer_name": "Jordan Fisher",
"reference": "order_10482"
}'Response
{
"id": "pay_3f1c8a...",
"status": "pending",
"amount": 100.0,
"method": "cashapp",
"checkout_url": "https://...",
"reference": "order_10482"
}Some methods accept only fixed amounts. Read the method catalogue below and send an accepted value rather than assuming an arbitrary amount will be taken.
Payment status
GET /api/v1/charges/{id} returns the current state of a payment. Treat only a settled/succeeded state as payment received — a customer returning to your site is not proof of payment.
curl https://multiplepay.online/api/v1/charges/pay_3f1c8a... \
-H "X-API-Key: sk_live_xxxxxxxxxxxxxxxxxxxx"awaiting_customerCreated; the customer has not completed payment
pending_settlementCollected and moving through settlement
availableReleased and withdrawable
failedThe payment did not complete
Method catalogue
GET /api/v1/methods is public and returns each rail with whether it is live, whether it accepts a custom amount, its accepted fixed amounts, and its minimum and maximum. Read it rather than hard-coding a method list.
curl https://multiplepay.online/api/v1/methodsWebhooks
Register an endpoint in the dashboard under Developers. Each delivery is signed with HMAC-SHA256 over <timestamp>.<body> using the endpoint's signing secret. Verify against the exact bytes received and compare in constant time. Failed deliveries retry with exponential backoff and can be redelivered from the dashboard.
Errors
Errors use standard HTTP status codes with a JSON detail message.401 means the API key is missing or invalid, 400 means the request was rejected (for example an amount a rail cannot accept), and502 means the upstream payment provider could not start a checkout. Retry 502 with backoff; do not retry 400 unchanged.
Integration support
Email Official domain-based support contact details will be published before production launch. for integration questions, or use the contact form. Include your merchant handle and the reference of any payment you are asking about — never include API keys.
A dedicated sandbox/test environment, published rate limits and a public status page are not documented in the platform today, so none are described here.
Ready to simplify how you receive payments?
Create your mPay account or contact our team to discuss payment links, hosted checkout and website integration.
Service availability, supported payment methods, settlement timing and fees may vary.