{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://concert.foundation/signet/v0.1/invoice.schema.json", "title": "Invoice", "description": "An invoice, fully aligned to EN 16931 so it is convertible to Peppol BIS Billing / UBL Invoice / Factur-X. This alignment is what makes a SIGNET network natively compliant with the EU ViDA cross-border e-invoicing mandate.", "$comment": "Field $comment values cite EN 16931 Business Terms (BT) and Business Groups (BG).", "type": "object", "required": [ "id", "issueDate", "currency", "seller", "buyer", "lines", "taxTotal", "payableAmount" ], "additionalProperties": false, "properties": { "@context": { "type": [ "string", "object", "array" ] }, "type": { "const": "Invoice" }, "id": { "$comment": "EN 16931 BT-1 Invoice number", "allOf": [ { "$ref": "definitions.schema.json#/definitions/Identifier" } ] }, "invoiceTypeCode": { "type": "string", "$comment": "EN 16931 BT-3 Invoice type code (e.g. 380 commercial invoice)" }, "issueDate": { "type": "string", "format": "date-time", "$comment": "EN 16931 BT-2 Invoice issue date" }, "currency": { "type": "string", "pattern": "^[A-Z]{3}$", "$comment": "EN 16931 BT-5 Invoice currency code (ISO 4217)" }, "contract": { "$comment": "EN 16931 BT-12 Contract reference", "allOf": [ { "$ref": "definitions.schema.json#/definitions/Identifier" } ] }, "order": { "$comment": "EN 16931 BT-13 Purchase order reference", "allOf": [ { "$ref": "definitions.schema.json#/definitions/Identifier" } ] }, "settles": { "$comment": "SIGNET-original (not an EN 16931 BT). The Obligation(s) this invoice settles. Omitted on Peppol BIS projection.", "type": "array", "items": { "$ref": "definitions.schema.json#/definitions/Identifier" } }, "seller": { "$comment": "EN 16931 BG-4 SELLER (BT-27 seller name resolved via Party)", "allOf": [ { "$ref": "definitions.schema.json#/definitions/Identifier" } ] }, "buyer": { "$comment": "EN 16931 BG-7 BUYER (BT-44 buyer name resolved via Party)", "allOf": [ { "$ref": "definitions.schema.json#/definitions/Identifier" } ] }, "lines": { "type": "array", "minItems": 1, "items": { "$ref": "definitions.schema.json#/definitions/InvoiceLine" }, "$comment": "EN 16931 BG-25 INVOICE LINE" }, "vatBreakdown": { "type": "array", "items": { "$ref": "definitions.schema.json#/definitions/VatBreakdown" }, "$comment": "EN 16931 BG-23 VAT BREAKDOWN" }, "lineExtensionTotal": { "$comment": "EN 16931 BT-106 Sum of invoice line net amount", "allOf": [ { "$ref": "definitions.schema.json#/definitions/Value" } ] }, "taxExclusiveTotal": { "$comment": "EN 16931 BT-109 Invoice total amount without VAT", "allOf": [ { "$ref": "definitions.schema.json#/definitions/Value" } ] }, "taxTotal": { "$comment": "EN 16931 BT-110 Invoice total VAT amount", "allOf": [ { "$ref": "definitions.schema.json#/definitions/Value" } ] }, "taxInclusiveTotal": { "$comment": "EN 16931 BT-112 Invoice total amount with VAT", "allOf": [ { "$ref": "definitions.schema.json#/definitions/Value" } ] }, "payableAmount": { "$comment": "EN 16931 BT-115 Amount due for payment", "allOf": [ { "$ref": "definitions.schema.json#/definitions/Value" } ] }, "paymentDueDate": { "type": "string", "format": "date-time", "$comment": "EN 16931 BT-9 Payment due date" }, "paymentTerms": { "type": "string", "$comment": "EN 16931 BT-20 Payment terms" } } }