Ir para o conteúdo

RESPOSTAS TÉCNICAS - OFÍCIO ABCAR

1 Autenticação

1.1 Headers Obrigatórios Divergentes

O Swagger UI não menciona o header wso2-api-key, enquanto a Documentação HTML indica que ele é OBRIGATÓRIO em todas as requisições. Qual é o comportamento correto: o header wso2-api-key (JWT do WSO2) é obrigatório em todas as requisições?

RESPOSTA: O USO DO WSO2 FOI REMOVIDO DA API . Utilizar o método "auth/system" informando os parâmetros de header http X-ACCESS-KEY + X-SECRET-KEY. Será retornado um token JWT para ser utilizado header das próximas requisições

1.2 Headers Obrigatórios Não Documentados no Swagger

O campo Content-Type: application/json não está explícito na documentação. Ele é obrigatório em todas as requisições?

RESPOSTA: SIM.

1.3 Uso do Token Após Autenticação

Após a autenticação, o token JWT obtido deve ser utilizado como Authorization: Bearer {token} em todas as requisições subsequentes?

RESPOSTA: SIM.

2 URLs Base Divergentes

Existem duas URLs base identificadas na documentação:

Swagger UI (HMG): https://api-cert-hmg-sisbov.agricultura.gov.br Documentação HTML: https://integracao-certificadora-des.sigboi.agr.br

Qual é o ambiente correto para cada URL? Qual deve ser utilizada para homologação e qual para desenvolvimento?

RESPOSTA: Somente está disponível para integração o ambiente de homologação. A URL é "https://api-cert-hmg-sisbov.agricultura.gov.br". Todas as url's do sistema tem o sufixo "sisbov.agricultura.gov.br".

3 INCONSISTÊNCIAS POR MÓDULO

3.1 Animal

3.1.1 Campos com Obrigatoriedade Indefinida

O campo numero (String) aparece como "Conditional" na documentação HTML. A realidade provável indicada é: "Obrigatório SE tipoIdentificacao != SEM_IDENTIFICACAO". Essa regra está correta?O campo numero está indicado como Conditional na documentação HTML. Este campo é obrigatório quando tipoIdentificacao != SEM_IDENTIFICACAO?

RESPOSTA: Este campo é OBRIGATÓRIO sempre.

3.1.2 Campos com Obrigatoriedade Indefinida

O campo dataIdentificacao (LocalDate) aparece como "Conditional" na documentação HTML. A realidade provável indicada é: "Obrigatório SE animal identificado". Essa regra está correta?

RESPOSTA: Este campo é OBRIGATÓRIO sempre.

3.1.3 Campos com Obrigatoriedade Indefinida

O campo numeroGTAInclusao (String) aparece como "Conditional" na documentação HTML. A realidade provável indicada é: "Obrigatório SE tipoEntrada = SEM_IDENTIFICACAO". Essa regra está correta?

RESPOSTA: SIM.

3.1.4 Campos com Obrigatoriedade Indefinida

O campo idLote (UUID) aparece como "Opcional" na documentação HTML, com a realidade provável de "Preenchido pelo sistema". Esse campo é de fato opcional e preenchido automaticamente pelo sistema, sem necessidade de envio pela certificadora?

RESPOSTA: OPCIONAL.

3.1.5 Campos com Obrigatoriedade Indefinida

O campo idMorte (UUID) aparece como "Opcional" na documentação HTML, com a realidade provável de "Preenchido pelo sistema". Esse campo é de fato opcional e preenchido automaticamente pelo sistema, sem necessidade de envio pela certificadora?

RESPOSTA: NÃO PREENCHER.

3.1.6 Campos com Obrigatoriedade Indefinida

O campo idDesligamento (UUID) aparece como "Opcional" na documentação HTML, com a realidade provável de "Preenchido pelo sistema". Esse campo é de fato opcional e preenchido automaticamente pelo sistema, sem necessidade de envio pela certificadora?

RESPOSTA: NÃO PREENCHER.

3.1.7 Campos com Obrigatoriedade Indefinida

O campo importado (Boolean) aparece como obrigatório ("Sim") na documentação HTML, porém o Swagger não indica obrigatoriedade. Esse campo é obrigatório?

RESPOSTA: SIM.

3.1.8 Campos com Obrigatoriedade Indefinida

O campo codigoRaca (String) aparece como obrigatório ("Sim") na documentação HTML, porém o Swagger não indica os valores válidos. Quais são os valores válidos para este campo?

RESPOSTA: Consultar o código da raça na tabela de domínio.

3.1.9 Enums TipoIdentificacao — INCONSISTENTES

O Swagger trata TipoIdentificacao como String livre, enquanto a documentação HTML lista os seguintes valores como Enum restrito: BR, BRINCO, BRINCO_BOTON, BRINCO_DISPOSITIVO, BO, BRBO, BRTA, DEIV, TAMF, BRDE, VIVO, RIN, ASSRA, BOMF, MIGR, BRMF, BRBOF Esses são os únicos valores válidos aceitos pelo sistema para o campo TipoIdentificacao?

RESPOSTA: Existe um Enum descrevendo este tipo na sessão Schema do swagger.

3.1.10 Enums TipoEntradaAnimal

O Swagger não documenta os valores para TipoEntradaAnimal, enquanto a documentação HTML lista: NASCIMENTO, SEM_IDENTIFICACAO, CARGA_INICIAL, DADOS_MIGRADOS, ENTRADA, REINDENTIFICACAO Esses são os únicos valores válidos aceitos pelo sistema para o campo TipoEntradaAnimal?

RESPOSTA: Existe um Enum descrevendo este tipo na sessão Schema do swagger.

3.1.11 Enums StatusAnimal

O Swagger menciona o campo StatusAnimal mas não lista seus valores, enquanto a documentação HTML lista: VIVO, MORTO, ABATIDO, ABATIDO_PARA_EXPORTACAO, DESLIGADO, EM_FRIGORIFICO, EM_TRANSITO, APTO_PARA_ABATE_PARA_EXPORTACAO, CALHA_SANGRIA Esses são os únicos valores válidos aceitos pelo sistema para o campo StatusAnimal?

RESPOSTA: Existe um Enum descrevendo este tipo na sessão Schema do swagger.

3.1.12 Campos ERAS — Falta Explicação

O campo ERASPropriedadeLocalizacao não possui nenhuma descrição nem no Swagger nem na documentação HTML. O que é ERAS? Qual o formato deste campo? Como obtê-lo?

RESPOSTA: Consultar o glossário.

3.1.13 Campos ERAS — Falta Explicação

O campo ERASPropriedadeNascimento não possui nenhuma descrição nem no Swagger nem na documentação HTML. Qual o formato deste campo? Como obtê-lo?

RESPOSTA: Consultar o glossário.

3.1.14 Campos ERAS — Falta Explicação

O campo ERASPropriedadeResponsavel não possui nenhuma descrição nem no Swagger nem na documentação HTML. Qual o formato deste campo? Como obtê-lo? Qual a sua relação com os demais campos ERAS?

RESPOSTA: Consultar o glossário.

3.2 Produtor

3.2.1 Campos Obrigatórios vs Opcionais

O campo nome aparece como obrigatório ("Sim") na documentação HTML, porém o Swagger não indica sua obrigatoriedade. Esse campo é obrigatório?

RESPOSTA: OBRIGATÓRIO.

3.2.2 Campos Obrigatórios vs Opcionais

O campo cpfCnpj aparece como obrigatório ("Sim") na documentação HTML, porém o Swagger não indica sua obrigatoriedade. Esse campo é obrigatório?

RESPOSTA: OBRIGATÓRIO.

3.2.3 Campos Obrigatórios vs Opcionais

O campo email aparece como não obrigatório ("Não") na documentação HTML, porém o Swagger não indica sua obrigatoriedade. Esse campo é de fato opcional?

RESPOSTA: OPCIONAL.

3.2.4 Campos Obrigatórios vs Opcionais

O campo endereco.latitude aparece como "Condicional" na documentação HTML, com a observação de que é obrigatório em PUT /novoEndereco. Fora desse endpoint específico, este campo é opcional?

RESPOSTA: OPCIONAL.

3.2.5 Campos Obrigatórios vs Opcionais

O campo endereco.longitude aparece como "Condicional" na documentação HTML, com a observação de que é obrigatório em PUT /novoEndereco. Fora desse endpoint específico, este campo é opcional?

RESPOSTA: OPCIONAL.

3.2.6 Campos Obrigatórios vs Opcionais

O campo endereco.codigoMunicipio aparece como "Condicional" na documentação HTML, com a observação de que é obrigatório em PUT /novoEndereco. Fora desse endpoint específico, este campo é opcional?

RESPOSTA: OPCIONAL.

3.2.7 Campos Sem Descrição

O campo identificadorReceita não possui descrição. O que é este campo? É o CPF/CNPJ formatado?

RESPOSTA: Consultar o glossário.

3.2.8 Campos Sem Descrição

O campo codigo não possui descrição. É um código interno do sistema? Qual o seu formato?

RESPOSTA: NÃO PREENCHER.

3.2.9 Campos Sem Descrição

O campo isProprietario é um Boolean, mas não há descrição de sua implicação. O que significa este campo e qual o impacto de seu valor (true/false) no sistema?

RESPOSTA: Indica se o Produtor é também proprietário de uma Propriedade. Se informado "true" será cadastrado na tabela de Proprietários um proprietário que poderá ser localizado pelo seu "identificadorReceita"(chave natural).

3.2.10 Campos Sem Descrição

O campo statusAtividade é um Enum, mas os valores estão incompletos na documentação. Quais são todos os valores válidos para este campo no contexto do Produtor?

RESPOSTA: Existe um Enum descrevendo este tipo na sessão Schema do swagger.

3.2.11 Enum StatusAtividade

O Swagger não lista os valores para StatusAtividade no contexto do Produtor, enquanto a documentação HTML lista: CADASTRADA, AUTORIZADO, SUSPENSO. Esses são os únicos valores válidos para StatusAtividade do Produtor?

RESPOSTA: Existe um Enum descrevendo este tipo na sessão Schema do swagger.

3.3 Propriedade

3.3.1 Campos de Criação — CONFUSOS

O campo email é listado como obrigatório na documentação HTML, porém sem nenhuma descrição ou formato. Qual o formato esperado para este campo e ele é de fato obrigatório?

RESPOSTA: OPCIONAL.

3.3.2 Campos de Criação — CONFUSOS

O campo nome é listado como obrigatório na documentação HTML, porém sem nenhuma descrição. Esse campo é de fato obrigatório?

RESPOSTA: OBRIGATÓRIO.

3.3.3 Campos de Criação — CONFUSOS

O campo razaosocial é listado como obrigatório na documentação HTML, porém sem nenhuma descrição. Esse campo é de fato obrigatório? Qual a diferença entre razaosocial e nome?

RESPOSTA: OBRIGATÓRIO. A definição dos campos razaosocial e nome/nomeFantasia seguem a mesma semântica de dados definida pela Receita Federal.

3.3.4 Campos de Criação — CONFUSOS

O campo nirf é listado como obrigatório na documentação HTML, porém sem nenhuma descrição. O que é NIRF? Esse campo é de fato obrigatório?

RESPOSTA: Consultar o glossário.

3.3.5 Campos de Criação — CONFUSOS

O campo incra é listado como obrigatório na documentação HTML, porém sem nenhuma descrição. É o código INCRA da propriedade? Esse campo é de fato obrigatório?

RESPOSTA: Consultar o glossário.

3.3.6 Campos de Criação — CONFUSOS

O campo oesa é listado como obrigatório na documentação HTML, porém sem nenhuma descrição. O que é OESA? Esse campo é de fato obrigatório?

RESPOSTA: Consultar o glossário.

3.3.7 Campos de Criação — CONFUSOS

O campo inscricaoEstadual é listado como obrigatório na documentação HTML, porém sem nenhuma descrição. Qual o formato esperado? Varia por UF? Esse campo é de fato obrigatório?

RESPOSTA: OBRIGATÓRIO.

3.3.8 Campos de Criação — CONFUSOS

O campo acessoAFazenda é listado como obrigatório na documentação HTML, porém sem nenhuma descrição. É um texto livre? Esse campo é de fato obrigatório?

RESPOSTA: OPCIONAL.

3.3.9 Campos de Criação — CONFUSOS

O campo telefoneprimario é listado como obrigatório na documentação HTML, porém sem nenhuma descrição de formato. Qual o formato esperado para este campo? Esse campo é de fato obrigatório?

RESPOSTA: OBRIGATÓRIO. Consultar glossário.

3.3.10 Campos de Criação — CONFUSOS

O campo telefonesecundario é listado como obrigatório na documentação HTML, porém sem nenhuma descrição de formato. Qual o formato esperado para este campo? Esse campo é de fato obrigatório?

RESPOSTA: OPCIONAL.

3.3.11 Campos de Criação — CONFUSOS

O campo areaM2 é listado como obrigatório na documentação HTML, porém sem nenhuma descrição. Qual o tipo esperado: String ou Number? Esse campo é de fato obrigatório?

RESPOSTA: OBRIGATÓRIO. Consultar glossário.

3.3.12 Campos de Criação — CONFUSOS

O campo tipo é listado como obrigatório na documentação HTML e indicado como Enum, porém os valores não estão listados. Quais são os valores válidos para este campo?

RESPOSTA:SIM

3.3.13 Campos de Criação — CONFUSOS

O campo tipo é listado como obrigatório na documentação HTML e indicado como Enum, porém os valores não estão listados. Quais são os valores válidos para este campo?

RESPOSTA: Existe um Enum descrevendo este tipo na sessão Schema do swagger.

3.3.14 Campos de Criação — CONFUSOS

O campo car é listado como obrigatório na documentação HTML, porém sem nenhuma descrição. É o Cadastro Ambiental Rural? Esse campo é de fato obrigatório?

RESPOSTA: OPCIONAL.

3.3.15 Endereço — Campos Condicionais

Para o endpoint /novoEndereco, o campo logradouro é obrigatório apenas na documentação HTML, não sendo distinguido no Swagger. Esse campo é de fato obrigatório neste endpoint?

RESPOSTA: OBRIGATÓRIO.

3.3.16 Endereço — Campos Condicionais

Para o endpoint /novoEndereco, o campo numero é obrigatório apenas na documentação HTML, não sendo distinguido no Swagger. Esse campo é de fato obrigatório neste endpoint?

RESPOSTA: OPCIONAL.

3.3.17 Endereço — Campos Condicionais

Para o endpoint /novoEndereco, o campo bairro é obrigatório apenas na documentação HTML, não sendo distinguido no Swagger. Esse campo é de fato obrigatório neste endpoint?

RESPOSTA: OPCIONAL.

3.3.18 Endereço — Campos Condicionais

Para o endpoint /novoEndereco, o campo municipio é obrigatório apenas na documentação HTML, não sendo distinguido no Swagger. Esse campo é de fato obrigatório neste endpoint?

RESPOSTA: OBRIGATÓRIO.

3.3.19 Endereço — Campos Condicionais

Para o endpoint /novoEndereco, o campo cep é obrigatório apenas na documentação HTML, não sendo distinguido no Swagger. Esse campo é de fato obrigatório neste endpoint?

RESPOSTA: OPCIONAL.

3.3.20 Endereço — Campos Condicionais

Para o endpoint /novoEndereco, o campo codigoMunicipio é obrigatório apenas na documentação HTML, não sendo distinguido no Swagger. Esse campo é de fato obrigatório neste endpoint?

RESPOSTA: OPCIONAL.

3.3.21 Endereço — Campos Condicionais

Para o endpoint /novoEndereco, o campo latitude é obrigatório apenas na documentação HTML, não sendo distinguido no Swagger. Esse campo é de fato obrigatório neste endpoint?

RESPOSTA: OBRIGATÓRIO.

3.3.22 Endereço — Campos Condicionais

Para o endpoint /novoEndereco, o campo longitude é obrigatório apenas na documentação HTML, não sendo distinguido no Swagger. Esse campo é de fato obrigatório neste endpoint?

RESPOSTA: OBRIGATÓRIO.

3.3.23 Endereço — Campos Condicionais

Para o endpoint /novoEndereco, o campo uf é obrigatório apenas na documentação HTML, não sendo distinguido no Swagger. Esse campo é de fato obrigatório neste endpoint?

RESPOSTA: OBRIGATÓRIO.

3.3.24 Tipos de Produção — Apenas Confinamento Documentado

O documento identifica apenas o endpoint POST /integracao/propriedade/{id}/cadastrarConfinamento. Por que apenas o confinamento possui endpoint específico? Como cadastrar propriedades com outros tipos de produção (cria, recria, engorda)?

RESPOSTA: Este endpoint trata do cadastramento de período de confinamento para uma determinada propriedade conforme IN51. "tipos de produção" não mantém relacionamento semântico com este tópico.

3.3.25 Tipos de Produção — Apenas Confinamento Documentado

O tipo de produção é obrigatório para o cadastro da propriedade?

RESPOSTA: NÃO.

3.3.26 Tipos de Produção — Apenas Confinamento Documentado

Uma propriedade pode ter múltiplos tipos de produção?

RESPOSTA: "tipos de produção" não mantém relacionamento semântico com este tópico.

3.3.27 Enum StatusAtividade (Propriedade) — DIFERENTE de Produtor

O documento identifica que o mesmo nome de Enum StatusAtividade possui valores diferentes entre Produtor e Propriedade. Para a Propriedade, a documentação HTML lista: CADASTRADA, PENDENTE_POR_AJUSTE_REBANHO, PENDENTE_VISTORIA, PENDENTE_AUDITORIA, AUTORIZADO, SUSPENSO. Esses são os únicos valores válidos para StatusAtividade da Propriedade?

RESPOSTA: Existe um Enum descrevendo este tipo na sessão Schema do swagger.

3.4 Vínculo Produtor/Propriedade e PROPRIETÁRIO

3.4.1 Vínculo Produtor/Propriedade e PROPRIETÁRIO — Fluxo Não Documentado

Qual a diferença entre o conceito de "Proprietário" e "Produtor" no sistema? Quando deve ser criado um Proprietário em vez de usar um Produtor?

RESPOSTA: Consultar glossário.

3.4.2 Vínculo Produtor/Propriedade e PROPRIETÁRIO — Fluxo Não Documentado

Como vincular um Produtor a uma Propriedade? Existe endpoint específico para criar/remover este vínculo?

RESPOSTA: propriedade/{id}/vincularProdutor/{idProdutor} propriedade/{id}/desvincularProdutor/{idProdutor}.

3.4.3 Vínculo Produtor/Propriedade e PROPRIETÁRIO — Fluxo Não Documentado

Qual a sequência correta de cadastro: criar o Produtor primeiro ou a Propriedade?

RESPOSTA: São cadastros independentes, não existe hierarquia ou prioridade. As duas entidades devem estar cadastradas antes de serem vinculadas.

3.4.4 Vínculo Produtor/Propriedade e PROPRIETÁRIO — Fluxo Não Documentado

Um Produtor pode estar vinculado a múltiplas Propriedades?

RESPOSTA: SIM.

3.4.5 Vínculo Produtor/Propriedade e PROPRIETÁRIO — Fluxo Não Documentado

Uma Propriedade pode ter múltiplos Produtores vinculados?

RESPOSTA: SIM.

3.4.6 Vínculo Produtor/Propriedade e PROPRIETÁRIO — Fluxo Não Documentado

O campo ERASPropriedadeResponsavel está presente no modelo Animal, mas sem explicação. Qual a diferença entre ERASPropriedadeResponsavel e ERASPropriedadeLocalizacao?

RESPOSTA: Consultar glossário.

3.5 GTA

3.5.1 Campos Obrigatórios Confusos

O campo numero aparece com obrigatoriedade indefinida no Swagger ("?"), enquanto a documentação HTML indica como obrigatório ("Sim"). Esse campo é de fato obrigatório?

RESPOSTA: OBRIGATÓRIO.

3.5.2 Campos Obrigatórios Confusos

O campo serie aparece com obrigatoriedade indefinida no Swagger ("?"), enquanto a documentação HTML indica como obrigatório ("Sim"). Esse campo é de fato obrigatório?

RESPOSTA: SIM.

3.5.3 Campos Obrigatórios Confusos

O campo numeroComposto aparece com obrigatoriedade indefinida no Swagger ("?"), enquanto a documentação HTML indica como obrigatório ("Sim"). Esse campo é de fato obrigatório?

RESPOSTA: OBRIGATÓRIO.

3.5.4 Campos Obrigatórios Confusos

O campo uf aparece com obrigatoriedade indefinida no Swagger ("?"), enquanto a documentação HTML indica como obrigatório ("Sim"). Esse campo é de fato obrigatório?

RESPOSTA: SIM.

3.5.5 Campos Obrigatórios Confusos

O campo quantidadeDeAnimais aparece com obrigatoriedade indefinida no Swagger ("?"), enquanto a documentação HTML indica como obrigatório ("Sim"). Esse campo é de fato obrigatório?

RESPOSTA: SIM.

3.5.6 Campos Obrigatórios Confusos

O campo tipoTransporte aparece com obrigatoriedade indefinida no Swagger ("?"), enquanto a documentação HTML indica como obrigatório ("Sim"). Esse campo é de fato obrigatório?

RESPOSTA: SIM.

3.5.7 Campos Obrigatórios Confusos

O campo tipoGTA aparece com obrigatoriedade indefinida no Swagger ("?"), enquanto a documentação HTML indica como obrigatório ("Sim"). Esse campo é de fato obrigatório?

RESPOSTA: SIM.

3.5.8 Campos Opcionais para GTA "Não Cadastrado"

O Swagger não documenta os seguintes campos: identificadorReceitaProdutorNaoCadastrado, oesaPropriedadeNaoCadastrada, nomeProdutorNaoCadastrado, nomePropriedadeNaoCadastrada. Quando devem ser utilizados estes campos? Qual a lógica para seu uso?

RESPOSTA: Estes campos devem ser utilizados em GTA de entrada de animais originados de propriedade não ERAS, por isso "Não Cadastrado" uma vez que a originação não está cadastrada na BND.

3.5.9 Enum TipoGTA

O Swagger não documenta os valores para TipoGTA, enquanto a documentação HTML lista: PADRAO, SEM_IDENTIFICACAO_ORIGEM. Esses são os únicos valores válidos para este campo? Quando utilizar cada um?

RESPOSTA: PADRAO: GTA utilizada para Movimentações. SEM_IDENTIFICACAO_ORIGEM: GTA de entrada de animais originados de propriedade não ERAS. Seu numeroComposto é utilizado no cadastro de Animal sem identificação de origem.

3.5.10 Enum TipoTransporte

O Swagger não documenta os valores para TipoTransporte, enquanto a documentação HTML lista: CAMINHAO, CARAVANA, A_PE, RODOVIARIO, MARITMO_FLUVIAL, AEREO. Esses são os únicos valores válidos para este campo?

RESPOSTA: Existe um Enum descrevendo este tipo na sessão Schema do swagger.

3.5.11 Upload de Arquivos — FLUXO COMPLEXO NÃO NO SWAGGER

A documentação HTML descreve um fluxo de 3 etapas para upload de arquivos na GTA:

POST /gta/{id}/informarUpload/{nome} — Informa intenção POST https://files-hmg-sisbov.agricultura.gov.br/file/upload/.. — Upload real PUT /gta/{id}/concluirUpload — Conclui

O Swagger não documenta este fluxo. As credenciais para o serviço de arquivos (Access-Key e Secret-Key) são as mesmas utilizadas na autenticação da API principal ou são credenciais separadas?

RESPOSTA: As credenciais Access-Key e Secret-Key são únicas no sistema. A ordem de chamadas dos serviços está correta.

3.6 Movimentação

3.6.1 Campos Obrigatórios

O campo dataMovimentacao aparece com obrigatoriedade indefinida no Swagger ("?"), enquanto a documentação HTML indica como obrigatório ("Sim"). Esse campo é de fato obrigatório?

RESPOSTA: OBRIGATÓRIO.

3.6.2 Campos Obrigatórios

O campo idPropriedadeOrigem aparece com obrigatoriedade indefinida no Swagger ("?"), enquanto a documentação HTML indica como obrigatório ("Sim"). Esse campo é de fato obrigatório?

RESPOSTA: No serviço de Movimentação é opcional o uso do "idPropriedadeOrigem" ou "erasPropriedadeOrigem", "idProdutorOrigem" ou "identificadorReceitaProdutorOrigem". Não é necessário saber id's do destino, basta utilizar as chaves naturais: * identificadorReceita para Produtor * codigoEras para Propriedade * numeroSISBOV para Animal * numeroCompleto para GTA * CNPJ ou SIF para Frigorífico.

3.6.3 Campos Obrigatórios

O campo idPropriedadeDestino aparece com obrigatoriedade indefinida no Swagger ("?"), enquanto a documentação HTML indica como obrigatório ("Sim"). Com base na resposta anterior, este campo também pode ser substituído pelo uso da chave natural codigoEras da propriedade de destino?

RESPOSTA: No serviço de Movimentação é opcional o uso do "idPropriedadeOrigem" ou "erasPropriedadeOrigem", "idProdutorOrigem" ou "identificadorReceitaProdutorOrigem". Não é necessário saber id's do destino, basta utilizar as chaves naturais: * identificadorReceita para Produtor * codigoEras para Propriedade * numeroSISBOV para Animal * numeroCompleto para GTA * CNPJ ou SIF para Frigorífico.

3.6.4 Campos Obrigatórios

O campo finalidade aparece com obrigatoriedade indefinida no Swagger ("?") e como não obrigatório ("Não") na documentação HTML. Esse campo é de fato opcional?

RESPOSTA: NÃO OBRIGATÓRIO.

3.6.5 Campos Obrigatórios

O campo finalidade aparece com obrigatoriedade indefinida no Swagger ("?") e como não obrigatório ("Não") na documentação HTML. Esse campo é de fato opcional?

RESPOSTA: Não existe o campo "finalidade" na Movimentação.

3.6.6 Campos Obrigatórios

O campo observacoes aparece com obrigatoriedade indefinida no Swagger ("?") e como não obrigatório ("Não") na documentação HTML. Esse campo existe na Movimentação? Se sim, é opcional?

RESPOSTA: OPCIONAL.

3.6.7 Enum StatusMovimentacao

O Swagger não documenta os valores para StatusMovimentacao, enquanto a documentação HTML lista: CADASTRADA, INICIADA, FINALIZADA, CANCELADA. Esses são os únicos valores válidos para este campo?

RESPOSTA: Existe um Enum descrevendo este tipo na sessão Schema do swagger.

3.6.8 Enum TipoMovimentacao

O Swagger não documenta os valores para TipoMovimentacao, enquanto a documentação HTML lista: ENTRE_PROPRIEDADES_ORIGEM, ENTRE_PROPRIEDADES_DESTINO, PARA_FRIGORIFICO. Esses são os únicos valores válidos para este campo?

RESPOSTA: Existe um Enum descrevendo este tipo na sessão Schema do swagger.

3.6.9 Endpoints Faltando no Swagger

O endpoint PUT /{id}/iniciarMovimentacao está identificado na documentação HTML mas não consta no Swagger. Esse endpoint existe e está disponível para uso?

RESPOSTA: Utilize o endpoint/movimentacao/{id}/iniciarMovimentacao.

3.6.10 Endpoints Faltando no Swagger

O endpoint PUT /{id}/finalizarMovimentacaoEntrePropriedades está identificado na documentação HTML mas não consta no Swagger. Esse endpoint existe e está disponível para uso?

RESPOSTA: Não está faltando.

3.6.11 Endpoints Faltando no Swagger

O endpoint DELETE /{id}/removerAnimais está identificado na documentação HTML mas não consta no Swagger. Esse endpoint existe e está disponível para uso?

RESPOSTA: Não está faltando.

3.6.12 Endpoints Faltando no Swagger

O endpoint DELETE /{id}/removerTodosAnimais está identificado na documentação HTML mas não consta no Swagger. Esse endpoint existe e está disponível para uso?

RESPOSTA: Não está faltando.

3.6.13 Endpoints Faltando no Swagger

O endpoint DELETE /{id}/removerGTAs está identificado na documentação HTML mas não consta no Swagger. Esse endpoint existe e está disponível para uso?

RESPOSTA: Não está faltando.

3.6.14 Endpoints Faltando no Swagger

O endpoint DELETE /{id}/removerTodasGTAs está identificado na documentação HTML mas não consta no Swagger. Esse endpoint existe e está disponível para uso?

RESPOSTA: Não está faltando.

3.6.15 Enum TipoFormacaoLote

O Swagger não documenta os valores para TipoFormacaoLote, enquanto a documentação HTML lista: SEXO, PESO_MEDIO, EXPORTAVEL, NAO_EXPORTAVEL, POR_AGLOMERACAO, POR_PRODUTOR, POR_PROPRIEDADE, POR_TEMPO_DE_CONFINAMENTO, QUARENTENA_CUMPRIDA, NOVENTENA_CUMPRIDA, POR_CAMINHAO, APTO, NAO_APTO. Esses são os únicos valores válidos para este campo?

RESPOSTA: Existe um Enum descrevendo este tipo na sessão Schema do swagger.

3.6.2 Enum StatusLote

O Swagger não documenta os valores para StatusLote, enquanto a documentação HTML lista: CRIADO, PRE_SUMARIO, SUMARIO, VALIDADO. Esses são os únicos valores válidos para este campo?

RESPOSTA: Existe um Enum descrevendo este tipo na sessão Schema do swagger.

3.7 Vistoria

3.7.1 Campos para Criação

O campo tipo é listado como obrigatório na documentação HTML com os valores CONFORMIDADE, REVISAO. Esses são os únicos valores válidos para este campo?

RESPOSTA: Existe um Enum descrevendo este tipo na sessão Schema do swagger.

3.7.2 Campos para Criação

O campo alias é listado como obrigatório na documentação HTML. Esse campo é de fato obrigatório? O que representa?

RESPOSTA: OBRIGATÓRIO. Nome/Apelido/Tag para facilitar a localização de uma vistoria.9:53 PMConfirma? (SIM/NÃO)sim9:53 PM

3.7.3 Campos para Criação

O campo dataAgendamento é listado como obrigatório na documentação HTML com formato aaaa-mm-dd. Esse campo é de fato obrigatório?

RESPOSTA: OBRIGATÓRIO.

3.7.4 Campos para Criação

O campo idPropriedade é listado como obrigatório na documentação HTML. Esse campo é de fato obrigatório? Pode ser substituído pela chave natural codigoEras da propriedade?

RESPOSTA: OBRIGATÓRIO.

3.7.5 Campos para Criação

O campo idTecnico é listado como obrigatório na documentação HTML. Esse campo é de fato obrigatório? Como obter o UUID do técnico?

RESPOSTA: OBRIGATÓRIO. Utilizar serviço "tecnico/{cpf}/getTecnicoPorCpf".

3.7.6 Campos para Criação

O campo idCheckList é listado como obrigatório na documentação HTML. Esse campo é de fato obrigatório? Como obter o UUID do checklist disponível?

RESPOSTA: OBRIGATÓRIO. Utilizar serviço "/vistoria/listarCheckList".

3.7.7 Enum OpcaoResposta

O Swagger não documenta os valores para OpcaoResposta, enquanto a documentação HTML lista: SIM, NAO, CONFORME, NAO_CONFORME, NAO_APLICAVEL. Esses são os únicos valores válidos para este campo?

RESPOSTA: Existe um Enum descrevendo este tipo na sessão Schema do swagger.

3.7.8 Endpoints Disponíveis vs Necessários

O endpoint GET /vistoria/list não está disponível na API. Como listar vistorias com filtros por data, status ou propriedade?

RESPOSTA: O endpoint citado está disponível.

3.7.9 Endpoints Disponíveis vs Necessários

O endpoint GET /vistoria/count não está disponível na API. Como contar vistorias?

RESPOSTA: O endpoint citado está disponível.

3.7.10 Endpoints Disponíveis vs Necessários

O endpoint PUT /vistoria/{id}/reagendar não está disponível na API. Como reagendar uma vistoria?

RESPOSTA: O endpoint citado está disponível.

3.7.11 Endpoints Disponíveis vs Necessários

O endpoint PUT /vistoria/{id}/cancelar não está disponível na API. Como cancelar uma vistoria?

RESPOSTA: O endpoint citado está disponível.

3.7.12 Endpoints Disponíveis vs Necessários

O endpoint PUT /vistoria/{id}/realizar não está disponível na API. Como registrar a realização de uma vistoria?

RESPOSTA: O endpoint citado está não existe.

3.7.13 Endpoints Disponíveis vs Necessários

Considerando que o endpoint PUT /vistoria/{id}/realizar não existe, qual é o fluxo correto para registrar a realização de uma vistoria e suas respostas ao checklist?

RESPOSTA: POST /vistoria GET {id}/listarPerguntasPUT vistoria/resposta/{idResposta}/responderAtualizar/{opcaoSelecionada}PUT vistoria/{id}/aprovar/{parecer}Mostrar mais.

3.8 Lote

3.8.1 Lote — Problema Principal

Para que serve o conceito de Lote no SISBOV 2.0?

RESPOSTA: O conceito de Lote é aplicável somente no contexto de frigoríficos para ordenação do Abate. Não se aplica às atividade das Certificadoras.

3.8.2 Enum TipoFormacaoLote — 13 valores SEM EXPLICAÇÃO

O que significa cada tipo de formação de lote (SEXO, PESO_MEDIO, EXPORTAVEL, NAO_EXPORTAVEL, POR_AGLOMERACAO, POR_PRODUTOR, POR_PROPRIEDADE, POR_TEMPO_DE_CONFINAMENTO, QUARENTENA_CUMPRIDA, NOVENTENA_CUMPRIDA, POR_CAMINHAO, APTO, NAO_APTO)? Quando utilizar cada um? Um lote pode ter múltiplos tipos?

RESPOSTA: O conceito de Lote é aplicável somente no contexto de frigoríficos para ordenação do Abate. Não se aplica às atividade das Certificadoras.

3.8.3 Enum StatusLote — Fluxo Não Documentado

O que significa cada status do lote (CRIADO, PRE_SUMARIO, SUMARIO, VALIDADO)? Qual a sequência obrigatória de transições? O que é "sumário" neste contexto?

RESPOSTA: O conceito de Lote é aplicável somente no contexto de frigoríficos para ordenação do Abate. Não se aplica às atividade das Certificadoras.

3.8.4 Endpoints de Lote

Considerando que o conceito de Lote é aplicável somente no contexto de frigoríficos, os endpoints de Lote (POST /lote, PUT /lote/{id}/adicionarAnimais, PUT /lote/{id}/adicionarTipos, PUT /lote/{id}/concluir, GET /lote/listByMovimentacao/{id}) também não se aplicam às atividades das Certificadoras?

RESPOSTA: O conceito de Lote é aplicável somente no contexto de frigoríficos para ordenação do Abate. Não se aplica às atividade das Certificadoras.

3.9.1 Saída para Frigorífico — Fluxo Não Documentado

Qual o fluxo completo para enviar animais ao frigorífico via API? Qual a sequência de chamadas necessárias para uma movimentação do tipo PARA_FRIGORIFICO?

RESPOSTA: Fluxo similar à Movimentação entre Propriedades, sendo que não se informam o Produtor e a Propriedade de destino e informa-se o Frigorífico de destino(SIF ou CNPJ).

3.9.3 Saída para Frigorífico — Transições de Status do Animal

Quando o animal muda para o status EM_TRANSITO? É durante a movimentação após iniciarMovimentacao?

RESPOSTA: SIM.

3.9.3 Saída para Frigorífico — Transições de Status do Animal

Quando o animal entra no status EM_FRIGORIFICO? É após a finalização da movimentação PARA_FRIGORIFICO?

RESPOSTA: SIM.

3.9.3 Saída para Frigorífico — Transições de Status do Animal

O que significam os status CALHA_SANGRIA e APTO_PARA_ABATE_PARA_EXPORTACAO? Quando o animal entra em cada um desses status?

RESPOSTA: Estes status são aplicáveis somente no contexto de frigoríficos. Não se aplica às atividade das Certificadoras.

3.9.3 Saída para Frigorífico — Transições de Status do Animal

Qual a diferença entre os status ABATIDO e ABATIDO_PARA_EXPORTACAO? Como registrar o abate do animal via API?

RESPOSTA: Estes status são aplicáveis somente no contexto de frigoríficos. Não se aplica às atividade das Certificadoras.

3.9.3 Saída para Frigorífico — Papel da Certificadora vs Frigorífico

Quais operações são responsabilidade da Certificadora versus o Frigorífico no contexto da saída de animais para abate?

RESPOSTA: Somente criar a Movimentação para Frigorífico, adicionar GTA's, adicionar Animais e iniciar a movimentação. A partir deste momento a responsabilidade é do Frigorífico de destino.

3.9.3 Saída para Frigorífico — GTA para Frigorífico

A GTA para frigorífico tem requisitos ou validações especiais em relação à GTA para movimentação entre propriedades?

RESPOSTA: NÃO.10:24 PMConfirma? (SIM/NÃO)sim10:24 PM

3.10 Morte de Animal

3.10.1 Lista de Causas de Morte

O endpoint PUT /animal/{id}/registraMorte/{idCausaMorte}/{dataMorte} exige idCausaMorte (UUID), porém não existe endpoint para listar as causas de morte disponíveis. Como obter os UUIDs válidos para idCausaMorte?

RESPOSTA: Utilizar o endpointutil/dominio/listDominio/{dominio}.

3.10.2 Fluxo Não Documentado

Quais são os pré-requisitos para registrar a morte de um animal? Em quais status o animal pode ter morte registrada (ex: pode registrar morte de animal EM_TRANSITO)?

RESPOSTA: Utilizar endpoint PUT animal/{id}/registraMorte/{idCausaMorte}/{dataMorte}.

3.10.3 Cancelamento Sem Regras

Em quais situações o endpoint PUT /animal/{id}/cancelarMorte pode ser utilizado? Há prazo limite para cancelamento? É necessária justificativa?

RESPOSTA: O animal deve estar morto.

3.10.4 Campo idMorte no Animal

O campo idMorte existe no modelo Animal (preenchido pelo sistema). Qual a diferença entre idMorte (campo do animal) e idCausaMorte (parâmetro do endpoint)?

RESPOSTA: "idMorte" é o identificador artificial do registro de morte do Animal. "idCausaMorte" é o id fornecido pela tabela de domínio CausaMorte e que deve ser informado no endpoint "PUT animal/{id}/registraMorte/{idCausaMorte}/{dataMorte}".

3.11 Desligamento de Animal

3.11.1 Lista de Tipos de Desligamento

O endpoint PUT /animal/{id}/registraDesligamento/{idTipoDesligamento} exige idTipoDesligamento (UUID), porém não existe endpoint para listar os tipos de desligamento disponíveis. Como obter os UUIDs válidos para idTipoDesligamento?

RESPOSTA: Utilizar o endpointutil/dominio/listDominio/{dominio}.

3.11.2 Diferença entre Desligamento e Morte

Qual a diferença entre DESLIGADO e MORTO? Quando usar desligamento versus morte?

RESPOSTA: DESLIGADO: animal não localizado, removido do rastreamento via protocolo SISBOV, animal removido por ajuste de rebanho, etc. MORTE: informação de morte por algum motivo identificado no idCausaMorte.

3.11.3 Religamento Sem Regras

O endpoint PUT /animal/{id}/registraReligamento existe, mas não há documentação sobre em quais situações pode ser usado, se há prazo limite, se requer justificativa, ou se qualquer tipo de desligamento pode ser revertido. Quais são as regras para o religamento de um animal?

RESPOSTA: O animal tem que estar desligado.

3.11.4 Campo idDesligamento no Animal

O campo idDesligamento existe no modelo Animal (preenchido pelo sistema). Qual a diferença entre idDesligamento (campo do animal) e idTipoDesligamento (parâmetro do endpoint)?

RESPOSTA: "idDesligamento" é o identificador artificial do registro de desligamento do Animal. "idTipoDesligamento" é o id fornecido pela tabela de domínio TipoDesligamento e que deve ser informado no endpoint "PUT animal/{id}/registraDesligamento/{idTipoDesligamento}".

3.12 Serviços Utilitários / Tabelas de Domínio

3.12.1 Como obter os valores válidos das tabelas de domínio

Tabelas de domínio: CausasMorte, TiposDesligamento, CódigosDeRaça, TiposDePropriedade, Municípios, ItensDeChecklist e demais tabelas necessárias para as integrações?

RESPOSTA: Analisar os serviços do endpoint

/util

ou utilizar o endpoint

/util/dominio/listDominio/{dominio}

3.13 Solicitação de Numeração

3.13.1 Campo idUsuarioSolicitante

O campo idUsuarioSolicitante é extraído automaticamente do token JWT ou deve ser informado pela certificadora? Existe endpoint para listar usuários?

RESPOSTA: É extraído automaticamente do token JWT.

3.13.2 Campo idUsuarioAprovacao

O campo idUsuarioAprovacao é preenchido automaticamente pelo sistema ou deve ser informado? Quem aprova a solicitação de numeração?

RESPOSTA: Até 20000 números solicitados aprovação é automática pelo sistema.

3.13.3 Campo idFabrica

Como obter o UUID válido para o campo idFabrica? Existe endpoint para listar as fábricas de brincos disponíveis?

RESPOSTA: Utilizar endpoint /solicitacaoNumeracao/listFabricas.

3.13.4 Campo idFaixaDeNumeracao

Como obter o UUID válido para o campo idFaixaDeNumeracao? Existe endpoint para listar as faixas de numeração disponíveis?

RESPOSTA: NÃO PREENCHER.

3.13.5 Fluxo de Aprovação

Qual o fluxo completo de aprovação de solicitação de numeração? Existem endpoints específicos para aprovar ou rejeitar uma solicitação (ex: PUT /solicitacaoNumeracao/{id}/aprovar e PUT /solicitacaoNumeracao/{id}/rejeitar)?

RESPOSTA: Até 20000 números solicitados aprovação é automática pelo sistema. Acima desta quantidade a aprovação deve ser solicitada à SDA. A rejeição deve ser solicitada à SDA.

3.13.6 Status e Transições

Quais são os status possíveis da solicitação de numeração e quais transições são permitidas?

RESPOSTA: Existe um Enum descrevendo este Status na sessão Schema do swagger.

3.13.7 Enum StatusNumeracao

O Swagger não documenta os valores para StatusNumeracao, enquanto a documentação HTML lista: GERADA, AGUARDANDO_RECEBIMENTO, RECEBIDA, NOTA_FISCAL_CADASTRADA, CANCELADA, NUMERACAO_CARGA, FINALIZADA, NAO_AUTORIZADA. Esses são os únicos valores válidos para este campo?

RESPOSTA: Existe um Enum descrevendo este tipo na sessão Schema do swagger.

4. Códigos de Erro

4.1 Erro 417

O código de erro 417 é descrito como "Execution failure" no Swagger e "NegocioException" na documentação HTML, sem especificação dos erros possíveis. Existe uma lista completa dos erros de negócio que podem retornar com este código?

RESPOSTA: HTTP Status Code 417: EXPECTATION_FAILEDSempre seguido do texto descritivo do erro.

4.2 Erro 403

O código de erro 403 é descrito como "Forbidden" no Swagger e "User unauthorized" na documentação HTML, sem especificação dos cenários. Em quais situações este código é retornado?

RESPOSTA: Consultar HTTP Status Code.

4.3 Erro 401

O código de erro 401 não está documentado no Swagger, mas a documentação HTML menciona "Credenciais inválidas". Em quais situações este código é retornado?

RESPOSTA: Consultar HTTP Status Code.

4.4 Mensagens de Erro NÃO Documentadas

As seguintes mensagens de erro foram encontradas apenas na documentação de Autenticação, sem documentação para os demais módulos:

"Credenciais inválidas." "Usuário desabilitado no sistema." "Usuário não vinculado a um supervisor no sistema." "Usuário não vinculado a um responsável técnico no sistema."

4.5 Lista de Mensagens de Erro

Existe uma lista completa de mensagens de erro específicas para cada módulo da API?

RESPOSTA: O padrão HTTP Status Code é aplicado sempre seguido do texto descritivo do erro.

5 Campos Sem Descrição

5.1 Animal

O campo identificadorReceitaProdutor não possui descrição. É o CPF/CNPJ do produtor? Qual o seu formato?

RESPOSTA: Consultar glossário.

5.2 Animal

O campo identificadorReceitaProdutor não possui descrição. É o CPF/CNPJ do produtor? Qual o seu formato?

RESPOSTA: Consultar glossário.

5.3 Animal

O campo identificadorReceitaProdutorCadastramento não possui descrição. Qual a diferença entre este campo e o campo identificadorReceitaProdutor?

RESPOSTA: Consultar glossário.

5.4 Animal

O campo registroDefinitivo é mencionado em busca mas não consta no modelo. O que é este campo e como utilizá-lo?

RESPOSTA: DESCONSIDERAR.

5.5 Animal

O campo registroProvisorio é mencionado em busca mas não consta no modelo. O que é este campo e como utilizá-lo?

RESPOSTA: DESCONSIDERAR.

5.6 Propriedade

O campo oesa não possui descrição. O que significa OESA? Qual o seu formato?

RESPOSTA: Consultar glossário.

5.7 Propriedade

O campo codigoERAS não possui descrição. É o mesmo que o campo ERAS do Animal?

RESPOSTA: Consultar glossário.

5.8 GTA

O campo numeroComposto não possui descrição de formato. Qual o formato esperado para este campo? É algo como "123456789/2023"?

RESPOSTA: Consultar glossário.

5.9 GTA

O campo tipoGTA — quando usar o valor PADRAO versus SEM_IDENTIFICACAO_ORIGEM?

RESPOSTA: Já respondido em questão anterior.

5.10 Frigorífico

O campo categoria do Frigorífico possui apenas o valor EXPORTADOR documentado. Existem outros valores válidos para este campo?

RESPOSTA: DESCONSIDERAR.

5.11 Frigorífico

O campo classe do Frigorífico possui apenas o valor A documentado. Qual o significado deste campo e existem outros valores válidos?

RESPOSTA: DESCONSIDERAR.

5.12 Frigorífico

O campo sif do Frigorífico não possui descrição de formato. Qual o formato esperado para este campo?

RESPOSTA: Consultar glossário.

6.1 Regras de Negócio

6.1.1 Ocultas

A documentação HTML indica que o endpoint de morte de animal "Processa um animal por vez", enquanto o Swagger sugere processamento em batch. Qual é o comportamento correto: o endpoint processa um animal por vez ou em lote?

RESPOSTA: Um animal por vez.

6.1.2 Ocultas

A documentação HTML indica que no endpoint de atualização de Animal "Não pode enviar apenas campos alterados" — é necessário enviar o objeto completo (full object). Isso está correto?

RESPOSTA: Enviar somente os dados a serem alterados.

6.1.3 Ocultas

O endpoint PUT /lote/{id}/concluir — após concluir um lote, ele impede modificações futuras? O lote pode ser reaberto após conclusão?SIM11:17 PM2 / 2Confirma? (SIM/NÃO)NÃO11:18 PM

6.1.4 Ocultas

O endpoint PUT /lote/{id}/concluir — após concluir um lote, ele impede modificações futuras? O lote pode ser reaberto após conclusão?SIM11:18 PM2 / 2Confirma? (SIM/NÃO)NÃO11:19 PM

6.1.5 Ocultas

O endpoint PUT /lote/{id}/concluir — após concluir um lote, é possível fazer modificações no lote? O lote pode ser reaberto após a conclusão?

RESPOSTA: Não utilizar serviços de lote. Fazem parte do contexto de Frigorífico.

6.1.6 Ocultas

As transições de status para Movimentação não estão documentadas. Quais são as transições de status válidas para uma Movimentação?

RESPOSTA: (ex: CADASTRADA → INICIADA → FINALIZADA)Existe um Enum descrevendo este Status na sessão Schema do swagger.

6.1.7 Ocultas

As regras de data futura para reagendamento de Vistoria não estão explícitas. Existe alguma restrição de data mínima ou máxima para reagendamento de uma vistoria?

RESPOSTA: Não pode haver reagendamento para data menor ou igual a data corrente.

6.2 Formatos de Data

O formato esperado para campos de data (LocalDate) é YYYY-MM-DD. Este formato está correto para todos os campos de data na API?

RESPOSTA: Consultar glossário.

6.3 Formatos de Data

O formato esperado para campos de data/hora (DateTime) é ISO 8601. Este formato está correto para todos os campos de data/hora na API?

RESPOSTA: Consultar glossário.

6.4 Validações de CEP/Município

A documentação HTML menciona que "CEP deve ser válido" e que "codigoMunicipio é obrigatório", mas o Swagger não menciona estas validações. O CEP é validado pelo sistema? O codigoMunicipio é obrigatório no cadastro de endereço?

RESPOSTA: Já respondido anteriormente.

7. Estoque de Brincos Padrão 105

7.1 Estoque de Brincos Padrão 105

Os brincos padrão 105 já adquiridos pelos produtores continuarão válidos no SISBOV 2.0?

RESPOSTA: Sim estão válidos enquanto não utilizados, a atuais solicitações serão portadas para o SISBOV 2.0. Novas solicitações de numeração gerarão números padrão 076.

7.2 Estoque de Brincos Padrão 105

Qual o endpoint da API para consultar o estoque de brincos disponíveis de um produtor/propriedade?

RESPOSTA: Não existe um endpoint com esta finalidade. Esta consulta deve ser feita na WEB.

7.3 Estoque de Brincos Padrão 105

Qual o endpoint para gerar comunicados de identificação utilizando numeração do padrão 105?

RESPOSTA: Não existe um endpoint com esta finalidade. Ao ser utilizado no cadastramento de Animal o status do número é atualizado automaticamente.

7.4 Estoque de Brincos Padrão 105

Os dados de estoque de brincos foram migrados do sistema legado para o SISBOV 2.0? Se sim, como consultá-los?

RESPOSTA: Atuais solicitações serão portadas para o SISBOV 2.0. Esta consulta deve ser feita na WEB.

7.5 Estoque de Brincos Padrão 105

Como será o processo de vinculação do brinco físico 105 ao animal no novo sistema?

RESPOSTA: Ao ser utilizado no cadastramento de Animal o status do número é atualizado automaticamente.

8. Fluxos Não Documentados

8.1 Cancelamento de Movimentação

Qual é o fluxo correto para cancelar uma movimentação? Em quais status a movimentação pode ser cancelada? O que acontece com os animais vinculados após o cancelamento?

RESPOSTA: Uma movimentação pode ser cancelada antes de ser finalizada. O status dos animais são retornam ao status antes da movimentação. Os animais só alteram a propriedadeLocalização e o produtor após a finalização da movimentação. Após a finalização não é possível o cancelamento da mesma.

8.2 Fluxo completo de Movimentação

Qual é a sequência correta e obrigatória de etapas para uma movimentação entre propriedades? Quais são as dependências entre as etapas?

RESPOSTA: Ações da origem: CADASTRAR(informar GTA's, adicionar animais), INICIAR. Ações do destino: FINALIZAR.

8.3 StatusAnimal

Qual a diferença entre ABATIDO e ABATIDO_PARA_EXPORTACAO?

RESPOSTA: Destinação pós abate.

8.4 StatusAnimal

O status EM_TRANSITO ocorre durante a movimentação após iniciarMovimentacao? Quando exatamente o animal sai deste status?

RESPOSTA: Quando a movimentação é CANCELADA pela origem ou FINALIZADA pelo destino.

8.5 StatusMovimentacao

É possível cancelar uma movimentação com status INICIADA? O que acontece com os animais ao cancelar uma movimentação iniciada?

RESPOSTA: Já respondido anteriormente.

8.6 StatusAtividade (Propriedade)

Em quais status a propriedade pode operar normalmente (cadastrar animais, realizar movimentações)? O que causa cada status de pendência (PENDENTE_POR_AJUSTE_REBANHO, PENDENTE_VISTORIA, PENDENTE_AUDITORIA)?

RESPOSTA: Em nenhum dos status descritos.

8.7 TipoEntradaAnimal

O que significa cada tipo de entrada de animal? Quando utilizar NASCIMENTO vs ENTRADA vs CARGA_INICIAL? O que é DADOS_MIGRADOS? O que é REINDENTIFICACAO e quando ocorre?

RESPOSTA: NASCIMENTO = identificação ENTRADA = entrada a partir de uma propriedade não ERAS REINDENTIFICACAO = reidentificação por mudança de elemento de identificação CARGA_INICIAL , DADOS_MIGRADOS = utilização por portabilidade, não utilizado pelas certificadoras.

9. Ausência de Versionamento da API e da Documentação

9.1 Versionamento da API

Qual a versão atual da API? Existe controle de versionamento? Como será feito o versionamento da API (URL path, header, query parameter)?

RESPOSTA: A estereira de publicação está sendo ajustada para publicar o numero de versão da API.

9.2 Política de Depreciação

Qual a política de depreciação de endpoints e campos? Com quanto tempo de antecedência as certificadoras serão notificadas sobre mudanças na API?

RESPOSTA: O Version Number em software geralmente segue o padrão de Versionamento Semântico (Semantic Versioning), representado por três números no formato MAJOR.MINOR.PATCH (por exemplo, 2.4.1). Nesse padrão, o MAJOR indica mudanças que quebram compatibilidade com versões anteriores, ou seja, quando APIs, contratos, estruturas de dados ou comportamentos são alterados de forma que clientes existentes podem deixar de funcionar sem adaptação; o MINOR é incrementado quando novas funcionalidades são adicionadas de forma retrocompatível, mantendo o funcionamento de integrações já existentes; e o PATCH representa correções de bugs ou ajustes internos que não alteram a interface pública do sistema. Assim, a alteração do MAJOR number sinaliza explicitamente aos consumidores da API ou biblioteca que houve uma descontinuidade de compatibilidade, justificando atualização controlada ou migração por parte dos integradores. O padrão acima é o padrão a ser adotado. Portanto a certificadora deve acompanhar continuamente a numeração não sendo avisada à priori. Outrossim a evolução ocorrerá primeiramente em homologação.

9.3 Changelog

Existe um changelog (registro de alterações) da API disponível? Como saber se a documentação está atualizada?

RESPOSTA: Sim, na documentação auxiliar da api tem uma página de changelog.

9.4 Convivência de Versões

Existe diferença de versão entre os ambientes de homologação e produção? Haverá período de convivência entre versões (ex: v1 e v2 funcionando simultaneamente)?

RESPOSTA: Em produção haverá somente uma versão ativa. Entre homologação e produção pode haver descompasso entre versões pois correções e evoluções acontecem primeiramente em homologação.