---
title: "One immutable release and its pipeline"
method: GET
path: "/v2/einvoices/rulesets/{id}"
tags: ["rulesets"]
---

# One immutable release and its pipeline

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

## Request

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

One release by id, in any public state (scheduled, sendable or historical), with its pipeline, layers and pinned engine. A release never changes once published; results name the release that produced them, so this is how to see exactly what checked a document.

## Path parameters

- `id` string, required

## Response `200`

The release.

- Ruleset: One immutable release: the exact pipeline a validation that names it runs, every artefact by checksum, and the engine image it is pinned to. Nothing about a release changes after activation except its lifecycle state.
  - `artifacts` RulesetArtifact[], 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.
    - `licence` string, required
    - `licence_status` 'permissive' | 'notice-required' | 'no-raw-redistribution', required
    - `role` 'entry' | 'dependency', required
    - `sha256` string, required
    - `source_url` string, uri, required
  - `bis_release` string
  - `document_type` 'invoice' | 'credit_note', required
  - `en16931_release` string
  - `engine` object, required
    - `image_digest` string, required
    - `name` string, 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
  - `latest` boolean, required
  - `layers` Layer[], required
  - `manifest_sha256` string, required
  - `official_release` string, required
  - `operations` RulesetOperation[], required
  - `published_on` string, date
  - `replaced_by` string
  - `retired_at` string, date-time
  - `schema` 'ironfang/finance/einvoice/ruleset/v2', required
  - `scope` 'xml' | 'hybrid_pdf', required
  - `sources` string[], 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
  - `valid_from` string, date-time, required
  - `valid_until` string, date-time
  - `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.

## 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 release was withdrawn from every use.
- `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)
