# API de CRF/FGTS: regularidade do empregador na Caixa por CNPJ

> Consulta a situação do empregador perante o FGTS na Caixa e devolve a validade, o número e o PDF do Certificado de Regularidade do FGTS (CRF).

URL: https://docs.fiscalapi.com.br/docs/certidoes-federais/consultar-crf-fgts
Atualizado em 06/11/2026

`GET /api/consultar-crf-fgts` devolve a situação de um empregador perante o FGTS na Caixa Econômica Federal (`negativa` = regular, `positiva` = irregular) e, quando ele está regular, a validade, o número e o PDF do Certificado de Regularidade do FGTS (CRF), e conta como **1 consulta** (de R$ 0,025 a R$ 0,67, conforme o plano).

Estar regular no FGTS é condição para o empregador se relacionar com órgãos públicos e com instituições oficiais de crédito, por isso o CRF é pedido em licitações, contratos e crédito rural.

## ## Resumo

| Item                            | Valor                                                                    |
| ------------------------------- | ------------------------------------------------------------------------ |
| Endpoint                        | `GET https://api.fiscalapi.com.br/api/consultar-crf-fgts`                |
| Você envia                      | `cnpj` (14 dígitos) ou `cpf` do empregador                               |
| Órgão emissor                   | Caixa Econômica Federal                                                  |
| Volta                           | `status`, validade, emissão, número do CRF (`protocolo`) e PDF em base64 |
| Precisa de certificado digital? | Não. Basta o documento.                                                  |

## ## Quanto custa cada chamada

| Chamada                              | Conta como | Lite    | Starter | Pro      | Enterprise |
| ------------------------------------ | ---------- | ------- | ------- | -------- | ---------- |
| CRF/FGTS (`/api/consultar-crf-fgts`) | 1 consulta | R$ 0,67 | R$ 0,10 | R$ 0,065 | R$ 0,025   |

Valores por consulta dentro da franquia mensal; recarga a R$ 0,12 (Starter), R$ 0,07 (Pro) ou R$ 0,02 (Enterprise). Veja [Planos e limites](/docs/referencia/plans-and-limits).

* **Não é cobrada:** erro HTTP e `status: "erro"` (o portal da Caixa não respondeu).
* **É cobrada:** a situação devolvida, regular ou não.

## ## Autenticação

Envie sua chave no header `X-API-Key`. Veja [Autenticação](/docs/getting-started/authentication) para detalhes.

## ## Parâmetros de consulta

Você deve informar pelo menos um dos parâmetros `cpf` ou `cnpj`. Se ambos forem enviados, `cnpj` tem precedência.

| Name   | Type   | Required | Description                                                    |
| ------ | ------ | -------- | -------------------------------------------------------------- |
| `cpf`  | string | Não      | CPF do empregador pessoa física (somente números, 11 dígitos). |
| `cnpj` | string | Não      | CNPJ do empregador (somente números, 14 dígitos).              |

<Callout type="warn">
  Informe o CNPJ **completo**, com os 14 dígitos. O CNPJ básico (8 dígitos) faz o portal devolver a lista de estabelecimentos do grupo em vez da situação, e a consulta retorna `status: "erro"`.
</Callout>

## ## Exemplos

### ### CRF de um CNPJ

<Tabs items="[&#x22;curl&#x22;, &#x22;JavaScript&#x22;, &#x22;Python&#x22;, &#x22;PHP&#x22;, &#x22;C#&#x22;]">
  <Tab value="curl">
    ```bash
    curl -X GET "https://api.fiscalapi.com.br/api/consultar-crf-fgts?cnpj=12345678000195" \
      -H "X-API-Key: fapi_sua_chave_aqui"
    ```
  </Tab>

  <Tab value="JavaScript">
    ```javascript
    const response = await fetch(
      "https://api.fiscalapi.com.br/api/consultar-crf-fgts?cnpj=12345678000195",
      { headers: { "X-API-Key": "fapi_sua_chave_aqui" } }
    );
    const data = await response.json();
    console.log(data.result.status, data.result.validade_iso);
    ```
  </Tab>

  <Tab value="Python">
    ```python
    import requests

    response = requests.get(
        "https://api.fiscalapi.com.br/api/consultar-crf-fgts",
        headers={"X-API-Key": "fapi_sua_chave_aqui"},
        params={"cnpj": "12345678000195"},
    )
    data = response.json()
    print(data["result"]["status"], data["result"]["validade_iso"])
    ```
  </Tab>

  <Tab value="PHP">
    ```php
    $response = Http::withHeaders([
        'X-API-Key' => 'fapi_sua_chave_aqui',
    ])->get('https://api.fiscalapi.com.br/api/consultar-crf-fgts', [
        'cnpj' => '12345678000195',
    ]);
    $data = $response->json();
    ```
  </Tab>

  <Tab value="C#">
    ```csharp
    var client = new HttpClient();
    client.DefaultRequestHeaders.Add("X-API-Key", "fapi_sua_chave_aqui");
    var response = await client.GetAsync(
        "https://api.fiscalapi.com.br/api/consultar-crf-fgts?cnpj=12345678000195"
    );
    var data = await response.Content.ReadAsStringAsync();
    ```
  </Tab>
</Tabs>

## ## Resposta

### ### Campos de nível superior

| Campo           | Tipo    | Descrição                                                  |
| --------------- | ------- | ---------------------------------------------------------- |
| `request_id`    | string  | Identificador único da requisição (UUID).                  |
| `document`      | string  | Documento enviado na consulta.                             |
| `document_type` | string  | Tipo do documento: `cpf` ou `cnpj`.                        |
| `cached`        | boolean | Indica se o resultado veio do cache (TTL de 24h).          |
| `source_status` | object  | Status da fonte (`status`, `error_code`, `error_message`). |
| `result`        | object  | Dados da regularidade.                                     |

### ### Campos de `result`

| Campo          | Tipo   | Descrição                                                                                                                                                                                                                      |
| -------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `tipo`         | string | Sempre `crf_fgts` neste endpoint.                                                                                                                                                                                              |
| `status`       | string | Status normalizado. Veja tabela abaixo.                                                                                                                                                                                        |
| `status_raw`   | string | Texto original retornado pela Caixa.                                                                                                                                                                                           |
| `validade`     | string | Último dia de validade do CRF (`DD/MM/AAAA`). Vazio quando não há certificado.                                                                                                                                                 |
| `validade_iso` | string | Mesma data em ISO 8601 (`YYYY-MM-DD`).                                                                                                                                                                                         |
| `emissao`      | string | Data de emissão do CRF (`DD/MM/AAAA`).                                                                                                                                                                                         |
| `emissao_iso`  | string | Data de emissão em ISO 8601 (`YYYY-MM-DD`).                                                                                                                                                                                    |
| `protocolo`    | string | Número do Certificado de Regularidade do FGTS.                                                                                                                                                                                 |
| `pdf_base64`   | string | Certificado em PDF (base64), quando o empregador está regular. Vem preenchido no `/api/consultar-crf-fgts`; nas consultas consolidadas (`/api/certidoes-todas`, `/api/perfil-produtor`) vem vazio, para não inflar a resposta. |
| `orgao`        | string | Sempre `CEF` neste endpoint.                                                                                                                                                                                                   |

### ### Valores de status do CRF/FGTS

| Status     | Significado                                                                           |
| ---------- | ------------------------------------------------------------------------------------- |
| `negativa` | Empregador **regular perante o FGTS**. Traz validade e número do CRF.                 |
| `positiva` | Empregador **não está regular** perante o FGTS. Não há certificado a emitir.          |
| `erro`     | Não foi possível obter a situação. Veja `status_raw` e `source_status` para o motivo. |

### ### Exemplo de resposta

```json
{
  "request_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "document": "12345678000195",
  "document_type": "cnpj",
  "cached": false,
  "source_status": {
    "status": "success",
    "error_code": "",
    "error_message": ""
  },
  "result": {
    "tipo": "crf_fgts",
    "status": "negativa",
    "status_raw": "REGULAR perante o FGTS",
    "validade": "22/08/2026",
    "validade_iso": "2026-08-22",
    "emissao": "24/07/2026",
    "emissao_iso": "2026-07-24",
    "protocolo": "2026010112000000000001",
    "orgao": "CEF"
  }
}
```

<Callout type="info">
  O `pdf_base64` traz o Certificado de Regularidade do FGTS em PDF, montado a partir da página oficial de impressão da Caixa — o portal não disponibiliza o certificado como arquivo. O conteúdo é o da Caixa, com o número do certificado para conferência de autenticidade em [www.caixa.gov.br](http://www.caixa.gov.br).
</Callout>

## ## Códigos de erro

| Código                 | HTTP Status | Descrição                                               |
| ---------------------- | ----------- | ------------------------------------------------------- |
| `PARAMETRO_AUSENTE`    | 400         | Nenhum documento (`cpf` ou `cnpj`) foi informado.       |
| `LIMITE_ATINGIDO`      | 402         | Cota mensal do plano esgotada e sem recarga.            |
| `RATE_LIMIT_EXCEEDED`  | 429         | Rate limit do plano excedido.                           |
| `ERRO_INTERNO`         | 500         | Erro interno no servidor.                               |
| `FEATURE_UNDER_REVIEW` | 503         | Funcionalidade temporariamente desativada para revisão. |

## ## Integração com ERPs

A chamada é um `GET` com o header `X-API-Key`, em geral na homologação de fornecedores e prestadores ou antes de uma operação de crédito. Não existe conector pronto.

| Sistema                      | Como chamar a API REST                                                                                      |
| ---------------------------- | ----------------------------------------------------------------------------------------------------------- |
| TOTVS Protheus               | Num fonte ADVPL/TLPP, com a classe `FWRest` ou a função `HttpGet`.                                          |
| SAP (ECC, S/4HANA)           | Em ABAP, com `cl_http_client`, ou por um fluxo no SAP Integration Suite.                                    |
| Sankhya, Senior, Omie, Bling | Por um serviço intermediário (script, n8n, Make) que chama a FiscalAPI e grava o resultado pela API do ERP. |
| Odoo                         | Num módulo próprio em Python, com `requests`.                                                               |

## ## Perguntas frequentes

### ### Existe API de CRF do FGTS?

Sim. `GET /api/consultar-crf-fgts` recebe o CNPJ do empregador e devolve em JSON a situação perante o FGTS na Caixa e, se ele estiver regular, a validade, o número e o PDF do CRF.

### ### Quanto custa a consulta do CRF por API?

1 consulta por chamada: R$ 0,025 no Enterprise, R$ 0,065 no Pro, R$ 0,10 no Starter e R$ 0,67 no Lite, dentro da franquia. Erro não é cobrado.

### ### Por que preciso mandar o CNPJ completo?

Com o CNPJ básico (8 dígitos), o portal da Caixa devolve a lista de estabelecimentos do grupo em vez da situação, e a consulta volta `status: "erro"`, sem cobrança.
