vat-validator-mcp 1.4.11 → 1.4.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +54 -225
- package/package.json +1 -1
- package/server.json +2 -2
- package/smithery.yaml +1 -1
- package/src/server.js +7 -7
package/README.md
CHANGED
|
@@ -1,138 +1,43 @@
|
|
|
1
|
-
|
|
1
|
+
# VAT Validator MCP
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**AI-powered VAT fraud detection and live VAT number validation
|
|
4
|
+
for AI agents.**
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
Validates EU, UK, and AU VAT numbers against authoritative live
|
|
7
|
+
sources and uses AI pattern analysis to detect invoice fraud
|
|
8
|
+
before payment is authorised. Built for compliance agents,
|
|
9
|
+
invoice processing workflows, and supplier onboarding pipelines.
|
|
6
10
|
|
|
7
|
-
|
|
11
|
+
## What This Solves
|
|
8
12
|
|
|
9
|
-
|
|
13
|
+
VAT fraud costs EU businesses €50bn annually. The most common
|
|
14
|
+
attack vectors — missing trader fraud, carousel fraud,
|
|
15
|
+
deregistered entity re-use — share one common signal: a VAT
|
|
16
|
+
number that looks valid but isn't registered to the entity on
|
|
17
|
+
the invoice.
|
|
10
18
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
"url": "https://vat-validator-mcp-production.up.railway.app"
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
Or via Smithery:
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
npx -y @smithery/cli@latest mcp add OjasKord/vat-validator-mcp
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
## Harness Integration
|
|
26
|
-
|
|
27
|
-
### Claude Code / Claude Desktop (.mcp.json)
|
|
28
|
-
```json
|
|
29
|
-
{
|
|
30
|
-
"mcpServers": {
|
|
31
|
-
"vat-validator": {
|
|
32
|
-
"type": "http",
|
|
33
|
-
"url": "https://vat-validator-mcp-production.up.railway.app"
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
### LangChain (Python)
|
|
40
|
-
```python
|
|
41
|
-
from langchain_mcp_adapters.client import MultiServerMCPClient
|
|
42
|
-
client = MultiServerMCPClient({
|
|
43
|
-
"vat-validator": {
|
|
44
|
-
"url": "https://vat-validator-mcp-production.up.railway.app",
|
|
45
|
-
"transport": "http"
|
|
46
|
-
}
|
|
47
|
-
})
|
|
48
|
-
tools = await client.get_tools()
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
### OpenAI Agents SDK (Python)
|
|
52
|
-
```python
|
|
53
|
-
from agents import Agent, HostedMCPTool
|
|
54
|
-
agent = Agent(
|
|
55
|
-
name="Assistant",
|
|
56
|
-
tools=[HostedMCPTool(tool_config={
|
|
57
|
-
"type": "mcp",
|
|
58
|
-
"server_label": "vat-validator",
|
|
59
|
-
"server_url": "https://vat-validator-mcp-production.up.railway.app",
|
|
60
|
-
"require_approval": "never"
|
|
61
|
-
})]
|
|
62
|
-
)
|
|
63
|
-
```
|
|
19
|
+
Claude and other LLMs cannot reliably check live VAT registration
|
|
20
|
+
status from training data. This tool calls the authoritative
|
|
21
|
+
sources directly:
|
|
64
22
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
## Why Use This
|
|
69
|
-
|
|
70
|
-
A VAT number is the most reliable identifier for a registered business in the EU, UK, and Australia. Validating it confirms the company is real and legally registered. But validation alone isn't enough — scammers use valid VAT numbers with mismatched company names, or invoice from newly registered shells. The AI tools in this server catch what raw validation misses.
|
|
71
|
-
|
|
72
|
-
Required for EU ViDA mandatory e-invoicing compliance from 2026.
|
|
23
|
+
- **EU VIES** — all 27 member states, real-time
|
|
24
|
+
- **UK HMRC VAT API v2** — OAuth2, authoritative
|
|
25
|
+
- **AU ABR** — Australian Business Register
|
|
73
26
|
|
|
74
27
|
## Tools
|
|
75
28
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
{ "vat_number": "DE811128135" }
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
### `validate_uk_vat`
|
|
88
|
-
UK-specific validation against HMRC live records. Returns HMRC consultation number for audit trail. Use when you need to prove compliance during a tax audit.
|
|
89
|
-
|
|
90
|
-
```json
|
|
91
|
-
{ "vat_number": "GB123456789" }
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
### `get_vat_rates`
|
|
95
|
-
Current VAT rates for all 27 EU member states, UK, and Australia. Use before generating any cross-border invoice or quote.
|
|
96
|
-
|
|
97
|
-
```json
|
|
98
|
-
{ "country_code": "DE" }
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
### `batch_validate` *(Paid only)*
|
|
102
|
-
Validate up to 10 VAT numbers in one call across any mix of EU, UK, and Australian numbers. Use for supplier onboarding batches and monthly vendor audits.
|
|
103
|
-
|
|
104
|
-
```json
|
|
105
|
-
{ "vat_numbers": ["DE811128135", "GB123456789", "FR12345678901"] }
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
### `analyse_vat_risk` *(AI-powered — NOT a database lookup)*
|
|
109
|
-
AI fraud risk assessment after validation. Returns CLEAR/REVIEW/BLOCK recommendation with specific fraud signals. Catches name mismatches between invoice and registry, newly registered companies with large invoice values, dormant status, shell company indicators, and address anomalies. Use before approving any payment or signing any contract with a first-time counterparty.
|
|
110
|
-
|
|
111
|
-
```json
|
|
112
|
-
{
|
|
113
|
-
"vat_number": "DE811128135",
|
|
114
|
-
"validation_result": { "valid": true, "company_name": null, "country": "DE" },
|
|
115
|
-
"invoice_amount": 50000,
|
|
116
|
-
"invoice_company_name": "Deutsche Test GmbH"
|
|
117
|
-
}
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
### `compare_invoice_details` *(AI-powered — NOT a database lookup)*
|
|
121
|
-
AI comparison of invoice details against official registry records. Flags discrepancies between the company name, address, and VAT number on an invoice versus registered government data. A name mismatch is one of the most common invoice fraud signals. Use before approving payment on any invoice from an unverified supplier.
|
|
122
|
-
|
|
123
|
-
```json
|
|
124
|
-
{
|
|
125
|
-
"invoice_company_name": "Deutsche Test GmbH",
|
|
126
|
-
"invoice_vat_number": "DE811128135",
|
|
127
|
-
"invoice_address": "Musterstrasse 1, Berlin",
|
|
128
|
-
"validation_result": { "valid": true, "company_name": null, "country": "DE" }
|
|
129
|
-
}
|
|
130
|
-
```
|
|
29
|
+
| Tool | Free Tier | Use When |
|
|
30
|
+
|---|---|---|
|
|
31
|
+
| validate_vat | 20/month | Before approving any EU supplier or invoice |
|
|
32
|
+
| validate_uk_vat | 20/month | Before approving any UK supplier or invoice |
|
|
33
|
+
| get_vat_rates | 20/month | Before calculating cross-border invoice totals |
|
|
34
|
+
| batch_validate | Paid | Validating a supplier list or invoice batch |
|
|
35
|
+
| analyse_vat_risk | 20/month | Before approving any high-value cross-border invoice |
|
|
36
|
+
| compare_invoice_details | 20/month | Before authorising payment on any supplier invoice |
|
|
131
37
|
|
|
132
38
|
## Add to Your Agent
|
|
133
39
|
|
|
134
|
-
|
|
135
|
-
```json
|
|
40
|
+
**Claude Code** — add to .mcp.json:
|
|
136
41
|
{
|
|
137
42
|
"mcpServers": {
|
|
138
43
|
"vat-validator": {
|
|
@@ -141,114 +46,38 @@ AI comparison of invoice details against official registry records. Flags discre
|
|
|
141
46
|
}
|
|
142
47
|
}
|
|
143
48
|
}
|
|
144
|
-
```
|
|
145
49
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
"url": "https://vat-validator-mcp-production.up.railway.app/sse",
|
|
152
|
-
"transport": "sse"
|
|
153
|
-
}
|
|
154
|
-
})
|
|
155
|
-
tools = await client.get_tools()
|
|
156
|
-
```
|
|
50
|
+
**LangChain:**
|
|
51
|
+
from langchain_mcp import MCPClient
|
|
52
|
+
client = MCPClient(
|
|
53
|
+
"https://vat-validator-mcp-production.up.railway.app/sse"
|
|
54
|
+
)
|
|
157
55
|
|
|
158
|
-
|
|
159
|
-
```python
|
|
56
|
+
**OpenAI Agents SDK:**
|
|
160
57
|
from agents.mcp import MCPServerSse
|
|
161
58
|
mcp_server = MCPServerSse(
|
|
162
|
-
params={
|
|
59
|
+
params={
|
|
60
|
+
"url": "https://vat-validator-mcp-production.up.railway.app/sse"
|
|
61
|
+
}
|
|
163
62
|
)
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
## Example Responses
|
|
167
|
-
|
|
168
|
-
**validate_vat:**
|
|
169
|
-
```json
|
|
170
|
-
{
|
|
171
|
-
"valid": true,
|
|
172
|
-
"vat_number": "DE811128135",
|
|
173
|
-
"country": "DE",
|
|
174
|
-
"company_name": null,
|
|
175
|
-
"source": "VIES",
|
|
176
|
-
"source_url": "ec.europa.eu/taxation_customs/vies",
|
|
177
|
-
"checked_at": "2026-04-09T06:17:00Z"
|
|
178
|
-
}
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
**analyse_vat_risk:**
|
|
182
|
-
```json
|
|
183
|
-
{
|
|
184
|
-
"recommendation": "REVIEW",
|
|
185
|
-
"risk_level": "MEDIUM",
|
|
186
|
-
"risk_score": 65,
|
|
187
|
-
"fraud_signals": ["Company name not available in registry despite valid VAT number", "Unable to verify invoice company name against registry data"],
|
|
188
|
-
"positive_indicators": ["VAT number validates as authentic in German registry"],
|
|
189
|
-
"recommended_action": "Request additional company documentation before processing payment.",
|
|
190
|
-
"summary": "Valid VAT number but missing registry information prevents full verification."
|
|
191
|
-
}
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
## Recommended Workflows
|
|
195
|
-
|
|
196
|
-
**Invoice processing (3 calls):**
|
|
197
|
-
1. `validate_vat` — confirm VAT number is real and active
|
|
198
|
-
2. `compare_invoice_details` — AI checks invoice name/address against registry
|
|
199
|
-
3. `analyse_vat_risk` — AI fraud risk assessment with CLEAR/REVIEW/BLOCK
|
|
200
|
-
Only proceed with payment if recommendation is CLEAR.
|
|
201
|
-
|
|
202
|
-
**Supplier onboarding (2 calls):**
|
|
203
|
-
1. `validate_vat` — confirm registration
|
|
204
|
-
2. `analyse_vat_risk` — AI fraud signal check
|
|
205
|
-
|
|
206
|
-
**Monthly vendor audit (1 call):**
|
|
207
|
-
- `batch_validate` — re-validate all active suppliers. Registrations can lapse.
|
|
208
|
-
|
|
209
|
-
## Data Sources
|
|
210
|
-
|
|
211
|
-
| Tool | Data Source | Update Frequency |
|
|
212
|
-
|---|---|---|
|
|
213
|
-
| validate_vat (EU) | EU VIES (ec.europa.eu/taxation_customs/vies) | Real-time |
|
|
214
|
-
| validate_vat (UK) | UK HMRC (api.service.hmrc.gov.uk) | Real-time |
|
|
215
|
-
| validate_vat (AU) | Australian ABR (abr.business.gov.au) | Real-time |
|
|
216
|
-
| analyse_vat_risk | Registry data + Claude AI analysis | Real-time |
|
|
217
|
-
| compare_invoice_details | Registry data + Claude AI analysis | Real-time |
|
|
218
|
-
|
|
219
|
-
Every response includes `source_url` and `checked_at` so agents can verify exactly where data came from and when.
|
|
220
|
-
|
|
221
|
-
## Supported Jurisdictions
|
|
222
|
-
|
|
223
|
-
**EU (27 member states):** AT BE BG CY CZ DE DK EE EL ES FI FR HR HU IE IT LT LU LV MT NL PL PT RO SE SI SK
|
|
224
|
-
|
|
225
|
-
**UK:** GB prefix via HMRC
|
|
226
|
-
|
|
227
|
-
**Australia:** AU prefix or 11-digit ABN via ABR
|
|
228
63
|
|
|
229
64
|
## Pricing
|
|
230
65
|
|
|
231
|
-
|
|
|
66
|
+
| Tier | Calls | Price |
|
|
232
67
|
|---|---|---|
|
|
233
|
-
| Free | 20/month | No
|
|
234
|
-
|
|
|
235
|
-
|
|
|
236
|
-
|
|
237
|
-
Upgrade
|
|
238
|
-
|
|
239
|
-
##
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
## Connect
|
|
251
|
-
|
|
252
|
-
- Website: [kordagencies.com](https://kordagencies.com)
|
|
253
|
-
- Smithery: [smithery.ai/server/OjasKord/vat-validator-mcp](https://smithery.ai/server/OjasKord/vat-validator-mcp)
|
|
254
|
-
- Contact: ojas@kordagencies.com
|
|
68
|
+
| Free | 20/month | No card required |
|
|
69
|
+
| Pro | Unlimited | $39/month |
|
|
70
|
+
| Enterprise | Unlimited + priority | $199/month |
|
|
71
|
+
|
|
72
|
+
Upgrade: https://kordagencies.com
|
|
73
|
+
|
|
74
|
+
## Search Terms
|
|
75
|
+
|
|
76
|
+
VAT number validation · EU VAT check · VIES lookup · HMRC VAT
|
|
77
|
+
verification · VAT fraud detection · invoice VAT compliance ·
|
|
78
|
+
missing trader fraud · carousel fraud detection · cross-border
|
|
79
|
+
invoice check · supplier VAT screening · VAT registration
|
|
80
|
+
verification · EU invoice compliance · AU ABR lookup ·
|
|
81
|
+
UK VAT API · invoice fraud detection API · supplier VAT fraud
|
|
82
|
+
risk · accounts payable compliance agent · VAT invoice audit ·
|
|
83
|
+
AI invoice compliance · MCP VAT validation
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vat-validator-mcp",
|
|
3
3
|
"mcpName": "io.github.OjasKord/vat-validator-mcp",
|
|
4
|
-
"version": "1.4.
|
|
4
|
+
"version": "1.4.12",
|
|
5
5
|
"description": "VAT number validation for AI agents. EU VIES, UK HMRC, Australian ABN in one call.",
|
|
6
6
|
"main": "src/server.js",
|
|
7
7
|
"scripts": {
|
package/server.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"name": "io.github.OjasKord/vat-validator-mcp",
|
|
4
4
|
"title": "VAT Validator MCP",
|
|
5
5
|
"description": "Validate EU, UK, AU VAT numbers for AI agents. EU ViDA e-invoicing compliance.",
|
|
6
|
-
"version": "1.4.
|
|
6
|
+
"version": "1.4.12",
|
|
7
7
|
"websiteUrl": "https://kordagencies.com",
|
|
8
8
|
"repository": {
|
|
9
9
|
"url": "https://github.com/OjasKord/vat-validator-mcp",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
{
|
|
14
14
|
"registryType": "npm",
|
|
15
15
|
"identifier": "vat-validator-mcp",
|
|
16
|
-
"version": "1.4.
|
|
16
|
+
"version": "1.4.12",
|
|
17
17
|
"transport": { "type": "stdio" },
|
|
18
18
|
"environmentVariables": [
|
|
19
19
|
{ "name": "ANTHROPIC_API_KEY", "description": "Anthropic API key for AI-powered fraud risk analysis", "isRequired": true, "isSecret": true },
|
package/smithery.yaml
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
description: "VAT
|
|
1
|
+
description: "AI-powered VAT fraud detection and live VAT validation via EU VIES (27 member states), UK HMRC, and AU ABR. Call before invoice approval, supplier onboarding, or cross-border payment. Detects missing trader fraud, carousel fraud, deregistered entity re-use. Returns CLEAR/REVIEW/BLOCK verdict."
|
|
2
2
|
startCommand:
|
|
3
3
|
type: http
|
|
4
4
|
url: https://vat-validator-mcp-production.up.railway.app
|
package/src/server.js
CHANGED
|
@@ -5,7 +5,7 @@ const fs = require('fs');
|
|
|
5
5
|
|
|
6
6
|
const PERSIST_FILE = '/tmp/vat_stats.json';
|
|
7
7
|
const API_KEYS_FILE = '/tmp/vat_apikeys.json';
|
|
8
|
-
const VERSION = '1.4.
|
|
8
|
+
const VERSION = '1.4.12';
|
|
9
9
|
const PRO_UPGRADE_URL = 'https://buy.stripe.com/28EeVceUB06N1ty3teebu0l';
|
|
10
10
|
const ENTERPRISE_UPGRADE_URL = 'https://buy.stripe.com/00w14m7s96vb1ty5Bmebu0m';
|
|
11
11
|
const RESEND_API_KEY = process.env.RESEND_API_KEY || '';
|
|
@@ -416,12 +416,12 @@ async function handleStripeWebhook(body, sig) {
|
|
|
416
416
|
}
|
|
417
417
|
|
|
418
418
|
const tools = [
|
|
419
|
-
{ name: 'validate_vat', idempotent: true, description: '
|
|
420
|
-
{ name: 'validate_uk_vat', idempotent: true, description: '
|
|
421
|
-
{ name: 'get_vat_rates', idempotent: true, description: '
|
|
422
|
-
{ name: 'batch_validate', idempotent: true, description: '
|
|
423
|
-
{ name: 'analyse_vat_risk', idempotent: true, description: '
|
|
424
|
-
{ name: 'compare_invoice_details', idempotent: true, description: '
|
|
419
|
+
{ name: 'validate_vat', idempotent: true, description: 'Call this BEFORE your agent approves any EU supplier, issues a cross-border invoice, or processes an inbound EU payment. Validates VAT registration numbers against EU VIES (all 27 member states) and AU ABR in real time. Returns valid/invalid status, registered company name, and address — data your agent cannot retrieve reliably from training data. A deregistered or invalid VAT number on an approved invoice creates an unrecoverable tax liability. One call eliminates that risk. Returns structured JSON with machine-readable fields — no further analysis needed.', inputSchema: { type: 'object', properties: { vat_number: { type: 'string', description: 'VAT number with country prefix (e.g. DE123456789, GB123456789, FR12345678901)' } }, required: ['vat_number'] } },
|
|
420
|
+
{ name: 'validate_uk_vat', idempotent: true, description: 'Call this BEFORE your agent approves any UK supplier, issues a UK VAT invoice, or processes a UK inbound payment. Validates UK VAT numbers directly against HMRC VAT API v2 via OAuth2 — the only authoritative UK source. Returns valid/invalid, registered business name, and address. An invalid UK VAT number on an approved invoice triggers HMRC penalties with no appeal path. One call, authoritative source, machine-readable verdict.', inputSchema: { type: 'object', properties: { vat_number: { type: 'string', description: 'UK VAT number with or without GB prefix' } }, required: ['vat_number'] } },
|
|
421
|
+
{ name: 'get_vat_rates', idempotent: true, description: 'Call this BEFORE your agent calculates invoice totals, applies tax rates, or generates VAT-inclusive pricing for any EU country or UK. Returns current standard, reduced, and zero VAT rates for all 27 EU member states and UK. VAT rates change without notice — your agent cannot rely on training data for current rates. Returns structured JSON — no parsing needed.', inputSchema: { type: 'object', properties: { country_code: { type: 'string', description: 'ISO 2-letter country code (e.g. DE, FR, GB). Leave blank for all countries.' } }, required: [] } },
|
|
422
|
+
{ name: 'batch_validate', idempotent: true, description: 'Call this when your agent needs to validate multiple supplier VAT numbers in a single workflow — onboarding a supplier list, auditing an invoice batch, or screening a counterparty database. Validates against EU VIES and HMRC in one call. One undetected invalid VAT number in a supplier batch creates downstream tax exposure across every transaction with that supplier. Returns per-number verdicts in structured JSON.', inputSchema: { type: 'object', properties: { vat_numbers: { type: 'array', items: { type: 'string' }, description: 'Array of VAT numbers with country prefixes (max 10)' } }, required: ['vat_numbers'] } },
|
|
423
|
+
{ name: 'analyse_vat_risk', idempotent: true, description: 'Call this BEFORE your agent approves a high-value invoice, onboards a new EU or UK supplier, or processes any cross-border payment where VAT fraud is a material risk. AI-powered fraud risk scoring — NOT a simple database lookup. Analyses VAT registration patterns, company age, jurisdiction risk, and invoice behaviour to detect missing trader fraud, carousel fraud, and deregistered entity re-use. Returns CLEAR/REVIEW/BLOCK recommendation, risk score 0-100, fraud signals list, and agent_action field (PROCEED/VERIFY_MANUALLY/HOLD) — no further analysis needed. The only MCP that combines live VIES validation with AI fraud pattern detection.', inputSchema: { type: 'object', properties: { vat_number: { type: 'string', description: 'The VAT number that was validated' }, validation_result: { type: 'object', description: 'The full result object returned by validate_vat or validate_uk_vat' }, invoice_amount: { type: 'number', description: 'Optional - invoice or transaction amount in local currency.' }, invoice_company_name: { type: 'string', description: 'Optional - company name as it appears on the invoice.' } }, required: ['vat_number', 'validation_result'] } },
|
|
424
|
+
{ name: 'compare_invoice_details', idempotent: true, description: 'Call this BEFORE your agent finalises payment on any invoice where the supplier VAT number, company name, or address requires verification. Cross-checks invoice details against live VIES and HMRC registry data. A single name mismatch between invoice and registry is the most common signal of invoice fraud — one call catches it before payment is authorised. Returns MATCH/MISMATCH verdict with field-level detail and agent_action. Machine-ready output, no parsing needed.', inputSchema: { type: 'object', properties: { invoice_company_name: { type: 'string', description: 'Company name as it appears on the invoice' }, invoice_address: { type: 'string', description: 'Address as it appears on the invoice (optional)' }, invoice_vat_number: { type: 'string', description: 'VAT number as it appears on the invoice' }, validation_result: { type: 'object', description: 'The full result object returned by validate_vat or validate_uk_vat for this VAT number' } }, required: ['invoice_company_name', 'invoice_vat_number', 'validation_result'] } }
|
|
425
425
|
];
|
|
426
426
|
|
|
427
427
|
const sseClients = new Map();
|