Una API que tu equipo realmente disfrutará
REST predecible, claves de idempotencia, webhooks firmados y un sandbox con rieles simulados para que integres de extremo a extremo antes de mover un solo franco.
Tu primer cobro en una sola solicitud
REST limpio, un sobre JSON predecible y un id de solicitud en cada respuesta. El sandbox refleja producción: misma API, mismos estados, mismos webhooks.
- Claves de sandbox y producción, con alcance por aplicación
- Webhooks firmados con HMAC y protección contra repetición
- Claves de idempotencia en cada llamada que mueve dinero
- Errores tipados que te dicen exactamente qué corregir
- Especificacion OpenAPI, coleccion Postman y llms.txt, todos publicados
- Sesiones de checkout alojado y callbacks planos para conectores CRM, ERP y de tiendas
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"
}Tu primer cobro
Una peticion crea una intencion de pago, devuelve un identificador de peticion y, en dinero movil, envia el aviso al telefono del pagador. El entorno de pruebas se comporta igual que produccion.
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 de servidor
Envoltorios finos y tipados sobre la misma API REST, con idempotencia y verificacion de firma incluidas.
import { Capay } from '@capay/sdk';Todavía no está en npm. La línea de import de arriba es definitiva, así que tu integración no cambiará cuando se publique.
Leer la guiafrom capay import CapayTodavía no está en PyPI. La línea de import de arriba es definitiva, así que tu integración no cambiará cuando se publique.
Leer la guiause Capay\CapayClient;Todavía no está en Packagist. La línea de import de arriba es definitiva, así que tu integración no cambiará cuando se publique.
Leer la guiaVerifica cada webhook
Las firmas se calculan sobre el cuerpo crudo y se comparan en tiempo constante, y una marca de tiempo mas antigua que 300 segundos se rechaza. Nunca confies en un webhook que no hayas verificado.
# 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.completedUna entrega fallida se reintenta con un calendario fijo: 1m, 5m, 30m, 2h, 6h, 12h, 24h, 24h. Un endpoint que falla 8 veces seguidas se desactiva y te avisamos, para que un endpoint muerto nunca se trague eventos en silencio.
Puede haber dos secretos de firma activos a la vez, asi que puedes rotarlos sin perder un evento. Rechaza todo lo que quede fuera de la ventana de 300 segundos y guarda el identificador del evento para que los reenvios sean inofensivos.
El resto del kit
Especificaciones legibles por maquina, una coleccion que puedes importar y las herramientas que las leen.
Explora la plataforma
Empieza a cobrar pagos en toda África hoy
Crea una cuenta gratis, construye contra el sandbox y sal a producción tras la verificación.
Cuéntanos sobre tus corredores y volúmenes en cualquier momento.