---
title: "Baixar documento"
description: "Sucesso retorna conteúdo binário, podendo ser PDF, HTML ou imagem. Não presumir JSON nem fixar application/pdf. 409 com precisa_verificacao=true indica verificação adicional e não gera cobrança do fornecedor. Respeitar Content-Type e tratar Content-Disposition como metadado não confiável. Não executar nem incorporar HTML do fornecedor em origem privilegiada."
lang: pt-BR
canonical: https://doc.apibrasil.io/apis/creditos/51021f3a-e05e-11f1-98bb-bc24118aba26
markdown: https://doc.apibrasil.io/apis/creditos/51021f3a-e05e-11f1-98bb-bc24118aba26.md
source: apibrasil-documentation
---

# Baixar documento

> Sucesso retorna conteúdo binário, podendo ser PDF, HTML ou imagem. Não presumir JSON nem fixar application/pdf.
> 409 com precisa_verificacao=true indica verificação adicional e não gera cobrança do fornecedor.
> Respeitar Content-Type e tratar Content-Disposition como metadado não confiável. Não executar nem incorporar HTML do fornecedor em origem privilegiada.

- **Categoria:** Antifraude e Compliance
- **Cobrança:** por consulta, só com o Bearer Token
- **Preço:** R$ 0,88 por consulta
- **Limite:** 990.000 por mês
- **Cadastro:** CPF ou CNPJ
- **Versão:** v2
- **Publicada por:** APIBrasil
- **Especificação OpenAPI:** https://doc.apibrasil.io/apis/creditos/51021f3a-e05e-11f1-98bb-bc24118aba26/openapi.json

## Como chamar

**Endereço base:** `https://gateway.apibrasil.io/api/v2`

Autenticação: cabeçalho `Authorization: Bearer <token>`. Nada além disso.

## Endpoints (1 endpoint)

### 1. POST /consulta/juridico-baixar-documento/credits — Baixar documento

Baixar documento.

Exige publicação e acesso ao produto. Preço de referência por consulta: R$ 0,88; a tarifa vigente é a do cadastro comercial.

O documento chega em data.conteudo_base64, acompanhado de data.content_type. Pode ser PDF, imagem ou HTML. Não execute HTML em contexto privilegiado. HTTP 409 indica necessidade de verificação adicional, sem cobrança.

Todos os parâmetros ficam no corpo JSON. Exemplos são sintéticos e não comprovam registros existentes. Erros e respostas inválidas não geram cobrança de consulta.

Campos no corpo JSON:
doc (string, obrigatório): Identificador opaco jm_doc_ recebido da consulta de documentos ou autos.
modo (string, opcional): Forma de apresentação do arquivo. Padrão: {"valor":"visualizar"}


EXEMPLO DE RESPOSTA: pedido inválido com HTTP 422, sem tarifa. O corpo de entrada principal é um exemplo válido separado. O exemplo de resposta não representa uma consulta real.

- **Método:** `POST`
- **Endereço:** `https://gateway.apibrasil.io/api/v2/consulta/juridico-baixar-documento/credits`
- **Versão da rota:** v2

**Cabeçalhos**

| Cabeçalho | Valor |
| --- | --- |
| `Authorization` | `Bearer $APIBRASIL_TOKEN` |
| `Content-Type` | `application/json` |

**Corpo da requisição**

```json
{
  "doc": "jm_doc_EXEMPLO_SINTETICO",
  "modo": "download"
}
```

**Em cURL**

```bash
curl -X POST "https://gateway.apibrasil.io/api/v2/consulta/juridico-baixar-documento/credits" \
  -H "Authorization: Bearer $APIBRASIL_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"doc":"jm_doc_EXEMPLO_SINTETICO","modo":"download"}'
```

**Resposta de exemplo, do catálogo**

```json
{
  "error": true,
  "status_code": 422,
  "data": [],
  "message": "Parametros invalidos para a consulta juridica. Voce nao foi tarifado.",
  "errors": {
    "campo": [
      "Exemplo ilustrativo: informe os parâmetros obrigatórios da operação."
    ]
  }
}
```

## Armadilhas: o que uma integração erra sem avisar

Apuradas nas respostas que o próprio catálogo publica. Em todas elas o código funciona no caminho feliz e falha em silêncio no resto:

1. **O erro chega no CORPO, com HTTP 200.**
   A resposta traz um campo `error` booleano e uma `message`. Checar só `response.ok` ou o status HTTP deixa passar falha como sucesso. Confira SEMPRE `error === false` antes de ler `data`.

2. **`balance`, `tax` e `extra_charges.total` são STRING em formato brasileiro — e o formato varia entre APIs.**
   Valores observados no catálogo: `"154,380"`, `"497,84"`, `"0,000"` e `"0.19"`. Vírgula em umas, ponto em outra; três casas decimais em umas, duas em outra. Em JavaScript, `parseFloat("154,380")` devolve `154` e perde os centavos sem erro nenhum, e `Number("154,380")` devolve `NaN`. Escreva um conversor que trate os dois separadores, e nunca use esses campos numa decisão financeira sem convertê-los.

3. **Cada chamada custa dinheiro.**
   Retry cego multiplica a conta. Nunca repita automaticamente um 4xx: parâmetro errado repetido continua errado e continua cobrando. Repita só tempo esgotado e 5xx, com recuo exponencial e um teto pequeno de tentativas.

4. **HTTP 402 é saldo insuficiente, e repetir não resolve.**
   É o único status que exige ação humana — recarregar. Trate-o como erro terminal, com mensagem própria, e não o jogue no mesmo balde dos 4xx genéricos.

5. **`extra_charges` cobra à parte do preço da consulta.**
   Quando o corpo pede serviços adicionais, a resposta traz cada um com o preço e um `total` que NÃO está incluso no valor base. Se você mostra custo a quem usa, some os dois.

## Ver também

- Especificação OpenAPI: https://doc.apibrasil.io/apis/creditos/51021f3a-e05e-11f1-98bb-bc24118aba26/openapi.json
- Catálogo de APIs: [Catálogo de APIs](https://doc.apibrasil.io/apis.md)
- SDKs oficiais: [SDKs oficiais](https://doc.apibrasil.io/sdks.md)
- Índice da documentação: https://doc.apibrasil.io/llms.txt
- Versão HTML desta página: https://doc.apibrasil.io/apis/creditos/51021f3a-e05e-11f1-98bb-bc24118aba26
