com um clique
getting-started
Use when validating EU VAT numbers from NestJS APIs.
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Menu
Use when validating EU VAT numbers from NestJS APIs.
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Baseado na classificação ocupacional SOC
Use when scanning NestJS providers with DiscoveryService-backed utilities.
Use when working with the @wisemen/nestjs-custom-fields package — developer-defined custom fields in NestJS with TypeORM persistence and runtime validation. Covers registering the CustomFieldDefinition entity, authoring definitions with customFieldDefinition(), storing resolved values via @CustomFieldValueColumn(), exposing them through CustomFieldValueDto / @IsCustomFields(), and validating submissions with CustomFieldDefinitionsRepository + validateCustomFieldValues(). Use this whenever a task involves custom field definitions, CustomFieldValue columns, custom-field DTOs, or tenant-scoped field definitions, even if the package is not named explicitly.
Use when defining Typesense collections, collectors, and search queries in NestJS APIs.
Generate PDFs through API2PDF in NestJS. Use when converting HTML or URLs to PDFs in apis.
Use when storing and validating multilingual text in NestJS apis with TypeORM and class-validator.
Use when configuring NATS messaging, subscribers, or the simple NatsClient in NestJS applications.
| name | getting-started |
| description | Use when validating EU VAT numbers from NestJS APIs. |
Use @wisemen/vies when a NestJS service needs to validate a VAT number against the VIES REST API.
import { Module } from '@nestjs/common'
import { ViesModule } from '@wisemen/vies'
@Module({
imports: [ViesModule],
...
})
export class CreateBusinessModule {}
ViesClientimport { Injectable } from '@nestjs/common'
import { CountryCode, ViesCheckVatNumberCommandBuilder, ViesClient } from '@wisemen/vies'
@Injectable()
export class CreateBusinessUseCase {
constructor(
private viesClient: ViesClient
) {}
...
private async validateVat(vatNumber: string, cc: CountryCode) {
const command = new ViesCheckVatNumberCommandBuilder()
.withCountryCode(cc)
.withVatNumber(vatNumber)
.build()
return await this.viesClient.checkVatNumber(command)
}
}
checkVatNumber(...) returns ViesCheckVatNumberResponse and throws ViesUnavailableError when the VIES service is temporarily unavailable.
The response format is
export interface ViesCheckVatNumberResponse {
countryCode: CountryCode
vatNumber: string
requestDate: string
valid: boolean
requestIdentifier: string
name: string
address: string
traderName: string
traderStreet: string
traderPostalCode: string
traderCity: string
traderCompanyType: string
traderNameMatch: string
traderStreetMatch: string
traderPostalCodeMatch: string
traderCityMatch: string
traderCompanyTypeMatch: string
}
const command = new ViesCheckVatNumberCommandBuilder()
.withCountryCode(CountryCode.BELGIUM)
.withVatNumber(vatNumber)
.withRequesterMemberStateCode(CountryCode.BELGIUM)
.withRequesterNumber(requesterVatNumber)
.build()
Use requester fields only when you need the extra VIES validation context. For basic VAT checks, countryCode and vatNumber are enough.