API ttiimu yo gy'ejja okwagala
REST etegeerekeka, idempotency key, webhook eziriko omukono, ne sandbox erimu amakubo ag'okugezesa osobole okuyunga byonna nga tonnatambuza ne ssente emu.
Okukungaanya kwo okusooka mu kusaba kumu
REST ennyangu, JSON ekwatagana buli kiseera, ne request id ku buli kuddamu. Sandbox efaanana ne production: API y'emu, embeera z'emu, ne webhook ez'emu.
- Ebisumuluzo bya sandbox n'ebya production, buli kimu ku app yaakyo
- Webhook eziriko omukono gwa HMAC nga ziriko n'obukuumi ku replay
- Idempotency key ku buli kusaba okutambuza ssente
- Ensobi ezinnyonnyoddwa obulungi ezikubuulira ddala ky'olina okutereeza
- Ennyinyonnyola ya OpenAPI, ekikuŋŋaanya kya Postman ne llms.txt, byonna bifulumiziddwa
- Sessioni z'okusasula ezikwatiddwa ne callback entereevu ez'ebiyunga bya CRM, ERP n'amaduuka
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"
}Okukung'aanya kwo okusooka
Okusaba kumu kutonda ekigendererwa ky'okusasula, kuzzaayo id y'okusaba era, ku ssente za ssimu, kusindika okusaba ku ssimu y'asasula. Sandbox ekola nga bwe kityo ddala nga production.
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 za sseva
Ebibikka ebitono ebirina ebika ku API ya REST y'emu, nga birimu idempotency n'okukakasa omukono.
import { Capay } from '@capay/sdk';Terinnaba ku npm. Olunyiriri lwa import oluli waggulu lwe lwa nkomerero, era okwegatta kwo tekujja kukyuka nga bagifulumizza.
Soma obulagirizifrom capay import CapayTerinnaba ku PyPI. Olunyiriri lwa import oluli waggulu lwe lwa nkomerero, era okwegatta kwo tekujja kukyuka nga bagifulumizza.
Soma obulagiriziuse Capay\CapayClient;Terinnaba ku Packagist. Olunyiriri lwa import oluli waggulu lwe lwa nkomerero, era okwegatta kwo tekujja kukyuka nga bagifulumizza.
Soma obulagiriziKakasa buli webhook
Emikono gibalirwa ku mubiri omubisi era gigeraageranyizibwa mu budde obutakyuka, era akabonero k'ekiseera akasukka sikonda 300 kagaanibwa. Toyinza kwesiga webhook gy'otakakasizza.
# 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.completedOkutuusa okugaanye kugezebwako nate ku nteekateeka etakyuka: 1m, 5m, 30m, 2h, 6h, 12h, 24h, 24h. Endpoint eremererwa emirundi 8 egiddiriŋŋana ezikizibwa era okimanyisibwa, n'olwekyo endpoint efudde temira bintu mu kasirise.
Ebyama bibiri eby'okuteeka omukono bisobola okukola mu kiseera kye kimu, n'olwekyo osobola okubikyusa nga tofiiriddwa kintu. Gaana buli kintu ekiri ebweru w'eddirisa lya sikonda 300 era tereka id y'ekintu okusobozesa okuddamu obutaba na kabi.
Ebikozesebwa ebirala
Ennyinyonnyola ezisomebwa ekyuma, ekikuŋŋaanya ky'osobola okuyingiza, n'ebikozesebwa ebibisoma.
Kebera enkola yaffe
Tandika okukungaanya ssente okubuna Afirika leero
Kola akawunti eya bwereere, ozimbire ku sandbox, otandike okukola ng'omaze okukakasibwa.
Tubuulire ku korido zo n'obungi bwa ssente ze mutambuza ekiseera kyonna.