Skip to content

Services

/backend/api/v1/services/ID - fetch service with specified ID.

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

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

ParameterTypeRequiredDescription
CRMReferencestringNoSearch for services by exact CRM reference
droppedflagNoShow only dropped services
activeflagNoShow only active services
serviceTypestringNoShow services of the specified type
droppedSincedatetimeNoOnly include services dropped since
reinstatedSincedatetimeNoOnly include services reinstated since
featureActiveflagNoWhen expanding features, only include active features

Search Example:

Terminal window
# Find service by CRM reference
curl -H "Authorization: Bearer YOUR_API_KEY" \
"/backend/api/v1/services?CRMReference=CRM-12345"
# Find only active services by CRM reference
curl -H "Authorization: Bearer YOUR_API_KEY" \
"/backend/api/v1/services?CRMReference=CRM-12345&active=true"
# Search within a specific customer's services
curl -H "Authorization: Bearer YOUR_API_KEY" \
"/backend/api/v1/customers/123/services?CRMReference=CRM-12345"
# Expand features but only show active ones
curl -H "Authorization: Bearer YOUR_API_KEY" \
"/backend/api/v1/services/123?expandFeatures=true&featureActive=true"

Search Notes:

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

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

/backend/api/v1/services/ID - update service with specified ID. The modified service will be returned.

/backend/api/v1/services/ID - delete service with specified ID.

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

Parameters:

  • status (required) - The status name for the dropped service (e.g., “Dropped”)
  • dateDrop (required) - The date the service 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 service

Example:

Terminal window
curl -X POST https://example.com/backend/api/v1/services/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 a previously dropped service, returning it to active status. Features that were dropped automatically when the service was dropped are reinstated automatically.

Parameters:

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

Example:

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

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

Parameters:

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

Example:

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

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

Parameters:

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

Example:

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

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

Parameters:

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

Example:

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

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

Parameters:

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

Example:

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

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

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
FieldNameTypeDescription
customerIDCustomerTextThe ID of the customer who owns this service
serviceTypeService TypePreset ValueThe type of this service
serviceNameService NameTextA short name or reference for this service
descriptionDescriptionTextDescription of this service
siteSiteTextSite where this service is provided or billed
campaignCampaignTextMarketing campaign associated with this service
statusService StatusPreset ValueStatus name for this service
statusChangedStampStatus Changed DateDateDate when the status of this service was last changed
updatedDateDropped / Reinstated DateDateDate when this service was most recently dropped or reinstated
statusReasonStatus ReasonPreset ValueReason for the current status of this service
cancellationNoticeGivenDateCancellation Notice GivenDateDate when cancellation notice was given for this service
annualIncreaseReferenceDateAnnual Increase Reference DateDateReference date used for annual increases for this service. Depending on how annual increases are managed, this can be the next increase date or the previous increase date.
annualIncreaseProfileAnnual Increase ProfilePreset ValueAnnual increase profile name for this service
customerProductsCustomer ProductsPreset Value(s)Products associated with this service
internalUseInternal UseTextInternal notes or references for this service
CRMReferenceCRM ReferenceTextReference for this service in the CRM system
soldBySold ByPreset ValueUser who sold this service
soldDateDate SoldDateDate when this service was sold
enteredDateEntered DateDateDate when this service was entered into the system
saleTypeSale TypePreset ValueType of sale for this service
postcodePostcodeTextPostcode associated with this service
contractEndDateContract End DateDateDate when the contract for this service ends
provisionStatusProvision StatusNumberInternal provisioning status for this service
providerProviderPreset ValueProvider/carrier used for this service
providerReferenceProvider ReferenceTextReference used by the provider for this service
providerServiceTypeProvider Service TypeTextProvider-specific service type or product code
providerSubAccountProvider Sub-accountTextProvider sub-account reference, if applicable
fixedFeeTariffDefault Fixed Fee TariffPreset ValueDefault fixed fee tariff to use for features attached to this service
idService IDTextThe unique identifier for this service