API Reference

Integrate your applications with our payment gateway using these simple REST APIs.

Version 1.0

Authentication

All API requests must be authenticated using your secret key.

HEADER Authorization: Bearer sk_test_xxxxxx
Include this header in every request.

Important: Keep your secret key secure. Never expose it in client-side code.

Base URL

https://gateway.odoombusinessconsults.com/api/v1/

Endpoints

POST /transactions
Initialize a new payment.

Request Body:

{
    "email": "customer@example.com",
    "amount": 1000,
    "callback_url": "https://yourapp.com/thank-you",
    "reference": "optional-unique-ref",
    "metadata": { "order_id": "123" }
}

Response:

{
    "status": true,
    "message": "Payment initialized",
    "data": {
        "authorization_url": "https://pay.yourplatform.com/pay/ref_xxx",
        "reference": "PAY_20260821_ABC123"
    }
}
GET /transactions/verify/{reference}
Verify the status of a payment.

Response:

{
    "status": true,
    "data": {
        "reference": "PAY_20260821_ABC123",
        "status": "success",
        "amount": 1000,
        "customer_email": "customer@example.com"
    }
}
GET /transactions?page=1&limit=20
List your transactions with pagination.
GET /balance
Get your current balance and stats.
{
    "available_balance": 980.50,
    "total_volume": 2500.00,
    "total_fees": 50.00,
    "total_transactions": 5
}
POST /merchants
Register a new merchant (developer). This is used by your sign-up form.

Webhooks

Receive real-time event notifications by setting a webhook URL in your dashboard.

POST Your configured webhook URL
We'll send a signed payload to your webhook URL.

Sample webhook payload:

{
    "event": "charge.success",
    "data": {
        "reference": "PAY_20260821_ABC123",
        "amount": 1000,
        "currency": "GHS",
        "status": "success",
        "customer_email": "customer@example.com",
        "payment_method": "card",
        "transaction_date": "2026-08-21 14:30:00"
    }
}

Signature verification: We send a X-Payment-Signature header. Verify it with your WEBHOOK_SECRET using HMAC-SHA256.

Error Handling

All errors are returned with a descriptive message and appropriate HTTP status code.

CodeMeaning
400Bad Request – invalid parameters
401Unauthorized – invalid or missing API key
404Not Found – endpoint or resource not found
405Method Not Allowed
429Too Many Requests – rate limit exceeded
500Internal Server Error

Test in Sandbox

Use the test keys (prefixed with pk_test_ and sk_test_) to test integration without processing real money.

Get Your Keys →