{"openapi":"3.1.0","info":{"title":"QuoAPI – Invoice Validation & Conversion API","version":"1.3.0","description":"Canonical QuoAPI public API contract. Provider details and internal routes are intentionally excluded."},"servers":[{"url":"https://api.quoapi.com"}],"tags":[{"name":"invoice-api","description":"Detect, validate, convert and render invoice formats and extract structured metadata."}],"paths":{"/v1/invoice/validate":{"post":{"operationId":"invoice_validate","summary":"Validate invoice","description":"Validate syntax and semantic rules.","tags":["invoice-api"],"security":[{"BearerAuth":["invoice.validate"]}],"x-quoapi-capability":"invoice.validate","x-quoapi-contract-version":"1.3.0:invoice.validate","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"format":{"type":"string","x-quoapi-widget":"select","title":"Format","default":"EN16931","enum":["EN16931","XRechnung","ZUGFeRD","KSeF"]},"document":{"type":"string","x-quoapi-widget":"file","title":"Document","format":"binary"},"country":{"type":"string","pattern":"^[A-Z]{2}$","x-quoapi-widget":"country","x-quoapi-hidden":true,"description":"Optional ISO 3166-1 alpha-2 routing context."},"currency":{"type":"string","pattern":"^[A-Z]{3}$","x-quoapi-widget":"currency","x-quoapi-hidden":true,"description":"Optional ISO 4217 commercial context."}},"additionalProperties":false,"required":["format"]},"example":{"format":"EN16931"}}}},"responses":{"200":{"description":"Canonical response","content":{"application/json":{"schema":{"type":"object","required":["data","request_id"],"properties":{"data":{"type":"object","additionalProperties":true,"description":"Canonical QuoAPI response data for this capability."},"request_id":{"type":"string"}}}}}},"4XX":{"description":"Canonical client error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"5XX":{"description":"Canonical service error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/invoice/detect_format":{"post":{"operationId":"invoice_detect_format","summary":"Detect invoice format","description":"Detect structured invoice format.","tags":["invoice-api"],"security":[{"BearerAuth":["invoice.detect_format"]}],"x-quoapi-capability":"invoice.detect_format","x-quoapi-contract-version":"1.3.0:invoice.detect_format","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"document":{"type":"string","x-quoapi-widget":"file","title":"Document","format":"binary"},"country":{"type":"string","pattern":"^[A-Z]{2}$","x-quoapi-widget":"country","x-quoapi-hidden":true,"description":"Optional ISO 3166-1 alpha-2 routing context."},"currency":{"type":"string","pattern":"^[A-Z]{3}$","x-quoapi-widget":"currency","x-quoapi-hidden":true,"description":"Optional ISO 4217 commercial context."}},"additionalProperties":false,"required":["document"]},"example":{}}}},"responses":{"200":{"description":"Canonical response","content":{"application/json":{"schema":{"type":"object","required":["data","request_id"],"properties":{"data":{"type":"object","additionalProperties":true,"description":"Canonical QuoAPI response data for this capability."},"request_id":{"type":"string"}}}}}},"4XX":{"description":"Canonical client error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"5XX":{"description":"Canonical service error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/invoice/convert":{"post":{"operationId":"invoice_convert","summary":"Convert invoice","description":"Convert between supported structured formats.","tags":["invoice-api"],"security":[{"BearerAuth":["invoice.convert"]}],"x-quoapi-capability":"invoice.convert","x-quoapi-contract-version":"1.3.0:invoice.convert","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"from_format":{"type":"string","x-quoapi-widget":"select","title":"From Format","default":"auto","enum":["auto","EN16931","XRechnung","ZUGFeRD"]},"to_format":{"type":"string","x-quoapi-widget":"select","title":"To Format","default":"EN16931","enum":["EN16931","XRechnung","ZUGFeRD"]},"document":{"type":"string","x-quoapi-widget":"file","title":"Document","format":"binary"},"country":{"type":"string","pattern":"^[A-Z]{2}$","x-quoapi-widget":"country","x-quoapi-hidden":true,"description":"Optional ISO 3166-1 alpha-2 routing context."},"currency":{"type":"string","pattern":"^[A-Z]{3}$","x-quoapi-widget":"currency","x-quoapi-hidden":true,"description":"Optional ISO 4217 commercial context."}},"additionalProperties":false,"required":["from_format","to_format","document"]},"example":{"from_format":"auto","to_format":"EN16931"}}}},"responses":{"200":{"description":"Canonical response","content":{"application/json":{"schema":{"type":"object","required":["data","request_id"],"properties":{"data":{"type":"object","additionalProperties":true,"description":"Canonical QuoAPI response data for this capability."},"request_id":{"type":"string"}}}}}},"4XX":{"description":"Canonical client error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"5XX":{"description":"Canonical service error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/invoice/render":{"post":{"operationId":"invoice_render","summary":"Render invoice","description":"Render a structured invoice as a human-readable document.","tags":["invoice-api"],"security":[{"BearerAuth":["invoice.render"]}],"x-quoapi-capability":"invoice.render","x-quoapi-contract-version":"1.3.0:invoice.render","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"document":{"type":"string","x-quoapi-widget":"file","title":"Document","format":"binary"},"output":{"type":"string","x-quoapi-widget":"select","title":"Output","default":"pdf","enum":["pdf","html"]},"country":{"type":"string","pattern":"^[A-Z]{2}$","x-quoapi-widget":"country","x-quoapi-hidden":true,"description":"Optional ISO 3166-1 alpha-2 routing context."},"currency":{"type":"string","pattern":"^[A-Z]{3}$","x-quoapi-widget":"currency","x-quoapi-hidden":true,"description":"Optional ISO 4217 commercial context."}},"additionalProperties":false,"required":["document","output"]},"example":{"output":"pdf"}}}},"responses":{"200":{"description":"Canonical response","content":{"application/json":{"schema":{"type":"object","required":["data","request_id"],"properties":{"data":{"type":"object","additionalProperties":true,"description":"Canonical QuoAPI response data for this capability."},"request_id":{"type":"string"}}}}}},"4XX":{"description":"Canonical client error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"5XX":{"description":"Canonical service error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/invoice/extract_metadata":{"post":{"operationId":"invoice_extract_metadata","summary":"Extract invoice metadata","description":"Extract normalized invoice header metadata.","tags":["invoice-api"],"security":[{"BearerAuth":["invoice.extract_metadata"]}],"x-quoapi-capability":"invoice.extract_metadata","x-quoapi-contract-version":"1.3.0:invoice.extract_metadata","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"document":{"type":"string","x-quoapi-widget":"file","title":"Document","format":"binary"},"country":{"type":"string","pattern":"^[A-Z]{2}$","x-quoapi-widget":"country","x-quoapi-hidden":true,"description":"Optional ISO 3166-1 alpha-2 routing context."},"currency":{"type":"string","pattern":"^[A-Z]{3}$","x-quoapi-widget":"currency","x-quoapi-hidden":true,"description":"Optional ISO 4217 commercial context."}},"additionalProperties":false,"required":["document"]},"example":{}}}},"responses":{"200":{"description":"Canonical response","content":{"application/json":{"schema":{"type":"object","required":["data","request_id"],"properties":{"data":{"type":"object","additionalProperties":true,"description":"Canonical QuoAPI response data for this capability."},"request_id":{"type":"string"}}}}}},"4XX":{"description":"Canonical client error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"5XX":{"description":"Canonical service error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}},"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"QuoAPI API key"}},"schemas":{"ErrorResponse":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","request_id","details"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}}