---
title: "Recruitment - Confirm an agentic file-intake (editable)"
method: POST
path: "/recruitment/intake/{PublicId}/confirm"
tags: ["Exato - Recruitment"]
---

# Recruitment - Confirm an agentic file-intake (editable)

`POST /recruitment/intake/{PublicId}/confirm`

## Request

- Base URL: `https://api.exato.digital`
- URL: `https://api.exato.digital/recruitment/intake/{PublicId}/confirm`
- Auth: API key in header `token`

Recruitment - Confirm an agentic file-intake (editable)

## Path parameters

- `public_id` string, required

## Query parameters

- `test_mode` boolean
- `lightweight` boolean

## Request body `application/x-www-form-urlencoded`

- object
  - `confirm_token` string, required: The confirm token returned by analyze (anti-drift).
  - `plan_version` integer, required: The plan_version the user is confirming (anti-drift).
  - `reviewed_candidate_count` integer: Candidate count shown when the recruiter approved the plan. Omit it (or send 0) and the anti-drift check is skipped: a caller that states no count is not claiming anything.
  - `reviewed_pair_count` integer: Candidate-vacancy pair count shown when the recruiter approved the plan. Optional, same rule as reviewed_candidate_count.
  - `reclassifications` IntakeReclassification[]: Optional file-role overrides applied before re-deriving the plan.
    - `file_public_id` string
    - `role` string
  - `excluded_candidate_file_public_ids` string[]: Optional candidate file public_ids to drop from scoring.
  - `unmerged_candidate_file_public_ids` string[]: Optional candidate file public_ids that must remain separate people.
  - `cross_product_accept` boolean: Accept the cross-product upsell (AwaitingPairingChoice; requires pricing).
  - `field_overrides` IntakeFieldOverride[]: Optional recruiter corrections to the fields the analyze brain pulled per file (title / candidate_name / email / cpf / linkedin_url for any file, plus description — the edited JD body — for vacancy files). Applied at materialization — the override wins over the extracted value.
    - `candidate_name` string
    - `cpf` string
    - `description` string
    - `email` string
    - `file_public_id` string
    - `linkedin_url` string
    - `title` string
  - `include_background_check` boolean: When true, score this intake's candidates with the combined background-check + score report (antecedentes criminais + CandidateScore) instead of the plain score. Requires the organization to be enabled for background checks; rejected otherwise.
  - `bgcheck_product` string: Which background-check report variant to run when include_background_check is true: standard (default), essential, cnh or credit. Only meaningful with include_background_check; ignored otherwise. An unknown value is rejected.
  - `resolve_cpf_for_bgcheck` boolean: When true, for candidates with no CPF but a resolution anchor (phone/name/email), resolve the CPF (ExatoCadastroPessoaFisica + Zion) and run the background check when the match is unique + high-confidence. Requires the organization to be enabled for CPF resolution; rejected otherwise.

## Response `200`

Success

- ConfirmIntakeResponse: ConfirmIntakeResponse
  - `api_result_type` string
  - `message` string
  - `result_type_code` integer
  - `result` IntakeView: IntakeView
    - `billing` IntakeBillingView: IntakeBillingView
      - `balance_brl` number, double
      - `balance_credits` integer
      - `balance_unit` string
      - `billable_reads` integer
      - `billing_mode` string
      - `is_prepaid` boolean
      - `note` string
      - `note_per_pair` string
      - `note_reads` string
      - `per_pair_billing` boolean
      - `per_pair_count` integer
      - `period_key` string
      - `sufficient` boolean
      - `vacancies_to_charge` integer
      - `vacancy_unit_price_brl` number, double
      - `vacancy_unit_price_credits` integer
    - `candidate_count` integer
    - `confirm_token` string
    - `cpf_resolution_available` boolean
    - `duplicates_collapsed` integer
    - `files` IntakeFileView[]
      - `byte_size` integer
      - `candidate_name` string
      - `cpf` string
      - `cpf_resolvable` boolean
      - `cpf_source` string
      - `cpf_valid` boolean
      - `description_unreadable` boolean
      - `detected_format` string
      - `email` string
      - `extracted_candidate_name` string
      - `extracted_cpf` string
      - `extracted_email` string
      - `extracted_linkedin_url` string
      - `file_has_scoreable_material` boolean
      - `file_name` string
      - `file_role` string
      - `hard_merge_group` string
      - `has_extracted_text` boolean
      - `has_scoreable_material` boolean
      - `issues` string[]
      - `last_error` string
      - `linkedin_url` string
      - `merge_group` string
      - `merge_suggestion` boolean
      - `merge_suggestion_by` string
      - `merged_by` string
      - `merged_from` IntakeMergedFileView[]
        - `file_name` string
        - `file_public_id` string
        - `matched_on` string
      - `phone` string
      - `planned_pair_count` integer
      - `public_id` string
      - `role_confidence` number, double
      - `title` string
      - `title_model` string
      - `title_source` string
    - `pairing_mode` string
    - `plan_version` integer
    - `planned_pairs` integer
    - `public_id` string
    - `rejected_files` IntakeRejectedFileView[]
      - `file_name` string
      - `message` string
      - `reason` string
    - `source_kind` string
    - `source_tree` string
    - `status` string
    - `target_vacancies` TargetVacancyView[]
      - `public_id` string
      - `title` string
    - `total_files` integer
    - `vacancy_count` integer
    - `warnings` string[]

---

[API](https://skmtc.dev/exato/apis/backend-apis.md) - [All operations](https://skmtc.dev/exato/apis/backend-apis/llms.txt) - [OpenAPI document](https://skmtc.dev/exato/apis/backend-apis/revisions/c25e99bad8a4?raw)
