← Back to schema index

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

FieldTypeDescription
dataobjectMain response payload. Shape varies by endpoint (object, array, or JSON:API envelope with `type`, `id`, `attributes`).
typestringJSON:API resource type (always `beneficiary_import`).
idstringNumeric job ID expressed as a string (JSON:API format).
attributesobjectImport job fields.
statusstringJob 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_formatstringFormat of the uploaded file. Accepted: CSV, Excel (xls/xlsx), plain text, and PDF. That is, `csv`, `xls`, `xlsx`, `txt`, or `pdf`.
parse_modestringParse mode: `template` — fixed column format (downloadable from `/v1/beneficiaries/imports/template`); `free` — free-form, the system infers the structure.
total_rowsintegerTotal rows extracted from the file. Available once status is `preview_ready` or later.
valid_countintegerError-free rows, ready for direct commit.
correctable_countintegerRows with auto-corrections applied (e.g. auto-assigned alias). Persisted unless the user rejects them.
fatal_countintegerRows with errors that cannot be auto-corrected. Not persisted and skipped during commit.
duplicate_countintegerSum 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_countintegerRows effectively persisted in the beneficiary list. Available once status is `completed`.
skipped_countintegerRows not persisted (fatal or `duplicate_account` without possible reactivation).
llm_invokedboolean`true` if the AI engine was used during parsing to resolve ambiguous rows in free-form mode.
error_codestring | nullStable error code when `status=failed` (e.g. `file_corrupt`, `plan_cap_exceeded`). `null` in non-failed states.
error_summarystring | nullHuman-readable diagnostic message when `status=failed`. Card numbers (PANs) are masked in this field.
created_atstring (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_atstring | nullISO 8601 UTC timestamp when parsing completed. `null` until parsing finishes.
committed_atstring | nullISO 8601 UTC timestamp when commit started. `null` until commit begins.
completed_atstring | nullISO 8601 UTC timestamp when the job completed. `null` while the job has not finished.
metaobjectResponse metadata including API version, route prefix, unique request identifier, and the server timestamp in UTC.
versionstringAPI version that processed the request.
api_versionstringAPI route prefix version (e.g. `v1`).
request_idstringUnique request identifier (hex).
datetimeobjectCompanion 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*stringAlways `UTC` — the canonical timezone for every datetime field in the body.
format*stringAlways `ISO 8601` — explicit `Z` suffix on every datetime.
linksobjectPagination or related links, present only when the endpoint returns a paginated collection.

Used in operations

  • GET /v1/beneficiaries/imports/{id}