Developers

Build on East Africa's
payment rails.

A developer-first API designed for the complexity of East African payments — with the simplicity your team deserves.

Sandbox ready · sk_test_…
API 99.97% · 30d
v1 stable
POST /v1/payments
curl -X POST https://api.ogiafrica.com/v1/payments \
  -H "Authorization: Bearer sk_test_••••••••" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order_abc123" \
  -d '{
    "amount": 50000,
    "currency": "TZS",
    "method": "mobile_money",
    "provider": "azampesa",
    "phone": "+255712345678",
    "reference": "order_abc123",
    "description": "Payment for Order #1042",
    "webhook_url": "https://yourapp.com/hooks/ogi"
  }'
REST principles

Predictable, idempotent, well-behaved.

Designed to feel familiar to anyone who has shipped on Stripe, Plaid or Wise — then extended for the realities of African rails.

Resource-oriented URLs

JSON requests and responses, standard HTTP verbs, standard status codes. No surprises.

Idempotent by default

Every mutating endpoint accepts an Idempotency-Key header. Safe to retry on network failures.

Cursor pagination

All list endpoints use cursor pagination — deterministic, fast, and stable under writes.

Signed webhooks

HMAC-SHA256 signed, retried with exponential backoff, replayable from the dashboard.

ISO 4217 currencies

Consistent currency codes throughout — TZS, KES, UGX, USD, EUR, GBP.

Rate limits with Retry-After

Per-key burst allowances. 429 responses include a Retry-After header so clients can self-throttle.

SDKs & tooling

Six surfaces. Pick the one that fits your stack.

ToolDescriptionStatus
REST APIJSON-over-HTTPS with predictable URLs, HTTP verbs and status codes.Stable · v1
WebhooksSigned event notifications delivered within 500ms of state changes.Stable
SDKsOfficial clients for Node.js, Python, PHP, and Java with full type coverage.GA
SandboxFull-featured test environment with synthetic MNO and bank rails. No real money moved.Live
Postman collectionOne-click import of every endpoint for interactive exploration.Available
CLIGenerate keys, tail logs, replay webhooks. Ships in Phase 1.1.Beta
API capabilities

Five resource groups. Everything you need, nothing you don't.

Payments

POST /payments
GET /payments/:id
POST /payments/:id/refund
GET /payments

Payouts

POST /payouts
GET /payouts/:id
POST /payouts/batch
GET /payouts

Agents

POST /agents
GET /agents/:id
POST /agents/:id/liquidity
GET /agents/:id/commissions

Webhooks

POST /webhooks
GET /webhooks/:id
DEL /webhooks/:id
GET /webhooks/events

Settlement reports

GET /reports/disbursements
GET /reports/aml
GET /reports/volume
DX commitments

Five promises we're putting in writing.

Idempotency first

Every mutating request accepts an Idempotency-Key. Safe to retry on network failures, duplicate submissions, or anything else.

Versioned API

Stable versioned endpoints (v1, v2) with a minimum 12-month deprecation notice for breaking changes.

Rich error codes

Machine-readable error codes with human descriptions — so your debug loop is minutes, not hours.

Sandbox-first onboarding

No sales call required for a sandbox key. Request, build, then talk — in that order.

Changelog by email

Monthly digest of new endpoints, deprecations, and breaking changes — opt-in from the dashboard.

Reliability

The numbers that matter to your on-call.

< 30m
Average sandbox integration
99.95%
API availability SLA target
< 180ms
Median API latency
200+
Webhook event types
Start building

Explore the sandbox — no sales call, no approval required. Full API access in under two minutes.