Skip to main content
Introducing packages.sweber.dev
Documentation menuJurisdictions

Jurisdictions

Which legal areas Inverse knows, how well, and how to use them.

From 2.0 every declaration carries the legal area it was taken under (record.jurisdiction) and the date the legal status of that area was last checked (record.legalCheckedOn). Both are part of the stored record, so an evidence sheet shows which state of the rules the texts followed on the day of receipt.

import { createInverseHandler } from "@sweberdev/inverse";

export const POST = createInverseHandler({
  company: { name: "Acme SA" },
  jurisdiction: "fr", // default language: fr
  onDeclaration,
  sendReceipt,
});

A shop that sells in several countries lets the form pick, from a list you allow:

createInverseHandler({ jurisdiction: "de", jurisdictions: ["at", "fr"], /* ... */ });
<div data-inverse-form="withdrawal" data-endpoint="/api/inverse" data-jurisdiction="at"></div>

A request that names an area outside jurisdictions is not refused; the handler uses its own jurisdiction. The area is never taken from a request unless you allow it.

What Inverse knows

IdCountryHow wellWithdrawal functionCancellation button
deGermanynational provision checked§ 356a BGB, since 2026-06-19§ 312k BGB
atAustrianational provision checkedDirective 2023/2673, implemented in the FAGG, since 2026-10-01no statement
chSwitzerlandnote onlyno EU duty; no statement on Swiss lawno statement
frFrancedirective onlyArticle 11a of the directiveno statement
itItalydirective onlyArticle 11a of the directiveno statement
esSpaindirective onlyArticle 11a of the directiveno statement
nlNetherlandsdirective onlyArticle 11a of the directiveno statement
plPolanddirective onlyArticle 11a of the directiveno statement

"Directive only" means: the labels, the two-step flow and the receipt follow Article 11a of Directive (EU) 2023/2673, which every member state had to implement. Inverse did not read the French, Italian, Spanish, Dutch or Polish implementing act, and the translations have not been reviewed by a lawyer or a native speaker for these countries. Each entry in jurisdictions carries a note that says where to look. Until a lawyer has confirmed a country, treat it as a starting point, not as a confirmed fit.

Inverse states a cancellation button duty only for Germany. Offering the button elsewhere is your decision.

npx inverse legal --jurisdiction fr
npx inverse legal --jurisdiction de --since 2026-10-01   # exit 1 if something is newer

--since makes a CI or cron job notice that the library has a newer legal status than the one your deployment was last reviewed against. See legal status.