
{"openapi":"3.0.0","info":{"version":"v1","title":"BovTrace","description":"A API BovTrace registra e disponibiliza informações padronizadas sobre a movimentação individual de bovinos por meio de sistemas clientes autorizados. Esses sistemas podem registrar o trânsito de animais entre produtores, bem como entre produtores e frigoríficos/mercados. A movimentação pode ser vinculada ao protocolo SISBOV ou a protocolos privados de produção animal do Instituto CNA (Confederação Nacional da Agricultura)."},"tags":[{"name":"Protocolos","description":"Consultas dos protocolos disponíveis"},{"name":"Raças","description":"Consultas das raças dos animais"},{"name":"Trânsitos","description":"Consulta dos trânsito dos animais"},{"name":"Transações","description":"Consulta, envio e atualização de transações"},{"name":"Health Check","description":"Verifica se a API BovTrace está ativa."}],"paths":{"/health":{"get":{"tags":["Health Check"],"description":"Verifica se a API está funcionando corretamente.","summary":"Verifica se a API está ativa.","responses":{"204":{"description":"No Content - API está funcionando corretamente."},"500":{"description":"Internal Server Error - Ocorreu um erro no servidor."}},"x-auth-type":"Application & Application User","x-throttling-tier":"Unlimited"}},"/protocolos":{"get":{"tags":["Protocolos"],"description":"Consulta de todos os identificadores de protocolos.","summary":"Consulta de todos os identificadores de protocolos.","responses":{"200":{"description":"Sucesso","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Lista de Protocolos"}}}},"401":{"description":"Unauthorized - Informações de autenticação inválidas"},"403":{"description":"Forbidden - Acesso ao recurso é proibido"},"404":{"description":"Not Found - Recurso não encontrado"},"500":{"description":"Internal Server Error - Um erro ocorreu no servidor"}},"x-auth-type":"Application & Application User","x-throttling-tier":"Unlimited"}},"/protocolos/{codigo}":{"get":{"tags":["Protocolos"],"description":"Consulta de identificadores de protocolos.","summary":"Consulta de identificadores de protocolos.","parameters":[{"name":"codigo","in":"path","description":"Código do protocolo","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Sucesso","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Protocolo"}}}},"401":{"description":"Unauthorized - Informações de autenticação inválidas"},"403":{"description":"Forbidden - Acesso ao recurso é proibido"},"404":{"description":"Not Found - Recurso não encontrado"},"500":{"description":"Internal Server Error - Um erro ocorreu no servidor"}},"x-auth-type":"Application & Application User","x-throttling-tier":"Unlimited"}},"/racas":{"get":{"tags":["Raças"],"description":"Consulta de todos os identificadores de raças.","summary":"Consulta de todos os identificadores de raças.","responses":{"200":{"description":"Sucesso","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Lista de Racas"}}}},"400":{"description":"Bad Request - Requisição inválida"},"401":{"description":"Unauthorized - Informações de autenticação inválidas"},"403":{"description":"Forbidden - Acesso ao recurso é proibido"},"404":{"description":"Not Found - Recurso não encontrado"},"500":{"description":"Internal Server Error - Um erro ocorreu no servidor"}},"x-auth-type":"Application & Application User","x-throttling-tier":"Unlimited"}},"/racas/{codigo}":{"get":{"tags":["Raças"],"description":"Consulta de identificadores de raças.","summary":"Consulta de identificadores de raças.","parameters":[{"name":"codigo","in":"path","description":"Código da raça","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Sucesso","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Raca"}}}},"400":{"description":"Bad Request - Requisição inválida"},"401":{"description":"Unauthorized - Informações de autenticação inválidas"},"403":{"description":"Forbidden - Acesso ao recurso é proibido"},"404":{"description":"Not Found - Recurso não encontrado"},"500":{"description":"Internal Server Error - Um erro ocorreu no servidor"}},"x-auth-type":"Application & Application User","x-throttling-tier":"Unlimited"}},"/transitos/{codigo}":{"get":{"tags":["Trânsitos"],"description":"Consulta para rastreabilidade animal.","summary":"Consulta para rastreabilidade animal.","parameters":[{"name":"codigo","in":"path","description":"Código do animal","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Sucesso","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Transito"}}}},"400":{"description":"Bad Request - Requisição inválida"},"401":{"description":"Unauthorized - Informações de autenticação inválidas"},"403":{"description":"Forbidden - Acesso ao recurso é proibido"},"404":{"description":"Not Found - Recurso não encontrado"},"500":{"description":"Internal Server Error - Um erro ocorreu no servidor"}},"x-auth-type":"Application & Application User","x-throttling-tier":"Unlimited"}},"/transacoes/{token}":{"get":{"tags":["Transações"],"description":"Consulta para auditoria Environmental, Social and Governance (ESG) de transação.","summary":"Consulta para auditoria Environmental, Social and Governance (ESG) de transação.","parameters":[{"name":"token","in":"path","description":"Token da transação","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Sucesso","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Transacao"}}}},"400":{"description":"Bad Request - Requisição inválida"},"401":{"description":"Unauthorized - Informações de autenticação inválidas"},"403":{"description":"Forbidden - Acesso ao recurso é proibido"},"404":{"description":"Not Found - Recurso não encontrado"},"500":{"description":"Internal Server Error - Um erro ocorreu no servidor"}},"x-auth-type":"Application & Application User","x-throttling-tier":"Unlimited"}},"/transacoes":{"get":{"tags":["Transações"],"summary":"Lista de transações com paginação e filtro por data","description":"Retorna a lista de transações do usuário autorizado com paginação e filtros por data.","parameters":[{"name":"pagina","in":"query","required":false,"description":"Número da página","schema":{"type":"integer","default":1}},{"name":"data_inicio","in":"query","required":false,"description":"Filtra transações a partir desta data (formato DD/MM/AAAA)","schema":{"type":"string","format":"date"}},{"name":"data_fim","in":"query","required":false,"description":"Filtra transações até está data (formato DD/MM/AAAA)","schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"Lista de transações com paginação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Lista de Transações Paginada"}}}},"401":{"description":"Unauthorized - Token inválido ou ausente"},"404":{"description":"Not Found - Cabeçalho de autorização não enviado"},"500":{"description":"Internal Server Error - Falha interna na API"}},"x-auth-type":"Application & Application User","x-throttling-tier":"Unlimited"},"post":{"tags":["Transações"],"description":"Inserção de dados para fins de rastreabilidade e auditoria.","summary":"Inserção de dados para fins de rastreabilidade e auditoria.","requestBody":{"description":"Dados da transação","required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"protocolo":{"type":"integer","description":"ID do protocolo (1 até 20)"},"nfe":{"type":"string","description":"Número da NF-e"},"gta":{"type":"string","description":"Código de barras da GTA (Guia de Trânsito Animal)"},"animal":{"type":"array","items":{"type":"object","properties":{"codigo":{"type":"string","description":"Código único do animal"},"raca":{"type":"integer","description":"ID da raça (1 até 19)"},"genero":{"type":"string","enum":["M","F"],"description":"Gênero do animal"},"data_nascimento":{"type":"string","description":"Data de nascimento do animal no formato DD/MM/AAAA"},"peso_kg":{"type":"number","description":"Peso do animal em KGs"},"data_pesagem":{"type":"string","description":"Data de pesagem do animal no formato DD/MM/AAAA"},"incisivos_qtd":{"type":"number","description":"Quantidade de incisivos do animal"},"data_contagem":{"type":"string","description":"Data da contagem dos incisivos do animal no formato DD/MM/AAAA"}}}},"estabelecimento_origem":{"type":"string","description":"Estabelecimento de origem"},"municipio_origem":{"type":"integer","format":"int32","description":"Código IBGE do município de origem"},"estado_origem":{"type":"integer","format":"int32","description":"Código IBGE do estado de origem"},"estabelecimento_destino":{"type":"string","description":"Estabelecimento de destino"},"municipio_destino":{"type":"integer","format":"int32","description":"Código IBGE do município de destino"},"estado_destino":{"type":"integer","format":"int32","description":"Código IBGE do estado de destino"}}}}}},"responses":{"200":{"description":"Sucesso","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Token"}}}},"400":{"description":"Requisição inválida"},"401":{"description":"Não autorizado"},"403":{"description":"Acesso proibido"},"500":{"description":"Erro interno do servidor"}},"x-auth-type":"Application & Application User","x-throttling-tier":"Unlimited"}},"/transacoes/invalidar/{token}":{"delete":{"tags":["Transações"],"description":"Invalidação de transação inserida de forma incorreta.","summary":"Invalidação de transação.","parameters":[{"name":"token","in":"path","description":"Token da transação","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Sucesso","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mensagem"}}}},"400":{"description":"Requisição inválida"},"401":{"description":"Não autorizado"},"403":{"description":"Acesso proibido"},"500":{"description":"Erro interno do servidor"}},"x-auth-type":"Application & Application User","x-throttling-tier":"Unlimited"}}},"components":{"schemas":{"Protocolo":{"type":"object","properties":{"id":{"type":"integer","description":"ID do protocolo"},"nome":{"type":"string","description":"Nome do protocolo"}}},"Lista de Protocolos":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","description":"ID do protocolo"},"nome":{"type":"string","description":"Nome do protocolo"}}}},"Raca":{"type":"object","properties":{"id":{"type":"integer","description":"ID da raça"},"nome":{"type":"string","description":"Nome da raça"}}},"Lista de Racas":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","description":"ID da raça"},"nome":{"type":"string","description":"Nome da raça"}}}},"Transito":{"type":"array","items":{"properties":{"protocolo":{"type":"integer","description":"ID do protocolo (1 até 20)"},"raca":{"type":"integer","description":"ID da raça (1 a 19)"},"peso_kg":{"type":"number","description":"Peso do animal em KGs","nullable":true},"data_pesagem":{"type":"string","description":"Data de pesagem do animal no formato DD/MM/AAAA","nullable":true},"estabelecimento":{"type":"string","description":"Estabelecimento (SICAR ou CNPJ)"},"municipio":{"type":"integer","description":"Código IBGE do município"},"estado":{"type":"integer","description":"Código IBGE do estado"}}}},"Lista de Transações Paginada":{"type":"object","properties":{"dados":{"type":"array","items":{"type":"object","properties":{"gta":{"type":"string","description":"Código de barras da GTA (Guia de Trânsito Animal)"},"nfe":{"type":"string","description":"Número da NF-e"},"token":{"type":"string","description":"Token único da transação"},"estabelecimento_origem":{"type":"string","description":"Estabelecimento de origem"},"estabelecimento_destino":{"type":"string","description":"Estabelecimento de destino"},"numero_de_animais":{"type":"integer","format":"int32","description":"Quantidade de animais incluídos na transação"}}}},"paginacao":{"type":"object","properties":{"total_de_registros":{"type":"integer","format":"int32"},"pagina_atual":{"type":"integer","format":"int32"},"total_de_paginas":{"type":"integer","format":"int32"},"proxima_pagina":{"type":"integer","format":"int32","nullable":true},"pagina_anterior":{"type":"integer","format":"int32","nullable":true}}}}},"Transacao":{"type":"object","properties":{"protocolo":{"type":"integer","description":"ID do protocolo (1 até 20)"},"nfe":{"type":"string","description":"Número da NF-e (44 dígitos númericos)"},"gta":{"type":"string","description":"Código de barras da GTA - Guia de Trânsito Animal (44 dígitos númericos)"},"animal":{"type":"array","items":{"type":"object","properties":{"codigo":{"type":"string","description":"Código único do animal (15 dígitos numéricos iniciando com \"076\" ou \"105\")"},"raca":{"type":"integer","description":"ID da raça (1 até 19)"},"genero":{"type":"string","enum":["M","F"],"description":"Gênero do animal"},"data_nascimento":{"type":"string","description":"Data de nascimento do animal no formato DD/MM/AAAA"},"peso_kg":{"type":"number","description":"Peso do animal em KGs","nullable":true},"data_pesagem":{"type":"string","description":"Data de pesagem do animal no formato DD/MM/AAAA","nullable":true},"incisivos_qtd":{"type":"number","description":"Quantidade de incisivos do animal","nullable":true},"data_contagem":{"type":"string","description":"Data de contagem dos incisivos do animal no formato DD/MM/AAAA","nullable":true}}}},"estabelecimento_origem":{"type":"string","description":"Estabelecimento de origem (Número do SICAR)"},"municipio_origem":{"type":"integer","format":"int32","description":"Código IBGE do município de origem"},"estado_origem":{"type":"integer","format":"int32","description":"Código IBGE do estado de origem"},"estabelecimento_destino":{"type":"string","description":"Estabelecimento de destino (Número do SICAR ou CNPJ)"},"municipio_destino":{"type":"integer","format":"int32","description":"Código IBGE do município de destino"},"estado_destino":{"type":"integer","format":"int32","description":"Código IBGE do estado de destino"}}},"Token":{"type":"object","properties":{"token":{"type":"string","description":"Token da transação"}}},"Mensagem":{"type":"object","properties":{"status":{"type":"integer","default":200,"description":"Status da requisição"},"timestamp":{"type":"string","description":"Data e hora da requisição"},"summary":{"type":"string","description":"Resumo da resposta da requisição"},"description":{"type":"string","description":"Descrição detalhada da resposta da requisição"}}}},"securitySchemes":{"default":{"type":"oauth2","flows":{"implicit":{"authorizationUrl":"https://api.cnptia.embrapa.br/authorize","scopes":{}}}}}},"servers":[{"url":"https://api.cnptia.embrapa.br/bovtrace/v1"},{"url":"http://api.cnptia.embrapa.br/bovtrace/v1"}]}