NetConnect API
Orders

List Orders

Paginate the authenticated partner's orders.

live·playground

Endpoint

GET /api/v1/orders

Query parameters

ParameterTypeRequiredNotes
orderTypestringNoFilter by order type. Defaults to data + result_checker only. Pass airtime, voice, afa, registration, top_up, result_checker, data, or all to override.
statestringNoOrder state filter (pending, processing, completed, failed, reversed)
limitnumberNoDefaults to 20, capped at 100
cursorstringNoContinue cursor from a previous page

Default scope

By default GET /api/v1/orders returns only data bundle and result checker orders — the two flows you can buy from this API. Pass ?orderType=all to include every type (top-ups, airtime, registrations, etc.), or pass a specific orderType to scope the page.

Invalid orderType values return 400 INVALID_ORDER_TYPE.

Response

Returns paginated order list:

{
  "success": true,
  "data": {
    "orders": [
      {
        "_id": "kh72y10adpkj8kr1bbrgcgnvcd841w5g",
        "_creationTime": 1775046434454.9124,
        "createdAt": 1775046434454,
        "updatedAt": 1775046435554,
        "shortReference": "563967",
        "beneficiaryMsisdn": "233541234567",
        "operatorId": "kd7ff6sssan1v3d00dbbttwaa57yp27d",
        "operatorName": "MTN",
        "productId": "m17dnxcx4sww9qym18d73b5v6x7yqqah",
        "productName": "enterprise-api",
        "packageId": "kn79vk1wapbwx3q3z252yvr8ph7yqmct",
        "packageLabel": "1 GB",
        "amount": 4.25,
        "currency": "GHS",
        "state": "processing",
        "orderType": "data",
        "submittedAt": 1775046434454,
        "completedAt": null,
        "errorMessage": null,
        "isBulkOrder": false,
        "walletBalanceBefore": 250.00,
        "walletBalanceAfter": 246.10
      }
    ],
    "isDone": true,
    "continueCursor": "077b73b3eed120..."
  }
}

Response fields

FieldTypeNotes
ordersarrayArray of order objects
isDonebooleantrue if no more pages
continueCursorstringPass as cursor to get the next page

Order object fields

Each item in orders has the same shape as the single-order response:

FieldTypeNotes
_idstringOrder record ID
_creationTimenumberConvex record creation timestamp (unix ms)
createdAtnumberOrder creation timestamp (unix ms)
updatedAtnumberLast update timestamp (unix ms)
shortReferencestringUser-friendly alphanumeric order reference
beneficiaryMsisdnstringRecipient phone number (international format)
operatorIdstringOperator ID
operatorNamestringOperator name
productIdstringProduct ID
productNamestringProduct name
packageIdstringPackage ID
packageLabelstringPackage display label (e.g. 1 GB)
amountnumberGHS amount charged to wallet
currencystringAlways GHS
statestringpending, processing, completed, failed, or reversed
orderTypestringdata, airtime, voice, afa, registration, top_up, or result_checker
errorMessagestring | nullError details if state is failed
submittedAtnumber | nullSubmitted to provider timestamp (unix ms)
completedAtnumber | nullOrder completion timestamp (unix ms)
isBulkOrderboolean | nulltrue for bulk orders
bulkRecipientsarray | nullRecipient list for bulk orders
bulkCompletedCountnumber | nullCompleted recipient count (bulk)
bulkFailedCountnumber | nullFailed recipient count (bulk)
walletBalanceBeforenumber | nullWallet GHS balance immediately before the order was charged (agent / SuperAgent orders only)
walletBalanceAfternumber | nullWallet GHS balance after the order was charged (agent / SuperAgent orders only)

Sample request

GET/api/v1/orderstry·it·live
query parameters
⚠ no api key set — request will use placeholder
curl -X GET "https://api.netconnectgh.online/api/v1/orders?state=processing&limit=20" \
  -H "X-API-KEY: netconnect_live_your_secret_here" \
  -H "Content-Type: application/json"

Filter by order type

GET /api/v1/orders?orderType=result_checker&limit=50
GET /api/v1/orders?orderType=all
GET /api/v1/orders?orderType=airtime&state=completed

On this page