{"openapi":"3.1.0","info":{"title":"VAT Validator","version":"0.1.0","description":"Validate business VAT/GST numbers against official government registers for Norway, Finland, France, Czech Republic, Poland and Latvia, with one operation per jurisdiction. Each check confirms the number is live and returns registered entity details where disclosed.","x-guidance":"Validate business VAT/GST numbers against official government registers for Norway, Finland, France, Czech Republic, Poland and Latvia, with one operation per jurisdiction. Each check confirms the number is live and returns registered entity details where disclosed. Each operation is an HTTP POST to its /v1/<operation> path with a JSON request body (see each operation's requestBody schema) and returns a JSON response. Endpoints are paid per successful call via x402 or MPP (USDC on Base); an unpaid request returns 402 with payment metadata in the WWW-Authenticate header.","contact":{"email":"hello@openverbs.com"}},"x-discovery":{"ownershipProofs":["0xb1401a71756f51464a9962db12f1eb3e9522490cd20010b06d00cf7b7770acfd5f79721f9dfdf2643f8cecd29af3bde9ec133941a386042b32d9886053a70de61b","0xc1c1f11793e18a00fcb7072421f26e89fb75b6aa517fa84370564991f4b10efa024f6f57e4e67eefd20cf46cc01fc5a62d793fa8fbcda04f26c946a3433d73f91b","0x676b474af0ef9ed4809b5d12d2e789b36e52d56215b21f601d71f76620e36ec630347116a7b2b349a3c3681e5db0fbfa76c4169a676b6d6f27864d0e5017284a1c","0xc2ab96522515ed9e9bc4f1a241b774bd48df42e951ddbf7f6aa8fc76f5a96a20421703e1ec402ce7eb1e4eabea3b6e4e4129cf39d56ea91cf4fcf38561fc94fc1c"]},"servers":[{"url":"https://vat.openverbs.com"}],"paths":{"/health":{"get":{"summary":"Health check","security":[],"responses":{"200":{"description":"Healthy","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"service":{"type":"string"},"version":{"type":"string"}}}}}}}}},"/v1/norway":{"post":{"summary":"Validate Norwegian VAT number","description":"Validate a Norwegian VAT (MVA) number against the official business register. Validity means the entity exists and is entered in the VAT register. Paid endpoint (x402 + MPP). Price: $0.006000 USDC per successful payment.","tags":["norwegian vat validation","norway mva lookup","validate norway org number","bronnoysund vat check","norwegian business register","norway vat api"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"vatNumber":{"type":"string","minLength":9,"maxLength":20,"description":"Norwegian VAT/MVA number — the 9-digit organisation number. A leading \"NO\" and trailing \"MVA\" are tolerated."}},"required":["vatNumber"],"additionalProperties":false},"example":{"vatNumber":"NO 923 609 016 MVA"}}}},"responses":{"200":{"description":"Whether the number is `valid`, the `countryCode`/`vatNumber`, the registered `name`/`address` (when the register discloses them), the `requestDate`, the `source` register, an `attribution` string when the source's licence requires it, and `serviceAvailable` (false during register downtime, in which case `valid` is false).","content":{"application/json":{"schema":{"type":"object","description":"Whether the number is `valid`, the `countryCode`/`vatNumber`, the registered `name`/`address` (when the register discloses them), the `requestDate`, the `source` register, an `attribution` string when the source's licence requires it, and `serviceAvailable` (false during register downtime, in which case `valid` is false)."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Validate a Norwegian VAT (MVA) number against the official business register. Validity means the entity exists and is entered in the VAT register.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"6000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Validate a Norwegian VAT (MVA) number against the official business register. Validity means the entity exists and is entered in the VAT register.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Validate a Norwegian VAT (MVA) number against the official business register. Validity means the entity exists and is entered in the VAT register.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/finland":{"post":{"summary":"Validate Finnish VAT number","description":"Validate a Finnish VAT (ALV) number against the official VAT register. Validity means the entity exists and holds a live registration. Paid endpoint (x402 + MPP). Price: $0.006000 USDC per successful payment.","tags":["finnish vat validation","finland alv lookup","validate finnish business id","ytj company lookup","finland vat api","y tunnus validation"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"vatNumber":{"type":"string","minLength":8,"maxLength":20,"description":"Finnish VAT/ALV number — \"FI\" + the 8-digit Business ID (Y-tunnus). A leading \"FI\" and the \"1234567-8\" hyphen form are tolerated."}},"required":["vatNumber"],"additionalProperties":false},"example":{"vatNumber":"FI01120389"}}}},"responses":{"200":{"description":"Whether the number is `valid`, the `countryCode`/`vatNumber`, the registered `name`/`address` (when the register discloses them), the `requestDate`, the `source` register, an `attribution` string when the source's licence requires it, and `serviceAvailable` (false during register downtime, in which case `valid` is false).","content":{"application/json":{"schema":{"type":"object","description":"Whether the number is `valid`, the `countryCode`/`vatNumber`, the registered `name`/`address` (when the register discloses them), the `requestDate`, the `source` register, an `attribution` string when the source's licence requires it, and `serviceAvailable` (false during register downtime, in which case `valid` is false)."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Validate a Finnish VAT (ALV) number against the official VAT register. Validity means the entity exists and holds a live registration.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"6000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Validate a Finnish VAT (ALV) number against the official VAT register. Validity means the entity exists and holds a live registration.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Validate a Finnish VAT (ALV) number against the official VAT register. Validity means the entity exists and holds a live registration.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/france":{"post":{"summary":"Validate French VAT number","description":"Validate a French VAT (TVA) number against the official company register. Validity means the SIREN exists and the company is administratively active. Paid endpoint (x402 + MPP). Price: $0.006000 USDC per successful payment.","tags":["french vat validation","france tva lookup","validate french siren","siren company lookup","france vat api","french business register"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"vatNumber":{"type":"string","minLength":11,"maxLength":20,"description":"French VAT/TVA number — \"FR\" + a 2-digit key + the 9-digit SIREN. A leading \"FR\" and spaces are tolerated; the key must match the SIREN."}},"required":["vatNumber"],"additionalProperties":false},"example":{"vatNumber":"FR27552032534"}}}},"responses":{"200":{"description":"Whether the number is `valid`, the `countryCode`/`vatNumber`, the registered `name`/`address` (when the register discloses them), the `requestDate`, the `source` register, an `attribution` string when the source's licence requires it, and `serviceAvailable` (false during register downtime, in which case `valid` is false).","content":{"application/json":{"schema":{"type":"object","description":"Whether the number is `valid`, the `countryCode`/`vatNumber`, the registered `name`/`address` (when the register discloses them), the `requestDate`, the `source` register, an `attribution` string when the source's licence requires it, and `serviceAvailable` (false during register downtime, in which case `valid` is false)."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Validate a French VAT (TVA) number against the official company register. Validity means the SIREN exists and the company is administratively active.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"6000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Validate a French VAT (TVA) number against the official company register. Validity means the SIREN exists and the company is administratively active.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Validate a French VAT (TVA) number against the official company register. Validity means the SIREN exists and the company is administratively active.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/czechia":{"post":{"summary":"Validate Czech VAT number","description":"Validate a Czech VAT (DIČ) number for a legal entity against the official register. Validity means the subject exists and is live in the VAT (DPH) register. Paid endpoint (x402 + MPP). Price: $0.006000 USDC per successful payment.","tags":["czech vat validation","czechia dic lookup","validate czech ico","ares company lookup","czech vat api","czech business register"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"vatNumber":{"type":"string","minLength":8,"maxLength":20,"description":"Czech VAT/DIČ number — \"CZ\" + the 8-digit IČO (legal entities). A leading \"CZ\" and spaces are tolerated."}},"required":["vatNumber"],"additionalProperties":false},"example":{"vatNumber":"CZ00177041"}}}},"responses":{"200":{"description":"Whether the number is `valid`, the `countryCode`/`vatNumber`, the registered `name`/`address` (when the register discloses them), the `requestDate`, the `source` register, an `attribution` string when the source's licence requires it, and `serviceAvailable` (false during register downtime, in which case `valid` is false).","content":{"application/json":{"schema":{"type":"object","description":"Whether the number is `valid`, the `countryCode`/`vatNumber`, the registered `name`/`address` (when the register discloses them), the `requestDate`, the `source` register, an `attribution` string when the source's licence requires it, and `serviceAvailable` (false during register downtime, in which case `valid` is false)."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Validate a Czech VAT (DIČ) number for a legal entity against the official register. Validity means the subject exists and is live in the VAT (DPH) register.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"6000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Validate a Czech VAT (DIČ) number for a legal entity against the official register. Validity means the subject exists and is live in the VAT (DPH) register.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Validate a Czech VAT (DIČ) number for a legal entity against the official register. Validity means the subject exists and is live in the VAT (DPH) register.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/poland":{"post":{"summary":"Validate Polish VAT number","description":"Validate a Polish VAT (NIP) number against the official VAT register. Validity means the taxpayer's VAT status is active (Czynny). Paid endpoint (x402 + MPP). Price: $0.006000 USDC per successful payment.","tags":["polish vat validation","poland nip lookup","validate polish nip","vat white list lookup","poland vat api","polish taxpayer status"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"vatNumber":{"type":"string","minLength":10,"maxLength":20,"description":"Polish VAT/NIP number — \"PL\" + the 10-digit NIP. A leading \"PL\", spaces and dashes are tolerated."}},"required":["vatNumber"],"additionalProperties":false},"example":{"vatNumber":"PL5260250274"}}}},"responses":{"200":{"description":"Whether the number is `valid`, the `countryCode`/`vatNumber`, the registered `name`/`address` (when the register discloses them), the `requestDate`, the `source` register, an `attribution` string when the source's licence requires it, and `serviceAvailable` (false during register downtime, in which case `valid` is false).","content":{"application/json":{"schema":{"type":"object","description":"Whether the number is `valid`, the `countryCode`/`vatNumber`, the registered `name`/`address` (when the register discloses them), the `requestDate`, the `source` register, an `attribution` string when the source's licence requires it, and `serviceAvailable` (false during register downtime, in which case `valid` is false)."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Validate a Polish VAT (NIP) number against the official VAT register. Validity means the taxpayer's VAT status is active (Czynny).","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"6000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Validate a Polish VAT (NIP) number against the official VAT register. Validity means the taxpayer's VAT status is active (Czynny).","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Validate a Polish VAT (NIP) number against the official VAT register. Validity means the taxpayer's VAT status is active (Czynny).","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/latvia":{"post":{"summary":"Validate Latvian VAT number","description":"Validate a Latvian VAT (PVN) number against the official VAT-payers register. Validity means the number has a currently active entry in the register. Paid endpoint (x402 + MPP). Price: $0.006000 USDC per successful payment.","tags":["latvian vat validation","latvia pvn lookup","validate latvian vat","vid vat register","latvia vat api","latvian business register"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"vatNumber":{"type":"string","minLength":11,"maxLength":20,"description":"Latvian VAT/PVN number — \"LV\" + an 11-digit registration number. A leading \"LV\" and spaces are tolerated."}},"required":["vatNumber"],"additionalProperties":false},"example":{"vatNumber":"LV40003245752"}}}},"responses":{"200":{"description":"Whether the number is `valid`, the `countryCode`/`vatNumber`, the registered `name`/`address` (when the register discloses them), the `requestDate`, the `source` register, an `attribution` string when the source's licence requires it, and `serviceAvailable` (false during register downtime, in which case `valid` is false).","content":{"application/json":{"schema":{"type":"object","description":"Whether the number is `valid`, the `countryCode`/`vatNumber`, the registered `name`/`address` (when the register discloses them), the `requestDate`, the `source` register, an `attribution` string when the source's licence requires it, and `serviceAvailable` (false during register downtime, in which case `valid` is false)."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Validate a Latvian VAT (PVN) number against the official VAT-payers register. Validity means the number has a currently active entry in the register.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"6000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Validate a Latvian VAT (PVN) number against the official VAT-payers register. Validity means the number has a currently active entry in the register.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Validate a Latvian VAT (PVN) number against the official VAT-payers register. Validity means the number has a currently active entry in the register.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}}},"x-service-info":{"categories":["validation"],"docs":{"homepage":"https://vat.openverbs.com","apiReference":"https://vat.openverbs.com/openapi.json"}}}