Skip to main content
POST
/
api
/
validate
/
json
Validate JSON Document
curl --request POST \
  --url https://api.e-invoice.be/api/validate/json \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "document_type": "INVOICE",
  "state": "DRAFT",
  "direction": "OUTBOUND",
  "customer_name": "<string>",
  "customer_id": "<string>",
  "customer_email": "<string>",
  "purchase_order": "<string>",
  "invoice_id": "<string>",
  "invoice_date": "2023-12-25",
  "due_date": "2023-12-25",
  "note": "<string>",
  "vendor_name": "<string>",
  "vendor_email": "<string>",
  "vendor_address": "<string>",
  "vendor_address_recipient": "<string>",
  "customer_address": "<string>",
  "customer_address_recipient": "<string>",
  "billing_address": "<string>",
  "billing_address_recipient": "<string>",
  "shipping_address": "<string>",
  "shipping_address_recipient": "<string>",
  "currency": "EUR",
  "tax_code": "S",
  "vatex": "VATEX-EU-79-C",
  "vatex_note": "<string>",
  "subtotal": 123,
  "total_discount": 123,
  "total_tax": 123,
  "invoice_total": 123,
  "amount_due": 123,
  "previous_unpaid_balance": 123,
  "remittance_address": "<string>",
  "remittance_address_recipient": "<string>",
  "service_address": "<string>",
  "service_address_recipient": "<string>",
  "service_start_date": "2023-12-25",
  "service_end_date": "2023-12-25",
  "vendor_tax_id": "BE1018265814",
  "vendor_company_id": "1018265814",
  "customer_tax_id": "BE1018265814",
  "customer_company_id": "1018265814",
  "payment_term": "<string>",
  "payment_details": [
    {
      "iban": "<string>",
      "swift": "<string>",
      "bank_account_number": "<string>",
      "payment_reference": "<string>"
    }
  ],
  "tax_details": [
    {
      "amount": 123,
      "rate": "<string>"
    }
  ],
  "items": [
    {
      "amount": 123,
      "date": "<unknown>",
      "description": "<string>",
      "quantity": 123,
      "product_code": "<string>",
      "tax": 123,
      "tax_rate": "21.00",
      "unit": "10",
      "unit_price": 123,
      "allowances": [
        {
          "reason": "<string>",
          "reason_code": "41",
          "multiplier_factor": 50,
          "amount": 1,
          "base_amount": 1,
          "tax_rate": 21,
          "tax_code": "S"
        }
      ],
      "charges": [
        {
          "reason": "<string>",
          "reason_code": "AA",
          "multiplier_factor": 50,
          "amount": 123,
          "base_amount": 123,
          "tax_rate": "21.00",
          "tax_code": "S"
        }
      ]
    }
  ],
  "attachments": [
    {
      "file_name": "<string>",
      "file_type": "application/pdf",
      "file_size": 0,
      "file_data": "<string>"
    }
  ],
  "allowances": [
    {
      "reason": "<string>",
      "reason_code": "41",
      "multiplier_factor": 50,
      "amount": 1,
      "base_amount": 1,
      "tax_rate": 21,
      "tax_code": "S"
    }
  ],
  "charges": [
    {
      "reason": "<string>",
      "reason_code": "AA",
      "multiplier_factor": 50,
      "amount": 123,
      "base_amount": 123,
      "tax_rate": "21.00",
      "tax_code": "S"
    }
  ]
}
'
{
  "id": "<string>",
  "file_name": "<string>",
  "is_valid": true,
  "issues": [
    {
      "message": "<string>",
      "type": "error",
      "schematron": "<string>",
      "location": "<string>",
      "rule_id": "<string>",
      "flag": "<string>",
      "test": "<string>"
    }
  ],
  "ubl_document": "<string>"
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
document_type
enum<string>
default:INVOICE

The type of document: INVOICE, CREDIT_NOTE, or DEBIT_NOTE

Available options:
INVOICE,
CREDIT_NOTE,
DEBIT_NOTE
state
enum<string>
default:DRAFT

The current state of the document: DRAFT, TRANSIT, FAILED, SENT, or RECEIVED

Available options:
DRAFT,
TRANSIT,
FAILED,
SENT,
RECEIVED
direction
enum<string>
default:OUTBOUND

The direction of the document: INBOUND (purchases) or OUTBOUND (sales)

Available options:
INBOUND,
OUTBOUND
customer_name
string | null

The company name of the customer/buyer

customer_id
string | null

The unique identifier for the customer in your system

customer_email
string | null

The email address of the customer

purchase_order
string | null

The purchase order reference number

invoice_id
string | null

The unique invoice identifier/number

invoice_date
string<date> | null

The date when the invoice was issued

due_date
string<date> | null

The date when payment is due

note
string | null

Additional notes or comments for the invoice

vendor_name
string | null

The name of the vendor/seller/supplier

vendor_email
string | null

The email address of the vendor

vendor_address
string | null

The address of the vendor/seller

vendor_address_recipient
string | null

The recipient name at the vendor address

customer_address
string | null

The address of the customer/buyer

customer_address_recipient
string | null

The recipient name at the customer address

billing_address
string | null

The billing address (if different from customer address)

billing_address_recipient
string | null

The recipient name at the billing address

shipping_address
string | null

The shipping/delivery address

shipping_address_recipient
string | null

The recipient name at the shipping address

currency
enum<string>
default:EUR

Currency of the invoice (ISO 4217 currency code)

Available options:
EUR,
USD,
GBP,
JPY,
CHF,
CAD,
AUD,
NZD,
CNY,
INR,
SEK,
NOK,
DKK,
SGD,
HKD
tax_code
enum<string>
default:S

Tax category code of the invoice (e.g., S for standard rate, Z for zero rate, E for exempt)

Available options:
AE,
E,
S,
Z,
G,
O,
K,
L,
M,
B
vatex
enum<string> | null

VAT exemption reason code (required when tax_code is E or other exempt categories)

Available options:
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_note
string | null

Textual explanation for VAT exemption

subtotal

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

total_discount

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

total_tax

The total tax amount of the invoice. Must be positive and rounded to maximum 2 decimals

invoice_total

The total amount of the invoice including tax (invoice_total = subtotal + total_tax + total_discount). Must be positive and rounded to maximum 2 decimals

amount_due

The amount due for payment. Must be positive and rounded to maximum 2 decimals

previous_unpaid_balance

The previous unpaid balance from prior invoices, if any. Must be positive and rounded to maximum 2 decimals

remittance_address
string | null

The address where payment should be sent or remitted to

remittance_address_recipient
string | null

The recipient name at the remittance address

service_address
string | null

The address where services were performed or goods were delivered

service_address_recipient
string | null

The recipient name at the service address

service_start_date
string<date> | null

The start date of the service period or delivery period

service_end_date
string<date> | null

The end date of the service period or delivery period

vendor_tax_id
string | null

Vendor tax ID. For Belgium this is the VAT number. Must include the country prefix

Example:

"BE1018265814"

vendor_company_id
string | null

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.

Example:

"1018265814"

customer_tax_id
string | null

Customer tax ID. For Belgium this is the VAT number. Must include the country prefix

Example:

"BE1018265814"

customer_company_id
string | null

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.

Example:

"1018265814"

payment_term
string | null

The payment terms (e.g., 'Net 30', 'Due on receipt', '2/10 Net 30')

payment_details
PaymentDetailCreate · object[] | null
tax_details
TaxDetailCreate · object[] | null
items
LineItemCreate · object[]

At least one line item is required

Minimum array length: 1
attachments
DocumentAttachmentCreate · object[] | null
allowances
Allowance · object[] | null
charges
Charge · object[] | null

Response

Successful Response

id
string
required
file_name
string | null
required
is_valid
boolean
required
issues
ValidationIssue · object[]
required
ubl_document
string | null