Gabon Guide
Collect and send money in Gabon using Airtel on the same MarzPay APIs.
Use country: "GA", XAF amounts, and +241 phones.
Before you start
- Create API keys in the dashboard. Authenticate with HTTP Basic:
Authorization: Basic base64(api_key:api_secret). See Getting Started. - Ask a superadmin to enable the Gabon wallet for your business.
- Subscribe to Gabon Airtel collection and/or disbursement services in the marketplace.
- Set a webhook URL (or pass
callback_urlon each request). Final status iscompletedorfailedonly.
Gabon essentials
- Always send
country: "GA"so the Gabon wallet is used - Use amounts in XAF. Optional
currency: "XAF"is accepted - Phones must be E.164: Airtel +24107… / +24106… / +24104… / +24105… (with or without the extra 0 after +241)
- Same endpoints:
POST /collect-moneyandPOST /send-money referencemust be a UUID you generate- Provider is auto-detected from the phone (Airtel). Webhooks use that network name (e.g.
airtel), not a gateway name - Typical minimums start around XAF 100 (confirm your business limits)
XAF is also used by Cameroon and Congo-Brazzaville — always send country: "GA" so the Gabon wallet is used.
Pricing
Fees come from the public pricing page. Custom business rates may differ.
| Network | Collections | Disbursements |
|---|---|---|
| Airtel | 3% Successful collections only | 2% Successful payouts only |
Collect money (Gabon)
Request payment from a customer’s Airtel wallet. The customer approves on their phone; you receive a webhook when the collection completes or fails.
- POST
/collect-moneywith amount,+241phone,country: "GA", UUIDreference - Transaction starts as
pending/processing - Customer authorises the PIN prompt
- Webhook/callback settles to
completedorfailed - Optional: poll
GET /collect-money/{uuid}if you need a status safety net
Optional metadata — send up to 10 objects. Echoed on create (data.collection.metadata) and on webhooks (top-level metadata).
"metadata": [
{ "orderId": "ORD-123456789" },
{ "customerId": "customer@email.com", "isPII": true }
]
Example request
curl --location 'https://wallet.wearemarz.com/api/v1/collect-money' \
--header 'Authorization: Basic YOUR_API_CREDENTIALS' \
--form 'phone_number="+24107123456"' \
--form 'amount="1000"' \
--form 'country="GA"' \
--form 'currency="XAF"' \
--form 'reference="123e4567-e89b-12d3-a456-426614174000"' \
--form 'description="Payment for services"' \
--form 'callback_url="https://your-app.com/webhook"' \
--form 'metadata=[{"orderId":"ORD-123456789"},{"customerId":"customer@email.com","isPII":true}]'
Example response
{
"status": "success",
"message": "Collection initiated successfully.",
"data": {
"transaction": {
"uuid": "4e7fb3fa-c13a-4b05-8acd-cf60ff68cb94",
"reference": "123e4567-e89b-12d3-a456-426614174000",
"status": "processing",
"provider_reference": null
},
"collection": {
"amount": {
"formatted": "1000.00",
"raw": 1000,
"currency": "XAF"
},
"provider": "airtel",
"phone_number": "+24107123456",
"mode": "live"
}
}
}
Send money (Gabon)
Disburse to a Airtel wallet. You receive a webhook when the payout completes or fails.
- POST
/send-moneywith amount,+241phone,country: "GA", UUIDreference - The network pays the recipient
- Webhook settles to
completedorfailed - Optional: poll
GET /send-money/{uuid}
Example request
curl --location 'https://wallet.wearemarz.com/api/v1/send-money' \
--header 'Authorization: Basic YOUR_API_CREDENTIALS' \
--form 'phone_number="+24107123456"' \
--form 'amount="1000"' \
--form 'country="GA"' \
--form 'currency="XAF"' \
--form 'description="Payout to customer"' \
--form 'callback_url="https://your-app.com/webhook"' \
--form 'reference="123e4567-e89b-12d3-a456-426614174001"' \
--form 'metadata=[{"orderId":"ORD-123456789"},{"customerId":"customer@email.com","isPII":true}]'
Example response
{
"status": "success",
"message": "Send money initiated successfully.",
"data": {
"transaction": {
"uuid": "4e7fb3fa-c13a-4b05-8acd-cf60ff68cb94",
"reference": "123e4567-e89b-12d3-a456-426614174001",
"status": "processing"
},
"disbursement": {
"amount": {
"formatted": "1000.00",
"raw": 1000,
"currency": "XAF"
},
"provider": "airtel",
"phone_number": "+24107123456",
"mode": "live"
}
}
}
Payment links (Gabon)
Create a shareable /pay/{uuid} page. Customers enter a local Gabon number and approve the PIN prompt. Same webhook shape as collect-money.
curl --location 'https://wallet.wearemarz.com/api/v1/payment-links' \
--header 'Authorization: Basic YOUR_API_CREDENTIALS' \
--header 'Content-Type: application/json' \
--data '{
"title": "Gabon payment",
"amount": 1000,
"country": "GA",
"currency": "XAF",
"is_fixed": true,
"callback_url": "https://your-app.com/webhook"
}'
Share data.payment_url. Full fields:
Payment Links API.
Webhooks
Gabon uses the same webhook envelope as Uganda and Kenya. Currency is XAF. Provider is the network (airtel), not a gateway name. Match your order with transaction.reference (the UUID you sent).
Collection completed
{
"event_type": "collection.completed",
"transaction": {
"uuid": "transaction-uuid",
"reference": "123e4567-e89b-12d3-a456-426614174000",
"status": "completed",
"amount": { "formatted": "1000.00", "raw": 1000, "currency": "XAF" },
"provider": "airtel",
"phone_number": "+24107123456"
},
"collection": {
"provider": "airtel",
"phone_number": "+24107123456",
"amount": { "formatted": "1000.00", "raw": 1000, "currency": "XAF" },
"mode": "live",
"provider_transaction_id": "ABC123"
},
"metadata": [
{ "orderId": "ORD-123456789" }
]
}
Send money completed
{
"event_type": "disbursement.completed",
"transaction": {
"uuid": "transaction-uuid",
"reference": "123e4567-e89b-12d3-a456-426614174001",
"status": "completed",
"amount": { "formatted": "1000.00", "raw": 1000, "currency": "XAF" },
"provider": "airtel",
"phone_number": "+24107123456"
},
"disbursement": {
"provider": "airtel",
"phone_number": "+24107123456",
"amount": { "formatted": "1000.00", "raw": 1000, "currency": "XAF" },
"mode": "live",
"provider_transaction_id": "ABC123"
}
}
Failed outcomes use collection.failed / disbursement.failed with the same envelope. Signing and more examples:
Webhooks guide.
Check status
Callbacks are primary. To poll MarzPay (not the network directly):
GET https://wallet.wearemarz.com/api/v1/collect-money/{uuid}GET https://wallet.wearemarz.com/api/v1/send-money/{uuid}
Those endpoints return the local MarzPay transaction. Status updates when the webhook arrives.
Not available for Gabon yet
These products remain Uganda-focused:
- Bill payments
- Bank transfer
- Airtime & data
- Card payments
- WhatsApp / USSD send-money (Uganda)