Skip to main content
⚠️ PROGRAMA BETA - ACESSO RESTRITO O sistema BAAS está em fase de testes beta. O acesso é exclusivo para parceiros selecionados que passaram por um rigoroso processo de compliance e due diligence. Entre em contato: suporte@owem.com.br

Sobre o BAAS Owem

Banking as a Service (BAAS) é uma tecnologia que permite que qualquer empresa – independentemente do seu ramo de atuação – comece a oferecer produtos financeiros para seus clientes sem a necessidade de ser um banco ou instituição financeira.

Como funciona o BAAS?

O BAAS funciona conectando empresas que querem oferecer serviços financeiros através da Owem, integrando nossas APIs e utilizando nossa infraestrutura tecnológica regulada pelo Banco Central.

Pré-requisitos para Implementação

1

Aprovação no Programa BAAS

Passar pelo processo de compliance e due diligence da Owem. Entre em contato com suporte@owem.com.br.
2

Credenciais de API

Após aprovação, você receberá sua API Key com o scope baas:onboarding habilitado.
3

Familiaridade com APIs REST

Conhecimento em APIs REST com autenticação Basic Auth.
4

Configuração de Webhooks

Endpoint HTTPS para receber notificações em tempo real.
5

IP na Allowlist

Seu IP público deve estar cadastrado na nossa allowlist.

Funcionalidades Disponíveis


Onboarding KYC

O processo de onboarding permite criar contas bancárias para os clientes do seu negócio com verificação KYC (Know Your Customer) integrada.

Tipos de Onboarding

TipoDescriçãoUso Recomendado
livenessWidget KYC com captura de selfie e documentosApps mobile, experiência guiada
manualUpload de documentos via APIIntegração backend, processos internos

Fluxo de Integração

Email obrigatório: O cliente deve verificar o email antes de enviar documentos. Use POST /:userId/resend-verification-email para reenviar se necessário.

Criar Proposta de Conta

Para iniciar o onboarding, envie os dados do cliente para a API:
curl -X POST https://api.owem.com.br/v4/i/baas/onboarding/new \
  -H "Authorization: Basic $(echo -n 'SUA_API_KEY:SEU_SECRET' | base64)" \
  -H "Content-Type: application/json" \
  -d '{
    "onboardingType": "liveness",
    "type": "PF",
    "cpf": "12345678900",
    "name": "João da Silva",
    "email": "joao@email.com",
    "phone": "11999998888",
    "birthDate": "1990-05-15",
    "motherName": "Maria da Silva",
    "address": {
      "street": "Rua das Flores",
      "number": "123",
      "neighborhood": "Centro",
      "city": "São Paulo",
      "state": "SP",
      "zipCode": "01234567"
    },
    "financialDetails": {
      "declaredIncome": "DINP02",
      "netWorth": "NWNP01",
      "occupation": "ONP05"
    },
    "isPEP": false
  }'
Fluxo de verificação: O cliente receberá um email de verificação automaticamente. Após verificar o email, o status muda para PENDING_DOCUMENTS e ele pode acessar o kycUrl para completar a verificação de identidade.

Campos Obrigatórios

CampoTipoDescrição
onboardingTypestringliveness (widget) ou manual (upload API)
typestringTipo de pessoa: PF (apenas PF no momento)
cpfstringCPF do cliente (apenas números)
namestringNome completo (mínimo 3 caracteres)
emailstringEmail válido
phonestringTelefone com DDD (mínimo 10 dígitos)
birthDatestringData de nascimento (YYYY-MM-DD), idade ≥ 18
motherNamestringNome da mãe
addressobjectEndereço completo
financialDetailsobjectInformações financeiras (códigos BACEN)

Dados Financeiros (BACEN Circular nº 3.978/2020)

Campos obrigatórios conforme Circular BACEN nº 3.978/2020, vigente a partir de 16/01/2026.
CódigoFaixa de Renda
DINP01Até R$ 5.000
DINP02R$ 5.001 – R$ 10.000
DINP03R$ 10.001 – R$ 30.000
DINP04R$ 30.001 – R$ 100.000
DINP05Acima de R$ 100.000
CódigoFaixa de Patrimônio
NWNP01Até R$ 50.000
NWNP02R$ 50.001 – R$ 200.000
NWNP03R$ 200.001 – R$ 1.000.000
NWNP04R$ 1.000.001 – R$ 5.000.000
NWNP05Acima de R$ 5.000.000
CódigoProfissão
ONP01Administrador / Gerente
ONP02Vendedor / Representante Comercial
ONP03Analista de RH / Assistente de Pessoal
ONP04Analista Financeiro / Contador
ONP05Desenvolvedor / Analista de Sistemas
ONP06Profissional de Marketing / Publicitário
ONP07Médico / Dentista / Enfermeiro
ONP08Professor / Educador
ONP09Engenheiro (em qualquer área)
ONP10Advogado / Jurista
ONP11Auxiliar de Serviços Gerais / Faxineiro
ONP12Pedreiro / Servente / Mestre de Obras
ONP13Motorista / Entregador / Logístico
ONP14Recepcionista / Operador de Caixa
ONP15Técnico em (Eletricidade, Mecânica, etc.)
ONP16Designer Gráfico / Artista
ONP17Operador de Máquinas / Montador
ONP18Consultor / Autônomo (Prestador de Serviços)
ONP19Cabeleireiro / Manicure / Esteticista
ONP20Vigilante / Agente de Segurança
ONP21Trabalhador Agropecuário / Agrônomo
ONP22Agente de Viagens / Hoteleiro
ONP23Jornalista / Relações Públicas
ONP24Psicólogo / Terapeuta
ONP25Servidor Público / Funcionário Federal/Estadual
ONP26Pesquisador / Cientista
ONP27Artesão / Microempreendedor Individual (MEI)
ONP28Aposentado / Reformado
ONP29Estudante (Sem Renda Própria)
ONP30Autônomo
ONP31Outros

Consultar Status

Após criar a proposta, você pode consultar o status a qualquer momento:
curl -X GET https://api.owem.com.br/v4/i/baas/onboarding/usr_abc123def456 \
  -H "Authorization: Basic $(echo -n 'SUA_API_KEY:SEU_SECRET' | base64)"

Status Possíveis

StatusDescrição
PENDING_EMAIL_VERIFICATION🆕 Aguardando verificação de email
PENDING_DOCUMENTSAguardando cliente completar KYC
PROCESSINGDocumentos em análise
PENDING_REVIEWAnálise manual necessária
APPROVEDKYC aprovado, criando conta
REPROVEDKYC reprovado
ACCOUNT_CREATED✅ Conta bancária criada com sucesso
Recomendamos usar webhooks para receber atualizações em tempo real, em vez de fazer polling no endpoint de consulta.

Eventos e Webhooks

O BAAS envia webhooks para cada etapa do processo:

Eventos do Onboarding

🆕 Proposta criada, aguardando verificação de email.
{
  "event": "baas:onboarding.pending_email",
  "data": {
    "userId": "usr_abc123def456",
    "clientCode": "baas_x7k2m9p1",
    "status": "PENDING_EMAIL_VERIFICATION",
    "email": "joao@email.com",
    "createdAt": 1704672000000
  }
}
Email verificado, aguardando documentos KYC.
{
  "event": "baas:onboarding.pending_documents",
  "data": {
    "userId": "usr_abc123def456",
    "clientCode": "baas_x7k2m9p1",
    "status": "PENDING_DOCUMENTS",
    "emailVerifiedAt": 1704758400000,
    "updatedAt": 1704758400000
  }
}
Documentos recebidos, em análise.
{
  "event": "baas:onboarding.processing",
  "data": {
    "userId": "usr_abc123def456",
    "clientCode": "baas_x7k2m9p1",
    "status": "PROCESSING",
    "updatedAt": 1704758400000
  }
}
KYC aprovado, conta será criada.
{
  "event": "baas:onboarding.approved",
  "data": {
    "userId": "usr_abc123def456",
    "clientCode": "baas_x7k2m9p1",
    "status": "APPROVED",
    "updatedAt": 1704758400000
  }
}
KYC reprovado com motivo.
{
  "event": "baas:onboarding.reproved",
  "data": {
    "userId": "usr_abc123def456",
    "clientCode": "baas_x7k2m9p1",
    "status": "REPROVED",
    "rejectedReason": "DOCUMENT_FRAUD",
    "rejectedDetails": [
      "Documento apresenta sinais de adulteração"
    ],
    "updatedAt": 1704758400000
  }
}
Conta bancária criada com sucesso.
{
  "event": "baas:account.created",
  "data": {
    "userId": "usr_abc123def456",
    "clientCode": "baas_x7k2m9p1",
    "status": "ACCOUNT_CREATED",
    "account": {
      "accountId": "acc_xyz789",
      "accountNumber": "12345678",
      "branchCode": "0001",
      "bankCode": "535",
      "bankName": "Owem Pay"
    },
    "pixKey": {
      "key": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "type": "EVP",
      "status": "active"
    },
    "createdAt": 1704758400000
  }
}

Conta Bancária

Após o KYC ser aprovado, a conta bancária é criada automaticamente com:
  • Número da conta único
  • Agência padrão (0001)
  • Chave PIX EVP (chave aleatória gerada automaticamente)
  • Saldo inicial zerado

Gerenciamento de Chaves PIX

Cada conta pode ter múltiplas chaves PIX. Use os endpoints de gerenciamento para:
OperaçãoDescrição
Criar ChaveAdicionar chaves EVP, CPF, CNPJ, EMAIL ou PHONE
Definir CorrenteEscolher qual chave é a principal
Deletar ChaveRemover chaves não utilizadas
Limites: PF pode ter até 5 chaves, PJ até 20 chaves. A chave corrente não pode ser deletada.

Dados Bancários (Futuro TED)

Em breve: O suporte a TED está em desenvolvimento. Quando disponível, as transferências TED poderão ser recebidas usando os dados abaixo.
CampoValor
BancoOwem Pay (535)
Agência0001
ContaaccountNumber da response
CPF do TitularCPF do cliente
Atualmente, utilize PIX para enviar e receber pagamentos. A chave PIX EVP é gerada automaticamente na criação da conta.

Rate Limiting

LimiteValor
Requisições por hora100 por API Key
Código de erroBAAS_RATE_LIMIT
Status HTTP429
O rate limit é compartilhado por API Key, não por IP. Isso permite que você use múltiplos servidores com o mesmo limite.

Documentos Aceitos

TipoFrenteVersoFormatoDescrição
RGJPG/PNGRG físico (frente + verso)
RG_FULLJPG/PNG🆕 RG aberto (captura única)
CNHJPG/PNGCNH física (frente + verso)
CNH_FULLJPG/PNG🆕 CNH aberta (captura única)
CNH_DIGITALPDFCNH Digital (arquivo PDF)
RNEJPG/PNGRNE/RNM (frente + verso)
PASSPORTJPG/PNG🆕 Passaporte (captura única)

Requisitos dos Arquivos

RequisitoValor
Formatos imagemJPG, JPEG, PNG, WebP
Formato PDFPDF (apenas CNH_DIGITAL)
Tamanho máximo10MB por arquivo
QualidadeFoto nítida, sem reflexos

Formatos de Upload

FormatoContent-TypeDescrição
multipart/form-datamultipart/form-dataUpload de arquivos binários
Base64 em JSONapplication/json🆕 Imagens codificadas em Base64
Documentos de captura única (RG_FULL, CNH_FULL, PASSPORT) precisam apenas de documentFront + selfie.
CNH Digital: Envie apenas o arquivo PDF no campo documentPdf. Não envie documentFront ou documentBack para CNH_DIGITAL.

Tabela de Erros

CódigoDescrição
400Dados inválidos ou incompletos
400Email já cadastrado no sistema
400CPF já possui conta bancária
400CPF já possui processo de verificação
400Idade mínima é 18 anos
403API Key não possui configuração BAAS ativa
403Documento bloqueado
403IP não autorizado
404Proposta não encontrada
429Rate limit excedido (100 req/hora)

Considerações Finais

Verificação de Identidade
  • Validação do CPF na Receita Federal
  • Verificação de sanções e listas restritivas
  • Verificação de Pessoa Politicamente Exposta (PEP)
Documentoscopia
  • OCR do documento enviado
  • Perícia documental (verificação de adulteração)
  • FaceMatch (selfie vs foto do documento)
  • Prova de vida (liveness detection)
  • Widget KYC (liveness): Resultado em até 5 minutos após conclusão - Upload manual: Resultado em até 24 horas úteis - Casos de análise manual: Até 48 horas úteis
  • Propostas pendentes expiram em 7 dias - Após expiração, é necessário criar nova proposta - O campo expiresIn indica o tempo restante em segundos
  • Use webhooks em vez de polling - Guarde o userId e clientCode para referência - Implemente retry com backoff exponencial - Valide os dados antes de enviar à API
  • Documento ilegível ou danificado
  • Selfie não confere com documento
  • CPF irregular na Receita Federal
  • Menor de idade
  • Documento expirado
  • Suspeita de fraude

Endpoints da API

Onboarding

Accounts

PIX Out