# Quick start

Source: https://veriport.io/docs/quickstart (published 2026-10-24)

One GET, one JSON. The request below needs no key (20 calls a day per address); a free key lifts that to 100 calls a month and 2 requests a second.

- Base URL: https://veriport.io/api/v1. Every endpoint answers JSON; every error is an RFC 9457 problem document.
- Authentication: `Authorization: Bearer vp_live_…` (or `X-Api-Key`). Keys are shown once after e-mail confirmation.
- The endpoints: `/vat/validate`, `/vat/rates[/{country}]`, `/vat/oss/return`, `/iban/validate`, `/fr/company/{id}`, `/us/sales-tax`; bulk variants on the monthly plan.
- Nothing is counted when the answer is a 4xx or a 5xx, or when a VAT number fails its structural check before VIES is called.

## 1. Validate a VAT number

Country and number can be sent separately or as one string with the prefix; spaces, dots and dashes are removed; `GR` becomes `EL`. The answer says whether VIES answered live or whether a dated cached answer was served because the member state was down.

```bash
curl "https://veriport.io/api/v1/vat/validate?country=DE&number=136695976"
```

```json
{
  "valid": true,
  "countryCode": "DE",
  "vatNumber": "136695976",
  "full": "DE136695976",
  "structure": {
    "valid": true,
    "checksum": "passed",
    "expected": "9 digits"
  },
  "name": null,
  "address": null,
  "requestDate": "2026-10-24",
  "consultationNumber": null,
  "source": {
    "kind": "live",
    "checkedAt": "2026-10-24T09:14:03Z",
    "cacheAgeSeconds": 0,
    "stale": false
  },
  "upstream": {
    "service": "vies",
    "transport": "rest",
    "status": "ok",
    "memberStateAvailable": true
  },
  "tableVersion": null
}
```

## 2. Read a VAT rate

Standard, reduced, super-reduced and parking rates, with category hints (digital services, e-books, food, accommodation…), the day the row was verified and the sources it was read from.

```bash
curl "https://veriport.io/api/v1/vat/rates/FR"
```

## 3. Check an IBAN

Characters, country, length, the mod 97-10 check digits and the country’s BBAN pattern from the SWIFT registry, plus the bank and branch identifiers and the SEPA flag. An invalid IBAN is a 200 with `valid: false` and the list of failed checks, so your form can say why.

```bash
curl "https://veriport.io/api/v1/iban/validate?iban=DE89%203704%200044%200532%200130%2000"
```

## 4. Get a key, add the consultation number

Sign up with an e-mail at /signup, click the confirmation link (valid 7 days), copy the key: it is shown once and stored hashed. With prepaid credits or the monthly plan, add `requester=<your own VAT number>` and VIES issues a consultation number, the evidence a tax audit accepts for the zero-rating of an intra-EU supply.

```bash
curl -H "Authorization: Bearer vp_live_YOUR_KEY" \
  "https://veriport.io/api/v1/vat/validate?country=DE&number=136695976&requester=FR40303265045"
```

## 5. Validate an e-invoice, then create one

Send a received XRechnung, Peppol BIS or Factur-X file to `POST /einvoice/validate` (no key needed for the first checks of the day): the XML schema and the official CEN, XRechnung and Peppol rules run on it and every finding comes back with its published rule id. With a key, `POST /einvoice/create` turns your invoice JSON into the file itself and checks it before returning it; see [the e-invoice API](/einvoice-api).

```bash
curl -X POST "https://veriport.io/api/v1/einvoice/validate" -H "Content-Type: application/xml" --data-binary @invoice.xml
```

## Next

The reference pages list every parameter, response field and error per endpoint, generated from the same OpenAPI 3.1 document that is served at /openapi.json. The guides cover the questions behind the calls: what to do when VIES is down, which rate applies to a digital service in each country, how the IBAN check digits work.

## Questions

### Do I need a key to try it?

No. 20 calls a day per address need no key. A free key (e-mail confirmation, no card) gives 100 calls a month.

### Is this an official service?

No. Veriport is operated by Janolab Studio LLC; it calls the European Commission’s VIES service for VAT numbers and maintains its own dated, sourced tables for rates and IBAN structures. It is not affiliated with the Commission, SWIFT or any tax administration.

### What does a call cost?

Free up to the monthly allowance; then $9 for 2,000 calls, $29 for 10,000 (valid 12 months), or $15 a month for 5,000 calls with the bulk endpoint. Fair use; public availability record on every tier.

## Read next

- [Reference: EU VAT number validation](https://veriport.io/docs/vat-validation)
- [Reference: EU VAT rates](https://veriport.io/docs/vat-rates)
- [Reference: IBAN validation](https://veriport.io/docs/iban-validation)
- [Errors](https://veriport.io/docs/errors)

## Sources

- VIES REST API — check-vat-number, check-status (technical information) — https://ec.europa.eu/taxation_customs/vies/#/technical-information (2026-10-24)
- IBAN Registry (ISO 13616) — country lengths, BBAN structures, SEPA membership — https://www.swift.com/standards/data-standards/iban-international-bank-account-number (2026-10-24)
- VAT rates applied in the Member States of the European Union (situation at 1 January 2025) and the Taxes in Europe Database (TEDB) — https://taxation-customs.ec.europa.eu/taxation/vat/vat-rates_en (2026-10-24)
