EN16931 JSON struktūra

Šiame skyriuje aprašoma EN16931 JSON sąskaitos faktūros struktūra pagal Europos normos semantinį modelį.

Apžvalga

EN16931 yra Europos standartas elektroninėms sąskaitoms faktūroms, kuris apibrėžia semantinį duomenų modelį elektroninėms sąskaitoms faktūroms. Šis dokumentas paaiškina savybes ir jų galiojančias parinktis pagal EN16931 specifikaciją.

EN16931 standarto dokumentacija

JSON pavyzdžiai

Kiekinės eilutės

{
  "ublVersionId": "2.1",
  "customizationId": "urn:cen.eu:en16931:2017",
  "profileId": "urn:fdc:peppol.eu:2017:poacc:billing:01:1.0",
  "id": "INV-2025-001",
  "issueDate": "2025-10-01",
  "invoiceTypeCode": "380",
  "documentCurrencyCode": "EUR",
  "note": ["Sąskaita faktūra išrašyta pagal EN16931"],
  "additionalDocumentReference": [
    {
      "id": "PO-5678",
      "documentTypeCode": "50"
    }
  ],
  "purchaseOrderReference": {
    "id": "PO-5678"
  },
  "accountingSupplierParty": {
    "party": {
      "partyName": "UAB Tiekėjas",
      "partyIdentification": {
        "id": {
          "value": "123456789",
          "schemeId": "0088"
        }
      },
      "partyTaxScheme": {
        "companyId": "LT123456789",
        "taxSchemeId": "VAT"
      },
      "postalAddress": {
        "streetName": "Tiekėjo gatvė 1",
        "cityName": "Vilnius",
        "postalZone": "LT-01100",
        "country": {
          "identificationCode": "LT",
          "name": "Lietuva"
        }
      },
      "contact": {
        "name": "Jonas Tiekėjas",
        "telephone": "+37061234567",
        "electronicMail": "info@tiekejas.lt"
      }
    }
  },
  "accountingCustomerParty": {
    "party": {
      "partyName": "UAB Klientas",
      "partyIdentification": {
        "id": {
          "value": "987654321",
          "schemeId": "0088"
        }
      },
      "partyTaxScheme": {
        "companyId": "LT987654321",
        "taxSchemeId": "VAT"
      },
      "postalAddress": {
        "streetName": "Kliento gatvė 10",
        "cityName": "Klaipėda",
        "postalZone": "LT-44200",
        "country": {
          "identificationCode": "LT",
          "name": "Lietuva"
        }
      },
      "contact": {
        "name": "Petras Klientas",
        "telephone": "+37061239876",
        "electronicMail": "info@klientas.lt"
      }
    }
  },
  "invoiceLine": [
    {
      "id": "1",
      "invoicedQuantity": {
        "value": 10,
        "unitCode": "C62"
      },
      "lineExtensionAmount": {
        "value": 100,
        "currencyId": "EUR"
      },
      "item": {
        "name": "Prekė A",
        "description": "Pavyzdinė prekė"
      },
      "price": {
        "priceAmount": {
          "value": 10,
          "currencyId": "EUR"
        }
      },
      "taxTotal": {
        "taxAmount": {
          "value": 21,
          "currencyId": "EUR"
        },
        "taxSubtotal": [
          {
            "taxableAmount": {
              "value": 100,
              "currencyId": "EUR"
            },
            "taxAmount": {
              "value": 21,
              "currencyId": "EUR"
            },
            "taxCategory": {
              "id": "S",
              "percent": 21,
              "taxScheme": {
                "id": "VAT"
              }
            }
          }
        ]
      }
    }
  ],
  "legalMonetaryTotal": {
    "lineExtensionAmount": {
      "value": 100,
      "currencyId": "EUR"
    },
    "taxExclusiveAmount": {
      "value": 100,
      "currencyId": "EUR"
    },
    "taxInclusiveAmount": {
      "value": 121,
      "currencyId": "EUR"
    },
    "payableAmount": {
      "value": 121,
      "currencyId": "EUR"
    }
  },
  "taxTotal": [
    {
      "taxAmount": {
        "value": 21,
        "currencyId": "EUR"
      },
      "taxSubtotal": [
        {
          "taxableAmount": {
            "value": 100,
            "currencyId": "EUR"
          },
          "taxAmount": {
            "value": 21,
            "currencyId": "EUR"
          },
          "taxCategory": {
            "id": "S",
            "percent": 21,
            "taxScheme": {
              "id": "VAT"
            }
          }
        }
      ]
    }
  ]
}

Suminės eilutės

{
  "ublVersionId": "2.1",
  "customizationId": "urn:cen.eu:en16931:2017",
  "profileId": "urn:fdc:peppol.eu:2017:poacc:billing:01:1.1",
  "id": "INV-2025-AGG",
  "issueDate": "2025-10-01",
  "invoiceTypeCode": "380",
  "documentCurrencyCode": "EUR",
  "accountingSupplierParty": {
    "party": {
      "partyName": "UAB Tiekėjas",
      "partyIdentification": { "id": { "value": "123456789", "schemeId": "0088" } },
      "partyTaxScheme": { "companyId": "LT123456789", "taxSchemeId": "VAT" },
      "postalAddress": { "streetName": "Tiekėjo gatvė 1", "cityName": "Vilnius", "postalZone": "LT-01100", "country": { "identificationCode": "LT", "name": "Lietuva" } },
      "contact": { "name": "Jonas Tiekėjas", "telephone": "+37061234567", "electronicMail": "info@tiekejas.lt" }
    }
  },
  "accountingCustomerParty": {
    "party": {
      "partyName": "UAB Klientas",
      "partyIdentification": { "id": { "value": "987654321", "schemeId": "0088" } },
      "partyTaxScheme": { "companyId": "LT987654321", "taxSchemeId": "VAT" },
      "postalAddress": { "streetName": "Kliento gatvė 10", "cityName": "Kaunas", "postalZone": "LT-44200", "country": { "identificationCode": "LT", "name": "Lietuva" } },
      "contact": { "name": "Petras Klientas", "telephone": "+37061239876", "electronicMail": "info@klientas.lt" }
    }
  },
  "invoiceLine": [
    {
      "id": "Aggregated-001",
      "invoicedQuantity": { "value": 1, "unitCode": "LS" },
      "lineExtensionAmount": { "value": 1000, "currencyId": "EUR" },
      "item": { "name": "Suminė prekė C", "description": null },
      "price": { "priceAmount": { "value": 0, "currencyId": "EUR" } },
      "taxTotal": {
        "taxAmount": { "value": 210, "currencyId": "EUR" },
        "taxSubtotal": [
          {
            "taxableAmount": { "value": 1000, "currencyId": "EUR" },
            "taxAmount": { "value": 210, "currencyId": "EUR" },
            "taxCategory": { "id": "S", "percent": 21, "taxScheme": { "id": "VAT" } }
          }
        ]
      },
      "totalPriceGross": { "value": 1210, "currencyId": "EUR" }
    }
  ],
  "legalMonetaryTotal": {
    "lineExtensionAmount": { "value": 1000, "currencyId": "EUR" },
    "taxExclusiveAmount": { "value": 1000, "currencyId": "EUR" },
    "taxInclusiveAmount": { "value": 1210, "currencyId": "EUR" },
    "payableAmount": { "value": 1210, "currencyId": "EUR" }
  },
  "taxTotal": [
    {
      "taxAmount": { "value": 210, "currencyId": "EUR" },
      "taxSubtotal": [
        {
          "taxableAmount": { "value": 1000, "currencyId": "EUR" },
          "taxAmount": { "value": 210, "currencyId": "EUR" },
          "taxCategory": { "id": "S", "percent": 21, "taxScheme": { "id": "VAT" } }
        }
      ]
    }
  ]
}


1. Pagrindinis sąskaitos faktūros objektas
type En16931Invoice = {
  ublVersionId: string
  customizationId: string
  profileId?: string
  id: string
  issueDate: string
  invoiceTypeCode: string
  documentCurrencyCode: string
  note?: string[]
  additionalDocumentReference?: AdditionalDocumentReference[]
  purchaseOrderReference?: PurchaseOrderReference
  accountingSupplierParty: Party
  accountingCustomerParty: Party
  invoiceLine: InvoiceLine[]
  legalMonetaryTotal: MonetaryTotal
  taxTotal?: TaxTotal[]
}

1.1 Semantiniai identifikatoriai

Laukas
Tipas
Privalomas
Pavyzdys
Aprašymas

ublVersionId

string

"2.1"

Naudojamos UBL (Universal Business Language) specifikacijos versija

customizationId

string

"urn:cen.eu:en16931:2017"

Identifikuoja UBL specifikacijos pritaikymą (pvz., EN16931, XRechnung, PEPPOL)

profileId

string

"urn:fdc:peppol.eu:2017:poacc:billing:01:1.0"

Identifikuoja verslo proceso profilį

1.2 Sąskaitos faktūros metaduomenys

Laukas
Tipas
Privalomas
Pavyzdys
Aprašymas

id

string

"INV-2025-001"

Unikalus sąskaitos faktūros numeris tiekėjo sistemoje

issueDate

string (YYYY-MM-DD)

"2025-10-01"

Data, kada buvo išrašyta sąskaita faktūra

invoiceTypeCode

string

"380" (standartinė sąskaita), "381" (kreditinė), "383" (debetinė), "325"(išankstinė), "393" (kvitas)

Sąskaitos tipas

documentCurrencyCode

string

"EUR", "USD", "GBP"

Sąskaitoje naudojamos valiutos kodas (ISO 4217)

2. Dokumento nuorodos

2.1 Papildomos nuorodos

type AdditionalDocumentReference = {
  id: string
  documentTypeCode?: string
}
Laukas
Tipas
Pavyzdys
Aprašymas

id

string

"PO-1234"

Dokumento identifikatorius

documentTypeCode

string

"130", "50"

Dokumento nuorodos tipas

2.2 Pirkimo užsakymo nuoroda

type PurchaseOrderReference = {
  id: string
}
Laukas
Tipas
Pavyzdys

id

string

"PO-5678"

3. Šalių informacija (Kontrahentai)

Tiekėjo ir kliento struktūra yra vienoda:

type Party = {
  partyName: string
  partyIdentification?: PartyIdentification
  partyTaxScheme?: PartyTaxScheme
  postalAddress?: PostalAddress
  contact?: Contact
}

Svarbiausi laukai:

  • partyName – juridinis pavadinimas

  • partyIdentification – PVM ar registracijos numeriai

  • partyTaxScheme – mokesčių schema (VAT, GST)

  • postalAddress – adresas (miestas, šalis, pašto kodas)

  • contact – telefono nr., el. paštas

4. Sąskaitos faktūros eilutės

Pagrindiniai elementai:

  • id – eilutės identifikatorius

  • invoicedQuantity – kiekis + vienetai (C62, KGM, LTR)

  • lineExtensionAmount – eilutės suma be mokesčių

  • item – prekės/paslaugos informacija

  • price – vieneto kaina

  • allowanceCharge – nuolaidos ar papildomi mokesčiai

  • taxTotal – eilutės mokesčių informacija

5. Piniginės sumos (MonetaryTotal)
Laukas
Aprašymas

lineExtensionAmount

Visų eilučių suma be mokesčių

taxExclusiveAmount

Suma be mokesčių

taxInclusiveAmount

Suma su mokesčiais

payableAmount

Mokėtina suma (privaloma)

6. Mokesčių informacija
  • taxAmount – bendra mokesčių suma

  • taxSubtotal – detalizacija pagal kategorijas:

    • S – standartinis tarifas

    • Z – 0% tarifas

    • E – atleidimas nuo PVM

    • AE – atvirkštinis PVM

7. Papildomi plėtiniai

Mūsų išplėstas standartas leidžia naudoti papildomus laukus:

Eilutės lygmuo

  • warehouseCode – sandėlio kodas

  • expensesCode – išlaidų kategorija

  • vatCode – PVM klasifikacija

  • assetCode - turto klasifikacijos kodas

  • productCode - produkto kodas

  • groupCode - produkto grupės kodas

Kainų lygmuo

  • unitVatAmount – PVM suma už vienetą

  • unitPriceGross – bruto vieneto kaina

  • totalPriceGross – bruto eilutės suma

Bendrųjų duomenų lygmuo

  • totalVatAmount – bendras PVM

  • totalAmountGross – bendra bruto suma

  • totalAmountGrossInWords – suma žodžiais

  • totalPayAmountInWords – mokėtina suma žodžiais

Last updated