Skip to content

Sold as and channel

Every transaction says whether it was one of Routegate's plans or your own, and which route served it.

Two fields on every transaction, in the API and in every transaction.* webhook, answer the two questions a support ticket starts with: what was sold, and what sent it.

 {
  "reference": "txn_01a0d8dfa6b87d10a3e54c2b9f86d1e4",
  "product_code": "vendor:mtn-500mb-weekly",
  "sold_as": "vendor_only",
  "vendor_only_plan": {
    "id": "01a0d8e2-3c41-7d58-9a06-2f4b7e1c8d93",
    "code": "vendor:mtn-500mb-weekly",
    "name": "MTN 500MB Weekly"
  },
  "channel": "vendor",
  "vendor_account_id": "01a0d8e1-77b2-7e0c-8f3a-5d9c2b6e4a10"
}

sold_as

ValueMeaning
planOne of Routegate's plans, by its code or plan number.
vendor_onlyOne of your vendor-only plans, by its vendor: code.

vendor_only_plan is the plan as it was when sold, {id, code, name}, and null for one of Routegate's plans. Its id goes null if you delete the plan later; the code and name stay.

channel

The route that served the latest attempt. The dashboard shows it as Route.

ValueRouteWhat served it
simLineOne of your own lines.
stockReserveA line in Routegate Reserve.
vendorVendorOne of your vendor links. vendor_account_id names it.
testTestThe test-mode mock.

channel is null until the first attempt, so a queued transaction has none. A sale that failed over from a line to a vendor shows vendor: the field follows the latest attempt.

Filtering

List transactions filters by both: ?sold_as=vendor_only, ?channel=vendor. Any other value is 400 VALIDATION_FAILED.

Channels

List channels shows what your sales go out through: with a live key, your own lines and vendor links, with a line's last read airtime and their success rate over your attempts in the last 24 hours; with a test key, the mock. It reads only; nothing is called to answer it.