Quick start
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.
Janolab Studio LLC makes software. It is not a law firm, an accounting firm or a tax, financial or legal adviser. Answers come from public registries and checksums; you check the result, make the decision (the tax treatment of a supply, the acceptance of a VAT number or an IBAN) and remain responsible for how you use it.
- Base URL: https://veriport.io/api/v1. Every endpoint answers JSON; every error is an RFC 9457 problem document.
- Authentication:
Authorization: Bearer vp_live_…(orX-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.
curl "https://veriport.io/api/v1/vat/validate?country=DE&number=136695976"{
"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.
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.
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.
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.
curl -X POST "https://veriport.io/api/v1/einvoice/validate" -H "Content-Type: application/xml" --data-binary @invoice.xmlNext
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.
100 calls a month, no card, key shown once.
Get a free keySources
- VIES REST API — check-vat-number, check-status (technical information) — European Commission, DG TAXUD, consulted 2026-10-24
- IBAN Registry (ISO 13616) — country lengths, BBAN structures, SEPA membership — SWIFT, ISO 13616 registration authority, consulted 2026-10-24. Transcribed from the public registry; the release number in force on the day checkout opens must be written on the IBAN docs page (owner step).
- VAT rates applied in the Member States of the European Union (situation at 1 January 2025) and the Taxes in Europe Database (TEDB) — European Commission, DG TAXUD, consulted 2026-10-24. Rates changed after the January 2025 edition (EE July 2025, RO August 2025) are taken from the national pages cited on the row and must be re-read monthly.