Set your outcome for an applicant at one location
Records your own decision about an applicant at one location:
Only these final outcomes can be set. Screening and review steps are run by CONFIRM and can’t be set from outside.
One location at a time. Name the location with the location_ref
query parameter. The applicant’s applications at other locations are
not touched. There is no DELETE: to take an applicant off one
location, set withdrawn (their choice) or not_hired (the office’s
choice).
No messages to the applicant. CONFIRM sends the applicant nothing about an outcome you set; you made the decision and own that conversation.
You get your own change back as a webhook. When the outcome changes
the applicant’s status at that location, CONFIRM fires
candidate.status_changed (rejected or hired) to the applicant’s
callback URL, like any other status change. Expect it and deduplicate
it against the change you just made.
Idempotent. Setting the outcome the application already has returns
200 with changed: false and fires nothing. A different outcome
replaces the earlier one. Switching between withdrawn and not_hired
updates the recorded reason and returns changed: true, but the status
stays rejected, so no new candidate.status_changed fires.
Do-not-contact is final. An applicant CONFIRM has marked
do-not-contact can’t take an outcome: 409 outcome_conflict.
Authentication
Partner API key sent as Authorization: Bearer cfk_.... Keys are partner-level — one key reaches every registry linked to your partner account and nothing else. CONFIRM issues and revokes them; a key is shown exactly once at creation because only its hash is stored, and revocation takes effect on the next request. Develop against the sandbox base URL with a sandbox key, where telephony is restricted to an allowlist you provide.
Path parameters
Your applicant identifier (the external_ref you sent to POST /candidates).
Query parameters
The location the outcome applies to (its external_ref).
Request
Optional free text, kept with the change in CONFIRM’s history for this application. For withdrawn and not_hired it is recorded as the reason the applicant is no longer progressing.
Response headers
The ID of this request. On an error it equals request_id in the body. If you sent an X-Request-Id, it is your value, returned unchanged. Log it, and quote it when contacting CONFIRM support.
Response
The outcome is recorded (or was already in place: changed is false).
The application at location_ref.

