Numbers

Methods

GET

Retrieve Single Number

/backend/api/v1/numbers/ID - fetch number with specified ID.

List Numbers

/backend/api/v1/numbers/ - list all numbers.

/backend/api/v1/customers/ID/numbers/ - list numbers belonging to customer with specified ID.

Additional Query Parameters
Parameter Type Required Description
number string No Search for telephone numbers by exact match
CRMReference string No Search for numbers by exact CRM reference
dropped flag No Show only dropped numbers
active flag No Show only active numbers
numberType string No Show numbers of the specified type
droppedSince datetime No Only include numbers dropped since
reinstatedSince datetime No Only include numbers reinstated since
featureActive flag No When expanding features, only include active features

Search Example:

# Find number - spaces and dashes are automatically removed
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "/backend/api/v1/numbers?number=02079460000"

# Search works with formatted numbers too
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "/backend/api/v1/numbers?number=020%207946%200000"

# Alternative formatting
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "/backend/api/v1/numbers?number=020-7946-0000"

# Find only active numbers
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "/backend/api/v1/numbers?number=02079460000&active=true"

# Search within a specific customer's numbers
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "/backend/api/v1/customers/123/numbers?number=02079460000"

# Find number by CRM reference
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "/backend/api/v1/numbers?CRMReference=CRM-12345"

# Find only active numbers by CRM reference
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "/backend/api/v1/numbers?CRMReference=CRM-12345&active=true"

# Search within a specific customer's numbers by CRM reference
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "/backend/api/v1/customers/123/numbers?CRMReference=CRM-12345"

Search Notes:

  • The number parameter performs an exact match
  • Spaces and dashes are automatically removed from the search term
  • Formats like 020 7946 0000 and 020-7946-0000 will match 02079460000
  • The CRMReference parameter performs an exact match
  • Returns an array containing a single number (or empty array if not found)
  • CRM references are unique, so only one result is expected
  • Can be used with customer-specific endpoints: /backend/api/v1/customers/{id}/numbers?number={number} or /backend/api/v1/customers/{id}/numbers?CRMReference={reference}
  • Combining with filters like active can exclude dropped numbers
  • Optimised for performance using indexed fields

Expand with Filtering Example:

# Get number with only active features included
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "/backend/api/v1/numbers/456?expandFeatures=true&featureActive=true"

# List customer's numbers with active features expanded
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "/backend/api/v1/customers/123/numbers?expandFeatures=true&featureActive=true"

POST

/backend/api/v1/customers/ID/numbers/ - add a new number to the specified customer, the newly-added number will be returned.

PATCH

/backend/api/v1/numbers/ID - update number with specified ID. The modified number will be returned.

DELETE

/backend/api/v1/numbers/ID - delete number with specified ID.

Actions

Available Actions

drop

Drop (deactivate) a number. This action changes the number’s status to dropped and records the drop date.

Parameters:

  • status (required) - The status name for the dropped number (e.g., “Dropped”)
  • dateDrop (required) - The date the number was dropped (format: YYYY-MM-DD)
  • cancellationNoticeGivenDate (optional) - The date cancellation notice was given (may affect notice period billing)
  • statusReason (optional) - Text explanation for dropping the number
  • ignoreTrafficNumberType (optional) - Name of the ignore traffic type to apply (automatically creates ignore traffic number entries for call data exclusion)

Example:

curl -X POST https://example.com/backend/api/v1/numbers/123?action=drop \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "Dropped",
    "dateDrop": "2025-01-24",
    "statusReason": "Customer requested cancellation"
  }'
reinstate

Reinstate a previously dropped number, returning it to active status. Features that were dropped automatically when the number was dropped are reinstated automatically.

Parameters:

  • status (required) - The status name for the reinstated number (e.g., “Active”)
  • dateReinstate (required) - The date the number is reinstated (format: YYYY-MM-DD)
  • statusReason (optional) - Text explanation for reinstating the number

Example:

curl -X POST https://example.com/backend/api/v1/numbers/123?action=reinstate \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "Active",
    "dateReinstate": "2025-01-24"
  }'
suspend

Suspend a number. This moves the number to a suspended status. Recurring charges on the number’s features are suppressed while the number is suspended, but usage charges still apply.

Parameters:

  • status (required) - The status name for the suspended number (e.g., “Suspended”)
  • dateSuspend (optional) - The date the suspension takes effect (format: YYYY-MM-DD). Defaults to today.
  • statusReason (optional) - Text explanation for suspending the number

Example:

curl -X POST https://example.com/backend/api/v1/numbers/123?action=suspend \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "Suspended",
    "dateSuspend": "2025-01-24"
  }'
unsuspend

Unsuspend a previously suspended number. The platform back-fills any recurring charges that were missed during the suspension period.

Parameters:

  • status (required) - The status name for the unsuspended number (e.g., “Active”)
  • dateUnsuspend (optional) - The date the unsuspension takes effect (format: YYYY-MM-DD). Defaults to today.
  • statusReason (optional) - Text explanation for unsuspending the number

Example:

curl -X POST https://example.com/backend/api/v1/numbers/123?action=unsuspend \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "Active",
    "dateUnsuspend": "2025-01-24"
  }'
makeNonBillable

Move a number to a non-billable status. Automated billing runs skip the number while it is non-billable, but manual invoices can still be raised. The number’s active and suspended state is preserved.

Parameters:

  • status (required) - The status name for the non-billable number (e.g., “Active - Do Not Bill”)
  • dateMakeNonBillable (optional) - The date the change takes effect (format: YYYY-MM-DD). Defaults to today.
  • statusReason (optional) - Text explanation for making the number non-billable

Example:

curl -X POST https://example.com/backend/api/v1/numbers/123?action=makeNonBillable \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "Active - Do Not Bill",
    "dateMakeNonBillable": "2025-01-24"
  }'
makeBillable

Move a number back to a billable status. The platform back-fills any recurring charges that were missed while the number was non-billable. The number’s active and suspended state is preserved.

Parameters:

  • status (required) - The status name for the billable number (e.g., “Active”)
  • dateMakeBillable (optional) - The date the change takes effect (format: YYYY-MM-DD). Defaults to today.
  • statusReason (optional) - Text explanation for making the number billable

Example:

curl -X POST https://example.com/backend/api/v1/numbers/123?action=makeBillable \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "Active",
    "dateMakeBillable": "2025-01-24"
  }'

Response Format

Actions return the updated number object in JSON format, using the same structure as GET requests.

Error Handling

If an action fails, the API will return an appropriate HTTP status code with error details:

{
    "error": "Invalid Action",
    "error_code": 400502,
    "hint": "The action was not performed"
}

Common error codes:

  • 400501 - Action not recognised
  • 400502 - Action failed to execute
  • 400503 - Missing required parameters
  • 403xxx - Permission denied

Fields

Field Name Type Description
customerID Customer Text The ID of the customer who owns this number
numberType Number Type Preset Value The type of this number (e.g., geographic, non-geographic, mobile)
number Number Text The telephone number as sold to the customer
extension Extension Text Extension number associated with this telephone number
lines Lines Number Number of telephone lines associated with this number
description Description Text Description of this number
site Site Text Site where this number is billed
campaign Campaign Text Marketing campaign associated with this number
target Target Text Target destination for calls to this number
alphaRef Alpha Ref Text Alphabetic reference code for this number
status Number Status Preset Value Status name for this number
statusChangedStamp Status Changed Date Date Date when the status of this number was last changed
updatedDate Dropped / Reinstated Date Date Date when this number was most recently dropped or reinstated
statusReason Status Reason Preset Value Reason for the current status of this number
cancellationNoticeGivenDate Cancellation Notice Given Date Date when cancellation notice was given for this number
annualIncreaseReferenceDate Annual Increase Reference Date Date Reference date used for annual increases for this number. Depending on how annual increases are managed, this can be the next increase date or the previous increase date.
annualIncreaseProfile Annual Increase Profile Preset Value Annual increase profile name for this number
customerProducts Customer Products Preset Value(s) Products associated with this number
internalUse Internal Use Text Internal notes or references for this number
CRMReference CRM Reference Text Reference for this number in the CRM system
CDRNumber CDR Number Text Alternative number used in Call Detail Records
CDRNumberCallTypeDirectionFlag Call Leg Preset Value Direction of calls for this CDR number
useCallTypeOriginationTypeFlag Call Origination Type Preset Value Type of call origination for this number
CDRNumberChargeBand Charge Band Text Charging band applied to calls for this number
CDRNumber2 Second CDR Number Text Second alternative number used in Call Detail Records
CDRNumberCallTypeDirectionFlag2 Second Call Leg Type Preset Value Direction of calls for the second CDR number
useCallTypeOriginationTypeFlag2 Second Call Origination Type Preset Value Type of call origination for the second CDR number
CDRNumberChargeBand2 Second Charge Band Text Charging band applied to calls for the second CDR number
CDRNumber3 Third CDR Number Text Third alternative number used in Call Detail Records
CDRNumberCallTypeDirectionFlag3 Third Call Leg Type Preset Value Direction of calls for the third CDR number
useCallTypeOriginationTypeFlag3 Third Call Origination Type Preset Value Type of call origination for the third CDR number
CDRNumberChargeBand3 Third Charge Band Text Charging band applied to calls for the third CDR number
CDRNumber4 Fourth CDR Number Text Fourth alternative number used in Call Detail Records
CDRNumberCallTypeDirectionFlag4 Fourth Call Leg Type Preset Value Direction of calls for the fourth CDR number
useCallTypeOriginationTypeFlag4 Fourth Call Origination Type Preset Value Type of call origination for the fourth CDR number
CDRNumberChargeBand4 Fourth Charge Band Text Charging band applied to calls for the fourth CDR number
soldBy Sold By Preset Value User who sold this number
soldDate Date Sold Date Date when this number was sold
enteredDate Entered Date Date Date when this number was entered into the system
saleType Sale Type Preset Value Type of sale for this number
postcode Postcode Text Postcode associated with this number
websiteDesigner Website Designer Preset Value
firstDraftDate 1st Draft Date Date
contractEndDate Contract End Date Date Date when the contract for this number ends
callCarrier Call Carrier Preset Value Carrier used for calls with this number
lineCarrier Line Provider Preset Value Provider of the line for this number
carrierCallAllocation Bill Calls From Preset Value Specifies how calls are allocated to this number
carrierReference Carrier Reference/ID Text Reference or ID used by the carrier for this number
PIN Carrier PIN Text PIN associated with this number at the carrier
carrierServiceType Carrier Service Type Text Type of service provided by the carrier for this number
carrierSubAccount Carrier Sub-Account Text Sub-account at the carrier for this number
fixedFeeTariff Fixed Fee Tariff Preset Value Fixed fee tariff applied to this number
inboundTariff Inbound Tariff Preset Value Tariff applied to inbound calls
inboundMarkup Inbound Markup Number Percentage markup applied for inbound calls when the selected tariff has no rate
nationalTariff National Tariff Preset Value Tariff applied to national calls
nationalMarkup National Markup Number Percentage markup applied for national calls when the selected tariff has no rate
mobileTariff Mobile Tariff Preset Value Tariff applied to mobile calls
mobileMarkup Mobile Markup Number Percentage markup applied for mobile calls when the selected tariff has no rate
nongeographicTariff Non-geographic Tariff Preset Value Tariff applied to non-geographic calls
nongeographicMarkup Non-geographic Markup Number Percentage markup applied for non-geographic calls when the selected tariff has no rate
serviceNumbersTariff Service Numbers Tariff Preset Value Tariff applied to service number calls
serviceNumbersMarkup Service Numbers Markup Number Percentage markup applied for service number calls when the selected tariff has no rate
internationalTariff International Tariff Preset Value Tariff applied to international calls
internationalMarkup International Markup Number Percentage markup applied for international calls when the selected tariff has no rate
extendedInternationalTariff Extended International Tariff Preset Value Tariff applied to extended international calls
extendedInternationalMarkup Extended International Markup Number Percentage markup applied for extended international calls when the selected tariff has no rate
surchargesTariff Surcharges Tariff Preset Value Tariff applied to surcharges
surchargesMarkup Surcharges Markup Number Percentage markup applied for surcharges when the selected tariff has no rate
bespokeTariff1 Bespoke Tariff 1 Preset Value Tariff applied to bespoke tariff 1 calls
bespokeTariff1Markup Bespoke Tariff 1 Markup Number Percentage markup applied for bespoke tariff 1 calls when the selected tariff has no rate
bespokeTariff2 Bespoke Tariff 2 Preset Value Tariff applied to bespoke tariff 2 calls
bespokeTariff2Markup Bespoke Tariff 2 Markup Number Percentage markup applied for bespoke tariff 2 calls when the selected tariff has no rate
fallbackMarkupSuggested Fallback Suggested Retail Markup Number Suggested retail markup applied as a last resort when rates are missing and no per-class markup applies
fallbackMarkup Fallback Markup Number Wholesale markup applied as a last resort when rates are missing and no per-class markup applies
discountPlanAllowancePoolName Allowance Pool Name Text Name of the allowance pool for discount plans
discountPlan1 Discount Plan 1 Preset Value First discount plan applied to this number
discountPlan2 Discount Plan 2 Preset Value Second discount plan applied to this number
discountPlan3 Discount Plan 3 Preset Value Third discount plan applied to this number
discountPlan4 Discount Plan 4 Preset Value Fourth discount plan applied to this number
lowInvoiceActionValue Pad Calls To Currency Minimum value to pad call charges to on invoices
creditLimit Credit Limit Currency Credit limit for this number
expectedSpend Expected Spend Currency Expected monthly spending for this number
displayWith Display With Text Groups this number with others on bills and reports
shortBillPages Short Bill Pages Preset Value(s) Pages to include in short bills for this number
longBillPages Long Bill Pages Preset Value(s) Pages to include in long bills for this number
loginFlagsAllow Allow Preset Value(s) Array of statistics names allowed for this number
loginFlagsDeny Deny Preset Value(s) Array of statistics names denied for this number
id Number ID Text The unique identifier for this number

Still Didn’t Find Your Answer?

For assistance, please contact us below.

Submit a ticket