Unified Infrastructure

Modern Payment Channels for Africa

Empower your application with multi-currency checkout solutions. Accept instant bank transfers across NGN, GHS, KES, USD, GBP, and EUR via one unified API.

Developer Registry

Register your company to generate API authorization keys.

Already have a developer account? Log in here

Gateway Simulator

Simulate a payment initialization and bank transfer settlement to check integration logs.

API Documentation

Learn how to configure your project to connect and settle transactions via Byte.

Header Authentication

All incoming requests to the API must pass the developer secret key in the Authorization header as a Bearer token.

curl -X GET "http://127.0.0.1:8000/api/geo/detect" \
  -H "Authorization: Bearer byte_sk_live_YOUR_SECRET_KEY"

IP Country Detection

Retrieve the location, country code, and default currency mappings of the current client by IP.

GET /api/geo/detect

// SUCCESS RESPONSE (200 OK)
{
  "success": true,
  "ip": "127.0.0.1",
  "country_code": "NG",
  "country_name": "Nigeria",
  "currency": "NGN",
  "exchange_rate": 1600.00
}

Customer Profile status

Query onboarding flags and claim the ₦5,000 signup credits.

GET /api/user/onboarding/status?email=test@example.com

// RESPONSE
{
  "success": true,
  "onboarding_completed": false,
  "bonus_claimed": false
}

POST /api/user/onboarding
Payload: { "email": "user@example.com", "user_type": "individual", "country_code": "NG" }

Initialize Checkout

Generate a temporary settlement virtual account to receive bank transfers.

POST /api/payment/initialize
Payload: {
  "app_id": "buysolar",
  "customer_id": "cust-uuid-1234",
  "amount": 250000,
  "currency": "NGN",
  "payment_option": "pay_small_small_50"
}

// SUCCESS RESPONSE
{
  "status": true,
  "data": {
    "reference": "PSS-239401",
    "deposit_amount": 125000,
    "bank_details": {
      "bank_name": "Providus Bank",
      "account_number": "1023849182",
      "account_name": "Byte Africa (BuySolar Settlement)"
    }
  }
}

Webhook Callback Notifications

When generating your developer key, you must configure a Webhook Callback URL (e.g. http://127.0.0.1:8001/webhooks/byte for local Buysolar testing).

Whenever a customer completes their bank transfer or authorizes their mobile money payment, Byte will send a secure POST request to your webhook URL with the transaction status details:

POST /webhooks/byte
Content-Type: application/json

{
  "event": "payment.status_changed",
  "reference": "PAY-20260720-XYZ789",
  "status": "completed",
  "payment_option": "pay_in_full",
  "deposit_amount": 1100,
  "amount": 1100,
  "currency": "NGN"
}