Api Endpoint

VAT and Tax ID Validator

VAT, tax ID and national ID validator: check a national identity, tax or company registration number against its country's official checksum rule. Covers 23 countries including NL BSN, ES NIF/NIE/CIF, IT codice fiscale, FR SIREN/SIRET, DE Steuer-ID, BE/PL/CZ national numbers, SE/NO/DK/FI personal numbers, BR CPF/CNPJ, AU ABN/TFN, UK NINo, IE PPS, US NPI/EIN. Structure and check digit only, no registry lookup; the number is never stored (logs keep only its length and character types).

Open interactive test console

Offering

Provider
api.duoleads.com
Method
GET
Offering type
Api Endpoint
Transport type
http
Category
Legal And Compliance
Delivery
Not provided
Pricing model
Not provided
x402 version
2

Endpoint context

URL
https://api.duoleads.com/v1/id/national
MIME type
application/json
First seen
2026-10-16T01:50:32.458Z
Last seen
Tags
VAT, vat-number, tax-id, identifiers, Validation

Payment pricing

x402 payment terms are the authoritative price for calling this endpoint.

Payment option 1
0.05 USDC
Atomic price: 50000 · Network: eip155:8453 · Asset: USDC · Scheme: exact
Raw x402 terms
[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "50000",
    "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39"
  }
]

Observed health

Status
Healthy
Latest latency
39 ms
Average latency
469 ms
HTTP status
402
Last checked
Reachability
100% over 14 checks

Latency is measured to the first response headers. A reachable result does not verify response accuracy or merchant identity.

Input schema

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "const": "http"
    },
    "method": {
      "type": "string",
      "enum": [
        "GET"
      ]
    },
    "queryParams": {
      "type": "object",
      "properties": {
        "country": {
          "type": "string",
          "description": "ISO 3166-1 alpha-2 country code, case-insensitive. One of the 23 supported countries; the United Kingdom is accepted as UK or GB (the response echoes what you sent).",
          "maxLength": 16
        },
        "kind": {
          "type": "string",
          "description": "Identifier type for that country, e.g. bsn, nif, cf, cpf.",
          "maxLength": 32
        },
        "value": {
          "type": "string",
          "description": "The identifier. Separators (space . - /) are stripped before checking.",
          "maxLength": 64
        }
      },
      "required": [
        "country",
        "kind",
        "value"
      ]
    }
  },
  "required": [
    "type",
    "method"
  ],
  "additionalProperties": false
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "method": {
          "enum": [
            "GET"
          ],
          "type": "string"
        },
        "queryParams": {
          "properties": {
            "country": {
              "description": "ISO 3166-1 alpha-2 country code, case-insensitive. One of the 23 supported countries; the United Kingdom is accepted as UK or GB (the response echoes what you sent).",
              "maxLength": 16,
              "type": "string"
            },
            "kind": {
              "description": "Identifier type for that country, e.g. bsn, nif, cf, cpf.",
              "maxLength": 32,
              "type": "string"
            },
            "value": {
              "description": "The identifier. Separators (space . - /) are stripped before checking.",
              "maxLength": 64,
              "type": "string"
            }
          },
          "required": [
            "country",
            "kind",
            "value"
          ],
          "type": "object"
        },
        "type": {
          "const": "http",
          "type": "string"
        }
      },
      "required": [
        "type",
        "method"
      ],
      "type": "object"
    },
    "output": {
      "properties": {
        "example": {
          "properties": {
            "data": {
              "properties": {
                "algorithm": {
                  "type": "string"
                },
                "country": {
                  "type": "string"
                },
                "derived": {
                  "properties": {
                    "birth_date": {
                      "type": "string"
                    },
                    "birth_month": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "birth_year_yy": {
                      "type": "string"
                    },
                    "birthplace_code": {
                      "type": "string"
                    },
                    "century_assumed": {
                      "type": "boolean"
                    },
                    "department_code": {
                      "type": "string"
                    },
                    "sex": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "formatted": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "kind": {
                  "type": "string"
                },
                "normalised": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "reason": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "valid": {
                  "type": "boolean"
                }
              },
              "required": [
                "valid",
                "country",
                "kind",
                "algorithm",
                "normalised",
                "formatted",
                "reason",
                "derived"
              ],
              "type": "object"
            },
            "meta": {
              "properties": {
                "computed_at": {
                  "description": "RFC 3339 UTC with milliseconds",
                  "type": "string"
                },
                "deterministic": {
                  "type": "boolean"
                },
                "disclaimer": {
                  "type": "string"
                },
                "price_usd": {
                  "type": "string"
                },
                "request_id": {
                  "type": "string"
                },
                "sources": {
                  "items": {
                    "required": [
                      "id",
                      "version",
                      "published"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                }
              },
              "required": [
                "request_id",
                "computed_at",
                "price_usd",
                "deterministic",
                "disclaimer"
              ],
              "type": "object"
            },
            "ok": {
              "const": true
            },
            "route": {
              "const": "/v1/id/national"
            },
            "version": {
              "type": "string"
            }
          },
          "required": [
            "ok",
            "route",
            "version",
            "data",
            "meta"
          ],
          "type": "object"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    }
  },
  "required": [
    "input"
  ],
  "type": "object"
}