Features

Methods

GET

Retrieve Single Feature

/backend/api/v1/features/ID - fetch feature with specified ID.

List Features

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

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

/backend/api/v1/customers/ID/features/?includeNumbers - list features belonging to customer with specified ID, including those on numbers owned by the customer.

/backend/api/v1/numbers/ID/features/ - list features belonging to number with specified ID.

Additional Query Parameters
Parameter Type Required Description
CRMReference string No Search for features by exact CRM reference
dropped flag No Show only dropped features
active flag No Show only active features
featureType string No Show features of the specified type
droppedSince datetime No Only include features dropped since
reinstatedSince datetime No Only include features reinstated since

Search Example:

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

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

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

# Search within a specific number's features
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "/backend/api/v1/numbers/456/features?CRMReference=CRM-12345"

Search Notes:

  • The CRMReference parameter performs an exact match
  • Returns an array containing a single feature (or empty array if not found)
  • CRM references are unique, so only one result is expected
  • Can be used with customer-specific or number-specific endpoints
  • Combining with filters like active can exclude dropped features
  • Optimised for performance using indexed fields

POST

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

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

PATCH

/backend/api/v1/features/ID - update feature with specified ID. The modified feature will be returned.

DELETE

/backend/api/v1/features/ID - delete feature with specified ID.

Actions

Available Actions

drop

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

Parameters:

  • status (required) - The status name for the dropped feature (e.g., “Dropped”)
  • dateDrop (required) - The date the feature was dropped (format: YYYY-MM-DD)
  • dateBillTo (optional) - Override the calculated bill-to date. If not provided, the system calculates the appropriate date based on the feature type, drop date, and notice period
  • statusReason (optional) - Text explanation for dropping the feature

Example:

curl -X POST https://example.com/backend/api/v1/features/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 feature, returning it to active status.

Parameters:

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

Example:

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

Suspend a feature. This moves the feature to a suspended status. Recurring charges are suppressed while the feature is suspended, but usage charges still apply.

Parameters:

  • status (required) - The status name for the suspended feature (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 feature

Example:

curl -X POST https://example.com/backend/api/v1/features/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 feature. The platform back-fills any recurring charges that were missed during the suspension period.

Parameters:

  • status (required) - The status name for the unsuspended feature (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 feature

Example:

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

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

Parameters:

  • status (required) - The status name for the non-billable feature (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 feature non-billable

Example:

curl -X POST https://example.com/backend/api/v1/features/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 feature back to a billable status. The platform back-fills any recurring charges that were missed while the feature was non-billable. The feature’s active and suspended state is preserved.

Parameters:

  • status (required) - The status name for the billable feature (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 feature billable

Example:

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

Change the recurring charge amount and/or feature count on an active feature. The platform handles refunds, pro-rating, and new charge creation automatically.

Parameters:

  • serviceCharge (optional) - The new recurring charge amount. Omit to keep the existing charge.
  • featureCount (optional) - The new feature count. Omit to keep the existing count.
  • dateFrom (optional) - The date the change takes effect (format: YYYY-MM-DD). Defaults to the next changeover date.
  • chargeChangeMode (optional) - How existing charges are handled. One of:
    • replace (default) - Refunds or deletes charges from the effective date and adds new ones at the new rate.
    • add - Adds new charges from the effective date without removing or refunding existing ones. dateFrom is required and must be on or before the feature’s current due date. Use when a credit note is being raised outside the platform to cover the old charges.
    • delta - Keeps approved charges in place and adds adjustment rows for the net difference. Unapproved charges are updated in place. Only available when the Recurring Charge Adjustment and Recurring Charge Adjustment Refund transaction types are configured.

Example (replace mode):

curl -X POST https://example.com/backend/api/v1/features/123?action=changeRecurringCharge \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "serviceCharge": "60.00",
    "dateFrom": "2026-04-01"
  }'

Example (add mode):

curl -X POST https://example.com/backend/api/v1/features/123?action=changeRecurringCharge \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "serviceCharge": "60.00",
    "dateFrom": "2026-04-01",
    "chargeChangeMode": "add"
  }'

Example (delta mode):

curl -X POST https://example.com/backend/api/v1/features/123?action=changeRecurringCharge \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "serviceCharge": "60.00",
    "dateFrom": "2026-03-15",
    "chargeChangeMode": "delta"
  }'

Error Responses:

  • 400201 - Invalid chargeChangeMode value. Must be replace, add, or delta.
  • 400201 - add mode requires a dateFrom value on or before the feature’s current due date.
  • 400201 - add mode cannot be used on a feature with no existing recurring charges.
  • 400201 - delta mode unavailable. Recurring Charge Adjustment and Recurring Charge Adjustment Refund transaction types are not configured.
  • 400502 - Action failed (for example, feature is not active).

For full details on how each mode works, see Changing Recurring Charges.

Response Format

Actions return the updated feature 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
standardFeature Standard Feature Preset Value Predefined feature template to apply standard pricing and settings to this feature
featureType Feature Type Preset Value The type of service this feature represents, which will be shown on invoices if no description is given
featureCount Feature Count Number The number of instances of this feature being provided, which will multiply charges and discount allowances
featureCountCommitted Feature Committed Count Number The minimum number of features the customer should be billed for, even if actual feature count drops below this number
featureCountCommittedAuto Feature Auto Committed Count Preset Value Automatic calculation method for committed count, either using initial or peak feature count
description Description Text Description of the feature that will appear on invoices instead of the feature type if specified
site Site Text Site location where this feature is being provided
campaign Campaign Text Sales or marketing campaign associated with this feature
customerProducts Customer Products Preset Value(s) Products associated with this feature for product-based reporting and filtering
internalUse Internal Use Text Internal notes about this feature (not visible to customers)
CRMReference CRM Reference Text External CRM system reference number for this feature
status Feature Status Preset Value Status name representing the current state of this feature
statusChangedStamp Status Changed Date Date Date when the feature status was most recently changed
statusReason Status Reason Preset Value Reason for the current status (e.g., reason for dropping or reinstating)
soldDate Sold Date Date Date when the feature was sold, which may differ from when billing begins
enteredDate Entered Date Date Date when this feature was initially entered into the system
startDate Start Date Date Date from which the feature is active and billing begins
endDate End Date Date Date until which the feature is active (inclusive); leave blank for ongoing features
dueDate Due Date Date Date from which the next recurring charge will be made
annualIncreaseReferenceDate Annual Increase Reference Date Date Reference date used for annual increases for this feature. 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 feature
cancellationNoticeGivenDate Cancellation Notice Given Date Date when cancellation notice was received for this feature
renewalDate Renewal Date Date Date when the feature is due for renewal (informational only, no billing effect)
minimumTermDate Minimum Term Date Date Date until which the feature will be billed even if dropped before this date
committedTermDate Committed Count Term Date Date Date until which the committed count applies for billing purposes
totalFeatureValue Total Feature Value Currency Total value of the feature over its lifetime, used for tracking total value charged and remaining
instalments Instalments Number Number of instalments over which the total feature value is split
connectionTransactionType Transaction Type (One-Off) Preset Value Type of transaction for one-off charges, determining how they appear on invoices
connectionCharge One-Off Charge Currency One-off charge applied on the start date of the feature
connectionTransactionCode Transaction Code (One-Off) Text Code for one-off transactions that can be included in invoice reports for accounting
serviceTransactionType Transaction Type (Recurring) Preset Value Type of transaction for recurring charges, determining how they appear on invoices
serviceCharge Recurring Charge Currency Charge applied periodically according to the recurring charge interval
serviceChargeInterval S/C Interval Preset Value Frequency of recurring charges and whether they are calendar-aligned or prorated
serviceTransactionCode Transaction Code (Recurring) Text Code for recurring transactions that can be included in invoice reports for accounting
callsTransactionCode Transaction Code (Calls) Text Code for call/usage transactions that can be included in invoice reports for accounting
VATRate VAT Rate Preset Value VAT rate to apply to one-off and recurring charges; uses customer default if not specified
VATRateCalls VAT Rate (Calls) Preset Value VAT rate to apply to call/usage charges; uses customer default if not specified
totalValueCharged Total Value Charged Currency Total amount of value charged for this feature to date
totalValueRemaining Total Value Remaining Currency Remaining value to be charged for this feature (total feature value - total value charged)
initialFeatureDiscountScheme Initial Discount Scheme Preset Value Initial discount scheme to apply to this feature
initialFeatureDiscountSchemeEndDate Initial Discount Scheme End Date Date Date when the initial discount scheme expires
ongoingFeatureDiscountScheme Ongoing Discount Scheme Preset Value Ongoing discount scheme to apply after the initial discount scheme expires
ongoingFeatureDiscountSchemeEndDate Ongoing Discount Scheme End Date Date Date when the ongoing discount scheme expires
fixedFeeTariff Fixed Fee Tariff Preset Value Fixed fee tariff to apply to this feature, overriding customer or number defaults
inboundTariff Inbound Preset Value Tariff to use for inbound calls, overriding customer/number defaults
nationalTariff National Preset Value Tariff to use for national calls, overriding customer/number defaults
mobileTariff Mobile Preset Value Tariff to use for mobile calls, overriding customer/number defaults
nongeographicTariff Non-geographic Preset Value Tariff to use for non-geographic calls, overriding customer/number defaults
serviceNumbersTariff Service Numbers Preset Value Tariff to use for service numbers, overriding customer/number defaults
internationalTariff International Preset Value Tariff to use for international calls, overriding customer/number defaults
extendedInternationalTariff Extended International Preset Value Tariff to use for extended international calls, overriding customer/number defaults
surchargesTariff Surcharges Preset Value Tariff to use for surcharges, overriding customer/number defaults
bespokeTariff1 Bespoke Tariff 1 Preset Value Tariff to use for bespoke tariff 1, overriding customer/number defaults
bespokeTariff2 Bespoke Tariff 2 Preset Value Tariff to use for bespoke tariff 2, overriding customer/number defaults
discountPlanAllowancePoolName Allowance Pool Name Text Name for the allowance pool to identify bundles of minutes or call allowances
discountPlanMultiplier1 Discount Plan 1 Multiplier Number Multiplier for the first discount plan to control allowance amount
discountPlan1 Discount Plan 1 Preset Value First discount plan to apply to this feature
discountPlanMultiplier2 Discount Plan 2 Multiplier Number Multiplier for the second discount plan to control allowance amount
discountPlan2 Discount Plan 2 Preset Value Second discount plan to apply to this feature
discountPlanMultiplier3 Discount Plan 3 Multiplier Number Multiplier for the third discount plan to control allowance amount
discountPlan3 Discount Plan 3 Preset Value Third discount plan to apply to this feature
discountPlanMultiplier4 Discount Plan 4 Multiplier Number Multiplier for the fourth discount plan to control allowance amount
discountPlan4 Discount Plan 4 Preset Value Fourth discount plan to apply to this feature
carrier Feature Carrier Preset Value Carrier providing this service
carrierProduct Carrier Product Text Product code used by the carrier for this service
carrierProductMatches Carrier Product (Advanced Match) Text Advanced matching pattern for carrier product codes for reconciliation
carrierReference Carrier Reference Text Reference number used by the carrier for this service
carrierReferenceMatches Carrier Reference (Advanced Match) Text Advanced matching pattern for carrier reference numbers for reconciliation
connectionChargeCarrier Carrier One-Off Charge Currency One-time wholesale cost charged by the carrier for this service
serviceChargeCarrier Carrier Recurring Charge Currency Recurring wholesale cost charged by the carrier for this service
soldBy Sold By Preset Value User who sold this feature
connectionChargeCommissionProfile One-Off Commission Profile Preset Value Commission profile for one-off charges, defining commission rates and schedules
serviceChargeCommissionProfile Recurring Commission Profile Preset Value Commission profile for recurring charges, defining commission rates and schedules
callChargeCommissionProfile Call Commission Profile Preset Value Commission profile for call/usage charges, defining commission rates and schedules
commissionHolder Commission Holder Preset Value Primary user who receives commission for this feature
connectionChargeCommission One-Off Commission Currency Commission amount for one-off charges for the primary commission holder
connectionChargeCommissionType One-Off Commission Type Preset Value Commission calculation method for one-off charges (fixed amount or percentage)
serviceChargeCommission Recurring Commission Currency Commission amount for recurring charges for the primary commission holder
serviceChargeCommissionType Recurring Commission Type Preset Value Commission calculation method for recurring charges (fixed amount or percentage)
commissionHolderID2 Commission Holder 2 Preset Value Secondary user who receives commission for this feature
connectionChargeCommission2 One-Off Commission 2 Currency Commission amount for one-off charges for the secondary commission holder
connectionChargeCommissionType2 One-Off Commission Type 2 Preset Value Commission calculation method for one-off charges for secondary commission holder
serviceChargeCommission2 Recurring Commission 2 Currency Commission amount for recurring charges for the secondary commission holder
serviceChargeCommissionType2 Recurring Commission Type 2 Preset Value Commission calculation method for recurring charges for secondary commission holder
saleType Sale Type Preset Value Type of sale for commission reporting (e.g., new sale, cross-sell, up-sell)
updatedDate Change Effective From Date Date from which changes to feature charges should take effect
lastUpdatedDate Last Change Effective From Date Date when the most recent change to this feature took effect
lastUpdatedReason Last Change Reason Text Reason for the most recent change to this feature
renewalPeriodLength Renewal Period Length Number Length of time between renewals of this feature
renewalPeriodLengthType Renewal Period Length Type Preset Value Unit of time for the renewal period length (days, weeks, months, years)
minimumTermPeriodLength Minimum Term Length Number Minimum contractual period for this feature
minimumTermPeriodLengthType Minimum Term Length Type Preset Value Unit of time for the minimum term length (days, weeks, months, years)
committedTermPeriodLength Committed Count Term Length Number Period for which the committed count applies
committedTermPeriodLengthType Committed Count Term Length Type Preset Value Unit of time for the committed count term length (days, weeks, months, years)
noticePeriodLength Notice Period Length Number Required notice period for cancellation of this feature
noticePeriodLengthType Notice Period Length Type Preset Value Unit of time for the notice period length (days, weeks, months, years)
id Feature ID Text The unique identifier for this feature

Still Didn’t Find Your Answer?

For assistance, please contact us below.

Submit a ticket