Pular para o conteúdo principal

BaaS (Banking as a Service)

O Building Block BaaS fornece funcionalidades completas de serviços bancários na Catalisa Platform, incluindo contas bancárias, transferências, Pix, boletos, extratos e conciliação.

Visão Geral

O BaaS é um módulo tenant-scoped, ou seja, requer um token com organizationId. Ele é responsável por:

  • Contas Bancárias (Bank Accounts) — abertura e gestão de contas digitais
  • Transferências (Transfers) — TED/DOC entre contas
  • Pix — envio, recebimento, chaves Pix e QR Code
  • Boletos — emissão, consulta e cancelamento de boletos bancários
  • Extrato (Statements) — consulta de movimentações financeiras
  • Conciliação (Reconciliation) — importação e matching de lançamentos
  • Provedores Bancários (Bank Providers) — configuração de provedores integrados

Base URL

Staging:

https://baas.stg.catalisa.app

Produção:

https://baas.catalisa.app

Recursos

RecursoDescrição
Contas BancáriasAbertura e gestão de contas digitais
TransferênciasTED/DOC entre contas bancárias
PixEnvio, recebimento, chaves e QR Code
BoletosEmissão e gestão de boletos bancários
ExtratoConsulta de movimentações
ConciliaçãoImportação e matching de lançamentos
ProvedoresConfiguração de provedores bancários

Permissões

PermissãoDescrição
BAAS_ACCOUNTS_CREATECriar contas bancárias
BAAS_ACCOUNTS_READListar e visualizar contas
BAAS_ACCOUNTS_UPDATEAtualizar contas
BAAS_ACCOUNTS_CLOSEEncerrar contas
BAAS_TRANSFERS_CREATECriar transferências TED/DOC
BAAS_TRANSFERS_READListar e visualizar transferências
BAAS_PIX_SENDEnviar pagamentos Pix
BAAS_PIX_READListar e visualizar transações Pix
BAAS_PIX_KEYS_CREATERegistrar chaves Pix
BAAS_PIX_KEYS_READListar chaves Pix
BAAS_PIX_KEYS_DELETEExcluir chaves Pix
BAAS_PIX_QRCODE_CREATEGerar QR Codes Pix
BAAS_BOLETOS_CREATEEmitir boletos
BAAS_BOLETOS_READListar e visualizar boletos
BAAS_BOLETOS_CANCELCancelar boletos
BAAS_STATEMENTS_READConsultar extrato
BAAS_RECONCILIATION_CREATEImportar conciliação
BAAS_RECONCILIATION_READVisualizar conciliação
BAAS_PROVIDERS_CREATEConfigurar provedores
BAAS_PROVIDERS_READListar provedores
BAAS_PROVIDERS_UPDATEAtualizar provedores
BAAS_PROVIDERS_DELETEExcluir provedores

Exemplo Rápido

Fluxo completo para abrir uma conta e realizar um Pix:

// 1. Configurar provedor bancário
const providerResponse = await fetch('https://baas.stg.catalisa.app/baas/api/v1/providers', {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
data: {
type: 'providers',
attributes: {
name: 'Banco Principal',
code: 'BANK_001',
type: 'BANKING',
status: 'ACTIVE',
credentials: {
clientId: 'seu-client-id',
clientSecret: 'seu-client-secret',
environment: 'sandbox',
},
},
},
}),
});

const { data: provider } = await providerResponse.json();

// 2. Abrir conta bancária
const accountResponse = await fetch('https://baas.stg.catalisa.app/baas/api/v1/accounts', {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
data: {
type: 'accounts',
attributes: {
providerId: provider.id,
holderName: 'Empresa ABC Ltda',
holderDocument: '12.345.678/0001-90',
holderDocumentType: 'CNPJ',
type: 'CHECKING',
},
},
}),
});

const { data: account } = await accountResponse.json();

// 3. Registrar chave Pix
const pixKeyResponse = await fetch('https://baas.stg.catalisa.app/baas/api/v1/pix/keys', {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
data: {
type: 'pix-keys',
attributes: {
accountId: account.id,
keyType: 'CNPJ',
keyValue: '12345678000190',
},
},
}),
});

const { data: pixKey } = await pixKeyResponse.json();

// 4. Enviar Pix
const pixResponse = await fetch('https://baas.stg.catalisa.app/baas/api/v1/pix/payments', {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
data: {
type: 'pix-payments',
attributes: {
accountId: account.id,
amount: 1500.00,
recipientKeyType: 'CPF',
recipientKeyValue: '12345678901',
description: 'Pagamento fornecedor',
},
},
}),
});

const { data: pix } = await pixResponse.json();
console.log(`Pix enviado: ${pix.id}`);
console.log(`Status: ${pix.attributes.status}`);
console.log(`E2E ID: ${pix.attributes.e2eId}`);

Arquitetura

Componentes do BaaS

O BaaS é composto pelos seguintes componentes:

Gestão de Contas:

  • Bank Accounts (Contas Bancárias)
    • type: CHECKING, SAVINGS, PAYMENT
    • status: PENDING, ACTIVE, BLOCKED, CLOSED
    • holderName: Nome do titular
    • holderDocument: CPF/CNPJ do titular
    • Vinculada a um provedor bancário

Movimentações:

  • Transfers (Transferências TED/DOC)

    • type: TED, DOC
    • status: PENDING, PROCESSING, COMPLETED, FAILED, REVERSED
    • Suporta agendamento e transferências imediatas
  • Pix

    • Envio e recebimento instantâneo
    • Gestão de chaves Pix (CPF, CNPJ, EMAIL, PHONE, EVP)
    • Geração de QR Code estático e dinâmico
    • status: PENDING, PROCESSING, COMPLETED, FAILED, REVERSED
  • Boletos

    • Emissão de boletos registrados
    • status: PENDING, REGISTERED, PAID, OVERDUE, CANCELED
    • Suporta juros, multa e desconto

Consultas:

  • Statements (Extrato)

    • Movimentações por período
    • Filtros por tipo, valor e data
    • Saldos: abertura, fechamento e disponível
  • Reconciliation (Conciliação)

    • Importação de arquivos de retorno bancário
    • Matching automático de lançamentos
    • status: PENDING, PROCESSING, COMPLETED, PARTIALLY_MATCHED, FAILED

Infraestrutura:

  • Bank Providers (Provedores Bancários)
    • Configuração de credenciais do provedor
    • Suporte a múltiplos provedores simultâneos
    • status: ACTIVE, INACTIVE, SUSPENDED

Conceitos Importantes

Status da Conta Bancária

StatusDescrição
PENDINGConta em processo de abertura
ACTIVEConta ativa, operacional
BLOCKEDConta bloqueada temporariamente
CLOSEDConta encerrada

Tipos de Conta

TipoDescrição
CHECKINGConta corrente
SAVINGSConta poupança
PAYMENTConta de pagamento

Status de Transferência/Pix

StatusDescrição
PENDINGAguardando processamento
PROCESSINGEm processamento no provedor
COMPLETEDConcluída com sucesso
FAILEDFalhou no processamento
REVERSEDEstornada

Status do Boleto

StatusDescrição
PENDINGAguardando registro
REGISTEREDRegistrado no banco
PAIDPago
OVERDUEVencido
CANCELEDCancelado

Tipos de Chave Pix

TipoDescrição
CPFCPF do titular
CNPJCNPJ do titular
EMAILEndereço de e-mail
PHONENúmero de telefone (+55...)
EVPChave aleatória (UUID)

Eventos do BaaS

O módulo publica eventos via Redis para integração com outros módulos:

EventoDescrição
baas.account.createdConta bancária criada
baas.account.activatedConta ativada
baas.account.blockedConta bloqueada
baas.account.closedConta encerrada
baas.transfer.createdTransferência criada
baas.transfer.completedTransferência concluída
baas.transfer.failedTransferência falhou
baas.pix.sentPix enviado
baas.pix.receivedPix recebido
baas.pix.failedPix falhou
baas.boleto.registeredBoleto registrado
baas.boleto.paidBoleto pago
baas.boleto.canceledBoleto cancelado
baas.reconciliation.completedConciliação concluída