# Netherlands (`NL`)

Dutch invoice requirements use fields already present in the normal Cheqi
receipt and server-known generation context. A standard Dutch retail receipt,
full invoice, or simplified invoice therefore does not need
`jurisdictionalData`.

When a recipient accepts `UBL_INVOICE`, the owner device generates the UBL
Invoice from those canonical fields. A separate Dutch invoice regime would
only repeat that output-format decision.

## Before Cheqi

- Determine whether the document must contain full or simplified invoice
particulars outside Cheqi.
- Ensure the supplier context contains KVK and VAT identities.
- Allocate the sequential document number and determine issue/delivery dates.
- Calculate line and receipt tax bases, rates, and amounts and obtain any exact
exemption or special-scheme wording.


## In the Cheqi request

| Value | Request location |
|  --- | --- |
| Requested document representation | Recipient `acceptedFormats`; `UBL_INVOICE` requests an invoice |
| Invoice number | `documentNumber` |
| Invoice date | `issueDate` |
| Delivery date | `purchaseDate` |
| KVK/VAT identity | Supplier context resolved by Cheqi |
| Customer identity | Customer context resolved by Cheqi |
| Description, quantity, unit price, and discounts | `products[]`, `discounts[]`, and `charges[]` |
| VAT rate, taxable amount, and VAT amount | Receipt and product `taxes[]` |
| Exemption/scheme reason | Applicable `taxes[].exemptionReasonCode` and `exemptionReason` |


## Full B2B example

```json
{
  "documentNumber": "NL-2026-000042",
  "issueDate": "2026-07-30T08:15:30Z",
  "purchaseDate": "2026-07-29T08:15:30Z",
  "currency": "EUR",
  "receiptSubtotal": 100.0,
  "totalBeforeTax": 100.0,
  "totalTaxAmount": 21.0,
  "totalAmount": 121.0,
  "taxesApplied": true,
  "products": [
    {
      "name": "Consultancy",
      "identifier": "CONSULT-01",
      "description": "Consultancy services delivered on 29 July 2026",
      "quantity": 2.0,
      "baseQuantity": 1.0,
      "unitCode": "HUR",
      "unitPrice": 50.0,
      "discounts": [],
      "charges": [],
      "taxes": [
        {
          "type": "VAT",
          "rate": 21.0,
          "taxableAmount": 100.0,
          "amount": 21.0
        }
      ],
      "subtotal": 100.0,
      "total": 121.0,
      "barcodes": []
    }
  ],
  "discounts": [],
  "charges": [],
  "taxes": [
    {
      "type": "VAT",
      "rate": 21.0,
      "taxableAmount": 100.0,
      "amount": 21.0
    }
  ]
}
```

The supplier and customer names, addresses, and registrations are joined
on-device from the authenticated generation context; do not repeat them as
country fields in the encrypted merchant payload.

For a simplified invoice, send the applicable subset of the same canonical
fields and still omit `jurisdictionalData`. Cheqi does not determine whether
simplified invoicing is permitted.

## Related

- [Supplying jurisdiction data](/countries/jurisdictional-data)
- [Country support boundary](/countries/overview)