Integrate with DPO Group (now Network International) XML API for pan-African payment processing. Use when building payment solutions accepting cards, mobile money, or bank transfers across Africa, implementing token-based recurring billing, processing secure transactions across multiple African countries, or handling multi-currency payments. Trigger on: 'DPO Group', 'Network International', 'DPO Pay', '3G Direct Pay', 'pan-African payment', 'African payment gateway', 'secure payment token', 'mobile money Africa', 'recurring payments Africa'.
DPO Group, now rebranded as Network International, is a leading pan-African payment gateway enabling businesses to securely accept payments via credit cards, debit cards, mobile money (M-Pesa, MTN Mobile Money, Airtel Money), USSD, bank transfers, and digital wallets across 21+ African countries. The API uses XML-based request/response format for secure token-based payment processing.
You're building a payment solution that needs to accept diverse payment methods across Africa: an e-commerce platform processing multiple payment types, a service provider collecting subscriptions with recurring billing, a business expanding to multiple African markets with different payment preferences, or a platform handling tokenized payments with compliance requirements. DPO Group abstracts away the complexity of diverse payment methods, regulatory requirements, and settlement mechanisms across different African countries.
DPO Group uses Company Token authentication. Your merchant account provides a unique CompanyToken (a UUID format identifier) that authenticates all API requests.
Base URL (V6): https://secure.3gdirectpay.com/API/v6/
Note: V7 of the API is available (see Useful Links). Verify with DPO/Network International whether V7 changes any endpoint paths or request formats before upgrading.
Authentication Method:
Include your CompanyToken in the XML request body. Store the token in an environment variable like DPO_COMPANY_TOKEN and never hardcode credentials.
Example token format: 57466282-EBD7-4ED5-B699-8659330A6996
Service Type: When setting up your account, DPO assigns Service Type codes for each product/service category. Common examples:
Include the appropriate ServiceType in your Services section when making API requests.
Important: DPO Group uses XML format for all API requests and responses, not JSON. Ensure proper XML parsing in your implementation.
Tokenize a payment transaction to securely initiate payment processing. This is the primary entry point for the DPO payment flow.
Endpoint: POST /createToken
Request (XML):
<?xml version="1.0" encoding="utf-8"?>
<API3G>
<CompanyToken>57466282-EBD7-4ED5-B699-8659330A6996</CompanyToken>
<Request>createToken</Request>
<Transaction>
<PaymentAmount>5000</PaymentAmount>
<PaymentCurrency>USD</PaymentCurrency>
<CompanyRef>your_company_ref_001</CompanyRef>
<RedirectURL>https://yoursite.com/payment/callback</RedirectURL>
<BackURL>https://yoursite.com/checkout</BackURL>
<CompanyRefUnique>0</CompanyRefUnique>
<PTL>5</PTL>
<PTLType>minutes</PTLType>
<customerFirstName>Amina</customerFirstName>
<customerLastName>Okafor</customerLastName>
<customerEmail>[email protected]</customerEmail>
<customerPhone>+234801234567</customerPhone>
<customerAddress>123 Main Street</customerAddress>
<customerCity>Lagos</customerCity>
<customerCountry>NG</customerCountry>
</Transaction>
<Services>
<Service>
<ServiceType>101</ServiceType>
<ServiceDescription>Product purchase</ServiceDescription>
<ServiceDate>2025/02/24</ServiceDate>
</Service>
</Services>
</API3G>
Response (XML):
<?xml version="1.0" encoding="utf-8"?>
<API3G>
<CompanyToken>57466282-EBD7-4ED5-B699-8659330A6996</CompanyToken>
<Request>createToken</Request>
<Result>000</Result>
<ResultExplanation>Transaction created</ResultExplanation>
<TransToken>D3435F63-3E7F-4A50-B6F4-4F8E9C2D5A1B</TransToken>
<TransRef>20250224001</TransRef>
<Eci>0</Eci>
</API3G>
Key Fields:
PaymentAmount: Transaction amount — DPO uses major currency units, not cents/minor units. Send 50.00 for 50 USD, not 5000. ⚠️ The original note saying "in cents" is incorrect. Confirm with DPO's verifyToken response to validate the amount interpretation in your integration before going live.- PaymentCurrency: ISO 4217 code (USD, GHS, KES, NGN, ZAR, etc.)CompanyRef: Your internal transaction referenceRedirectURL: Customer redirected here after paymentBackURL: Fallback URL if customer cancelsPTL: Payment Timeout Limit in minutes (default 5)TransToken: Use this to redirect customer to payment pageRedirect Customer to Payment Page: