---
title: "One retained result, in the schema it was made under"
method: GET
path: "/v2/einvoices/results/{id}"
tags: ["results"]
---

# One retained result, in the schema it was made under

`GET /v2/einvoices/results/{id}`

## Request

- Base URL: `https://api.ironfang.com/finance`
- URL: `https://api.ironfang.com/finance/v2/einvoices/results/{id}`
- Auth: HTTP bearer

The exact retained document, byte for byte as it was first
returned: a V2 validation's `ironfang/finance/einvoice/validation-result/v2`,
or, for an operation made through V1, V1's
`financewolf/einvoice/validation-result/v1` or
`financewolf/einvoice/generation-result/v1`, which the V1 contract
documents. Branch on `schema`. Reading a result never validates or
charges again.

## Path parameters

- `id` string, required

## Response `200`

The retained document. Cache-Control is no-store.

- union: A retained document in the schema it was made under. A V1 document is described by the V1 contract (/finance/v1/openapi.yaml); here it is only named by its `schema`.
  - ValidationVerdict: The result of one completed validation. `outcome` is decided by the fatal findings of the checks that ran, within `coverage`.
    - `counts` object, required
      - `by_severity` SeverityCounts, required
        - `fatal` integer, required
        - `information` integer, required
        - `warning` integer, required
    - `coverage` Coverage, required: What the result covers. `checked` is the layers that ran to completion; `not_checked` names every aspect the result does not establish, and why.
      - `checked` Layer[], required
      - `not_checked` object[], required
        - `aspect` 'pdf_container' | 'visual_consistency' | 'digital_signature' | 'en16931_semantics', required
        - `reason` 'no_pdf_supplied' | 'not_implemented' | 'outside_scope' | 'reduced_profile', required
      - `scope` 'xml' | 'hybrid_pdf', required
    - `declared` Declared, required: What the document itself declares, copied from its source identifiers. A declaration, not a verdict: validation decides whether it is true.
      - `business_process_id` string: UBL ProfileID, or CII BusinessProcessSpecifiedDocumentContextParameter/ID.
      - `family` 'peppol-bis-billing-3' | 'xrechnung' | 'zugferd-facturx': An invoice family. `zugferd-facturx` is one family: ZUGFeRD and Factur-X are corresponding release names of the same standard.
      - `pdf` object: For a PDF, the invoice declarations in its XMP metadata.
        - `conformance_level` string
        - `document_file_name` string
        - `document_type` string
        - `pdfa_conformance` string
        - `pdfa_part` string
        - `version` string
      - `root` string: The root element's local name.
      - `specification_id` string: UBL CustomizationID, or CII GuidelineSpecifiedDocumentContextParameter/ID.
      - `syntax` 'ubl' | 'cii' | 'other', required: The syntax the root element names.
      - `type_code` string: The invoice type code, which decides invoice or credit note in CII.
      - `variant` 'core' | 'extension' | 'cvd' | 'minimum' | 'basic-wl' | 'basic' | 'en16931' | 'extended' | 'xrechnung': A variant or profile within a family. XRechnung: `core`, `extension`, `cvd`. ZUGFeRD / Factur-X: `minimum`, `basic-wl`, `basic`, `en16931`, `extended`, `xrechnung` (the ZUGFeRD XRECHNUNG reference profile). Peppol BIS Billing 3 has none. Recognition is not support: the ruleset list is the only statement of what is validated.
    - `engines` Engine[], required
      - `image_digest` string, required
      - `name` string, required
      - `role` 'xml' | 'pdf', required
    - `findings` Finding[], required
      - `hint_code` string
      - `layer` 'input' | 'pdfa' | 'hybrid_binding' | 'xml' | 'xsd' | 'en16931' | 'peppol' | 'xrechnung' | 'zugferd_profile', required: A validation stage. A result reports the stages its pipeline runs, in the pipeline's order; no pipeline runs them all.
      - `location` Location, required: Where a finding applies, in the source it came from: an XPath or a line and column in the invoice XML, or a PDF object or structure path. A PDF finding never carries an XML location.
        - `kind` 'none' | 'xpath' | 'line-column' | 'pdf', required
        - `value` string
      - `message` string, required: A fixed, safe message for the rule or layer. Official rule texts are not repeated, because they can carry invoice values.
      - `rule_flag` 'fatal' | 'warning' | 'information', required: `fatal` fails the document; `warning` and `information` never do.
      - `rule_id` string, required: The official rule identifier, unchanged. Ironfang's own checks use the `FW-` namespace (`rule_source: ironfang`).
      - `rule_source` 'official' | 'ironfang', required
      - `severity` 'fatal' | 'warning' | 'information', required: `fatal` fails the document; `warning` and `information` never do.
      - `source_url` string, uri
    - `findings_summary` FindingsSummary, required
      - `cap` 1000, required
      - `returned` integer, required
      - `total` integer, required
      - `truncated` boolean, required
    - `groups` CheckGroup[], required
      - `group` 'pdfa' | 'attachment_metadata' | 'invoice_xml', required
      - `layers` Layer[], required
      - `status` 'passed' | 'failed' | 'skipped', required
    - `input` ValidationInput, required
      - `bytes` integer, required
      - `document_type` 'invoice' | 'credit_note' | 'unknown', required
      - `embedded_xml` object: For a PDF, the invoice XML exactly as extracted - original bytes, never re-serialised.
        - `bytes` integer, required
        - `file_name` string: The attachment's name as declared in the PDF
        - `sha256` string, required
      - `media_type` 'application/xml' | 'application/pdf', required
      - `sha256` string, required
    - `layers` LayerResult[], required
      - `fatal` integer, required
      - `information` integer, required
      - `layer` 'input' | 'pdfa' | 'hybrid_binding' | 'xml' | 'xsd' | 'en16931' | 'peppol' | 'xrechnung' | 'zugferd_profile', required: A validation stage. A result reports the stages its pipeline runs, in the pipeline's order; no pipeline runs them all.
      - `reason` 'skipped_after_failure' | 'engine_error' | 'deadline_exceeded'
      - `status` 'passed' | 'failed' | 'skipped' | 'error', required
      - `warning` integer, required
    - `next_actions` string[], required: What this input supports next, from the capability registry: open the readable view, or extract the embedded XML. Never guessed by a client.
    - `operation_id` string
    - `outcome` 'valid' | 'invalid', required
    - `ruleset` RulesetSelection, required
      - `family` 'peppol-bis-billing-3' | 'xrechnung' | 'zugferd-facturx', required: An invoice family. `zugferd-facturx` is one family: ZUGFeRD and Factur-X are corresponding release names of the same standard.
      - `id` string, required
      - `official_release` string, required: The specification release
      - `requested` string, required
      - `scope` 'xml' | 'hybrid_pdf', required
      - `selection_method` 'exact' | 'latest' | 'detected', required
      - `state` 'scheduled' | 'sendable' | 'historical', required
      - `syntax` 'ubl-2.1' | 'cii-d16b' | 'cii-d22b', required: The syntax and schema edition a pipeline validates against, taken from the pinned release, never inferred from a namespace.
      - `technical_release` string: The technical bundle
      - `variant` 'core' | 'extension' | 'cvd' | 'minimum' | 'basic-wl' | 'basic' | 'en16931' | 'extended' | 'xrechnung': A variant or profile within a family. XRechnung: `core`, `extension`, `cvd`. ZUGFeRD / Factur-X: `minimum`, `basic-wl`, `basic`, `en16931`, `extended`, `xrechnung` (the ZUGFeRD XRECHNUNG reference profile). Peppol BIS Billing 3 has none. Recognition is not support: the ruleset list is the only statement of what is validated.
    - `schema` 'ironfang/finance/einvoice/validation-result/v2', required
    - `status` 'completed', required
    - `timing` Timing, required
      - `completed_at` string, date-time, required
      - `duration_ms` integer, required
      - `started_at` string, date-time, required
    - `usage` Usage
      - `charged` boolean, required
      - `credits` integer, required
      - `period_ends_at` string, date-time: Only on results recorded before usage billing, returned as they were recorded.
      - `remaining` integer: Only on results recorded before usage billing, returned as they were recorded.
  - object
    - `schema` 'financewolf/einvoice/validation-result/v1' | 'financewolf/einvoice/generation-result/v1', required

## Other responses

- `401`: The credential is missing or not accepted.
- `403`: The key lacks the scope this operation needs.
- `404`: No such release or result is visible.
- `410`: The result expired or was erased. Its operation record remains.
- `429`: Too many requests.
- `500`: Ironfang Finance failed. Not a verdict on anything.

---

[API](https://skmtc.dev/ironfang/apis/ironfang-finance-e-invoicing-api-2.md) · [All operations](https://skmtc.dev/ironfang/apis/ironfang-finance-e-invoicing-api-2/llms.txt) · [OpenAPI document](https://skmtc.dev/ironfang/apis/ironfang-finance-e-invoicing-api-2/revisions/8140667e556b?raw)
