{"openapi":"3.1.0","info":{"title":"EN 16931 e-invoice validator","description":"Validate UBL, CII and Factur-X/ZUGFeRD invoices against EN 16931, Peppol BIS Billing 3.0 and XRechnung. Every finding comes back with the rule id, a plain-English cause and fix, the line number and a source excerpt.","version":"0.1.0"},"paths":{"/v1/validate":{"post":{"summary":"V1 Validate","operationId":"v1_validate_v1_validate_post","parameters":[{"name":"syntax","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(ubl|cii)$"},{"type":"null"}],"title":"Syntax"}},{"name":"profile","in":"query","required":false,"schema":{"type":"string","pattern":"^(en16931|peppol|xrechnung)$","default":"en16931","title":"Profile"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/validate/batch":{"post":{"summary":"V1 Validate Batch","description":"A ZIP of invoices in, one result per file out.","operationId":"v1_validate_batch_v1_validate_batch_post","parameters":[{"name":"profile","in":"query","required":false,"schema":{"type":"string","pattern":"^(en16931|peppol|xrechnung)$","default":"en16931","title":"Profile"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/rules":{"get":{"summary":"V1 Rules","operationId":"v1_rules_v1_rules_get","parameters":[{"name":"syntax","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(ubl|cii)$"},{"type":"null"}],"title":"Syntax"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"severity","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Severity"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/rules/{rule_id}":{"get":{"summary":"V1 Rule","operationId":"v1_rule_v1_rules__rule_id__get","parameters":[{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","title":"Rule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/":{"get":{"summary":"Home","operationId":"home__get","parameters":[{"name":"example","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Example"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Home Post","operationId":"home_post__post","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_home_post__post"}}}},"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/rules":{"get":{"summary":"Rules Index","operationId":"rules_index_rules_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/rules/family/{family}":{"get":{"summary":"Family Page","description":"One page per rule family. Orientation for a human, and — unlike the thinnest individual\nrule pages — genuinely substantial content: what the family is for, and every rule in it\nwith its message, so the page answers the question without a second click.","operationId":"family_page_rules_family__family__get","parameters":[{"name":"family","in":"path","required":true,"schema":{"type":"string","title":"Family"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/rules/{rule_id}":{"get":{"summary":"Rule Page","operationId":"rule_page_rules__rule_id__get","parameters":[{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","title":"Rule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mandates":{"get":{"summary":"Mandates Index","operationId":"mandates_index_mandates_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/mandates/{cc}":{"get":{"summary":"Mandate Page","operationId":"mandate_page_mandates__cc__get","parameters":[{"name":"cc","in":"path","required":true,"schema":{"type":"string","title":"Cc"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api":{"get":{"summary":"Api Docs","operationId":"api_docs_api_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/examples":{"get":{"summary":"Examples Index","operationId":"examples_index_examples_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/examples/{slug}":{"get":{"summary":"Example Download","operationId":"example_download_examples__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/privacy":{"get":{"summary":"Privacy","operationId":"privacy_privacy_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/terms":{"get":{"summary":"Terms","operationId":"terms_terms_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/contact":{"get":{"summary":"Contact Form","operationId":"contact_form_contact_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}},"post":{"summary":"Contact Submit","operationId":"contact_submit_contact_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_contact_submit_contact_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sitemap.xml":{"get":{"summary":"Sitemap","operationId":"sitemap_sitemap_xml_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/robots.txt":{"get":{"summary":"Robots","operationId":"robots_robots_txt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"Body_contact_submit_contact_post":{"properties":{"name":{"type":"string","title":"Name","default":""},"email":{"type":"string","title":"Email","default":""},"message":{"type":"string","title":"Message","default":""}},"type":"object","title":"Body_contact_submit_contact_post"},"Body_home_post__post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"profile":{"type":"string","title":"Profile","default":"en16931"}},"type":"object","required":["file"],"title":"Body_home_post__post"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}