Ontwikkelaars

'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.

Skep rekening
Gebou vir ontwikkelaars

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
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"
}

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.

Kry jou toetssleutelsSkep 'n rekening en die sandputsleutels is dadelik op jou ontwikkelaarsblad. Produksiesleutels open na die maatskappyverifikasie.
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
Bedrae is desimale stringe by die API-grens en kleiner eenhede in die grootboek, dus gaan niks in dryfpunt verlore nie. Elke oproep wat geld skuif neem 'n idempotensiesleutel en elke antwoord dra 'n versoek-id wat jy vir ondersteuning kan gee.

Bediener-SDK's

Dun, getikte omhulsels bo dieselfde REST-API, met idempotensie en handtekeningverifikasie ingebou.

TypeScript and NodePublikasie binnekort@capay/sdk
Invoer
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 gids
PythonPublikasie binnekortcapay
Invoer
from capay import Capay

Nog nie op PyPI nie. Die invoerreël hierbo is finaal, so jou integrasie verander nie wanneer dit gepubliseer word nie.

Lees die gids
PHPPublikasie binnekortcapay/capay-php
Invoer
use 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 gids

Verifieer 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.

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-kopstuk
X-Capay-Signature: t=1767225600,v1=6f8b4c2d9e0a1b3c5d7e9f0a2b4c6d8e0f1a3b5c7d9e1f0a2b4c6d8e0f1a3b5c
X-Capay-Event-Id: evt_2n4Kq8Zr41Xa
X-Capay-Event-Type: collection.completed
Aflewering en herpogings

'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.

llms.txtDie hele dokumentasie afgeplat vir koderingsassistente, sodat jou KI oor ons API uit ons eie teks antwoord.OpenAPI-spesifikasieDie volledige kontrak, uit die API gegenereer. Voer dit in om 'n kliënt in enige taal te bou.Postman-versamelingElke eindpunt met voorbeeldliggame en omgewingsveranderlikes, gereed om teen die sandput te loop.
OpdraglynKom binnekortSkep toetsbetalings, volg gebeurtenisse en speel 'n webhook na jou eie masjien terug.@capay/cli
MCP-bedienerKom binnekortGee jou koderingsassistent leestoegang tot jou sandput sodat dit met jou werklike data antwoord.@capay/mcp
BetaalskripKom binnekortOpen die betaalblad in 'n venster bo jou eie blad in plaas van om weg te stuur.https://pay.capayglobal.com/capay.js

Begin vandag betalings regoor Afrika invorder

Skep 'n gratis rekening, bou teen die sandbox en gaan in produksie ná verifikasie.

Skep rekening

Vertel ons enige tyd van jou korridors en volumes.