Pular para o conteúdo principal

Type Fields — Bancário

Type Fields para dados bancários e de pagamento. Vários campos são locale-aware e aplicam regras específicas quando TypeField.locale está configurado como "br" (Brasil).

Resumo

ClasseMinMaxValidação extraArquivo
FBankCode120Numérico; locale br: ISPB 8 dígitosbank-code.format_vo.ts
FBankBranch120Numérico; locale br: 4 dígitosbank-branch.format_vo.ts
FBankAccountNumber134Alfanumérico; locale br: 1-13 dígitos + dígito verificadorbank-account-number.format_vo.ts
FBankNsu120Alfanuméricobank-nsu.format_vo.ts
FBankE2eId135Alfanuméricobank-e2e-id.format_vo.ts
FEmvQrCodePayload11000String genéricaemv-qr-code-payload.format_vo.ts
Configuração de locale

Para ativar as validações específicas do Brasil, configure o locale no bootstrap da aplicação:

import { TypeField } from "tyforge";

TypeField.configure({ locale: "br" });

Isso afeta FBankCode, FBankBranch e FBankAccountNumber.


FBankCode

Código de identificação bancária. No modo genérico, aceita qualquer string numérica de 1 a 20 caracteres. Com locale "br", exige exatamente 8 dígitos numéricos no formato ISPB (Identificador do Sistema de Pagamentos Brasileiro).

import { FBankCode } from "tyforge";

const result = FBankCode.create("00000000");
// Result<FBankCode, ExceptionValidation>

const banco = FBankCode.createOrThrow("00000000");
banco.getValue(); // "00000000"

Com locale brasileiro

import { FBankCode, TypeField } from "tyforge";

TypeField.configure({ locale: "br" });

// Aceita ISPB de 8 dígitos
const itau = FBankCode.createOrThrow("60701190");
itau.getValue(); // "60701190"

// Rejeita formatos inválidos
const invalido = FBankCode.create("123");
// Result com erro: "ISPB bank code must be exactly 8 numeric digits"

Regras de validação:

  • Apenas dígitos numéricos (/^\d+$/)
  • Locale br: exatamente 8 dígitos numéricos (ISPB)

FBankBranch

Número da agência bancária. No modo genérico, aceita qualquer string numérica. Com locale "br", exige exatamente 4 dígitos.

import { FBankBranch } from "tyforge";

const result = FBankBranch.create("0001");
// Result<FBankBranch, ExceptionValidation>

const agencia = FBankBranch.createOrThrow("0001");
agencia.getValue(); // "0001"

Com locale brasileiro

import { FBankBranch, TypeField } from "tyforge";

TypeField.configure({ locale: "br" });

// Aceita agência de 4 dígitos
const ag = FBankBranch.createOrThrow("1234");
ag.getValue(); // "1234"

// Rejeita formatos inválidos
const invalido = FBankBranch.create("12");
// Result com erro: "Brazilian bank branch must be exactly 4 numeric digits"

Regras de validação:

  • Apenas dígitos numéricos (/^\d+$/)
  • Locale br: exatamente 4 dígitos numéricos

FBankAccountNumber

Número da conta bancária. No modo genérico, aceita strings alfanuméricas de até 34 caracteres. Com locale "br", exige de 1 a 13 dígitos numéricos, opcionalmente seguidos de dígito verificador (-D).

import { FBankAccountNumber } from "tyforge";

const result = FBankAccountNumber.create("123456");
// Result<FBankAccountNumber, ExceptionValidation>

const conta = FBankAccountNumber.createOrThrow("123456");
conta.getValue(); // "123456"

Com locale brasileiro

import { FBankAccountNumber, TypeField } from "tyforge";

TypeField.configure({ locale: "br" });

// Conta simples
const conta1 = FBankAccountNumber.createOrThrow("12345678");

// Conta com dígito verificador
const conta2 = FBankAccountNumber.createOrThrow("12345678-9");
conta2.getValue(); // "12345678-9"

Regras de validação:

  • Alfanumérico (até 34 caracteres)
  • Locale br: 1 a 13 dígitos numéricos, opcionalmente seguidos de -D (dígito verificador)

FBankNsu

NSU (Número Sequencial Único) — identificador alfanumérico de recibo ou transação emitido pelo processador de pagamento.

import { FBankNsu } from "tyforge";

const result = FBankNsu.create("ABC123456789");
// Result<FBankNsu, ExceptionValidation>

const nsu = FBankNsu.createOrThrow("123456789012");
nsu.getValue(); // "123456789012"

Regras de validação:

  • Comprimento entre 1 e 20 caracteres
  • Apenas caracteres alfanuméricos (/^[a-zA-Z0-9]+$/)

FBankE2eId

Identificador end-to-end (E2E) para transações de pagamento instantâneo. Utilizado para rastrear uma transação da origem ao destino.

import { FBankE2eId } from "tyforge";

const result = FBankE2eId.create("E00000000202301011234abcdefghij");
// Result<FBankE2eId, ExceptionValidation>

const e2e = FBankE2eId.createOrThrow("E00000000202301011234abcdefghij");
e2e.getValue(); // "E00000000202301011234abcdefghij"

Regras de validação:

  • Comprimento entre 1 e 35 caracteres
  • Apenas caracteres alfanuméricos (/^[a-zA-Z0-9]+$/)

FEmvQrCodePayload

Payload de QR Code no padrão EMV — string codificada contendo dados de pagamento (comerciante, valor, moeda) para processamento de pagamentos instantâneos.

import { FEmvQrCodePayload } from "tyforge";

const payload = "00020126580014br.gov.bcb.pix0136a629532e...";
const result = FEmvQrCodePayload.create(payload);
// Result<FEmvQrCodePayload, ExceptionValidation>

const qr = FEmvQrCodePayload.createOrThrow(payload);
qr.getValue(); // string completa do payload

Regras de validação:

  • Comprimento entre 1 e 1000 caracteres
  • Aceita qualquer string válida (a validação de estrutura EMV é responsabilidade da camada de negócio)