For developers

Embed trust in
your platform.

One API integration. Every escrow type, every courier, every dispute flow — available to your users under your brand.

Get API access →View docs

Built for production

Go-powered, sub-200ms p99

Built on Go/Fiber with PostgreSQL and SQLC. Predictable latency under load. No thread pool exhaustion under webhook bursts.

🔐
PASETO v2 authentication

Not JWT. Stateless, tamper-evident tokens with no shared-secret rotation risk. Secure by default, zero config.

🔄
Idempotent webhook delivery

Every event is keyed. Duplicate delivery is a no-op. Your integration will never double-charge, double-release, or create phantom state.

📖
OpenAPI 3.1.0 documented

Full spec available. Sandbox environment with test courier webhooks. Go SDK and TypeScript client in progress.

🌐
Canonical courier event model

Your integration never talks to individual courier APIs. We normalize GIGL, Kwik, Sendbox into one DeliveryEvent. Adding a courier is our problem, not yours.

📬
Dead-letter queue with backoff

Failed webhooks retry with 100ms → 6.4s exponential backoff, 7 attempts max. Unresolvable events go to manual review — never auto-release.

// CREATE A MILESTONE DEAL
// POST /api/v1/deals
{
  "type": "milestone",
  "buyer_id": "usr_amaka_4821",
  "seller_id": "usr_seun_dev_290",
  "total_amount": 850000,
  "currency": "NGN",
  "milestones": [
    {
      "label": "Design mockups",
      "amount": 212500,
      "requires_upload": true
    },
    {
      "label": "Frontend build",
      "amount": 212500,
      "requires_upload": true
    }
  ],
  "dispute_window_hrs": 72
}

// Response
{
  "deal_id": "deal_MIL3847",
  "state": "PENDING_FUNDING",
  "payment_link": "https://pay.dealeva.com/d/MIL3847",
  "idempotency_key": "idk_f9a3b821c...",
  "expires_at": "2025-09-14T23:59:59Z"
}