Sviluppatori

Un'API che il tuo team userà davvero con piacere

REST prevedibile, chiavi di idempotenza, webhook firmati e una sandbox con circuiti simulati, per integrare tutto end to end prima di muovere un solo franco.

Crea un account
Pensato per gli sviluppatori

Il tuo primo incasso in una sola richiesta

REST pulita, un envelope JSON prevedibile e un request id su ogni risposta. La sandbox rispecchia la produzione: stessa API, stessi stati, stessi webhook.

  • Chiavi sandbox e di produzione, con permessi per singola app
  • Webhook firmati HMAC con protezione dai replay
  • Chiavi di idempotenza su ogni chiamata che muove denaro
  • Errori tipizzati che ti dicono esattamente cosa correggere
  • Specifica OpenAPI, raccolta Postman e llms.txt, tutte pubblicate
  • Sessioni di checkout ospitate e callback piatti per connettori CRM, ERP e shop
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"
}

Il tuo primo incasso

Una richiesta crea una intenzione di pagamento, restituisce un identificativo di richiesta e, per il mobile money, invia la richiesta al telefono del pagatore. La sandbox si comporta esattamente come la produzione.

Ottieni le chiavi di testCrea un account e le chiavi sandbox compaiono subito nella tua pagina sviluppatore. Le chiavi di produzione si aprono dopo la verifica aziendale.
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"
  }'
Risposta
{
  "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
Gli importi sono stringhe decimali al confine della API e unita minori nel libro mastro, quindi nulla si perde in virgola mobile. Ogni chiamata che muove denaro accetta una chiave di idempotenza e ogni risposta porta un identificativo di richiesta da citare all'assistenza.

SDK server

Involucri sottili e tipizzati sulla stessa API REST, con idempotenza e verifica della firma gia incluse.

TypeScript and NodePubblicazione a breve@capay/sdk
Import
import { Capay } from '@capay/sdk';

Non è ancora su npm. La riga di import qui sopra è definitiva, quindi la tua integrazione non cambia quando verrà pubblicato.

Leggi la guida
PythonPubblicazione a brevecapay
Import
from capay import Capay

Non è ancora su PyPI. La riga di import qui sopra è definitiva, quindi la tua integrazione non cambia quando verrà pubblicato.

Leggi la guida
PHPPubblicazione a brevecapay/capay-php
Import
use Capay\CapayClient;

Non è ancora su Packagist. La riga di import qui sopra è definitiva, quindi la tua integrazione non cambia quando verrà pubblicato.

Leggi la guida

Verifica ogni webhook

Le firme si calcolano sul corpo grezzo e si confrontano a tempo costante, e una marca temporale piu vecchia di 300 secondi viene rifiutata. Non fidarti mai di un webhook che non hai verificato.

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.
Intestazione della firma
X-Capay-Signature: t=1767225600,v1=6f8b4c2d9e0a1b3c5d7e9f0a2b4c6d8e0f1a3b5c7d9e1f0a2b4c6d8e0f1a3b5c
X-Capay-Event-Id: evt_2n4Kq8Zr41Xa
X-Capay-Event-Type: collection.completed
Consegna e nuovi tentativi

Una consegna fallita viene ritentata su un calendario fisso: 1m, 5m, 30m, 2h, 6h, 12h, 24h, 24h. Un endpoint che fallisce 8 volte di fila viene disattivato e ti avvisiamo, cosi un endpoint morto non ingoia mai eventi in silenzio.

Due segreti di firma possono essere attivi insieme, quindi puoi ruotarli senza perdere un evento. Rifiuta tutto cio che esce dalla finestra di 300 secondi e memorizza l'identificativo dell'evento perche i rinvii siano innocui.

Il resto del kit

Specifiche leggibili dalle macchine, una raccolta importabile e gli strumenti che le leggono.

llms.txtTutta la documentazione appiattita per gli assistenti di codice, cosi la tua IA risponde sulla nostra API partendo dal nostro testo.Specifica OpenAPIIl contratto completo, generato dalla API. Importalo per costruire un client in qualsiasi linguaggio.Raccolta PostmanOgni endpoint con corpi di esempio e variabili di ambiente, pronto da eseguire sulla sandbox.
Riga di comandoIn arrivoCrea pagamenti di prova, segui gli eventi e rigioca un webhook sulla tua macchina locale.@capay/cli
Server MCPIn arrivoDai al tuo assistente di codice accesso in lettura alla sandbox perche risponda con i tuoi dati reali.@capay/mcp
Script di pagamentoIn arrivoApri la pagina di pagamento in una finestra sopra la tua pagina invece di reindirizzare.https://pay.capayglobal.com/capay.js

Inizia oggi a incassare pagamenti in tutta l'Africa

Crea un account gratuito, sviluppa nella sandbox e vai in produzione dopo la verifica.

Crea un account

Raccontaci dei tuoi corridoi e dei tuoi volumi in qualsiasi momento.