Event
call.completed
Sent when an existing call’s status is updated to Completed (for example, from Processing or Queued). This follows the call change stream on status updates; a call inserted already as Completed does not trigger this webhook from that path. Delivered inside the standard webhook envelope; the fields below are the inner payload object. Emission is gated by server configuration; if the outbound emitter is disabled, no webhook is sent.
Payload fields
These fields are on the innerpayload object (inside the standard envelope).
| Field | Required | Description |
|---|---|---|
callId | Yes | Internal call id. |
phoneNumber | Yes | Dialed or caller number; Empty if non-telephonic call. |
fileNumber | No | The filenumber on the Account, either provided by submission or generated if no external id provided. |
status | Yes | Call status; for this event, always Completed (same casing as stored on the call record). |
duration | Yes | Call length in milliseconds (durationMs on the call); 0 if not set. |
outcomes | Yes | Object of outcome flags (see below). Always present; may be {} if nothing was detected. |
summary | Yes | Call note or summary. May be an empty string. |
recordingUrl | No | The recording of the call. |
createdAt | Yes | Timestamp from the call record. ISO-8601 |
endedAt | Yes | Timestamp when the webhook payload was built. ISO-8601 |
Outcomes
Every property inoutcomes is optional: only keys with values from call analysis (or label fallbacks) are included. Before delivery, the webhook removes any outcome keys that are not approved for external consumers; those keys never appear in the payload. The tables below list possible keys that may be sent after that filtering, grouped for readability.
Collection
| Field | Required | Type | Definition |
|---|---|---|---|
refuseToPay | No | boolean | Refused to pay. |
dispute | No | boolean | Debt disputed on the call. |
engaged_negotiations | No | boolean | Consumer engaged in payment negotiation (e.g. adjusted amounts or explored options). |
acknowledgeDebt | No | boolean | Consumer acknowledged the debt. |
payDate | No | boolean | Pay frequency or pay date was discussed. |
sentSms | No | boolean | Follow-up SMS was sent. |
useLenderAgain | No | boolean | Whether the consumer would use the lender again (true / false); omitted when not determined. |
Language
| Field | Required | Type | Definition |
|---|---|---|---|
spanishCall | No | boolean | Call handled in Spanish. |
Contact
| Field | Required | Type | Definition |
|---|---|---|---|
confirmedName | No | boolean | Name was confirmed. |
deceased | No | boolean | Subject indicated as deceased. |
wantedToTalkHuman | No | boolean | Asked for a human agent. |
statusTransfer | No | boolean | Call transferred due to status (e.g. to another queue or agent). |
wasTheRightNumber | No | boolean | Reached the intended number. |
wasTheRightParty | No | boolean | Reached the correct party or debtor. |
wasWrongNumber | No | boolean | Wrong number. |
wasWrongParty | No | boolean | Wrong person. |
Compliance
| Field | Required | Type | Definition |
|---|---|---|---|
ceaseAndDesist | No | boolean | Cease-communication request. |
complaintAboutCollector | No | boolean | Complaint about the collector. |
doNotCall | No | boolean | Do-not-call request. |
fraud | No | boolean | Fraud indicated or suspected. |
lawSuitRisk | No | boolean | Lawsuit or legal risk surfaced. |
legalAction | No | boolean | Legal action mentioned or threatened. |
Preference
| Field | Required | Type | Definition |
|---|---|---|---|
callbackConsent | No | boolean | Explicit consent to future callbacks. |
emailOnlyPreference | No | boolean | Email-only contact preference. |
wantsCallBack | No | boolean | Wants a callback. |
Payments & Plans
| Field | Required | Type | Definition |
|---|---|---|---|
cardDetailsProvided | No | boolean | Card details were given on the call. |
paymentFailed | No | boolean | Payment attempt failed. |
paymentMade | No | boolean | Payment succeeded. |
plan_accepted | No | boolean | Payment plan accepted. |
plan_type | No | string | Plan kind: pay_in_full, settle_today, settlement_plan, regular_plan, tailored_plan. |
promiseToPayDays | No | number | Days until promised payment. |
Employment
| Field | Required | Type | Definition |
|---|---|---|---|
isEmployed | No | boolean | Employed. |
isUnemployed | No | boolean | Unemployed. |
multipleJobs | No | boolean | Multiple jobs indicated. |
Call progress
| Field | Required | Type | Definition |
|---|---|---|---|
attemptedVerification | No | boolean | Identity verification was attempted. |
debtMentioned | No | boolean | Debt was mentioned in the flow. |
mirandaRead | No | boolean | Miranda (or equivalent) disclosure read. |
offeredPaymentOptions | No | boolean | Payment options were offered. |
Legal
| Field | Required | Type | Definition |
|---|---|---|---|
bankruptcy | No | boolean | Bankruptcy mentioned or claimed. |
bankruptcyAttorneyName | No | string | Bankruptcy attorney name, if provided. |
bankruptcyAttorneyPhone | No | string | Bankruptcy attorney phone, if provided. |
bankruptcyCaseNumber | No | string | Bankruptcy case number, if provided. |
bankruptcyChapter | No | string | Bankruptcy chapter, if provided. |
bankruptcyFilingDate | No | string | Bankruptcy filing date, if provided. |
claimsPaidDirect | No | boolean | Claims payment was made directly to the creditor. |
coDebtorRefused | No | boolean | Co-debtor refused to pay or engage. |
debtConsolidation | No | boolean | Debt consolidation in play or discussed. |
debtConsolidationCompany | No | string | Named debt consolidation company. |
deployed | No | boolean | Military deployment indicated. |
hospitalized | No | boolean | Hospitalization indicated. |
jail | No | boolean | Incarceration indicated. |
Examples
The HTTPPOST body is the standard envelope: top-level event, eventCategory, organization, optional agent, timestamp, idempotencyKey, and nested payload. The payload object for call.completed is what the tables above describe. Below, inner payload means that nested payload only; full body shows the complete JSON your endpoint receives.
Inner payload — minimal
Nothing detected in analysis beyond completion:outcomes is an empty object. fileNumber is omitted when not available. phoneNumber may be an empty string.
Inner payload — payment and plan
Typical successful contact with payment taken and a plan type discussed (not every boolean needs to be present; sparse keys only).Inner payload — compliance and preferences
Caller requests regulatory-style limits and states contact preferences.Inner payload — wrong party / reachability
Analysis indicates the wrong person or number; collection outcomes may still be sparse.Inner payload — bankruptcy strings
When bankruptcy details are captured, related string fields may appear together withbankruptcy: true.
Inner payload — payment failed on call
A payment was attempted but did not succeed;paymentMade may be false or omitted.
Full HTTP body (envelope + inner payload)
What your server receives forcall.completed when an agent is associated with the call. If the webhook is organization-only, agent is omitted. idempotencyKey is stable per organization and callId for this event.