AfriLink Pay Identity gives every person and business a universal payment handle — one username that resolves to any wallet, bank, or payment method across 54 countries. No account numbers. No bank codes. No errors.
Three steps. Thirty seconds. Payment infrastructure that works for every African.
Pick a username and claim your AfriLink Pay Identity. It's free and takes less than 30 seconds. Your handle becomes a permanent short link.
Connect your preferred payment method — MTN MoMo, M-Pesa, Ecobank, GTB, KCB, or any of the 200+ rails on the AfriLink network. Change it at any time.
Send anyone your handle link or QR code. Anyone on AfriLink can pay you instantly — even cross-border, even if they're on a different network.
One handle. Every network. Always private.
Your handle works in all 54 supported countries. A sender in Lagos can pay an Amara in Nairobi with the same link they'd use domestically.
Payers never see your account number, wallet ID, or bank details. Your handle resolves to a payment instruction — your underlying account stays hidden.
Handle-to-account resolution happens in under 100ms globally. The payment initiation screen appears before your sender has finished looking at their phone.
Switched banks? Changed mobile money networks? Update your underlying account without changing your handle. Your contacts always reach you.
A clean, branded page. One amount field. Every sender instantly knows they're in the right place.
Merchants get a branded pay page, automatic QR codes, and tools that turn Pay Identity into a complete checkout solution.
Your business Pay Identity can be hosted on your own domain — pay.yourbusiness.com/checkout — styled with your brand colours and logo. AfriLink handles the payment rail complexity behind the scenes.
Claim afrilinkpay.com/pay/yourname before someone else does. Free for individuals, scalable for businesses.
Pay Identity is a first-class API. Integrate it into any app or workflow in minutes.
Resolve any AfriLink Pay Identity handle to available payment options for a given sender — including supported rails, current FX rates, and fee estimates. Then initiate the payment with a single POST.
// GET /api/pay-identity/:handle?sender_currency=NGN { "handle": "amara", "display_name": "Amara Diallo", "verified": true, "rails": [ { "id": "mtn_momo_gh", "name": "MTN MoMo Ghana", "currency": "GHS" }, { "id": "ecobank_gh", "name": "Ecobank Ghana", "currency": "GHS" } ], "fx": { "sender_currency": "NGN", "recipient_currency": "GHS", "rate": 0.004368, "rate_expires_at": "2026-06-01T14:32:00Z" }, "resolved_in_ms": 74 }
// POST /api/pay/:handle { "amount": 50000, "sender_currency": "NGN", "rail_id": "mtn_momo_gh", "idempotency_key": "txn_20260601_9f8a3b", "reference": "Invoice #1042" // optional } // → 202 Accepted { "payment_id": "pay_7Xk2mQ...", "status": "pending", "webhook_url": "https://yourdomain.com/webhook" }
A webhook fires to your registered URL when the payment settles. The webhook payload includes the payment ID, final amount, FX rate applied, rail used, and settlement timestamp. Retry logic handles network failures automatically — your endpoint receives the event at least once, and the payload includes an idempotency key for safe deduplication.