{"openapi":"3.1.0","info":{"title":"Germany E-Invoice Deadline Guide API","version":"0.1.0","description":"Germany E-Invoice Deadline Guide answers the questions a small German business has about the domestic B2B e-invoice mandate (E-Rechnung). get_einvoice_obligations says, for a date and a prior-year turnover, whether the business must be able to receive e-invoices (since 1 January 2025) and whether it must issue them (transition until the end of 2026, until the end of 2027 for issuers with...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://de-einvoice-timeline.connectorbay.com/mcp.\n\nDisclaimer: General information only, not legal, tax, accounting or payment advice. Germany E-Invoice Deadline Guide is an independent tool: it is not affiliated with, endorsed by or operated by any government body, central bank, standards body or scheme operator. Rates, thresholds and rules change; check the cited official source and confirm with a qualified professional before you rely on a result.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/de-einvoice-timeline/docs"},"termsOfService":"https://connectorbay.com/de-einvoice-timeline/terms"},"servers":[{"url":"https://de-einvoice-timeline.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/de-einvoice-timeline/docs"},"security":[{},{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/get_einvoice_obligations":{"post":{"operationId":"get_einvoice_obligations","summary":"Receive and issue obligations of the German domestic B2B e-invoice mandate for a date and prior-year turnover, with the ","description":"Receive and issue obligations of the German domestic B2B e-invoice mandate for a date and prior-year turnover, with the applicable exemptions. Use for \"It is 15 March 2027 and my 2026 turnover was EUR 650,000: must I send e-invoices to my German business customers?\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"on_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date for which the rule is read, YYYY-MM-DD; default today","title":"On Date"},"prior_year_turnover_eur":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"default":null,"description":"Issuer's turnover in the calendar year before the date asked, decimal string in EUR; needed only for dates in 2027. At most 40 characters.","title":"Prior Year Turnover Eur"},"business_type":{"default":"regular","description":"regular (default) or kleinunternehmer (small business under section 19 UStG)","title":"Business Type","type":"string"},"customer_type":{"default":"business","description":"business (default) or consumer (invoice to a private person). At most 100 characters.","title":"Customer Type","type":"string"},"domestic":{"default":true,"description":"True (default) if issuer and recipient are both domestic (German) businesses","title":"Domestic","type":"boolean"}},"title":"get_einvoice_obligationsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/days_to_issue_deadline":{"post":{"operationId":"days_to_issue_deadline","summary":"Days until the business's own obligation to issue e-invoices starts, from its 2026 turnover (EUR 800,000 rule). Use for ","description":"Days until the business's own obligation to issue e-invoices starts, from its 2026 turnover (EUR 800,000 rule). Use for \"My 2026 turnover will be about EUR 900,000: how many days until I must issue e-invoices?\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"turnover_2026_eur":{"anyOf":[{"type":"string"},{"type":"integer"}],"description":"Turnover of calendar year 2026 (actual or expected), decimal string in EUR; it decides the 2027 step. At most 40 characters.","title":"Turnover 2026 Eur"},"business_type":{"default":"regular","description":"regular (default) or kleinunternehmer (small business under section 19 UStG)","title":"Business Type","type":"string"},"on_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date from which days are counted, YYYY-MM-DD; default today. At most 40 characters.","title":"On Date"}},"required":["turnover_2026_eur"],"title":"days_to_issue_deadlineArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/check_small_invoice_exemption":{"post":{"operationId":"check_small_invoice_exemption","summary":"Whether an invoice up to EUR 250 gross (small-amount invoice, section 33 UStDV) falls outside the e-invoice duty. Use fo","description":"Whether an invoice up to EUR 250 gross (small-amount invoice, section 33 UStDV) falls outside the e-invoice duty. Use for \"I issue a EUR 240 invoice: does it need to be an e-invoice?\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"gross_amount_eur":{"anyOf":[{"type":"string"},{"type":"integer"}],"description":"Gross invoice total (including VAT) in EUR as a decimal string. At most 40 characters.","title":"Gross Amount Eur"},"on_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date for which the rule is read, YYYY-MM-DD; default today","title":"On Date"}},"required":["gross_amount_eur"],"title":"check_small_invoice_exemptionArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/check_format_acceptance":{"post":{"operationId":"check_format_acceptance","summary":"Whether an invoice format, version and profile (XRechnung, ZUGFeRD, other EN 16931 formats, PDF) qualifies as an e-invoi","description":"Whether an invoice format, version and profile (XRechnung, ZUGFeRD, other EN 16931 formats, PDF) qualifies as an e-invoice. Use for \"Is a ZUGFeRD 2.3 invoice in the BASIC-WL profile accepted as an e-invoice in Germany?\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"format":{"description":"xrechnung, zugferd, factur-x, other_en16931, pdf or paper. At most 100 characters.","title":"Format","type":"string"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Format version such as 2.0.1 or 2.3.2; needed for zugferd. At most 40 characters.","title":"Version"},"profile":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ZUGFeRD profile: minimum, basic-wl, basic, en16931 (comfort), extended or xrechnung; needed for zugferd. At most 40 characters.","title":"Profile"}},"required":["format"],"title":"check_format_acceptanceArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/explain_kleinunternehmer_position":{"post":{"operationId":"explain_kleinunternehmer_position","summary":"What the e-invoice mandate says about small businesses under section 19 UStG: no duty to issue, but able to receive. Use","description":"What the e-invoice mandate says about small businesses under section 19 UStG: no duty to issue, but able to receive. Use for \"I am a Kleinunternehmer: do I have to issue or receive e-invoices?\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"on_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date for which the rule is read, YYYY-MM-DD; default today","title":"On Date"}},"title":"explain_kleinunternehmer_positionArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_timeline":{"post":{"operationId":"get_timeline","summary":"Full dated timeline of the mandate with status, effective date, quotes and source page for each step. Use for \"Give me t","description":"Full dated timeline of the mandate with status, effective date, quotes and source page for each step. Use for \"Give me the complete German e-invoice timeline with dates and sources.\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"on_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date for which the rule is read, YYYY-MM-DD; default today","title":"On Date"}},"title":"get_timelineArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}