Cadastrar pessoa jurídica
POST /companies — cria PJ no tenant, devolve JWT e onboardingLink para KYC empresarial.
Cadastrar pessoa jurídica
Cria uma pessoa jurídica (empresa) no tenant, devolve um JWT pronto pra uso e um onboardingLink pra completar o KYC empresarial. A entidade começa com status=PENDING e só passa a operar Pix/TEF/Cobranças após concluir o cadastro no link.
Endpoint público — não requer Authorization, só X-Tenant-Id pra identificar a marca. document é o CNPJ (14 dígitos, apenas números). A resposta já traz um JWT válido (type=COMPANY, expira em 1 hora) — você pode usar imediatamente, mas até o KYC concluir (status=PENDING, onboardingStep≠DONE) operações de Pix/TEF/Cobranças ficam bloqueadas. O onboarding de PJ inclui dados dos sócios e pode levar mais tempo que o de PF. Depois do KYC, o login posterior é feito por POST /authenticate.
Headers
- AcceptObrigatóriostringapplication/json
- Content-TypeObrigatóriostringapplication/json
- X-Tenant-IdObrigatóriostring (UUID)Identificador do tenant que vai receber a nova empresa.
Body
- nameObrigatóriostringRazão social da empresa.
- documentObrigatóriostringCNPJ (14 dígitos, apenas números).
- emailObrigatóriostringE-mail de login da empresa. Único dentro do tenant.
- passwordObrigatóriostringSenha de acesso da empresa — usada depois em /authenticate.
Exemplo de requisição
curl -X POST https://baas.staterpay.io/companies \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -H "X-Tenant-Id: 00000000-0000-0000-0000-000000000000" \ -d '{ "name": "NOME EMPRESA LTDA", "document": "12345678000190", "email": "contato@exemplo.com.br", "password": "12345678" }'Resposta
- companyobjectDados da empresa criada.
- company.idstring (UUID)ID interno da empresa.
- company.emailstringE-mail informado (eco).
- company.emailConfirmationbooleanSe o e-mail já foi confirmado. Inicialmente false.
- company.phonestring | nullTelefone. null no cadastro inicial — definido durante o KYC.
- company.phoneConfirmationbooleanSe o telefone foi confirmado.
- company.namestringRazão social informada (eco).
- company.documentstringCNPJ informado (eco).
- company.status"PENDING" | "ACTIVE" | "BLOCKED"Estado da empresa. Sempre PENDING na criação.
- company.onboardingStep"PENDING" | "IN_PROGRESS" | "DONE"Etapa atual do KYC. Inicialmente PENDING.
- company.onboardingLinkstring (URL)URL para a empresa completar o cadastro/KYC empresarial (incluindo sócios). Redirecione/envie pra ela.
- company.onboardingRequisitionIdnumberID da requisição de onboarding no provider de KYC.
- company.hasPinbooleanSe a empresa já definiu PIN operacional. Inicialmente false.
- tokenstring (JWT)JWT já pronto pra uso em chamadas autenticadas (Authorization: Bearer <token>). Payload tem type="COMPANY" e expira em 1 hora.
{ "company": { "id": "00000000-0000-0000-0000-0000000000a2", "email": "contato@exemplo.com.br", "emailConfirmation": false, "phone": null, "phoneConfirmation": false, "name": "NOME EMPRESA LTDA", "document": "12345678000190", "status": "PENDING", "onboardingStep": "PENDING", "onboardingLink": "https://cadastro.example.com/00000000000000000000000000000000", "onboardingRequisitionId": 0, "hasPin": false }, "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.<payload>.<signature>"}https://baas.staterpay.io