FieldRoutes API docs logoFieldRoutes API

Customers & Sales

subscription

10 endpoints. Start at search to collect IDs, then resolve them through get.

Read operations

get/subscription/getTry it

get subscription

Get Bulk data for subscription. Accepts an array of subscriptionIDs. Returns a max of 1000 records.

Parameters

subscriptionIDsarray

No description in the upstream reference.

includeCancellationReasoninteger

Send as 1 to retrieve an array of cancellationNotes associated with the subscription.

Returns

subscriptionIDinteger

Unique ID

customerIDinteger

Customer ID which this subscription belongs to

billToAccountIDinteger

Billing Account which this subscription belongs to

officeIDinteger

Office ID which this subscription belongs to

dateAddedstring

Date this subscription was added / created. Sold date.

contractAddedstring

Date the last contract was added / created.

activeinteger

0: frozen, 1: active and being placed in the job pool.

activeTextinteger

Friendly text version of active

Request

/subscription/get
curl -X POST 'https://{subdomain}.pestroutes.com/api/subscription/get' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Accept: application/json' \
  --data-urlencode 'subscriptionIDs=value' \
  --data-urlencode 'includeCancellationReason=1' \
  --data-urlencode 'authenticationKey=<your-key>' \
  --data-urlencode 'authenticationToken=<your-token>'

Response

success:true
]
count:2
}
by id/subscription/{id}Try it

Fetch by id subscription

Get subscription data for single ID -- please provide a specific record ID in the URL structure.

Parameters

includeCancellationReasoninteger

Send as 1 to retrieve an array of cancellationNotes associated with the subscription.

Returns

subscriptionIDinteger

Unique ID

customerIDinteger

Customer ID which this subscription belongs to

billToAccountIDinteger

Billing Account which this subscription belongs to

officeIDinteger

Office ID which this subscription belongs to

dateAddedstring

Date this subscription was added / created. Sold date.

contractAddedstring

Date the last contract was added / created.

activeinteger

0: frozen, 1: active and being placed in the job pool.

activeTextinteger

Friendly text version of active

Request

/subscription/{id}
curl -X POST 'https://{subdomain}.pestroutes.com/api/subscription/{id}' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Accept: application/json' \
  --data-urlencode 'includeCancellationReason=1' \
  --data-urlencode 'authenticationKey=<your-key>' \
  --data-urlencode 'authenticationToken=<your-token>'

Response

success:true
subscriptionID:5259
customerID:2124
billToAccountID:7833
officeID:2602
dateAdded:"2026-08-10 00:00:00"
contractAdded:"sample-contractAdded"
active:1
activeText:0
initialQuote:133.5
initialDiscount:18.5
initialServiceTotal:64.5
yifDiscount:140.5
recurringCharge:14.5
contractValue:172.5
billingFrequency:0
frequency:2
followupService:0
agreementLength:93.5
nextService:"sample-nextService"
lastCompleted:"sample-lastCompleted"
serviceID:1795
serviceType:"sample-serviceType"
soldBy:2
soldBy2:1
soldBy3:2
preferredTech:2
initialAppointmentID:1385
initialStatus:1
initialStatusText:"Active"
dateCancelled:"2026-05-27 00:00:00"
dateUpdated:"2026-04-07 00:00:00"
cxlNotes:"Sample value returned by the mock engine."
subscriptionLink:"sample-subscriptionLink"
appointmentIDs:2
completedAppointmentIDs:1
addOns:"sample-addOns"
leadID:5098
leadDateAdded:"2026-08-14 00:00:00"
leadUpdated:"2026-10-26 00:00:00"
leadAddedBy:2
leadSourceID:1413
leadSource:"sample-leadSource"
leadStatus:2
leadStageID:2608
leadStage:"sample-leadStage"
leadAssignedTo:0
leadDateAssigned:"2026-03-05 00:00:00"
leadValue:66.5
leadDateClosed:"2026-04-12 00:00:00"
leadLostReason:"sample-leadLostReason"
sourceID:1129
source:"sample-source"
annualRecurringServices:2
unitIDs:2
regionID:4546
initialInvoice:"sample-initialInvoice"
initialBillingDate:"2026-07-24 00:00:00"
renewalFrequency:0
renewalDate:"2026-03-15 00:00:00"
customDate:"2026-09-08 00:00:00"
sentriconConnected:2
sentriconSiteID:"sample-sentriconSiteID"
seasonalStart:"sample-seasonalStart"
seasonalEnd:"sample-seasonalEnd"
nextBillingDate:"2026-05-26 00:00:00"
maxMonthlyCharge:50.5
expirationDate:"2026-01-25 00:00:00"
lastAppointment:"sample-lastAppointment"
duration:"sample-duration"
preferredDays:1
preferredStart:"sample-preferredStart"
preferredEnd:"sample-preferredEnd"
}
}
getInitialAddOns/subscription/getInitialAddOnsTry it

getInitialAddOns subscription

Parameters

No parameters beyond authentication.

Returns

addOnIDinteger

Primary Key ticketItems.itemID

subscriptionIDinteger

Foreign key to subscriptions table.

productIDinteger

Foreign key to products table.

amountdouble

Amount to charge for this addon.

descriptionstring

Friendly description of the product.

quantityinteger

The number of items.

taxableinteger

1- tax 0 - no tax

creditTointeger

Employee who sold the add-on

Request

/subscription/getInitialAddOns
curl -X POST 'https://{subdomain}.pestroutes.com/api/subscription/getInitialAddOns' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Accept: application/json' \
  --data-urlencode 'authenticationKey=<your-key>' \
  --data-urlencode 'authenticationToken=<your-token>'

Response

success:true
addOnID:6792
subscriptionID:5253
productID:1815
amount:15.5
description:"Sample value returned by the mock engine."
quantity:2
taxable:1
creditTo:1
}

Write operations

create/subscription/createTry it

create subscription

create a subscription

Parameters

subscriptionLinkstring

Subscription Link for import serviceID - integer - required The service type ID for the regular recurring services customerID - integer - required Customer ID which this subscription belongs to

billToAccountIDinteger

Billing Account which this subscription belongs to

activeinteger

0: frozen, 1: active and being placed in the job pool.

billingFrequencyinteger

Frequency that an invoice is generated for this service. -1/0

frequencyinteger

The frequency that the services get scheduled. -1 represents One-Time, 0 represents 'as needed'. Greater than 0 represents the frequency in days. If it is divisible by 30, it is converted to months -- so 90 would represent 3 months and not necessarily 90 days.

followupDelayinteger

How many days after the initial service to schedule the first recurring service. Set as -1 to use frequency

agreementLengthinteger

Agreement Length

preferredTechinteger

The employee ID of the preferred tech - 0 for no preference

Returns

Returns a success acknowledgement.

Request

/subscription/create
curl -X POST 'https://{subdomain}.pestroutes.com/api/subscription/create' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Accept: application/json' \
  --data-urlencode 'subscriptionLink=value' \
  --data-urlencode 'billToAccountID=1' \
  --data-urlencode 'authenticationKey=<your-key>' \
  --data-urlencode 'authenticationToken=<your-token>'

Response

success:true
subscriptionID:4821
}
update/subscription/updateTry it

update subscription

Update subscription details

Parameters

subscriptionLinkstring

Subscription Link for import

serviceIDinteger

The service type ID for the regular recurring services

customerIDinteger

Customer ID which this subscription belongs to

billToAccountIDinteger

Billing Account which this subscription belongs to

activeinteger

0: frozen, 1: active and being placed in the job pool.

billingFrequencyinteger

Frequency that an invoice is generated for this service. -1/0

frequencyinteger

The frequency that the services get scheduled. -1 represents One-Time, 0 represents 'as needed'. Greater than 0 represents the frequency in days. If it is divisible by 30, it is converted to months -- so 90 would represent 3 months and not necessarily 90 days.

followupDelayinteger

How many days after the initial service to schedule the first recurring service. Set as -1 to use frequency

Returns

Returns a success acknowledgement.

Request

/subscription/update
curl -X POST 'https://{subdomain}.pestroutes.com/api/subscription/update' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Accept: application/json' \
  --data-urlencode 'subscriptionLink=value' \
  --data-urlencode 'serviceID=1' \
  --data-urlencode 'authenticationKey=<your-key>' \
  --data-urlencode 'authenticationToken=<your-token>'

Response

success:true
subscriptionID:4821
}
createInitialAddOn/subscription/createInitialAddOnTry it

createInitialAddOn subscription

Parameters

serviceIDinteger

Foreign key to serviceTypes table. amount - number - required Amount to charge for this addon.

quantityinteger

The number of items. Defaults to 1.

taxableinteger

1- tax 0 - no tax; Defaults to the value specified for serviceTaxable on initial ticket.

creditTointeger

The employee who will receive credit for selling the add-on for commissions. Defaults to creditTo on Service Subscription.

descriptionstring

Customer facing text for item.

Returns

Returns a success acknowledgement.

Request

/subscription/createInitialAddOn
curl -X POST 'https://{subdomain}.pestroutes.com/api/subscription/createInitialAddOn' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Accept: application/json' \
  --data-urlencode 'serviceID=1' \
  --data-urlencode 'quantity=1' \
  --data-urlencode 'authenticationKey=<your-key>' \
  --data-urlencode 'authenticationToken=<your-token>'

Response

success:true
subscriptionID:4821
}
setInitialAddOns/subscription/setInitialAddOnsTry it

setInitialAddOns subscription

Parameters

addonsarray

Addon Entity - see createInitialAddOn params

Returns

Returns a success acknowledgement.

Request

/subscription/setInitialAddOns
curl -X POST 'https://{subdomain}.pestroutes.com/api/subscription/setInitialAddOns' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Accept: application/json' \
  --data-urlencode 'addons=value' \
  --data-urlencode 'authenticationKey=<your-key>' \
  --data-urlencode 'authenticationToken=<your-token>'

Response

success:true
subscriptionID:4821
}
updateInitialAddOn/subscription/updateInitialAddOnTry it

updateInitialAddOn subscription

Parameters

serviceIDinteger

Foreign key to serviceTypes table. amount - number - required Amount to charge for this addon.

quantityinteger

The number of items. Defaults to 1.

taxableinteger

1- tax 0 - no tax; Defaults to the value specified for serviceTaxable on initial ticket.

creditTointeger

The employee who will receive credit for selling the add-on for commissions. Defaults to creditTo on Service Subscription.

descriptionstring

Customer facing text for item. addOnID - integer - required Foreign key to ticketItems table. Retrieve via getInitialAddons(subscriptionID).

Returns

Returns a success acknowledgement.

Request

/subscription/updateInitialAddOn
curl -X POST 'https://{subdomain}.pestroutes.com/api/subscription/updateInitialAddOn' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Accept: application/json' \
  --data-urlencode 'serviceID=1' \
  --data-urlencode 'quantity=1' \
  --data-urlencode 'authenticationKey=<your-key>' \
  --data-urlencode 'authenticationToken=<your-token>'

Response

success:true
subscriptionID:4821
}
updateLeadStage/subscription/updateLeadStageTry it

updateLeadStage subscription

Parameters

subscriptionLinkinteger

Alternative to subscriptionID. This is the "SubscriptionID" sent during an API insert through import/main.

stageIDinteger

Lead stage ID.

statusinteger

0 - Convert To Lead, 1 - Convert to subscription (lead won)

Returns

Returns a success acknowledgement.

Request

/subscription/updateLeadStage
curl -X POST 'https://{subdomain}.pestroutes.com/api/subscription/updateLeadStage' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Accept: application/json' \
  --data-urlencode 'subscriptionLink=1' \
  --data-urlencode 'stageID=1' \
  --data-urlencode 'authenticationKey=<your-key>' \
  --data-urlencode 'authenticationToken=<your-token>'

Response

success:true
subscriptionID:4821
}