Platform · API · SDK

Wavy Core powers your checkout

Embed payments in any app or website. Wavy Core handles merchants, Flutterwave checkout, settlement, webhooks, receipts, and transaction logs — so you focus on your product.

Core modules

Everything external apps need to accept payments in Nigeria — one platform, live today.

🏪

Merchant management

Register websites, attach payout bank accounts, and manage per-site Flutterwave subaccounts from the dashboard.

Live
💳

Payment processing

Server-side checkout API and hosted Flutterwave flow. Create sessions, verify by reference, finalize transactions.

Live
🌍

Flutterwave integration

Banks, account resolve, subaccount routing, webhooks, and signature verification — fully wired.

Live
🏦

Settlement engine

Direct settlement via Flutterwave subaccount splits. Batch reporting and admin settlement tools coming next.

Partial
🔑

API keys

Per-merchant secret and publishable keys (wavy_sk_live_*, wavy_pk_live_*) with rotation support.

Live
📡

Webhooks

Inbound Flutterwave events and outbound payment.success / payment.failed to your server with HMAC signatures.

Live
📊

Analytics

Dashboard stats, gateway transaction views, and step-by-step payment event timelines per transaction.

Live
🧾

Receipts

Auto-generated branded receipts with fee breakdown, PNG/PDF export, and public lookup by reference.

Live
📋

Transaction logs

Full audit trail — link created, checkout initialized, payment success, settled — stored in payment_events.

Live

Integrate in minutes

Server-side checkout is recommended. Never expose your secret key in client-side code in production.

1 · Create checkout

POST /api/gateway/v1/checkout
Authorization: Bearer wavy_sk_live_...
Content-Type: application/json

{
  "amount": 5000,
  "description": "Order #123",
  "email": "customer@email.com",
  "merchant_reference": "order_123",
  "success_url": "https://yoursite.com/success",
  "cancel_url": "https://yoursite.com/cancel"
}

2 · Verify payment

GET /api/gateway/v1/transactions/{tx_ref}
Authorization: Bearer wavy_sk_live_...

Or listen for webhooks — verify with the X-Wavy-Signature header.

3 · Embed (optional)

<script src="https://wavy.ng/assets/wavy-pay.js"></script>
<script>
  WavyPay.init({ secretKey: '...' });
  WavyPay.checkout({ amount: 5000, ... });
</script>

Use server-side checkout for production. Embed is for demos and quick prototypes.

Ready to plug in?

Sign up, open Dashboard → Integrations, register your site, and copy your API keys.