validate_nif
Validates Portuguese NIF (tax identification number) using modulo-11 checksum to confirm format and check digit, ensuring fiscal compliance for invoices, supplier onboarding, and user registration.
Instructions
Validates a Portuguese NIF (Número de Identificação Fiscal) — the 9-digit tax identification number issued by the Portuguese Tax Authority (AT) to individuals and companies. Applies the official modulo-11 checksum algorithm to verify the check digit. Returns { valid: true, nif: string } for valid NIFs, or { valid: false, reason: string } for invalid format or failed checksum. First-digit rules are enforced: 1–3 for individuals, 5 for corporations, 6 for public entities, 7–8 for other entities, 9 for occasional taxpayers. Use when processing Portuguese invoices (faturas), onboarding suppliers, validating user registrations, or any fiscal compliance workflow. Does not query the AT database — offline format and checksum validation only.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| nif | Yes | 9-digit Portuguese NIF, with or without spaces. Example: '123456789' |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| valid | Yes | Whether the NIF is valid | |
| nif | No | Normalized NIF without spaces | |
| reason | No | Reason for invalidity if valid is false |