{
  "openapi": "3.0.3",
  "info": {
    "title": "Document Generation API — DOCX, HTML & PDF",
    "version": "0.2.0",
    "description": "Callable Labs public endpoint reference. Obtain the base URL and credentials from the marketplace listing. Availability can differ by marketplace."
  },
  "paths": {
    "/v1/documents/preset/invoice": {
      "post": {
        "tags": [
          "Ready-made documents"
        ],
        "summary": "Generate an invoice",
        "description": "Send invoice parties and line items as JSON. Totals and tax are calculated server-side. Return PDF, editable DOCX, HTML, or JSON containing a PDF data URI.",
        "operationId": "Generate invoice",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceRequest"
              },
              "example": {
                "data": {
                  "number": "INV-2026-0042",
                  "date": "2026-09-18",
                  "due_date": "2026-10-18",
                  "currency": "€",
                  "seller": {
                    "name": "Callable Labs",
                    "address": [
                      "1 Example Street",
                      "1011 AB Amsterdam"
                    ],
                    "email": "billing@example.com",
                    "tax_id": "NL000000000B01"
                  },
                  "buyer": {
                    "name": "Analytical Engines Ltd",
                    "address": [
                      "42 Difference Way",
                      "London"
                    ]
                  },
                  "items": [
                    {
                      "description": "Consulting (hours)",
                      "quantity": 12,
                      "unit_price": 95,
                      "tax_rate": 21
                    },
                    {
                      "description": "Document generation API — Pro plan",
                      "quantity": 1,
                      "unit_price": 12,
                      "tax_rate": 21
                    }
                  ],
                  "notes": "Payment within 30 days. IBAN NL00 BANK 0000 0000 00."
                },
                "format": "pdf"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The generated document",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "format": {
                      "type": "string",
                      "enum": [
                        "docx",
                        "pdf",
                        "html"
                      ]
                    },
                    "media_type": {
                      "type": "string"
                    },
                    "pages": {
                      "type": "integer",
                      "nullable": true,
                      "description": "PDF page count (null for DOCX/HTML)"
                    },
                    "bytes": {
                      "type": "integer"
                    },
                    "data_uri": {
                      "type": "string",
                      "description": "`data:<media_type>;base64,…`"
                    },
                    "warnings": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "engine": {
                      "type": "string"
                    },
                    "engine_version": {
                      "type": "string"
                    },
                    "cache": {
                      "type": "string",
                      "enum": [
                        "hit",
                        "miss"
                      ]
                    },
                    "render_ms": {
                      "type": "integer"
                    },
                    "queued_ms": {
                      "type": "integer"
                    }
                  }
                }
              },
              "application/pdf": {},
              "text/html": {},
              "application/vnd.openxmlformats-officedocument.wordprocessingml.document": {}
            }
          },
          "401": {
            "description": "Authentication failed. Verify the RapidAPI subscription and generated request headers."
          },
          "403": {
            "description": "Refused by the gateway: the plan excludes this format or feature (`plan_excludes_feature`)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "413": {
            "description": "The request body exceeds the configured gateway or endpoint limit."
          },
          "422": {
            "description": "Rejected before or during rendering. `invalid_request`: a field failed the schema — `errors[].loc` names it. `bad_template`: the upload is not a usable template (not a .docx, too large, contains macros or external links) or the output breaks a limit (pages, bytes). `template_error`: the template's Jinja syntax is broken — `errors[].line` says where. `data_error`: the data does not fit the template (missing variable, malformed JSON, wrong shape).",
            "content": {
              "application/json": {
                "examples": {
                  "template_error": {
                    "value": {
                      "detail": {
                        "code": "template_error",
                        "engine": "docx",
                        "message": "template syntax error at line 5: Encountered unknown tag 'endfo'.",
                        "errors": [
                          {
                            "line": 5,
                            "message": "Encountered unknown tag 'endfo'."
                          }
                        ],
                        "context": [
                          "{% for x in items %}",
                          "{{ x }}",
                          "{% endfo %}"
                        ]
                      }
                    }
                  },
                  "data_error": {
                    "value": {
                      "detail": {
                        "code": "data_error",
                        "engine": "docx",
                        "message": "template refers to missing data: 'customer' is undefined"
                      }
                    }
                  },
                  "bad_template": {
                    "value": {
                      "detail": {
                        "code": "bad_template",
                        "engine": "docx",
                        "message": "template contains macros (VBA project); remove them"
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "The subscriber's rate limit or monthly request allowance was exceeded."
          },
          "502": {
            "description": "The origin service is temporarily unavailable."
          },
          "503": {
            "description": "`busy`: the node's render queue is full — honour `Retry-After` (seconds) and resend. `engine_unavailable`: LibreOffice or Chromium is missing or restarting on this node. Both carry `Retry-After`.",
            "headers": {
              "Retry-After": {
                "schema": {
                  "type": "integer"
                },
                "description": "Seconds to wait before retrying"
              }
            },
            "content": {
              "application/json": {
                "example": {
                  "detail": {
                    "code": "busy",
                    "engine": "docx",
                    "message": "12 documents are already queued on this node; retry shortly"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "504": {
            "description": "`render_timeout`: a stage exceeded its budget (template 5 s, LibreOffice 20 s, Chromium 15 s). Simplify the template or reduce the data.",
            "content": {
              "application/json": {
                "example": {
                  "detail": {
                    "code": "render_timeout",
                    "engine": "libreoffice",
                    "message": "libreoffice did not finish within 20s; simplify the template or reduce the data"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/documents/preset/receipt": {
      "post": {
        "tags": [
          "Ready-made documents"
        ],
        "summary": "Generate a receipt",
        "description": "Generate a receipt from merchant, item and payment data. Totals are calculated server-side. Return PDF, editable DOCX, HTML, or a JSON data URI.",
        "operationId": "Generate receipt",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReceiptRequest"
              },
              "example": {
                "data": {
                  "number": "RCP-1042",
                  "date": "2026-09-18 14:02",
                  "merchant": {
                    "name": "Corner Café",
                    "address": [
                      "12 Market Square"
                    ]
                  },
                  "items": [
                    {
                      "description": "Flat white",
                      "quantity": 2,
                      "unit_price": 3.6,
                      "tax_rate": 9
                    },
                    {
                      "description": "Almond croissant",
                      "quantity": 1,
                      "unit_price": 3.2,
                      "tax_rate": 9
                    }
                  ],
                  "payment_method": "Card •••• 4242"
                },
                "format": "pdf"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The generated document",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "format": {
                      "type": "string",
                      "enum": [
                        "docx",
                        "pdf",
                        "html"
                      ]
                    },
                    "media_type": {
                      "type": "string"
                    },
                    "pages": {
                      "type": "integer",
                      "nullable": true,
                      "description": "PDF page count (null for DOCX/HTML)"
                    },
                    "bytes": {
                      "type": "integer"
                    },
                    "data_uri": {
                      "type": "string",
                      "description": "`data:<media_type>;base64,…`"
                    },
                    "warnings": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "engine": {
                      "type": "string"
                    },
                    "engine_version": {
                      "type": "string"
                    },
                    "cache": {
                      "type": "string",
                      "enum": [
                        "hit",
                        "miss"
                      ]
                    },
                    "render_ms": {
                      "type": "integer"
                    },
                    "queued_ms": {
                      "type": "integer"
                    }
                  }
                }
              },
              "application/pdf": {},
              "text/html": {},
              "application/vnd.openxmlformats-officedocument.wordprocessingml.document": {}
            }
          },
          "401": {
            "description": "Authentication failed. Verify the RapidAPI subscription and generated request headers."
          },
          "403": {
            "description": "Refused by the gateway: the plan excludes this format or feature (`plan_excludes_feature`)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "413": {
            "description": "The request body exceeds the configured gateway or endpoint limit."
          },
          "422": {
            "description": "Rejected before or during rendering. `invalid_request`: a field failed the schema — `errors[].loc` names it. `bad_template`: the upload is not a usable template (not a .docx, too large, contains macros or external links) or the output breaks a limit (pages, bytes). `template_error`: the template's Jinja syntax is broken — `errors[].line` says where. `data_error`: the data does not fit the template (missing variable, malformed JSON, wrong shape).",
            "content": {
              "application/json": {
                "examples": {
                  "template_error": {
                    "value": {
                      "detail": {
                        "code": "template_error",
                        "engine": "docx",
                        "message": "template syntax error at line 5: Encountered unknown tag 'endfo'.",
                        "errors": [
                          {
                            "line": 5,
                            "message": "Encountered unknown tag 'endfo'."
                          }
                        ],
                        "context": [
                          "{% for x in items %}",
                          "{{ x }}",
                          "{% endfo %}"
                        ]
                      }
                    }
                  },
                  "data_error": {
                    "value": {
                      "detail": {
                        "code": "data_error",
                        "engine": "docx",
                        "message": "template refers to missing data: 'customer' is undefined"
                      }
                    }
                  },
                  "bad_template": {
                    "value": {
                      "detail": {
                        "code": "bad_template",
                        "engine": "docx",
                        "message": "template contains macros (VBA project); remove them"
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "The subscriber's rate limit or monthly request allowance was exceeded."
          },
          "502": {
            "description": "The origin service is temporarily unavailable."
          },
          "503": {
            "description": "`busy`: the node's render queue is full — honour `Retry-After` (seconds) and resend. `engine_unavailable`: LibreOffice or Chromium is missing or restarting on this node. Both carry `Retry-After`.",
            "headers": {
              "Retry-After": {
                "schema": {
                  "type": "integer"
                },
                "description": "Seconds to wait before retrying"
              }
            },
            "content": {
              "application/json": {
                "example": {
                  "detail": {
                    "code": "busy",
                    "engine": "docx",
                    "message": "12 documents are already queued on this node; retry shortly"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "504": {
            "description": "`render_timeout`: a stage exceeded its budget (template 5 s, LibreOffice 20 s, Chromium 15 s). Simplify the template or reduce the data.",
            "content": {
              "application/json": {
                "example": {
                  "detail": {
                    "code": "render_timeout",
                    "engine": "libreoffice",
                    "message": "libreoffice did not finish within 20s; simplify the template or reduce the data"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/documents/preset/certificate": {
      "post": {
        "tags": [
          "Ready-made documents"
        ],
        "summary": "Generate a certificate",
        "description": "Generate a landscape certificate from recipient, achievement, issuer and date fields.",
        "operationId": "Generate certificate",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CertificateRequest"
              },
              "example": {
                "data": {
                  "recipient": "Ada Lovelace",
                  "achievement": "Advanced Analytical Engines",
                  "date": "18 September 2026",
                  "issuer": "Callable Labs Academy",
                  "signatory": "Charles Babbage, Director",
                  "certificate_id": "CERT-0001"
                },
                "format": "pdf"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The generated document",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "format": {
                      "type": "string",
                      "enum": [
                        "docx",
                        "pdf",
                        "html"
                      ]
                    },
                    "media_type": {
                      "type": "string"
                    },
                    "pages": {
                      "type": "integer",
                      "nullable": true,
                      "description": "PDF page count (null for DOCX/HTML)"
                    },
                    "bytes": {
                      "type": "integer"
                    },
                    "data_uri": {
                      "type": "string",
                      "description": "`data:<media_type>;base64,…`"
                    },
                    "warnings": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "engine": {
                      "type": "string"
                    },
                    "engine_version": {
                      "type": "string"
                    },
                    "cache": {
                      "type": "string",
                      "enum": [
                        "hit",
                        "miss"
                      ]
                    },
                    "render_ms": {
                      "type": "integer"
                    },
                    "queued_ms": {
                      "type": "integer"
                    }
                  }
                }
              },
              "application/pdf": {},
              "text/html": {},
              "application/vnd.openxmlformats-officedocument.wordprocessingml.document": {}
            }
          },
          "401": {
            "description": "Authentication failed. Verify the RapidAPI subscription and generated request headers."
          },
          "403": {
            "description": "Refused by the gateway: the plan excludes this format or feature (`plan_excludes_feature`)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "413": {
            "description": "The request body exceeds the configured gateway or endpoint limit."
          },
          "422": {
            "description": "Rejected before or during rendering. `invalid_request`: a field failed the schema — `errors[].loc` names it. `bad_template`: the upload is not a usable template (not a .docx, too large, contains macros or external links) or the output breaks a limit (pages, bytes). `template_error`: the template's Jinja syntax is broken — `errors[].line` says where. `data_error`: the data does not fit the template (missing variable, malformed JSON, wrong shape).",
            "content": {
              "application/json": {
                "examples": {
                  "template_error": {
                    "value": {
                      "detail": {
                        "code": "template_error",
                        "engine": "docx",
                        "message": "template syntax error at line 5: Encountered unknown tag 'endfo'.",
                        "errors": [
                          {
                            "line": 5,
                            "message": "Encountered unknown tag 'endfo'."
                          }
                        ],
                        "context": [
                          "{% for x in items %}",
                          "{{ x }}",
                          "{% endfo %}"
                        ]
                      }
                    }
                  },
                  "data_error": {
                    "value": {
                      "detail": {
                        "code": "data_error",
                        "engine": "docx",
                        "message": "template refers to missing data: 'customer' is undefined"
                      }
                    }
                  },
                  "bad_template": {
                    "value": {
                      "detail": {
                        "code": "bad_template",
                        "engine": "docx",
                        "message": "template contains macros (VBA project); remove them"
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "The subscriber's rate limit or monthly request allowance was exceeded."
          },
          "502": {
            "description": "The origin service is temporarily unavailable."
          },
          "503": {
            "description": "`busy`: the node's render queue is full — honour `Retry-After` (seconds) and resend. `engine_unavailable`: LibreOffice or Chromium is missing or restarting on this node. Both carry `Retry-After`.",
            "headers": {
              "Retry-After": {
                "schema": {
                  "type": "integer"
                },
                "description": "Seconds to wait before retrying"
              }
            },
            "content": {
              "application/json": {
                "example": {
                  "detail": {
                    "code": "busy",
                    "engine": "docx",
                    "message": "12 documents are already queued on this node; retry shortly"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "504": {
            "description": "`render_timeout`: a stage exceeded its budget (template 5 s, LibreOffice 20 s, Chromium 15 s). Simplify the template or reduce the data.",
            "content": {
              "application/json": {
                "example": {
                  "detail": {
                    "code": "render_timeout",
                    "engine": "libreoffice",
                    "message": "libreoffice did not finish within 20s; simplify the template or reduce the data"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/documents/preset/letter": {
      "post": {
        "tags": [
          "Ready-made documents"
        ],
        "summary": "Generate a letter",
        "description": "Generate a business letter from sender, recipient and paragraph data as PDF, editable DOCX, HTML or JSON.",
        "operationId": "Generate letter",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LetterRequest"
              },
              "example": {
                "data": {
                  "sender": {
                    "name": "Ada Lovelace",
                    "address": [
                      "Ockham Park",
                      "Surrey"
                    ]
                  },
                  "recipient": {
                    "name": "Charles Babbage",
                    "address": [
                      "1 Dorset Street",
                      "London"
                    ]
                  },
                  "date": "18 September 2026",
                  "subject": "Notes on the Analytical Engine",
                  "salutation": "Dear Mr Babbage,",
                  "paragraphs": [
                    "Thank you for the drawings you sent last week. I have annotated the punched-card sequence and enclose my notes.",
                    "I believe the engine might act upon other things besides number, were objects found whose mutual fundamental relations could be expressed by those of the abstract science of operations."
                  ],
                  "closing": "Yours faithfully,",
                  "signature": "A. A. L."
                },
                "format": "pdf"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The generated document",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "format": {
                      "type": "string",
                      "enum": [
                        "docx",
                        "pdf",
                        "html"
                      ]
                    },
                    "media_type": {
                      "type": "string"
                    },
                    "pages": {
                      "type": "integer",
                      "nullable": true,
                      "description": "PDF page count (null for DOCX/HTML)"
                    },
                    "bytes": {
                      "type": "integer"
                    },
                    "data_uri": {
                      "type": "string",
                      "description": "`data:<media_type>;base64,…`"
                    },
                    "warnings": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "engine": {
                      "type": "string"
                    },
                    "engine_version": {
                      "type": "string"
                    },
                    "cache": {
                      "type": "string",
                      "enum": [
                        "hit",
                        "miss"
                      ]
                    },
                    "render_ms": {
                      "type": "integer"
                    },
                    "queued_ms": {
                      "type": "integer"
                    }
                  }
                }
              },
              "application/pdf": {},
              "text/html": {},
              "application/vnd.openxmlformats-officedocument.wordprocessingml.document": {}
            }
          },
          "401": {
            "description": "Authentication failed. Verify the RapidAPI subscription and generated request headers."
          },
          "403": {
            "description": "Refused by the gateway: the plan excludes this format or feature (`plan_excludes_feature`)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "413": {
            "description": "The request body exceeds the configured gateway or endpoint limit."
          },
          "422": {
            "description": "Rejected before or during rendering. `invalid_request`: a field failed the schema — `errors[].loc` names it. `bad_template`: the upload is not a usable template (not a .docx, too large, contains macros or external links) or the output breaks a limit (pages, bytes). `template_error`: the template's Jinja syntax is broken — `errors[].line` says where. `data_error`: the data does not fit the template (missing variable, malformed JSON, wrong shape).",
            "content": {
              "application/json": {
                "examples": {
                  "template_error": {
                    "value": {
                      "detail": {
                        "code": "template_error",
                        "engine": "docx",
                        "message": "template syntax error at line 5: Encountered unknown tag 'endfo'.",
                        "errors": [
                          {
                            "line": 5,
                            "message": "Encountered unknown tag 'endfo'."
                          }
                        ],
                        "context": [
                          "{% for x in items %}",
                          "{{ x }}",
                          "{% endfo %}"
                        ]
                      }
                    }
                  },
                  "data_error": {
                    "value": {
                      "detail": {
                        "code": "data_error",
                        "engine": "docx",
                        "message": "template refers to missing data: 'customer' is undefined"
                      }
                    }
                  },
                  "bad_template": {
                    "value": {
                      "detail": {
                        "code": "bad_template",
                        "engine": "docx",
                        "message": "template contains macros (VBA project); remove them"
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "The subscriber's rate limit or monthly request allowance was exceeded."
          },
          "502": {
            "description": "The origin service is temporarily unavailable."
          },
          "503": {
            "description": "`busy`: the node's render queue is full — honour `Retry-After` (seconds) and resend. `engine_unavailable`: LibreOffice or Chromium is missing or restarting on this node. Both carry `Retry-After`.",
            "headers": {
              "Retry-After": {
                "schema": {
                  "type": "integer"
                },
                "description": "Seconds to wait before retrying"
              }
            },
            "content": {
              "application/json": {
                "example": {
                  "detail": {
                    "code": "busy",
                    "engine": "docx",
                    "message": "12 documents are already queued on this node; retry shortly"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "504": {
            "description": "`render_timeout`: a stage exceeded its budget (template 5 s, LibreOffice 20 s, Chromium 15 s). Simplify the template or reduce the data.",
            "content": {
              "application/json": {
                "example": {
                  "detail": {
                    "code": "render_timeout",
                    "engine": "libreoffice",
                    "message": "libreoffice did not finish within 20s; simplify the template or reduce the data"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/documents/preset/report": {
      "post": {
        "tags": [
          "Ready-made documents"
        ],
        "summary": "Generate a report",
        "description": "Generate a structured report with sections, paragraphs, bullet lists and tables.",
        "operationId": "Generate report",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReportRequest"
              },
              "example": {
                "data": {
                  "title": "Quarterly Operations Review",
                  "subtitle": "Q3 2026",
                  "author": "Operations",
                  "date": "18 September 2026",
                  "summary": "Throughput rose 18% quarter on quarter while p95 latency stayed under target.",
                  "sections": [
                    {
                      "heading": "Volume",
                      "paragraphs": [
                        "Requests grew steadily through the quarter."
                      ],
                      "table": {
                        "caption": "Monthly requests",
                        "columns": [
                          "Month",
                          "Requests",
                          "p95 ms"
                        ],
                        "rows": [
                          [
                            "July",
                            120000,
                            410
                          ],
                          [
                            "August",
                            134000,
                            395
                          ],
                          [
                            "September",
                            142000,
                            388
                          ]
                        ]
                      }
                    },
                    {
                      "heading": "Risks",
                      "bullets": [
                        "Single-node hosting",
                        "Marketplace payout delays"
                      ]
                    }
                  ],
                  "footer": "Internal — do not distribute"
                },
                "format": "pdf"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The generated document",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "format": {
                      "type": "string",
                      "enum": [
                        "docx",
                        "pdf",
                        "html"
                      ]
                    },
                    "media_type": {
                      "type": "string"
                    },
                    "pages": {
                      "type": "integer",
                      "nullable": true,
                      "description": "PDF page count (null for DOCX/HTML)"
                    },
                    "bytes": {
                      "type": "integer"
                    },
                    "data_uri": {
                      "type": "string",
                      "description": "`data:<media_type>;base64,…`"
                    },
                    "warnings": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "engine": {
                      "type": "string"
                    },
                    "engine_version": {
                      "type": "string"
                    },
                    "cache": {
                      "type": "string",
                      "enum": [
                        "hit",
                        "miss"
                      ]
                    },
                    "render_ms": {
                      "type": "integer"
                    },
                    "queued_ms": {
                      "type": "integer"
                    }
                  }
                }
              },
              "application/pdf": {},
              "text/html": {},
              "application/vnd.openxmlformats-officedocument.wordprocessingml.document": {}
            }
          },
          "401": {
            "description": "Authentication failed. Verify the RapidAPI subscription and generated request headers."
          },
          "403": {
            "description": "Refused by the gateway: the plan excludes this format or feature (`plan_excludes_feature`)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "413": {
            "description": "The request body exceeds the configured gateway or endpoint limit."
          },
          "422": {
            "description": "Rejected before or during rendering. `invalid_request`: a field failed the schema — `errors[].loc` names it. `bad_template`: the upload is not a usable template (not a .docx, too large, contains macros or external links) or the output breaks a limit (pages, bytes). `template_error`: the template's Jinja syntax is broken — `errors[].line` says where. `data_error`: the data does not fit the template (missing variable, malformed JSON, wrong shape).",
            "content": {
              "application/json": {
                "examples": {
                  "template_error": {
                    "value": {
                      "detail": {
                        "code": "template_error",
                        "engine": "docx",
                        "message": "template syntax error at line 5: Encountered unknown tag 'endfo'.",
                        "errors": [
                          {
                            "line": 5,
                            "message": "Encountered unknown tag 'endfo'."
                          }
                        ],
                        "context": [
                          "{% for x in items %}",
                          "{{ x }}",
                          "{% endfo %}"
                        ]
                      }
                    }
                  },
                  "data_error": {
                    "value": {
                      "detail": {
                        "code": "data_error",
                        "engine": "docx",
                        "message": "template refers to missing data: 'customer' is undefined"
                      }
                    }
                  },
                  "bad_template": {
                    "value": {
                      "detail": {
                        "code": "bad_template",
                        "engine": "docx",
                        "message": "template contains macros (VBA project); remove them"
                      }
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "The subscriber's rate limit or monthly request allowance was exceeded."
          },
          "502": {
            "description": "The origin service is temporarily unavailable."
          },
          "503": {
            "description": "`busy`: the node's render queue is full — honour `Retry-After` (seconds) and resend. `engine_unavailable`: LibreOffice or Chromium is missing or restarting on this node. Both carry `Retry-After`.",
            "headers": {
              "Retry-After": {
                "schema": {
                  "type": "integer"
                },
                "description": "Seconds to wait before retrying"
              }
            },
            "content": {
              "application/json": {
                "example": {
                  "detail": {
                    "code": "busy",
                    "engine": "docx",
                    "message": "12 documents are already queued on this node; retry shortly"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "504": {
            "description": "`render_timeout`: a stage exceeded its budget (template 5 s, LibreOffice 20 s, Chromium 15 s). Simplify the template or reduce the data.",
            "content": {
              "application/json": {
                "example": {
                  "detail": {
                    "code": "render_timeout",
                    "engine": "libreoffice",
                    "message": "libreoffice did not finish within 20s; simplify the template or reduce the data"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/einvoice/create": {
      "post": {
        "tags": [
          "E-invoices"
        ],
        "summary": "Create an e-invoice",
        "description": "Send the invoice as JSON and receive a finished e-invoice. `standard` picks the format:\n`zugferd` or `facturx` return a PDF/A-3 with the EN 16931 XML embedded (Germany,\nFrance); `xrechnung` returns XRechnung 3.0 UBL XML (German public sector); `peppol`\nreturns Peppol BIS Billing 3.0 UBL XML. Totals and VAT are calculated with EN 16931\nrounding.\n\nEvery invoice is checked against the official rules (EN 16931, plus XRechnung or\nPeppol) before it is returned. If a rule fails you receive `422 einvoice_invalid` with\nthe rule ID and a `hint` naming the field to set, never an invalid file.\n\n**More examples:** set `standard` to `xrechnung` for XRechnung XML, or to `peppol` and add `electronic_address` Peppol IDs (e.g. `9930:DE123456789`) to `seller` and `buyer`. `format: json` returns the file as a data URI together with the XML and the calculated totals.",
        "operationId": "Create e-invoice",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRequest"
              },
              "example": {
                "standard": "zugferd",
                "invoice": {
                  "number": "RE-2026-0042",
                  "issue_date": "2026-09-23",
                  "due_date": "2026-10-23",
                  "buyer_reference": "PO-7781",
                  "seller": {
                    "name": "Callable Labs GmbH",
                    "street": "Musterstraße 1",
                    "city": "Berlin",
                    "postal_code": "10115",
                    "country": "DE",
                    "vat_id": "DE123456789",
                    "email": "billing@callable.example",
                    "phone": "+49 30 1234567",
                    "contact_name": "Ada Lovelace"
                  },
                  "buyer": {
                    "name": "Analytical Engines AG",
                    "street": "Hauptstraße 5",
                    "city": "München",
                    "postal_code": "80331",
                    "country": "DE",
                    "vat_id": "DE987654321",
                    "email": "ap@engines.example"
                  },
                  "lines": [
                    {
                      "description": "Consulting",
                      "quantity": 12,
                      "unit": "HUR",
                      "unit_price": 95,
                      "vat_rate": 19
                    },
                    {
                      "description": "Document API — Pro plan",
                      "quantity": 1,
                      "unit_price": 12,
                      "vat_rate": 19
                    }
                  ],
                  "payment": {
                    "iban": "DE02120300000000202051",
                    "bic": "BYLADEM1001",
                    "terms": "Payable within 30 days without deduction."
                  }
                },
                "format": "pdf"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The e-invoice: a ZUGFeRD/Factur-X PDF, an XRechnung/Peppol XML, or JSON with a data URI",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "format": {
                      "type": "string",
                      "enum": [
                        "pdf",
                        "xml"
                      ]
                    },
                    "media_type": {
                      "type": "string"
                    },
                    "pages": {
                      "type": "integer",
                      "description": "PDF page count (null for DOCX/HTML)",
                      "nullable": true
                    },
                    "bytes": {
                      "type": "integer"
                    },
                    "data_uri": {
                      "type": "string",
                      "description": "`data:<media_type>;base64,…`"
                    },
                    "warnings": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "engine": {
                      "type": "string"
                    },
                    "engine_version": {
                      "type": "string"
                    },
                    "cache": {
                      "type": "string",
                      "enum": [
                        "hit",
                        "miss"
                      ]
                    },
                    "render_ms": {
                      "type": "integer"
                    },
                    "queued_ms": {
                      "type": "integer"
                    },
                    "standard": {
                      "type": "string"
                    },
                    "xml": {
                      "type": "string",
                      "description": "The invoice XML (also embedded in the PDF for zugferd/facturx)"
                    },
                    "totals": {
                      "type": "object",
                      "description": "Computed totals and VAT breakdown"
                    }
                  },
                  "type": "object"
                }
              },
              "application/pdf": {},
              "application/xml": {}
            }
          },
          "401": {
            "description": "Authentication failed. Verify the RapidAPI subscription and generated request headers."
          },
          "403": {
            "description": "Refused by the gateway: the plan excludes this format or feature (`plan_excludes_feature`)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "413": {
            "description": "The request body exceeds the configured gateway or endpoint limit."
          },
          "422": {
            "description": "`invalid_request`: a field failed the schema (`errors[].loc`). `einvoice_invalid`: the data is complete JSON but would not be a valid e-invoice for the chosen standard; `errors[]` lists each official rule broken (`rule`, `message`, and a `hint` naming the field to set).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "example": {
                  "detail": {
                    "code": "einvoice_invalid",
                    "standard": "xrechnung",
                    "message": "the invoice is not a valid xrechnung e-invoice: BR-DE-15 [BR-DE-15] Das Element \"Buyer reference\" (BT-10) muss übermittelt werden.",
                    "errors": [
                      {
                        "rule": "BR-DE-15",
                        "check": "xrechnung",
                        "message": "[BR-DE-15] Das Element \"Buyer reference\" (BT-10) muss übermittelt werden.",
                        "location": "/Invoice",
                        "hint": "set `invoice.buyer_reference` (the Leitweg-ID for German public buyers, otherwise the buyer's reference)"
                      }
                    ]
                  }
                }
              }
            }
          },
          "429": {
            "description": "The subscriber's rate limit or monthly request allowance was exceeded."
          },
          "502": {
            "description": "The origin service is temporarily unavailable."
          },
          "503": {
            "description": "`busy`: the node's render queue is full — honour `Retry-After` (seconds) and resend. `engine_unavailable`: LibreOffice or Chromium is missing or restarting on this node. Both carry `Retry-After`.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "example": {
                  "detail": {
                    "code": "busy",
                    "engine": "docx",
                    "message": "12 documents are already queued on this node; retry shortly"
                  }
                }
              }
            }
          },
          "504": {
            "description": "`render_timeout`: a stage exceeded its budget (template 5 s, LibreOffice 20 s, Chromium 15 s). Simplify the template or reduce the data.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "example": {
                  "detail": {
                    "code": "render_timeout",
                    "engine": "libreoffice",
                    "message": "libreoffice did not finish within 20s; simplify the template or reduce the data"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/einvoice/validate": {
      "post": {
        "tags": [
          "E-invoices"
        ],
        "summary": "Validate an e-invoice",
        "description": "Check an XRechnung, Peppol, ZUGFeRD or Factur-X invoice (XML, or the PDF) against the XML Schema, the EN 16931 business rules and the XRechnung or Peppol rules it claims. Rule failures are listed with their official IDs and locations. Send the XML as JSON (`xml`), a base64 file (`file_base64`) or a multipart `file` upload.",
        "operationId": "Validate e-invoice",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary",
                    "description": "An e-invoice: XML (CII or UBL) or a ZUGFeRD / Factur-X PDF (≤ 10 MiB)."
                  }
                },
                "type": "object",
                "required": [
                  "file"
                ]
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentInput"
              },
              "example": {
                "xml": "<?xml version='1.0' encoding='UTF-8'?>\n<Invoice xmlns=\"urn:oasis:names:specification:ubl:schema:xsd:Invoice-2\" xmlns:cac=\"urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2\" xmlns:cbc=\"urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2\">\n  <cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0</cbc:CustomizationID>\n  <cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>\n  <cbc:ID>RE-2026-0042</cbc:ID>\n  <cbc:IssueDate>2026-09-23</cbc:IssueDate>\n  <cbc:DueDate>2026-10-23</cbc:DueDate>\n  <cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>\n  <cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>\n  <cbc:BuyerReference>PO-7781</cbc:BuyerReference>\n  <cac:AccountingSupplierParty>\n    <cac:Party>\n      <cbc:EndpointID schemeID=\"EM\">billing@callable.example</cbc:EndpointID>\n      <cac:PostalAddress>\n        <cbc:StreetName>Musterstraße 1</cbc:StreetName>\n        <cbc:CityName>Berlin</cbc:CityName>\n        <cbc:PostalZone>10115</cbc:PostalZone>\n        <cac:Country>\n          <cbc:IdentificationCode>DE</cbc:IdentificationCode>\n        </cac:Country>\n      </cac:PostalAddress>\n      <cac:PartyTaxScheme>\n        <cbc:CompanyID>DE123456789</cbc:CompanyID>\n        <cac:TaxScheme>\n          <cbc:ID>VAT</cbc:ID>\n        </cac:TaxScheme>\n      </cac:PartyTaxScheme>\n      <cac:PartyLegalEntity>\n        <cbc:RegistrationName>Callable Labs GmbH</cbc:RegistrationName>\n      </cac:PartyLegalEntity>\n      <cac:Contact>\n        <cbc:Name>Ada Lovelace</cbc:Name>\n        <cbc:Telephone>+49 30 1234567</cbc:Telephone>\n        <cbc:ElectronicMail>billing@callable.example</cbc:ElectronicMail>\n      </cac:Contact>\n    </cac:Party>\n  </cac:AccountingSupplierParty>\n  <cac:AccountingCustomerParty>\n    <cac:Party>\n      <cbc:EndpointID schemeID=\"EM\">ap@engines.example</cbc:EndpointID>\n      <cac:PostalAddress>\n        <cbc:StreetName>Hauptstraße 5</cbc:StreetName>\n        <cbc:CityName>München</cbc:CityName>\n        <cbc:PostalZone>80331</cbc:PostalZone>\n        <cac:Country>\n          <cbc:IdentificationCode>DE</cbc:IdentificationCode>\n        </cac:Country>\n      </cac:PostalAddress>\n      <cac:PartyTaxScheme>\n        <cbc:CompanyID>DE987654321</cbc:CompanyID>\n        <cac:TaxScheme>\n          <cbc:ID>VAT</cbc:ID>\n        </cac:TaxScheme>\n      </cac:PartyTaxScheme>\n      <cac:PartyLegalEntity>\n        <cbc:RegistrationName>Analytical Engines AG</cbc:RegistrationName>\n      </cac:PartyLegalEntity>\n      <cac:Contact>\n        <cbc:ElectronicMail>ap@engines.example</cbc:ElectronicMail>\n      </cac:Contact>\n    </cac:Party>\n  </cac:AccountingCustomerParty>\n  <cac:PaymentMeans>\n    <cbc:PaymentMeansCode>58</cbc:PaymentMeansCode>\n    <cac:PayeeFinancialAccount>\n      <cbc:ID>DE02120300000000202051</cbc:ID>\n      <cac:FinancialInstitutionBranch>\n        <cbc:ID>BYLADEM1001</cbc:ID>\n      </cac:FinancialInstitutionBranch>\n    </cac:PayeeFinancialAccount>\n  </cac:PaymentMeans>\n  <cac:PaymentTerms>\n    <cbc:Note>Payable within 30 days without deduction.</cbc:Note>\n  </cac:PaymentTerms>\n  <cac:TaxTotal>\n    <cbc:TaxAmount currencyID=\"EUR\">218.88</cbc:TaxAmount>\n    <cac:TaxSubtotal>\n      <cbc:TaxableAmount currencyID=\"EUR\">1152.00</cbc:TaxableAmount>\n      <cbc:TaxAmount currencyID=\"EUR\">218.88</cbc:TaxAmount>\n      <cac:TaxCategory>\n        <cbc:ID>S</cbc:ID>\n        <cbc:Percent>19</cbc:Percent>\n        <cac:TaxScheme>\n          <cbc:ID>VAT</cbc:ID>\n        </cac:TaxScheme>\n      </cac:TaxCategory>\n    </cac:TaxSubtotal>\n  </cac:TaxTotal>\n  <cac:LegalMonetaryTotal>\n    <cbc:LineExtensionAmount currencyID=\"EUR\">1152.00</cbc:LineExtensionAmount>\n    <cbc:TaxExclusiveAmount currencyID=\"EUR\">1152.00</cbc:TaxExclusiveAmount>\n    <cbc:TaxInclusiveAmount currencyID=\"EUR\">1370.88</cbc:TaxInclusiveAmount>\n    <cbc:PayableAmount currencyID=\"EUR\">1370.88</cbc:PayableAmount>\n  </cac:LegalMonetaryTotal>\n  <cac:InvoiceLine>\n    <cbc:ID>1</cbc:ID>\n    <cbc:InvoicedQuantity unitCode=\"HUR\">12</cbc:InvoicedQuantity>\n    <cbc:LineExtensionAmount currencyID=\"EUR\">1140.00</cbc:LineExtensionAmount>\n    <cac:Item>\n      <cbc:Name>Consulting</cbc:Name>\n      <cac:ClassifiedTaxCategory>\n        <cbc:ID>S</cbc:ID>\n        <cbc:Percent>19</cbc:Percent>\n        <cac:TaxScheme>\n          <cbc:ID>VAT</cbc:ID>\n        </cac:TaxScheme>\n      </cac:ClassifiedTaxCategory>\n    </cac:Item>\n    <cac:Price>\n      <cbc:PriceAmount currencyID=\"EUR\">95</cbc:PriceAmount>\n    </cac:Price>\n  </cac:InvoiceLine>\n  <cac:InvoiceLine>\n    <cbc:ID>2</cbc:ID>\n    <cbc:InvoicedQuantity unitCode=\"C62\">1</cbc:InvoicedQuantity>\n    <cbc:LineExtensionAmount currencyID=\"EUR\">12.00</cbc:LineExtensionAmount>\n    <cac:Item>\n      <cbc:Name>Document API — Pro plan</cbc:Name>\n      <cac:ClassifiedTaxCategory>\n        <cbc:ID>S</cbc:ID>\n        <cbc:Percent>19</cbc:Percent>\n        <cac:TaxScheme>\n          <cbc:ID>VAT</cbc:ID>\n        </cac:TaxScheme>\n      </cac:ClassifiedTaxCategory>\n    </cac:Item>\n    <cac:Price>\n      <cbc:PriceAmount currencyID=\"EUR\">12</cbc:PriceAmount>\n    </cac:Price>\n  </cac:InvoiceLine>\n</Invoice>\n"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Validation report. Rule failures are reported here with `valid: false`, not as HTTP errors.",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "valid": {
                      "type": "boolean"
                    },
                    "standard": {
                      "type": "string",
                      "enum": [
                        "xrechnung",
                        "peppol",
                        "facturx",
                        "en16931",
                        "unknown"
                      ],
                      "description": "`facturx` covers ZUGFeRD 2.x and Factur-X"
                    },
                    "profile": {
                      "type": "string",
                      "example": "XRechnung 3.0"
                    },
                    "syntax": {
                      "type": "string",
                      "enum": [
                        "cii",
                        "ubl"
                      ]
                    },
                    "document_type": {
                      "type": "string",
                      "enum": [
                        "invoice",
                        "credit_note"
                      ]
                    },
                    "specification_id": {
                      "type": "string",
                      "description": "BT-24 as found in the document"
                    },
                    "container": {
                      "type": "string",
                      "enum": [
                        "xml",
                        "pdf"
                      ]
                    },
                    "checks": {
                      "items": {
                        "type": "object"
                      },
                      "type": "array",
                      "description": "One entry per check run: `xsd`, `en16931`, then `xrechnung` or `peppol`"
                    },
                    "errors": {
                      "items": {
                        "properties": {
                          "rule": {
                            "type": "string",
                            "description": "Official rule ID, e.g. `BR-DE-15`, `BR-CO-10`, `PEPPOL-EN16931-R010`, or `XSD`"
                          },
                          "check": {
                            "type": "string",
                            "description": "`xsd`, `en16931`, `xrechnung`, `peppol`"
                          },
                          "message": {
                            "type": "string"
                          },
                          "location": {
                            "type": "string",
                            "description": "XPath of the offending element, or `line N` for schema errors"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "warnings": {
                      "items": {
                        "properties": {
                          "rule": {
                            "type": "string",
                            "description": "Official rule ID, e.g. `BR-DE-15`, `BR-CO-10`, `PEPPOL-EN16931-R010`, or `XSD`"
                          },
                          "check": {
                            "type": "string",
                            "description": "`xsd`, `en16931`, `xrechnung`, `peppol`"
                          },
                          "message": {
                            "type": "string"
                          },
                          "location": {
                            "type": "string",
                            "description": "XPath of the offending element, or `line N` for schema errors"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "additionalProperties": true,
                  "type": "object",
                  "title": "Response Validate Einvoice"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed. Verify the RapidAPI subscription and generated request headers."
          },
          "413": {
            "description": "The request body exceeds the configured gateway or endpoint limit."
          },
          "422": {
            "description": "`invalid_request` (no file) or `bad_einvoice` (not XML/PDF, a PDF without embedded XML, or neither CII nor UBL)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "The subscriber's rate limit or monthly request allowance was exceeded."
          },
          "502": {
            "description": "The origin service is temporarily unavailable."
          },
          "503": {
            "description": "`engine_unavailable`: validation rules are not installed on this node",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/einvoice/parse": {
      "post": {
        "tags": [
          "E-invoices"
        ],
        "summary": "Read an e-invoice as JSON",
        "description": "Turn an incoming e-invoice (CII or UBL XML, or a ZUGFeRD/Factur-X PDF) into JSON: parties, lines, VAT, payment details and the totals stated in the document, in the same shape used by the create endpoint, plus read-only line net amounts. Parsing does not validate; call validate for that. Review `notes` for unmapped content before reuse.",
        "operationId": "Parse e-invoice",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary",
                    "description": "An e-invoice: XML (CII or UBL) or a ZUGFeRD / Factur-X PDF (≤ 10 MiB)."
                  }
                },
                "type": "object",
                "required": [
                  "file"
                ]
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentInput"
              },
              "example": {
                "xml": "<?xml version='1.0' encoding='UTF-8'?>\n<Invoice xmlns=\"urn:oasis:names:specification:ubl:schema:xsd:Invoice-2\" xmlns:cac=\"urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2\" xmlns:cbc=\"urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2\">\n  <cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0</cbc:CustomizationID>\n  <cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>\n  <cbc:ID>RE-2026-0042</cbc:ID>\n  <cbc:IssueDate>2026-09-23</cbc:IssueDate>\n  <cbc:DueDate>2026-10-23</cbc:DueDate>\n  <cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>\n  <cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>\n  <cbc:BuyerReference>PO-7781</cbc:BuyerReference>\n  <cac:AccountingSupplierParty>\n    <cac:Party>\n      <cbc:EndpointID schemeID=\"EM\">billing@callable.example</cbc:EndpointID>\n      <cac:PostalAddress>\n        <cbc:StreetName>Musterstraße 1</cbc:StreetName>\n        <cbc:CityName>Berlin</cbc:CityName>\n        <cbc:PostalZone>10115</cbc:PostalZone>\n        <cac:Country>\n          <cbc:IdentificationCode>DE</cbc:IdentificationCode>\n        </cac:Country>\n      </cac:PostalAddress>\n      <cac:PartyTaxScheme>\n        <cbc:CompanyID>DE123456789</cbc:CompanyID>\n        <cac:TaxScheme>\n          <cbc:ID>VAT</cbc:ID>\n        </cac:TaxScheme>\n      </cac:PartyTaxScheme>\n      <cac:PartyLegalEntity>\n        <cbc:RegistrationName>Callable Labs GmbH</cbc:RegistrationName>\n      </cac:PartyLegalEntity>\n      <cac:Contact>\n        <cbc:Name>Ada Lovelace</cbc:Name>\n        <cbc:Telephone>+49 30 1234567</cbc:Telephone>\n        <cbc:ElectronicMail>billing@callable.example</cbc:ElectronicMail>\n      </cac:Contact>\n    </cac:Party>\n  </cac:AccountingSupplierParty>\n  <cac:AccountingCustomerParty>\n    <cac:Party>\n      <cbc:EndpointID schemeID=\"EM\">ap@engines.example</cbc:EndpointID>\n      <cac:PostalAddress>\n        <cbc:StreetName>Hauptstraße 5</cbc:StreetName>\n        <cbc:CityName>München</cbc:CityName>\n        <cbc:PostalZone>80331</cbc:PostalZone>\n        <cac:Country>\n          <cbc:IdentificationCode>DE</cbc:IdentificationCode>\n        </cac:Country>\n      </cac:PostalAddress>\n      <cac:PartyTaxScheme>\n        <cbc:CompanyID>DE987654321</cbc:CompanyID>\n        <cac:TaxScheme>\n          <cbc:ID>VAT</cbc:ID>\n        </cac:TaxScheme>\n      </cac:PartyTaxScheme>\n      <cac:PartyLegalEntity>\n        <cbc:RegistrationName>Analytical Engines AG</cbc:RegistrationName>\n      </cac:PartyLegalEntity>\n      <cac:Contact>\n        <cbc:ElectronicMail>ap@engines.example</cbc:ElectronicMail>\n      </cac:Contact>\n    </cac:Party>\n  </cac:AccountingCustomerParty>\n  <cac:PaymentMeans>\n    <cbc:PaymentMeansCode>58</cbc:PaymentMeansCode>\n    <cac:PayeeFinancialAccount>\n      <cbc:ID>DE02120300000000202051</cbc:ID>\n      <cac:FinancialInstitutionBranch>\n        <cbc:ID>BYLADEM1001</cbc:ID>\n      </cac:FinancialInstitutionBranch>\n    </cac:PayeeFinancialAccount>\n  </cac:PaymentMeans>\n  <cac:PaymentTerms>\n    <cbc:Note>Payable within 30 days without deduction.</cbc:Note>\n  </cac:PaymentTerms>\n  <cac:TaxTotal>\n    <cbc:TaxAmount currencyID=\"EUR\">218.88</cbc:TaxAmount>\n    <cac:TaxSubtotal>\n      <cbc:TaxableAmount currencyID=\"EUR\">1152.00</cbc:TaxableAmount>\n      <cbc:TaxAmount currencyID=\"EUR\">218.88</cbc:TaxAmount>\n      <cac:TaxCategory>\n        <cbc:ID>S</cbc:ID>\n        <cbc:Percent>19</cbc:Percent>\n        <cac:TaxScheme>\n          <cbc:ID>VAT</cbc:ID>\n        </cac:TaxScheme>\n      </cac:TaxCategory>\n    </cac:TaxSubtotal>\n  </cac:TaxTotal>\n  <cac:LegalMonetaryTotal>\n    <cbc:LineExtensionAmount currencyID=\"EUR\">1152.00</cbc:LineExtensionAmount>\n    <cbc:TaxExclusiveAmount currencyID=\"EUR\">1152.00</cbc:TaxExclusiveAmount>\n    <cbc:TaxInclusiveAmount currencyID=\"EUR\">1370.88</cbc:TaxInclusiveAmount>\n    <cbc:PayableAmount currencyID=\"EUR\">1370.88</cbc:PayableAmount>\n  </cac:LegalMonetaryTotal>\n  <cac:InvoiceLine>\n    <cbc:ID>1</cbc:ID>\n    <cbc:InvoicedQuantity unitCode=\"HUR\">12</cbc:InvoicedQuantity>\n    <cbc:LineExtensionAmount currencyID=\"EUR\">1140.00</cbc:LineExtensionAmount>\n    <cac:Item>\n      <cbc:Name>Consulting</cbc:Name>\n      <cac:ClassifiedTaxCategory>\n        <cbc:ID>S</cbc:ID>\n        <cbc:Percent>19</cbc:Percent>\n        <cac:TaxScheme>\n          <cbc:ID>VAT</cbc:ID>\n        </cac:TaxScheme>\n      </cac:ClassifiedTaxCategory>\n    </cac:Item>\n    <cac:Price>\n      <cbc:PriceAmount currencyID=\"EUR\">95</cbc:PriceAmount>\n    </cac:Price>\n  </cac:InvoiceLine>\n  <cac:InvoiceLine>\n    <cbc:ID>2</cbc:ID>\n    <cbc:InvoicedQuantity unitCode=\"C62\">1</cbc:InvoicedQuantity>\n    <cbc:LineExtensionAmount currencyID=\"EUR\">12.00</cbc:LineExtensionAmount>\n    <cac:Item>\n      <cbc:Name>Document API — Pro plan</cbc:Name>\n      <cac:ClassifiedTaxCategory>\n        <cbc:ID>S</cbc:ID>\n        <cbc:Percent>19</cbc:Percent>\n        <cac:TaxScheme>\n          <cbc:ID>VAT</cbc:ID>\n        </cac:TaxScheme>\n      </cac:ClassifiedTaxCategory>\n    </cac:Item>\n    <cac:Price>\n      <cbc:PriceAmount currencyID=\"EUR\">12</cbc:PriceAmount>\n    </cac:Price>\n  </cac:InvoiceLine>\n</Invoice>\n"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Parsed invoice data including read-only line net_amount values, stated totals, and notes about unmapped content. Parsing does not validate or guarantee a lossless round trip through create.",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "standard": {
                      "type": "string",
                      "enum": [
                        "xrechnung",
                        "peppol",
                        "facturx",
                        "en16931",
                        "unknown"
                      ],
                      "description": "`facturx` covers ZUGFeRD 2.x and Factur-X"
                    },
                    "profile": {
                      "type": "string",
                      "example": "XRechnung 3.0"
                    },
                    "syntax": {
                      "type": "string",
                      "enum": [
                        "cii",
                        "ubl"
                      ]
                    },
                    "document_type": {
                      "type": "string",
                      "enum": [
                        "invoice",
                        "credit_note"
                      ]
                    },
                    "specification_id": {
                      "type": "string",
                      "description": "BT-24 as found in the document"
                    },
                    "container": {
                      "type": "string",
                      "enum": [
                        "xml",
                        "pdf"
                      ]
                    },
                    "invoice": {
                      "type": "object",
                      "description": "Same fields as `create`'s `invoice`"
                    },
                    "totals": {
                      "type": "object",
                      "description": "Totals and VAT breakdown exactly as stated in the document"
                    },
                    "notes": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array",
                      "description": "Content that is not represented in `invoice` (allowances, charges, other type codes)"
                    }
                  },
                  "additionalProperties": true,
                  "type": "object",
                  "title": "Response Parse Einvoice"
                },
                "example": {
                  "standard": "xrechnung",
                  "profile": "XRechnung 3.0",
                  "syntax": "ubl",
                  "document_type": "invoice",
                  "specification_id": "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0",
                  "container": "xml",
                  "invoice": {
                    "type": "invoice",
                    "number": "RE-2026-0042",
                    "issue_date": "2026-09-23",
                    "due_date": "2026-10-23",
                    "currency": "EUR",
                    "buyer_reference": "PO-7781",
                    "seller": {
                      "name": "Callable Labs GmbH",
                      "street": "Musterstraße 1",
                      "city": "Berlin",
                      "postal_code": "10115",
                      "country": "DE",
                      "vat_id": "DE123456789",
                      "email": "billing@callable.example",
                      "phone": "+49 30 1234567",
                      "contact_name": "Ada Lovelace",
                      "electronic_address": "billing@callable.example"
                    },
                    "buyer": {
                      "name": "Analytical Engines AG",
                      "street": "Hauptstraße 5",
                      "city": "München",
                      "postal_code": "80331",
                      "country": "DE",
                      "vat_id": "DE987654321",
                      "email": "ap@engines.example",
                      "electronic_address": "ap@engines.example"
                    },
                    "lines": [
                      {
                        "description": "Consulting",
                        "quantity": 12,
                        "unit": "HUR",
                        "unit_price": 95,
                        "vat_rate": 19,
                        "vat_category": "S",
                        "net_amount": 1140
                      },
                      {
                        "description": "Document API — Pro plan",
                        "quantity": 1,
                        "unit": "C62",
                        "unit_price": 12,
                        "vat_rate": 19,
                        "vat_category": "S",
                        "net_amount": 12
                      }
                    ],
                    "payment": {
                      "iban": "DE02120300000000202051",
                      "bic": "BYLADEM1001",
                      "terms": "Payable within 30 days without deduction.",
                      "means_code": "58"
                    }
                  },
                  "totals": {
                    "line_total": 1152,
                    "tax_total": 218.88,
                    "total": 1370.88,
                    "amount_due": 1370.88,
                    "vat": [
                      {
                        "category": "S",
                        "rate": 19,
                        "taxable_amount": 1152,
                        "tax_amount": 218.88,
                        "exemption_reason": null
                      }
                    ]
                  },
                  "notes": []
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed. Verify the RapidAPI subscription and generated request headers."
          },
          "413": {
            "description": "The request body exceeds the configured gateway or endpoint limit."
          },
          "422": {
            "description": "`invalid_request` (no file) or `bad_einvoice` (not an e-invoice we can read)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "The subscriber's rate limit or monthly request allowance was exceeded."
          },
          "502": {
            "description": "The origin service is temporarily unavailable."
          },
          "503": {
            "description": "The service is unavailable or busy. Retry after `Retry-After` seconds, with backoff.",
            "headers": {
              "Retry-After": {
                "schema": {
                  "type": "integer"
                },
                "description": "Suggested retry delay in seconds."
              }
            }
          }
        }
      }
    },
    "/v1/documents/render": {
      "post": {
        "tags": [
          "Your templates"
        ],
        "summary": "Fill a DOCX template",
        "description": "Upload an existing Word template containing Jinja tags such as `{{ customer.name }}`\nand send its JSON values. Return editable DOCX or PDF; the default JSON response\ncarries the DOCX as a data URI. Multipart file upload and base64 JSON are supported.\n\nTemplates may contain loops, conditionals, repeating table rows and embedded images.\nThey run without filesystem or network access and missing variables return a\nstructured `data_error` instead of a partially filled document.",
        "operationId": "Fill DOCX template",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "template": {
                    "type": "string",
                    "format": "binary",
                    "description": "The .docx template (≤ 5 MiB). Jinja tags: `{{ var }}`, `{% for %}`, `{% if %}`, docxtpl `{%p`/`{%tr`/`{%tc` block tags."
                  },
                  "data": {
                    "type": "string",
                    "description": "JSON object with the template's values (≤ 256 KiB).",
                    "example": "{\"customer\": {\"name\": \"Ada\"}, \"items\": [{\"name\": \"Widget\", \"qty\": 2, \"price\": 9.5}]}"
                  },
                  "format": {
                    "type": "string",
                    "enum": [
                      "json",
                      "docx",
                      "pdf"
                    ],
                    "default": "json"
                  }
                },
                "type": "object",
                "required": [
                  "template"
                ]
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DocxJsonRequest"
              },
              "example": {
                "template_base64": "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",
                "data": {
                  "sender": {
                    "name": "Ada Lovelace",
                    "address": [
                      "Ockham Park",
                      "Surrey"
                    ],
                    "email": null,
                    "phone": null,
                    "tax_id": null
                  },
                  "recipient": {
                    "name": "Charles Babbage",
                    "address": [
                      "1 Dorset Street",
                      "London"
                    ],
                    "email": null,
                    "phone": null,
                    "tax_id": null
                  },
                  "date": "18 September 2026",
                  "subject": "Notes on the Analytical Engine",
                  "salutation": "Dear Mr Babbage,",
                  "paragraphs": [
                    "Thank you for the drawings you sent last week. I have annotated the punched-card sequence and enclose my notes.",
                    "I believe the engine might act upon other things besides number, were objects found whose mutual fundamental relations could be expressed by those of the abstract science of operations."
                  ],
                  "closing": "Yours faithfully,",
                  "signature": "A. A. L.",
                  "reference": null
                },
                "format": "docx"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The generated document",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "format": {
                      "type": "string",
                      "enum": [
                        "docx",
                        "pdf",
                        "html"
                      ]
                    },
                    "media_type": {
                      "type": "string"
                    },
                    "pages": {
                      "type": "integer",
                      "description": "PDF page count (null for DOCX/HTML)",
                      "nullable": true
                    },
                    "bytes": {
                      "type": "integer"
                    },
                    "data_uri": {
                      "type": "string",
                      "description": "`data:<media_type>;base64,…`"
                    },
                    "warnings": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "engine": {
                      "type": "string"
                    },
                    "engine_version": {
                      "type": "string"
                    },
                    "cache": {
                      "type": "string",
                      "enum": [
                        "hit",
                        "miss"
                      ]
                    },
                    "render_ms": {
                      "type": "integer"
                    },
                    "queued_ms": {
                      "type": "integer"
                    }
                  },
                  "type": "object"
                }
              },
              "application/vnd.openxmlformats-officedocument.wordprocessingml.document": {},
              "application/pdf": {}
            }
          },
          "401": {
            "description": "Authentication failed. Verify the RapidAPI subscription and generated request headers."
          },
          "403": {
            "description": "Refused by the gateway: the plan excludes this format or feature (`plan_excludes_feature`)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "413": {
            "description": "The request body exceeds the configured gateway or endpoint limit."
          },
          "422": {
            "description": "Rejected before or during rendering. `invalid_request`: a field failed the schema — `errors[].loc` names it. `bad_template`: the upload is not a usable template (not a .docx, too large, contains macros or external links) or the output breaks a limit (pages, bytes). `template_error`: the template's Jinja syntax is broken — `errors[].line` says where. `data_error`: the data does not fit the template (missing variable, malformed JSON, wrong shape).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "template_error": {
                    "value": {
                      "detail": {
                        "code": "template_error",
                        "engine": "docx",
                        "message": "template syntax error at line 5: Encountered unknown tag 'endfo'.",
                        "errors": [
                          {
                            "line": 5,
                            "message": "Encountered unknown tag 'endfo'."
                          }
                        ],
                        "context": [
                          "{% for x in items %}",
                          "{{ x }}",
                          "{% endfo %}"
                        ]
                      }
                    }
                  },
                  "data_error": {
                    "value": {
                      "detail": {
                        "code": "data_error",
                        "engine": "docx",
                        "message": "template refers to missing data: 'customer' is undefined"
                      }
                    }
                  },
                  "bad_template": {
                    "value": {
                      "detail": {
                        "code": "bad_template",
                        "engine": "docx",
                        "message": "template contains macros (VBA project); remove them"
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "The subscriber's rate limit or monthly request allowance was exceeded."
          },
          "502": {
            "description": "The origin service is temporarily unavailable."
          },
          "503": {
            "description": "`busy`: the node's render queue is full — honour `Retry-After` (seconds) and resend. `engine_unavailable`: LibreOffice or Chromium is missing or restarting on this node. Both carry `Retry-After`.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "example": {
                  "detail": {
                    "code": "busy",
                    "engine": "docx",
                    "message": "12 documents are already queued on this node; retry shortly"
                  }
                }
              }
            }
          },
          "504": {
            "description": "`render_timeout`: a stage exceeded its budget (template 5 s, LibreOffice 20 s, Chromium 15 s). Simplify the template or reduce the data.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "example": {
                  "detail": {
                    "code": "render_timeout",
                    "engine": "libreoffice",
                    "message": "libreoffice did not finish within 20s; simplify the template or reduce the data"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/documents/html": {
      "post": {
        "tags": [
          "Your templates"
        ],
        "summary": "Render an HTML or Markdown template",
        "description": "Render a Jinja2 HTML or Markdown template with JSON. Return HTML or a PDF printed by network-disabled Chromium with page size, orientation, margins and extra CSS.",
        "operationId": "Render HTML or Markdown",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HtmlRequest"
              },
              "example": {
                "template": "# Hello {{ name }}\n\nYour report is ready.",
                "markdown": true,
                "data": {
                  "name": "Ada"
                },
                "format": "pdf"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The generated document",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "format": {
                      "type": "string",
                      "enum": [
                        "docx",
                        "pdf",
                        "html"
                      ]
                    },
                    "media_type": {
                      "type": "string"
                    },
                    "pages": {
                      "type": "integer",
                      "description": "PDF page count (null for DOCX/HTML)",
                      "nullable": true
                    },
                    "bytes": {
                      "type": "integer"
                    },
                    "data_uri": {
                      "type": "string",
                      "description": "`data:<media_type>;base64,…`"
                    },
                    "warnings": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "engine": {
                      "type": "string"
                    },
                    "engine_version": {
                      "type": "string"
                    },
                    "cache": {
                      "type": "string",
                      "enum": [
                        "hit",
                        "miss"
                      ]
                    },
                    "render_ms": {
                      "type": "integer"
                    },
                    "queued_ms": {
                      "type": "integer"
                    }
                  },
                  "type": "object"
                }
              },
              "text/html": {},
              "application/pdf": {}
            }
          },
          "401": {
            "description": "Authentication failed. Verify the RapidAPI subscription and generated request headers."
          },
          "403": {
            "description": "Refused by the gateway: the plan excludes this format or feature (`plan_excludes_feature`)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "413": {
            "description": "The request body exceeds the configured gateway or endpoint limit."
          },
          "422": {
            "description": "Rejected before or during rendering. `invalid_request`: a field failed the schema — `errors[].loc` names it. `bad_template`: the upload is not a usable template (not a .docx, too large, contains macros or external links) or the output breaks a limit (pages, bytes). `template_error`: the template's Jinja syntax is broken — `errors[].line` says where. `data_error`: the data does not fit the template (missing variable, malformed JSON, wrong shape).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "template_error": {
                    "value": {
                      "detail": {
                        "code": "template_error",
                        "engine": "docx",
                        "message": "template syntax error at line 5: Encountered unknown tag 'endfo'.",
                        "errors": [
                          {
                            "line": 5,
                            "message": "Encountered unknown tag 'endfo'."
                          }
                        ],
                        "context": [
                          "{% for x in items %}",
                          "{{ x }}",
                          "{% endfo %}"
                        ]
                      }
                    }
                  },
                  "data_error": {
                    "value": {
                      "detail": {
                        "code": "data_error",
                        "engine": "docx",
                        "message": "template refers to missing data: 'customer' is undefined"
                      }
                    }
                  },
                  "bad_template": {
                    "value": {
                      "detail": {
                        "code": "bad_template",
                        "engine": "docx",
                        "message": "template contains macros (VBA project); remove them"
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "The subscriber's rate limit or monthly request allowance was exceeded."
          },
          "502": {
            "description": "The origin service is temporarily unavailable."
          },
          "503": {
            "description": "`busy`: the node's render queue is full — honour `Retry-After` (seconds) and resend. `engine_unavailable`: LibreOffice or Chromium is missing or restarting on this node. Both carry `Retry-After`.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "example": {
                  "detail": {
                    "code": "busy",
                    "engine": "docx",
                    "message": "12 documents are already queued on this node; retry shortly"
                  }
                }
              }
            }
          },
          "504": {
            "description": "`render_timeout`: a stage exceeded its budget (template 5 s, LibreOffice 20 s, Chromium 15 s). Simplify the template or reduce the data.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "example": {
                  "detail": {
                    "code": "render_timeout",
                    "engine": "libreoffice",
                    "message": "libreoffice did not finish within 20s; simplify the template or reduce the data"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/documents/validate": {
      "post": {
        "tags": [
          "Validate templates"
        ],
        "summary": "Validate a DOCX template",
        "description": "Upload a DOCX template and optionally its JSON data. Receive the variables it reads, missing and unused fields, and syntax errors with line numbers before rendering.",
        "operationId": "Validate DOCX template",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Body_validate_template"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Template analysis",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "engine": {
                      "type": "string"
                    },
                    "ok": {
                      "type": "boolean",
                      "description": "False when the template has syntax errors"
                    },
                    "variables": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array",
                      "description": "Top-level names the template reads"
                    },
                    "undefined": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array",
                      "description": "Variables `data` does not provide"
                    },
                    "unused": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array",
                      "description": "Keys of `data` no tag reads"
                    },
                    "syntax_errors": {
                      "items": {
                        "properties": {
                          "line": {
                            "type": "integer"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "additionalProperties": true,
                  "type": "object",
                  "title": "Response Validate Template"
                },
                "example": {
                  "engine": "docx",
                  "ok": true,
                  "variables": [
                    "customer",
                    "items",
                    "number"
                  ],
                  "undefined": [
                    "items"
                  ],
                  "unused": [
                    "extra"
                  ],
                  "syntax_errors": []
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed. Verify the RapidAPI subscription and generated request headers."
          },
          "413": {
            "description": "The request body exceeds the configured gateway or endpoint limit."
          },
          "422": {
            "description": "`invalid_request` (missing file) or `bad_template` (not a usable .docx)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "The subscriber's rate limit or monthly request allowance was exceeded."
          },
          "502": {
            "description": "The origin service is temporarily unavailable."
          },
          "503": {
            "description": "The service is unavailable or busy. Retry after `Retry-After` seconds, with backoff.",
            "headers": {
              "Retry-After": {
                "schema": {
                  "type": "integer"
                },
                "description": "Suggested retry delay in seconds."
              }
            }
          }
        }
      }
    },
    "/v1/presets": {
      "get": {
        "tags": [
          "Discover schemas"
        ],
        "summary": "List presets and schemas",
        "description": "Return every ready-made preset with its JSON schema, supported formats and sample body.",
        "operationId": "List document presets",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object",
                  "title": "Response List Presets"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed. Verify the RapidAPI subscription and generated request headers."
          },
          "413": {
            "description": "The request body exceeds the configured gateway or endpoint limit."
          },
          "429": {
            "description": "The subscriber's rate limit or monthly request allowance was exceeded."
          },
          "502": {
            "description": "The origin service is temporarily unavailable."
          },
          "503": {
            "description": "The service is unavailable or busy. Retry after `Retry-After` seconds, with backoff.",
            "headers": {
              "Retry-After": {
                "schema": {
                  "type": "integer"
                },
                "description": "Suggested retry delay in seconds."
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "InvoiceRequest": {
        "properties": {
          "format": {
            "default": "json",
            "description": "`pdf`, `html` or `docx` return the bytes; `json` (default) returns a PDF data URI plus metadata.",
            "enum": [
              "json",
              "html",
              "pdf",
              "docx"
            ],
            "title": "Format",
            "type": "string"
          },
          "page": {
            "$ref": "#/components/schemas/PageOptions"
          },
          "data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/InvoiceData"
              }
            ],
            "description": "Invoice content."
          }
        },
        "required": [
          "data"
        ],
        "title": "InvoiceRequest",
        "type": "object"
      },
      "PageOptions": {
        "properties": {
          "size": {
            "type": "string",
            "enum": [
              "A4",
              "Letter",
              "Legal",
              "A3",
              "A5"
            ],
            "title": "Size",
            "description": "Paper size.",
            "default": "A4"
          },
          "orientation": {
            "type": "string",
            "enum": [
              "portrait",
              "landscape"
            ],
            "title": "Orientation",
            "default": "portrait"
          },
          "margin_mm": {
            "type": "number",
            "maximum": 50,
            "minimum": 0,
            "title": "Margin Mm",
            "description": "Uniform page margin in millimetres.",
            "default": 18
          }
        },
        "type": "object",
        "title": "PageOptions",
        "description": "Paper size and margins for PDF output."
      },
      "InvoiceData": {
        "properties": {
          "number": {
            "maxLength": 64,
            "title": "Number",
            "type": "string",
            "example": "INV-2026-0042"
          },
          "date": {
            "description": "Issue date, any display format.",
            "maxLength": 32,
            "title": "Date",
            "type": "string",
            "example": "2026-09-18"
          },
          "due_date": {
            "maxLength": 32,
            "type": "string",
            "nullable": true,
            "title": "Due Date",
            "default": null,
            "example": "2026-10-18"
          },
          "currency": {
            "default": "€",
            "description": "Symbol or code printed before amounts.",
            "maxLength": 8,
            "title": "Currency",
            "type": "string"
          },
          "seller": {
            "$ref": "#/components/schemas/Party"
          },
          "buyer": {
            "$ref": "#/components/schemas/Party"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/LineItem"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Items",
            "type": "array"
          },
          "notes": {
            "maxLength": 4000,
            "type": "string",
            "nullable": true,
            "title": "Notes",
            "default": null,
            "example": "Payment within 30 days. IBAN NL00 BANK 0000 0000 00."
          },
          "logo_base64": {
            "maxLength": 2800000,
            "type": "string",
            "nullable": true,
            "title": "Logo Base64",
            "description": "PNG/JPEG logo, base64 (≤ 2 MiB).",
            "default": null
          },
          "title": {
            "default": "Invoice",
            "maxLength": 64,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "number",
          "date",
          "seller",
          "buyer",
          "items"
        ],
        "title": "InvoiceData",
        "type": "object"
      },
      "Party": {
        "properties": {
          "name": {
            "maxLength": 200,
            "title": "Name",
            "type": "string",
            "example": "Callable Labs"
          },
          "address": {
            "description": "Address lines.",
            "items": {
              "type": "string"
            },
            "maxItems": 8,
            "title": "Address",
            "type": "array",
            "example": [
              "1 Example Street",
              "Amsterdam"
            ]
          },
          "email": {
            "maxLength": 200,
            "type": "string",
            "nullable": true,
            "title": "Email",
            "default": null
          },
          "phone": {
            "maxLength": 64,
            "type": "string",
            "nullable": true,
            "title": "Phone",
            "default": null
          },
          "tax_id": {
            "maxLength": 64,
            "type": "string",
            "nullable": true,
            "title": "Tax Id",
            "description": "VAT / tax registration number.",
            "default": null
          }
        },
        "required": [
          "name"
        ],
        "title": "Party",
        "type": "object"
      },
      "LineItem": {
        "properties": {
          "description": {
            "maxLength": 500,
            "title": "Description",
            "type": "string",
            "example": "Consulting (hours)"
          },
          "quantity": {
            "default": 1,
            "maximum": 1000000,
            "minimum": 0,
            "title": "Quantity",
            "type": "number"
          },
          "unit_price": {
            "maximum": 1000000000,
            "minimum": -1000000000,
            "title": "Unit Price",
            "type": "number"
          },
          "tax_rate": {
            "default": 0,
            "description": "Percent applied to this line.",
            "maximum": 100,
            "minimum": 0,
            "title": "Tax Rate",
            "type": "number"
          }
        },
        "required": [
          "description",
          "unit_price"
        ],
        "title": "LineItem",
        "type": "object"
      },
      "ErrorResponse": {
        "type": "object",
        "required": [
          "detail"
        ],
        "properties": {
          "detail": {
            "type": "object",
            "required": [
              "code",
              "message"
            ],
            "properties": {
              "code": {
                "type": "string",
                "description": "Stable machine-readable failure code"
              },
              "message": {
                "type": "string",
                "description": "Human-readable explanation"
              },
              "errors": {
                "type": "array",
                "description": "Per-field or per-line detail when there is more than one thing to fix",
                "items": {
                  "type": "object",
                  "properties": {
                    "loc": {
                      "type": "string",
                      "description": "Field path, e.g. `body.scale`"
                    },
                    "line": {
                      "type": "integer"
                    },
                    "column": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string"
                    }
                  }
                }
              }
            },
            "additionalProperties": true
          }
        }
      },
      "ReceiptRequest": {
        "properties": {
          "format": {
            "default": "json",
            "description": "`pdf`, `html` or `docx` return the bytes; `json` (default) returns a PDF data URI plus metadata.",
            "enum": [
              "json",
              "html",
              "pdf",
              "docx"
            ],
            "title": "Format",
            "type": "string"
          },
          "page": {
            "$ref": "#/components/schemas/PageOptions"
          },
          "data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ReceiptData"
              }
            ],
            "description": "Receipt content."
          }
        },
        "required": [
          "data"
        ],
        "title": "ReceiptRequest",
        "type": "object"
      },
      "ReceiptData": {
        "properties": {
          "number": {
            "maxLength": 64,
            "title": "Number",
            "type": "string",
            "example": "RCP-1042"
          },
          "date": {
            "maxLength": 32,
            "title": "Date",
            "type": "string",
            "example": "2026-09-18 14:02"
          },
          "currency": {
            "default": "€",
            "maxLength": 8,
            "title": "Currency",
            "type": "string"
          },
          "merchant": {
            "$ref": "#/components/schemas/Party"
          },
          "customer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ],
            "nullable": true,
            "default": null
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/LineItem"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Items",
            "type": "array"
          },
          "payment_method": {
            "maxLength": 64,
            "type": "string",
            "nullable": true,
            "title": "Payment Method",
            "default": null,
            "example": "Card •••• 4242"
          },
          "notes": {
            "maxLength": 4000,
            "type": "string",
            "nullable": true,
            "title": "Notes",
            "default": null
          }
        },
        "required": [
          "number",
          "date",
          "merchant",
          "items"
        ],
        "title": "ReceiptData",
        "type": "object"
      },
      "CertificateRequest": {
        "properties": {
          "format": {
            "default": "json",
            "description": "`pdf`, `html` or `docx` return the bytes; `json` (default) returns a PDF data URI plus metadata.",
            "enum": [
              "json",
              "html",
              "pdf",
              "docx"
            ],
            "title": "Format",
            "type": "string"
          },
          "page": {
            "$ref": "#/components/schemas/PageOptions"
          },
          "data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CertificateData"
              }
            ],
            "description": "Certificate content."
          }
        },
        "required": [
          "data"
        ],
        "title": "CertificateRequest",
        "type": "object"
      },
      "CertificateData": {
        "properties": {
          "title": {
            "default": "Certificate of Completion",
            "maxLength": 200,
            "title": "Title",
            "type": "string"
          },
          "recipient": {
            "maxLength": 200,
            "title": "Recipient",
            "type": "string",
            "example": "Ada Lovelace"
          },
          "statement": {
            "default": "has successfully completed",
            "description": "Text between the recipient and the achievement.",
            "maxLength": 500,
            "title": "Statement",
            "type": "string"
          },
          "achievement": {
            "maxLength": 500,
            "title": "Achievement",
            "type": "string",
            "example": "Advanced Analytical Engines"
          },
          "date": {
            "maxLength": 32,
            "title": "Date",
            "type": "string",
            "example": "18 September 2026"
          },
          "issuer": {
            "maxLength": 200,
            "title": "Issuer",
            "type": "string",
            "example": "Callable Labs Academy"
          },
          "signatory": {
            "maxLength": 200,
            "type": "string",
            "nullable": true,
            "title": "Signatory",
            "default": null,
            "example": "Charles Babbage, Director"
          },
          "certificate_id": {
            "maxLength": 64,
            "type": "string",
            "nullable": true,
            "title": "Certificate Id",
            "default": null
          },
          "accent_color": {
            "default": "#1f4e79",
            "pattern": "^#[0-9a-fA-F]{6}$",
            "title": "Accent Color",
            "type": "string"
          }
        },
        "required": [
          "recipient",
          "achievement",
          "date",
          "issuer"
        ],
        "title": "CertificateData",
        "type": "object"
      },
      "LetterRequest": {
        "properties": {
          "format": {
            "default": "json",
            "description": "`pdf`, `html` or `docx` return the bytes; `json` (default) returns a PDF data URI plus metadata.",
            "enum": [
              "json",
              "html",
              "pdf",
              "docx"
            ],
            "title": "Format",
            "type": "string"
          },
          "page": {
            "$ref": "#/components/schemas/PageOptions"
          },
          "data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LetterData"
              }
            ],
            "description": "Letter content."
          }
        },
        "required": [
          "data"
        ],
        "title": "LetterRequest",
        "type": "object"
      },
      "LetterData": {
        "properties": {
          "sender": {
            "$ref": "#/components/schemas/Party"
          },
          "recipient": {
            "$ref": "#/components/schemas/Party"
          },
          "date": {
            "maxLength": 32,
            "title": "Date",
            "type": "string",
            "example": "18 September 2026"
          },
          "subject": {
            "maxLength": 200,
            "type": "string",
            "nullable": true,
            "title": "Subject",
            "default": null,
            "example": "Confirmation of engagement"
          },
          "salutation": {
            "default": "Dear Sir or Madam,",
            "maxLength": 200,
            "title": "Salutation",
            "type": "string"
          },
          "paragraphs": {
            "description": "Body paragraphs.",
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "minItems": 1,
            "title": "Paragraphs",
            "type": "array"
          },
          "closing": {
            "default": "Kind regards,",
            "maxLength": 200,
            "title": "Closing",
            "type": "string"
          },
          "signature": {
            "maxLength": 200,
            "type": "string",
            "nullable": true,
            "title": "Signature",
            "default": null,
            "example": "Ada Lovelace"
          },
          "reference": {
            "maxLength": 64,
            "type": "string",
            "nullable": true,
            "title": "Reference",
            "default": null
          }
        },
        "required": [
          "sender",
          "recipient",
          "date",
          "paragraphs"
        ],
        "title": "LetterData",
        "type": "object"
      },
      "ReportRequest": {
        "properties": {
          "format": {
            "default": "json",
            "description": "`pdf`, `html` or `docx` return the bytes; `json` (default) returns a PDF data URI plus metadata.",
            "enum": [
              "json",
              "html",
              "pdf",
              "docx"
            ],
            "title": "Format",
            "type": "string"
          },
          "page": {
            "$ref": "#/components/schemas/PageOptions"
          },
          "data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ReportData"
              }
            ],
            "description": "Report content."
          }
        },
        "required": [
          "data"
        ],
        "title": "ReportRequest",
        "type": "object"
      },
      "ReportData": {
        "properties": {
          "title": {
            "maxLength": 200,
            "title": "Title",
            "type": "string",
            "example": "Quarterly Operations Review"
          },
          "subtitle": {
            "maxLength": 200,
            "type": "string",
            "nullable": true,
            "title": "Subtitle",
            "default": null
          },
          "author": {
            "maxLength": 200,
            "type": "string",
            "nullable": true,
            "title": "Author",
            "default": null
          },
          "date": {
            "maxLength": 32,
            "title": "Date",
            "type": "string"
          },
          "summary": {
            "maxLength": 4000,
            "type": "string",
            "nullable": true,
            "title": "Summary",
            "description": "Executive summary printed before the sections.",
            "default": null
          },
          "sections": {
            "items": {
              "$ref": "#/components/schemas/Section"
            },
            "maxItems": 50,
            "minItems": 1,
            "title": "Sections",
            "type": "array"
          },
          "footer": {
            "maxLength": 200,
            "type": "string",
            "nullable": true,
            "title": "Footer",
            "default": null
          }
        },
        "required": [
          "title",
          "date",
          "sections"
        ],
        "title": "ReportData",
        "type": "object"
      },
      "Section": {
        "properties": {
          "heading": {
            "maxLength": 200,
            "title": "Heading",
            "type": "string"
          },
          "paragraphs": {
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "title": "Paragraphs",
            "type": "array"
          },
          "bullets": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Bullets",
            "type": "array"
          },
          "table": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Table"
              }
            ],
            "nullable": true,
            "default": null
          }
        },
        "required": [
          "heading"
        ],
        "title": "Section",
        "type": "object"
      },
      "Table": {
        "properties": {
          "caption": {
            "maxLength": 200,
            "type": "string",
            "nullable": true,
            "title": "Caption",
            "default": null
          },
          "columns": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Columns",
            "type": "array"
          },
          "rows": {
            "items": {
              "items": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "integer"
                  }
                ],
                "nullable": true
              },
              "type": "array"
            },
            "maxItems": 500,
            "title": "Rows",
            "type": "array"
          }
        },
        "required": [
          "columns"
        ],
        "title": "Table",
        "type": "object"
      },
      "CreateRequest": {
        "properties": {
          "standard": {
            "type": "string",
            "enum": [
              "zugferd",
              "facturx",
              "xrechnung",
              "peppol"
            ],
            "title": "Standard",
            "description": "`zugferd` / `facturx` (same format): a PDF/A-3 invoice with the XML embedded, for Germany and France. `xrechnung`: XRechnung 3.0 XML (UBL), required by German public buyers. `peppol`: Peppol BIS Billing 3.0 XML (UBL).",
            "default": "zugferd"
          },
          "format": {
            "type": "string",
            "enum": [
              "pdf",
              "xml",
              "json"
            ],
            "nullable": true,
            "title": "Format",
            "description": "`pdf` (default for zugferd/facturx) or `xml` (default for xrechnung/peppol, and the bare CII for zugferd/facturx). `json` returns the file as a data URI plus the XML, totals and warnings."
          },
          "invoice": {
            "$ref": "#/components/schemas/EInvoice"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "invoice"
        ],
        "title": "CreateRequest"
      },
      "EInvoice": {
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "invoice",
              "credit_note"
            ],
            "title": "Type",
            "description": "`invoice` (type code 380) or `credit_note` (381).",
            "default": "invoice"
          },
          "number": {
            "type": "string",
            "maxLength": 64,
            "minLength": 1,
            "title": "Number",
            "description": "Invoice number (BT-1).",
            "example": "RE-2026-0042"
          },
          "issue_date": {
            "type": "string",
            "format": "date",
            "title": "Issue Date",
            "description": "YYYY-MM-DD (BT-2).",
            "example": "2026-09-23"
          },
          "due_date": {
            "type": "string",
            "format": "date",
            "nullable": true,
            "title": "Due Date",
            "description": "YYYY-MM-DD (BT-9).",
            "example": "2026-10-23"
          },
          "delivery_date": {
            "type": "string",
            "format": "date",
            "nullable": true,
            "title": "Delivery Date",
            "description": "Date goods or services were delivered (BT-72)."
          },
          "currency": {
            "type": "string",
            "pattern": "^[A-Z]{3}$",
            "title": "Currency",
            "description": "ISO 4217 code (BT-5).",
            "default": "EUR"
          },
          "buyer_reference": {
            "type": "string",
            "maxLength": 200,
            "nullable": true,
            "title": "Buyer Reference",
            "description": "Buyer's reference (BT-10). Required by XRechnung: the Leitweg-ID for German public buyers, otherwise any reference the buyer gave you. Peppol needs this or `order_reference`.",
            "example": "991-12345-67"
          },
          "order_reference": {
            "type": "string",
            "maxLength": 200,
            "nullable": true,
            "title": "Order Reference",
            "description": "Purchase order number (BT-13)."
          },
          "preceding_invoice": {
            "type": "string",
            "maxLength": 64,
            "nullable": true,
            "title": "Preceding Invoice",
            "description": "Invoice a credit note corrects (BT-25)."
          },
          "note": {
            "type": "string",
            "maxLength": 1000,
            "nullable": true,
            "title": "Note",
            "description": "Free-text note (BT-22)."
          },
          "seller": {
            "$ref": "#/components/schemas/EInvoiceParty"
          },
          "buyer": {
            "$ref": "#/components/schemas/EInvoiceParty"
          },
          "lines": {
            "items": {
              "$ref": "#/components/schemas/EInvoiceLine"
            },
            "type": "array",
            "maxItems": 500,
            "minItems": 1,
            "title": "Lines"
          },
          "payment": {
            "allOf": [
              {
                "$ref": "#/components/schemas/EInvoicePayment"
              }
            ],
            "nullable": true
          },
          "vat_exemption_reason": {
            "type": "string",
            "maxLength": 1000,
            "nullable": true,
            "title": "Vat Exemption Reason",
            "description": "Why VAT is not charged (BT-120). Required when any line uses E, AE, K, G or O.",
            "example": "Reverse charge: VAT to be accounted for by the recipient (Art. 196 VAT Directive)"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "number",
          "issue_date",
          "seller",
          "buyer",
          "lines"
        ],
        "title": "EInvoice",
        "description": "An invoice or credit note with just the fields EN 16931 needs."
      },
      "EInvoiceParty": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 200,
            "minLength": 1,
            "title": "Name",
            "description": "Legal name (BT-27 / BT-44).",
            "example": "Callable Labs GmbH"
          },
          "street": {
            "type": "string",
            "maxLength": 200,
            "nullable": true,
            "title": "Street",
            "example": "Musterstraße 1"
          },
          "city": {
            "type": "string",
            "maxLength": 200,
            "minLength": 1,
            "title": "City",
            "example": "Berlin"
          },
          "postal_code": {
            "type": "string",
            "maxLength": 32,
            "minLength": 1,
            "title": "Postal Code",
            "example": "10115"
          },
          "country": {
            "type": "string",
            "pattern": "^[A-Z]{2}$",
            "title": "Country",
            "description": "ISO 3166-1 alpha-2 country code.",
            "example": "DE"
          },
          "vat_id": {
            "type": "string",
            "maxLength": 64,
            "nullable": true,
            "title": "Vat Id",
            "description": "VAT identifier (BT-31 / BT-48).",
            "example": "DE123456789"
          },
          "tax_number": {
            "type": "string",
            "maxLength": 64,
            "nullable": true,
            "title": "Tax Number",
            "description": "Seller's national tax number, e.g. German Steuernummer (BT-32). Seller only."
          },
          "registration_id": {
            "type": "string",
            "maxLength": 64,
            "nullable": true,
            "title": "Registration Id",
            "description": "Company register number, e.g. HRB 12345 or SIREN (BT-30 / BT-47)."
          },
          "email": {
            "type": "string",
            "maxLength": 200,
            "nullable": true,
            "title": "Email",
            "example": "billing@example.com"
          },
          "phone": {
            "type": "string",
            "maxLength": 64,
            "nullable": true,
            "title": "Phone",
            "example": "+49 30 1234567"
          },
          "contact_name": {
            "type": "string",
            "maxLength": 200,
            "nullable": true,
            "title": "Contact Name",
            "example": "Ada Lovelace"
          },
          "electronic_address": {
            "type": "string",
            "maxLength": 200,
            "pattern": "^([0-9]{4}:\\S+|[^@\\s]+@[^@\\s]+)$",
            "nullable": true,
            "title": "Electronic Address",
            "description": "Where e-invoices are delivered (BT-34 / BT-49): an email address, or a Peppol participant ID as `scheme:id` (e.g. `0204:991-12345-67` for a German Leitweg-ID, `0088:4012345000000`). Defaults to `email`. Required by XRechnung and Peppol."
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "name",
          "city",
          "postal_code",
          "country"
        ],
        "title": "EInvoiceParty"
      },
      "EInvoiceLine": {
        "properties": {
          "description": {
            "type": "string",
            "maxLength": 1000,
            "minLength": 1,
            "title": "Description",
            "description": "Item name (BT-153).",
            "example": "Consulting"
          },
          "quantity": {
            "type": "number",
            "title": "Quantity",
            "example": 12,
            "minimum": -1000000000,
            "exclusiveMinimum": true,
            "maximum": 1000000000,
            "exclusiveMaximum": true
          },
          "unit": {
            "type": "string",
            "maxLength": 16,
            "title": "Unit",
            "description": "UN/ECE Rec 20 unit code (`C62` piece, `HUR` hour, `DAY`, `MON`, `KGM`, `LTR`, …) or a plain name like `hour`.",
            "default": "C62",
            "example": "HUR"
          },
          "unit_price": {
            "type": "number",
            "minimum": 0,
            "title": "Unit Price",
            "description": "Net price per unit, before VAT (BT-146).",
            "example": 95,
            "maximum": 1000000000,
            "exclusiveMaximum": true
          },
          "vat_rate": {
            "type": "number",
            "maximum": 100,
            "minimum": 0,
            "title": "Vat Rate",
            "description": "VAT percent for this line (BT-152).",
            "example": 19
          },
          "vat_category": {
            "type": "string",
            "enum": [
              "S",
              "Z",
              "E",
              "AE",
              "K",
              "G",
              "O",
              "L",
              "M"
            ],
            "nullable": true,
            "title": "Vat Category",
            "description": "EN 16931 VAT category (BT-151). Defaults to `S` (standard) when `vat_rate` > 0. Required when the rate is 0: `Z` zero rated, `E` exempt, `AE` reverse charge, `K` intra-EU, `G` export, `O` outside the scope of VAT."
          },
          "note": {
            "type": "string",
            "maxLength": 1000,
            "nullable": true,
            "title": "Note",
            "description": "Line note (BT-127)."
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "description",
          "quantity",
          "unit_price",
          "vat_rate"
        ],
        "title": "EInvoiceLine"
      },
      "EInvoicePayment": {
        "properties": {
          "iban": {
            "type": "string",
            "maxLength": 34,
            "nullable": true,
            "title": "Iban",
            "description": "Payee IBAN (BT-84).",
            "example": "DE02120300000000202051"
          },
          "bic": {
            "type": "string",
            "maxLength": 11,
            "nullable": true,
            "title": "Bic",
            "description": "Payee BIC (BT-86).",
            "example": "BYLADEM1001"
          },
          "account_name": {
            "type": "string",
            "maxLength": 200,
            "nullable": true,
            "title": "Account Name",
            "description": "Account holder (BT-85)."
          },
          "terms": {
            "type": "string",
            "maxLength": 1000,
            "nullable": true,
            "title": "Terms",
            "description": "Payment terms (BT-20).",
            "example": "Payable within 30 days without deduction."
          },
          "means_code": {
            "type": "string",
            "pattern": "^[0-9]{1,3}$",
            "nullable": true,
            "title": "Means Code",
            "description": "UNCL 4461 payment means (BT-81). Defaults to `58` (SEPA credit transfer) with an IBAN, otherwise `1` (not specified)."
          }
        },
        "additionalProperties": false,
        "type": "object",
        "title": "EInvoicePayment"
      },
      "DocumentInput": {
        "additionalProperties": false,
        "description": "JSON body for validate/parse; multipart `file` works too.",
        "properties": {
          "xml": {
            "maxLength": 10485760,
            "type": "string",
            "nullable": true,
            "title": "Xml",
            "description": "The e-invoice XML as a string.",
            "default": null
          },
          "file_base64": {
            "maxLength": 14680064,
            "type": "string",
            "nullable": true,
            "title": "File Base64",
            "description": "An XML or PDF (ZUGFeRD/Factur-X) file, base64-encoded.",
            "default": null
          }
        },
        "title": "DocumentInput",
        "type": "object"
      },
      "DocxJsonRequest": {
        "description": "JSON alternative to the multipart form: the template as base64.",
        "properties": {
          "template_base64": {
            "description": "The .docx template, base64-encoded (≤ 5 MiB decoded).",
            "maxLength": 6990510,
            "title": "Template Base64",
            "type": "string"
          },
          "data": {
            "additionalProperties": true,
            "description": "The values the template reads, as a JSON object (≤ 256 KiB, ≤ 20 levels deep). Every variable the template references must be present (`data_error` otherwise). For DOCX templates a value shaped `{\"$image\": \"<base64 PNG/JPEG>\", \"width_mm\": 40}` is inserted as a picture.",
            "title": "Data",
            "type": "object",
            "example": {
              "customer": {
                "name": "Ada Lovelace"
              },
              "items": [
                {
                  "name": "Widget",
                  "price": 9.5,
                  "qty": 2
                }
              ]
            }
          },
          "format": {
            "default": "json",
            "description": "`docx` returns the filled document, `pdf` converts it with LibreOffice, `json` (default) returns the DOCX as a base64 data URI plus metadata.",
            "enum": [
              "json",
              "docx",
              "pdf"
            ],
            "title": "Format",
            "type": "string"
          }
        },
        "required": [
          "template_base64"
        ],
        "title": "DocxJsonRequest",
        "type": "object"
      },
      "HtmlRequest": {
        "properties": {
          "template": {
            "type": "string",
            "maxLength": 262144,
            "minLength": 1,
            "title": "Template",
            "description": "Jinja2 template in HTML or Markdown (≤ 256 KiB). Values are HTML-escaped; use `{{ value | safe }}` to insert markup on purpose. A fragment is wrapped in a document shell with a pinned font stack; a full `<html>` document is printed as-is.",
            "example": "<h1>Invoice {{ number }}</h1><p>Hello {{ customer.name }}</p>"
          },
          "markdown": {
            "type": "boolean",
            "title": "Markdown",
            "description": "Treat the rendered template as Markdown (CommonMark + tables) and convert it to HTML.",
            "default": false
          },
          "data": {
            "additionalProperties": true,
            "type": "object",
            "title": "Data",
            "description": "The values the template reads, as a JSON object (≤ 256 KiB, ≤ 20 levels deep). Every variable the template references must be present (`data_error` otherwise). For DOCX templates a value shaped `{\"$image\": \"<base64 PNG/JPEG>\", \"width_mm\": 40}` is inserted as a picture.",
            "example": {
              "customer": {
                "name": "Ada Lovelace"
              },
              "items": [
                {
                  "name": "Widget",
                  "price": 9.5,
                  "qty": 2
                }
              ]
            }
          },
          "css": {
            "type": "string",
            "maxLength": 65536,
            "nullable": true,
            "title": "Css",
            "description": "Extra stylesheet appended to the document shell. External URLs are never fetched."
          },
          "title": {
            "type": "string",
            "maxLength": 200,
            "nullable": true,
            "title": "Title",
            "description": "`<title>` of the document shell."
          },
          "page": {
            "$ref": "#/components/schemas/PageOptions"
          },
          "format": {
            "type": "string",
            "enum": [
              "json",
              "html",
              "pdf"
            ],
            "title": "Format",
            "description": "`html` or `pdf` return the bytes; `json` (default) returns the HTML as a data URI plus metadata.",
            "default": "json"
          }
        },
        "type": "object",
        "required": [
          "template"
        ],
        "title": "HtmlRequest",
        "description": "HTML or Markdown template + data → HTML or PDF."
      },
      "Body_validate_template": {
        "properties": {
          "template": {
            "type": "string",
            "title": "Template",
            "description": "The .docx template to inspect"
          },
          "data": {
            "type": "string",
            "nullable": true,
            "title": "Data",
            "description": "Optional JSON object to check against the template's variables"
          }
        },
        "type": "object",
        "required": [
          "template"
        ],
        "title": "Body_validate_template"
      }
    }
  }
}
