Stater Platform

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ório
    string
    application/json
  • Content-TypeObrigatório
    string
    application/json
  • X-Tenant-IdObrigatório
    string (UUID)
    Identificador do tenant (cliente WL) sob o qual o usuário se autentica.

Body

  • documentObrigatório
    string
    CPF (11 dígitos) ou CNPJ (14 dígitos), apenas números.
  • passwordObrigatório
    string
    Senha 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

  • token
    string (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.id
    string (UUID)
    ID interno da entidade.
  • entity.email
    string
    Email cadastrado.
  • entity.emailConfirmation
    boolean
    Se o email foi confirmado.
  • entity.phone
    string | null
    Telefone no formato E.164 (+55...).
  • entity.phoneConfirmation
    boolean
    Se o telefone foi confirmado.
  • entity.name
    string
    Nome completo (PF) ou razão social (PJ).
  • entity.document
    string
    CPF ou CNPJ, apenas dígitos.
  • entity.status
    "ACTIVE" | "BLOCKED" | "CLOSED"
    Estado atual da conta.
  • entity.onboardingStep
    string
    Etapa do onboarding. "DONE" quando concluído.
  • entity.onboardingLink
    string | null
    URL para retomar o onboarding, quando incompleto.
  • entity.onboardingRequisitionId
    number | null
    ID da requisição de onboarding (auditoria).
  • entity.hasPin
    boolean
    Se o usuário tem PIN definido para operações sensíveis.
  • accounts
    array
    Contas associadas à entidade.
  • accounts[].id
    string (UUID)
    ID da conta.
  • accounts[].bank
    string
    Código do banco (3 dígitos).
  • accounts[].agency
    string
    Agência (4 dígitos).
  • accounts[].number
    string
    Número da conta.
  • accounts[].balance
    number
    Saldo atual em reais (não centavos).
  • accounts[].status
    "APPROVED" | "PENDING" | "REJECTED"
    Estado de provisionamento da conta.
  • accounts[].monthlyGoal
    number
    Meta de gastos mensal definida pelo usuário.
  • accounts[].monthlySpending
    number
    Gastos no mês corrente.
  • accounts[].savingsProgress
    number
    Progresso 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

On this page