'n API wat jou span werklik sal geniet
Voorspelbare REST, idempotensiesleutels, ondertekende webhooks en 'n sandbox met gesimuleerde betaalkanale sodat jy end-tot-end kan integreer voordat 'n enkele frank beweeg.
Jou eerste invordering in een versoek
Skoon REST, 'n voorspelbare JSON-omhulsel en 'n versoek-ID op elke antwoord. Die sandbox weerspieël produksie: dieselfde API, dieselfde statusse, dieselfde webhooks.
- Sandbox- en produksiesleutels, per app afgebaken
- HMAC-ondertekende webhooks met herspeelbeskerming
- Idempotensiesleutels op elke oproep wat geld beweeg
- Getipeerde foute wat jou presies sê wat om reg te maak
- OpenAPI-spesifikasie, Postman-versameling en llms.txt, almal gepubliseer
- Gehuisvesde betaalsessies en plat terugroepe vir CRM-, ERP- en winkelkoppelaars
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"
}Jou eerste invordering
Een versoek skep 'n betalingsvoorneme, gee 'n versoek-id terug en stoot by mobiele geld die versoek na die betaler se foon. Die sandput gedra hom presies soos produksie.
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"
}Bediener-SDK's
Dun, getikte omhulsels bo dieselfde REST-API, met idempotensie en handtekeningverifikasie ingebou.
import { Capay } from '@capay/sdk';Nog nie op npm nie. Die invoerreël hierbo is finaal, so jou integrasie verander nie wanneer dit gepubliseer word nie.
Lees die gidsfrom capay import CapayNog nie op PyPI nie. Die invoerreël hierbo is finaal, so jou integrasie verander nie wanneer dit gepubliseer word nie.
Lees die gidsuse Capay\CapayClient;Nog nie op Packagist nie. Die invoerreël hierbo is finaal, so jou integrasie verander nie wanneer dit gepubliseer word nie.
Lees die gidsVerifieer elke webhook
Handtekeninge word oor die rou liggaam bereken en in konstante tyd vergelyk, en 'n tydstempel ouer as 300 sekondes word verwerp. Vertrou nooit 'n webhook wat jy nie geverifieer het nie.
# 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.completed'n Mislukte aflewering word volgens 'n vaste skedule herprobeer: 1m, 5m, 30m, 2h, 6h, 12h, 24h, 24h. 'n Eindpunt wat 8 kere agtereenvolgens misluk word gedeaktiveer en jy word ingelig, sodat 'n dooie eindpunt nooit stilweg gebeurtenisse insluk nie.
Twee ondertekeningsgeheime kan gelyktydig aktief wees, so jy kan roteer sonder om 'n gebeurtenis te verloor. Verwerp alles buite die venster van 300 sekondes en stoor die gebeurtenis-id sodat herhalings skadeloos is.
Die res van die stel
Masjienleesbare spesifikasies, 'n versameling wat jy kan invoer, en die gereedskap wat hulle lees.
Verken die platform
Begin vandag betalings regoor Afrika invorder
Skep 'n gratis rekening, bou teen die sandbox en gaan in produksie ná verifikasie.
Vertel ons enige tyd van jou korridors en volumes.