Getting started
What Paylinky is and the two ways to accept payments.
Welcome to Paylinky
Paylinky lets African businesses accept Mobile Money and crypto payments with a single integration. Paylinky routes payments through licensed payment partners, adds KYC-verified merchant accounts, a unified wallet, signed webhooks and a real sandbox.
Two ways to integrate
| Hosted Page API | Direct API (SDK) | |
|---|---|---|
| What you build | Almost nothing — redirect the customer to a Paylinky checkout link | Your own checkout UI, forms and flows |
| Endpoint | POST /api/v1/payment-links | POST /api/v1/collect, POST /api/v1/crypto/collect |
| Customer experience | Paylinky-hosted page (country, operator, phone, OTP, crypto QR) | Fully branded by you |
| Best for | Invoices, WhatsApp/SMS links, quick launches | Apps, marketplaces, custom checkouts |
You can use both with the same API key.
Base URL
text
1https://paylinky.vercel.app/api/v1All requests and responses are JSON. All endpoints require Authorization: Bearer <key> (see Authentication).
Environments
| Environment | Key prefix | Money moves? | Activation |
|---|---|---|---|
| Sandbox | plk_test_… | No — simulated | Instant |
| Live | plk_live_… | Yes | Requires approved KYC and manual activation by the Paylinky team |
Conventions
- Amounts are numbers in the currency's main unit (e.g.
1000XAF). Crypto amounts are USDT. - References. Every payment has a Paylinky
reference(e.g.PLK-7XK2M9QPLA) and your optionalmerchant_reference. - Statuses:
pending,success,failed,cancelled,expired,refunded. - Errors use
{ "error": "code", "message": "Human readable" }— see Errors. - Idempotency: re-sending a request with the same
referencereturns the existing payment (idempotent_replay: true) instead of creating a duplicate.
Never trust the browser to confirm a payment. Deliver goods only after a
payment.completed webhook or a server-side GET /transaction/{id} that returns success.