Pular para o conteúdo principal

Abertura de Conta — Pessoa Jurídica (PJ)

Este guia mostra o passo a passo para abrir uma conta de pessoa jurídica. A diferença em relação ao PF: a biometria facial é exigida de cada sócio (ou diretor estatutário, em cooperativas), você deve enviar os PDFs societários exigidos pelo tipo da empresa, e toda abertura PJ passa por análise prévia de um analista antes da conta ser aberta.

Fluxo

Passo 1: Criar a accreditation

Request

curl -X POST "https://tenant.api.corpx.com/v1/accreditations/pj" \
-H "Authorization: Bearer {token}" \
-H "X-Tenant-Id: tenant-suaempresa" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: onboard-empresa-9876" \
-d '{
"company": {
"legalName": "Empresa Exemplo LTDA",
"tradeName": "Exemplo",
"cnpj": "12345678000199",
"email": "financeiro@exemplo.com",
"phone": "+5511333334444",
"monthlyRevenue": 150000.00,
"legalForm": "ltda"
},
"address": {
"zipCode": "01310100",
"street": "Avenida Paulista",
"number": "1000",
"complement": "Conjunto 101",
"neighborhood": "Bela Vista",
"city": "São Paulo",
"state": "SP",
"cityIbgeCode": "3550308"
},
"partners": [
{
"name": "João Souza",
"cpf": "11122233344",
"birthDate": "1985-03-10",
"email": "joao@exemplo.com",
"phone": "+5511988887777",
"ownershipPercent": 60,
"isAdministrator": true
},
{
"name": "Ana Lima",
"cpf": "55566677788",
"birthDate": "1992-11-02",
"email": "ana@exemplo.com",
"phone": "+5511977776666",
"ownershipPercent": 40,
"isAdministrator": false
}
]
}'

Parâmetros

CampoTipoObrigatórioDescrição
company.legalNamestringSimRazão social.
company.tradeNamestringSimNome fantasia. O liquidante exige o campo para CNPJ. Se a empresa não tiver nome fantasia registrado, repita a razão social.
company.cnpjstringSimCNPJ (14 dígitos, sem pontuação).
company.email / company.phonestringSimContato da empresa.
company.monthlyRevenuenumberNãoFaturamento mensal declarado (BRL).
company.legalFormstringNãoTipo societário: mei, ltda (default), sa, cooperative. Define os PDFs obrigatórios.
address.*objectSimEndereço da empresa. neighborhood (bairro) é obrigatório (ou district legado). cityIbgeCode com 7 dígitos (código IBGE).
partners[]arraySimQuadro societário (ou diretores estatutários se legalForm=cooperative). Pelo menos um com isAdministrator: true.
partners[].name / cpf / birthDateSimDados de cada sócio/diretor. A biometria facial será exigida de todos.
partners[].email / phonestringSimContato — usado para a jornada de biometria.
partners[].ownershipPercentnumberSimParticipação societária (%).
partners[].isAdministratorbooleanSimSe o sócio/diretor é administrador.
partners[].biometryobjectNãoSomente para o fluxo de biometria própria.
callbackUristringNãoPara onde levar cada sócio de volta ao concluir a biometria. Exige cadastro prévio junto ao suporte — ver Retorno ao seu app.

Limites PIX iniciais são aplicados automaticamente com valores padrão conservadores. Alteração de limite (aumento ou redução) exige solicitação manual ao suporte.

Cooperativa

Com legalForm=cooperative, informe em partners[] os diretores estatutários (não a lista completa de cooperados). Os documentos obrigatórios são os mesmos de sa.

Resposta (201)

{
"accreditationId": "acr_1a2b3c4d5e6f",
"type": "pj",
"status": "PENDING_BIOMETRY",
"legalForm": "ltda",
"requiredDocumentKinds": ["company_articles", "company_proof_of_address"],
"missingDocumentKinds": ["company_articles", "company_proof_of_address"],
"documents": [],
"persons": [
{
"personId": "prs_3b1c9a7f2e4d",
"cpf": "11122233344",
"name": "João Souza",
"biometryStatus": "PENDING",
"biometryLink": "https://cadastro.unico.app/process/abc111...",
"linkExpiresAt": "2026-07-14T18:00:00Z"
},
{
"personId": "prs_8d2f4e6a1c0b",
"cpf": "55566677788",
"name": "Ana Lima",
"biometryStatus": "PENDING",
"biometryLink": "https://cadastro.unico.app/process/abc222...",
"linkExpiresAt": "2026-07-14T18:00:00Z"
}
],
"createdAt": "2026-07-07T18:00:00Z"
}
Conta ainda não vinculada

Enquanto PENDING_BIOMETRY, o CNPJ não é atrelado ao tenant e o POST não deduplica — repetir com o mesmo CNPJ cria outra accreditation. Cancele pendências abandonadas com POST /v1/accreditations/{id}/cancel.

Link assíncrono

Os biometryLink são gerados em segundos, mas de forma assíncrona — podem vir ausentes na resposta do POST. Nesse caso, receba cada um pelo webhook accreditation.biometry.link.created (emitido por sócio) ou consulte o GET logo em seguida.

Passo 2: Enviar os PDFs societários

Depois do 201, suba os documentos obrigatórios do legalForm (sempre application/pdf):

legalFormObrigatóriosOpcionais
mei, ltdacompany_articles, company_proof_of_addressbusiness_license, regulatory_license, other
sa, cooperativeos de LTDA + cnpj_card, financial_statementsidem
  • Kinds tipados: um por accreditation (re-upload substitui).
  • other: vários arquivos; fileName obrigatório.
  • A validade/atualidade dos documentos (ex.: comprovante de endereço) é conferida pelo operador na análise prévia.
curl -X POST "https://tenant.api.corpx.com/v1/accreditations/acr_1a2b3c4d5e6f/documents" \
-H "Authorization: Bearer {token}" \
-H "X-Tenant-Id: tenant-suaempresa" \
-H "Content-Type: application/json" \
-d '{
"kind": "company_articles",
"fileName": "contrato-social.pdf",
"contentType": "application/pdf"
}'

A resposta traz uploadUrl (PUT, 1h). Repita para cada kind obrigatório. O GET da accreditation mostra documents[] e missingDocumentKinds[].

Depois do PUT, o arquivo passa por antivírus e sanitização (o PDF é rasterizado) antes de ser arquivado — leva poucos segundos. Um arquivo que não seja PDF de verdade, ou que esteja infectado ou corrompido, é recusado e aparece como recusado na análise do operador; nesse caso, repita o upload com o arquivo correto.

Cada sócio recebe o seu próprio biometryLink e deve completar a jornada individualmente. A accreditation entra em review quando todos os sócios tiverem biometria aprovada (os PDFs podem ser enviados em paralelo).

  • Cada link expira em 7 dias — acompanhe linkExpiresAt por pessoa.
  • O evento accreditation.biometry.link.created é emitido uma vez por sócio.
  • Sócios pendentes aparecem com biometryStatus: "PENDING" no GET.

Passo 4: Análise prévia

Com todas as biometrias aprovadas, a accreditation entra em PENDING_REVIEWtoda PJ passa por análise prévia. Idealmente os PDFs obrigatórios já foram enviados (missingDocumentKinds vazio); o analista vê o que falta no detalhe. Você recebe accreditation.updated na entrada e na saída dessa etapa. O prazo típico é de 1 dia útil.

  • Aprovada (docs completos) → INTEGRATING e a conta é aberta no liquidante.
  • Aprovada com override — se ainda faltarem PDFs, o operador pode forçar com forceIncompleteDocuments: true + reason; fica registrado em documentsOverride* na accreditation.
  • Rejeitada → status muda para FAILED com errorReason explicando o motivo.

Passo 5: Conta pronta

Quando a conta é aberta você recebe accreditation.active. O accountId está vinculado ao seu tenant e pronto para operar.

Retry por sócio

Se o link de um sócio expirou ou a captura dele falhou, gere um novo link apenas para aquele sócio — os demais não são afetados:

curl -X POST "https://tenant.api.corpx.com/v1/accreditations/acr_1a2b3c4d5e6f/persons/55566677788/retry" \
-H "Authorization: Bearer {token}" \
-H "X-Tenant-Id: tenant-suaempresa"

Cancelar

Enquanto o status for PENDING_BIOMETRY, você pode cancelar a accreditation inteira:

curl -X POST "https://tenant.api.corpx.com/v1/accreditations/acr_1a2b3c4d5e6f/cancel" \
-H "Authorization: Bearer {token}" \
-H "X-Tenant-Id: tenant-suaempresa" \
-H "Content-Type: application/json" \
-d '{"reason":"company abandoned onboarding"}'

Consulta

curl -X GET "https://tenant.api.corpx.com/v1/accreditations/pj?document=12345678000199" \
-H "Authorization: Bearer {token}" \
-H "X-Tenant-Id: tenant-suaempresa"

A resposta traz o status agregado e o detalhe por sócio (biometryStatus, link e expiração de cada um), permitindo que você monte uma tela de acompanhamento no seu sistema.