Agência Nacional de Transportes Aquaviários - ANTAQ
O acesso ao SisPAT é realizado exclusivamente através do Login Único Gov.BR.
Para utilizar o ambiente de homologação, é necessário criar uma conta no ambiente de staging do Login Único Gov.BR:
Após o cadastro, acesse o SisPAT Sandbox em des-apex.antaq.gov.br/ords/r/sfc_dev/sispat/ e clique em "Entrar com Gov.BR". Navegue até "Gerenciador de API" e gere uma credencial de teste.
Antes de iniciar a integração, valide o acesso ao ambiente de desenvolvimento:
curl -X GET "https://des-apex.antaq.gov.br/ords/sfc_sispat/sispat/bens/" \
-H "x-api-key: sispat_test_SUA_CHAVE_TESTE" \
-H "Accept: application/json"
Invoke-RestMethod -Uri "https://des-apex.antaq.gov.br/ords/sfc_sispat/sispat/bens/" `
-Headers @{"x-api-key"="sispat_test_SUA_CHAVE_TESTE"; "Accept"="application/json"}
200 OK com uma lista de itens (mesmo vazia), sua conexão está funcionando corretamente.
A operação GET retorna todos os bens patrimoniais vinculados à sua API Key.
fetch('https://prd-apex.antaq.gov.br/ords/sfc_sispat/sispat/bens/', {
method: 'GET',
headers: {
'x-api-key': 'sispat_live_SUA_CHAVE_AQUI',
'Accept': 'application/json'
}
})
.then(response => response.json())
.then(data => {
console.log('Total de registros:', data.pagination.total_records);
console.log('Bens:', data.items);
})
.catch(error => console.error('Erro:', error));
import requests
url = "https://prd-apex.antaq.gov.br/ords/sfc_sispat/sispat/bens/"
headers = {
"x-api-key": "sispat_live_SUA_CHAVE_AQUI",
"Accept": "application/json"
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
data = response.json()
print(f"Total de registros: {data['pagination']['total_records']}")
for bem in data['items']:
print(f"- {bem['numero_registro_patrimonial']}: {bem['nome_item']}")
else:
print(f"Erro {response.status_code}: {response.text}")
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-api-key", "sispat_live_SUA_CHAVE_AQUI");
client.DefaultRequestHeaders.Add("Accept", "application/json");
var response = await client.GetAsync("https://prd-apex.antaq.gov.br/ords/sfc_sispat/sispat/bens/");
var json = await response.Content.ReadAsStringAsync();
Console.WriteLine(json);
A operação PUT utiliza lógica de Upsert: cria se não existir, atualiza se já existir.
cnpj + numero_registro_patrimonial. Alterar o número de registro patrimonial criará um novo bem.
curl -X PUT "https://prd-apex.antaq.gov.br/ords/sfc_sispat/sispat/bens/" \
-H "x-api-key: sispat_live_SUA_CHAVE_AQUI" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"cnpj": 4903587000108,
"numero_registro_patrimonial": "PAT-2024-0001",
"numero_do_contrato": "CT-2024-001",
"cod_trigrama": "GND",
"nome_item": "Guindaste portuário",
"capitulo": 84,
"posicao": 8427,
"subposicao": 842710,
"especificacao_tecnica": "Guindaste móvel sobre pneus, capacidade 50t",
"cor": "Amarelo",
"fornecedor": "Liebherr Brasil",
"capacidade": 50,
"unidade_de_medida": 16,
"latitude": -23.9618,
"longitude": -46.3322,
"destinacao": "Operação portuária",
"modalidade_de_tombamento": 1,
"data_de_tombamento": "2024-01-15",
"valor_original_de_compra": 1500000.00,
"fonte_de_recurso": 1,
"valor_justo_de_mercado": 1400000.00,
"valor_residual": 150000.00,
"vida_util_anos": 20,
"taxa_depreciacao": 5.00,
"data_de_avaliacao": "2024-01-15",
"conta_contabil": "10.1.2.01",
"historico": 1,
"situacao": 1,
"estado_de_conservacao": 3,
"bem_da_uniao": 2,
"bem_reversivel": 1,
"natureza": 1,
"vinculacao_contratual": 2,
"tipo_de_bem": 5,
"grupo_de_bens": 4,
"sigla_uf": "SP"
}'
const bem = {
cnpj: 4903587000108,
numero_registro_patrimonial: "PAT-2024-0001",
numero_do_contrato: "CT-2024-001",
nome_item: "Guindaste portuário",
// ... demais campos obrigatórios
};
fetch('https://prd-apex.antaq.gov.br/ords/sfc_sispat/sispat/bens/', {
method: 'PUT',
headers: {
'x-api-key': 'sispat_live_SUA_CHAVE_AQUI',
'Content-Type': 'application/json',
'Accept': 'application/json'
},
body: JSON.stringify(bem)
})
.then(response => {
if (response.status === 200) {
console.log('Bem ATUALIZADO com sucesso');
} else if (response.status === 201) {
console.log('Bem CRIADO com sucesso');
}
return response.json();
})
.then(data => console.log(data));
Envia uma foto para um bem patrimonial já cadastrado.
numero_registro_patrimonial enviado no header X-Numero-Registro-Patrimonial.
curl -X POST "https://prd-apex.antaq.gov.br/ords/sfc_sispat/sispat/bens/imagem" \
-H "x-api-key: sispat_live_SUA_CHAVE_AQUI" \
-H "X-Numero-Registro-Patrimonial: PAT-2024-0001" \
-H "Content-Type: image/jpeg" \
-H "X-Filename: guindaste_foto_01.jpg" \
--data-binary @/caminho/para/foto.jpg
const numRegPat = "PAT-2024-0001";
const fileInput = document.getElementById('fileInput');
const file = fileInput.files[0];
fetch('https://prd-apex.antaq.gov.br/ords/sfc_sispat/sispat/bens/imagem', {
method: 'POST',
headers: {
'x-api-key': 'sispat_live_SUA_CHAVE_AQUI',
'X-Numero-Registro-Patrimonial': numRegPat,
'Content-Type': file.type,
'X-Filename': file.name
},
body: file
})
.then(response => response.json())
.then(data => {
console.log('Upload realizado:', data);
console.log('Tamanho:', data.data.size_formatted);
})
.catch(error => console.error('Erro:', error));
import requests
num_reg_pat = "PAT-2024-0001"
arquivo = "/caminho/para/foto.jpg"
url = "https://prd-apex.antaq.gov.br/ords/sfc_sispat/sispat/bens/imagem"
with open(arquivo, 'rb') as f:
headers = {
"x-api-key": "sispat_live_SUA_CHAVE_AQUI",
"X-Numero-Registro-Patrimonial": num_reg_pat,
"Content-Type": "image/jpeg",
"X-Filename": "guindaste_foto_01.jpg"
}
response = requests.post(url, headers=headers, data=f)
if response.status_code == 200:
data = response.json()
print(f"Upload realizado: {data['data']['filename']}")
print(f"Tamanho: {data['data']['size_formatted']}")
else:
print(f"Erro {response.status_code}: {response.text}")
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-api-key", "sispat_live_SUA_CHAVE_AQUI");
client.DefaultRequestHeaders.Add("X-Numero-Registro-Patrimonial", "PAT-2024-0001");
client.DefaultRequestHeaders.Add("X-Filename", "guindaste_foto_01.jpg");
var url = "https://prd-apex.antaq.gov.br/ords/sfc_sispat/sispat/bens/imagem";
var imageBytes = await File.ReadAllBytesAsync("/caminho/para/foto.jpg");
var content = new ByteArrayContent(imageBytes);
content.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg");
var response = await client.PostAsync(url, content);
var json = await response.Content.ReadAsStringAsync();
Console.WriteLine(json);
| Código | Status | Descrição |
|---|---|---|
200 |
OK | Requisição bem-sucedida. No PUT, indica que o bem foi atualizado. |
201 |
Created | Recurso criado com sucesso. No PUT, indica que o bem foi cadastrado. |
400 |
Bad Request | Erro de validação: CNPJ inválido, campos obrigatórios faltando ou formato incorreto. |
401 |
Unauthorized | API Key não fornecida, inválida ou inativa. Verifique suas credenciais. |
403 |
Forbidden | API Key não tem permissão para operar com o CNPJ informado. |
404 |
Not Found | Recurso não encontrado. No POST de imagem, indica que o bem não existe. |
422 |
Unprocessable Entity | Dados semanticamente inválidos (ex: enum fora do range permitido). |
500 |
Internal Server Error | Erro interno não tratado. Contate o suporte. |
Campos que aceitam apenas valores específicos (enums):
| Valor | Descrição |
|---|---|
| 1 | Aquisição |
| 2 | Comodato |
| 3 | Cessão |
| 4 | Permuta |
| 5 | Doação |
| 6 | Fabricação |
| 7 | Incorporação Prévia |
| 8 | Transferência |
| 9 | Encampação |
| Valor | Descrição |
|---|---|
| 1 | Próprio |
| 2 | Tesouro Nacional |
| 3 | Tesouro Estadual |
| 4 | Tesouro Municipal |
| Valor | Descrição |
|---|---|
| 1 | Tombado |
| 2 | Não Tombado |
| 3 | Inexistente |
| 4 | Transferência União |
| 5 | Sem Transferência |
| 6 | Com Aceite |
| 7 | Sem Aceite |
| Valor | Descrição |
|---|---|
| 1 | Servível |
| 2 | Ocioso |
| 3 | Antieconômico |
| 4 | Recuperável |
| 5 | Irrecuperável |
| Valor | Descrição |
|---|---|
| 1 | Novo |
| 2 | Excelente |
| 3 | Bom |
| 4 | Regular |
| 5 | Péssimo |
| Valor | Descrição |
|---|---|
| 1 | Terrenos |
| 2 | Edifícios e Benfeitorias |
| 3 | Instalações |
| 4 | Máquinas |
| 5 | Aparelhos |
| 6 | Equipamentos |
| 7 | Equipamentos de Informática |
| 8 | Sistemas Aplicativos (Softwares) |
| 9 | Móveis e Utensílios |
| 10 | Veículos |
| 11 | Ferramentas |
| 12 | Peças e Conjuntos de Reposição |
| 13 | Benfeitorias em Propriedades Arrendadas |
| 14 | Não Aplicável |
| 15 | Infraestrutura Marítima |
| 16 | Infraestrutura Acostagem |
| 17 | Infraestrutura Terrestre |
| 18 | Armazenagem |
| 19 | Equipamentos de Armazenagem |
| 20 | Outros Equipamentos |
| Valor | Descrição |
|---|---|
| 1 | Bens da União - Administração |
| 2 | Bens da União - Operação |
| 3 | Bens da União - Terceiros |
| 4 | Bens de Terceiros |
| 5 | Bens Próprios - Administração |
| 6 | Bens Próprios - Operação |
| 7 | Imobilizado em Andamento |
| Valor | Descrição |
|---|---|
| 1 | Não definido |
| 2 | Caixa |
| 3 | Coleção |
| 4 | Conjunto |
| 5 | Equip. |
| 6 | Jogo |
| 7 | Kg |
| 8 | Km |
| 9 | Litro |
| 10 | M2 |
| 11 | M3 |
| 12 | Metro |
| 13 | Par |
| 14 | Parte |
| 15 | Peça |
| 16 | Tonelada |
| 17 | Unid. |
bem_da_uniaobem_reversivelnatureza (1=Móvel, 2=Imóvel)vinculacao_contratual (1=Removível, 2=Não Removível)modalidade_exploracao (1=Autoridade Portuária, 2=Arrendatário)depreciacao_especialHistórico das mudanças relevantes para integradores, mantido para transparência ativa com as entidades reguladas e suas equipes de TI. Mudanças que afetam contratos existentes são sinalizadas em destaque.
capacidade e unidade_de_medidacapacidade e unidade_de_medida passam a
ser numéricos. Antes, capacidade era texto livre
(ex.: "50 toneladas"); essa forma agora é rejeitada com
HTTP 400.
capacidade: agora número
(inteiro ou decimal, ≥ 0). Envie 50 em vez de
"50 toneladas".
unidade_de_medida: agora inteiro de 1 a 17,
vinculado ao dicionário oficial do APEX. Para "toneladas" use
16; para "metros cúbicos" use 11;
consulte a tabela completa na seção Dicionário de Campos Enumerados
acima.
"50" ou
"16" são convertidos automaticamente.
Apenas strings descritivas ("50 toneladas") são rejeitadas.
numero_registro_patrimonial acima de 50 caracteres agora
retornam HTTP 400 com mensagem amigável (antes podiam
cair em erro genérico do servidor).
capacidade como número JSON puro
e unidade_de_medida como inteiro do dicionário.
SISPAT_SUBPOSICOES;SISPAT_CONTA_CONTABIL;TB_PORTOS.id_cadastro_de_bens deixou de fazer parte do JSON de
saída. A identificação pública de um bem é feita exclusivamente pelo par
cnpj + numero_registro_patrimonial.
GET, PUT e POST de imagem foram padronizados para o mesmo formato de URL e cabeçalhos.id_cadastro_de_bens devem migrar para a chave natural.POST /sispat/imagem/ para upload de foto
vinculada a um bem patrimonial.
Tamanho máximo de 5 MB; formatos aceitos: JPEG, PNG, GIF, WebP, BMP.
Para reportar incidentes, esclarecer dúvidas de integração ou solicitar funcionalidades, contate a equipe responsável pelo SisPAT em inventario@antaq.gov.br.