Criar conta grátis

Documentação
Ver em Markdown

Empresa estrangeira

Empresa estrangeira

!Ainda não está aberto para venda. O módulo aparece na tabela de preços com preço e com o selo "Em breve". O contrato abaixo é o que o backend já emite, para você planejar a integração.

O módulo kyb_estrangeira verifica a empresa de fora do Brasil que não tem CNPJ. A empresa entra na criação da sessão pela API, no bloco foreign_entity: pelo identificador de entidade legal (LEI, o código de 20 caracteres da norma ISO 17442) ou, sem ele, pelo nome e pelo país. O país vem da mesma lista fechada do painel.

Erros do bloco. Flow com o módulo e sem o bloco responde 422 foreign_entity_required; o bloco num flow sem o módulo, 422 foreign_entity_not_supported; LEI com dígito de controle errado, 422 foreign_entity_lei_invalid; beneficiários acima do teto, 422 foreign_entity_too_many_owners. Chave desconhecida no bloco responde 400 unknown_foreign_entity_key, e num beneficiário, 400 unknown_beneficial_owner_key. O link hospedado não leva a empresa: o flow com este módulo só cria sessão pela API.

// POST /v1/verification-sessions
{ "flow_id": "flow_...", "reference_id": "cliente-123",
  "foreign_entity": {
    "lei": "5493001KJTIIGC8Y1R12",            // ou "name" + "country" (ex.: "GB"), nunca os dois
    "beneficial_owners": [ { "name": "Nome da pessoa" } ] } }   // opcional, até 20 pessoas
// kyb_estrangeira no check_details
{ "module": "kyb_estrangeira", "passed": true, "outcome": "approved",
  "data": {
    "outcome": "encontrada",                  // ou "nao_encontrada_no_indice", "candidatos"
    "lookup_by": "lei",                       // ou "name"
    "index_published_at": "2026-09-26T00:00:00Z",   // data da publicação do índice que respondeu
    "reason": "foreign_entity_not_in_index",  // só quando vai para revisão
    "entity": { "lei": "...", "legal_name": "...", "country": "GB",
                "registration_status": "ISSUED", "entity_status": "ACTIVE",
                "parent_is_beneficial_owner": false,
                "direct_accounting_parent": { "kind": "entity", "lei": "...", "legal_name": "..." },
                "ultimate_accounting_parent": { "kind": "reporting_exception", "reason": "NATURAL_PERSONS" } },
    "candidates": [ { "lei": "...", "legal_name": "...", "country": "GB" } ],  // só na busca por nome
    "candidates_total": 3,                    // quantos o índice achou (a lista traz os primeiros)
    "declared_beneficial_owners_count": 1,
    "declared_beneficial_owners": { ... },    // a triagem nas listas, quando houve declaração
    "sanctions_coverage": { "consulted": [ ... ], "not_consulted": [ ... ] } } }

Como ler. encontrada com registro emitido e entidade ativa aprova. Registro vencido, candidatos por nome e beneficiário declarado com alerta vão para revisão humana com a evidência, e nunca reprovam sozinhos. nao_encontrada_no_indice também vai para revisão: nem toda empresa tem LEI, e não constar no índice não quer dizer que a empresa não existe. Sem LEI, a sua equipe escolhe o candidato certo ou pede o identificador ao cliente. Quando o índice não responde, o módulo fica pendente, a verificação vai para revisão e o módulo não é cobrado.

O que o módulo não diz. As controladoras direta e final vêm da consolidação contábil que a própria empresa declara ao índice, e controladora contábil não é beneficiário final: quando o controle é de pessoas naturais, o índice registra uma exceção de reporte, não os nomes. Por isso os beneficiários finais pessoa natural entram pelo campo beneficial_owners, declarados por você, e passam pelas listas de sanções e de pessoas expostas politicamente. O bloco sanctions_coverage diz quais listas foram consultadas e quais não foram.

Pronto para integrar? A chave de sandbox sai no painel, logo depois do cadastro. Criar conta grátis