Cadastrar GTA¶
📌 O que o endpoint faz¶
Este endpoint é responsável por executar a operação de Cadastrar GTA. Ele trafega dados diretamente na base do SISBOV, permitindo a gestão correta das informações via integração de sistemas. Os dados são processados e validados mediante as rigorosas regras exigidas pelo MAPA para as certificadoras.
🧠 Lógica de Negócio (PORTUGOL)¶
A rotina interna do microserviço e sua cadeia de responsabilidades é definida simplificadamente pelos seguintes passos estruturados:
FUNÇÃO `CadastrarGTA`(payload):
1. Validar campos obrigatórios do payload recebido.
2. Verificar regras de unicidade e vínculos (ex: verificar se as entidades relacionadas como Produtor e Propriedade existem).
3. Aplicar as regras de permissão (Perfil Certificadora só acessa seus dados).
4. Instanciar a nova entidade com status ativo ou inicial.
5. SALVAR no banco de dados.
6. RETORNAR código 201 com o ID gerado.
FIM_FUNÇÃO
📋 Dados da Requisição (Payload)¶
Essa tabela lista de forma robusta os campos do corpo JSON exato deste endpoint, baseado nos payloads presentes no Postman oficial.
🔗 Objeto Base Esperado (REQUEST BODY): GTASync
| Campo do Payload | Tipo Variável | Comportamento no Envio |
|---|---|---|
tipogta |
Object |
🚨 Obrigatório |
serie |
Object |
🚨 Obrigatório |
tipoTransporte |
Object |
🚨 Obrigatório |
idPropriedadeOrigem |
Object |
🚨 Obrigatório |
numeroComposto |
Object |
🚨 Obrigatório |
idPropriedadeDestino |
Object |
🚨 Obrigatório |
identificadorReceitaProdutorNaoCadastrado |
Object |
🚨 Obrigatório |
dataValidade |
LocalDate |
🚨 Obrigatório |
nomePropriedadeNaoCadastrada |
Object |
🚨 Obrigatório |
dataEntrada |
LocalDate |
🚨 Obrigatório |
oesaPropriedadeNaoCadastrada |
Object |
🚨 Obrigatório |
uf |
Object |
🚨 Obrigatório |
numero |
Object |
🚨 Obrigatório |
idProdutorOrigem |
Object |
🚨 Obrigatório |
idProdutorDestino |
Object |
🚨 Obrigatório |
dataEmissao |
LocalDate |
🚨 Obrigatório |
quantidadeDeAnimais |
Object |
🚨 Obrigatório |
nomeProdutorNaoCadastrado |
Object |
🚨 Obrigatório |
dataSaida |
LocalDate |
🚨 Obrigatório |
idFrigorificoDestino |
Object |
🚨 Obrigatório |
Fonte de Informação: A lista de obrigatoriedade acima foi compilada processando os exemplos reais contidos na Collection do Postman.
📦 Modelos de Dados (Data Models)¶
Configuração da Requisição¶
- URL Base:
https://api-cert.sisbov.agro.br(Produção) /https://api-cert-hom.sisbov.agro.br(Homologação) - Path Parameter / Query Parameter: Parâmetros definidos na própria URL (
/integracao/gta). Em caso de paginação, utilizar os query parameters padrões formados por?pageSize=20¤tPage=0. - Header Parameters:
Authorization: Bearer <seu_token_jwt>(Obrigatório em todas as chamadas)Content-Type: application/json
Payload de Envio (Request)¶
Em endpoints que requerem o envio de corpo de dados (ex: POST, PUT), deve-se enviar um objeto JSON compatível com o DTO adequado. Variáveis obrigatórias não podem ser enviadas como nulas. Em PUTs de atualização as entidades geralmente reagem de forma atômica — você deve preencher o DTO integralmente contendo suas modificações.
Resposta (Response)¶
- Sucesso (200/201/204): O payload retornado apresenta o status de confirmação, porções da entidade, ou no caso de cadastros, o
{ "id": "<uuid>" }. - Erro de Negócio (400/417):
- Erro de Acesso (401/403): Token expirado ou dados fora da permissão da certificadora.
🚀 Exemplo de Uso (Postman Collection)¶
Recorte real gerado a partir do arquivo SISBOV 2.0.postman_collection.json.
POST https://api-cert-hmg-sisbov.agricultura.gov.br/integracao/gta
Content-Type: application/json
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwczovL2htZy1zaXNib3YuYWdyaWN1bHR1cmEuZ292LmJyIiwiaWF0IjoxNzcwMjIzMDczLCJhdXRoX3RpbWUiOjE3NzAyMjMwNzMsIm5hbWUiOiJFZHNvbiIsImV4cCI6MTc3MDIzMDI3MywidXBuIjoiZWRzb25Ac2VrdGVjaC5jb20uYnIiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJlZHNvbkBzZWt0ZWNoLmNvbS5iciIsImdyb3VwcyI6WyJjZXJ0aWZpY2Fkb3JhIl0sImp0aSI6IjIwNzE5MmYzLWZiODgtNDlmYy1iOTE3LWFkNjJjMDQwMzg3OSJ9.UPAkx1mzOjRMA0Xy9cVfyDqnBzTO_LeRxuz7vBDXLmmij4Xs5EQt8VgAArYV3HtVzw3DuNZ20mjI4ekOpGt4xAN5-InPOiY9h56XIm7PEGJ4tBT-q7L-EyQe2Anddc6VGu29CspX2SpEE0IZ7-O8eQsWExZWJD-vNZvHPoY9j-dQc1UUi2NilsoFNaAt71pA_1uCZECXx9Fa-7Ey6nFunhVC3UFA7dsXGVYxkQb9fuTdBYMyTMieN14_1RRblvDN8AjZn_gXek6XjQWlaqWqATz3a0QkhrNHgdGGf7xUsS3d-uu7GhY7ZU0xoMzd-3SSx1f59-XXcVgdOGhK0sAxPg
{
"numero": "987654",
"serie": "AC",
"numeroComposto": "AC9876541",
"uf": "GO",
"idPropriedadeOrigem": null,
"idPropriedadeDestino": "d6ceaadb-ca7f-4b7b-83a5-844e76085036",
"idProdutorOrigem": null,
"idProdutorDestino": "9e1ec815-f00d-4ea7-b1c2-0d6d8f8d6d2f",
"idFrigorificoDestino": null,
"dataEmissao": "2026-01-30",
"dataValidade": "2026-02-02",
"dataEntrada": "2026-02-02",
"dataSaida": "2026-02-02",
"quantidadeDeAnimais": "100",
"tipoTransporte": "RODOVIARIO",
"tipogta": "SEM_IDENTIFICACAO_ORIGEM",
"identificadorReceitaProdutorNaoCadastrado": "79859763100",
"nomeProdutorNaoCadastrado": null,
"oesaPropriedadeNaoCadastrada": "52009100921",
"nomePropriedadeNaoCadastrada": null
}
📑 Simulação Swagger (OpenAPI)¶
Exemplo da especificação gerada que molda a página do Swagger Interativo:
Nenhuma definição OpenAPI pública encontrada para este endpoint na especificação base.