Wavy API Reference

Gateway checkout, webhooks, payment links, subscriptions, and the official WooCommerce plugin. Everything you need to integrate payments into your product.

1. Register your website

Log in to your dashboard, open the Connect tab, and add your website. Add a payout bank account so payments settle to you.

2. Copy your publishable key

Click Connect setup on your site. Copy the publishable key (wavy_pk_live_...). Safe to use in HTML and JavaScript — never expose your secret key.

3. Add a pay button (easiest)

Include Wavy Pay and call checkout — customers are redirected to secure Wavy checkout.

<script src="https://wavy.ng/assets/wavy-pay.js"></script>
<button id="pay">Pay now</button>
<script>
  WavyPay.init({ publishableKey: 'wavy_pk_live_YOUR_KEY' });
  document.getElementById('pay').onclick = () => WavyPay.checkout({
    amount: 5000,
    description: 'Order #123',
    email: 'customer@email.com',
    merchant_reference: 'order_123'
  });
</script>

4. Or use a payment link

Share a link — no JavaScript needed. Build one in your dashboard or use this pattern:

https://wavy.ng/connect.html?pk=wavy_pk_live_...&amount=5000&description=Order&email=customer@email.com&ref=order_123

5. Server-side checkout (optional)

For full control, create checkout sessions from your server with your secret key.

POST https://api.wavy.ng/api/gateway/v1/checkout
Authorization: Bearer wavy_sk_live_YOUR_SECRET
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"
}

6. Verify payments & webhooks

Verify a transaction on your server:

GET https://api.wavy.ng/api/gateway/v1/transactions/{tx_ref}
Authorization: Bearer wavy_sk_live_YOUR_SECRET

Set a webhook URL in Connect setup. Wavy sends payment.success and payment.failed events. Verify the X-Wavy-Signature header with your webhook signing secret.

Open dashboard →