---
title: "Obter empresa brasileira (OAuth)"
method: GET
path: "/api/v1/brazilian_companies/{id}"
tags: ["Empresas Brasileiras"]
---

# Obter empresa brasileira (OAuth)

`GET /api/v1/brazilian_companies/{id}`

## Request

- Base URL: `https://app.oportunidados.com.br`
- URL: `https://app.oportunidados.com.br/api/v1/brazilian_companies/{id}`
- Auth: OAuth 2 (authorization code, authorization URL `/oauth/authorize`, token URL `/oauth/token`; client credentials, token URL `/oauth/token`, scopes: `brazilian_companies_read`)

Ficha OAuth de uma empresa brasileira pelo CNPJ: `company`, `socios` e `extra_contacts`. Sem chave `contexto`. Escopo `brazilian_companies_read`. 401 sem token e 403 de escopo insuficiente vêm do `doorkeeper_authorize!` e respondem `head`, sem corpo. 403 com JSON é inelegibilidade ou quota mensal (`OauthEligibility` com `OAUTH_ELIGIBILITY_ENFORCED=on`).

## Response `200`

sucesso

- object
  - `company` OauthCompany, required
    - `cnpj` string, required: CNPJ da empresa, 14 posições, zero-padded
    - `raiz_cnpj` string, required: Raiz do CNPJ (8 primeiros caracteres, zero-padded)
    - `razao_social` string, nullable, required: Razão social
    - `nome_fantasia` string, nullable, required: Nome fantasia
    - `cnae_fiscal` string, nullable, required: CNAE fiscal principal
    - `cnaes_secundarios` string[], nullable, required: CNAEs secundários (jsonb)
    - `data_inicio_atividade` string, date, nullable, required: Data de início de atividade
    - `situacao_cadastral` string, nullable, required: Situação cadastral
    - `data_situacao` string, date, nullable, required: Data da situação cadastral
    - `motivo_situacao` string, nullable, required: Motivo da situação cadastral (traduzido)
    - `situacao_especial` integer, nullable, required: Código de situação especial
    - `data_situacao_especial` string, date, nullable, required: Data da situação especial
    - `natureza_juridica_codigo` string, nullable, required: Código da natureza jurídica
    - `natureza_juridica` string, nullable, required: Natureza jurídica (traduzida)
    - `capital_social` number, float, nullable, required: Capital social
    - `faturamento` string, required: Faixa de faturamento (`DataMaps::CnpjRevenueRanges[porte]`, ou "Não disponível")
    - `porte` string, nullable, required: Porte da empresa
    - `opc_simples` string, nullable, required: Optante pelo Simples Nacional
    - `data_opc_simples` string, date, nullable, required: Data de opção pelo Simples
    - `data_exc_simples` string, date, nullable, required: Data de exclusão do Simples
    - `opc_mei` string, nullable, required: Optante pelo MEI
    - `data_opc_mei` string, date, nullable, required: Data de opção pelo MEI
    - `data_exc_mei` string, date, nullable, required: Data de exclusão do MEI
    - `regime_tributario` union, required: Regime tributário traduzido (`DataMaps::CnpjFiscalRegimes`); nil se vazio; código desconhecido devolve o Integer original (fallback)
      - string, nullable
      - integer
    - `ano_regime_tributario` integer, nullable, required: Ano do regime tributário
    - `matriz_filial` string, nullable, required: Tipo de estabelecimento
    - `tipo_logradouro` string, nullable, required: Tipo de logradouro
    - `logradouro` string, nullable, required: Nome do logradouro
    - `numero` string, nullable, required: Número
    - `complemento` string, nullable, required: Complemento
    - `bairro` string, nullable, required: Bairro
    - `municipio` string, required: Nome do município
    - `cod_municipio` string, nullable, required: Código SIAFI do município
    - `uf` string, nullable, required: UF
    - `cep` string, nullable, required: CEP
    - `ddd_1` string, nullable, required: DDD do telefone 1
    - `telefone_1` string, nullable, required: Telefone 1
    - `ddd_2` string, nullable, required: DDD do telefone 2
    - `telefone_2` string, nullable, required: Telefone 2
    - `ddd_3` string, nullable, required: DDD do telefone 3
    - `telefone_3` string, nullable, required: Telefone 3
    - `email` string, nullable, required: Email
    - `has_email` boolean, nullable, required: Possui email cadastrado
    - `has_website` boolean, nullable, required: Possui website cadastrado
    - `numero_funcionarios` string: Texto de `employees_count_info`. Chave presente só quando EmployeeCountFeature.available_for_company? é verdadeiro.
  - `socios` OauthSocio[], required
    - `nome_socio` string, nullable, required: Nome do sócio
    - `cnpj_cpf_socio` string, nullable, required: Documento do sócio. Pessoa física: CPF mascarado no formato da Receita (`***456789**`) ou null; o CPF completo nunca sai. Pessoa jurídica: CNPJ completo
    - `tipo_socio` string, nullable, required: Tipo de sócio (código)
    - `qualificacao_socio_code` string, nullable, required: Código de qualificação
    - `qualificacao_socio` string, nullable, required: Qualificação do sócio (traduzida)
    - `data_entrada` string, date-time, nullable, required: Data de entrada na sociedade. `BrazilianCompaniesSociosPg` converte a coluna de texto para `:datetime` (`brazilian_companies_socios_pg.rb:30`), então o valor serializado é ISO8601 com hora — diferente do `socio` da ficha por chave
    - `faixa_etaria` string, nullable, required: Faixa etária
    - `nome_representante` string, nullable, required: Nome do representante legal
    - `cpf_representante` string, nullable, required: CPF do representante legal, mascarado no formato da Receita (`***456789**`) ou null; o CPF completo nunca sai
  - `extra_contacts` OauthExtraContact[], required
    - `cnpj` string, nullable, required: CNPJ de origem do contato: a consulta traz os contatos de todos os estabelecimentos da raiz e os que a sua empresa cadastrou
    - `tipo` string, nullable, required: Tipo de contato: `email`, `phone` ou `url` (`field_name`)
    - `url_type` string, nullable, required: Para `url`: `website` ou o nome da rede (ex.: `facebook`, `instagram`, `linkedin`); null para e-mail e telefone (`url_type`)
    - `contato` string, nullable, required: Valor do contato (`value`)

## Other responses

- `401`: não autorizado — sem corpo (Doorkeeper responde head)
- `403`: proibido
- `404`: não encontrado
- `503`: base sendo atualizada

---

[API](https://skmtc.dev/oportunidados/apis/api-de-dados-oportunidados-v1.md) · [All operations](https://skmtc.dev/oportunidados/apis/api-de-dados-oportunidados-v1/llms.txt) · [OpenAPI document](https://skmtc.dev/oportunidados/apis/api-de-dados-oportunidados-v1/revisions/0af33d72cdb4?raw)
