VAT Validation with Zapier
Zapier does not have a native VAT validation app. You can connect Avatcado to any Zapier workflow using the Webhooks by Zapier action, which calls any REST API with custom headers. No code required.
This guide walks through setting up a Zap that validates a VAT number and uses the result in downstream steps.
When to use this
Zapier is a good fit when you want to validate VAT numbers as part of an existing automation, without writing code. Common use cases:
- Validate a VAT number when a new HubSpot contact or company is created
- Validate when a Typeform, JotForm, or Google Forms submission includes a VAT number
- Validate when a new row appears in a Google Sheet (e.g., a partner onboarding spreadsheet)
- Validate when a new Salesforce Account is created (if you prefer no-code over Apex)
Setting up the Zap
The Zap has two parts: a trigger (the event that starts it) and an action (the Avatcado API call). You then add more steps to use the result.
1. Choose your trigger
Pick the event that should start the validation. For example, "New Contact" in HubSpot, "New Entry" in Typeform, or "New Spreadsheet Row" in Google Sheets. The trigger must provide a field that contains the VAT number.
2. Add the Webhooks by Zapier action
Add a new action step. Search for "Webhooks by Zapier" and select "Custom Request" as the action event. This gives you full control over the HTTP request.
- Method: GET
- URL:
https://api.avatcado.com/v1/validate?vat_number={{vat_number_field}}(map the VAT number field from your trigger) - Headers: add a header with key
Authorizationand valueBearer avat_live_your_api_key
When you test the step, Zapier sends the request and displays the parsed JSON response. Each field in the response (like data__valid and data__company__name) becomes available as a variable in subsequent steps. A real Avatcado response looks like this before Zapier flattens it:
{
"data": {
"valid": true,
"vat_number": "NL123456789B01",
"country_code": "NL",
"company": {
"name": "EXAMPLE B.V.",
"address": "KEIZERSGRACHT 100, 1015 AA AMSTERDAM"
},
"requested_at": "2026-08-07T10:30:00.000Z"
},
"meta": {
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"cached": false
}
}Zapier flattens nested JSON with double underscores, so data.company.name becomes data__company__name in the step's output, and that is the field name you reference in every step after the webhook.
Using the result
After the webhook step, you can use the validation result in downstream actions:
- Update a CRM record: add a HubSpot or Salesforce update step that writes the validated company name (
data__company__name) back to the contact or account record. - Filter the Zap: add a Filter step that continues only if
data__validis true. This lets you skip downstream steps for invalid numbers. - Send a notification: if the number is invalid, send a Slack message or email to the responsible sales rep so they can follow up.
Handling errors and non-200 responses
When the Avatcado API returns a 4xx or 5xx status, the Webhooks by Zapier step errors and halts the Zap, so a Filter step never sees those responses. Use a Filter only to branch on the 200 response body (for example, data__valid true or false). For the error statuses below, attach Zapier's custom error handling to the webhook step, or rely on autoreplay for transient failures:
- 422 invalid_vat_format: The VAT number failed format or checksum validation. Route this to a path that flags the record for manual correction rather than retrying.
- 503 upstream_unavailable: The upstream registry (VIES, HMRC, or a national registry) is temporarily down. Avatcado returns a cached, stale result when one is available (check
meta__stale). If there is no cached result, use Zapier's built-in retry for the step, or add an error handler to the step. - 429 rate_limit_exceeded: If a Zap runs on every CRM update and you exceed your plan's rate limit during a bulk import, add a Delay step between validations or switch that import to the batch endpoint instead of running it through Zapier.
Revalidating existing records on a schedule
VAT registrations can lapse after the initial validation. For subscription businesses, set up a second Zap on a Schedule by Zapier trigger (for example, monthly) that searches for CRM records due for revalidation, loops through them with a Looping by Zapier action, and repeats the same Webhooks by Zapier call for each one. A monthly cadence is long enough that it mostly re-checks against fresh upstream data rather than the cache, which is the point: catching numbers that were deregistered since the last check.
Limitations
- Not built for bulk backlogs. Zapier runs each record as its own Zap run and bills a task per action step, loops cap at 500 iterations, and the platform is designed for event-driven automation, not bulk data processing. If you need to validate thousands of existing VAT numbers in your CRM, the Avatcado batch endpoint is a better fit. It accepts up to 50 numbers per request on Pro and Business plans.
- Webhooks by Zapier requires a paid plan. The action used in this guide is not included in Zapier's free tier.
- Looping consumes tasks quickly. The Looping step itself is free; each action step inside the loop uses one task per iteration against your Zapier plan's task quota, so validating large lists this way can get expensive compared to a single batch API call.
Get started
Create a free Avatcado account →
Read the API documentation for the full endpoint reference. For a broader overview of CRM integration patterns, see the CRM validation guide.
Frequently asked questions
Does Zapier have a native VAT validation app?
No. You connect Avatcado to Zapier using the Webhooks by Zapier action, which can call any REST API with custom headers, so no code is required. Concretely: pick your trigger (a new HubSpot contact, a Typeform entry, a new Google Sheets row), add a Webhooks by Zapier step with the Custom Request event, set the method to GET, point the URL at the Avatcado validate endpoint with the VAT number field mapped in from the trigger, and add an Authorization header carrying your Bearer API key. When you test the step, Zapier flattens the JSON response with double underscores, so data.valid becomes data__valid and data.company.name becomes data__company__name, and those are the variables every later step references, whether that is a Filter that continues only for valid numbers, a CRM update writing back the registered company name, or a Slack alert on invalid ones. Note that Webhooks by Zapier requires a paid Zapier plan; it is not included in the free tier.
Can I use Zapier to validate VAT numbers in HubSpot?
Yes, this is one of the most common setups. Set the trigger to a new or updated HubSpot contact or company (the trigger must provide the field holding the VAT number), add a Webhooks by Zapier step that calls the Avatcado validate endpoint with that field mapped into the URL and your API key in the Authorization header, then add a HubSpot update step that writes the result back to the record, typically the registered company name from data__company__name plus a validated flag. Two refinements make it production-grade. Add a Filter step after the webhook so downstream steps only run when data__valid is true, and route invalid results to a Slack or email notification so a rep can follow up while the prospect is still engaged. For subscription businesses, add a second Zap on a Schedule by Zapier trigger that loops through records due for revalidation monthly, since registrations can lapse after the initial check.
Is Zapier suitable for validating large numbers of VAT records?
No, and the cost model is the reason. Zapier runs each record as its own Zap run and bills a task per action step, loops via Looping by Zapier cap at 500 iterations and consume a task for every action inside the loop on each iteration, and the platform is designed for event-driven automation rather than bulk data processing. Validating a several-thousand-record backlog that way is slow and expensive compared with the alternative: the Avatcado batch endpoint accepts up to 50 numbers per request on Pro and Business plans, and the async batch endpoint takes up to 200 (Pro) or 1,000 (Business) per submission with results delivered by webhook. The clean division of labor: use Zapier for the event-driven trickle, validating each new contact or form submission as it arrives, and run backlogs and quarterly revalidation sweeps directly against the batch API, then import the results back into your CRM in bulk.
Sources
- Send webhooks in Zaps Zapier, accessed August 13, 2026
- How to get started with Webhooks by Zapier Zapier, accessed August 13, 2026
- Set up custom error handling Zapier, accessed August 13, 2026
- Understanding Looping by Zapier Zapier, accessed August 13, 2026
Related guides
Validate VAT Numbers in Your CRM
How to add real-time VAT number validation to CRM account creation and lead qualification workflows. Covers Salesforce, HubSpot, and no-code automation tools.
VAT Validation with Make
How to validate VAT numbers in a Make scenario using the HTTP module and the Avatcado REST API. No code required.
Salesforce VAT Validation
How to validate VAT numbers inside Salesforce using Apex HTTP callouts. Covers Named Credentials and writing the validated company name back to Account records.
VAT Number Validation for Xero and QuickBooks
Neither Xero nor QuickBooks validates VAT numbers on contacts against a government registry. Learn the gap and how to add validation with Avatcado.