Instant CNPJ Verification for Brazilian Businesses

Brazil CNPJ Lookup API: Company Status, Legal Nature, CNAE Activities and Address

Table of Contents
Share this article

Updated November 2026

This guide shows how to look up a company in Brazil by CNPJ with Verifik’s API: the endpoint, its parameters, a request you can paste into a terminal, the documented response and errors, and what to watch for when you put it in production. Everything below comes from the official endpoint documentation.

Company records in Brazil

The Cadastro Nacional da Pessoa Jurídica (CNPJ) is the national register of legal entities kept by Brazil’s Receita Federal. The number has 14 digits: eight for the company root, four for the branch (0001 is the head office) and two check digits.

Verifik’s endpoint returns the business name, legal nature, opening date, address and the main and secondary economic activities coded under CNAE.

To follow this guide with your own integration, open a Verifik account and generate your access token.

How to call the Brazil CNPJ API

Endpoint: GET https://api.verifik.co/v2/br/company. Send your token in the Authorization: Bearer header. Parameters, as documented:

ParameterRequiredDescription
documentTypeYesDocument type. Allowed value: CNPJ.
documentNumberYes14-digit CNPJ without separators.

Request example with placeholder values (replace them with your user’s data):

curl --location --request GET 'https://api.verifik.co/v2/br/company?documentType=CNPJ&documentNumber=45990181000189' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <token>'

200 response from the docs (personal data masked):

{
  "data": {
    "address": {
      "city": "CAMPINAS",
      "complement": "KM 98",
      "district": "JARDIM EULINA",
      "state": "SP",
      "street": "ROD ANHANGUERA KM 98",
      "zipCode": "SN"
    },
    "businessName": "ROBERT BOSCH LIMITADA",
    "documentNumber": "45990181000189",
    "documentType": "CNPJ",
    "legalNature": "206-2 - Sociedade Empresária Limitada",
    "mainActivity": [
      {
        "code": "29.41-7-00",
        "description": "Fabricação de peças e acessórios para o sistema motor de veículos automotores"
      }
    ],
    "openingDate": "21/07/1966",
    "secondaryActivities": [
      {
        "code": "18.30-0-03",
        "description": "Reprodução de software em qualquer suporte"
      },
      {
        "code": "23.99-1-02",
        "description": "Fabricação de abrasivos"
      }
    ],
    "status": "ATIVA",
    "taxId": "45.990.181/0001-89",
    "tradeName": "",
    "type": "MATRIZ"
  },
  "signature": {
    "dateTime": "October 10, 2025 11:02 AM",
    "message": "Certified by Verifik.co"
  },
  "id": "2EM87"
}

A successful call returns HTTP 200 with a data object containing: address, businessName, documentNumber, documentType, legalNature, mainActivity, openingDate, secondaryActivities, status, taxId, tradeName, type. Every response also carries a signature (timestamp and “Certified by Verifik.co”) and a unique id you can store as evidence of the check.

Documented errors for /v2/br/company

  • 401 UNAUTHORIZED (“Authentication required”): the token is missing or invalid; check the Authorization header.
  • 404 NotFound (“Record not found”): no record was found; do not treat it as a match and route the case to review or ask for another document.
  • 500 InternalServerError (“Server error”): a server or source error; retry with backoff and log the request id.

Integration tips

  • Send the 14 digits without dots, slash or hyphen (the docs require no separators).
  • Branches have their own CNPJ (same root, different four-digit suffix). Make sure you query the entity you are contracting with.
  • Compare mainActivity with what the merchant says it does; a mismatch is a classic merchant-fraud signal.
  • Validate the two check digits locally to avoid paying for typos.

Personal data and terms of use

Company records can include personal data about partners, officers or representatives. Use the API only for a lawful purpose you can document, such as onboarding, fraud prevention or contract checks, collect consent where the local law requires it, and keep only the fields you need. Usage is governed by the smartCHECK terms and conditions.

Pricing

Each successful request consumes credits from your Verifik plan. Current plans and per-endpoint costs are on the smartCHECK pricing page.

Related guides and documentation

Start testing

Create a Verifik account to get your API token, or book a meeting if you want to review coverage and volumes with the team.

Miguel Treviño - Co-founder and CTO, Verifik

Frequently Asked Questions (FAQs)

➖

Does the CNPJ endpoint return economic activities?

Yes. The documented response includes mainActivity and secondaryActivities with CNAE code and description.

➕

Which endpoint looks up a company in Brazil?

GET https://api.verifik.co/v2/br/company, with the parameters documentType, documentNumber and your Bearer token.

➕

What errors can the Brazil company lookup endpoint return?

The documentation lists HTTP 401, 404, 500. In short, a 404 means no record was found; a 500 is a server or source error worth retrying later.

➕

How is the Brazil company lookup check priced?

Each successful request consumes credits from your Verifik plan. See the smartCHECK pricing page for current plans.

Explore more articles