Gateways
DPO Pay
DPO Pay by Network International: cards, mobile money (M-Pesa, MTN, Airtel) and PayPal across Africa.
On this page
DPO Pay by Network International: cards, mobile money (M-Pesa, MTN, Airtel) and PayPal across Africa.
At a glance#
| Type | dpo |
| Countries | Kenya, Tanzania, Uganda, Rwanda, South Africa, Zambia, Ghana, Nigeria, Malawi, Botswana, Namibia, Côte d'Ivoire, Zimbabwe, Mauritius, Ethiopia |
| Currencies | USD, EUR, GBP, KES, TZS, UGX, RWF, ZAR, ZMW, GHS, NGN, MWK, BWP, NAD, XOF, MUR, ETB |
| Capabilities | Hosted checkoutOn-demand status verification |
| Gateway docs | docs.dpopay.com |
Checkout experience#
Redirect to the DPO Pay payment page (payv2.php?ID=<TransToken> from createToken).
Configuration fields#
Enter these in the dashboard under Settings → Payment providers → DPO Pay. Secret fields are encrypted at rest and masked after saving; leave a secret blank when editing to keep the stored value.
| Field | Type | Notes |
|---|---|---|
| Company tokenrequired companyToken | Secret | Issued by DPO. Use your test company token while Sandbox is on (DPO uses the same URL for test and live). |
| Service typerequired serviceType | Text | Numeric service type ID provided by DPO for your account. |
| Payment time limit (hours) paymentTimeLimit | Number | PTL: how long the payment page stays valid. DPO default is 96. Default: |
Every provider also has Enabled, Sandbox / test mode and Default checkout method switches.
Notification URL#
https://app.centrapoint.co.za/api/webhooks/dpo?provider={providerId}Copy the exact URL, with your provider ID filled in, from Settings → Payment providers.
- No per-request notify URL: DPO returns the payer to the return URL, and account-level push notifications are configured by DPO on request. Give DPO this provider's notification URL.
How notifications are verified#
- DPO callbacks are not signed and the payload is never trusted. The final status always comes from DPO's verifyToken call (Result 000 = paid).
- When a push includes CompanyRef, it must match the verified CompanyRef.
- The amount and currency must match the transaction before it can be marked complete.
Going live#
- Test with sandbox credentials and Sandbox / test mode on, and confirm the notification appears as processed in the Webhook log.
- Replace the credentials with live ones and switch off Sandbox / test mode.
- Update any URL or secret configured in the gateway's portal for the live environment.
- Make a small live payment and confirm it with the Transactions API.