Organization-level configuration that applies to all resources within your account. Includes default currency, timezone, invoice numbering format, payment terms, and feature flags.
List the stored e-invoicing channel credentials
Names the credentials on file and what each is called. The secrets themselves are NEVER returned by this or any other endpoint — the asymmetry is deliberate: an operator must always be able to see WHICH credential a channel uses, and never needs to read it back. Rotation is writing a new value over the old one.
Headers
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
List the stored e-invoicing channel credentials › Responses
OK
Store or replace an e-invoicing channel credential
Stores the secret a channel's credentials_ref names, sealed at rest under the organization's own key. Writing the same reference again replaces the value, which is how rotation works. Keyed by reference and not by channel, because one access-point contract commonly serves several countries and a per-channel copy is a rotation somebody will do three quarters of. Returns 503 when the deployment has no secret keyring — refusing is the only honest answer, since the alternative is storing a credential in plaintext.
Headers
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Store or replace an e-invoicing channel credential › Request Body
refThe locator to store it under — the same string a channel's credentials_ref names.
secretThe credential itself. Sealed at rest under the organization's own key and never returned by any endpoint; writing again replaces it, which is how rotation works.
labelOperator-facing name for this credential.
Store or replace an e-invoicing channel credential › Responses
OK
Remove an e-invoicing channel credential
Deletes the stored secret. A channel that still names it then resolves to nothing, which is the loud state and not a silent empty one: the adapter reports the reference as unresolvable rather than sending unauthenticated.
path Parameters
refHeaders
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Remove an e-invoicing channel credential › Responses
No Content
List the organization's e-invoicing delivery channels
Returns the channels this organization has configured — which access point or authority a document goes to for a given seller country, under which credentials reference, in test or live mode — together with the closed set of channel kinds the server supports. The kinds travel with the list because which transports exist is a server-side fact that changes with a release. credentials_ref is returned unmasked: it NAMES a secret in the secret store and is never the secret.
Headers
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
List the organization's e-invoicing delivery channels › Responses
OK
Configure an e-invoicing delivery channel
Creates one channel for a seller country (optionally narrowed to a region). The country is the SELLER's, because a channel is bought, paid for and credentialled by the seller. A second channel for the same country and region is refused with 409 — the unique index cannot catch it, because a nullable region makes two country-wide rows distinct in Postgres.
Headers
Idempotency-KeyUnique key that makes this POST safe to retry: repeats with the same key replay the first response instead of re-executing. Replays are scoped to the retrying principal (same API key / user) and kept for 24 hours. Required on every POST.
Client-generated idempotency key (e.g. a UUID).
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Configure an e-invoicing delivery channel › Request Body
channelPEPPOL, PDP, SDI, KSEF, AEAT or AT.
countryThe SELLER's country, ISO 3166-1 alpha-2. A channel is bought, paid for and credentialled by the seller, so it is keyed on the seller's country and not the buyer's.
credentials_refNAMES a secret in the secret store, for example vault://peppol/be. It is logged by the adapter and returned unmasked by this API, so it must never be the credential itself.
endpoint_urlis_enabledmodetest or live. Absent means test: the other default would have a first save send real invoices to a real authority under credentials nobody has confirmed.
participant_idparticipant_schemeThe seller's own issuing-agency code on the network (a Peppol EAS code). A pair with participant_id: state both or neither.
regionNarrows the row below the country (the Basque and Navarrese territories run TicketBAI rather than Verifactu). Empty means the whole country.
Configure an e-invoicing delivery channel › Responses
Created
Replace an e-invoicing delivery channel
Replaces every field of one channel. A full replace and not a patch, because the endpoint, its credentials reference and the participant identifier addressed under them are one decision: a partial update that changed the endpoint and kept the old credentials reference would produce a channel that authenticates against nothing.
path Parameters
idHeaders
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Replace an e-invoicing delivery channel › Request Body
channelPEPPOL, PDP, SDI, KSEF, AEAT or AT.
countryThe SELLER's country, ISO 3166-1 alpha-2. A channel is bought, paid for and credentialled by the seller, so it is keyed on the seller's country and not the buyer's.
credentials_refNAMES a secret in the secret store, for example vault://peppol/be. It is logged by the adapter and returned unmasked by this API, so it must never be the credential itself.
endpoint_urlis_enabledmodetest or live. Absent means test: the other default would have a first save send real invoices to a real authority under credentials nobody has confirmed.
participant_idparticipant_schemeThe seller's own issuing-agency code on the network (a Peppol EAS code). A pair with participant_id: state both or neither.
regionNarrows the row below the country (the Basque and Navarrese territories run TicketBAI rather than Verifactu). Empty means the whole country.
Replace an e-invoicing delivery channel › Responses
OK
Remove an e-invoicing delivery channel
Deletes the row. Submissions already made through it are untouched: they are the record of what happened and are not the tenant's to erase. To stop using a channel without losing its settings, set is_enabled to false instead.
path Parameters
idHeaders
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Remove an e-invoicing delivery channel › Responses
No Content
The Verifactu producer's declaración responsable
Returns the declaration RD 1007/2023 art. 13 obliges the producer of a Spanish sistema informático de facturación to issue «por escrito y de modo visible en el propio sistema informático en cada una de sus versiones»: who the producer is, which version of the system this is, the provisions the system declares compliance with, its tipología/composición/funcionalidades, and the limitations it declares. There is no state certification in Spain — it is self-declaration, and a false one is an LGT art. 201 bis infringement — so the limitations are part of the document rather than a footnote to it. The version is read from the running binary, because art. 13 makes the declaration per-version. The text is Spanish in every locale: it is a statement to a Spanish authority under a Spanish regulation, and a translated one is a different document.
Headers
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
The Verifactu producer's declaración responsable › Responses
OK
capabilitiesArt. 13's «tipología, composición y funcionalidades» of the system. Spanish.
generated_atlimitationsWhat this system does NOT do, stated in the declaration itself. Omitting them would make the declaration a false one, which LGT art. 201 bis fines at EUR 150,000 per system per financial year.
producer_nameproducer_tax_idprovisionsThe provisions the declaration asserts compliance with (LGT art. 29.2.j, RD 1007/2023, Orden HAC/1177/2024). Spanish.
system_versionThe SIF version this declaration is about. Art. 13 makes the declaration per-version, so this is read from the running binary's build info and is never a stored constant.
textThe declaración responsable itself, in Spanish. It is a statement to a Spanish authority under a Spanish regulation; a translated one is a different document, so this string is rendered verbatim whatever the reader's locale.
producer_addresssystem_built_atsystem_namesystem_revisionThe exact build (VCS revision), so that «which version produced this record» has an answer no release process can blur.