Pular para o conteúdo principal

Type Fields — PIX

Type Fields para o sistema de pagamentos instantâneos PIX do Banco Central do Brasil. Cobrem chaves PIX multi-formato e o enum de tipo de chave.

Resumo

ClasseMinMaxValidação extraArquivo
FPixKey177CPF, CNPJ, telefone, email ou EVPpix-key.format_vo.ts
FPixKeyType110Enum OPixKeyTypepix-key-type.format_vo.ts

FPixKey

Chave PIX multi-formato. Aceita os cinco tipos de chave definidos pelo Banco Central: CPF, CNPJ, telefone, email e EVP (chave aleatória).

import { FPixKey } from "tyforge";

const result = FPixKey.create("12345678901");
// Result<FPixKey, ExceptionValidation>

Chave CPF (11 dígitos)

import { FPixKey } from "tyforge";

const cpf = FPixKey.createOrThrow("12345678901");
cpf.getValue(); // "12345678901"

Chave CNPJ (14 dígitos)

import { FPixKey } from "tyforge";

const cnpj = FPixKey.createOrThrow("12345678000190");
cnpj.getValue(); // "12345678000190"

Chave telefone (prefixo +)

import { FPixKey } from "tyforge";

const telefone = FPixKey.createOrThrow("+5511999998888");
telefone.getValue(); // "+5511999998888"

Chave email (contém @)

import { FPixKey } from "tyforge";

const email = FPixKey.createOrThrow("usuario@exemplo.com");
email.getValue(); // "usuario@exemplo.com"

Chave EVP (aleatória, 32-36 alfanuméricos)

import { FPixKey } from "tyforge";

const evp = FPixKey.createOrThrow("a629532e-7693-4846-852d-1bbff57b00a9");
evp.getValue(); // "a629532e-7693-4846-852d-1bbff57b00a9"

Regras de validação:

  • Comprimento entre 1 e 77 caracteres
  • Caracteres permitidos: alfanuméricos, @, ., +, -, _
  • Deve corresponder a pelo menos um dos formatos:
    • CPF: exatamente 11 dígitos numéricos
    • CNPJ: exatamente 14 dígitos numéricos
    • Telefone: inicia com +
    • Email: contém @
    • EVP: 32 a 36 caracteres alfanuméricos (incluindo hifens)

FPixKeyType

Tipo da chave PIX. Validado contra o enum OPixKeyType.

import { FPixKeyType, OPixKeyType } from "tyforge";

const result = FPixKeyType.create(OPixKeyType.CPF);
// Result<FPixKeyType, ExceptionValidation>

const tipo = FPixKeyType.createOrThrow("EMAIL");
tipo.getValue(); // "EMAIL"

Constante OPixKeyType

export const OPixKeyType = {
CPF: "CPF",
CNPJ: "CNPJ",
EMAIL: "EMAIL",
PHONE: "PHONE",
EVP: "EVP",
} as const;

Tipos relacionados

export type TKeyPixKeyType = keyof typeof OPixKeyType;
// "CPF" | "CNPJ" | "EMAIL" | "PHONE" | "EVP"

export type TPixKeyType = (typeof OPixKeyType)[TKeyPixKeyType];
// "CPF" | "CNPJ" | "EMAIL" | "PHONE" | "EVP"

Exemplo com schema

import { FPixKey, FPixKeyType, ISchema } from "tyforge";

const schema = {
pixKey: { type: FPixKey },
pixKeyType: { type: FPixKeyType },
} satisfies ISchema;

Regras de validação:

  • Aceita apenas os valores do enum: "CPF", "CNPJ", "EMAIL", "PHONE" ou "EVP"
  • Qualquer outro valor é rejeitado