Developers

Een API waar je team echt blij van wordt

Voorspelbare REST, idempotency keys, ondertekende webhooks en een sandbox met gesimuleerde rails, zodat je end-to-end kunt integreren voordat er ook maar een frank beweegt.

Account aanmaken
Gebouwd voor developers

Je eerste inning in één request

Schone REST, een voorspelbare JSON-envelop en een request-id bij elk antwoord. De sandbox spiegelt productie: dezelfde API, dezelfde statussen, dezelfde webhooks.

  • Sandbox- en productiesleutels, met een scope per app
  • HMAC-ondertekende webhooks met replay-bescherming
  • Idempotency keys op elke call die geld verplaatst
  • Getypeerde fouten die je precies vertellen wat je moet oplossen
  • OpenAPI-specificatie, Postman-collectie en llms.txt, allemaal gepubliceerd
  • Gehoste checkout-sessies en platte callbacks voor CRM-, ERP- en shopconnectors
POST /v1/collections
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"
  }'
201 Created
{
  "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"
}

Je eerste incasso

Een verzoek maakt een betaalintentie, geeft een request id terug en stuurt bij mobiel geld de prompt naar het toestel van de betaler. De sandbox gedraagt zich precies als productie.

Haal je testsleutelsMaak een account en de sandboxsleutels staan meteen op je ontwikkelaarspagina. Productiesleutels openen na de bedrijfsverificatie.
POST /v1/collections
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"
  }'
Antwoord
{
  "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"
}
201 Created
Bedragen zijn decimale strings aan de rand van de API en kleinste eenheden in het grootboek, dus er gaat niets verloren in drijvende komma. Elke geldverplaatsende aanroep neemt een idempotentiesleutel en elk antwoord draagt een request id die je aan support kunt geven.

Server-SDKs

Dunne, getypeerde omhulsels om dezelfde REST-API, met idempotentie en handtekeningcontrole ingebouwd.

TypeScript and NodeBinnenkort gepubliceerd@capay/sdk
Import
import { Capay } from '@capay/sdk';

Nog niet op npm. De importregel hierboven is definitief, dus je integratie verandert niet zodra het gepubliceerd wordt.

Lees de gids
PythonBinnenkort gepubliceerdcapay
Import
from capay import Capay

Nog niet op PyPI. De importregel hierboven is definitief, dus je integratie verandert niet zodra het gepubliceerd wordt.

Lees de gids
PHPBinnenkort gepubliceerdcapay/capay-php
Import
use Capay\CapayClient;

Nog niet op Packagist. De importregel hierboven is definitief, dus je integratie verandert niet zodra het gepubliceerd wordt.

Lees de gids

Controleer elke webhook

Handtekeningen worden over de ruwe body berekend en in constante tijd vergeleken, en een tijdstempel ouder dan 300 seconden wordt geweigerd. Vertrouw nooit een webhook die je niet hebt gecontroleerd.

X-Capay-Signature
# 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.
Handtekening-header
X-Capay-Signature: t=1767225600,v1=6f8b4c2d9e0a1b3c5d7e9f0a2b4c6d8e0f1a3b5c7d9e1f0a2b4c6d8e0f1a3b5c
X-Capay-Event-Id: evt_2n4Kq8Zr41Xa
X-Capay-Event-Type: collection.completed
Aflevering en herhalingen

Een mislukte aflevering wordt volgens een vast schema herhaald: 1m, 5m, 30m, 2h, 6h, 12h, 24h, 24h. Een endpoint dat 8 keer op rij faalt wordt uitgeschakeld en je krijgt bericht, zodat een dood endpoint nooit stilletjes gebeurtenissen opslokt.

Twee ondertekeningsgeheimen kunnen tegelijk actief zijn, dus je kunt roteren zonder een gebeurtenis te missen. Weiger alles buiten het venster van 300 seconden en bewaar het event id zodat herhalingen onschadelijk zijn.

De rest van de kit

Machineleesbare specificaties, een collectie die je kunt importeren, en de tools die ze lezen.

llms.txtDe hele documentatie plat voor codeerassistenten, zodat jouw AI over onze API antwoordt met onze eigen tekst.OpenAPI-specificatieHet volledige contract, gegenereerd vanuit de API. Importeer het om een client in elke taal te bouwen.Postman-collectieElk endpoint met voorbeeldbodies en omgevingsvariabelen, klaar om tegen de sandbox te draaien.
OpdrachtregelBinnenkortMaak testbetalingen, volg gebeurtenissen en speel een webhook af naar je eigen machine.@capay/cli
MCP-serverBinnenkortGeef je codeerassistent leestoegang tot je sandbox zodat hij met je echte gegevens antwoordt.@capay/mcp
Checkout-scriptBinnenkortOpen de betaalpagina in een venster boven je eigen pagina in plaats van door te sturen.https://pay.capayglobal.com/capay.js

Begin vandaag met betalingen innen in heel Afrika

Maak een gratis account aan, bouw tegen de sandbox en ga live na verificatie.

Account aanmaken

Vertel ons op elk moment over je corridors en volumes.