Geliştiriciler

Ekibinizin gerçekten keyif alacağı bir API

Öngörülebilir REST, idempotency anahtarları, imzalı webhook'lar ve simüle edilmiş kanallara sahip bir sandbox; böylece tek bir frank hareket etmeden uçtan uca entegre olursunuz.

Hesap oluşturun
Geliştiriciler için tasarlandı

İlk tahsilatınız tek istekle

Temiz REST, öngörülebilir bir JSON zarfı ve her yanıtta istek kimliği. Sandbox üretimin aynısıdır: aynı API, aynı durumlar, aynı webhook'lar.

  • Uygulama başına kapsamlandırılmış sandbox ve üretim anahtarları
  • Tekrar oynatma korumalı, HMAC imzalı webhook'lar
  • Para hareketi içeren her çağrıda idempotency anahtarı
  • Tam olarak neyi düzelteceğinizi söyleyen tipli hatalar
  • OpenAPI spesifikasyonu, Postman koleksiyonu ve llms.txt, hepsi yayinda
  • CRM, ERP ve mağaza bağlayıcıları için barındırılan ödeme oturumları ve düz geri çağrılar
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"
}

Ilk tahsilatiniz

Tek istek bir odeme niyeti olusturur, bir istek kimligi dondurur ve mobil parada odeyenin telefonuna bildirim gonderir. Sandbox tamamen uretim gibi davranir.

Test anahtarlarinizi alinHesap acin, sandbox anahtarlari gelistirici sayfanizda hemen yer alir. Uretim anahtarlari isletme dogrulamasindan sonra acilir.
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"
  }'
Yanit
{
  "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
Tutarlar API sinirinda ondalik dizeler, defterde alt birimlerdir; boylece kayan noktada hicbir sey kaybolmaz. Para hareket ettiren her cagri bir idempotency anahtari alir ve her yanit destege soyleyebileceginiz bir istek kimligi tasir.

Sunucu SDK'lari

Ayni REST API uzerinde ince ve tipli sarmalayicilar; idempotency ve imza dogrulama iceride.

TypeScript and NodeYakinda yayinlanacak@capay/sdk
Import
import { Capay } from '@capay/sdk';

Henüz npm üzerinde değil. Yukarıdaki import satırı kesindir, yayınlandığında entegrasyonunuz değişmez.

Rehberi okuyun
PythonYakinda yayinlanacakcapay
Import
from capay import Capay

Henüz PyPI üzerinde değil. Yukarıdaki import satırı kesindir, yayınlandığında entegrasyonunuz değişmez.

Rehberi okuyun
PHPYakinda yayinlanacakcapay/capay-php
Import
use Capay\CapayClient;

Henüz Packagist üzerinde değil. Yukarıdaki import satırı kesindir, yayınlandığında entegrasyonunuz değişmez.

Rehberi okuyun

Her webhook'u dogrulayin

Imzalar ham govde uzerinden hesaplanir ve sabit zamanda karsilastirilir; 300 saniyeden eski bir zaman damgasi reddedilir. Dogrulamadiginiz bir webhook'a asla guvenmeyin.

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.
Imza basligi
X-Capay-Signature: t=1767225600,v1=6f8b4c2d9e0a1b3c5d7e9f0a2b4c6d8e0f1a3b5c7d9e1f0a2b4c6d8e0f1a3b5c
X-Capay-Event-Id: evt_2n4Kq8Zr41Xa
X-Capay-Event-Type: collection.completed
Teslim ve yeniden denemeler

Basarisiz teslim sabit bir takvimle yeniden denenir: 1m, 5m, 30m, 2h, 6h, 12h, 24h, 24h. Ust uste 8 kez basarisiz olan bir uc nokta devre disi birakilir ve size bildirilir; boylece olu bir uc nokta olaylari sessizce yutmaz.

Ayni anda iki imzalama sirri etkin olabilir, bu yuzden olay kaybetmeden rotasyon yapabilirsiniz. 300 saniyelik pencerenin disindaki her seyi reddedin ve tekrarlar zararsiz olsun diye olay kimligini saklayin.

Kitin geri kalani

Makinece okunabilir spesifikasyonlar, ice aktarabileceginiz bir koleksiyon ve bunlari okuyan araclar.

llms.txtTum dokumantasyon kod asistanlari icin duzlestirildi; yapay zekaniz API'miz hakkinda bizim metnimizden yanit versin.OpenAPI spesifikasyonuAPI'den uretilen tam sozlesme. Herhangi bir dilde istemci kurmak icin ice aktarin.Postman koleksiyonuOrnek govdeler ve ortam degiskenleriyle her uc nokta, sandbox uzerinde calistirmaya hazir.
Komut satiriYakindaTest odemeleri olusturun, olaylari izleyin ve bir webhook'u kendi makinenize yeniden oynatin.@capay/cli
MCP sunucusuYakindaKod asistaniniza sandbox'iniz icin okuma erisimi verin ki gercek verinizle yanitlasin.@capay/mcp
Odeme betigiYakindaOdeme sayfasini yonlendirmek yerine kendi sayfanizin uzerinde bir pencerede acin.https://pay.capayglobal.com/capay.js

Afrika genelinde tahsilata bugün başlayın

Ücretsiz hesap oluşturun, sandbox üzerinde geliştirin ve doğrulamanın ardından canlıya geçin.

Hesap oluşturun

Koridorlarınızı ve hacimlerinizi dilediğiniz zaman bize anlatın.