Skip to content

Developers

Accept mobile money in your app with one API call.

A REST API with API-key authentication, signed callbacks and safe retries. Full docs live in the portal.

Read the API docsRequest an account

The API docs need you to sign in to the portal.

// Base URL

https://api.deonpay.app/v1

// Endpoints

POST/payments method: "ussd" | "url"

GET/payments/:orderId

POST/cashouts · /withdrawals

GET/balance · /ledger

// Callbacks, signed HMAC-SHA256

payment.completed · payment.failed

cashout.completed · withdrawal.paid …

Walkthrough

From request to paid, in three steps

1

Create a payment

One endpoint for both ways to collect. Use method "ussd" to send a PIN prompt, or "url" to get a payment link. Pass your own reference so retries are safe.

create-payment.sh
curl https://api.deonpay.app/v1/payments \
-H "Authorization: Bearer $DEONPAY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"amount": 25000,
"method": "ussd",
"phone": "0760100100",
"reference": "order-1042"
}'
2

Receive the signed callback

When the payment completes or fails, we POST to your callback URL. Verify the HMAC-SHA256 signature before you trust it. Failed deliveries are retried automatically.

verify-callback.sh
# Your callback URL receives a signed POST, for example:
# X-DeonPay-Timestamp: 1793528171
# X-DeonPay-Signature: sha256=<hex HMAC-SHA256>
# {"event": "payment.completed", "data": {"reference": "order-1042", ...}}
# Sign "<timestamp>.<raw body>" with your webhook secret and compare:
echo "sha256=$(printf '%s.%s' "$TIMESTAMP" "$RAW_BODY" \
| openssl dgst -sha256 -hmac "$DEONPAY_WEBHOOK_SECRET" | cut -d" " -f2)"
3

Check the status

Missed a callback, or want to double-check? Fetch the payment at any time with its orderId.

check-status.sh
curl https://api.deonpay.app/v1/payments/$ORDER_ID \
-H "Authorization: Bearer $DEONPAY_API_KEY"

Short examples. Every field, error code and response is in the API docs in the portal.

The API

Built for real money

Callbacks with retries

payment.completed, payment.failed, cashout.completed, withdrawal.paid and more. Signed, and retried automatically.

Safe retries with reference

Send a unique reference. A retried payment, cash-out or withdrawal can’t happen twice.

Cash-out API

Send money to any mobile wallet from your balance.

Withdrawals

Withdraw to your business’s registered bank account.

Balance and statement API

Read your balance and statement from your own systems.

Test events from the portal

Send test callbacks to your URL to check your handler.

Build with AI

Hand the whole API to your AI assistant

The API docs in the portal have a Copy docs for AI button. One click copies the full docs, ready to paste into ChatGPT, Claude or Cursor.

  1. 1Open the API docs in the portal.
  2. 2Click Copy docs for AI.
  3. 3Paste into your assistant and describe what you want to build.

Go live

Five steps to your first payment

  1. 01

    Request an account

  2. 02

    Sign in to the portal

  3. 03

    Create an API key

  4. 04

    Set your callback URL

  5. 05

    Collect your first payment

Read the API docsRequest an account