BeneficiaryImportJobResponse
Response from `GET /v1/beneficiaries/imports/{id}`. Returns the full job with current status and per-bucket counters. Poll until `preview_ready` (to show the preview), `committed`/`completed` (to finalize the UI) or `failed`/`cancelled` (to end the flow).
Properties
| Field | Type | Description |
|---|---|---|
data | object | Main response payload. Shape varies by endpoint (object, array, or JSON:API envelope with `type`, `id`, `attributes`). |
type | string | JSON:API resource type (always `beneficiary_import`). |
id | string | Numeric job ID expressed as a string (JSON:API format). |
attributes | object | Import job fields. |
status | string | Job status: `pending` — uploaded, awaiting parsing; `parsing` — extracting rows; `preview_ready` — ready for user review; `committing` — persisting confirmed rows; `completed` — commit finished; `failed` — non-recoverable failure (see `error_code`); `cancelled` — cancelled by the user. |
file_format | string | Format of the uploaded file. Accepted: CSV, Excel (xls/xlsx), plain text, and PDF. That is, `csv`, `xls`, `xlsx`, `txt`, or `pdf`. |
parse_mode | string | Parse mode: `template` — fixed column format (downloadable from `/v1/beneficiaries/imports/template`); `free` — free-form, the system infers the structure. |
total_rows | integer | Total rows extracted from the file. Available once status is `preview_ready` or later. |
valid_count | integer | Error-free rows, ready for direct commit. |
correctable_count | integer | Rows with auto-corrections applied (e.g. auto-assigned alias). Persisted unless the user rejects them. |
fatal_count | integer | Rows with errors that cannot be auto-corrected. Not persisted and skipped during commit. |
duplicate_count | integer | Sum of `duplicate_account` and `duplicate_alias` rows. `duplicate_account` rows are skipped unless the account is archived (in which case it is reactivated); `duplicate_alias` rows are persisted with an alias suffix. |
committed_count | integer | Rows effectively persisted in the beneficiary list. Available once status is `completed`. |
skipped_count | integer | Rows not persisted (fatal or `duplicate_account` without possible reactivation). |
llm_invoked | boolean | `true` if the AI engine was used during parsing to resolve ambiguous rows in free-form mode. |
error_code | string | null | Stable error code when `status=failed` (e.g. `file_corrupt`, `plan_cap_exceeded`). `null` in non-failed states. |
error_summary | string | null | Human-readable diagnostic message when `status=failed`. Card numbers (PANs) are masked in this field. |
created_at | string (date-time) | ISO 8601 timestamp in UTC with explicit `Z` suffix. Example: `"2026-05-01T05:14:38Z"`. Every datetime field uses this shape. The descriptor at `meta.datetime` makes the contract runtime-assertable. |
parsed_at | string | null | ISO 8601 UTC timestamp when parsing completed. `null` until parsing finishes. |
committed_at | string | null | ISO 8601 UTC timestamp when commit started. `null` until commit begins. |
completed_at | string | null | ISO 8601 UTC timestamp when the job completed. `null` while the job has not finished. |
meta | object | Response metadata including API version, route prefix, unique request identifier, and the server timestamp in UTC. |
version | string | API version that processed the request. |
api_version | string | API route prefix version (e.g. `v1`). |
request_id | string | Unique request identifier (hex). |
datetime | object | Companion descriptor present in every response's meta block (and in outgoing webhook payloads). Lets clients assert the timezone contract without re-reading the spec. |
timezone* | string | Always `UTC` — the canonical timezone for every datetime field in the body. |
format* | string | Always `ISO 8601` — explicit `Z` suffix on every datetime. |
links | object | Pagination or related links, present only when the endpoint returns a paginated collection. |
Used in operations
GET /v1/beneficiaries/imports/{id}