API a w'akuo no ani bɛgye ho ampa
REST a wonim deɛ ɛbɛba, idempotency key, webhook a wɔde nsɛnkyerɛnneɛ ahyɛ so ne sandbox a akwan no nyinaa wɔ mu sɛnea wobɛtumi asi biribiara ansa na woatu frank baako mpo.
Wo sikagye a ɛdi kan wɔ abisadeɛ baako mu
REST a ani tew, JSON nhyehyɛeɛ a wonim deɛ ɛbɛba, ne request id wɔ mmuaeɛ biara so. Sandbox no te sɛ deɛ ɛwɔ hɔ ankasa: API koro, tebea koro, webhook koro.
- Sandbox ne production key, a wɔakyekyɛ mu ama app biara
- Webhook a HMAC ahyɛ so a replay ho bammɔ ka ho
- Idempotency key wɔ frɛ biara a ɛma sika tu so
- Mfomsoɔ a wɔakyekyɛ mu a ɛkyerɛ wo deɛ ɛsɛ sɛ wosiesie pɛpɛɛpɛ
- OpenAPI nkyerekyeremu, Postman boaboa ne llms.txt, wobeyii ne nyinaa adi
- Checkout session a wɔahyɛ ne callback a ɛyɛ tẽẽ ma CRM, ERP ne dwadibea nkabom nneɛma
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"
}Wo agyeye a edi kan
Abisade baako yi tua botae, de abisade nsonoe ba, na wo mobail sika mu, esoma nkaebo ko otuafo fon so. Sandbox ye adwuma pefee te se adwumaye.
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"
}Server SDK
Nkataso a ehe na ewo su wo REST API koro no ara so, a idempotency ne nsaano nhwehwemu wom.
import { Capay } from '@capay/sdk';Ɛnnya nni npm so. Import nkyerɛwde a ɛwɔ soro no yɛ deɛ ɛtwa toɔ, enti sɛ wɔyi no adi a, wo nkabomu no rensesa.
Kenkan akwankyerefrom capay import CapayƐnnya nni PyPI so. Import nkyerɛwde a ɛwɔ soro no yɛ deɛ ɛtwa toɔ, enti sɛ wɔyi no adi a, wo nkabomu no rensesa.
Kenkan akwankyereuse Capay\CapayClient;Ɛnnya nni Packagist so. Import nkyerɛwde a ɛwɔ soro no yɛ deɛ ɛtwa toɔ, enti sɛ wɔyi no adi a, wo nkabomu no rensesa.
Kenkan akwankyereHwehwe webhook biara mu
Wobu nsaano wo nipadua mono no so na wode toto ho wo bere koro mu, na wopo bere nsonoe a akyen sekan 300. Nnye webhook a wonhwehwee mu nni bere biara.
# 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.completedWosan sohwe ode kama a edii nkogu wo nhyehyee a ensakra so: 1m, 5m, 30m, 2h, 6h, 12h, 24h, 24h. Baabi a edi nkogu mpen 8 toatoa so no, wodum na woka kyere wo, enti baabi a awu no memene nsem komm.
Nsaano ahintasem abien betumi aye adwuma bere koro, enti wobetumi asesa a worenhwere asem biara. Po biribiara a efi sekan 300 tokuru no akyi na kora asem nsonoe no so na nsansobea ye hunu.
Nnwinnade a aka
Nkyerekyeremu a mfiri betumi akenkan, boaboa a wobetumi de aba, ne nnwinnade a ekenkan.
Fi ase gye sika wɔ Afrika baabiara ɛnnɛ
Bue akawnt a ɛyɛ kwa, si wo dwumadie wɔ sandbox so, na fi ase wɔ nhwehwɛmu akyi.
Ka wo sikakwan ne wo sika dodoɔ ho asɛm kyerɛ yɛn berɛ biara.