ADT
Run the customer's ADT order lifecycle: pre-qualify, build the order, submit it, and
track settlement. All actions run against POST /customers/{id}/... and require the
customer's monitoring company to be an enabled ADT integration; the customer's identity,
address, and billing data always comes from the customer record.
Gated by the ADT permission at the customer's location — all operations, matching
SecurityTrax. The pre-check pair (adt_precheck, adt_precheck_result) also works for
leads — the only ADT actions that do.
Call order
adt_precheck— run the address/credit pre-qualification (works on leads too). If the response says it ran in the background, poll step 2 until results appear.adt_precheck_result— confirm the pre-check passed; its order id seeds the first save.adt_optionsandadt_order_data— fetch the catalogs and the prefilled order values.adt_save_order— create the order (repeat to update it before submission).adt_submit_order— submit for confirmation. Settlement is asynchronous (a background task at ADT's pace).- Poll
adt_order_statusuntilorder_confirmedis true — that read is also what stores the monitoring account number, serial, and receiver on the customer.
Order-state semantics
- Create-vs-update resolves server-side: the first save consumes the pre-check's order id; once an order exists, the same action updates it.
- A settled (confirmed) account is not blocked from
adt_save_order— ADT is skipped and the response says changes were not synced, matching every other SecurityTrax surface. adt_submit_orderrefuses when no order exists (409 no_order), when the account already settled (409 already_confirmed), and while a submission is mid-flight (409 submission_in_progress).- Order cancellability is ADT's decision —
adt_cancel_orderrefusals surface as the422partner message.
ADT wave 2 (envelopes/e-contracts, linked orders, pre-cut-in / cleanup / rate adjustment, funding-blocker and info reads) remains on the v1 API and SecurityTrax for now.
Action reference
Run ADT's pre-check (address/credit pre-qualification) for this customer or lead
POST /{profile}/user/v4/customers/{id}/adt_precheck
No request body.
Read this customer's ADT pre-check outcome (optionally refreshing from ADT)
POST /{profile}/user/v4/customers/{id}/adt_precheck_result
| Field | Required | Type | Description |
|---|---|---|---|
refresh |
No | boolean | Re-query ADT even if a cached result exists before reading. |
Read the prefill/current values for this customer's ADT order
POST /{profile}/user/v4/customers/{id}/adt_order_data
No request body.
Create or update this customer's ADT order
POST /{profile}/user/v4/customers/{id}/adt_save_order
| Field | Required | Type | Description |
|---|---|---|---|
equipment_panel |
Yes | string | Equipment panel id (discover with adt_options). |
install_type |
Yes | string | Install type id (adt_options). |
radio_type |
No | string | Radio type id (adt_options). |
radio_primary |
No | boolean | Radio is the primary communication path. |
lead_source |
No | string | ADT lead source id (adt_options). |
estimated_completion_date |
No | string | Estimated completion date. |
add_on_services |
No | array | Entries of {id, value_description, selected} (catalog via adt_options). |
e_contract_bypass |
No | boolean | Bypass the ADT e-contract. |
sop_deposit_amount |
No | string | SOP deposit amount. |
house_account_reason |
No | string | House-account reason id (adt_options). |
house_account_suppress_qsp |
No | boolean | Suppress QSP on a house account. |
tracking_pin |
No | string | Tracking PIN. |
credit_holder_authentication_number |
No | string | Credit-holder authentication number. |
overwrite_credit_holder_name |
No | boolean | Overwrite the credit-holder name on an existing order. |
system_move |
No | boolean | This order is a system move. |
system_move_order_id |
No | string | The originating order for a system move. |
affinity_member_number |
No | string | Affinity member number. |
secondary_site_number |
No | string | Secondary site number. |
auto_draft_equipment_cost |
No | boolean | Auto-draft the equipment cost. |
credit_holder_physical_address_data |
No | object | Commercial only: {chpa_address_line_1, chpa_address_line_2, chpa_city, chpa_state, chpa_zip_five_or_nine}. |
ny |
No | object | NY-group states only: {estimated_completion_date, deposit_account, down_payment, amount_due}. |
Submit (confirm) this customer's ADT order — settles asynchronously
POST /{profile}/user/v4/customers/{id}/adt_submit_order
No request body.
Read this customer's ADT order status (settles a submitted order locally)
POST /{profile}/user/v4/customers/{id}/adt_order_status
No request body.
Cancel this customer's ADT order
POST /{profile}/user/v4/customers/{id}/adt_cancel_order
No request body.
Discover the ADT order option catalogs for this customer
POST /{profile}/user/v4/customers/{id}/adt_options
No request body.
Failure semantics
Pre-flight problems are 409 (wrong/missing provider or monitoring company, lead
where not permitted, already/not provisioned, no order) or 402 (integration
disabled); partner rejections are 422 carrying the partner's message; an
unreachable partner is 502 and never persists anything.
Related
- Customers — the resource these actions operate on.
- Requests and Responses — envelope, errors, pagination, and rate limits.