soli-pdf

VAT-compliant invoice + Factur-X

Every statutory mention of a French VAT invoice, an EPC scan-to-pay QR, and an embedded EN 16931 XML.

Both parties' SIREN and VAT numbers, the supply date, a VAT breakdown by rate and the late-payment terms. Passing xml: turns the output into a PDF/A-3b Factur-X e-invoice: the CII XML travels inside the PDF, next to the human-readable page.

Factur-X / PDF/A-3b VAT breakdown EPC payment QR 1 page
Page 1
Page 1 of 1
render_invoice_compliant.rb ruby
require 'json'
require 'soli/pdf'

template = JSON.parse(File.read('invoice_compliant.template.json'))
data     = JSON.parse(File.read('invoice_compliant.data.json'))
xml      = File.read('invoice_compliant.facturx.xml')

pdf = Soli::PDF.render(
  template: template,
  data: data,
  xml: xml,
  title: 'Invoice MI-2025-0184',
  profile: 'en16931'
)
File.binwrite('invoice_compliant.pdf', pdf)

Run it yourself

  1. Add the gem to your Gemfile — see Installation.
  2. Download invoice_compliant.template.json and invoice_compliant.data.json and invoice_compliant.facturx.xml.
  3. Run ruby render_invoice_compliant.rb.
invoice_compliant.template.json json
{
  "fonts": ["titillium"],
  "options": { "header_height": 0 },
  "footer": [
    { "type": "paragraph", "value": "${seller.name} · ${seller.registration} · SIRET ${seller.siret} · VAT ${seller.vat_number} · Page #PAGE# of #TOTAL_PAGE#", "options": { "alignment": "center", "fontSize": 7.5, "color": "6B7280" } }
  ],
  "content": [
    {
      "type": "table",
      "header_columns": [
        {
          "content": [
            { "type": "text", "value": "${seller.name}", "fontSize": 17, "fontWeight": "bold" },
            { "type": "text", "value": "${seller.tagline}", "fontSize": 9 }
          ],
          "width": 300, "alignment": "left",
          "borderSides": { "top": "false", "bottom": "false", "left": "false", "right": "false" }
        },
        {
          "content": [
            { "type": "text", "value": "INVOICE", "fontSize": 22, "fontWeight": "bold" },
            { "type": "text", "value": "${invoice.number}", "fontSize": 11 }
          ],
          "width": 181, "alignment": "right",
          "borderSides": { "top": "false", "bottom": "false", "left": "false", "right": "false" }
        }
      ],
      "rows": [],
      "options": { "header": { "textColor": "1B3A6B" }, "padding_x": 0, "padding_y": 0 }
    },
    { "type": "move", "y": 10 },
    { "type": "hr", "color": "1B3A6B", "thickness": 1.6 },
    { "type": "move", "y": 2 },
    { "type": "hr", "color": "1B3A6B", "thickness": 0.4 },
    { "type": "move", "y": 14 },

    {
      "type": "table",
      "header_columns": [],
      "rows": [
        [
          {
            "content": [
              { "type": "text", "value": "SUPPLIER", "fontSize": 7.5, "fontWeight": "bold" },
              { "type": "text", "value": "${seller.name}", "fontSize": 10, "fontWeight": "bold" },
              { "type": "text", "value": "${seller.address}", "fontSize": 9 },
              { "type": "text", "value": "${seller.city}", "fontSize": 9 },
              { "type": "text", "value": "SIREN  ${seller.siren}", "fontSize": 9 },
              { "type": "text", "value": "SIRET  ${seller.siret}", "fontSize": 9 },
              { "type": "text", "value": "VAT  ${seller.vat_number}", "fontSize": 9 }
            ],
            "width": 240, "alignment": "left", "valign": "top",
            "borderSides": { "top": "false", "bottom": "false", "left": "false", "right": "false" }
          },
          {
            "content": [
              { "type": "text", "value": "CUSTOMER", "fontSize": 7.5, "fontWeight": "bold" },
              { "type": "text", "value": "${customer.name}", "fontSize": 10, "fontWeight": "bold" },
              { "type": "text", "value": "${customer.address}", "fontSize": 9 },
              { "type": "text", "value": "${customer.city}", "fontSize": 9 },
              { "type": "text", "value": "SIREN  ${customer.siren}", "fontSize": 9 },
              { "type": "text", "value": "VAT  ${customer.vat_number}", "fontSize": 9 }
            ],
            "width": 241, "alignment": "left", "valign": "top",
            "borderSides": { "top": "false", "bottom": "false", "left": "false", "right": "false" }
          }
        ]
      ],
      "options": { "padding_x": 0, "padding_y": 3 }
    },
    { "type": "move", "y": 13 },

    {
      "type": "table",
      "header_columns": [
        { "text": "ISSUE DATE",   "width": 120, "fontSize": 7.5, "fontWeight": "bold", "alignment": "left", "borderSides": { "top": "false", "bottom": "false", "left": "false", "right": "false" } },
        { "text": "SUPPLY DATE",  "width": 120, "fontSize": 7.5, "fontWeight": "bold", "alignment": "left", "borderSides": { "top": "false", "bottom": "false", "left": "false", "right": "false" } },
        { "text": "DUE DATE",     "width": 120, "fontSize": 7.5, "fontWeight": "bold", "alignment": "left", "borderSides": { "top": "false", "bottom": "false", "left": "false", "right": "false" } },
        { "text": "YOUR REF.",    "width": 121, "fontSize": 7.5, "fontWeight": "bold", "alignment": "left", "borderSides": { "top": "false", "bottom": "false", "left": "false", "right": "false" } }
      ],
      "rows": [
        [
          { "text": "${invoice.issued}",   "width": 120, "fontSize": 10, "alignment": "left", "borderSides": { "top": "false", "bottom": "false", "left": "false", "right": "false" } },
          { "text": "${invoice.supplied}", "width": 120, "fontSize": 10, "alignment": "left", "borderSides": { "top": "false", "bottom": "false", "left": "false", "right": "false" } },
          { "text": "${invoice.due}",      "width": 120, "fontSize": 10, "fontWeight": "bold", "alignment": "left", "borderSides": { "top": "false", "bottom": "false", "left": "false", "right": "false" } },
          { "text": "${invoice.po_ref}",   "width": 121, "fontSize": 10, "alignment": "left", "borderSides": { "top": "false", "bottom": "false", "left": "false", "right": "false" } }
        ]
      ],
      "options": { "header": { "fillColor": "EEF2F8", "textColor": "1B3A6B" }, "padding_x": 8, "padding_y": 6 }
    },
    { "type": "move", "y": 14 },

    {
      "type": "table",
      "data": "items",
      "header_columns": [
        { "text": "DESCRIPTION", "width": 229, "fontSize": 8, "fontWeight": "bold", "alignment": "left",  "borderSides": { "top": "false", "left": "false", "right": "false", "bottom": "true" } },
        { "text": "QTY",         "width": 40,  "fontSize": 8, "fontWeight": "bold", "alignment": "center","borderSides": { "top": "false", "left": "false", "right": "false", "bottom": "true" } },
        { "text": "UNIT PRICE",  "width": 68,  "fontSize": 8, "fontWeight": "bold", "alignment": "right", "borderSides": { "top": "false", "left": "false", "right": "false", "bottom": "true" } },
        { "text": "VAT",         "width": 40,  "fontSize": 8, "fontWeight": "bold", "alignment": "center","borderSides": { "top": "false", "left": "false", "right": "false", "bottom": "true" } },
        { "text": "NET AMOUNT",  "width": 104, "fontSize": 8, "fontWeight": "bold", "alignment": "right", "borderSides": { "top": "false", "left": "false", "right": "false", "bottom": "true" } }
      ],
      "rows": [
        [
          { "text": "${name}",     "width": 229, "fontSize": 10, "alignment": "left",   "borderSides": { "top": "false", "left": "false", "right": "false", "bottom": "true" }, "borderColor": "E3E8EF" },
          { "text": "${qty}",      "width": 40,  "fontSize": 10, "alignment": "center", "borderSides": { "top": "false", "left": "false", "right": "false", "bottom": "true" }, "borderColor": "E3E8EF" },
          { "text": "${unit}",     "width": 68,  "fontSize": 10, "alignment": "right",  "borderSides": { "top": "false", "left": "false", "right": "false", "bottom": "true" }, "borderColor": "E3E8EF" },
          { "text": "${vat_rate}", "width": 40,  "fontSize": 10, "alignment": "center", "borderSides": { "top": "false", "left": "false", "right": "false", "bottom": "true" }, "borderColor": "E3E8EF" },
          { "text": "${net}",      "width": 104, "fontSize": 10, "alignment": "right",  "borderSides": { "top": "false", "left": "false", "right": "false", "bottom": "true" }, "borderColor": "E3E8EF" }
        ]
      ],
      "options": { "header": { "fillColor": "1B3A6B", "textColor": "FFFFFF", "borderColor": "1B3A6B" }, "padding_x": 6, "padding_y": 7 }
    },
    { "type": "move", "y": 13 },

    {
      "type": "table",
      "header_columns": [
        { "text": "VAT RATE",     "width": 90,  "fontSize": 8, "fontWeight": "bold", "alignment": "left",  "borderSides": { "top": "false", "left": "false", "right": "false", "bottom": "true" }, "borderColor": "1B3A6B" },
        { "text": "TAXABLE BASE", "width": 110, "fontSize": 8, "fontWeight": "bold", "alignment": "right", "borderSides": { "top": "false", "left": "false", "right": "false", "bottom": "true" }, "borderColor": "1B3A6B" },
        { "text": "VAT AMOUNT",   "width": 100, "fontSize": 8, "fontWeight": "bold", "alignment": "right", "borderSides": { "top": "false", "left": "false", "right": "false", "bottom": "true" }, "borderColor": "1B3A6B" },
        { "text": "",             "width": 181, "borderSides": { "top": "false", "left": "false", "right": "false", "bottom": "false" } }
      ],
      "rows": [],
      "options": { "padding_x": 6, "padding_y": 6 }
    },
    {
      "type": "table",
      "data": "vat_breakdown",
      "header_columns": [],
      "rows": [
        [
          { "text": "${rate}",    "width": 90,  "fontSize": 10, "alignment": "left",  "borderSides": { "top": "false", "left": "false", "right": "false", "bottom": "true" }, "borderColor": "E3E8EF" },
          { "text": "${base}",    "width": 110, "fontSize": 10, "alignment": "right", "borderSides": { "top": "false", "left": "false", "right": "false", "bottom": "true" }, "borderColor": "E3E8EF" },
          { "text": "${amount}",  "width": 100, "fontSize": 10, "alignment": "right", "borderSides": { "top": "false", "left": "false", "right": "false", "bottom": "true" }, "borderColor": "E3E8EF" },
          { "text": "",           "width": 181, "borderSides": { "top": "false", "left": "false", "right": "false", "bottom": "false" } }
        ]
      ],
      "options": { "padding_x": 6, "padding_y": 6 }
    },
    { "type": "move", "y": 14 },

    {
      "type": "table",
      "header_columns": [],
      "rows": [
        [
          { "text": "", "width": 271, "borderSides": { "top": "false", "left": "false", "right": "false", "bottom": "false" } },
          { "text": "Total net", "width": 130, "fontSize": 10, "alignment": "right", "borderSides": { "top": "false", "left": "false", "right": "false", "bottom": "false" } },
          { "text": "${totals.net}", "width": 80, "fontSize": 10, "alignment": "right", "borderSides": { "top": "false", "left": "false", "right": "false", "bottom": "false" } }
        ],
        [
          { "text": "", "width": 271, "borderSides": { "top": "false", "left": "false", "right": "false", "bottom": "false" } },
          { "text": "Total VAT", "width": 130, "fontSize": 10, "alignment": "right", "borderSides": { "top": "false", "left": "false", "right": "false", "bottom": "false" } },
          { "text": "${totals.vat}", "width": 80, "fontSize": 10, "alignment": "right", "borderSides": { "top": "false", "left": "false", "right": "false", "bottom": "false" } }
        ],
        [
          { "text": "", "width": 271, "borderSides": { "top": "false", "left": "false", "right": "false", "bottom": "false" } },
          { "text": "Amount due", "width": 130, "fontSize": 14, "fontWeight": "bold", "alignment": "right", "borderSides": { "top": "true", "left": "false", "right": "false", "bottom": "false" }, "borderColor": "1B3A6B" },
          { "text": "${totals.due}", "width": 80, "fontSize": 14, "fontWeight": "bold", "alignment": "right", "borderSides": { "top": "true", "left": "false", "right": "false", "bottom": "false" }, "borderColor": "1B3A6B" }
        ]
      ],
      "options": { "padding_x": 6, "padding_y": 6 }
    },
    { "type": "move", "y": 12 },

    { "type": "box", "fill": "F7F9FC", "border": "D7E0EC", "borderWidth": 0.8, "padding": 14, "gap": 14, "content": [
      { "type": "paragraph", "value": "Payment", "options": { "fontSize": 11, "fontWeight": "bold", "color": "1B3A6B" } },
      { "type": "move", "y": 4 },
      { "type": "qr", "kind": "epc", "name": "${seller.name}", "iban": "${payment.iban}", "bic": "${payment.bic}", "amount": "${payment.amount}", "remittance": "${invoice.number}", "width": 64 },
      { "type": "move", "x": 80, "y": 0 },
      { "type": "paragraph", "value": "IBAN   ${payment.iban}", "options": { "fontSize": 9 } },
      { "type": "paragraph", "value": "BIC    ${payment.bic}", "options": { "fontSize": 9 } },
      { "type": "paragraph", "value": "Reference   ${invoice.number}", "options": { "fontSize": 9 } },
      { "type": "move", "y": 4 },
      { "type": "paragraph", "value": "Scan the EPC code with your banking app to pre-fill the transfer.", "options": { "fontSize": 8.5, "color": "5B6B82" } },
      { "type": "move", "x": -80, "y": 16 }
    ]},

    { "type": "paragraph", "value": "Statutory information", "options": { "fontSize": 8, "fontWeight": "bold", "color": "1B3A6B" } },
    { "type": "move", "y": 3 },
    {
      "type": "list",
      "marker": "—",
      "indent": 10,
      "spacing": 2,
      "items": [
        "Payment terms: ${invoice.terms}.",
        "Late payment: ECB refinancing rate plus 10 points, plus a €40 recovery indemnity (art. L441-10, French Commercial Code).",
        "${invoice.operation_note}",
        "${invoice.vat_note}",
        "Goods remain the property of ${seller.name} until paid in full."
      ],
      "options": { "fontSize": 8, "color": "4B5A70", "lineHeight": 1.35 }
    }
  ]
}
invoice_compliant.data.json json
{
  "data": {
    "seller": {
      "name": "Meridian Instruments SAS",
      "tagline": "Precision measurement and calibration",
      "address": "18 rue de Paradis",
      "city": "75010 Paris, France",
      "vat_number": "FR75512345679",
      "siren": "512 345 679",
      "siret": "512 345 679 00017",
      "registration": "RCS Paris 512 345 679 · capital €50,000"
    },
    "customer": {
      "name": "Philharmonie Immobilier SAS",
      "address": "221 avenue Jean-Jaurès",
      "city": "75019 Paris, France",
      "vat_number": "FR22842917361",
      "siren": "842 917 361"
    },
    "invoice": {
      "number": "MI-2025-0184",
      "issued": "28 Nov 2025",
      "supplied": "21 Nov 2025",
      "due": "28 Dec 2025",
      "po_ref": "PO-4471",
      "terms": "net 30 days from the invoice date",
      "operation_note": "Nature of the operation: supply of goods and services.",
      "vat_note": "VAT payable on debits (option under art. 269-2-c, French General Tax Code)."
    },
    "items": [
      { "name": "On-site calibration, climate sensor array", "qty": "2", "unit": "480.00", "vat_rate": "20%", "net": "960.00" },
      { "name": "Sensor module MX-4, replacement unit", "qty": "6", "unit": "145.00", "vat_rate": "20%", "net": "870.00" },
      { "name": "Technical handbook, printed edition", "qty": "12", "unit": "18.50", "vat_rate": "5.5%", "net": "222.00" }
    ],
    "vat_breakdown": [
      { "rate": "20%", "base": "1,830.00", "amount": "366.00" },
      { "rate": "5.5%", "base": "222.00", "amount": "12.21" }
    ],
    "totals": {
      "net": "€2,052.00",
      "vat": "€378.21",
      "due": "€2,430.21"
    },
    "payment": {
      "iban": "FR7630006000011234567890189",
      "bic": "CRLYFRPP",
      "amount": "2430.21"
    }
  }
}
invoice_compliant.facturx.xml xml
<?xml version="1.0" encoding="UTF-8"?>
<rsm:CrossIndustryInvoice
    xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100"
    xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100"
    xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:100"
    xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <rsm:ExchangedDocumentContext>
    <ram:GuidelineSpecifiedDocumentContextParameter>
      <ram:ID>urn:cen.eu:en16931:2017</ram:ID>
    </ram:GuidelineSpecifiedDocumentContextParameter>
  </rsm:ExchangedDocumentContext>
  <rsm:ExchangedDocument>
    <ram:ID>MI-2025-0184</ram:ID>
    <ram:TypeCode>380</ram:TypeCode>
    <ram:IssueDateTime>
      <udt:DateTimeString format="102">20251128</udt:DateTimeString>
    </ram:IssueDateTime>
  </rsm:ExchangedDocument>
  <rsm:SupplyChainTradeTransaction>
    <ram:IncludedSupplyChainTradeLineItem>
      <ram:AssociatedDocumentLineDocument>
        <ram:LineID>1</ram:LineID>
      </ram:AssociatedDocumentLineDocument>
      <ram:SpecifiedTradeProduct>
        <ram:Name>On-site calibration, climate sensor array</ram:Name>
      </ram:SpecifiedTradeProduct>
      <ram:SpecifiedLineTradeAgreement>
        <ram:NetPriceProductTradePrice>
          <ram:ChargeAmount>480.00</ram:ChargeAmount>
        </ram:NetPriceProductTradePrice>
      </ram:SpecifiedLineTradeAgreement>
      <ram:SpecifiedLineTradeDelivery>
        <ram:BilledQuantity unitCode="C62">2</ram:BilledQuantity>
      </ram:SpecifiedLineTradeDelivery>
      <ram:SpecifiedLineTradeSettlement>
        <ram:ApplicableTradeTax>
          <ram:TypeCode>VAT</ram:TypeCode>
          <ram:CategoryCode>S</ram:CategoryCode>
          <ram:RateApplicablePercent>20.00</ram:RateApplicablePercent>
        </ram:ApplicableTradeTax>
        <ram:SpecifiedTradeSettlementLineMonetarySummation>
          <ram:LineTotalAmount>960.00</ram:LineTotalAmount>
        </ram:SpecifiedTradeSettlementLineMonetarySummation>
      </ram:SpecifiedLineTradeSettlement>
    </ram:IncludedSupplyChainTradeLineItem>
    <ram:IncludedSupplyChainTradeLineItem>
      <ram:AssociatedDocumentLineDocument>
        <ram:LineID>2</ram:LineID>
      </ram:AssociatedDocumentLineDocument>
      <ram:SpecifiedTradeProduct>
        <ram:Name>Sensor module MX-4, replacement unit</ram:Name>
      </ram:SpecifiedTradeProduct>
      <ram:SpecifiedLineTradeAgreement>
        <ram:NetPriceProductTradePrice>
          <ram:ChargeAmount>145.00</ram:ChargeAmount>
        </ram:NetPriceProductTradePrice>
      </ram:SpecifiedLineTradeAgreement>
      <ram:SpecifiedLineTradeDelivery>
        <ram:BilledQuantity unitCode="C62">6</ram:BilledQuantity>
      </ram:SpecifiedLineTradeDelivery>
      <ram:SpecifiedLineTradeSettlement>
        <ram:ApplicableTradeTax>
          <ram:TypeCode>VAT</ram:TypeCode>
          <ram:CategoryCode>S</ram:CategoryCode>
          <ram:RateApplicablePercent>20.00</ram:RateApplicablePercent>
        </ram:ApplicableTradeTax>
        <ram:SpecifiedTradeSettlementLineMonetarySummation>
          <ram:LineTotalAmount>870.00</ram:LineTotalAmount>
        </ram:SpecifiedTradeSettlementLineMonetarySummation>
      </ram:SpecifiedLineTradeSettlement>
    </ram:IncludedSupplyChainTradeLineItem>
    <ram:IncludedSupplyChainTradeLineItem>
      <ram:AssociatedDocumentLineDocument>
        <ram:LineID>3</ram:LineID>
      </ram:AssociatedDocumentLineDocument>
      <ram:SpecifiedTradeProduct>
        <ram:Name>Technical handbook, printed edition</ram:Name>
      </ram:SpecifiedTradeProduct>
      <ram:SpecifiedLineTradeAgreement>
        <ram:NetPriceProductTradePrice>
          <ram:ChargeAmount>18.50</ram:ChargeAmount>
        </ram:NetPriceProductTradePrice>
      </ram:SpecifiedLineTradeAgreement>
      <ram:SpecifiedLineTradeDelivery>
        <ram:BilledQuantity unitCode="C62">12</ram:BilledQuantity>
      </ram:SpecifiedLineTradeDelivery>
      <ram:SpecifiedLineTradeSettlement>
        <ram:ApplicableTradeTax>
          <ram:TypeCode>VAT</ram:TypeCode>
          <ram:CategoryCode>S</ram:CategoryCode>
          <ram:RateApplicablePercent>5.50</ram:RateApplicablePercent>
        </ram:ApplicableTradeTax>
        <ram:SpecifiedTradeSettlementLineMonetarySummation>
          <ram:LineTotalAmount>222.00</ram:LineTotalAmount>
        </ram:SpecifiedTradeSettlementLineMonetarySummation>
      </ram:SpecifiedLineTradeSettlement>
    </ram:IncludedSupplyChainTradeLineItem>
    <ram:ApplicableHeaderTradeAgreement>
      <ram:SellerTradeParty>
        <ram:Name>Meridian Instruments SAS</ram:Name>
        <ram:SpecifiedLegalOrganization>
          <ram:ID schemeID="0009">51234567900017</ram:ID>
        </ram:SpecifiedLegalOrganization>
        <ram:PostalTradeAddress>
          <ram:PostcodeCode>75010</ram:PostcodeCode>
          <ram:LineOne>18 rue de Paradis</ram:LineOne>
          <ram:CityName>Paris</ram:CityName>
          <ram:CountryID>FR</ram:CountryID>
        </ram:PostalTradeAddress>
        <ram:SpecifiedTaxRegistration>
          <ram:ID schemeID="VA">FR75512345679</ram:ID>
        </ram:SpecifiedTaxRegistration>
      </ram:SellerTradeParty>
      <ram:BuyerTradeParty>
        <ram:Name>Philharmonie Immobilier SAS</ram:Name>
        <ram:SpecifiedLegalOrganization>
          <ram:ID schemeID="0002">842917361</ram:ID>
        </ram:SpecifiedLegalOrganization>
        <ram:PostalTradeAddress>
          <ram:PostcodeCode>75019</ram:PostcodeCode>
          <ram:LineOne>221 avenue Jean-Jaurès</ram:LineOne>
          <ram:CityName>Paris</ram:CityName>
          <ram:CountryID>FR</ram:CountryID>
        </ram:PostalTradeAddress>
        <ram:SpecifiedTaxRegistration>
          <ram:ID schemeID="VA">FR22842917361</ram:ID>
        </ram:SpecifiedTaxRegistration>
      </ram:BuyerTradeParty>
    </ram:ApplicableHeaderTradeAgreement>
    <ram:ApplicableHeaderTradeDelivery/>
    <ram:ApplicableHeaderTradeSettlement>
      <ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
      <ram:ApplicableTradeTax>
        <ram:CalculatedAmount>366.00</ram:CalculatedAmount>
        <ram:TypeCode>VAT</ram:TypeCode>
        <ram:BasisAmount>1830.00</ram:BasisAmount>
        <ram:CategoryCode>S</ram:CategoryCode>
        <ram:RateApplicablePercent>20.00</ram:RateApplicablePercent>
      </ram:ApplicableTradeTax>
      <ram:ApplicableTradeTax>
        <ram:CalculatedAmount>12.21</ram:CalculatedAmount>
        <ram:TypeCode>VAT</ram:TypeCode>
        <ram:BasisAmount>222.00</ram:BasisAmount>
        <ram:CategoryCode>S</ram:CategoryCode>
        <ram:RateApplicablePercent>5.50</ram:RateApplicablePercent>
      </ram:ApplicableTradeTax>
      <ram:SpecifiedTradePaymentTerms>
        <ram:Description>Net 30 days from the invoice date</ram:Description>
        <ram:DueDateDateTime>
          <udt:DateTimeString format="102">20251228</udt:DateTimeString>
        </ram:DueDateDateTime>
      </ram:SpecifiedTradePaymentTerms>
      <ram:SpecifiedTradeSettlementHeaderMonetarySummation>
        <ram:LineTotalAmount>2052.00</ram:LineTotalAmount>
        <ram:TaxBasisTotalAmount>2052.00</ram:TaxBasisTotalAmount>
        <ram:TaxTotalAmount currencyID="EUR">378.21</ram:TaxTotalAmount>
        <ram:GrandTotalAmount>2430.21</ram:GrandTotalAmount>
        <ram:DuePayableAmount>2430.21</ram:DuePayableAmount>
      </ram:SpecifiedTradeSettlementHeaderMonetarySummation>
    </ram:ApplicableHeaderTradeSettlement>
  </rsm:SupplyChainTradeTransaction>
</rsm:CrossIndustryInvoice>