API yang benar-benar akan disukai tim Anda
REST yang dapat diprediksi, kunci idempotensi, webhook bertanda tangan, dan sandbox dengan jalur tersimulasi sehingga Anda dapat berintegrasi end-to-end sebelum satu franc pun berpindah.
Penerimaan pertama Anda dalam satu permintaan
REST yang bersih, amplop JSON yang dapat diprediksi, dan request id di setiap respons. Sandbox mencerminkan produksi: API sama, status sama, webhook sama.
- Kunci sandbox dan produksi, dibatasi per aplikasi
- Webhook bertanda tangan HMAC dengan perlindungan replay
- Kunci idempotensi di setiap panggilan yang memindahkan uang
- Error bertipe yang memberi tahu persis apa yang harus diperbaiki
- Spesifikasi OpenAPI, koleksi Postman, dan llms.txt, semuanya sudah terbit
- Sesi checkout terhosting dan callback datar untuk konektor CRM, ERP, dan toko
curl https://api.capayglobal.com/v1/collections \
-H "Authorization: Bearer sk_test_..." \
-H "Idempotency-Key: 9f1c-collect-01" \
-H "Content-Type: application/json" \
-d '{
"amount": "2500",
"currency": "XAF",
"country": "CM",
"method": "mobile_money",
"msisdn": "2376XXXXXXXX",
"merchant_reference": "order-1042"
}'{
"status": "success",
"data": {
"id": "col_9xKQ2mD41Vb8",
"object": "collection",
"status": "pending",
"amount": "2500",
"currency": "XAF",
"country": "CM",
"method": "mobile_money",
"merchant_reference": "order-1042",
"fees": {
"platform_fee": "50",
"provider_fee": "0",
"total_fee": "50",
"bearer": "merchant"
},
"net_amount": null,
"livemode": false,
"created_at": "2026-08-30T12:04:11Z"
},
"request_id": "req_b0f3d2c1"
}Penerimaan pertama Anda
Satu permintaan membuat niat pembayaran, mengembalikan request id dan, untuk uang seluler, mendorong permintaan ke ponsel pembayar. Sandbox berperilaku persis seperti produksi.
curl -X POST https://api.capayglobal.com/v1/collections \
-H "Authorization: Bearer sk_test_XXXXXXXXXXXX" \
-H "Idempotency-Key: col-order-10482-a1b2c3" \
-H "Content-Type: application/json" \
-d '{
"amount": "5000",
"currency": "XAF",
"country": "CM",
"method": "mobile_money",
"msisdn": "+237650000001",
"merchant_reference": "order-10482"
}'{
"status": "success",
"data": {
"id": "col_7Qm3k1Xa9Zr4",
"object": "collection",
"status": "pending",
"amount": "5000",
"currency": "XAF",
"auth_model": "STK_PROMPT",
"livemode": false
},
"request_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}SDK server
Pembungkus tipis bertipe di atas REST API yang sama, dengan idempotensi dan verifikasi tanda tangan sudah termasuk.
import { Capay } from '@capay/sdk';Belum ada di npm. Baris import di atas sudah final, jadi integrasi Anda tidak berubah saat dirilis.
Baca panduanfrom capay import CapayBelum ada di PyPI. Baris import di atas sudah final, jadi integrasi Anda tidak berubah saat dirilis.
Baca panduanuse Capay\CapayClient;Belum ada di Packagist. Baris import di atas sudah final, jadi integrasi Anda tidak berubah saat dirilis.
Baca panduanVerifikasi setiap webhook
Tanda tangan dihitung atas isi mentah dan dibandingkan dalam waktu konstan, dan stempel waktu yang lebih tua dari 300 detik ditolak. Jangan pernah percaya webhook yang belum Anda verifikasi.
# T is the t= value from X-Capay-Signature; delivery.json is the raw body as received.
T=1767225600
SECRET=whsec_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
{ printf '%s.' "$T"; cat delivery.json; } \
| openssl dgst -sha256 -hmac "$SECRET" -r | cut -d' ' -f1
# Compare the printed hex with each v1= value in the header (either may match
# during a secret rotation), and reject the delivery if |now - T| > 300 s.X-Capay-Signature: t=1767225600,v1=6f8b4c2d9e0a1b3c5d7e9f0a2b4c6d8e0f1a3b5c7d9e1f0a2b4c6d8e0f1a3b5c
X-Capay-Event-Id: evt_2n4Kq8Zr41Xa
X-Capay-Event-Type: collection.completedPengiriman yang gagal diulang pada jadwal tetap: 1m, 5m, 30m, 2h, 6h, 12h, 24h, 24h. Endpoint yang gagal 8 kali berturut turut dinonaktifkan dan Anda diberi tahu, sehingga endpoint mati tidak diam diam menelan event.
Dua rahasia penandatanganan bisa aktif sekaligus, jadi Anda bisa merotasi tanpa kehilangan event. Tolak apa pun di luar jendela 300 detik dan simpan id event agar pengiriman ulang tidak berbahaya.
Sisa perangkatnya
Spesifikasi yang bisa dibaca mesin, koleksi yang bisa Anda impor, dan alat yang membacanya.
Mulai terima pembayaran di seluruh Afrika hari ini
Buat akun gratis, bangun di sandbox, dan go live setelah verifikasi.
Ceritakan koridor dan volume Anda kapan saja.