Autenticação
POST /authenticate — autentica PF/PJ no contexto de um tenant e retorna JWT.
Autenticação
Autentica um usuário (PF ou PJ) dentro do contexto de um tenant e retorna um JWT, dados da entidade e contas associadas. O tenant é identificado pelo header X-Tenant-Id.
POST/authenticate
A WL roda em https://baas.staterpay.io (sem prefixo /v1). O endpoint /authenticate é o ponto de entrada — todas as chamadas subsequentes usam o token JWT no header Authorization: Bearer <token>. O X-Tenant-Id é obrigatório e isola a autenticação por tenant: um mesmo documento pode existir em múltiplos tenants com senhas distintas.
Headers
- AcceptObrigatóriostringapplication/json
- Content-TypeObrigatóriostringapplication/json
- X-Tenant-IdObrigatóriostring (UUID)Identificador do tenant (cliente WL) sob o qual o usuário se autentica.
Body
- documentObrigatóriostringCPF (11 dígitos) ou CNPJ (14 dígitos), apenas números.
- passwordObrigatóriostringSenha definida no cadastro.
Exemplo de requisição
curl -X POST https://baas.staterpay.io/authenticate \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -H "X-Tenant-Id: 00000000-0000-0000-0000-000000000000" \ -d '{ "document": "12345678900", "password": "sua-senha-aqui" }'Resposta
- tokenstring (JWT)JWT a usar nas chamadas subsequentes no header Authorization: Bearer <token>. TTL de 1h (iat e exp do payload).
- entityType"PERSON" | "COMPANY"Tipo da entidade autenticada — PERSON (PF) ou COMPANY (PJ).
- entity.idstring (UUID)ID interno da entidade.
- entity.emailstringEmail cadastrado.
- entity.emailConfirmationbooleanSe o email foi confirmado.
- entity.phonestring | nullTelefone no formato E.164 (+55...).
- entity.phoneConfirmationbooleanSe o telefone foi confirmado.
- entity.namestringNome completo (PF) ou razão social (PJ).
- entity.documentstringCPF ou CNPJ, apenas dígitos.
- entity.status"ACTIVE" | "BLOCKED" | "CLOSED"Estado atual da conta.
- entity.onboardingStepstringEtapa do onboarding. "DONE" quando concluído.
- entity.onboardingLinkstring | nullURL para retomar o onboarding, quando incompleto.
- entity.onboardingRequisitionIdnumber | nullID da requisição de onboarding (auditoria).
- entity.hasPinbooleanSe o usuário tem PIN definido para operações sensíveis.
- accountsarrayContas associadas à entidade.
- accounts[].idstring (UUID)ID da conta.
- accounts[].bankstringCódigo do banco (3 dígitos).
- accounts[].agencystringAgência (4 dígitos).
- accounts[].numberstringNúmero da conta.
- accounts[].balancenumberSaldo atual em reais (não centavos).
- accounts[].status"APPROVED" | "PENDING" | "REJECTED"Estado de provisionamento da conta.
- accounts[].monthlyGoalnumberMeta de gastos mensal definida pelo usuário.
- accounts[].monthlySpendingnumberGastos no mês corrente.
- accounts[].savingsProgressnumberProgresso na meta de economia.
json
// PF — entityType: "PERSON"{ "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.<payload>.<signature>", "entityType": "PERSON", "entity": { "id": "00000000-0000-0000-0000-000000000001", "email": "fulano@example.com", "emailConfirmation": false, "phone": null, "phoneConfirmation": false, "name": "Fulano de Tal", "document": "12345678900", "status": "ACTIVE", "onboardingStep": "DONE", "onboardingLink": "https://cadastro.exemplo.com/abc123def456", "onboardingRequisitionId": 12345, "hasPin": true }, "accounts": [ { "id": "00000000-0000-0000-0000-000000000010", "bank": "000", "agency": "0001", "number": "1000001", "balance": 6.44, "status": "APPROVED", "monthlyGoal": 0, "monthlySpending": 3.10, "savingsProgress": 0 } ]}// PJ — entityType: "COMPANY"{ "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.<payload>.<signature>", "entityType": "COMPANY", "entity": { "id": "00000000-0000-0000-0000-000000000002", "email": "contato@empresa.com.br", "emailConfirmation": true, "phone": "+5511900000000", "phoneConfirmation": true, "name": "NOME EMPRESA LTDA", "document": "12345678000190", "status": "ACTIVE", "onboardingStep": "DONE", "onboardingLink": null, "onboardingRequisitionId": null, "hasPin": true }, "accounts": [ { "id": "00000000-0000-0000-0000-000000000020", "bank": "000", "agency": "0001", "number": "1000002", "balance": 224.93, "status": "APPROVED", "monthlyGoal": 0, "monthlySpending": 22.20, "savingsProgress": 0 } ]}URL base:
https://baas.staterpay.io