Skip to main content

Manage Outbounds

Use these endpoints when you need to inspect or control outbound verification attempts after an order has already been created. All six routes are scoped to a search within an order.
For backwards compatibility, glue and other integrators can still call POST /background-check/v1/searches/cancel-activities with searchId or externalSearchId in the body. Prefer the order-scoped cancel-outbounds route for new integrations. This endpoint will be deprecated once glue migration is complete.
Pause and resume operations require the search to be IN_PROGRESS. You can list outbounds for a search in any status.

Shared Path Parameters

string
required
Verification order ID (UUID).
string
required
Search ID (UUID) within the order.

Get Outbounds

Returns current actionable outbound work for the search.
Returns current actionable outbounds only (those in SCHEDULED, PENDING, or PAUSED status). Sent, delivered, failed, and cancelled records are excluded. Use the returned id as the outboundId when pausing or resuming a single outbound.

Example Request

Response

boolean
string
string | null
array
Current actionable outbound activities and contact attempts for the search.

Outbound Item Fields

string
Outbound identifier. Activity records use their UUID. Contact attempts without a matching activity use attempt-<contactAttemptUuid>.
string | null
Contact associated with the outbound, when available.
string | null
Contact name associated with the outbound, when available.
string | null
Entity being contacted.
string
Outbound channel, such as EMAIL, FAX, VOICE, or a system method.
string
Destination for the outbound, such as an email address or fax number.
string | null
Human-readable activity description.
object
Additional status, scheduling, cancellation, or system metadata.
string
Activity or attempt creation timestamp.
string | null
Scheduled outbound time when the outbound is pending, scheduled, or paused.
string | null
Send timestamp when the outbound has been sent.
string
Current actionable status: SCHEDULED, PENDING, or PAUSED.
number | null
Attempt number when available.
Attempt sequence across all outbound attempts for the search.
number | null
Attempt sequence for this contact.
number | null
Attempt sequence for this channel.
boolean
Whether this outbound is cancelled.
string
Cancellation reason when available.
string
Failure reason when available.

Example Response

Cancel Outbounds

Permanently cancels pending outbound work without cancelling the search itself.

Request Body

string
Optional contact destination. When provided, only pending outbound matching this normalized destination is cancelled.

Example Request

Behavior

Cancels all pending outbound work — scheduled contact attempts and matching unsent outbound records. When contactDestination is provided, cancellation is scoped to pending outbound matching that normalized destination.
Cancellation is permanent. Resume operations do not recreate cancelled outbound. Cancelling while paused clears pause state and marks paused attempts as CANCELLED.

Pause Outbounds

Pauses all pending outbound work for the search.

Request Body

string
Optional pause reason stored in outbound control metadata and webhook payloads.

Example Request

Behavior

pause-outbounds pauses the pending outbound work that exists at the moment of the call. It pauses:
  • SCHEDULED contact attempts
  • TRIGGERED_BY_SCHEDULER contact attempts that have been claimed but not completed
  • pending delayed or queued outbound jobs
  • matching unsent outbound activity records, when a corresponding activity can be identified
Already sent, delivered, failed, cancelled, or superseded activity history is not changed. While the search-level outbound status is PAUSED, automated outbound stays on hold: the workflow does not send and inbound replies do not schedule the next contact attempt. Outbound you schedule explicitly after the pause — through the scheduling endpoints or the Driver’s Seat — is created live and sends on its own schedule. Call pause-outbounds again to capture that newer work; each call takes a fresh snapshot of whatever is pending at that time. Calling pause-outbounds when the search is already paused and nothing new is pending is idempotent and returns a successful response with previousOutboundStatus set to PAUSED.
Repeating a pause when the search is already paused and no new outbound has been scheduled since succeeds without changing state or emitting another webhook.

Pause Outbound

Pauses one pending outbound while leaving the search-level outbound control status ACTIVE.

Request Body

string
required
Outbound activity ID, contact attempt ID, or attempt- prefixed contact attempt ID. Use GET .../outbounds to discover this value.
string
Optional pause reason stored in outbound control metadata and webhook payloads.

Example Request

Behavior

pause-outbound affects only the matching pending outbound. It does not change the search-level outbound control status, so other pending outbound attempts for the same search can continue. This works while the search is globally paused too: an outbound that is still live is paused on its own, and one that the search-level pause already holds is reported as already paused with currentOutboundStatus: PAUSED. An unknown outboundId is rejected. The endpoint accepts an activity UUID, a contact attempt UUID, or attempt-<contactAttemptUuid>. Already sent, delivered, failed, cancelled, or superseded history is not changed.

Resume Outbounds

Restores paused outbound work to an active scheduled state.

Request Body

string
Optional resume reason stored in outbound control metadata and webhook payloads.

Example Request

Behavior

resume-outbounds restores paused outbound work to an active scheduled state. It resumes:
  • attempts paused by pause-outbounds
  • attempts paused individually via the single-outbound endpoint
  • delayed outbound jobs captured in the pause snapshot
  • matching activity metadata, with the pause marker removed and a resume marker added
Attempts whose original scheduled time is already in the past are restored with an immediate scheduled time so the scheduler can process them on the next run. Permanently cancelled or superseded attempts are not recreated. resume-outbounds also returns the search-level status to ACTIVE, which re-enables automated outbound. Calling resume-outbounds when there is no paused outbound state is idempotent and returns a successful response with previousOutboundStatus set to ACTIVE.
Repeating a resume when no paused state exists succeeds without changing state or emitting another webhook. Permanently cancelled and superseded attempts are never recreated.

Resume Outbound

Restores one paused outbound identified by outboundId.

Request Body

string
required
Outbound activity ID, contact attempt ID, or attempt- prefixed contact attempt ID. Use GET .../outbounds to discover this value.
string
Optional resume reason stored in outbound control metadata and webhook payloads.

Example Request

Behavior

resume-outbound restores only the paused outbound tracked for the supplied outboundId, whether it was paused individually or by pause-outbounds. If the original scheduled time is already in the past, the attempt is restored with an immediate scheduled time so the scheduler can process it on the next run. If this was the last paused outbound on a globally paused search, the search-level hold is released as well: the response reports clearedSearchPause: true and currentOutboundStatus: ACTIVE, any outbound jobs still held by the pause are re-enqueued, and an OUTBOUNDS_RESUMED webhook is emitted alongside OUTBOUND_RESUMED. A search never stays paused with nothing paused under it. Cancelling the last paused outbound releases the hold the same way. Calling resume-outbound when the supplied outbound is not paused is idempotent and returns a successful response with previousOutboundStatus set to ACTIVE.
Repeating this request for an outbound that is already active succeeds without changing state or emitting another webhook.

Mutation Response

boolean
Whether the request was processed.
string
Internal search UUID.
string
External search identifier when present.
string
Single-outbound response only. The outbound identifier supplied in the request.
string
PAUSE_OUTBOUND or RESUME_OUTBOUND.
string
Previous outbound control status: ACTIVE or PAUSED.
string
Current outbound control status: ACTIVE or PAUSED. A single-outbound pause does not change it. A single-outbound resume or cancel leaves it PAUSED while other outbounds are still held, and reports ACTIVE once it released the last one.
boolean
Single-outbound resume and cancel responses only. true when this request released the last paused outbound and returned the search-level status to ACTIVE.
number
Cancel response only. Number of pending outbound jobs plus contact attempts cancelled.
number
Cancel response only. Number of outbound activity records marked as cancelled.
number
Pause response only. Number of queue jobs plus contact attempts paused.
number
Resume response only. Number of queue jobs plus contact attempts restored.
number
Resume response only. Number of outbound activity records marked as resumed.
array
Search-level pause/resume response. Outbound attempts paused or resumed by this request. Each item includes id, method, contactId, attemptDate, and destination.
string
Human-readable summary of the action taken.

Search-Level Pause/Resume Response Shape

Webhook Behavior

Only successful pause, resume, and cancel operations that change outbound state emit a verification.notification webhook. Listing outbounds does not emit an outbound-control notification, and idempotent pause, resume, or cancel requests do not emit a duplicate event.
Resuming or cancelling the last paused outbound emits OUTBOUNDS_RESUMED in addition to the single-outbound event, because the search-level hold is released by that request. The webhook includes an outboundControl object with:
  • action: PAUSE_OUTBOUND, RESUME_OUTBOUND, or CANCEL_OUTBOUND
  • outboundId: the requested outbound ID for single-outbound operations
  • reason: the optional reason supplied in the request
  • count: number of contact-backed outbound items paused, resumed, or cancelled (matches outbounds for search-level operations; excludes scheduler timer rows)
  • activitiesMarked: number of activity records marked as paused, resumed, or cancelled
  • trigger: api
  • outbounds: affected outbound summaries for search-level operations
GET .../outbounds does not emit outbound-control webhook notifications. See Webhook Events for the complete payload definition.

Additional Behavior

  • contactDestination scoping is supported for cancel operations. Pause and resume always apply to all pending outbound (or a single outbound when using the single-outbound endpoints).
  • A search-level pause holds the outbound that was pending when you called it and blocks automated outbound. Outbound you schedule after that call is live; pause again to hold it too.
  • If a replacement outbound supersedes a paused outbound, the old attempt is marked as superseded and is not recreated on resume.
  • Use Manage Search Contacts to inspect or update the contact plan.