Software houses e ERPs
Enriqueça seu produto com consultas rurais embutidas, sem montar toda a cadeia de dados do zero.
Tirar todos os itens do carrinho?
Umbrella Technology
Integre consultas de imóveis rurais ao seu sistema, ERP ou fluxo operacional — com dados padronizados, autenticação segura e suporte da nossa equipe técnica.
Documentação pública para integrar dados do CAR (Cadastro Ambiental Rural) em sistemas externos. Cole seu token abaixo e execute qualquer endpoint direto desta página.
Comercial: +55 (74) 98123-7855
A API Umbrella foi pensada para empresas que precisam consultar e cruzar informações de imóveis rurais sem depender de processos manuais. Você conecta seu software à nossa infraestrutura e recebe respostas prontas para uso — seja em painéis internos, CRMs, rotinas de análise ou produtos próprios.
Enriqueça seu produto com consultas rurais embutidas, sem montar toda a cadeia de dados do zero.
Agilize triagens e validações com dados consistentes, integrados ao seu fluxo de trabalho.
Reduza retrabalho em atendimentos recorrentes e padronize a qualidade das informações entregues.
Busque informações de imóveis rurais e vínculos documentais conforme a necessidade do seu negócio.
Documentação e ambiente de testes após a liberação comercial — nossa equipe orienta a implementação.
Créditos pré-pagos e consumo transparente, alinhados ao volume real de consultas da sua operação.
Acompanhamento na ativação, dúvidas técnicas e evolução conforme novas consultas forem disponibilizadas.
O acesso à API é liberado mediante contratação comercial. Entre em contato, conte um pouco sobre seu caso de uso e retornamos com condições, escopo das consultas disponíveis e próximos passos para homologação e produção.
Fale diretamente com a Umbrella. Sem formulário longo — é só chamar no WhatsApp que conversamos sobre sua necessidade e como a API pode encaixar no seu projeto.
+55 (74) 98123-7855
O token fica só na aba do navegador (sessionStorage) e nunca é enviado
para a Umbrella fora das chamadas que você disparar. Ainda não tem token?
Solicite a liberação no painel.
Os valores abaixo são reservados: respondem com dados fixos, não consultam a base
e não debitam saldo nem contam nos seus limites. Toda resposta de
sandbox traz o campo "sandbox": true. Use-os à vontade em ambiente de
desenvolvimento e em CI.
| Valor | Onde usar | Resposta |
|---|---|---|
ZZ-0000000-SANDBOXCARBASICO0000000000000000 |
CAR básico, completo e recibo | 200 dados de exemplo (recibo devolve um PDF real) |
ZZ-0000000-SANDBOXNAOEXISTE0000000000000000 |
CAR básico, completo e recibo | 404 CAR_NAO_ENCONTRADO |
ZZ-0000000-SANDBOXSEMSALDO00000000000000000 |
CAR básico, completo e recibo | 402 SALDO_INSUFICIENTE |
00000000000 |
Proprietário | 200 dois CARs, truncado: false |
00000000000000 |
Proprietário | 200 truncado: true |
11111111111 |
Proprietário | 404 CPF_CNPJ_NAO_ENCONTRADO |
A autenticação continua valendo no sandbox: um token inválido devolve
401 normalmente, para você exercitar esse caminho também.
/docs/openapi-api-rural.v1.json
·
/llms.txt
A API Rural fornece acesso direto aos dados de imóveis rurais por código CAR ou por CPF/CNPJ. A maioria das respostas é em JSON; o endpoint de recibo entrega o PDF do CAR diretamente no corpo da resposta. Projetada para integrações backend, aplicações web e fluxos internos de análise.
| Endpoint | Preço vigente (HTTP 200) | Formato |
|---|---|---|
GET /v1/car/{codigoCar} |
R$ 1,00 | JSON |
GET /v1/car/{codigoCar}/completo |
R$ 2,30 | JSON |
GET /v1/car/{codigoCar}/recibo |
R$ 11,00 | PDF (application/pdf) |
GET /v1/proprietario/{cpfCnpj} |
R$ 2,60 | JSON |
GET /v1/saldo |
Grátis | JSON |
GET /v1/historico |
Grátis | JSON |
GET /v1/limites · PUT /v1/limites |
Grátis | JSON |
GET /v1/uso |
Grátis | JSON |
GET /v1/recarga/faixas |
Grátis | JSON |
POST /v1/recarga |
Grátis | JSON (PIX) |
GET /v1/recarga/{id} |
Grátis | JSON |
GET /v1/recargas |
Grátis | JSON |
Base URL: https://api.umbrellatecnologia.com/v1 (ou o domínio informado no seu contrato).
Preços da tabela = vigentes (contas novas e após qualquer recarga).
Contas antigas ainda sem recarga podem estar em tabela legada
(R$ 0,50 / R$ 1,50 / R$ 1,50 / R$ 10,00) até a próxima recarga —
o preço efetivo da sua conta vem em GET /v1/saldo → precos.
Authorization em cada chamada.Authorization: Bearer umb_token_exemplo_xxxxxxxxx
Esta API segue o modelo pré-pago (pay as you go). A cobrança ocorre apenas em respostas
HTTP 200 dos endpoints de consulta (CAR, proprietário e recibo),
de acordo com o preço de cada um.
Os endpoints de apoio (/v1/saldo, /v1/historico,
/v1/limites, /v1/uso, /v1/recarga*)
são gratuitos e cobrem o que antes exigia o
dashboard da API:
consultar saldo, histórico, ajustar limites e adicionar créditos via PIX.
Rate limit: até 10 requisições por segundo por token (inclui endpoints de apoio). Erros (4xx/5xx) não debitam saldo. Recarga mínima: R$ 500,00.
/v1/car/{codigoCar}
R$ 1,00
Retorna dados básicos do CAR (sem lista de proprietários)
| Nome | Obrigatório | Tipo | Descrição |
|---|---|---|---|
codigoCar |
Sim | string | Código CAR no formato UF-CodigoMunicipio-Hash. |
{
"success": true,
"cache": true,
"dados": {
"codigoCar": "UF-1234567-ABCD.EF12.3456.7890.ABCD.EF12.3456.7890",
"nomeImovel": "FAZENDA MODELO A",
"areaTotalHa": "150,0000",
"dataCadastro": "01/02/2024 00:00:00",
"matriculaNumero": "12345",
"matriculaData": "20/01/2024",
"matriculaCartorio": "Cartório Modelo/UF",
"tipoImovel": "Imóvel Rural",
"municipio": "Cidade Exemplo",
"uf": "ESTADO EXEMPLO",
"codigoProtocolo": "UF-1234567-PROT.0001.0002.0003.0004.0005.0006.0007",
"latitude": "10°00'00,00 S",
"longitude": "40°00'00,00 O",
"modulosFiscais": "5,0000"
},
"dataConsulta": "2026-03-26T19:42:17.7444013Z",
"dataExpiracao": null
}
/v1/car/{codigoCar}/completo
R$ 2,30
Retorna dados completos do CAR, incluindo proprietários
| Nome | Obrigatório | Tipo | Descrição |
|---|---|---|---|
codigoCar |
Sim | string | Código CAR no formato UF-CodigoMunicipio-Hash. |
{
"success": true,
"cache": true,
"dados": {
"codigoCar": "UF-1234567-ABCD.EF12.3456.7890.ABCD.EF12.3456.7890",
"nomeImovel": "FAZENDA MODELO B",
"areaTotalHa": "320,5000",
"dataCadastro": "05/03/2023 00:00:00",
"matriculaNumero": "67890",
"matriculaData": "10/02/2023",
"matriculaCartorio": "Cartório Exemplo/UF",
"tipoImovel": "Imóvel Rural",
"municipio": "Município Fictício",
"uf": "ESTADO EXEMPLO",
"codigoProtocolo": "UF-1234567-PROT.9000.8000.7000.6000.5000.4000.3000",
"proprietariosNomes": "PROPRIETARIO EXEMPLO LTDA",
"proprietariosCpfs": "12.345.678/0001-99",
"latitude": "11°11'11,11 S",
"longitude": "41°11'11,11 O",
"modulosFiscais": "10,7000"
},
"dataConsulta": "2026-03-26T19:05:05.3974095Z",
"dataExpiracao": null
}
/v1/car/{codigoCar}/recibo
R$ 11,00
Download do PDF do recibo CAR
Retorna o arquivo PDF do recibo do imóvel rural correspondente ao código CAR informado. Diferente dos demais endpoints, a resposta de sucesso não é JSON: o corpo da resposta HTTP é o binário do PDF.
| Nome | Obrigatório | Tipo | Descrição |
|---|---|---|---|
codigoCar |
Sim | string | Código CAR no formato UF-CodigoMunicipio-Hash (hash com 32 caracteres). |
| Header | Valor |
|---|---|
Content-Type |
application/pdf |
Content-Disposition |
attachment; filename="{codigoCar}.pdf" |
Salve o corpo da resposta como arquivo .pdf.
Clientes HTTP que respeitam Content-Disposition (navegadores, Postman)
usam automaticamente o nome sugerido com o código CAR.
Falhas retornam JSON no mesmo padrão dos outros endpoints:
{ "success": false, "error": "...", "message": "..." }.
Erros não consomem crédito.
curl -i "https://api.umbrellatecnologia.com/v1/car/BA-2900801-0A466FD693B247B9A397829A0D6AA2E3/recibo" \
-H "Authorization: Bearer umb_token_exemplo_xxxxxxxxx" \
-J -o ./
# Ou nome explícito:
curl "https://api.umbrellatecnologia.com/v1/car/BA-2900801-0A466FD693B247B9A397829A0D6AA2E3/recibo" \
-H "Authorization: Bearer umb_token_exemplo_xxxxxxxxx" \
-o "BA-2900801-0A466FD693B247B9A397829A0D6AA2E3.pdf"
import requests
codigo = "BA-2900801-0A466FD693B247B9A397829A0D6AA2E3"
url = f"https://api.umbrellatecnologia.com/v1/car/{codigo}/recibo"
headers = {"Authorization": "Bearer umb_token_exemplo_xxxxxxxxx"}
response = requests.get(url, headers=headers, timeout=60)
if response.status_code == 200:
with open(f"{codigo}.pdf", "wb") as f:
f.write(response.content)
print("PDF salvo:", f"{codigo}.pdf")
else:
print(response.status_code, response.json())
/v1/proprietario/{cpfCnpj}
R$ 2,60
Retorna os CARs vinculados ao CPF/CNPJ informado
| Nome | Obrigatório | Tipo | Descrição |
|---|---|---|---|
cpfCnpj |
Sim | string | CPF (11 dígitos) ou CNPJ (14 caracteres numéricos ou alfanuméricos; com ou sem máscara). |
Retorna no máximo 200 CARs. Se o documento tiver mais registros, truncado vem true e a lista traz os 200 primeiros ordenados por código CAR.
{
"success": true,
"total": 2,
"limite": 200,
"truncado": false,
"itens": [
{
"registroCar": "UF-1234567-ABCD.EF12.3456.7890.ABCD.EF12.3456.7890",
"codigoProtocolo": "UF-1234567-PROT.1111.2222.3333.4444.5555.6666.7777",
"nomeImovel": "SÍTIO DEMONSTRAÇÃO 01",
"matriculaNumero": "10101",
"municipio": "Cidade Exemplo",
"uf": "Estado Exemplo",
"areaTotalHa": "45,9000",
"proprietarioConsultado": "PESSOA FICTÍCIA A"
},
{
"registroCar": "UF-7654321-9999.8888.7777.6666.5555.4444.3333.2222",
"codigoProtocolo": null,
"nomeImovel": "FAZENDA DEMONSTRAÇÃO 02",
"matriculaNumero": "20202",
"municipio": "Município Modelo",
"uf": "Estado Modelo",
"areaTotalHa": "87,3000",
"proprietarioConsultado": "PESSOA FICTÍCIA B"
}
]
}
/v1/saldo
Grátis
Saldo, limites, preços e uso do dia/mês
Retorna o saldo atual da conta autenticada pelo token, limites configurados, preços efetivos dos endpoints de consulta e totais de uso do dia e do mês (fuso de Brasília). Não consome crédito e não aparece no histórico de cobrança.
{
"success": true,
"saldoReais": 1234.56,
"limiteDiarioRequisicoes": 1000,
"limiteMensalReais": 5000.00,
"precos": {
"carBasico": 1.00,
"carCompleto": 2.30,
"proprietario": 2.60,
"recibo": 11.00
},
"usoHoje": {
"requisicoes": 12,
"gasto": 15.60,
"erros": 1
},
"usoMes": {
"requisicoes": 80,
"gasto": 120.00
}
}
/v1/historico
Grátis
Histórico paginado de requisições da conta
Lista o consumo da conta com paginação (padrão 20 itens, máximo 100 por página) para não sobrecarregar a integração. Ordenado da requisição mais recente para a mais antiga. Não consome crédito.
| Nome | Obrigatório | Tipo | Descrição |
|---|---|---|---|
page |
Não | int | Página (padrão 1). |
size |
Não | int | Itens por página (padrão 20, máximo 100). |
busca |
Não | string | Filtra por trecho em chaveConsulta ou endpoint. |
endpoint |
Não | string | Filtro exato do endpoint (ex.: /v1/car/{codigo}). |
status |
Não | string | sucesso (HTTP 200) ou erro (demais status). |
{
"success": true,
"page": 1,
"size": 20,
"total": 1532,
"totalPaginas": 77,
"itens": [
{
"data": "2026-07-30T16:00:00Z",
"endpoint": "/v1/car/{codigo}",
"chaveConsulta": "BA-2900801-0A466FD693B247B9A397829A0D6AA2E3",
"statusHttp": 200,
"cobrado": true,
"valorCobrado": 1.00,
"saldoAntes": 100.00,
"saldoDepois": 99.00
}
]
}
curl "https://api.umbrellatecnologia.com/v1/historico?page=1&size=20&status=sucesso" \
-H "Authorization: Bearer umb_token_exemplo_xxxxxxxxx"
Endpoints equivalentes ao dashboard: saldo, histórico, limites, uso e recarga PIX. Todos usam o mesmo Bearer token e não debitam crédito.
/v1/limites
Grátis
Consultar e ajustar limites diário/mensal
GET retorna os limites atuais.
PUT atualiza apenas os campos enviados no JSON
(omissão preserva o valor atual; 0 ou null remove o limite).
Máximos: 100.000 req/dia e R$ 1.000.000/mês.
{
"limiteDiarioRequisicoes": 1000,
"limiteMensalReais": 5000.00
}
{
"success": true,
"message": "Limites atualizados com sucesso.",
"limiteDiarioRequisicoes": 1000,
"limiteMensalReais": 5000.00
}
Este botão altera os limites reais da sua conta. Campo deixado em branco não entra no JSON e preserva o valor atual.
/v1/uso
Grátis
Uso por endpoint nos últimos 30 dias
{
"success": true,
"periodoDias": 30,
"itens": [
{ "endpoint": "/v1/car/{codigo}", "quantidade": 40, "valorTotal": 40.00 },
{ "endpoint": "/v1/proprietario/{cpf_cnpj}", "quantidade": 12, "valorTotal": 31.20 }
]
}
/v1/recarga/faixas
Grátis
Faixas de bônus, valor mínimo e preços após recarga
Query opcional ?valor=1000 devolve preview do bônus.
Se confirmarNovosPrecosObrigatorio for true,
a conta ainda está em preço legado e o POST /v1/recarga
exige confirmarNovosPrecos: true.
/v1/recarga
Grátis
Gerar PIX para adicionar saldo (mín. R$ 500)
Usa CPF/CNPJ e e-mail do usuário Umbrella vinculado à conta API
(cadastre o documento no perfil do site se receber DOCUMENTO_AUSENTE).
Proteção contra retentativas: se já existir um PIX pendente de mesmo valor
gerado nos últimos 10 minutos, ele é reaproveitado e a resposta traz
"reaproveitada": true em vez de criar um novo pagamento.
{
"valor": 500.00,
"confirmarNovosPrecos": true
}
{
"success": true,
"recargaId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"paymentId": "1234567890",
"valor": 500.00,
"status": "Pendente",
"qrCode": "00020126...",
"qrCodeBase64": "iVBORw0KGgo...",
"previewBonus": {
"percentualBonus": 5.00,
"valorBonus": 25.00,
"totalCreditado": 525.00
},
"message": "PIX gerado. Após o pagamento, consulte GET /v1/recarga/{recargaId}."
}
Este é o único endpoint sem botão de teste nesta página: ele gera uma cobrança PIX real no Mercado Pago. Use o painel ou o seu próprio cliente HTTP quando for recarregar de verdade.
/v1/recarga/{recargaId}
Grátis
Status do PIX (somente leitura)
Consulte periodicamente após gerar o PIX, com intervalo de 5 segundos ou mais. O endpoint apenas lê o status registrado — não credita saldo nem altera a recarga.
A confirmação do pagamento, o crédito do valor com bônus e a aplicação dos preços
vigentes são feitos pelo webhook do Mercado Pago, com reconciliação automática a cada
2 minutos caso o webhook falhe. Enquanto status for Pendente,
a resposta reenvia qrCode e qrCodeBase64.
/v1/recargas
Grátis
Histórico paginado de recargas
Query params: page, size (máx. 100) e
status opcional (Pendente, Confirmado, Rejeitado).
| Status | Erro | Descrição | Correção sugerida |
|---|---|---|---|
200 |
- | Sucesso. Cobrança só nos endpoints de consulta; gestão/recarga são grátis. Corpo em JSON ou PDF (/recibo). |
Nenhuma ação necessária. |
400 |
CODIGO_CAR_INVALIDO |
Código CAR em formato inválido. | Enviar no padrão UF-CodigoMunicipio-Hash. |
400 |
VALOR_MINIMO / VALOR_INVALIDO |
Valor de recarga inválido ou abaixo de R$ 500. | Enviar valor ≥ 500. |
400 |
CONFIRMACAO_PRECOS_OBRIGATORIA |
Conta em preço legado sem confirmação. | Consultar /v1/recarga/faixas e reenviar com confirmarNovosPrecos: true. |
400 |
DOCUMENTO_AUSENTE |
CPF/CNPJ do usuário vinculado ausente. | Atualizar documento no perfil Umbrella. |
400 |
LIMITE_INVALIDO |
Limite fora da faixa permitida. | Ajustar valores ou usar 0/null para remover. |
400 |
CPF_CNPJ_INVALIDO |
CPF/CNPJ com formato inválido. | Enviar documento válido. |
401 |
TOKEN_INVALIDO |
Token ausente ou inválido. | Enviar header Authorization: Bearer ... válido. |
402 |
SALDO_INSUFICIENTE |
Saldo insuficiente para executar a consulta. | Adicionar créditos via POST /v1/recarga ou no dashboard. |
404 |
RECARGA_NAO_ENCONTRADA |
Recarga inexistente ou de outra conta. | Usar o recargaId retornado em POST /v1/recarga. |
404 |
CAR_NAO_ENCONTRADO |
Código CAR não encontrado na base. | Validar o código e tentar novamente. |
404 |
CPF_CNPJ_NAO_ENCONTRADO |
Documento sem CARs vinculados na base. | Conferir documento consultado. |
404 |
RECIBO_NAO_ENCONTRADO |
PDF do recibo não disponível para o código CAR informado. | Validar o código CAR ou contatar suporte. |
429 |
LIMITE_EXCEDIDO |
Rate limit ou limites de consumo excedidos. | Aguardar ou ajustar limites no dashboard. |
502 |
RECIBO_INDISPONIVEL |
Falha ao transmitir o PDF após validação (endpoint /recibo). |
Tentar novamente; acionar suporte se persistir. |
503 |
SERVICO_INDISPONIVEL |
Serviço de recibos temporariamente indisponível. | Tentar novamente mais tarde. |
500 |
ERRO_INTERNO |
Erro interno do servidor. | Tentar novamente e acionar suporte se persistir. |
const response = await fetch(
"https://api.umbrellatecnologia.com/v1/proprietario/12345678901",
{
method: "GET",
headers: {
"Authorization": "Bearer umb_token_exemplo_xxxxxxxxx"
}
}
);
const data = await response.json();
console.log(data);
const headers = {
Authorization: "Bearer umb_token_exemplo_xxxxxxxxx"
};
const saldo = await fetch(
"https://api.umbrellatecnologia.com/v1/saldo",
{ headers }
).then(r => r.json());
const historico = await fetch(
"https://api.umbrellatecnologia.com/v1/historico?page=1&size=20",
{ headers }
).then(r => r.json());
console.log(saldo.saldoReais, historico.total);
const codigo = "BA-2900801-0A466FD693B247B9A397829A0D6AA2E3";
const response = await fetch(
`https://api.umbrellatecnologia.com/v1/car/${codigo}/recibo`,
{
headers: { "Authorization": "Bearer umb_token_exemplo_xxxxxxxxx" }
}
);
if (!response.ok) {
console.error(await response.json());
throw new Error("Falha ao baixar recibo");
}
const blob = await response.blob();
const url = URL.createObjectURL(blob);
const a = document.createElement("a");
a.href = url;
a.download = `${codigo}.pdf`;
a.click();
URL.revokeObjectURL(url);
import requests
url = "https://api.umbrellatecnologia.com/v1/car/BA-2918407-6B9BF14D1B5C4A68B3556361634660D0"
headers = {
"Authorization": "Bearer umb_token_exemplo_xxxxxxxxx"
}
response = requests.get(url, headers=headers, timeout=30)
print(response.status_code)
print(response.json())
curl "https://api.umbrellatecnologia.com/v1/car/BA-2900801-0A466FD693B247B9A397829A0D6AA2E3/recibo" \
-H "Authorization: Bearer umb_token_exemplo_xxxxxxxxx" \
-o "BA-2900801-0A466FD693B247B9A397829A0D6AA2E3.pdf"