---
title: "Validate JSON Document"
method: POST
path: "/api/validate/json"
tags: ["Validate"]
---

# Validate JSON Document

`POST /api/validate/json`

Validate if the JSON document can be converted to a valid UBL document

## Request body

- DocumentCreate
  - `document_type` 'INVOICE' | 'CREDIT_NOTE' | 'DEBIT_NOTE'
  - `state` 'DRAFT' | 'TRANSIT' | 'FAILED' | 'SENT' | 'RECEIVED'
  - `direction` 'INBOUND' | 'OUTBOUND'
  - `customer_name` string, nullable — The company name of the customer/buyer
  - `customer_id` string, nullable — The unique identifier for the customer in your system
  - `customer_email` string, nullable — The email address of the customer
  - `purchase_order` string, nullable — The purchase order reference number
  - `invoice_id` string, nullable — The unique invoice identifier/number
  - `invoice_date` string, date, nullable — The date when the invoice was issued
  - `due_date` string, date, nullable — The date when payment is due
  - `note` string, nullable — Additional notes or comments for the invoice
  - `vendor_name` string, nullable — The name of the vendor/seller/supplier
  - `vendor_email` string, nullable — The email address of the vendor
  - `vendor_address` string, nullable — The address of the vendor/seller
  - `vendor_address_recipient` string, nullable — The recipient name at the vendor address
  - `customer_address` string, nullable — The address of the customer/buyer
  - `customer_address_recipient` string, nullable — The recipient name at the customer address
  - `billing_address` string, nullable — The billing address (if different from customer address)
  - `billing_address_recipient` string, nullable — The recipient name at the billing address
  - `shipping_address` string, nullable — The shipping/delivery address
  - `shipping_address_recipient` string, nullable — The recipient name at the shipping address
  - `currency` 'EUR' | 'USD' | 'GBP' | 'JPY' | 'CHF' | 'CAD' | 'AUD' | 'NZD' | 'CNY' | 'INR' | 'SEK' | 'NOK' | 'DKK' | 'SGD' | 'HKD'
  - `tax_code` 'AE' | 'E' | 'S' | 'Z' | 'G' | 'O' | 'K' | 'L' | 'M' | 'B' — Duty or tax or fee category codes (Subset of UNCL5305) Agency: UN/CEFACT Version: D.16B Subset: OpenPEPPOL
  - `vatex` 'VATEX-EU-79-C' | 'VATEX-EU-132' | 'VATEX-EU-132-1A' | 'VATEX-EU-132-1B' | 'VATEX-EU-132-1C' | 'VATEX-EU-132-1D' | 'VATEX-EU-132-1E' | 'VATEX-EU-132-1F' | 'VATEX-EU-132-1G' | 'VATEX-EU-132-1H' | 'VATEX-EU-132-1I' | 'VATEX-EU-132-1J' | 'VATEX-EU-132-1K' | 'VATEX-EU-132-1L' | 'VATEX-EU-132-1M' | 'VATEX-EU-132-1N' | 'VATEX-EU-132-1O' | 'VATEX-EU-132-1P' | 'VATEX-EU-132-1Q' | 'VATEX-EU-143' | 'VATEX-EU-143-1A' | 'VATEX-EU-143-1B' | 'VATEX-EU-143-1C' | 'VATEX-EU-143-1D' | 'VATEX-EU-143-1E' | 'VATEX-EU-143-1F' | 'VATEX-EU-143-1FA' | 'VATEX-EU-143-1G' | 'VATEX-EU-143-1H' | 'VATEX-EU-143-1I' | 'VATEX-EU-143-1J' | 'VATEX-EU-143-1K' | 'VATEX-EU-143-1L' | 'VATEX-EU-144' | 'VATEX-EU-146-1E' | 'VATEX-EU-148' | 'VATEX-EU-148-A' | 'VATEX-EU-148-B' | 'VATEX-EU-148-C' | 'VATEX-EU-148-D' | 'VATEX-EU-148-E' | 'VATEX-EU-148-F' | 'VATEX-EU-148-G' | 'VATEX-EU-151' | 'VATEX-EU-151-1A' | 'VATEX-EU-151-1AA' | 'VATEX-EU-151-1B' | 'VATEX-EU-151-1C' | 'VATEX-EU-151-1D' | 'VATEX-EU-151-1E' | 'VATEX-EU-159' | 'VATEX-EU-309' | 'VATEX-EU-AE' | 'VATEX-EU-D' | 'VATEX-EU-F' | 'VATEX-EU-G' | 'VATEX-EU-I' | 'VATEX-EU-IC' | 'VATEX-EU-O' | 'VATEX-EU-J' | 'VATEX-FR-FRANCHISE' | 'VATEX-FR-CNWVAT' — VATEX code list for VAT exemption reasons Agency: CEF Identifier: vatex
  - `vatex_note` string, nullable — Textual explanation for VAT exemption
  - `subtotal` union — The taxable base of the invoice. Should be the sum of all line items - allowances (for example commercial discounts) + charges with impact on VAT. Must be positive and rounded to maximum 2 decimals
    - number
    - string
  - `total_discount` union — The net financial discount/charge of the invoice (non-VAT charges minus non-VAT allowances). Can be positive (net charge), negative (net discount), or zero. Must be rounded to maximum 2 decimals
    - number
    - string
  - `total_tax` union — The total tax amount of the invoice. Must be positive and rounded to maximum 2 decimals
    - number
    - string
  - `invoice_total` union — The total amount of the invoice including tax (invoice_total = subtotal + total_tax + total_discount). Must be positive and rounded to maximum 2 decimals
    - number
    - string
  - `amount_due` union — The amount due for payment. Must be positive and rounded to maximum 2 decimals
    - number
    - string
  - `previous_unpaid_balance` union — The previous unpaid balance from prior invoices, if any. Must be positive and rounded to maximum 2 decimals
    - number
    - string
  - `remittance_address` string, nullable — The address where payment should be sent or remitted to
  - `remittance_address_recipient` string, nullable — The recipient name at the remittance address
  - `service_address` string, nullable — The address where services were performed or goods were delivered
  - `service_address_recipient` string, nullable — The recipient name at the service address
  - `service_start_date` string, date, nullable — The start date of the service period or delivery period
  - `service_end_date` string, date, nullable — The end date of the service period or delivery period
  - `vendor_tax_id` string, nullable — Vendor tax ID. For Belgium this is the VAT number. Must include the country prefix
  - `vendor_company_id` string, nullable — Vendor company ID. For Belgium this is the CBE number or their EUID (European Unique Identifier) number. In the Netherlands this is the KVK number.
  - `customer_tax_id` string, nullable — Customer tax ID. For Belgium this is the VAT number. Must include the country prefix
  - `customer_company_id` string, nullable — Customer company ID. For Belgium this is the CBE number or their EUID (European Unique Identifier) number. In the Netherlands this is the KVK number.
  - `payment_term` string, nullable — The payment terms (e.g., 'Net 30', 'Due on receipt', '2/10 Net 30')
  - `payment_details` PaymentDetailCreate[], nullable
    - `iban` string, nullable — International Bank Account Number for payment transfers
    - `swift` string, nullable — SWIFT/BIC code of the bank
    - `bank_account_number` string, nullable — Bank account number (for non-IBAN accounts)
    - `payment_reference` string, nullable — Structured payment reference or communication (e.g., structured communication for Belgian bank transfers)
  - `tax_details` TaxDetailCreateInput[], nullable
    - `amount` union — The tax amount for this tax category. Must be rounded to maximum 2 decimals
      - number
      - string
    - `rate` string, nullable — The tax rate as a percentage (e.g., '21.00', '6.00', '0.00')
  - `items` LineItemCreateInput[] — At least one line item is required
    - `amount` union — The invoice line net amount (BT-131), exclusive of VAT, inclusive of line level allowances and charges. Calculated as: ((unit_price / price_base_quantity) * quantity) - allowances + charges. Must be rounded to maximum 2 decimals. Can be negative for credit notes or corrections.
      - number
      - string
    - `date` unknown
    - `description` string, nullable — The description of the line item.
    - `quantity` union — The quantity of items (goods or services) that is the subject of the line item. Must be rounded to maximum 4 decimals. Can be negative for credit notes or corrections.
      - number
      - string
    - `product_code` string, nullable — The product code of the line item.
    - `tax` union — The total VAT amount for the line item. Must be rounded to maximum 2 decimals. Can be negative for credit notes or corrections.
      - number
      - string
    - `tax_rate` union — The VAT rate of the line item expressed as percentage with 2 decimals
      - number
      - string
    - `unit` '10' | '11' | '13' | '14' | '15' | '20' | '21' | '22' | '23' | '24' | '25' | '27' | '28' | '33' | '34' | '35' | '37' | '38' | '40' | '41' | '56' | '57' | '58' | '59' | '60' | '61' | '74' | '77' | '80' | '81' | '85' | '87' | '89' | '91' | '1I' | 'EA' | 'E01' | 'E07' | 'E09' | 'E10' | 'E12' | 'E14' | 'E17' | 'E20' | 'E23' | 'E25' | 'E27' | 'E31' | 'E34' | 'E35' | 'E36' | 'E37' | 'E38' | 'E39' | 'E40' | 'E41' | 'E42' | 'E43' | 'E44' | 'E45' | 'E46' | 'E47' | 'E48' | 'E49' | 'E50' | 'E51' | 'E52' | 'E53' | 'E54' | 'E55' | 'E56' | 'E57' | 'E58' | 'E60' | 'E62' | 'E65' | 'E66' | 'E67' | 'E69' | 'E70' | 'E71' | 'E73' | 'E75' | 'E76' | '2A' | '2B' | '2C' | '2G' | '2H' | '2I' | '2J' | '2K' | '2L' | '2M' | '2N' | '2P' | '2Q' | '2R' | '2U' | '2X' | '2Y' | '2Z' | '3B' | '3C' | '4C' | '4G' | '4H' | '4K' | '4L' | '4M' | '4N' | '4O' | '4P' | '4Q' | '4R' | '4T' | '4U' | '4W' | '4X' | '5A' | '5B' | '5E' | '5J' | 'A10' | 'A11' | 'A12' | 'A13' | 'A14' | 'A15' | 'A16' | 'A17' | 'A18' | 'A19' | 'A2' | 'A20' | 'A21' | 'A22' | 'A23' | 'A24' | 'A26' | 'A27' | 'A28' | 'A29' | 'A3' | 'A30' | 'A31' | 'A32' | 'A33' | 'A34' | 'A35' | 'A36' | 'A37' | 'A38' | 'A39' | 'A4' | 'A40' | 'A41' | 'A42' | 'A43' | 'A44' | 'A45' | 'A46' | 'A47' | 'A48' | 'A49' | 'A5' | 'A50' | 'A51' | 'A52' | 'A53' | 'A54' | 'A55' | 'A56' | 'A57' | 'A58' | 'A59' | 'A6' | 'A60' | 'A61' | 'A62' | 'A63' | 'A64' | 'A65' | 'A66' | 'A67' | 'A68' | 'A69' | 'A7' | 'A70' | 'A71' | 'A72' | 'A73' | 'A74' | 'A75' | 'A76' | 'A77' | 'A78' | 'A79' | 'A8' | 'A80' | 'A81' | 'A82' | 'A83' | 'A84' | 'A85' | 'A86' | 'A87' | 'A88' | 'A89' | 'A9' | 'A90' | 'A91' | 'A92' | 'A93' | 'A94' | 'A95' | 'A96' | 'A97' | 'A98' | 'A99' | 'ACR' | 'AH' | 'AI' | 'AK' | 'AMH' | 'AMT' | 'ANN' | 'B1' | 'B11' | 'B12' | 'B13' | 'B14' | 'B15' | 'B16' | 'B17' | 'B18' | 'B19' | 'B20' | 'B21' | 'B22' | 'B23' | 'B24' | 'B25' | 'B26' | 'B27' | 'B28' | 'B29' | 'B3' | 'B30' | 'B31' | 'B32' | 'B33' | 'B34' | 'B35' | 'B36' | 'B37' | 'B38' | 'B39' | 'B4' | 'B40' | 'B41' | 'B42' | 'B43' | 'B44' | 'B45' | 'B46' | 'B47' | 'B48' | 'B49' | 'B5' | 'B50' | 'B52' | 'B53' | 'B54' | 'B55' | 'B56' | 'B57' | 'B58' | 'B59' | 'B6' | 'B60' | 'B61' | 'B62' | 'B63' | 'B64' | 'B65' | 'B66' | 'B67' | 'B68' | 'B69' | 'B7' | 'B70' | 'B71' | 'B72' | 'B73' | 'B74' | 'B75' | 'B76' | 'B77' | 'B78' | 'B79' | 'B8' | 'B80' | 'B81' | 'B82' | 'B83' | 'B84' | 'B85' | 'B86' | 'B87' | 'B88' | 'B89' | 'B9' | 'B90' | 'B91' | 'B92' | 'B93' | 'B94' | 'B95' | 'B96' | 'B97' | 'B98' | 'B99' | 'BAR' | 'BB' | 'BFT' | 'BHP' | 'BIL' | 'BLD' | 'BLL' | 'BUA' | 'BUI' | 'C0' | 'C10' | 'C11' | 'C12' | 'C13' | 'C14' | 'C15' | 'C16' | 'C17' | 'C18' | 'C19' | 'C20' | 'C21' | 'C22' | 'C23' | 'C24' | 'C25' | 'C26' | 'C27' | 'C28' | 'C29' | 'C30' | 'C31' | 'C32' | 'C33' | 'C34' | 'C35' | 'C36' | 'C37' | 'C38' | 'C39' | 'C40' | 'C41' | 'C42' | 'C43' | 'C44' | 'C45' | 'C46' | 'C47' | 'C48' | 'C49' | 'C50' | 'C51' | 'C52' | 'C53' | 'C54' | 'C55' | 'C56' | 'C57' | 'C58' | 'C59' | 'C60' | 'C61' | 'C63' | 'C64' | 'C65' | 'C66' | 'C67' | 'C68' | 'C69' | 'C70' | 'C71' | 'C72' | 'C73' | 'C74' | 'C75' | 'C76' | 'C77' | 'C78' | 'C79' | 'C80' | 'C81' | 'C82' | 'C83' | 'C84' | 'C85' | 'C86' | 'C87' | 'C88' | 'C89' | 'C90' | 'C91' | 'C92' | 'C93' | 'C94' | 'C95' | 'C96' | 'C97' | 'C98' | 'C99' | 'CDL' | 'CEL' | 'CHU' | 'CIU' | 'CLT' | 'CMK' | 'CMQ' | 'CMT' | 'CNP' | 'CNT' | 'COU' | 'CTG' | 'CTN' | 'CUR' | 'CWA' | 'CWI' | 'DAN' | 'DAY' | 'DB' | 'DD' | 'DG' | 'DI' | 'DLT' | 'DMK' | 'DMQ' | 'DMT' | 'DPC' | 'DPT' | 'DRA' | 'DZN' | 'DZP' | 'FOT' | 'GLL' | 'GLI' | 'GRM' | 'GRO' | 'HUR' | 'HTZ' | 'INH' | 'KGM' | 'KMT' | 'MTR' | 'SMI' | 'MIN' | 'MON' | 'ONZ' | 'LBR' | 'QT' | 'SEC' | 'FTK' | 'INK' | 'MTK' | 'YDK' | 'TNE' | 'VLT' | 'WTT' | 'YRD' | 'FTQ' | 'INQ' | 'MTQ' | 'YDQ' | 'HAR' | 'KLT' | 'MLT' | 'MMT' | 'KMK' | 'MMK' | 'XAA' | 'XAB' | 'XAC' | 'XAD' | 'XAE' | 'XAF' | 'XAG' | 'XAH' | 'XAI' | 'XAJ' | 'XAL' | 'XAM' | 'XAP' | 'XAT' | 'XAV' | 'XB4' | 'XBA' | 'XBB' | 'XBC' | 'XBD' | 'XBE' | 'XBF' | 'XBG' | 'XBH' | 'XBI' | 'XBJ' | 'XBK' | 'XBL' | 'XBM' | 'XBN' | 'XBO' | 'XBP' | 'XBQ' | 'XBR' | 'XBS' | 'XBT' | 'XBU' | 'XBV' | 'XBW' | 'XBX' | 'XBY' | 'XBZ' | 'XCA' | 'XCB' | 'XCC' | 'XCD' | 'XCE' | 'XCF' | 'XCG' | 'XCH' | 'XCI' | 'XCJ' | 'XCK' | 'XCL' | 'XCM' | 'XCN' | 'XCO' | 'XCP' | 'XCQ' | 'XCR' | 'XCS' | 'XCT' | 'XCU' | 'XCV' | 'XCW' | 'XCX' | 'XCY' | 'XCZ' | 'XDA' | 'XDB' | 'XDC' | 'XDD' | 'XDE' | 'XDF' | 'XDG' | 'XDH' | 'XDI' | 'XDJ' | 'XDK' | 'XDL' | 'XDM' | 'XDN' | 'XDP' | 'XDQ' | 'XDR' | 'XDS' | 'XDT' | 'XDU' | 'XDV' | 'XDW' | 'XDX' | 'XDY' | 'XDZ' | 'XEA' | 'XEB' | 'XEC' | 'XED' | 'XEE' | 'XEF' | 'XEG' | 'XEH' | 'XEI' | 'XEJ' | 'XEK' | 'XEL' | 'XEM' | 'XEN' | 'XEP' | 'XEQ' | 'XER' | 'XES' | 'XET' | 'XEU' | 'XEV' | 'XEW' | 'XEX' | 'XEY' | 'XFB' | 'XFC' | 'XFD' | 'XFE' | 'XFF' | 'XFG' | 'XFH' | 'XFI' | 'XFJ' | 'XFK' | 'XFL' | 'XFM' | 'XFN' | 'XFO' | 'XFP' | 'XFQ' | 'XFR' | 'XFS' | 'XFT' | 'XFU' | 'XFV' | 'XFW' | 'XFX' | 'XFY' | 'XFZ' | 'XGA' | 'XGB' | 'XGC' | 'XGD' | 'XGE' | 'XGF' | 'XGG' | 'XGH' | 'XGI' | 'XGJ' | 'XGK' | 'XGL' | 'XGM' | 'XGN' | 'XGO' | 'XGP' | 'XGQ' | 'XGR' | 'XGS' | 'XGT' | 'XGU' | 'XGV' | 'XGW' | 'XGX' | 'XGY' | 'XGZ' | 'XHA' | 'XHB' | 'XHC' | 'XHD' | 'XHE' | 'XHF' | 'XHG' | 'XHH' | 'XHI' | 'XHJ' | 'XHK' | 'XHL' | 'XHM' | 'XHN' | 'XHP' | 'XHQ' | 'XHR' | 'XHS' | 'XHT' | 'XHU' | 'XHV' | 'XHW' | 'XHX' | 'XHY' | 'XHZ' | 'XIA' | 'XIB' | 'XIC' | 'XID' | 'XIE' | 'XIF' | 'XIG' | 'XIH' | 'XII' | 'XIJ' | 'XIK' | 'XIL' | 'XIM' | 'XIN' | 'XIO' | 'XJA' | 'XJB' | 'XJC' | 'XJD' | 'XJE' | 'XJF' | 'XJG' | 'XJH' | 'XJI' | 'XJJ' | 'XJK' | 'XJL' | 'XJM' | 'XJN' | 'XJO' | 'XJP' | 'XJQ' | 'XJR' | 'XJS' | 'XJT' | 'XJU' | 'XJV' | 'XJW' | 'XJX' | 'XJY' | 'XJZ' | 'XLA' | 'XLB' | 'XLC' | 'XLD' | 'XLE' | 'XLF' | 'XLG' | 'XLH' | 'XLI' | 'XLJ' | 'XLK' | 'XLL' | 'XLM' | 'XLN' | 'XLO' | 'XLP' | 'XLQ' | 'XLR' | 'XLS' | 'XLT' | 'XLU' | 'XLV' | 'XLW' | 'XLX' | 'XLY' | 'XLZ' | 'XMA' | 'XMB' | 'XMC' | 'XMD' | 'XME' | 'XMF' | 'XMG' | 'XMH' | 'XMI' | 'XMJ' | 'XMK' | 'XML' | 'XMM' | 'XMN' | 'XMO' | 'XMP' | 'XMQ' | 'XMR' | 'XMS' | 'XMT' | 'XMU' | 'XMV' | 'XMW' | 'XMX' | 'XMY' | 'XMZ' | 'XNA' | 'XNB' | 'XNC' | 'XND' | 'XNE' | 'XNF' | 'XNG' | 'XNH' | 'XNI' | 'XNJ' | 'XNK' | 'XNL' | 'XNM' | 'XOA' | 'XOB' | 'XOC' | 'XOD' | 'XOE' | 'XOF' | 'XOG' | 'XOH' | 'XOI' | 'XOJ' | 'XOK' | 'XOL' | 'XOM' | 'XON' | 'XOO' | 'XOP' | 'XOQ' | 'XOR' | 'XOS' | 'XOT' | 'XOU' | 'XOV' | 'XOW' | 'XOX' | 'XOY' | 'XOZ' | 'XP1' | 'XP2' | 'XP3' | 'XP4' | 'XPA' | 'XPB' | 'XPC' | 'XPD' | 'XPE' | 'XPF' | 'XPG' | 'XPH' | 'XPI' | 'XPJ' | 'XPK' | 'XPL' | 'XPM' | 'XPN' | 'XPO' | 'XPP' | 'XPQ' | 'XPR' | 'XPS' | 'XPT' | 'XPU' | 'XPV' | 'XPW' | 'XPX' | 'XPY' | 'XPZ' | 'XQA' | 'XQB' | 'XQC' | 'XQD' | 'XQE' | 'XQF' | 'XQG' | 'XQH' | 'XQI' | 'XQJ' | 'XQK' | 'XQL' | 'XQM' | 'XQN' | 'XQO' | 'XQP' | 'XQQ' | 'XQR' | 'XQS' | 'XRD' | 'XRE' | 'XRF' | 'XRG' | 'XRH' | 'XRI' | 'XRJ' | 'XRK' | 'XRL' | 'XRM' | 'XRN' | 'XRO' | 'XRP' | 'XRQ' | 'XRR' | 'XRS' | 'XRT' | 'XRU' | 'XRV' | 'XRW' | 'XRX' | 'XRY' | 'XRZ' | 'XSA' | 'XSB' | 'XSC' | 'XSD' | 'XSE' | 'XSF' | 'XSG' | 'XSH' | 'XSI' | 'XSJ' | 'XSK' | 'XSL' | 'XSM' | 'XSN' | 'XSO' | 'XSP' | 'XSQ' | 'XSR' | 'XSS' | 'XST' | 'XSU' | 'XSV' | 'XSW' | 'XSX' | 'XSY' | 'XSZ' | 'XTA' | 'XTB' | 'XTC' | 'XTD' | 'XTE' | 'XTF' | 'XTG' | 'XTI' | 'XTJ' | 'XTK' | 'XTL' | 'XTM' | 'XTN' | 'XTO' | 'XTR' | 'XTS' | 'XTT' | 'XTU' | 'XTV' | 'XTW' | 'XTX' | 'XTY' | 'XTZ' | 'XUC' | 'XUN' | 'XVA' | 'XVG' | 'XVI' | 'XVK' | 'XVL' | 'XVN' | 'XVO' | 'XVP' | 'XVQ' | 'XVR' | 'XVS' | 'XVY' | 'XWA' | 'XWB' | 'XWC' | 'XWD' | 'XWF' | 'XWG' | 'XWH' | 'XWJ' | 'XWK' | 'XWL' | 'XWM' | 'XWN' | 'XWP' | 'XWQ' | 'XWR' | 'XWS' | 'XWT' | 'XWU' | 'XWV' | 'XWW' | 'XWX' | 'XWY' | 'XWZ' | 'XXA' | 'XXB' | 'XXC' | 'XXD' | 'XXF' | 'XXG' | 'XXH' | 'XXJ' | 'XXK' | 'XYA' | 'XYB' | 'XYC' | 'XYD' | 'XYF' | 'XYG' | 'XYH' | 'XYJ' | 'XYK' | 'XYL' | 'XYM' | 'XYN' | 'XYP' | 'XYQ' | 'XYR' | 'XYS' | 'XYT' | 'XYV' | 'XYW' | 'XYX' | 'XYY' | 'XYZ' | 'XZA' | 'XZB' | 'XZC' | 'XZD' | 'XZF' | 'XZG' | 'XZH' | 'XZJ' | 'XZK' | 'XZL' | 'XZM' | 'XZN' | 'XZP' | 'XZQ' | 'XZR' | 'XZS' | 'XZT' | 'XZU' | 'XZV' | 'XZW' | 'XZX' | 'XZY' | 'XZZ' | 'ZZ' | 'NAR' | 'C62' | 'LTR' | 'H87' — Unit of Measure Codes from UNECERec20 used in Peppol BIS Billing 3.0.
    - `unit_price` union — The item net price (BT-146). The price of an item, exclusive of VAT, after subtracting item price discount. Must be rounded to maximum 4 decimals
      - number
      - string
    - `allowances` AllowanceInput[], nullable — The allowances of the line item.
      - `reason` string, nullable — The reason for the allowance
      - `reason_code` '41' | '42' | '60' | '62' | '63' | '64' | '65' | '66' | '67' | '68' | '70' | '71' | '88' | '95' | '100' | '102' | '103' | '104' | '105' — Allowance reason codes for invoice discounts and charges
      - `multiplier_factor` union — The percentage that may be used, in conjunction with the allowance base amount, to calculate the allowance amount. To state 20%, use value 20. Must be rounded to maximum 2 decimals
        - number
        - string
      - `amount` union — The allowance amount, without VAT. Must be rounded to maximum 2 decimals
        - number
        - string
      - `base_amount` union — The base amount that may be used, in conjunction with the allowance percentage, to calculate the allowance amount. Must be rounded to maximum 2 decimals
        - number
        - string
      - `tax_rate` union — The VAT rate, represented as percentage that applies to the allowance. Must be rounded to maximum 2 decimals
        - number
        - string
      - `tax_code` 'AE' | 'E' | 'S' | 'Z' | 'G' | 'O' | 'K' | 'L' | 'M' | 'B' — Duty or tax or fee category codes (Subset of UNCL5305) Agency: UN/CEFACT Version: D.16B Subset: OpenPEPPOL
    - `charges` ChargeInput[], nullable — The charges of the line item.
      - `reason` string, nullable — The reason for the charge
      - `reason_code` 'AA' | 'AAA' | 'AAC' | 'AAD' | 'AAE' | 'AAF' | 'AAH' | 'AAI' | 'AAS' | 'AAT' | 'AAV' | 'AAY' | 'AAZ' | 'ABA' | 'ABB' | 'ABC' | 'ABD' | 'ABF' | 'ABK' | 'ABL' | 'ABN' | 'ABR' | 'ABS' | 'ABT' | 'ABU' | 'ACF' | 'ACG' | 'ACH' | 'ACI' | 'ACJ' | 'ACK' | 'ACL' | 'ACM' | 'ACS' | 'ADC' | 'ADE' | 'ADJ' | 'ADK' | 'ADL' | 'ADM' | 'ADN' | 'ADO' | 'ADP' | 'ADQ' | 'ADR' | 'ADT' | 'ADW' | 'ADY' | 'ADZ' | 'AEA' | 'AEB' | 'AEC' | 'AED' | 'AEF' | 'AEH' | 'AEI' | 'AEJ' | 'AEK' | 'AEL' | 'AEM' | 'AEN' | 'AEO' | 'AEP' | 'AES' | 'AET' | 'AEU' | 'AEV' | 'AEW' | 'AEX' | 'AEY' | 'AEZ' | 'AJ' | 'AU' | 'CA' | 'CAB' | 'CAD' | 'CAE' | 'CAF' | 'CAI' | 'CAJ' | 'CAK' | 'CAL' | 'CAM' | 'CAN' | 'CAO' | 'CAP' | 'CAQ' | 'CAR' | 'CAS' | 'CAT' | 'CAU' | 'CAV' | 'CAW' | 'CAX' | 'CAY' | 'CAZ' | 'CD' | 'CG' | 'CS' | 'CT' | 'DAB' | 'DAC' | 'DAD' | 'DAF' | 'DAG' | 'DAH' | 'DAI' | 'DAJ' | 'DAK' | 'DAL' | 'DAM' | 'DAN' | 'DAO' | 'DAP' | 'DAQ' | 'DL' | 'EG' | 'EP' | 'ER' | 'FAA' | 'FAB' | 'FAC' | 'FC' | 'FH' | 'FI' | 'GAA' | 'HAA' | 'HD' | 'HH' | 'IAA' | 'IAB' | 'ID' | 'IF' | 'IR' | 'IS' | 'KO' | 'L1' | 'LA' | 'LAA' | 'LAB' | 'LF' | 'MAE' | 'MI' | 'ML' | 'NAA' | 'OA' | 'PA' | 'PAA' | 'PC' | 'PL' | 'PRV' | 'RAB' | 'RAC' | 'RAD' | 'RAF' | 'RE' | 'RF' | 'RH' | 'RV' | 'SA' | 'SAA' | 'SAD' | 'SAE' | 'SAI' | 'SG' | 'SH' | 'SM' | 'SU' | 'TAB' | 'TAC' | 'TT' | 'TV' | 'V1' | 'V2' | 'WH' | 'XAA' | 'YY' | 'ZZZ' — Charge reason codes for invoice charges and fees
      - `multiplier_factor` union — The percentage that may be used, in conjunction with the charge base amount, to calculate the charge amount. To state 20%, use value 20
        - number
        - string
      - `amount` union — The charge amount, without VAT. Must be rounded to maximum 2 decimals
        - number
        - string
      - `base_amount` union — The base amount that may be used, in conjunction with the charge percentage, to calculate the charge amount. Must be rounded to maximum 2 decimals
        - number
        - string
      - `tax_rate` union — The VAT rate, represented as percentage that applies to the charge
        - number
        - string
      - `tax_code` 'AE' | 'E' | 'S' | 'Z' | 'G' | 'O' | 'K' | 'L' | 'M' | 'B' — Duty or tax or fee category codes (Subset of UNCL5305) Agency: UN/CEFACT Version: D.16B Subset: OpenPEPPOL
  - `attachments` DocumentAttachmentCreate[], nullable
    - `file_name` string, required
    - `file_type` string
    - `file_size` integer
    - `file_data` string, nullable — Base64 encoded file data
  - `allowances` AllowanceInput[], nullable
    - `reason` string, nullable — The reason for the allowance
    - `reason_code` '41' | '42' | '60' | '62' | '63' | '64' | '65' | '66' | '67' | '68' | '70' | '71' | '88' | '95' | '100' | '102' | '103' | '104' | '105' — Allowance reason codes for invoice discounts and charges
    - `multiplier_factor` union — The percentage that may be used, in conjunction with the allowance base amount, to calculate the allowance amount. To state 20%, use value 20. Must be rounded to maximum 2 decimals
      - number
      - string
    - `amount` union — The allowance amount, without VAT. Must be rounded to maximum 2 decimals
      - number
      - string
    - `base_amount` union — The base amount that may be used, in conjunction with the allowance percentage, to calculate the allowance amount. Must be rounded to maximum 2 decimals
      - number
      - string
    - `tax_rate` union — The VAT rate, represented as percentage that applies to the allowance. Must be rounded to maximum 2 decimals
      - number
      - string
    - `tax_code` 'AE' | 'E' | 'S' | 'Z' | 'G' | 'O' | 'K' | 'L' | 'M' | 'B' — Duty or tax or fee category codes (Subset of UNCL5305) Agency: UN/CEFACT Version: D.16B Subset: OpenPEPPOL
  - `charges` ChargeInput[], nullable
    - `reason` string, nullable — The reason for the charge
    - `reason_code` 'AA' | 'AAA' | 'AAC' | 'AAD' | 'AAE' | 'AAF' | 'AAH' | 'AAI' | 'AAS' | 'AAT' | 'AAV' | 'AAY' | 'AAZ' | 'ABA' | 'ABB' | 'ABC' | 'ABD' | 'ABF' | 'ABK' | 'ABL' | 'ABN' | 'ABR' | 'ABS' | 'ABT' | 'ABU' | 'ACF' | 'ACG' | 'ACH' | 'ACI' | 'ACJ' | 'ACK' | 'ACL' | 'ACM' | 'ACS' | 'ADC' | 'ADE' | 'ADJ' | 'ADK' | 'ADL' | 'ADM' | 'ADN' | 'ADO' | 'ADP' | 'ADQ' | 'ADR' | 'ADT' | 'ADW' | 'ADY' | 'ADZ' | 'AEA' | 'AEB' | 'AEC' | 'AED' | 'AEF' | 'AEH' | 'AEI' | 'AEJ' | 'AEK' | 'AEL' | 'AEM' | 'AEN' | 'AEO' | 'AEP' | 'AES' | 'AET' | 'AEU' | 'AEV' | 'AEW' | 'AEX' | 'AEY' | 'AEZ' | 'AJ' | 'AU' | 'CA' | 'CAB' | 'CAD' | 'CAE' | 'CAF' | 'CAI' | 'CAJ' | 'CAK' | 'CAL' | 'CAM' | 'CAN' | 'CAO' | 'CAP' | 'CAQ' | 'CAR' | 'CAS' | 'CAT' | 'CAU' | 'CAV' | 'CAW' | 'CAX' | 'CAY' | 'CAZ' | 'CD' | 'CG' | 'CS' | 'CT' | 'DAB' | 'DAC' | 'DAD' | 'DAF' | 'DAG' | 'DAH' | 'DAI' | 'DAJ' | 'DAK' | 'DAL' | 'DAM' | 'DAN' | 'DAO' | 'DAP' | 'DAQ' | 'DL' | 'EG' | 'EP' | 'ER' | 'FAA' | 'FAB' | 'FAC' | 'FC' | 'FH' | 'FI' | 'GAA' | 'HAA' | 'HD' | 'HH' | 'IAA' | 'IAB' | 'ID' | 'IF' | 'IR' | 'IS' | 'KO' | 'L1' | 'LA' | 'LAA' | 'LAB' | 'LF' | 'MAE' | 'MI' | 'ML' | 'NAA' | 'OA' | 'PA' | 'PAA' | 'PC' | 'PL' | 'PRV' | 'RAB' | 'RAC' | 'RAD' | 'RAF' | 'RE' | 'RF' | 'RH' | 'RV' | 'SA' | 'SAA' | 'SAD' | 'SAE' | 'SAI' | 'SG' | 'SH' | 'SM' | 'SU' | 'TAB' | 'TAC' | 'TT' | 'TV' | 'V1' | 'V2' | 'WH' | 'XAA' | 'YY' | 'ZZZ' — Charge reason codes for invoice charges and fees
    - `multiplier_factor` union — The percentage that may be used, in conjunction with the charge base amount, to calculate the charge amount. To state 20%, use value 20
      - number
      - string
    - `amount` union — The charge amount, without VAT. Must be rounded to maximum 2 decimals
      - number
      - string
    - `base_amount` union — The base amount that may be used, in conjunction with the charge percentage, to calculate the charge amount. Must be rounded to maximum 2 decimals
      - number
      - string
    - `tax_rate` union — The VAT rate, represented as percentage that applies to the charge
      - number
      - string
    - `tax_code` 'AE' | 'E' | 'S' | 'Z' | 'G' | 'O' | 'K' | 'L' | 'M' | 'B' — Duty or tax or fee category codes (Subset of UNCL5305) Agency: UN/CEFACT Version: D.16B Subset: OpenPEPPOL

## Response `201`

Successful Response

- UBLDocumentValidationResponse
  - `id` string, required
  - `file_name` string, nullable, required
  - `is_valid` boolean, required
  - `issues` ValidationIssue[], required
    - `message` string, required
    - `type` 'error' | 'warning', required
    - `location` string, nullable
    - `rule_id` string, nullable
    - `flag` string, nullable
    - `test` string, nullable
    - `schematron` string, required
  - `ubl_document` string, nullable

## Other responses

- `422` — Unprocessable File: Invalid file type
- `500` — Internal Server Error: Unexpected server error

---

[API](https://skmtc.net/e-invoice-be/apis/e-invoice-be-peppol-access-point-api.md) · [All operations](https://skmtc.net/e-invoice-be/apis/e-invoice-be-peppol-access-point-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/e-invoice-be/e-invoice-be-peppol-access-point-api/versions/a5b8396effe8/schema)
