Channels API

Programmatically manage your payment channels: Paybill, Till Number, Bank Settlement, and Wallet channel.

Paybill

Business paybill numbers

  • Paybill number
  • Account number
  • Account name
Till Number

Business till numbers

  • Till number
  • Account name
  • Business name
Bank Settlement

Bank account details

  • Bank selection
  • Account number
  • Account name
Wallet Channel

Auto-configured wallet

  • Auto-generated
  • No setup required
  • Instant activation

Base Endpoint

GET
/v3/channels/
All endpoints require an API key. Manage keys at /api_keys.php.

List Channels

GET
/v3/channels/

Authorization: Bearer YOUR_API_KEY

Optional Filters
  • id: specific channel id
  • channel_type: paybill | till_number | bank_settlement | wallet
{ "success": true, "data": { "count": 2, "channels": [ { "id": 101, "channel_name": "Main Till", "channel_type": "till_number", "account_number": "123456", "account_name": "Shop Name", "is_default": 1, "is_active": 1, "created_at": "2025-08-01 10:00:00" } ] }, "timestamp": "2025-08-12T12:00:00+03:00" }

Create Channel

POST with action = add. Supply fields by channel type.

Paybill
{ "action": "add", "channel_name": "Acme Paybill", "channel_type": "paybill", "paybill_number": "400200", "account_number": "ACC123", "account_name": "Acme Ltd", "is_default": true }
Till Number
{ "action": "add", "channel_name": "Shop Till", "channel_type": "till_number", "account_number": "123456", "account_name": "Shop Name" }
Bank Settlement
{ "action": "add", "channel_name": "Bank Settlement", "channel_type": "bank_settlement", "bank_id": 1, "account_number": "0112345678900", "account_name": "Acme Ltd" }
Wallet Channel
Wallet channels are auto-configured to your payment wallet. Account details are auto-generated.
{ "action": "add", "channel_name": "Wallet Channel", "channel_type": "wallet", "is_default": true }
Success Response
{
    "success": true,
    "data": {
      "message": "Payment channel added successfully",
      "channel_id": 205,
      "channel": {
        "id": 205,
        "channel_name": "Acme Paybill",
        "channel_type": "paybill",
        "account_number": "ACC123",
        "account_name": "Acme Ltd",
        "paybill_number": "400200",
        "is_default": true
      }
    },
    "timestamp": "2025-08-12T12:05:00+03:00"
  }

Update Channel

POST /v3/channels/
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

{
  "action": "update",
  "channel_id": 205,
  "channel_name": "Acme Paybill (Main)",
  "channel_type": "paybill",
  "paybill_number": "400200",
  "account_number": "ACC123",
  "account_name": "Acme Ltd",
  "is_default": true
}

Activate/Deactivate Channel

POST /v3/channels/
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

{
  "action": "toggle",
  "channel_id": 205,
  "is_active": false
}

Delete Channel

You cannot delete channels with existing transactions; deactivate instead.
POST /v3/channels/
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

{
  "action": "delete",
  "channel_id": 205
}

Error Model

{
  "success": false,
  "error": "Error message description",
  "code": 400,
  "timestamp": "2025-08-12T12:00:00+03:00"
}
Common Codes
  • 400 - Bad Request
  • 401 - Unauthorized
  • 404 - Not Found
  • 405 - Method Not Allowed
  • 500 - Internal Server Error
Validation Messages
  • Channel name and type are required
  • Invalid channel_type
  • Bank selection, account number, and account name are required
  • Cannot delete channel with existing transactions