VAT Validation with Zapier

By Remco from Avatcado

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 Authorization and value Bearer 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__valid is 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. Since Avatcado caches results for 25 days, a monthly cadence 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 a custom Authorization header.

Can I use Zapier to validate VAT numbers in HubSpot?

Yes. Set your trigger to new or updated HubSpot contact or company, add a Webhooks by Zapier step to call the Avatcado API, then add a HubSpot update step to write the validated company name back to the record.

Is Zapier suitable for validating large numbers of VAT records?

Zapier runs each record as its own Zap run and bills a task per action step, so it is not designed for bulk operations. For validating thousands of existing records, use the Avatcado batch endpoint directly via the API.

Sources