diff --git a/pom.xml b/pom.xml
index bc17511..02284e6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
Bem-vindo à API do sistema Cadastro de Atributos.
O Cadastro de Atributos define a estrutura dos atributos configurados pelos órgãos anuentes para compor as declarações de comércio exterior. Dependendo do seu objetivo, um atributo pode ser vinculado a um dos seguintes elementos:
A descrição dos serviços faz referência à variável URL_BASE, que é definida de acordo com o ambiente destino da integração:
Nome do Ambiente | URL de acesso |
---|---|
Ambiente de Validação das Empresas | https://val.portalunico.siscomex.gov.br/cadatributos/api |
Ambiente de Produção | https://portalunico.siscomex.gov.br/cadatributos/api |
A seguir são especificados os serviços para download da relação completa de atributos, independente dos vínculos, e das relações de atributos por código NCM e de atributos por Fundamento Legal. Essas relações são atualizadas diariamente, à meia-noite, e o download pode ser realizado para qualquer data de referência, seja passada, atual ou futura.
Os arquivos são gerados na sintaxe XML ou JSON, conforme solicitado, e são retornados compactados, no formato ZIP. A versão do arquivo é indicada no campo ‘versao’ e o histórico das mudanças pode ser consultado em formato HTML, nas URLs a seguir:
Para consultar os vínculos de atributos com modelos de LPCO, deve-se utilizar a API do Tratamento Administrativo e LPCO.
Além dos serviços para download, a API oferece consultas mais específicas, que retornam sempre uma estrutura em formato JSON:
Bem-vindo à API do sistema Cadastro de Atributos.
O Cadastro de Atributos define a estrutura dos atributos configurados pelos órgãos anuentes para compor as declarações de comércio exterior. Dependendo do seu objetivo, um atributo pode ser vinculado a um dos seguintes elementos:
A descrição dos serviços faz referência à variável URL_BASE, que é definida de acordo com o ambiente destino da integração:
Nome do Ambiente | URL de acesso |
---|---|
Ambiente de Validação das Empresas | https://val.portalunico.siscomex.gov.br/cadatributos/api |
Ambiente de Produção | https://portalunico.siscomex.gov.br/cadatributos/api |
A seguir são especificados os serviços para download da relação completa de atributos, independente dos vínculos, e das relações de atributos por código NCM e de atributos por Fundamento Legal. Essas relações são atualizadas diariamente, à meia-noite, e o download pode ser realizado para qualquer data de referência, seja passada, atual ou futura.
Os arquivos são gerados na sintaxe XML ou JSON, conforme solicitado, e são retornados compactados, no formato ZIP. A versão do arquivo é indicada no campo ‘versao’ e o histórico das mudanças pode ser consultado em formato HTML, nas URLs a seguir:
Para consultar os vínculos de atributos com modelos de LPCO, deve-se utilizar a API do Tratamento Administrativo e LPCO.
Além dos serviços para download, a API oferece consultas mais específicas, que retornam sempre uma estrutura em formato JSON:
Bem-vindo à API do sistema Cadastro de Atributos.
O Cadastro de Atributos define a estrutura dos atributos configurados pelos órgãos anuentes para compor as declarações de comércio exterior. Dependendo do seu objetivo, um atributo pode ser vinculado a um dos seguintes elementos:
A descrição dos serviços faz referência à variável URL_BASE, que é definida de acordo com o ambiente destino da integração:
Nome do Ambiente | URL de acesso |
---|---|
Ambiente de Validação das Empresas | https://val.portalunico.siscomex.gov.br/cadatributos/api |
Ambiente de Produção | https://portalunico.siscomex.gov.br/cadatributos/api |
A seguir são especificados os serviços para download da relação completa de atributos, independente dos vínculos, e das relações de atributos por código NCM e de atributos por Fundamento Legal. Essas relações são atualizadas diariamente, à meia-noite, e o download pode ser realizado para qualquer data de referência, seja passada, atual ou futura.
Os arquivos são gerados na sintaxe XML ou JSON, conforme solicitado, e são retornados compactados, no formato ZIP. A versão do arquivo é indicada no campo ‘versao’ e o histórico das mudanças pode ser consultado em formato HTML, nas URLs a seguir:
Para consultar os vínculos de atributos com modelos de LPCO, deve-se utilizar a API do Tratamento Administrativo e LPCO.
Além dos serviços para download, a API oferece consultas mais específicas, que retornam sempre uma estrutura em formato JSON:
Bem-vindo à API do sistema Cadastro de Atributos.
O Cadastro de Atributos define a estrutura dos atributos configurados pelos órgãos anuentes para compor as declarações de comércio exterior. Dependendo do seu objetivo, um atributo pode ser vinculado a um dos seguintes elementos:
A descrição dos serviços faz referência à variável URL_BASE, que é definida de acordo com o ambiente destino da integração:
Nome do Ambiente | URL de acesso |
---|---|
Ambiente de Validação das Empresas | https://val.portalunico.siscomex.gov.br/cadatributos/api |
Ambiente de Produção | https://portalunico.siscomex.gov.br/cadatributos/api |
A seguir são especificados os serviços para download da relação completa de atributos, independente dos vínculos, e das relações de atributos por código NCM e de atributos por Fundamento Legal. Essas relações são atualizadas diariamente, à meia-noite, e o download pode ser realizado para qualquer data de referência, seja passada, atual ou futura.
Os arquivos são gerados na sintaxe XML ou JSON, conforme solicitado, e são retornados compactados, no formato ZIP. A versão do arquivo é indicada no campo ‘versao’ e o histórico das mudanças pode ser consultado em formato HTML, nas URLs a seguir:
Para consultar os vínculos de atributos com modelos de LPCO, deve-se utilizar a API do Tratamento Administrativo e LPCO.
Além dos serviços para download, a API oferece consultas mais específicas, que retornam sempre uma estrutura em formato JSON:
Bem-vindo à API do sistema Cadastro de Atributos.
O Cadastro de Atributos define a estrutura dos atributos configurados pelos órgãos anuentes para compor as declarações de comércio exterior. Dependendo do seu objetivo, um atributo pode ser vinculado a um dos seguintes elementos:
A descrição dos serviços faz referência à variável URL_BASE, que é definida de acordo com o ambiente destino da integração:
Nome do Ambiente | URL de acesso |
---|---|
Ambiente de Validação das Empresas | https://val.portalunico.siscomex.gov.br/cadatributos/api |
Ambiente de Produção | https://portalunico.siscomex.gov.br/cadatributos/api |
A seguir são especificados os serviços para download da relação completa de atributos, independente dos vínculos, e das relações de atributos por código NCM e de atributos por Fundamento Legal. Essas relações são atualizadas diariamente, à meia-noite, e o download pode ser realizado para qualquer data de referência, seja passada, atual ou futura.
Os arquivos são gerados na sintaxe XML ou JSON, conforme solicitado, e são retornados compactados, no formato ZIP. A versão do arquivo é indicada no campo ‘versao’ e o histórico das mudanças pode ser consultado em formato HTML, nas URLs a seguir:
Para consultar os vínculos de atributos com modelos de LPCO, deve-se utilizar a API do Tratamento Administrativo e LPCO.
Além dos serviços para download, a API oferece consultas mais específicas, que retornam sempre uma estrutura em formato JSON:
Bem-vindo à API do sistema Cadastro de Atributos.
O Cadastro de Atributos define a estrutura dos atributos configurados pelos órgãos anuentes para compor as declarações de comércio exterior. Dependendo do seu objetivo, um atributo pode ser vinculado a um dos seguintes elementos:
A descrição dos serviços faz referência à variável URL_BASE, que é definida de acordo com o ambiente destino da integração:
Nome do Ambiente | URL de acesso |
---|---|
Ambiente de Validação das Empresas | https://val.portalunico.siscomex.gov.br/cadatributos/api |
Ambiente de Produção | https://portalunico.siscomex.gov.br/cadatributos/api |
A seguir são especificados os serviços para download da relação completa de atributos, independente dos vínculos, e das relações de atributos por código NCM e de atributos por Fundamento Legal. Essas relações são atualizadas diariamente, à meia-noite, e o download pode ser realizado para qualquer data de referência, seja passada, atual ou futura.
Os arquivos são gerados na sintaxe XML ou JSON, conforme solicitado, e são retornados compactados, no formato ZIP. A versão do arquivo é indicada no campo ‘versao’ e o histórico das mudanças pode ser consultado em formato HTML, nas URLs a seguir:
Para consultar os vínculos de atributos com modelos de LPCO, deve-se utilizar a API do Tratamento Administrativo e LPCO.
Além dos serviços para download, a API oferece consultas mais específicas, que retornam sempre uma estrutura em formato JSON:
Exemplos de Respostas da Consulta DAT
", tags = {"Documento de Transporte"}) @ApiResponses(value = { - @ApiResponse(code = 200, message = "Operação realizada com sucesso", response = DocumentosTransporte.class), + @ApiResponse(code = 200, message = "Operação realizada com sucesso", response = ListaDocumentosTransporte.class), @ApiResponse(code = 400, message = "XML não atende as especificações definidas no XSD (requisições com envio de arquivos xml)"), @ApiResponse(code = 422, message = "Erro(s) de validação da camada de negócio"), @ApiResponse(code = 401, message = "Usuário não autenticado ou autenticação inválida"), @@ -61,7 +61,7 @@ public interface DocumentoDeTransporteApi { @Produces({"application/json"}) @ApiOperation(value = "Consultar uma lista de Documento de Transporte do tipo DTAI", notes = "Exemplos de Respostas da Consulta DTAI
", tags = {"Documento de Transporte"}) @ApiResponses(value = { - @ApiResponse(code = 200, message = "Operação realizada com sucesso", response = DocumentosTransporte.class), + @ApiResponse(code = 200, message = "Operação realizada com sucesso", response = ListaDocumentosTransporte.class), @ApiResponse(code = 400, message = "XML não atende as especificações definidas no XSD (requisições com envio de arquivos xml)"), @ApiResponse(code = 422, message = "Erro(s) de validação da camada de negócio"), @ApiResponse(code = 401, message = "Usuário não autenticado ou autenticação inválida"), @@ -81,7 +81,7 @@ public interface DocumentoDeTransporteApi { @Produces({"application/json"}) @ApiOperation(value = "Consultar uma lista de Documento de Transporte do tipo MIC-DTA", notes = "Exemplos de Respostas da Consulta MIC
", tags = {"Documento de Transporte"}) @ApiResponses(value = { - @ApiResponse(code = 200, message = "Operação realizada com sucesso", response = DocumentosTransporte.class), + @ApiResponse(code = 200, message = "Operação realizada com sucesso", response = ListaDocumentosTransporte.class), @ApiResponse(code = 400, message = "XML não atende as especificações definidas no XSD (requisições com envio de arquivos xml)"), @ApiResponse(code = 422, message = "Erro(s) de validação da camada de negócio"), @ApiResponse(code = 401, message = "Usuário não autenticado ou autenticação inválida"), @@ -101,7 +101,7 @@ public interface DocumentoDeTransporteApi { @Produces({"application/json"}) @ApiOperation(value = "Consultar uma lista de Documento de Transporte do tipo TIF-DTA", notes = "Exemplos de Respostas da Consulta TIF-DTA
", tags = {"Documento de Transporte"}) @ApiResponses(value = { - @ApiResponse(code = 200, message = "Operação realizada com sucesso", response = DocumentosTransporte.class), + @ApiResponse(code = 200, message = "Operação realizada com sucesso", response = ListaDocumentosTransporte.class), @ApiResponse(code = 400, message = "XML não atende as especificações definidas no XSD (requisições com envio de arquivos xml)"), @ApiResponse(code = 422, message = "Erro(s) de validação da camada de negócio"), @ApiResponse(code = 401, message = "Usuário não autenticado ou autenticação inválida"), diff --git a/src/main/java/br/gov/siscomex/portalunico/cct_ext/model/Carga.java b/src/main/java/br/gov/siscomex/portalunico/cct_ext/model/Carga.java deleted file mode 100644 index 0b39a48..0000000 --- a/src/main/java/br/gov/siscomex/portalunico/cct_ext/model/Carga.java +++ /dev/null @@ -1,508 +0,0 @@ -package br.gov.siscomex.portalunico.cct_ext.model; - -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; - -import javax.validation.Valid; -import javax.validation.constraints.NotNull; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlType; -import java.math.BigDecimal; - -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "Carga", propOrder = - {"consignatario", "remetente", "destinatario", "codigoAduanaDestino", "nomeAduanaDestino", "paisOrigemMercadorias", "valorFOTMercadorias", "moedaValorFOT", "valorSeguro", "moedaValorSeguro", "codigoTiposVolumes", "nomeTiposVolumes", "qtdeVolumes", "pesoBruto", "descricaoMercadorias", "documentosAnexos", "nfes" - }) - -@XmlRootElement(name = "Carga") -/** - * Dados da carga - **/ -@ApiModel(description = "Dados da carga") -public class Carga { - - @XmlElement(name = "consignatario", required = true) - @ApiModelProperty(required = true, value = "") - @Valid - private Consignatario consignatario = null; - - @XmlElement(name = "remetente", required = true) - @ApiModelProperty(required = true, value = "") - @Valid - private Remetente remetente = null; - - @XmlElement(name = "destinatario", required = true) - @ApiModelProperty(required = true, value = "") - @Valid - private Destinatrio destinatario = null; - - @XmlElement(name = "codigoAduanaDestino") - @ApiModelProperty(example = "12AB567", value = "Código da aduana de destinoBem-vindo à Application Programming Interface (API) do sistema Pucomex - Controle de Cargas de Importação - Modal Aquaviário.
Sistema desenvolvido para simplificar o controle de carga no processo de Importação, dando uma única solução e um único fluxo para qualquer tipo de carga do modal aquaviário de transporte. Facilita a organização e realização da recepção, entrega, desunitização.
Para utilizar os serviços disponíveis nessa API deve-se seguir o seguinte padrão de URL:
https://{ambiente}/cct/{serviço}
Onde, em {ambiente} deve-se informar o ambiente desejado dentro os ambientes disponíveis na tabela abaixo e em {serviço} utilizar a URL do serviço desejado.
Nome do Ambiente | URL de acesso |
---|---|
Ambiente de Validação da Empresas | val.portalunico.siscomex.gov.br |
Ambiente de Produção | portalunico.siscomex.gov.br |
Exemplo: Para o serviço \"Recepção de Carga\" a URL é \"api/ext/imp/carga/recepcao/duimp\".
Logo, abaixo temos um exemplo de URL completa considerando o ambiente de Validação, consumindo este serviço
https://val.portalunico.siscomex.gov.br/cct/api/ext/imp/carga/recepcao/duimp
+ * */ @Path("/") @Api(value = "/", description = "") @@ -28,8 +29,9 @@ public interface EntregaDeCargaApi { /** * Entregar Carga por Duimp - *+ * * Entrega de carga através do número de uma Duimp transferindo a responsabilidade pelo estoque da carga + * */ @POST @Path("/api/ext/imp/carga/entrega/duimp") diff --git a/src/main/java/br/gov/siscomex/portalunico/cct_imp/api/OperaesDeContinerApi.java b/src/main/java/br/gov/siscomex/portalunico/cct_imp/api/OperaesDeContinerApi.java index 5564bb0..06a4044 100644 --- a/src/main/java/br/gov/siscomex/portalunico/cct_imp/api/OperaesDeContinerApi.java +++ b/src/main/java/br/gov/siscomex/portalunico/cct_imp/api/OperaesDeContinerApi.java @@ -21,6 +21,7 @@ * Controle de Carga de Importação - Modal Aquaviário * *
Bem-vindo à Application Programming Interface (API) do sistema Pucomex - Controle de Cargas de Importação - Modal Aquaviário.
Sistema desenvolvido para simplificar o controle de carga no processo de Importação, dando uma única solução e um único fluxo para qualquer tipo de carga do modal aquaviário de transporte. Facilita a organização e realização da recepção, entrega, desunitização.
Para utilizar os serviços disponíveis nessa API deve-se seguir o seguinte padrão de URL:
https://{ambiente}/cct/{serviço}
Onde, em {ambiente} deve-se informar o ambiente desejado dentro os ambientes disponíveis na tabela abaixo e em {serviço} utilizar a URL do serviço desejado.
Nome do Ambiente | URL de acesso |
---|---|
Ambiente de Validação da Empresas | val.portalunico.siscomex.gov.br |
Ambiente de Produção | portalunico.siscomex.gov.br |
Exemplo: Para o serviço \"Recepção de Carga\" a URL é \"api/ext/imp/carga/recepcao/duimp\".
Logo, abaixo temos um exemplo de URL completa considerando o ambiente de Validação, consumindo este serviço
https://val.portalunico.siscomex.gov.br/cct/api/ext/imp/carga/recepcao/duimp
+ * */ @Path("/") @Api(value = "/", description = "") @@ -28,6 +29,7 @@ public interface OperaesDeContinerApi { /** * Desunitizar Contêiner + * */ @POST @Path("/api/ext/imp/conteiner/desunitizar") diff --git a/src/main/java/br/gov/siscomex/portalunico/cct_imp/api/OperaesDeEstoqueApi.java b/src/main/java/br/gov/siscomex/portalunico/cct_imp/api/OperaesDeEstoqueApi.java index c02c52b..691aab1 100644 --- a/src/main/java/br/gov/siscomex/portalunico/cct_imp/api/OperaesDeEstoqueApi.java +++ b/src/main/java/br/gov/siscomex/portalunico/cct_imp/api/OperaesDeEstoqueApi.java @@ -20,6 +20,7 @@ * Controle de Carga de Importação - Modal Aquaviário * *Bem-vindo à Application Programming Interface (API) do sistema Pucomex - Controle de Cargas de Importação - Modal Aquaviário.
Sistema desenvolvido para simplificar o controle de carga no processo de Importação, dando uma única solução e um único fluxo para qualquer tipo de carga do modal aquaviário de transporte. Facilita a organização e realização da recepção, entrega, desunitização.
Para utilizar os serviços disponíveis nessa API deve-se seguir o seguinte padrão de URL:
https://{ambiente}/cct/{serviço}
Onde, em {ambiente} deve-se informar o ambiente desejado dentro os ambientes disponíveis na tabela abaixo e em {serviço} utilizar a URL do serviço desejado.
Nome do Ambiente | URL de acesso |
---|---|
Ambiente de Validação da Empresas | val.portalunico.siscomex.gov.br |
Ambiente de Produção | portalunico.siscomex.gov.br |
Exemplo: Para o serviço \"Recepção de Carga\" a URL é \"api/ext/imp/carga/recepcao/duimp\".
Logo, abaixo temos um exemplo de URL completa considerando o ambiente de Validação, consumindo este serviço
https://val.portalunico.siscomex.gov.br/cct/api/ext/imp/carga/recepcao/duimp
+ * */ @Path("/") @Api(value = "/", description = "") @@ -27,8 +28,9 @@ public interface OperaesDeEstoqueApi { /** * Consultar Estoque - *+ * * Consultar o estoque por número de Duimp e/ou por número de CE Mercante + * */ @GET @Path("/api/ext/imp/estoque/pos-acd") diff --git a/src/main/java/br/gov/siscomex/portalunico/cct_imp/api/RecepoDeCargaApi.java b/src/main/java/br/gov/siscomex/portalunico/cct_imp/api/RecepoDeCargaApi.java index 454c650..2a9e14c 100644 --- a/src/main/java/br/gov/siscomex/portalunico/cct_imp/api/RecepoDeCargaApi.java +++ b/src/main/java/br/gov/siscomex/portalunico/cct_imp/api/RecepoDeCargaApi.java @@ -21,6 +21,7 @@ * Controle de Carga de Importação - Modal Aquaviário * *
Bem-vindo à Application Programming Interface (API) do sistema Pucomex - Controle de Cargas de Importação - Modal Aquaviário.
Sistema desenvolvido para simplificar o controle de carga no processo de Importação, dando uma única solução e um único fluxo para qualquer tipo de carga do modal aquaviário de transporte. Facilita a organização e realização da recepção, entrega, desunitização.
Para utilizar os serviços disponíveis nessa API deve-se seguir o seguinte padrão de URL:
https://{ambiente}/cct/{serviço}
Onde, em {ambiente} deve-se informar o ambiente desejado dentro os ambientes disponíveis na tabela abaixo e em {serviço} utilizar a URL do serviço desejado.
Nome do Ambiente | URL de acesso |
---|---|
Ambiente de Validação da Empresas | val.portalunico.siscomex.gov.br |
Ambiente de Produção | portalunico.siscomex.gov.br |
Exemplo: Para o serviço \"Recepção de Carga\" a URL é \"api/ext/imp/carga/recepcao/duimp\".
Logo, abaixo temos um exemplo de URL completa considerando o ambiente de Validação, consumindo este serviço
https://val.portalunico.siscomex.gov.br/cct/api/ext/imp/carga/recepcao/duimp
+ * */ @Path("/") @Api(value = "/", description = "") @@ -28,8 +29,9 @@ public interface RecepoDeCargaApi { /** * Recepcionar Carga por Duimp - *+ * * Recepção de carga através do número de uma Duimp puxando a responsabilidade pelo estoque da carga + * */ @POST @Path("/api/ext/imp/carga/recepcao/duimp") diff --git a/src/main/java/br/gov/siscomex/portalunico/cct_imp/model/BusinessExceptionCover.java b/src/main/java/br/gov/siscomex/portalunico/cct_imp/model/BusinessExceptionCover.java index bbd3e8f..30369e3 100644 --- a/src/main/java/br/gov/siscomex/portalunico/cct_imp/model/BusinessExceptionCover.java +++ b/src/main/java/br/gov/siscomex/portalunico/cct_imp/model/BusinessExceptionCover.java @@ -255,7 +255,6 @@ public BusinessExceptionCover severity(SeverityEnum severity) { /** * Get info - * * @return info **/ @JsonProperty("info") diff --git a/src/main/java/br/gov/siscomex/portalunico/cct_imp/model/ConsultaEstoquePosDetails.java b/src/main/java/br/gov/siscomex/portalunico/cct_imp/model/ConsultaEstoquePosDetails.java index d0dd83f..a1ac7e5 100644 --- a/src/main/java/br/gov/siscomex/portalunico/cct_imp/model/ConsultaEstoquePosDetails.java +++ b/src/main/java/br/gov/siscomex/portalunico/cct_imp/model/ConsultaEstoquePosDetails.java @@ -321,7 +321,6 @@ public ConsultaEstoquePosDetails addVeiculosItem(VeiculoDetails veiculosItem) { /** * Número da Duimp - * * @return numeroDUIMP **/ @JsonProperty("numeroDUIMP") @@ -340,7 +339,6 @@ public ConsultaEstoquePosDetails numeroDUIMP(String numeroDUIMP) { /** * Descrição da situação da Duimp - * * @return situacao **/ @JsonProperty("situacao") @@ -359,7 +357,6 @@ public ConsultaEstoquePosDetails situacao(String situacao) { /** * Descrição do canal da Duimp - * * @return canal **/ @JsonProperty("canal") @@ -378,7 +375,6 @@ public ConsultaEstoquePosDetails canal(String canal) { /** * Get importador - * * @return importador **/ @JsonProperty("importador") @@ -440,7 +436,6 @@ public ConsultaEstoquePosDetails valorTotalMercadoriaNoLocalDescarregamento(BigD /** * Get destinoFinalCarga - * * @return destinoFinalCarga **/ @JsonProperty("destinoFinalCarga") @@ -459,7 +454,6 @@ public ConsultaEstoquePosDetails destinoFinalCarga(UrfDTO destinoFinalCarga) { /** * Nome do consignarário - * * @return nomeConsignatario **/ @JsonProperty("nomeConsignatario") @@ -478,7 +472,6 @@ public ConsultaEstoquePosDetails nomeConsignatario(String nomeConsignatario) { /** * Nome do país de origem da carga - * * @return paisOrigemCarga **/ @JsonProperty("paisOrigemCarga") @@ -497,7 +490,6 @@ public ConsultaEstoquePosDetails paisOrigemCarga(String paisOrigemCarga) { /** * Indica se existe autorização no Sistema DIMP para entrega da carga - * * @return entregaAutorizadaPelaDuimp **/ @JsonProperty("entregaAutorizadaPelaDuimp") diff --git a/src/main/java/br/gov/siscomex/portalunico/cct_imp/model/DiagnosticInfo.java b/src/main/java/br/gov/siscomex/portalunico/cct_imp/model/DiagnosticInfo.java index 245c91a..e2037d4 100644 --- a/src/main/java/br/gov/siscomex/portalunico/cct_imp/model/DiagnosticInfo.java +++ b/src/main/java/br/gov/siscomex/portalunico/cct_imp/model/DiagnosticInfo.java @@ -170,7 +170,6 @@ public DiagnosticInfo url(String url) { /** * Get fluxo - * * @return fluxo **/ @JsonProperty("fluxo") diff --git a/src/main/java/br/gov/siscomex/portalunico/cct_imp/model/RecepcaoDocumentoCarga.java b/src/main/java/br/gov/siscomex/portalunico/cct_imp/model/RecepcaoDocumentoCarga.java index 4ee40c4..9bcf426 100644 --- a/src/main/java/br/gov/siscomex/portalunico/cct_imp/model/RecepcaoDocumentoCarga.java +++ b/src/main/java/br/gov/siscomex/portalunico/cct_imp/model/RecepcaoDocumentoCarga.java @@ -242,7 +242,6 @@ public RecepcaoDocumentoCarga localArmazenamento(String localArmazenamento) { /** * Observações gerais<br>Tamanho: 250 - * * @return observacoes **/ @JsonProperty("observacoes") diff --git a/src/main/java/br/gov/siscomex/portalunico/cct_imp/model/UnexpectedExceptionCover.java b/src/main/java/br/gov/siscomex/portalunico/cct_imp/model/UnexpectedExceptionCover.java index 6e85fb1..7214bba 100644 --- a/src/main/java/br/gov/siscomex/portalunico/cct_imp/model/UnexpectedExceptionCover.java +++ b/src/main/java/br/gov/siscomex/portalunico/cct_imp/model/UnexpectedExceptionCover.java @@ -255,7 +255,6 @@ public UnexpectedExceptionCover severity(SeverityEnum severity) { /** * Get info - * * @return info **/ @JsonProperty("info") diff --git a/src/main/java/br/gov/siscomex/portalunico/cct_rcar/model/IExceptionCover.java b/src/main/java/br/gov/siscomex/portalunico/cct_rcar/model/IExceptionCover.java index 92472ee..27e2fd4 100644 --- a/src/main/java/br/gov/siscomex/portalunico/cct_rcar/model/IExceptionCover.java +++ b/src/main/java/br/gov/siscomex/portalunico/cct_rcar/model/IExceptionCover.java @@ -225,7 +225,6 @@ public IExceptionCover tag(String tag) { /** * Get code - * * @return code **/ @JsonProperty("code") @@ -244,7 +243,6 @@ public IExceptionCover code(String code) { /** * Get field - * * @return field **/ @JsonProperty("field") @@ -281,6 +279,7 @@ public IExceptionCover message(String message) { /** * Get detail + * * @return detail **/ @JsonProperty("detail") diff --git a/src/main/java/br/gov/siscomex/portalunico/ccta/model/DocumentoSaidaConsultaDetalhada.java b/src/main/java/br/gov/siscomex/portalunico/ccta/model/DocumentoSaidaConsultaDetalhada.java index dfa78bb..5f4c8e6 100644 --- a/src/main/java/br/gov/siscomex/portalunico/ccta/model/DocumentoSaidaConsultaDetalhada.java +++ b/src/main/java/br/gov/siscomex/portalunico/ccta/model/DocumentoSaidaConsultaDetalhada.java @@ -177,9 +177,9 @@ public static TipoEnum fromValue(String v) { } @XmlElement(name = "tipo") - @ApiModelProperty(example = "20", value = "Tipo de documento de saída
Os documentos podem ser:
10 – DIOs documentos podem ser:
10 – DIOs documentos podem ser:
10 – DIOs documentos podem ser:
10 – DIOs documentos podem ser:
10 – DIOs documentos podem ser:
10 – DIOs documentos podem ser:
10 – DIOs documentos podem ser:
10 – DIInformações detalhadas sobre serviços e funcionalidades em tela, assim como a lista de funcionalidades disponíveis para cada perfil de acesso, podem ser consultados no manual do usuário do CCT Importação.
Bem-vindo à Application Programming Interface (API) de interação com o novo Sistema de Controle de Carga e Trânsito (CCT Importação - Modal Aéreo). Trata-se de um conjunto de rotinas e padrões de programação para acesso a um aplicativo de software baseado nos padrões Web, que permitirá a manifestação e gestão do fluxo logístico de viagens e cargas dentro do Portal Único de Comércio Exterior.
A documentação a seguir descreve os serviços da versão atual do sistema, disponível no ambiente de validação do setor privado. Não há, até o momento, versão disponível para uso em produção. O intuito da API é permitir que as empresas possam realizar testes, preparando as adaptações necessárias em seus sistemas. As informações encaminhadas para os endpoints, neste momento, não terão valor legal, nem serão reaproveitadas em produção.
Os perfis de acesso que podem utilizar cada serviço encontram-se listados no manual do usuário. Os Operadores de Remessa Postal/Expressa podem atuar como transportador, agente de carga, depositário ou importador, desde que devidamente cadastrados nestes perfis de atuação. As ESATA (Empresas de Serviços Auxiliares ao Transporte Aéreo) podem interagir com os serviços desde que possuam representação para atuar como transportador ou agente de carga. Para executar as ações relacionadas à recepção de carga e à chegada de veículo terrestre (trânsito aduaneiro), os recintos aduaneiros (depositários) devem utilizar os serviços disponibilizados pela API Recintos Aduaneiros.
Para a utilização dos serviços do CCT Importação – Modal Aéreo, a autenticação via certificação digital por e-CPF é obrigatória. Na seção Introdução da API do Portal Único de Comércio Exterior, podem ser encontradas as orientações gerais sobre os padrões de comunicação dos serviços, os procedimentos para autenticação e os códigos de resposta das requisições.
Os serviços, a princípio, não estarão disponíveis no horário de 1:00h às 3:00h, em virtude de parada programada dos sistemas de comércio exterior.
Os arquivos referentes à manifestação de viagens e cargas devem seguir o padrão Cargo XML da IATA (Associação Internacional de Transportes Aéreos). Para conhecimento dos elementos de dados, estrutura e formato do padrão XSD, deve-se buscar a informação no site da IATA (www.iata.org). Nesta API, serão detalhadas somente as informações solicitadas de forma diferente do padrão IATA.
Serão solicitados aos transportadores aéreos os arquivos XFFM/XFWB, e aos agentes de carga os arquivos XFZB/XFHL, a serem enviados pelos serviços abaixo, descritos em maiores detalhes nas suas respectivas seções desta API:
Os arquivos somente serão recebidos caso o XML esteja de acordo com o XSD da IATA. Os arquivos corretamente validados passarão à situação "Received" e receberão um número de protocolo associado ao recebimento desse arquivo, sendo encaminhados para processamento. Os arquivos que não forem validados pelo XSD da IATA terão situação "Rejected" e não receberão número de protocolo.
Após a validação do XSD, será realizado o processamento do conteúdo dos campos dos arquivos. Este processamento inclui verificações, tais como: se o campo foi informado vazio ou acima do tamanho permitido, se as informações constam no cadastro da Receita Federal (CPF, CNPJ), etc., com vistas à gravação do dado na base. Os arquivos corretamente processados passarão à situação "Processed", e os que apresentarem algum tipo de erro passarão para "Rejected".
A qualquer momento, a situação dos arquivos enviados pode ser consultada pelos seguintes serviços descritos nesta API:
Durante o processamento, haverá batimento do conteúdo dos dados com tabelas de domínio. Os domínios que estão sendo validados e que podem causar rejeição de arquivo referem-se a:
A lista de campos a serem informados e a definição de se eles são obrigatórios ou opcionais seguirão, via de regra, os padrões estabelecidos pela IATA, passando pela validação do XSD. As exceções serão mencionadas explicitamente na descrição dos serviços na API, fazendo parte do processamento dos arquivos. Os tipos e tamanhos de campos também seguirão, via de regra, os padrões estabelecidos pela IATA e, quando não validados pelo XSD, serão verificados no processamento.
Serão processados os seguintes tipos de operação para os arquivos:
Os arquivos XFFM, XFWB, XFZB e XFHL podem ser enviados em qualquer ordem, desde que cumpram com os prazos estabelecidos pela Receita Federal do Brasil.
O escopo atual do projeto se encontra restrito a voos regulares. Voos não regulares serão objeto de versões futuras.
Para utilizar os serviços disponíveis nessa API deve-se seguir o seguinte padrão de URL:
https://{ambiente}/ccta/{serviço}
Onde, em {ambiente} deve-se informar o ambiente desejado dentro os ambientes disponíveis na tabela abaixo e em {serviço} utilizar a URL do serviço desejado.
Nome do Ambiente | URL de acesso |
---|---|
Ambiente de Validação da Empresas | val.portalunico.siscomex.gov.br |
Ambiente de Produção | portalunico.siscomex.gov.br |
Exemplo: Para o serviço \"Informar Viagem - XFFM (Flight Manifest)\" a URL é \"/api/ext/incoming/xffm\".
Logo, abaixo temos um exemplo de URL completa considerando o ambiente de Validação, consumindo este serviço
https://val.portalunico.siscomex.gov.br/ccta/api/ext/incoming/xffm
- * */ @Path("/") @Api(value = "/", description = "") @@ -29,9 +28,8 @@ public interface ServiosDeEnvioDeArquivosApi { /** * Informar Viagem - XFFM (Flight Manifest) - * + ** <p style=\"margin-bottom: 1em; margin-top: 1em;\">Encaminhamento de arquivo XML para processamento de viagens áereas com suas respectivas cargas. Uma viagem consiste em um voo específico, aeroporto de partida, aeroporto(s) de chegada(s) e data/hora de partida. Será permitida apenas uma mensagem <strong>(XFFM)</strong> por arquivo, contendo a operação Creation, na versão 2.00, conforme o padrão estabelecido pela IATA. Não há operação Update ou Deletion para este arquivo.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">Inicialmente, somente serão aceitos arquivos de viagem <strong>XFFM</strong> com aeroporto de partida no exterior e o primeiro aeroporto de chegada no Brasil. Desta forma, o aeroporto de partida constante no <strong>XFFM</strong> deve ser referente à última partida antes de chegar ao Brasil. Todas as cargas que se encontram na aeronave, independentemente do destino final das cargas, devem constar do <strong>XFFM</strong>.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">A data/hora de partida efetiva da viagem deve ser anterior à data/hora da chegada da viagem, caso haja informação de chegada para a mesma.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">Os arquivos <strong>XFFM</strong> devem ser enviados uma única vez por viagem. Caso seja necessária alteração dos dados após o envio, pode ser enviado novo arquivo com a operação Creation, que deve conter a mesma identificação de viagem e data de criação posterior à anterior (FlightManifest/MessageHeaderDocument/IssueDateTime). Arquivos com mesma identificação de viagem e data de criação igual ou anterior serão rejeitados (situação "Rejected").</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">A identificação da viagem (FlightManifest/BusinessHeaderDocument/ID) deve ser informada conforme o padrão IATA, contendo exatamente 17 posições, no formato XX9999AAAAMMDDYYY, sendo:</p><ul> <li>XX9999: Código do voo, formado por 2 caracteres da sigla IATA da CIA aérea e 4 caracteres do número de voo. Quando o número do voo contiver menos de 4 caracteres numéricos, devem ser informados zeros à esquerda.</li> <li>AAAAMMDD: Data de partida prevista do último aeroporto estrangeiro antes de vir ao Brasil.</li> <li>YYY: Aeroporto de partida do último aeroporto estrangeiro antes de vir ao Brasil.</li></ul><p style=\"margin-bottom: 1em; margin-top: 1em;\">Um arquivo <strong>XFFM</strong> que está sendo enviado pela primeira vez pode ser encaminhado a qualquer momento, inclusive após a chegada da aeronave. Já um arquivo que esteja substituindo o arquivo anterior poderá ser enviado após a primeira chegada da aeronave daquela viagem no Brasil, contanto que a retificação não seja para exclusão de conhecimentos de carga associados à viagem. Vale ressaltar que a troca do aeroporto de chegada de um conhecimento de carga não é considerada exclusão. Somente será considerada exclusão quando o conhecimento era mencionado no <strong>XFFM</strong> original e deixou de ser mencionado após a retificação, independentemente do aeroporto de chegada.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">Após 48 horas da chegada da viagem, não é mais permitido alterar informações sobre os conhecimentos de carga (ex: indicador de parcialidade, peso, volumes, etc) previstos para este aeroporto, sendo permitida apenas a inclusão de novos conhecimentos de carga. Para os demais aeroportos, pode haver alterações normalmente até que ocorra a informação de chegada da viagem.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">A retificação de uma viagem poderá ser realizada igualmente via tela, sendo permitido a cada Companhia Aérea retificar somente as suas viagens, considerando a representação do usuário que está utilizando o sistema.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">Para viagens com partida no exterior, devem ser enviados apenas arquivos <strong>XFFM</strong> com data da partida efetiva (A – Actual, após a partida do veículo) na tag FlightManifest/LogisticsTransportMovement/DepartureEvent/DepartureDateTimeTypeCode. Caso a data de partida seja prevista (S – Scheduled, antes da partida do veículo), o arquivo será rejeitado.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">Os conhecimentos de carga informados na viagem deverão ter código de classificação de mercadoria com 2, 4, 6 ou 8 posições em FlightManifest/ArrivalEvent/AssociatedTransportCargo/IncludedMasterConsignment/IncludedMasterConsignmentItem/TypeCode. Esta tag poderá ser repetida caso seja desejado informar mais de um código.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">Todos os códigos de aeroporto devem ser informados com 3 caracteres, não sendo permitidos códigos UNLOCODE de 5 caracteres.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">Os indicadores de parcialidade, informados na tag FlightManifest/ArrivalEvent/AssociatedTransportCargo/IncludedMasterConsignment/TransportSplitDescription, são divididos em dois grupos:</p><ul> <li>Total - valores T ou S</li> <li>Parcial - valores P, D ou M</li></ul><p style=\"margin-bottom: 1em; margin-top: 1em;\">Em um mesmo XFFM, um conhecimento de carga só pode ser informado dentro do mesmo grupo de parcialidade.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">Todas as informações de data no arquivo devem ser encaminhadas com o fuso horário no padrão YYYY-MM-DD'T'HH:mm:ss:SSS(‘+’/’-’)ZZ:ZZ.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">A informação do fuso horário de partida ou chegada da aeronave refere-se ao fuso horário local. A data de criação do arquivo deverá ser informada com o fuso do local onde foi criado.</p> <p style=\"margin-bottom: 1em; margin-top: 1em;\">De acordo com a necessidade da Receita Federal do Brasil, algumas informações poderão ser registradas no bloco de dados "OtherCustomsInformations", conforme apresentado a seguir:</p></br><h3 id=\"indicador-conhecimento\">Indicador de conhecimento de carga não IATA</h3><p style=\"margin-bottom: 1em; margin-top: 1em;\"><strong>OBS:</strong> Caso seja informado um conhecimento de carga cuja identificação não esteja no padrão IATA, será obrigatório informar este indicador, caso contrário o arquivo será rejeitado.</p><table aria-describedby=\"indicador-conhecimento\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> <th>Valor</th> </tr> </thead> <tbody> <tr> <td>Other Customs, Security and Regulatory Control Information / Customs, Security and Regulatory Control Information Identifier</td> <td>FlightManifest/ArrivalEvent/AssociatedTransportCargo/IncludedMasterConsignment/IncludedCustomsNote/ContendCode </td> <td>Informar "DI"</td> <td></td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Supplementary Customs, Security and Regulatory Control Information</td> <td>FlightManifest/ArrivalEvent/AssociatedTransportCargo/IncludedMasterConsignment/IncludedCustomsNote/Content </td> <td>Informar "NON-IATA"</td> <td></td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Information identifier</td> <td>FlightManifest/ArrivalEvent/AssociatedTransportCargo/IncludedMasterConsignment/IncludedCustomsNote/SubjectCode </td> <td>Informar "WBI"</td> <td></td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Country code</td> <td>FlightManifest/ArrivalEvent/AssociatedTransportCargo/IncludedMasterConsignment/IncludedCustomsNote/CountryID </td> <td>Informar "BR"</td> <td></td> </tr> </tbody></table></br><h3 id=\"codigo-recinto\">Código do Recinto Aduaneiro da Chegada da Viagem</h3><p style=\"margin-bottom: 1em; margin-top: 1em;\"><strong>OBS:</strong>Este indicador deverá ser utilizado para sinalizar que a carga não será recepcionada no recinto aduaneiro principal do aeroporto de chegada, não sendo portanto uma tag obrigatória. O recinto aduaneiro informado neste indicador terá visibilidade de todas as cargas com chegada neste aeroporto. Este indicador poderá ser informado para cada aeroporto de chegada informado no <strong>XFFM</strong>.</p><table aria-describedby=\"codigo-recinto\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> <th>Valor</th> </tr> </thead> <tbody> <tr> <td>Other Customs, Security and Regulatory Control Information / Customs, Security and Regulatory Control Information Identifier</td> <td>FlightManifest/LogisticsTransportMovement/IncludedCustomsNote/ContendCode</td> <td>Informar "M"</td> <td></td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Supplementary Customs, Security and Regulatory Control Information</td> <td>FlightManifest/LogisticsTransportMovement/IncludedCustomsNote/Content</td> <td> <p style=\"margin-bottom: 1em; margin-top: 1em;\">Informar "CUSTOMSWAREHOUSEXXX9999999"</p> <p style=\"margin-bottom: 1em; margin-top: 1em;\">Contém 26 caracteres, sendo:</p> <ul> <li>- 1º ao 16º caractere: texto fixo escrito CUSTOMSWAREHOUSE</li> <li>- 17º ao 19º caractere (XXX): sigla IATA do aeroporto de chegada da viagem com 3 posições</li> <li>- 20º ao 26º caractere (9999999): código do recinto aduaneiro que irá recepcionar as cargas</li> </ul> </td> <td></td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Information identifier</td> <td>FlightManifest/LogisticsTransportMovement/IncludedCustomsNote/SubjectCode</td> <td>Informar "CCL"</td> <td></td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Country code</td> <td>FlightManifest/LogisticsTransportMovement/IncludedCustomsNote/CountryID</td> <td>Informar "BR"</td> <td></td> </tr> </tbody></table></br><h3 id=\"data-emissao\">Data de emissão de conhecimento de carga</h3><p style=\"margin-bottom: 1em; margin-top: 1em;\"><strong>OBS:</strong>Este indicador deve ser informado quando a viagem estiver vinculada a conhecimento de carga que foi emitido há mais de um ano da data efetiva de partida da viagem (conhecimento não vigente). Caso este indicador não seja informado, o sistema vinculará a viagem aos conhecimentos de cargas vigentes no sistema.</p><table aria-describedby=\"data-emissao\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> <th>Valor</th> </tr> </thead> <tbody> <tr> <td>Other Customs, Security and Regulatory Control Information / Customs, Security and Regulatory Control Information Identifier</td> <td>FlightManifest/ArrivalEvent/AssociatedTransportCargo/IncludedMasterConsignment/IncludedCustomsNote/ContendCode </td> <td>Informar a tag com conteúdo vazio: ""</td> <td></td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Supplementary Customs, Security and Regulatory Control Information</td> <td>FlightManifest/ArrivalEvent/AssociatedTransportCargo/IncludedMasterConsignment/IncludedCustomsNote/Content </td> <td> <p style=\"margin-bottom: 1em; margin-top: 1em;\">Informar "CARRIERDECLARATIONDATEAAAAMMDD":</p> <p style=\"margin-bottom: 1em; margin-top: 1em;\">Contém 30 caracteres, sendo:</p> <ul> <li>- 1º ao 22º caractere: CARRIERDECLARATIONDATE (texto fixo)</li> <li>- 23º ao 30º caractere (AAAAMMDD): data de emissão do conhecimento que será associado</li> </ul> </td> <td></td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Information identifier</td> <td>FlightManifest/ArrivalEvent/AssociatedTransportCargo/IncludedMasterConsignment/IncludedCustomsNote/SubjectCode </td> <td>Informar "WBI"</td> <td></td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Country code</td> <td>FlightManifest/ArrivalEvent/AssociatedTransportCargo/IncludedMasterConsignment/IncludedCustomsNote/CountryID </td> <td>Informar "BR"</td> <td></td> </tr> </tbody></table></br><h3 id=\"par-metros-de-entrada-\">Parâmetros de Entrada:</h3><table aria-describedby=\"par-metros-de-entrada-\"> <thead> <tr> <th>Nome</th> <th>Descrição</th> <th>Tipo</th> <th>Local</th> <th>Detalhes</th> </tr> </thead> <tbody> <tr> <td>Arquivo de viagem aérea (XFFM)</td> <td>Viagem com sua lista de conhecimentos</td> <td>Arquivo XML <strong>obrigatório</strong></td> <td>Body</td> <td>Versão 2.00 da IATA - informado pelas Companhias Aéreas</td> <td></td> </tr> <tr> <td>CNPJ</td> <td>CNPJ da Companhia Aérea</td> <td>Numérico(14) <strong>obrigatório</strong></td> <td>Query Param</td> <td>CNPJ (formato 99999999999999)</td> <td></td> </tr> </tbody></table></br><h3 id=\"resposta\">Resposta :</h3><p style=\"margin-bottom: 1em; margin-top: 1em;\">Os serviços de recebimento de arquivos terão o retorno de processamento por arquivo XFNM na versão 3.00, com as seguintes informações:</p><table aria-describedby=\"resposta\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> <th>Valor</th> </tr> </thead> <tbody> <tr> <td>Message Reference ID</td> <td>MessageHeaderDocument / ID</td> <td>Fixo "BRCUSTOMS"</td> </tr> <tr> <td>Message Name</td> <td>MessageHeaderDocument / Name</td> <td>Fixo "Response"</td> </tr> <tr> <td>Message Type</td> <td>MessageHeaderDocument / TypeCode</td> <td>Fixo "294"</td> </tr> <tr> <td>Message Date / Time Stamp</td> <td>MessageHeaderDocument / IssueDateTime</td> <td>Data / hora de processamento do arquivo - UTC time</td> </tr> <tr> <td>Message Function</td> <td>MessageHeaderDocument / PurposeCode</td> <td>Fixo "Response"</td> </tr> <tr> <td>Message Version</td> <td>MessageHeaderDocument / VersionID</td> <td>Fixo "3.0"</td> </tr> <tr> <td>Sender Qualifier</td> <td>MessageHeaderDocument / SenderParty / schemeID</td> <td>Fixo "C"</td> </tr> <tr> <td>Sender Identification</td> <td>MessageHeaderDocument / SenderParty / PrimaryID</td> <td>Fixo "BRCUSTOMS"</td> </tr> <tr> <td>Recipient Qualifier</td> <td>MessageHeaderDocument / RecipientParty / schemeID</td> <td>Valor do campo Sender Qualifier (tag MessageHeaderDocument / SenderParty / schemeID) do arquivo recebido. Caso não seja passível de identificação ou for inválido ou não vier preenchido, será preenchido com “O’ (letra O)</td> </tr> <tr> <td>Recipient Identification</td> <td>MessageHeaderDocument / RecipientParty / PrimaryID</td> <td>Valor do campo Sender Identification (tag MessageHeaderDocument / SenderParty / PrimaryID) do arquivo recebido. Caso não seja passível de identificação ou for inválido ou não vier preenchido, será preenchido com "NOT IDENTIFIED"</td> </tr> <tr> <td>Message Type</td> <td>BusinessHeaderDocument / TypeCode</td> <td>Valor do campo Message Type (tag MessageHeaderDocument / TypeCode) do arquivo original. Caso este campo não seja passível de identificação ou for inválido ou não vier preenchido, será preenchido com 999.</td> </tr> <tr> <td>Message Name</td> <td>BusinessHeaderDocument / Name</td> <td>Valor do campo Message Name (tag MessageHeaderDocument / Name) do arquivo original. Caso este campo não seja passível de identificação ou for inválido ou não vier preenchido, será preenchido com "NOT IDENTIFIED".</td> </tr> <tr> <td>Original Document Identification</td> <td>BusinessHeaderDocument / ID</td> <td>Valor do campo Message Reference ID (tag MessageHeaderDocument / ID) do arquivo original. Caso este campo não seja passível de identificação ou for inválido ou não vier preenchido, será preenchido com "NOT IDENTIFIED".</td> </tr> <tr> <td>Response Type</td> <td>BusinessHeaderDocument / StatusCode</td> <td>“<em>Received</em>” , “<em>Rejected</em>” ou “<em>Processed</em>” – conforme processamento do arquivo. Na versão atual, haverá resposta apenas nas situações “<em>Received</em>” (arquivo recebido e será processado) ou “<em>Rejected</em>”(arquivo foi rejeitado)</td> </tr> </tbody></table><p style=\"margin-bottom: 1em; margin-top: 1em;\">Os arquivos que passarem pela validação do XSD (formato estabelecido pela IATA), receberão status “<em>Received</em>”, acompanhado do número de protocolo gerado para este arquivo. Este número de protocolo pode ser utilizado para verificar a situação de processamento do arquivo por meio dos serviços <em>“Consultar Situação de Arquivos por Período”</em> ou <em>“Consultar Situação de Arquivos por número de Protocolo”</em>.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">Já os arquivos que não passarem pela validação do XSD (formato estabelecido pela IATA) receberão status “<em>Rejected</em>”, acompanhado da lista de erros encontrados.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">Para arquivos com o campo Response Type igual a “<em>Received</em>\", haverá somente um registro do bloco de dados Response Status, conforme abaixo. O campo "Text" terá tamanho de 5000 caracteres, diferentemente do padrão estabelecido pela IATA.</p><span id=\"ip1\"> </span><table aria-describedby=\"ip1\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> <th>Valor</th> </tr> </thead> <tbody> <tr> <td>Category</td> <td>ResponseStatus / ConditionCode</td> <td>Acknowledgement</td> </tr> <tr> <td>Text</td> <td>ResponseStatus / Reason</td> <td>Número do protocolo de recebimento</td> </tr> </tbody></table><p style=\"margin-bottom: 1em; margin-top: 1em;\">Para arquivos com o campo Response Type igual a “<em>Rejected</em>”, cada ocorrência de erro conterá as seguintes informações no bloco de dados Response Status. O campo "Text" terá tamanho de 5000 caracteres, diferentemente do padrão estabelecido pela IATA.</p><span id=\"ip2\"> </span><table aria-describedby=\"ip2\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> <th>Valor</th> </tr> </thead> <tbody> <tr> <td>Category</td> <td>ResponseStatus / ConditionCode</td> <td>Error</td> </tr> <tr> <td>Text</td> <td>ResponseStatus / Reason</td> <td>Texto contendo a linha e coluna com erro, (informando Row:<número da linha> | Column:<número da coluna>) e a descrição do erro verificada.Tamanho do campo: 5000 posições. Ex: "Row:7|Column:20|Error: cvc-complex-type.2.4.a: Invalid content was found starting with element '{"iata:datamodel:3":PurposeCode}'. One of '{"iata:datamodel:3":IssueDateTime}' is expected.</td> </tr> </tbody></table> - * */ @POST @Path("/api/ext/incoming/xffm") @@ -51,9 +49,8 @@ public interface ServiosDeEnvioDeArquivosApi { /** * Informar Associação Master e House - XFHL (House Manifest) - * + *
* <p style=\"margin-bottom: 1em; margin-top: 1em;\">Encaminhamento de arquivo XML para processamento da associação entre um conhecimento de carga AWB (Air Waybill) ou MAWB (Master Air Waybill) e conhecimento(s) de carga HAWB (House Air Waybill).Será permitida apenas uma mensagem XFHL por arquivo, contendo a operação Creation, Update ou Deletion, na versão 2.00, conforme o padrão estabelecido pela IATA.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">Os arquivos com operação Update ou Deletion serão processados caso exista um arquivo com a operação Creation recebido anteriormente com sucesso no sistema, contendo a mesma identificação do conhecimento de carga do MAWB/AWB e vigente.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">Para que um MAWB/AWB seja considerado associado aos seus HAWB, deve haver arquivo de associação MAWB/HAWB (XFHL) que referencie o MAWB (XFWB) e a respectiva lista de HAWB (XFZB) associados.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">Um arquivo XFHL que está sendo enviado com a operação Creation pode ser encaminhado a qualquer momento, inclusive após a chegada da aeronave. Já um arquivo que tenha a operação Update (contanto que contenha a exclusão de alguma das associações) ou a operação Deletion somente será aceito até a primeira chegada da viagem no Brasil e caso a carga não esteja vinculada a um documento de saída. Nessas situações, as operações de retificação ou exclusão somente poderão ser realizadas por funcionalidade de tela (web) e pela RFB. Retificações somente para inclusão de associações são permitidas.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">Todas as informações de data no arquivo devem ser encaminhadas contendo o fuso horário no padrão YYYY-MM-DD'T'HH:mm:ss:SSS(‘+’/’-’)ZZ:ZZ.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">A informação do fuso horário de partida ou chegada da aeronave refere-se ao fuso horário local. A data de criação do arquivo deverá ser informada com o fuso do local onde foi criado.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">De acordo com a necessidade da Receita Federal do Brasil, algumas informações poderão ser registradas no bloco de dados \"OtherCustomsInformations\", conforme apresentado a seguir:</p></br><h3 id=\"indicador-conhecimento\">Indicador de conhecimento de carga não IATA</h3><p style=\"margin-bottom: 1em; margin-top: 1em;\"><strong>OBS:</strong> Caso seja informado um conhecimento de carga cuja identificação não esteja no padrão IATA, será obrigatório informar este indicador, caso contrário o arquivo será rejeitado.</p><table aria-describedby=\"indicador-conhecimento\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> <th>Valor</th> </tr> </thead> <tbody> <tr> <td>Other Customs, Security and Regulatory Control Information / Customs, Security and Regulatory Control Information Identifier</td> <td>HouseManifest/MasterConsignment/IncludedCustomsNote/ContendCode</td> <td>Informar "DI"</td> <td></td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Supplementary Customs, Security and Regulatory Control Information</td> <td>HouseManifest/MasterConsignment/IncludedCustomsNote/Content</td> <td>Informar "NON-IATA"</td> <td></td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Information identifier</td> <td>HouseManifest/MasterConsignment/IncludedCustomsNote/SubjectCode</td> <td>Informar "WBI"</td> <td></td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Country code</td> <td>HouseManifest/MasterConsignment/IncludedCustomsNote/CountryID</td> <td>Informar "BR"</td> <td></td> </tr> </tbody></table></br><h3 id=\"indicador-agente-carga\">Identificação do Agente de Carga em cada HAWB (IncludedHouseConsignment) do XFHL</h3><table aria-describedby=\"indicador-agente-carga\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> <th>Valor</th> </tr> </thead> <tbody> <tr> <td>Other Customs, Security and Regulatory Control Information / Customs, Security and Regulatory Control Information Identifier</td> <td>HouseManifest/MasterConsignment/IncludedHouseConsignment/IncludedCustomsNote/ContendCode</td> <td>Informar "T"</td> <td></td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Supplementary Customs, Security and Regulatory Control Information</td> <td>HouseManifest/MasterConsignment/IncludedHouseConsignment/IncludedCustomsNote/Content</td> <td>Informar "CNPJ<número do CNPJ com 8 dígitos>":</td> <td></td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Information identifier</td> <td>HouseManifest/MasterConsignment/IncludedHouseConsignment/IncludedCustomsNote/SubjectCode</td> <td>Informar "AGT"</td> <td></td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Country code</td> <td>HouseManifest/MasterConsignment/IncludedHouseConsignment/IncludedCustomsNote/CountryID</td> <td>Informar "BR"</td> <td></td> </tr> </tbody></table></br><h3 id=\"data-emissao-awb\">Data de emissão de conhecimento de carga ocorrência para o AWB/MAWB (MasterConsignment)</h3><table aria-describedby=\"data-emissao-awb\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> <th>Valor</th> </tr> </thead> <tbody> <tr> <td>Other Customs, Security and Regulatory Control Information / Customs, Security and Regulatory Control Information Identifier</td> <td>HouseManifest/MasterConsignment/IncludedCustomsNote/ContendCode</td> <td>Informar a tag com conteúdo vazio: ""</td> <td></td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Supplementary Customs, Security and Regulatory Control Information</td> <td>HouseManifest/MasterConsignment/IncludedCustomsNote/Content</td> <td> <p style=\"margin-bottom: 1em; margin-top: 1em;\">Informar "CARRIERDECLARATIONDATEAAAAMMDD":</p> <p style=\"margin-bottom: 1em; margin-top: 1em;\">Contém 30 caracteres, sendo:</p> <ul> <li>- 1º ao 22º caractere: CARRIERDECLARATIONDATE (texto fixo)</li> <li>- 23º ao 30º caractere (AAAAMMDD): data de emissão do conhecimento que será associado</li> </ul> </td> <td></td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Information identifier</td> <td>HouseManifest/MasterConsignment/IncludedCustomsNote/SubjectCode</td> <td>Informar "WBI"</td> <td></td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Country code</td> <td>HouseManifest/MasterConsignment/IncludedCustomsNote/CountryID</td> <td>Informar "BR"</td> <td></td> </tr> </tbody></table></br><h3 id=\"data-emissao-hawb\">Data de emissão de conhecimento de carga ocorrência em cada HAWB (IncludedHouseConsignment)</h3><p style=\"margin-bottom: 1em; margin-top: 1em;\"><strong>OBS:</strong> Este indicador deve ser informado quando o conhecimento de carga, seja o MAWB/AWB ou algum dos HAWB, foi emitido há mais de um ano da data efetiva de partida da viagem (conhecimento não vigente). Caso este indicador não seja informado, o sistema vinculará o MAWB/AWB vigente aos HAWB vigentes no sistema.</p><table aria-describedby=\"data-emissao-hawb\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> <th>Valor</th> </tr> </thead> <tbody> <tr> <td>Other Customs, Security and Regulatory Control Information / Customs, Security and Regulatory Control Information Identifier</td> <td>HouseManifest/MasterConsignment/IncludedHouseConsignment/IncludedCustomsNote/ContendCode</td> <td>Informar a tag com conteúdo vazio: ""</td> <td></td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Supplementary Customs, Security and Regulatory Control Information</td> <td>HouseManifest/MasterConsignment/IncludedHouseConsignment/IncludedCustomsNote/Content</td> <td> <p style=\"margin-bottom: 1em; margin-top: 1em;\">Informar "CARRIERDECLARATIONDATEAAAAMMDD":</p> <p style=\"margin-bottom: 1em; margin-top: 1em;\">Contém 30 caracteres, sendo:</p> <ul> <li>- 1º ao 22º caractere: CARRIERDECLARATIONDATE (texto fixo)</li> <li>- 23º ao 30º caractere (AAAAMMDD): data de emissão do conhecimento que será associado</li> </ul> </td> <td></td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Information identifier</td> <td>HouseManifest/MasterConsignment/IncludedHouseConsignment/IncludedCustomsNote/SubjectCode</td> <td>Informar "WBI"</td> <td></td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Country code</td> <td>HouseManifest/MasterConsignment/IncludedHouseConsignment/IncludedCustomsNote/CountryID</td> <td>Informar "BR"</td> <td></td> </tr> </tbody></table></br><h3 id=\"par-metros-de-entrada-\">Parâmetros de Entrada:</h3><table aria-describedby=\"par-metros-de-entrada-\"> <thead> <tr> <th>Nome</th> <th>Descrição</th> <th>Tipo</th> <th>Local</th> <th>Detalhes</th> </tr> </thead> <tbody> <tr> <td>Arquivo de associação (XFHL)</td> <td>Associação entre <em>master</em>(MAWB) e <em>house</em>(HAWB)</td> <td>Arquivo XML <strong>obrigatório</strong></td> <td>Body</td> <td>Versão 2.00 da IATA - informado pelos Agentes de Carga ou pelo Operador de Remessa Postal / Expressa </td> <td></td> </tr> <tr> <td>CNPJ</td> <td>CNPJ do Agente de Carga ou do Operador de Remessa Postal / Expressa</td> <td>Numérico(14) <strong>obrigatório</strong></td> <td>Query Param</td> <td>CNPJ (formato 99999999999999)</td> <td></td> </tr> </tbody></table></br><h3 id=\"resposta-\">Resposta :</h3><p style=\"margin-bottom: 1em; margin-top: 1em;\">Os serviços de recebimento de arquivos terão o retorno de processamento por arquivo XFNM na versão 3.00, com as seguintes informações:</p><table aria-describedby=\"resposta\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> <th>Valor</th> </tr> </thead> <tbody> <tr> <td>Message Reference ID</td> <td>MessageHeaderDocument / ID</td> <td>Fixo "BRCUSTOMS"</td> </tr> <tr> <td>Message Name</td> <td>MessageHeaderDocument / Name</td> <td>Fixo "Response"</td> </tr> <tr> <td>Message Type</td> <td>MessageHeaderDocument / TypeCode</td> <td>Fixo "294"</td> </tr> <tr> <td>Message Date / Time Stamp</td> <td>MessageHeaderDocument / IssueDateTime</td> <td>Data / hora de processamento do arquivo - UTC time</td> </tr> <tr> <td>Message Function</td> <td>MessageHeaderDocument / PurposeCode</td> <td>Fixo "Response"</td> </tr> <tr> <td>Message Version</td> <td>MessageHeaderDocument / VersionID</td> <td>Fixo "3.0"</td> </tr> <tr> <td>Sender Qualifier</td> <td>MessageHeaderDocument / SenderParty / schemeID</td> <td>Fixo "C"</td> </tr> <tr> <td>Sender Identification</td> <td>MessageHeaderDocument / SenderParty / PrimaryID</td> <td>Fixo "BRCUSTOMS"</td> </tr> <tr> <td>Recipient Qualifier</td> <td>MessageHeaderDocument / RecipientParty / schemeID</td> <td>Valor do campo Sender Qualifier (tag MessageHeaderDocument / SenderParty / schemeID) do arquivo recebido. Caso não seja passível de identificação ou for inválido ou não vier preenchido, será preenchido com “O” (letra O)</td> </tr> <tr> <td>Recipient Identification</td> <td>MessageHeaderDocument / RecipientParty / PrimaryID</td> <td>Valor do campo Sender Identification (tag MessageHeaderDocument / SenderParty / PrimaryID) do arquivo recebido. Caso não seja passível de identificação ou for inválido ou não vier preenchido, será preenchido com \"NOT IDENTIFIED\".</td> </tr> <tr> <td>Message Type</td> <td>BusinessHeaderDocument / TypeCode</td> <td>Valor do campo Message Type (tag MessageHeaderDocument / TypeCode) do arquivo original. Caso este campo não seja passível de identificação ou for inválido ou não vier preenchido, será preenchido com 999.</td> </tr> <tr> <td>Message Name</td> <td>BusinessHeaderDocument / Name</td> <td>Valor do campo Message Name (tag MessageHeaderDocument / Name) do arquivo original. Caso este campo não seja passível de identificação ou for inválido ou não vier preenchido, será preenchido com \"NOT IDENTIFIED\".</td> </tr> <tr> <td>Original Document Identification</td> <td>BusinessHeaderDocument / ID</td> <td>Valor do campo Message Reference ID (tag MessageHeaderDocument / ID) do arquivo original. Caso este campo não seja passível de identificação ou for inválido ou não vier preenchido, será preenchido com \"NOT IDENTIFIED\".</td> </tr> <tr> <td>Response Type</td> <td>BusinessHeaderDocument / StatusCode</td> <td>“<em>Received</em>” , “<em>Rejected</em>” ou “<em>Processed</em>” – conforme processamento do arquivo. Na versão atual, haverá resposta apenas nas situações “<em>Received</em>” (arquivo recebido e será processado) ou “<em>Rejected</em>”(arquivo foi rejeitado)</td> </tr> </tbody></table><p style=\"margin-bottom: 1em; margin-top: 1em;\">Os arquivos que passarem pela validação do XSD (formato estabelecido pela IATA), receberão status \"Received\", acompanhado do número de protocolo gerado para este arquivo. Este número de protocolo pode ser utilizado para verificar a situação de processamento do arquivo por meio por meio dos serviços \"Consultar Situação de Arquivos por Data\" ou \"Consultar Situação de Arquivos por número de Protocolo\".</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">Já os arquivos que não passarem pela validação do XSD (formato estabelecido pela IATA) receberão status “<em>Rejected</em>”, acompanhado da lista de erros encontrados.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">Para arquivos com o campo Response Type igual a “<em>Received</em>”, haverá somente um registro do bloco de dados Response Status, conforme abaixo. O campo "Text" terá tamanho de 5000 caracteres, diferentemente do padrão estabelecido pela IATA.</p><span id=\"ip1\"> </span><table aria-describedby=\"ip1\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> <th>Valor</th> </tr> </thead> <tbody> <tr> <td>Category</td> <td>ResponseStatus / ConditionCode</td> <td>Acknowledgement</td> </tr> <tr> <td>Text</td> <td>ResponseStatus / Reason</td> <td>Número do protocolo de recebimento</td> </tr> </tbody></table><p style=\"margin-bottom: 1em; margin-top: 1em;\">Para arquivos com o campo Response Type igual a “<em>Rejected</em>”, cada ocorrência de erro conterá as seguintes informações no bloco de dados Response Status. O campo "Text" terá tamanho de 5000 caracteres, diferentemente do padrão estabelecido pela IATA.</p><span id=\"ip2\"> </span><table aria-describedby=\"ip2\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> <th>Valor</th> </tr> </thead> <tbody> <tr> <td>Category</td> <td>ResponseStatus / ConditionCode</td> <td>Error</td> </tr> <tr> <td>Text</td> <td>ResponseStatus / Reason</td> <td>Texto contendo a linha e coluna com erro, (informando Row:<número da linha> | Column:<número da coluna>) e a descrição do erro verificado.Tamanho do campo: 5000 posições. Ex: "Row:7|Column:20|Error: cvc-complex-type.2.4.a: Invalid content was found starting with element '{"iata:datamodel:3":PurposeCode}'. One of '{"iata:datamodel:3":IssueDateTime}' is expected.</td> </tr> </tbody></table> - * */ @POST @Path("/api/ext/incoming/xfhl") @@ -73,9 +70,8 @@ public interface ServiosDeEnvioDeArquivosApi { /** * Informar Conhecimento de Carga - XFWB (Freight Waybill) - * + *
* <p style=\"margin-bottom: 1em; margin-top: 1em;\">Encaminhamento de arquivo XML para processamento de conhecimentos de cargas do tipo <strong>AWB (Air Waybill)</strong> ou <strong>MAWB (Master Air Waybill)</strong>. Será permitida apenas uma mensagem <strong>XFWB</strong> por arquivo, contendo a operação <em>Creation</em>, <em>Update</em> ou <em>Deletion</em>, na versão 3.00, conforme o padrão estabelecido pela IATA..<p style=\"margin-bottom: 1em; margin-top: 1em;\">Um conhecimento de carga poderá ser informado de forma repetida contanto que não existam dois conhecimentos de carga vigentes ao mesmo tempo. Desta forma não pode haver repetição de um conhecimento de carga num período de 365 dias a partir da sua emissão.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">Os arquivos de operação <em>Update</em> ou <em>Deletion</em> serão processados caso exista um arquivo com a operação <em>Creation</em> recebido anteriormente com sucesso no sistema, tendo a mesma identificação do <strong>AWB/MAWB (Waybill/BusinessHeaderDocument/ID)</strong> e data de emissão.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">A alteração de um <strong>AWB/MAWB</strong> poderá ocorrer por serviço caso não tenha ocorrido entrega final ao importador, seja esta parcial ou total. Já a exclusão do <strong>AWB/MAWB</strong> só poderá ocorrer até o momento da chegada da primeira parte ou do total da carga em um aeroporto brasileiro.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">Para que um <strong>AWB/MAWB</strong> seja considerado como manifestado em uma viagem, o conhecimento de carga <strong>(XFWB)</strong> deve ser referenciado no arquivo da viagem <strong>(XFFM)</strong>. Para tal, a identificação do <strong>AWB/MAWB</strong> deve ser igual em ambos os arquivos. Além disso, tanto o arquivo <strong>XFFM</strong> quanto o arquivo <strong>XFWB</strong> devem se encontrar na situação <em>Processed</em>.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">O conhecimento de carga será vinculado à viagem de acordo com sua data de emissão, que deve ser menor ou igual à data de partida efetiva da viagem.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">O agrupamento de informações de mercadoria (Waybill/MasterConsignment/ApplicableRating) obrigatório é o agrupamento do tipo "F" (Waybill/MasterConsignment/ApplicableRating/TypeCode), que se refere ao valor de face.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">O agrupamento de informações de forma de pagamento do frete (Waybill/MasterConsignment/ApplicableTotalRating/ApplicablePrepaidCollectMonetarySummation/PrepaidIndicator) poderá ter no máximo duas ocorrências, sendo uma prepaid e a outra collect.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">Os conhecimentos de carga informados deverão ter código de classificação de mercadoria <strong>(NCM)</strong> com 2, 4, 6 ou 8 posições em Waybill/MasterConsignment/ApplicableRating/IncludedMasterConsignmentItem/TypeCode. Esta tag poderá ser repetida caso seja desejado informar mais de um código NCM.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">Todas as unidades de medida de peso deverão ser informadas como unidades de medida de massa.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">Todos os códigos de aeroportos informados no sistema devem ser informados com 3 caracteres, não sendo aceito código UNLOCODE de 5 caracteres.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">De acordo com a necessidade da Receita Federal do Brasil, os campos abaixo são de informação obrigatória. Caso o arquivo não apresente as informações a seguir, ele será rejeitado em tempo de processamento.</p></br><h3 id=\"ip1\"><strong>Número Total de Volumes</strong></h3><table aria-describedby=\"ip1\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> </tr> </thead> <tbody> <tr> <td>WAYBILL SUMMARY/Total number of pieces</td> <td>Waybill/MasterConsignment/TotalPieceQuantity</td> </tr> </tbody></table></br><h3 id=\"ip2\"><strong>Peso Bruto Total</strong></h3><table aria-describedby=\"ip2\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> </tr> </thead> <tbody> <tr> <td>WAYBILL SUMMARY/Total Gross Weight</td> <td>Waybill/MasterConsignment/IncludedTareGrossWeightMeasure</td> </tr> </tbody></table></br><h3 id=\"ip3\"><strong>Peso Bruto Total - Unidade de Medida</strong></h3><table aria-describedby=\"ip3\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> </tr> </thead> <tbody> <tr> <td>WAYBILL SUMMARY/Total Gross Weight Unit of Measurement</td> <td>Waybill/MasterConsignment/IncludedTareGrossWeightMeasure (unit code)</td> </tr> </tbody></table></br><h3 id=\"ip4\" ><strong>Descrição das Mercadorias</strong> - Deve ser informado ao menos uma vez por arquivo</h3><table aria-describedby=\"ip4\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> </tr> </thead> <tbody> <tr> <td>WAYBILL BODY / Rating Type / Rating Type Indicator / Item Details / Item Description</td> <td>Waybill / MasterConsignment / ApplicableRating / IncludedMasterConsignmentItem / NatureIdentificationTransportCargo / Identification</td> </tr> </tbody></table></br><h3 id=\"ip5\"><strong>Valor Total do Frete</strong></h3><table aria-describedby=\"ip5\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> </tr> </thead> <tbody> <tr> <td>WAYBILL SUMMARY / Waybill Totals / Rating Type Indicator / Prepaid / Collect Indicator / Total Charge Summary</td> <td>Waybill / MasterConsignment / ApplicableTotalRating / ApplicablePrepaidCollectMonetarySummation / GrandTotalAmount</td> </tr> </tbody></table></br><h3 id=\"ip6\" ><strong>Forma de Pagamento do Frete (Prepaid, Collect)</strong></h3><table aria-describedby=\"ip6\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> </tr> </thead> <tbody> <tr> <td>WAYBILL SUMMARY / Waybill Totals / Rating Type Indicator / Prepaid / Collect Indicator</td> <td>Waybill / MasterConsignment / ApplicableTotalRating / ApplicablePrepaidCollectMonetarySummation / PrepaidIndicator</td> </tr> </tbody></table><p style=\"margin-bottom: 1em; margin-top: 1em;\">Caso o tipo de conhecimento de carga seja <strong>MAWB</strong>, as informações de pagamento do frete e valor do frete não serão obrigatórias. Desta forma, o valor do frete para o MAWB pode ser zero.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">A informação de identificação do consignatário não é obrigatória. Porém, caso a mesma não tenha sido informada no, <strong>AWB</strong> até o momento da chegada da viagem, o sistema realizará um bloqueio automático na carga. Para <strong>MAWB</strong>, não haverá bloqueio pela falta de informação da identificação do consignatário.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">De acordo com a necessidade da Receita Federal do Brasil, existem informações que poderão ser registradas no bloco de dados "Other Customs Informations", não sendo obrigatórias nas versões iniciais.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">São elas:</p></br><h3 id=\"indicador-conhecimento\">Indicador de conhecimento de carga não IATA</h3><p style=\"margin-bottom: 1em; margin-top: 1em;\"><strong>OBS:</strong>Caso seja informado um AWB ou MAWB cuja identificação não siga o padrão IATA, é obrigatório informar este indicador. Caso contrário, o arquivo será rejeitado.</p><table aria-describedby=\"indicador-conhecimento\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> <th>Valor</th> </tr> </thead> <tbody> <tr> <td>Other Customs, Security and Regulatory Control Information / Customs, Security and Regulatory Control Information Identifier</td> <td>Waybill/MasterConsignment/IncludedCustomsNote/ContendCode</td> <td>Informar "DI"</td> <td></td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Supplementary Customs, Security and Regulatory Control Information</td> <td>Waybill/MasterConsignment/IncludedCustomsNote/Content</td> <td>Informar "NON-IATA"</td> <td></td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Information identifier</td> <td>Waybill/MasterConsignment/IncludedCustomsNote/SubjectCode</td> <td>Informar "WBI"</td> <td></td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Country code</td> <td>Waybill/MasterConsignment/IncludedCustomsNote/CountryID</td> <td>Informar "BR"</td> <td></td> </tr> </tbody></table></br><h3 id=\"ip7\"><strong>Indicador de Presença de Partes e Peças de Madeira Maciça</strong></h3><table aria-describedby=\"ip7\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> <th>Valor</th> </tr> </thead> <tbody> <tr> <td>Other Customs, Security and Regulatory Control Information / Customs, Security and Regulatory Control Information Identifier</td> <td>Waybill/MasterConsignment/IncludedCustomsNote/ContentCode</td> <td>Informar "DI"</td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Supplementary Customs, Security and Regulatory Control Information</td> <td>Waybill/MasterConsignment/IncludedCustomsNote/Content</td> <td>Informar "WOOD PARTS"</td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Information identifier</td> <td>Waybill/MasterConsignment/IncludedCustomsNote/SubjectCode</td> <td>Informar "OCI"</td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Country code</td> <td>Waybill/MasterConsignment/IncludedCustomsNote/CountryID</td> <td>Informar "BR"</td> </tr> </tbody></table></br><h3 id=\"ip8\" ><strong>Indicador de Não Recepção dos HAWB Associados no Aeroporto de Destino</strong></h3><p style=\"margin-bottom: 1em; margin-top: 1em;\"><strong>Obs:</strong>Quando este campo OCI for informado, o indicador será preenchido com "sim". Quando esse campo OCI não for informado, o indicador será preenchido com "não".<br> Quando o indicador for "sim", a orientação é de que a recepção no aeroporto de destino do conhecimento seja realizada pelo MAWB, e não por seus HAWB associados.<br> Quando for "não", a orientação é de que a recepção no aeroporto de destino do conhecimento seja realizada diretamente pelos HAWB.<br> Este indicador não deve ser levado em consideração nas recepções realizadas em unidades que não sejam o aeroporto de destino do conhecimento. Nestes casos, indica-se como padrão a recepção pelo MAWB.</p><table aria-describedby=\"ip8\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> <th>Valor</th> </tr> </thead> <tbody> <tr> <td>Other Customs, Security and Regulatory Control Information / Customs, Security and Regulatory Control Information Identifier</td> <td>Waybill/MasterConsignment/IncludedCustomsNote/ContentCode</td> <td>Informar "DI"</td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Supplementary Customs, Security and Regulatory Control Information</td> <td>Waybill/MasterConsignment/IncludedCustomsNote/Content</td> <td>Informar "DO NOT BREAK DOWN"</td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Information identifier</td> <td>Waybill/MasterConsignment/IncludedCustomsNote/SubjectCode</td> <td>Informar "HDL"</td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Country code</td> <td>Waybill/MasterConsignment/IncludedCustomsNote/CountryID</td> <td>Informar "BR"</td> </tr> </tbody></table></br><h3 id=\"ip9\" ><strong>Identificação do Consignatário</strong></h3><table aria-describedby=\"ip9\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> <th>Valor</th> </tr> </thead> <tbody> <tr> <td>Other Customs, Security and Regulatory Control Information / Customs, Security and Regulatory Control Information Identifier</td> <td>Waybill/MasterConsignment/IncludedCustomsNote/ContentCode</td> <td>Informar "T"</td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Supplementary Customs, Security and Regulatory Control Information</td> <td>Waybill/MasterConsignment/IncludedCustomsNote/Content</td> <td> <p style=\"margin-bottom: 1em; margin-top: 1em;\">- Se for um CPF informar "CPF<número do CPF com 11 dígitos>" . Ex: CPF12345678901</p> <p style=\"margin-bottom: 1em; margin-top: 1em;\">- Se for um CNPJ informar "CNPJ<número do CNPJ com 8 ou 14 dígitos>". Ex:CNPJ12345678901234</p> <p style=\"margin-bottom: 1em; margin-top: 1em;\">- Se for um Passaporte informar "PASSPORT<número do passaporte com até 25 posições>. Ex:PASSPORTC12345678.</p> </td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Information identifier</td> <td>Waybill/MasterConsignment/IncludedCustomsNote/SubjectCode</td> <td>Informar "CNE"</td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information /Country code</td> <td>Waybill/MasterConsignment/IncludedCustomsNote/CountryID</td> <td>Informar "BR"</td> </tr> </tbody></table></br><h3 id=\"ip10\" ><strong>RUC (Referência Única da Carga) / UCR (Unique Consignment Reference)</strong></h3><p style=\"margin-bottom: 1em; margin-top: 1em;\"><strong>Obs:</strong>Caso a informação da RUC não seja encaminhada no arquivo, o sistema gerará automaticamente um número RUC para a carga. Se a RUC for informada, deverá atender à recomendação da Organização Mundial de Aduanas (OMA) para a Unique Consignment Reference (UCR).</p><table aria-describedby=\"ip10\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> <th>Valor</th> </tr> </thead> <tbody> <tr> <td>Other Customs, Security and Regulatory Control Information / Customs, Security and Regulatory Control Information Identifier</td> <td>Waybill/MasterConsignment/IncludedCustomsNote/ContentCode</td> <td>Informar "U"</td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Supplementary Customs, Security and Regulatory Control Information</td> <td>Waybill/MasterConsignment/IncludedCustomsNote/Content</td> <td>Informar UCR<número da RUC com até 32 posições>. Ex: UCR8BR167017161001713D0000000000004021</td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Information identifier</td> <td>Waybill/MasterConsignment/IncludedCustomsNote/SubjectCode</td> <td>Informar "IMP"</td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Country code</td> <td>Waybill/MasterConsignment/IncludedCustomsNote/CountryID</td> <td>Informar "BR"</td> </tr> </tbody></table></br><h3 id=\"ip11\" ><strong>Código do Recinto Aduaneiro de Destino da Carga</strong></h3><table aria-describedby=\"ip11\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> <th>Valor</th> </tr> </thead> <tbody> <tr> <td>Other Customs, Security and Regulatory Control Information / Customs, Security and Regulatory Control Information Identifier</td> <td>Waybill/MasterConsignment/IncludedCustomsNote/ContentCode</td> <td>Informar "M"</td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Supplementary Customs, Security and Regulatory Control Information</td> <td>Waybill/MasterConsignment/IncludedCustomsNote/Content</td> <td>Informar "CUSTOMSWAREHOUSE<número do Código do Recinto Aduaneiro de Destino da Carga com 7 dígitos>". Ex:CUSTOMSWAREHOUSE1234567</td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Information identifier</td> <td>Waybill/MasterConsignment/IncludedCustomsNote/SubjectCode</td> <td>Informar "CCL"</td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Country code</td> <td>Waybill/MasterConsignment/IncludedCustomsNote/CountryID</td> <td>Informar "BR"</td> </tr> </tbody></table><p style=\"margin-bottom: 1em; margin-top: 1em;\">Todas as informações de data no arquivo devem ser encaminhadas com o fuso horário no padrão <strong>“YYYY-MM-DD'T'HH:mm:ss:SSS(‘+’/’-’)ZZ:ZZ”</strong>.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">A informação do fuso horário de partida ou chegada da aeronave refere-se ao fuso horário local. A data de criação do arquivo deverá ser informada com o fuso do local onde foi criado.</p></br><h3 id=\"par-metros-de-entrada-\">Parâmetros de Entrada:</h3><table aria-describedby=\"par-metros-de-entrada-\"> <thead> <tr> <th>Nome</th> <th>Descrição</th> <th>Tipo</th> <th>Local</th> <th>Detalhes</th> </tr> </thead> <tbody> <tr> <td>Arquivo de conhecimento de carga (XFWB)</td> <td>Conhecimentos de carga(AWB e MAWB)</td> <td>Arquivo XML <strong>obrigatório</strong></td> <td>Body</td> <td>Versão 3.00 da IATA - informado pelas Companhias Aéreas</td> <td></td> </tr> <tr> <td>CNPJ</td> <td>CNPJ da Companhia Aérea</td> <td>Numérico(14) <strong>obrigatório</strong></td> <td>Query Param</td> <td>CNPJ (formato 99999999999999)</td> <td></td> </tr> </tbody></table></br><h3 id=\"resposta-\">Resposta :</h3><p style=\"margin-bottom: 1em; margin-top: 1em;\">Os serviços de recebimento de arquivos terão o retorno de processamento por arquivo XFNM na versão 3.00, com as seguintes informações:</p><table aria-describedby=\"resposta\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> <th>Valor</th> </tr> </thead> <tbody> <tr> <td>Message Reference ID</td> <td>MessageHeaderDocument / ID</td> <td>Fixo "BRCUSTOMS"</td> </tr> <tr> <td>Message Name</td> <td>MessageHeaderDocument / Name</td> <td>Fixo "Response"</td> </tr> <tr> <td>Message Type</td> <td>MessageHeaderDocument / TypeCode</td> <td>Fixo "294"</td> </tr> <tr> <td>Message Date / Time Stamp</td> <td>MessageHeaderDocument / IssueDateTime</td> <td>Data / hora de processamento do arquivo - UTC time</td> </tr> <tr> <td>Message Function</td> <td>MessageHeaderDocument / PurposeCode</td> <td>Fixo "Response"</td> </tr> <tr> <td>Message Version</td> <td>MessageHeaderDocument / VersionID</td> <td>Fixo "3.0"</td> </tr> <tr> <td>Sender Qualifier</td> <td>MessageHeaderDocument / SenderParty / schemeID</td> <td>Fixo "C"</td> </tr> <tr> <td>Sender Identification</td> <td>MessageHeaderDocument / SenderParty / PrimaryID</td> <td>Fixo "BRCUSTOMS"</td> </tr> <tr> <td>Recipient Qualifier</td> <td>MessageHeaderDocument / RecipientParty / schemeID</td> <td>Valor do campo Sender Qualifier (tag MessageHeaderDocument / SenderParty / schemeID) do arquivo recebido. Caso não seja passível de identificação ou for inválido ou não vier preenchido, será preenchido com “O’ (letra O)</td> </tr> <tr> <td>Recipient Identification</td> <td>MessageHeaderDocument / RecipientParty / PrimaryID</td> <td>Valor do campo Sender Identification (tag MessageHeaderDocument / SenderParty / PrimaryID) do arquivo recebido. Caso não seja passível de identificação ou for inválido ou não vier preenchido, será preenchido com "NOT IDENTIFIED"</td> </tr> <tr> <td>Message Type</td> <td>BusinessHeaderDocument / TypeCode</td> <td>Valor do campo Message Type (tag MessageHeaderDocument / TypeCode) do arquivo original. Caso este campo não seja passível de identificação ou for inválido ou não vier preenchido, será preenchido com 999.</td> </tr> <tr> <td>Message Name</td> <td>BusinessHeaderDocument / Name</td> <td>Valor do campo Message Name (tag MessageHeaderDocument / Name) do arquivo original. Caso este campo não seja passível de identificação ou for inválido ou não vier preenchido, será preenchido com "NOT IDENTIFIED".</td> </tr> <tr> <td>Original Document Identification</td> <td>BusinessHeaderDocument / ID</td> <td>Valor do campo Message Reference ID (tag MessageHeaderDocument / ID) do arquivo original. Caso este campo não seja passível de identificação ou for inválido ou não vier preenchido, será preenchido com "NOT IDENTIFIED".</td> </tr> <tr> <td>Response Type</td> <td>BusinessHeaderDocument / StatusCode</td> <td>“<em>Received</em>” , “<em>Rejected</em>” ou “<em>Processed</em>” – conforme processamento do arquivo. Na versão atual, haverá resposta apenas nas situações “<em>Received</em>” (arquivo recebido e será processado) ou “<em>Rejected</em>”(arquivo foi rejeitado)</td> </tr> </tbody></table><p style=\"margin-bottom: 1em; margin-top: 1em;\">Os arquivos que passarem pela validação do XSD (formato estabelecido pela IATA), receberão status "<em>Received</em>", acompanhado do número de protocolo gerado para este arquivo. Este número de protocolo pode ser utilizado para verificar a situação de processamento do arquivo por meio dos serviços "Consultar Situação de Arquivos por Data" ou "Consultar Situação de Arquivos por número de Protocolo".</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">Já os arquivos que não passarem pela validação do XSD (formato estabelecido pela IATA) receberão status "<em>Rejected</em>", acompanhado da lista de erros encontrados.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">Para arquivos com o campo Response Type igual a "<em>Received</em>", haverá somente um registro do bloco de dados Response Status, conforme abaixo. O campo "Text" terá tamanho de 5000 caracteres, diferentemente do padrão estabelecido pela IATA.</p><span id=\"ip12\"> </span><table aria-describedby=\"ip12\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> <th>Valor</th> </tr> </thead> <tbody> <tr> <td>Category ResponseStatus / ConditionCode</td> <td>Acknowledgement</td> </tr> <tr> <td>Text</td> <td>ResponseStatus / Reason</td> <td>Número do protocolo de recebimento</td> </tr> </tbody></table><p style=\"margin-bottom: 1em; margin-top: 1em;\">Para arquivos com o campo Response Type igual a “<em>Rejected</em>”, cada ocorrência de erro conterá as seguintes informações no bloco de dados Response Status. O campo "Text" terá tamanho de 5000 caracteres, diferentemente do padrão estabelecido pela IATA.</p><span id=\"ip13\"> </span><table aria-describedby=\"ip13\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> <th>Valor</th> </tr> </thead> <tbody> <tr> <td>Category</td> <td>ResponseStatus / ConditionCode</td> <td>Error</td> </tr> <tr> <td>Text</td> <td>ResponseStatus / Reason</td> <td>Texto contendo a linha e coluna com erro, (informando Row:<número da linha> | Column:<número da coluna>) e a descrição do erro verificado.Tamanho do campo: 5000 posições. Ex: "Row:7|Column:20|Error: cvc-complex-type.2.4.a: Invalid content was found starting with element '{"iata:datamodel:3":PurposeCode}'. One of '{"iata:datamodel:3":IssueDateTime}' is expected.</td> </tr> </tbody></table> - * */ @POST @Path("/api/ext/incoming/xfwb") @@ -95,9 +91,8 @@ public interface ServiosDeEnvioDeArquivosApi { /** * Informar Conhecimento de Carga House - XFZB (House Air Waybill) - * + *
* <p style=\"margin-bottom: 1em; margin-top: 1em;\">Encaminhamento de arquivo XML para processamento de conhecimentos de cargas house (HAWB - <em>House Air Waybill</em>). Será permitida apenas uma mensagem XFZB por arquivo, contendo a operação de <em>Creation</em>, <em>Update</em> ou <em>Deletion</em>, conforme o padrão IATA.<p style=\"margin-bottom: 1em; margin-top: 1em;\">Os arquivos de operação Update ou Deletion serão processados, caso exista um arquivo de Creation recebido anteriormente com sucesso no sistema, tendo a mesma identificação do conhecimento de carga do HAWB. A identificação do conhecimento de carga HAWB é feita pelo conjunto da informação de número do HAWB (HouseWaybill/BusinessHeaderDocument/ID) e aeroporto de origem da carga do HAWB (HouseWaybill/MasterConsignment/IncludedHouseConsignment/OriginLocation/ID).</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">Para que um HAWB seja considerado associado a um MAWB(XFWB), deve haver arquivo de associação MAWB/HAWB(XFHL), que referencie o HAWB (XFZB), por meio de suas respectivas identificações do MAWB/HAWB e aeroporto de origem da carga. Além disso, todos os arquivos (XFHL, XFWB e XFZB) devem se encontrar na situação "<em>Processed</em>".</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">Um arquivo XFZB que está sendo enviado com a operação Creation pode ser encaminhado por este serviço a qualquer momento, inclusive após a chegada da aeronave. Já um arquivo que tenha a operação Update ou Deletion, somente será aceito pelo serviço até a informação da chegada da aeronave e caso a carga não esteja vinculada a um documento de saída. No caso da exclusão, esta operação também não será permitida caso o HAWB já esteja vinculado a seu MAWB, conforme a regra de associação acima mencionada. Nessas situações, as operações de retificação ou exclusão somente poderão ser realizadas por funcionalidades de tela (web) a serem disponibilizadas futuramente, e não mais por arquivo XML. A funcionalidade de exclusão será restrita para uso da RFB.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">Os conhecimentos de carga informados deverão ter código de classificação de mercadoria <strong>(NCM)</strong> com 2, 4, 6 ou 8 posições em HouseWaybill/MasterConsignment/IncludedHouseConsignment/IncludedHouseConsignmentItem/TypeCode. Esta tag poderá ser repetida caso seja desejado informar mais de um código NCM.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">Os valores totais de HAWB a serem informados, serão obrigatórios somente com relação ao valor de face (<strong>"F"</strong>).</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">De acordo com a necessidade da Receita Federal do Brasil, os campos abaixo são de informação obrigatória. Caso o arquivo não apresente as informações a seguir, ele será rejeitado em tempo de processamento.</p></br><h3 id=\"ip1\" style=\"margin-bottom: 1em; margin-top: 1em;\"><strong>Número Total de Volumes</strong></h3><table aria-describedby=\"ip1\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> </tr> </thead> <tbody> <tr> <td>HOUSE WAYBILL SUMMARY /Total number of pieces</td> <td>HouseWaybill / MasterConsignment / IncludedHouseConsignment / TotalPieceQuantity</td> </tr> </tbody></table></br><h3 id=\"ip2\" style=\"margin-bottom: 1em; margin-top: 1em;\"><strong>Peso Bruto Total</strong></h3><table aria-describedby=\"ip2\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> </tr> </thead> <tbody> <tr> <td>HOUSE WAYBILL SUMMARY / Total Gross Weight</td> <td>HouseWaybill / MasterConsignment / IncludedHouseConsignment / IncludedTareGrossWeightMeasure</td> </tr> </tbody></table></br><h3 id=\"ip3\" style=\"margin-bottom: 1em; margin-top: 1em;\"><strong>Peso Bruto Total - Unidade de Medida</strong></h3><table aria-describedby=\"ip3\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> </tr> </thead> <tbody> <tr> <td>HOUSE WAYBILL SUMMARY / Total Gross Weight</td> <td>HouseWaybill / MasterConsignment / IncludedHouseConsignment / IncludedTareGrossWeightMeasure (unit code) </td> </tr> </tbody></table></br><h3 id=\"ip4\" style=\"margin-bottom: 1em; margin-top: 1em;\"><strong>Descrição das Mercadorias</strong></h3><table aria-describedby=\"ip4\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> </tr> </thead> <tbody> <tr> <td>HOUSE WAYBILL SUMMARY / Description of Goods</td> <td>HouseWaybill / MasterConsignment / IncludedHouseConsignment / SummaryDescription</td> </tr> </tbody></table></br><h3 id=\"ip5\" style=\"margin-bottom: 1em; margin-top: 1em;\"><strong>Valor Total do Frete PREPAID</strong></h3><table aria-describedby=\"ip5\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> </tr> </thead> <tbody> <tr> <td>HOUSE WAYBILL SUMMARY / House Waybill Totals / Total Prepaid Charge Summary Amount</td> <td>HouseWaybill / MasterConsignment / IncludedHouseConsignment / TotalPrepaidChargeAmount</td> </tr> </tbody></table></br><h3 id=\"ip6\" style=\"margin-bottom: 1em; margin-top: 1em;\"><strong>Valor Total do Frete COLLECT</strong></h3><table aria-describedby=\"ip6\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> </tr> </thead> <tbody> <tr> <td>HOUSE WAYBILL SUMMARY / House Waybill Totals / Total Collect Charge Summary Amount</td> <td>HouseWaybill / MasterConsignment / IncludedHouseConsignment / TotalCollectChargeAmount</td> </tr> </tbody></table><p style=\"margin-bottom: 1em; margin-top: 1em;\">A informação de identificação do consignatário não é obrigatória, porém, caso a mesma não conste do HAWB no momento da chegada da viagem, o sistema realizará um bloqueio automático na carga.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">De acordo com a necessidade da Receita Federal do Brasil, existem informações que poderão ser registradas no bloco de dados \"Other Customs Informations\", não sendo obrigatórias nas versões iniciais.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">São elas:</p></br><h3 id=\"ip7\" style=\"margin-bottom: 1em; margin-top: 1em;\"><strong>Indicador de Presença de Partes e Peças de Madeira Maciça</strong></h3><table aria-describedby=\"ip7\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> <th>Valor</th> </tr> </thead> <tbody> <tr> <td>Other Customs, Security and Regulatory Control Information / Customs, Security and Regulatory Control Information Identifier</td> <td>HouseWaybill/MasterConsignment/IncludedHouseConsignment/IncludedCustomsNote/ContentCode</td> <td>Informar "DI"</td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Supplementary Customs, Security and Regulatory Control Information</td> <td>HouseWaybill/MasterConsignment/IncludedHouseConsignment/IncludedCustomsNote/Content</td> <td>Informar "WOOD PARTS"</td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Information identifier</td> <td>HouseWaybill/MasterConsignment/IncludedHouseConsignment/IncludedCustomsNote/SubjectCode</td> <td>Informar "OCI"</td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information /Country code</td> <td>HouseWaybill/MasterConsignment/IncludedHouseConsignment/IncludedCustomsNote/CountryID</td> <td>Informar "BR"</td> </tr> </tbody></table></br><h3 id=\"ip8\" style=\"margin-bottom: 1em; margin-top: 1em;\"><strong>Identificação do Consignatário</strong></h3><table aria-describedby=\"ip8\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> <th>Valor</th> </tr> </thead> <tbody> <tr> <td>Other Customs, Security and Regulatory Control Information / Customs, Security and Regulatory Control Information Identifier</td> <td>HouseWaybill/MasterConsignment/IncludedHouseConsignment/IncludedCustomsNote/ContentCode</td> <td>Informar "T"</td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information /Supplementary Customs, Security and Regulatory Control Information</td> <td>HouseWaybill/MasterConsignment/IncludedHouseConsignment/IncludedCustomsNote/Content</td> <td> <p style=\"margin-bottom: 1em; margin-top: 1em;\">- Se for um CPF informar "CPF<número do CPF com 11 dígitos>" . Ex: CPF12345678901</p> <p style=\"margin-bottom: 1em; margin-top: 1em;\">- Se for um CNPJ informar "CNPJ<número do CNPJ com 8 ou 14 dígitos>". Ex:CNPJ12345678901234</p> <p style=\"margin-bottom: 1em; margin-top: 1em;\">- Se for um Passaporte informar "PASSPORT<número do passaporte com até 25 posições>. Ex:PASSPORTC12345678.</p> </td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Information identifier</td> <td>HouseWaybill/MasterConsignment/IncludedHouseConsignment/IncludedCustomsNote/SubjectCode</td> <td>Informar "CNE" consignatário</td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Country code</td> <td>HouseWaybill/MasterConsignment/IncludedHouseConsignment/IncludedCustomsNote/CountryID</td> <td>Informar "BR"</td> </tr> </tbody></table></br><h3 id=\"ip9\" style=\"margin-bottom: 1em; margin-top: 1em;\"><strong>RUC (Referência Única da Carga) / UCR (Unique Consignment Reference)</strong></h3><p style=\"margin-bottom: 1em; margin-top: 1em;\"><strong>Obs</strong>: Caso a informação da RUC não seja encaminhada no arquivo, o sistema gera automaticamente um número para a carga. Se a RUC for informada, deverá atender a recomendação da Organização Mundial de Aduanas (OMA) para a Unique Consignment Reference (UCR).</p><table aria-describedby=\"ip9\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> <th>Valor</th> </tr> </thead> <tbody> <tr> <td>Other Customs, Security and Regulatory Control Information / Customs, Security and Regulatory Control Information Identifier</td> <td>HouseWaybill/MasterConsignment/IncludedHouseConsignment/IncludedCustomsNote/ContentCode</td> <td>Informar "U"</td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Supplementary Customs, Security and Regulatory Control Information</td> <td>HouseWaybill/MasterConsignment/IncludedHouseConsignment/IncludedCustomsNote/Content</td> <td>Informar UCR<número da RUC com até 32 posições>. Ex: UCR8BR167017161001713D0000000000004021</td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Information identifier</td> <td>HouseWaybill/MasterConsignment/IncludedHouseConsignment/IncludedCustomsNote/SubjectCode</td> <td>Informar "IMP"</td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Country code</td> <td>HouseWaybill/MasterConsignment/IncludedHouseConsignment/IncludedCustomsNote/CountryID</td> <td>Informar "BR"</td> </tr> </tbody></table></br><h3 id=\"ip10\" style=\"margin-bottom: 1em; margin-top: 1em;\"><strong>Código do Recinto Aduaneiro de Destino da Carga</strong></h3><table aria-describedby=\"ip10\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> <th>Valor</th> </tr> </thead> <tbody> <tr> <td>Other Customs, Security and Regulatory Control Information / Customs, Security and Regulatory Control Information Identifier</td> <td>HouseWaybill/MasterConsignment/IncludedHouseConsignment/IncludedCustomsNote/ContentCode</td> <td>Informar "M"</td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Supplementary Customs, Security and Regulatory Control Information</td> <td>HouseWaybill/MasterConsignment/IncludedHouseConsignment/IncludedCustomsNote/Content</td> <td>Informar "CUSTOMSWAREHOUSE<número do Código do Recinto Aduaneiro de Destino da Carga com 7 dígitos>". Ex:CUSTOMSWAREHOUSE1234567</td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Information identifier</td> <td>HouseWaybill/MasterConsignment/IncludedHouseConsignment/IncludedCustomsNote/SubjectCode</td> <td>Informar "CCL"</td> </tr> <tr> <td>Other Customs, Security and Regulatory Control Information / Country code</td> <td>HouseWaybill/MasterConsignment/IncludedHouseConsignment/IncludedCustomsNote/CountryID</td> <td>Informar "BR"</td> </tr> </tbody></table><p style=\"margin-bottom: 1em; margin-top: 1em;\">Todas as informações de data no arquivo devem ser encaminhadas com o fuso horário no padrão <strong>"YYYY-MM-DD'T'HH:mm:ss:SSS(‘+’/’-’)ZZ:ZZ"</strong>.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">A informação do fuso horário de partida ou chegada da aeronave refere-se ao fuso horário local. A data de criação do arquivo deverá ser informada com o fuso do local onde foi criado.</p></br><h3 id=\"par-metros-de-entrada-\">Parâmetros de Entrada:</h3><table aria-describedby=\"par-metros-de-entrada-\"> <thead> <tr> <th>Nome</th> <th>Descrição</th> <th>Tipo</th> <th>Local</th> <th>Detalhes</th> </tr> </thead> <tbody> <tr> <td>Arquivo de conhecimento de carga (XFZB)</td> <td>Conhecimentos de carga <em>House</em>(HAWB)</td> <td>Arquivo XML <strong>obrigatório</strong></td> <td>Body</td> <td>Versão 3.00 da IATA - informado pelos Agentes de Carga ou pelo Operador de Remessa Postal / Expressa </td> <td></td> </tr> <tr> <td>CNPJ</td> <td>CNPJ do Agente de Carga ou do Operador de Remessa Postal / Expressa</td> <td>Numérico(14) <strong>obrigatório</strong></td> <td>Query Param</td> <td>CNPJ (formato 99999999999999)</td> <td></td> </tr> </tbody></table></br><h3 id=\"resposta-\">Resposta :</h3><p style=\"margin-bottom: 1em; margin-top: 1em;\">Os serviços de recebimento de arquivos terão o retorno de processamento por arquivo XFNM na versão 3.00, com as seguintes informações:</p><table aria-describedby=\"resposta-\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> <th>Valor</th> </tr> </thead> <tbody> <tr> <td>Message Reference ID</td> <td>MessageHeaderDocument / ID</td> <td>Fixo "BRCUSTOMS"</td> </tr> <tr> <td>Message Name</td> <td>MessageHeaderDocument / Name</td> <td>Fixo "Response"</td> </tr> <tr> <td>Message Type</td> <td>MessageHeaderDocument / TypeCode</td> <td>Fixo "294"</td> </tr> <tr> <td>Message Date / Time Stamp</td> <td>MessageHeaderDocument / IssueDateTime</td> <td>Data / hora de processamento do arquivo - UTC time</td> </tr> <tr> <td>Message Function</td> <td>MessageHeaderDocument / PurposeCode</td> <td>Fixo "Response"</td> </tr> <tr> <td>Message Version</td> <td>MessageHeaderDocument / VersionID</td> <td>Fixo "3.0"</td> </tr> <tr> <td>Sender Qualifier</td> <td>MessageHeaderDocument / SenderParty / schemeID</td> <td>Fixo "C"</td> </tr> <tr> <td>Sender Identification</td> <td>MessageHeaderDocument / SenderParty / PrimaryID</td> <td>Fixo "BRCUSTOMS"</td> </tr> <tr> <td>Recipient Qualifier</td> <td>MessageHeaderDocument / RecipientParty / schemeID</td> <td>Valor do campo Sender Qualifier (tag MessageHeaderDocument / SenderParty / schemeID) do arquivo recebido. Caso não seja passível de identificação ou for inválido ou não vier preenchido, será preenchido com “O’ (letra O)</td> </tr> <tr> <td>Recipient Identification</td> <td>MessageHeaderDocument / RecipientParty / PrimaryID</td> <td>Valor do campo Sender Identification (tag MessageHeaderDocument / SenderParty / PrimaryID) do arquivo recebido. Caso não seja passível de identificação ou for inválido ou não vier preenchido, será preenchido com "NOT IDENTIFIED"</td> </tr> <tr> <td>Message Type</td> <td>BusinessHeaderDocument / TypeCode</td> <td>Valor do campo Message Type (tag MessageHeaderDocument / TypeCode) do arquivo original. Caso este campo não seja passível de identificação ou for inválido ou não vier preenchido, será preenchido com 999.</td> </tr> <tr> <td>Message Name</td> <td>BusinessHeaderDocument / Name</td> <td>Valor do campo Message Name (tag MessageHeaderDocument / Name) do arquivo original. Caso este campo não seja passível de identificação ou for inválido ou não vier preenchido, será preenchido com "NOT IDENTIFIED".</td> </tr> <tr> <td>Original Document Identification</td> <td>BusinessHeaderDocument / ID</td> <td>Valor do campo Message Reference ID (tag MessageHeaderDocument / ID) do arquivo original. Caso este campo não seja passível de identificação ou for inválido ou não vier preenchido, será preenchido com "NOT IDENTIFIED".</td> </tr> <tr> <td>Response Type</td> <td>BusinessHeaderDocument / StatusCode</td> <td>“<em>Received</em>” , “<em>Rejected</em>” ou “<em>Processed</em>” – conforme processamento do arquivo. Na versão atual, haverá resposta apenas nas situações “<em>Received</em>” (arquivo recebido e será processado) ou “<em>Rejected</em>”(arquivo foi rejeitado)</td> </tr> </tbody></table><p style=\"margin-bottom: 1em; margin-top: 1em;\">Os arquivos que passarem pela validação do XSD (formato estabelecido pela IATA), receberão status “Received”, acompanhado do número de protocolo gerado para este arquivo. Este número de protocolo pode ser utilizado para verificar a situação de processamento do arquivo por meio dos serviços “Consultar Situação de Arquivos por Data” ou “Consultar Situação de Arquivos por número de Protocolo”.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">Já os arquivos que não passarem pela validação do XSD (formato estabelecido pela IATA) receberão status “Rejected”, acompanhado da lista de erros encontrados.</p><p style=\"margin-bottom: 1em; margin-top: 1em;\">Para arquivos com o campo Response Type igual a “<em>Received</em>”, haverá somente um registro do bloco de dados Response Status, conforme abaixo. O campo "Text" terá tamanho de 5000 caracteres, diferentemente do padrão estabelecido pela IATA.</p><span id=\"ip11\"> </span><table aria-describedby=\"ip11\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> <th>Valor</th> </tr> </thead> <tbody> <tr> <td>Category</td> <td>ResponseStatus / ConditionCode</td> <td>Acknowledgement</td> </tr> <tr> <td>Text</td> <td>ResponseStatus / Reason</td> <td>Número do protocolo de recebimento</td> </tr> </tbody></table><p style=\"margin-bottom: 1em; margin-top: 1em;\">Para arquivos com o campo Response Type igual a “<em>Rejected</em>”, cada ocorrência de erro conterá as seguintes informações no bloco de dados Response Status. O campo "Text" terá tamanho de 5000 caracteres, diferentemente do padrão estabelecido pela IATA.</p><span id=\"ip12\"> </span><table aria-describedby=\"ip12\"> <thead> <tr> <th>Campo</th> <th>Tag XML</th> <th>Valor</th> </tr> </thead> <tbody> <tr> <td>Category</td> <td>ResponseStatus / ConditionCode</td> <td>Error</td> </tr> <tr> <td>Text</td> <td>ResponseStatus / Reason</td> <td>Texto contendo a linha e coluna com erro, (informando Row:<número da linha> | Column:<número da coluna>) e a descrição do erro verificada.Tamanho do campo: 5000 posições. Ex: "Row:7|Column:20|Error: cvc-complex-type.2.4.a: Invalid content was found starting with element '{"iata:datamodel:3":PurposeCode}'. One of '{"iata:datamodel:3":IssueDateTime}' is expected.</td> </tr> </tbody></table> - * */ @POST @Path("/api/ext/incoming/xfzb") diff --git a/src/main/java/br/gov/siscomex/portalunico/classif/api/ServioPblicoNomenclaturaApi.java b/src/main/java/br/gov/siscomex/portalunico/classif/api/ServioPblicoNomenclaturaApi.java index 624e5ec..0d14629 100644 --- a/src/main/java/br/gov/siscomex/portalunico/classif/api/ServioPblicoNomenclaturaApi.java +++ b/src/main/java/br/gov/siscomex/portalunico/classif/api/ServioPblicoNomenclaturaApi.java @@ -13,16 +13,14 @@ /** * Classificação Fiscal de Mercadoria * - *
Bem-vindo à API do sistema Classificação Fiscal de Mercadorias (Classif).
O Classificação Fiscal de Mercadorias fornece a relação dos atributos configurados pelos órgãos de governo para os códigos de mercadoria (NCM). A relação é atualizada diariamente, durante a madrugada, e pode ser consultada para a data atual.
O serviço disponibilizado nesta API é \"nomenclatura\", cuja especificação será descrita abaixo.
Para utilizar o serviço, deve-se acessar uma das URLs que seguem, de acordo com o ambiente utilizado:
Nome do Ambiente | URL de acesso |
---|---|
Ambiente de Validação das Empresas | https://val.portalunico.siscomex.gov.br/classif/api/publico/nomenclatura/download/json |
Ambiente de Produção | https://portalunico.siscomex.gov.br/classif/api/publico/nomenclatura/download/json |
- * + *
Bem-vindo à API do sistema Classificação Fiscal de Mercadorias (Classif).
O Classificação Fiscal de Mercadorias fornece a relação dos atributos configurados pelos órgãos de governo para os códigos de mercadoria (NCM). A relação é atualizada diariamente, durante a madrugada, e pode ser consultada para a data atual.
O serviço disponibilizado nesta API é \"nomenclatura\", cuja especificação será descrita abaixo.
Para utilizar o serviço, deve-se acessar uma das URLs que seguem, de acordo com o ambiente utilizado:
Nome do Ambiente | URL de acesso |
---|---|
Ambiente de Validação das Empresas | https://val.portalunico.siscomex.gov.br/classif/api/publico/nomenclatura/download/json |
Ambiente de Produção | https://portalunico.siscomex.gov.br/classif/api/publico/nomenclatura/download/json |
*/ @Path("/") @Api(value = "/", description = "") public interface ServioPblicoNomenclaturaApi { /** - * Download do Arquivo - * + * Download do Arquivo */ @GET @Path("/publico/nomenclatura/download/json") diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp/api/ServiosExternosSefazApi.java b/src/main/java/br/gov/siscomex/portalunico/duimp/api/ServiosExternosSefazApi.java index 399a802..8f95204 100644 --- a/src/main/java/br/gov/siscomex/portalunico/duimp/api/ServiosExternosSefazApi.java +++ b/src/main/java/br/gov/siscomex/portalunico/duimp/api/ServiosExternosSefazApi.java @@ -26,15 +26,15 @@ public interface ServiosExternosSefazApi { /** - * Consulta os dados de uma versão específica de uma DUIMP registrada. + * Consulta os dados da versão vigente de uma DUIMP registrada. * - * <p>Disponível apenas para as Secretarias de Fazenda (SEFAZ).</p> + * <p> Disponível apenas para as Secretarias de Fazenda (SEFAZ).</p> * */ @GET - @Path("/ext/sefaz/duimp/{numeroDuimp}/{versaoDuimp}") + @Path("/ext/sefaz/duimp/{numeroDuimp}") @Produces({"application/json"}) - @ApiOperation(value = "Consulta os dados de uma versão específica de uma DUIMP registrada.", notes = "
Disponível apenas para as Secretarias de Fazenda (SEFAZ).
", tags = {"Serviços Externos Sefaz"}) + @ApiOperation(value = "Consulta os dados da versão vigente de uma DUIMP registrada.", notes = "Disponível apenas para as Secretarias de Fazenda (SEFAZ).
", tags = {"Serviços Externos Sefaz"}) @ApiResponses(value = { @ApiResponse(code = 200, message = "Operação realizada com sucesso", response = SefazDuimpCover.class), @ApiResponse(code = 400, message = "Requisição mal formatada."), @@ -43,18 +43,18 @@ public interface ServiosExternosSefazApi { @ApiResponse(code = 404, message = "Recurso não encontrado"), @ApiResponse(code = 422, message = "Erro(s) de validação da camada de negócio", response = RespostaApiErroSefaz.class), @ApiResponse(code = 500, message = "Erro interno no servidor")}) - Response consultarDuimp(@ApiParam(value = "Número da DuimpDisponível apenas para as Secretarias de Fazenda (SEFAZ).
", tags = {"Serviços Externos Sefaz"}) + @ApiOperation(value = "Consulta os dados de uma versão específica de uma DUIMP registrada.", notes = "Disponível apenas para as Secretarias de Fazenda (SEFAZ).
", tags = {"Serviços Externos Sefaz"}) @ApiResponses(value = { @ApiResponse(code = 200, message = "Operação realizada com sucesso", response = SefazDuimpCover.class), @ApiResponse(code = 400, message = "Requisição mal formatada."), @@ -63,6 +63,6 @@ public interface ServiosExternosSefazApi { @ApiResponse(code = 404, message = "Recurso não encontrado"), @ApiResponse(code = 422, message = "Erro(s) de validação da camada de negócio", response = RespostaApiErroSefaz.class), @ApiResponse(code = 500, message = "Erro interno no servidor")}) - Response consultarDuimp1(@ApiParam(value = "Número da DuimpPara utilizar os serviços disponíveis nessa API deve-se seguir o seguinte padrão de URL:
https://{ambiente}/duimp-api/api/{serviço}
Onde, em {ambiente} deve-se informar o ambiente desejado dentre os ambientes disponíveis na tabela abaixo e em {serviço} utilizar a URI do serviço desejado.
Nome do Ambiente | URL de acesso |
---|---|
Ambiente de Validação das Empresas | val.portalunico.siscomex.gov.br |
Ambiente de Produção | portalunico.siscomex.gov.br |
Exemplo: Para o serviço "Consulta dos dados gerais da versão vigente de uma Duimp" a URI é "ext/duimp/{numero}/{versao}".
Logo, abaixo temos um exemplo de URL completa considerando o ambiente de Validação, consumindo este serviço
https://val.portalunico.siscomex.gov.br/duimp-api/api/ext/duimp/20BR00001001899/1
Obs: Todas as operações contam com uma descrição geral da operação abaixo da url, além da descrição resumida exibida ao seu lado.
+ */ +@Path("/") +@Api(value = "/", description = "") +public interface DadosGeraisDaDuimpApi { + + /** + * Consultar valores calculados da Duimp. + *
+ * Use esta funcionalidade para recuperar os valores calculados de uma Duimp em rascunho ou uma solicitação de retificação em rascunho, para pagamento.
+ */
+ @GET
+ @Path("/ext/duimp/{numero-duimp}/{versao-duimp}/valores-calculados")
+ @Produces({"application/json"})
+ @ApiOperation(value = "Consultar valores calculados da Duimp.", notes = "Use esta funcionalidade para recuperar os valores calculados de uma Duimp em rascunho ou uma solicitação de retificação em rascunho, para pagamento.", tags = {"Dados gerais da Duimp"})
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "Operação realizada com sucesso", response = ValoresCalculadosDuimpCover.class),
+ @ApiResponse(code = 401, message = "Usuário não autenticado ou autenticação inválida"),
+ @ApiResponse(code = 403, message = "Usuário não tem permissão de acesso ao recurso"),
+ @ApiResponse(code = 404, message = "Recurso não encontrado"),
+ @ApiResponse(code = 422, message = "Erro(s) de validação da camada de negócio", response = RespostaApiErro.class),
+ @ApiResponse(code = 500, message = "Erro interno no servidor")})
+ Response buscarValoresCalculadosDuimp(@ApiParam(value = "Número da Duimp.
Tamanho: 15
Formato: 'AABRSSSSSSSSSSD'
Lei de formação. O número da Duimp é composto por:
* AA = Corresponde ao ano do registro da Declaração.
* BR = Corresponde à sigla do país de emissão do documento (BR).
* SSSSSSSSSS = 10 caracteres numéricos. Número sequencial da Duimp dentro do ano.
* D = 1 caracter numérico. DV para todos os demais caracteres numéricos (Módulo 11)", required = true) @PathParam("numero-duimp") String numeroDuimp, @ApiParam(value = "Versão da Duimp.
Valor mínimo: 0
Valor máximo: 9999", required = true) @PathParam("versao-duimp") Object versaoDuimp, @ApiParam(value = "JSON Web Token (JWT) contendo as informações do usuário. Este token é recuperado no parâmetro Set-Token no response da autenticação", required = true) @HeaderParam("Authorization") String authorization, @ApiParam(value = "Token de prevenção contra ataques CSRF. Este token é recuperado no parâmetro X-CSRF-Token no response da autenticação", required = true) @HeaderParam("X-CSRF-Token") String xCSRFToken);
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/api/ItensDaDuimpApi.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/api/ItensDaDuimpApi.java
new file mode 100644
index 0000000..88c04a0
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/api/ItensDaDuimpApi.java
@@ -0,0 +1,45 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.api;
+
+import br.gov.siscomex.portalunico.duimp_api_receita.model.RespostaApiErro;
+import br.gov.siscomex.portalunico.duimp_api_receita.model.ValoresCalculadosItemCover;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.Response;
+
+/**
+ * Declaração Única de Importação - API Receita Federal
+ *
+ *
Para utilizar os serviços disponíveis nessa API deve-se seguir o seguinte padrão de URL:
https://{ambiente}/duimp-api/api/{serviço}
Onde, em {ambiente} deve-se informar o ambiente desejado dentre os ambientes disponíveis na tabela abaixo e em {serviço} utilizar a URI do serviço desejado.
Nome do Ambiente | URL de acesso |
---|---|
Ambiente de Validação das Empresas | val.portalunico.siscomex.gov.br |
Ambiente de Produção | portalunico.siscomex.gov.br |
Exemplo: Para o serviço "Consulta dos dados gerais da versão vigente de uma Duimp" a URI é "ext/duimp/{numero}/{versao}".
Logo, abaixo temos um exemplo de URL completa considerando o ambiente de Validação, consumindo este serviço
https://val.portalunico.siscomex.gov.br/duimp-api/api/ext/duimp/20BR00001001899/1
Obs: Todas as operações contam com uma descrição geral da operação abaixo da url, além da descrição resumida exibida ao seu lado.
+ */ +@Path("/") +@Api(value = "/", description = "") +public interface ItensDaDuimpApi { + + /** + * Consultar valores calculados de um item da Duimp. + *
+ * Use esta funcionalidade para recuperar os valores calculados de um item específico de uma Duimp em rascunho ou uma solicitação de retificação em rascunho, para pagamento.
+ */
+ @GET
+ @Path("/ext/duimp/{numero-duimp}/{versao-duimp}/itens/{numero-item}/valores-calculados")
+ @Produces({"application/json"})
+ @ApiOperation(value = "Consultar valores calculados de um item da Duimp.", notes = "Use esta funcionalidade para recuperar os valores calculados de um item específico de uma Duimp em rascunho ou uma solicitação de retificação em rascunho, para pagamento.", tags = {"Itens da Duimp"})
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "Operação realizada com sucesso", response = ValoresCalculadosItemCover.class),
+ @ApiResponse(code = 401, message = "Usuário não autenticado ou autenticação inválida"),
+ @ApiResponse(code = 403, message = "Usuário não tem permissão de acesso ao recurso"),
+ @ApiResponse(code = 404, message = "Recurso não encontrado"),
+ @ApiResponse(code = 422, message = "Erro(s) de validação da camada de negócio", response = RespostaApiErro.class),
+ @ApiResponse(code = 500, message = "Erro interno no servidor")})
+ Response buscarValoresCalculadosItemDuimp(@ApiParam(value = "Número da Duimp.
Tamanho: 15
Formato: 'AABRSSSSSSSSSSD'
Lei de formação. O número da Duimp é composto por:
* AA = Corresponde ao ano do registro da Declaração.
* BR = Corresponde à sigla do país de emissão do documento (BR).
* SSSSSSSSSS = 10 caracteres numéricos. Número sequencial da Duimp dentro do ano.
* D = 1 caracter numérico. DV para todos os demais caracteres numéricos (Módulo 11)", required = true) @PathParam("numero-duimp") String numeroDuimp, @ApiParam(value = "Versão da Duimp.
Valor mínimo: 0
Valor máximo: 9999", required = true) @PathParam("versao-duimp") Object versaoDuimp, @ApiParam(value = "Número do item da Duimp.
Formato: Inteiro, com até 5 dígitos", required = true) @PathParam("numero-item") Object numeroItem, @ApiParam(value = "JSON Web Token (JWT) contendo as informações do usuário. Este token é recuperado no parâmetro Set-Token no response da autenticação", required = true) @HeaderParam("Authorization") String authorization, @ApiParam(value = "Token de prevenção contra ataques CSRF. Este token é recuperado no parâmetro X-CSRF-Token no response da autenticação", required = true) @HeaderParam("X-CSRF-Token") String xCSRFToken);
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/api/ModelosDaDuimpApi.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/api/ModelosDaDuimpApi.java
new file mode 100644
index 0000000..8cae330
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/api/ModelosDaDuimpApi.java
@@ -0,0 +1,85 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.api;
+
+import br.gov.siscomex.portalunico.duimp_api_receita.model.DuimpCover;
+import br.gov.siscomex.portalunico.duimp_api_receita.model.ItemCover;
+import br.gov.siscomex.portalunico.duimp_api_receita.model.RegistroCover;
+import br.gov.siscomex.portalunico.duimp_api_receita.model.RespostaApiErro;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+
+import javax.validation.constraints.NotNull;
+import javax.ws.rs.GET;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.Response;
+
+/**
+ * Declaração Única de Importação - API Receita Federal
+ *
+ *
Para utilizar os serviços disponíveis nessa API deve-se seguir o seguinte padrão de URL:
https://{ambiente}/duimp-api/api/{serviço}
Onde, em {ambiente} deve-se informar o ambiente desejado dentre os ambientes disponíveis na tabela abaixo e em {serviço} utilizar a URI do serviço desejado.
Nome do Ambiente | URL de acesso |
---|---|
Ambiente de Validação das Empresas | val.portalunico.siscomex.gov.br |
Ambiente de Produção | portalunico.siscomex.gov.br |
Exemplo: Para o serviço "Consulta dos dados gerais da versão vigente de uma Duimp" a URI é "ext/duimp/{numero}/{versao}".
Logo, abaixo temos um exemplo de URL completa considerando o ambiente de Validação, consumindo este serviço
https://val.portalunico.siscomex.gov.br/duimp-api/api/ext/duimp/20BR00001001899/1
Obs: Todas as operações contam com uma descrição geral da operação abaixo da url, além da descrição resumida exibida ao seu lado.
+ */ +@Path("/") +@Api(value = "/", description = "") +public interface ModelosDaDuimpApi { + + /** + * Recuperar modelo dos dados gerais da Duimp. + *+ * Use esta funcionalidade para gerar o JSON que servirá de modelo para a funcionalidade salvar dados gerais. + */ + @GET + @Path("/ext/modelo/duimp/{numero-duimp}/{versao-duimp}") + @Produces({"application/json"}) + @ApiOperation(value = "Recuperar modelo dos dados gerais da Duimp.", notes = "Use esta funcionalidade para gerar o JSON que servirá de modelo para a funcionalidade salvar dados gerais.", tags = {"Modelos da Duimp"}) + @ApiResponses(value = { + @ApiResponse(code = 200, message = "Operação realizada com sucesso", response = DuimpCover.class), + @ApiResponse(code = 401, message = "Usuário não autenticado ou autenticação inválida"), + @ApiResponse(code = 403, message = "Usuário não tem permissão de acesso ao recurso"), + @ApiResponse(code = 404, message = "Recurso não encontrado"), + @ApiResponse(code = 422, message = "Erro(s) de validação da camada de negócio", response = RespostaApiErro.class), + @ApiResponse(code = 500, message = "Erro interno no servidor")}) + Response buscarDadosCapaDuimp(@ApiParam(value = "Número da Duimp.", required = true) @PathParam("numero-duimp") String numeroDuimp, @ApiParam(value = "Versão da Duimp.", required = true) @PathParam("versao-duimp") Object versaoDuimp, @ApiParam(value = "JSON Web Token (JWT) contendo as informações do usuário. Este token é recuperado no parâmetro Set-Token no response da autenticação", required = true) @HeaderParam("Authorization") String authorization, @ApiParam(value = "Token de prevenção contra ataques CSRF. Este token é recuperado no parâmetro X-CSRF-Token no response da autenticação", required = true) @HeaderParam("X-CSRF-Token") String xCSRFToken); + + /** + * Recuperar modelo dos dados dos itens da Duimp. + *
+ * Use esta funcionalidade para gerar o JSON que servirá de modelo para a funcionalidade salvar os dados dos itens da Duimp. + */ + @GET + @Path("/ext/modelo/duimp/{numero-duimp}/{versao-duimp}/itens") + @Produces({"application/json"}) + @ApiOperation(value = "Recuperar modelo dos dados dos itens da Duimp.", notes = "Use esta funcionalidade para gerar o JSON que servirá de modelo para a funcionalidade salvar os dados dos itens da Duimp.", tags = {"Modelos da Duimp"}) + @ApiResponses(value = { + @ApiResponse(code = 200, message = "Operação realizada com sucesso", response = ItemCover.class, responseContainer = "List"), + @ApiResponse(code = 401, message = "Usuário não autenticado ou autenticação inválida"), + @ApiResponse(code = 403, message = "Usuário não tem permissão de acesso ao recurso"), + @ApiResponse(code = 404, message = "Recurso não encontrado"), + @ApiResponse(code = 422, message = "Erro(s) de validação da camada de negócio", response = RespostaApiErro.class), + @ApiResponse(code = 500, message = "Erro interno no servidor")}) + Response buscarDadosItensDuimp(@ApiParam(value = "Número da Duimp.", required = true) @PathParam("numero-duimp") String numeroDuimp, @ApiParam(value = "Versão da Duimp.", required = true) @PathParam("versao-duimp") Object versaoDuimp, @NotNull @ApiParam(value = "Se refere ao primeiro item a ser retornado.", required = true) @QueryParam("inicial") Object inicial, @NotNull @ApiParam(value = "Se refere a quantidade de itens retornados.", required = true) @QueryParam("tamanho") Object tamanho, @ApiParam(value = "JSON Web Token (JWT) contendo as informações do usuário. Este token é recuperado no parâmetro Set-Token no response da autenticação", required = true) @HeaderParam("Authorization") String authorization, @ApiParam(value = "Token de prevenção contra ataques CSRF. Este token é recuperado no parâmetro X-CSRF-Token no response da autenticação", required = true) @HeaderParam("X-CSRF-Token") String xCSRFToken); + + /** + * Recuperar modelo da solicitação de registro da Duimp. + *
+ * Use esta funcionalidade para gerar o JSON que servirá de modelo para a funcionalidade de registro da Duimp.
+ */
+ @GET
+ @Path("/ext/modelo/duimp/{numero-duimp}/{versao-duimp}/registros")
+ @Produces({"application/json"})
+ @ApiOperation(value = "Recuperar modelo da solicitação de registro da Duimp.", notes = "Use esta funcionalidade para gerar o JSON que servirá de modelo para a funcionalidade de registro da Duimp.", tags = {"Modelos da Duimp"})
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "Operação realizada com sucesso", response = RegistroCover.class),
+ @ApiResponse(code = 401, message = "Usuário não autenticado ou autenticação inválida"),
+ @ApiResponse(code = 403, message = "Usuário não tem permissão de acesso ao recurso"),
+ @ApiResponse(code = 404, message = "Recurso não encontrado"),
+ @ApiResponse(code = 422, message = "Erro(s) de validação da camada de negócio", response = RespostaApiErro.class),
+ @ApiResponse(code = 500, message = "Erro interno no servidor")})
+ Response buscarModeloRegistroDuimp(@ApiParam(value = "Número da Duimp.", required = true) @PathParam("numero-duimp") String numeroDuimp, @ApiParam(value = "Versão da Duimp.", required = true) @PathParam("versao-duimp") Object versaoDuimp, @ApiParam(value = "JSON Web Token (JWT) contendo as informações do usuário. Este token é recuperado no parâmetro Set-Token no response da autenticação", required = true) @HeaderParam("Authorization") String authorization, @ApiParam(value = "Token de prevenção contra ataques CSRF. Este token é recuperado no parâmetro X-CSRF-Token no response da autenticação", required = true) @HeaderParam("X-CSRF-Token") String xCSRFToken);
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/AcrescimoDeducaoCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/AcrescimoDeducaoCover.java
new file mode 100644
index 0000000..cc20b4e
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/AcrescimoDeducaoCover.java
@@ -0,0 +1,171 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AcrescimoDeducaoCover", propOrder =
+ {"tipo", "moeda", "denominacao"
+ })
+
+@XmlRootElement(name = "AcrescimoDeducaoCover")
+/**
+ * Lista de Acréscimos e Deduções da condição de venda da mercadoria.
+ **/
+@ApiModel(description = "Lista de Acréscimos e Deduções da condição de venda da mercadoria.")
+public class AcrescimoDeducaoCover {
+
+
+ @XmlType(name = "TipoEnum")
+ @XmlEnum(String.class)
+ public enum TipoEnum {
+
+ @XmlEnumValue("ACRESCIMO")
+ @JsonProperty("ACRESCIMO")
+ ACRESCIMO("ACRESCIMO"),
+
+ @XmlEnumValue("DEDUCAO")
+ @JsonProperty("DEDUCAO")
+ DEDUCAO("DEDUCAO");
+
+
+ private final String value;
+
+ TipoEnum(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static TipoEnum fromValue(String v) {
+ for (TipoEnum b : TipoEnum.values()) {
+ if (String.valueOf(b.value).equals(v)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + v + "' to TipoEnum");
+ }
+ }
+
+ @XmlElement(name = "tipo", required = true)
+ @ApiModelProperty(example = "ACRESCIMO", required = true, value = "Tipo de Operação (acreścimo ou dedução). No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
+ */
+@Path("/")
+@Api(value = "/", description = "")
+public interface DuimpDadosDeItensApi {
+
+ /**
+ * Recupera as informações dos Dados de itens das Duimps solicitadas como parâmetros.
+ */
+ @GET
+ @Path("/duimp/itens")
+ @Produces({"application/json"})
+ @ApiOperation(value = "Recupera as informações dos Dados de itens das Duimps solicitadas como parâmetros.", notes = "", tags = {"Duimp - Dados de Itens"})
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "Operação realizada com sucesso", response = DuimpItemBalancaComercialCover.class, responseContainer = "List"),
+ @ApiResponse(code = 206, message = "Resultado parcial. Utilize o mecanismo de paginação para recuperar mais dados", response = DuimpItemBalancaComercialCover.class, responseContainer = "List"),
+ @ApiResponse(code = 401, message = "Usuário não autenticado ou autenticação inválida", response = RespostaApiErro.class),
+ @ApiResponse(code = 403, message = "Usuário não tem permissão de acesso ao recurso", response = RespostaApiErro.class),
+ @ApiResponse(code = 404, message = "Recurso não encontrado", response = RespostaApiErro.class),
+ @ApiResponse(code = 422, message = "Erro(s) de validação da camada de negócio", response = RespostaApiErro.class),
+ @ApiResponse(code = 500, message = "Erro interno no servidor", response = RespostaApiErro.class)})
+ Response obterDadosItensV2UsingGET(@ApiParam(value = "JSON Web Token (JWT) contendo as informações do usuário. No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
+ */
+@Path("/")
+@Api(value = "/", description = "")
+public interface DuimpDadosGeraisApi {
+
+ /**
+ * Recupera as informações dos Dados Gerais das Duimps selecionadas de acordo com os parâmetros informados.
+ */
+ @GET
+ @Path("/duimps")
+ @Produces({"application/json"})
+ @ApiOperation(value = "Recupera as informações dos Dados Gerais das Duimps selecionadas de acordo com os parâmetros informados.", notes = "", tags = {"Duimp - Dados Gerais"})
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "Operação realizada com sucesso", response = DuimpBalancaComercialCover.class, responseContainer = "List"),
+ @ApiResponse(code = 206, message = "Resultado parcial. Utilize o mecanismo de paginação para recuperar mais dados", response = DuimpBalancaComercialCover.class, responseContainer = "List"),
+ @ApiResponse(code = 401, message = "Usuário não autenticado ou autenticação inválida", response = RespostaApiErroBalanca.class),
+ @ApiResponse(code = 403, message = "Usuário não tem permissão de acesso ao recurso", response = RespostaApiErroBalanca.class),
+ @ApiResponse(code = 404, message = "Recurso não encontrado", response = RespostaApiErroBalanca.class),
+ @ApiResponse(code = 422, message = "Erro(s) de validação da camada de negócio", response = RespostaApiErroBalanca.class),
+ @ApiResponse(code = 500, message = "Erro interno no servidor", response = RespostaApiErroBalanca.class)})
+ Response obterDadosGeraisUsingGET(@ApiParam(value = "JSON Web Token (JWT) contendo as informações do usuário. No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
+ */
+@Path("/")
+@Api(value = "/", description = "")
+public interface DuimpTotalizadoresApi {
+
+ /**
+ * Recupera os dados do Sumário: Lista de Totalizadores agrupados por data.
+ */
+ @GET
+ @Path("/totalizadores/sumarios")
+ @Produces({"application/json"})
+ @ApiOperation(value = "Recupera os dados do Sumário: Lista de Totalizadores agrupados por data.", notes = "", tags = {"Duimp - Totalizadores"})
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "Operação realizada com sucesso", response = BalancaDuimpSumarioCover.class, responseContainer = "List"),
+ @ApiResponse(code = 401, message = "Usuário não autenticado ou autenticação inválida", response = RespostaApiErroBalanca.class),
+ @ApiResponse(code = 403, message = "Usuário não tem permissão de acesso ao recurso", response = RespostaApiErroBalanca.class),
+ @ApiResponse(code = 404, message = "Recurso não encontrado", response = RespostaApiErroBalanca.class),
+ @ApiResponse(code = 422, message = "Erro(s) de validação da camada de negócio", response = RespostaApiErroBalanca.class),
+ @ApiResponse(code = 500, message = "Erro interno no servidor", response = RespostaApiErroBalanca.class)})
+ Response obterDadosSumarioUsingGET(@NotNull @ApiParam(value = "Data inicial de desembaraço a ser considerada no filtro de pesquisa. Bem-vindo à Application Programming Interface (API) de interação entre os recintos e o Portal Único de Comércio Exterior no Sistema Integrado de Comércio Exterior (Portal Siscomex), aqui chamada de API-Recintos. Trata-se de um conjunto de rotinas e padrões de programação para acesso a um aplicativo de software baseado nos padrões Web, que permitirá a recepção de eventos dentro do Portal Siscomex. Disponibilizamos os endpoints de 22 eventos. Para a utilização dos serviços desta API, a autenticação via certificação digital, do tipo e-CNPJ, é obrigatória. Caso seja verificado erro na autenticação ao serviço, o sistema irá retornar o erro referente à autenticação conforme especificado na seção Status Codes da API. O processo de autenticação deve ser executado conforme descrito em Autenticação. Definições importantes, conforme a Portaria Coana no 72, de 12 de abril de 2022: I - Sistema Informatizado de Controle Aduaneiro (SICA): o conjunto de sistemas informatizados de controle que operem em locais ou recintos alfandegados ou autorizados a operar com mercadorias sob controle aduaneiro; O interveniente deverá registrar no SICA e enviar para a API-Recintos, para cada operação que realizar, todas as informações de cada evento, excetuadas as informações inaplicáveis ao caso em concreto. O envio de eventos retificadores substitui completamente as informações prestadas no evento retificado. Todos os eventos enviados à API-Recintos devem conter o CPF do preposto que realizou o registro das informações no SICA, ressalvados os casos de informações coletadas automaticamente. A cada envio de eventos à API-Recintos será retornado um protocolo de recepção que deve ser armazenado no SICA. Esse recibo será a identificação única de um evento dentro da API-Recintos e deve ser utilizado para solicitar a retificação ou exclusão do referido evento. Esse protocolo também deve ser utilizado na identificação de artefatos georreferenciados. O SICA deverá funcionar de forma ininterrupta e permitir o envio de eventos à API-Recintos de forma simultânea e integrada com o registro de informações relativas às operações executadas nos locais ou recintos alfandegados ou autorizados a operar com mercadorias sob controle aduaneiro. Nota 1: O ambiente de validação/treinamento foi projetado para possibilitar testes de integração entre o SICA e a API-Recintos. Portanto, faça uso racional do ambiente de validação/treinamento pois tentativas massivas de envios de eventos poderão ter limitação temporária de acesso. Abaixo, foram consolidadas informações técnicas para a integração dos sistemas dos intervenientes com o Portal: 1) No Portal, todos os serviços adotam o mesmo protocolo de acesso, baseado no padrão SSL/TLS e no uso de certificado digital. A API do Portal foi desenvolvida baseada na arquitetura REST. Ela trabalhará com o formato JSON. Além disso, toda a nossa API usará o formato UTF-8; O depositário, inclusive quando executar atividades de operador portuário em seu próprio recinto, pode enviar todos os eventos com a autenticação DEPOSIT. O pacote de dados a ser transmitido deve informar o seu código de recinto (codigoRecinto), ou seja, o código do recinto onde ocorreu o evento a ser transmitido. Caso o interveniente atue exclusivamente como operador portuário, ou seja, não acumule ambas as atuações (depositário e operador portuário) no recinto de ocorrência do evento, então ele deve usar o perfil OPERPORT para autenticação. Enfatiza-se que o código de recinto (codigoRecinto), indicado no pacote de dados, deve refletir o recinto onde, de fato, ocorreu o evento a ser transmitido. Ressaltamos que o servidor da API Recintos possui horário sincronizado com o protocolo NTP.BR. Orientamos que os recintos sincronizem os servidores envolvidos na geração e transmissão dos eventos com o mesmo protocolo. Para utilizar os serviços disponíveis nessa API deve-se usar as seguintes de URLs: Logo, abaixo temos um exemplo de URL completa considerando o ambiente de Validação de Empresas, consumindo o serviço de Credenciamento de Pessoas: https://val.portalunico.siscomex.gov.br/recintos-ext/api/ext/credenciamento-pessoas Bem-vindo à Application Programming Interface (API) de interação entre os recintos e o Portal Único de Comércio Exterior no Sistema Integrado de Comércio Exterior (Portal Siscomex), aqui chamada de API-Recintos. Trata-se de um conjunto de rotinas e padrões de programação para acesso a um aplicativo de software baseado nos padrões Web, que permitirá a recepção de eventos dentro do Portal Siscomex. Disponibilizamos os endpoints de 22 eventos. Para a utilização dos serviços desta API, a autenticação via certificação digital, do tipo e-CNPJ, é obrigatória. Caso seja verificado erro na autenticação ao serviço, o sistema irá retornar o erro referente à autenticação conforme especificado na seção Status Codes da API. O processo de autenticação deve ser executado conforme descrito em Autenticação. Definições importantes, conforme a Portaria Coana no 72, de 12 de abril de 2022: I - Sistema Informatizado de Controle Aduaneiro (SICA): o conjunto de sistemas informatizados de controle que operem em locais ou recintos alfandegados ou autorizados a operar com mercadorias sob controle aduaneiro; O interveniente deverá registrar no SICA e enviar para a API-Recintos, para cada operação que realizar, todas as informações de cada evento, excetuadas as informações inaplicáveis ao caso em concreto. O envio de eventos retificadores substitui completamente as informações prestadas no evento retificado. Todos os eventos enviados à API-Recintos devem conter o CPF do preposto que realizou o registro das informações no SICA, ressalvados os casos de informações coletadas automaticamente. A cada envio de eventos à API-Recintos será retornado um protocolo de recepção que deve ser armazenado no SICA. Esse recibo será a identificação única de um evento dentro da API-Recintos e deve ser utilizado para solicitar a retificação ou exclusão do referido evento. Esse protocolo também deve ser utilizado na identificação de artefatos georreferenciados. O SICA deverá funcionar de forma ininterrupta e permitir o envio de eventos à API-Recintos de forma simultânea e integrada com o registro de informações relativas às operações executadas nos locais ou recintos alfandegados ou autorizados a operar com mercadorias sob controle aduaneiro. Nota 1: O ambiente de validação/treinamento foi projetado para possibilitar testes de integração entre o SICA e a API-Recintos. Portanto, faça uso racional do ambiente de validação/treinamento pois tentativas massivas de envios de eventos poderão ter limitação temporária de acesso. Abaixo, foram consolidadas informações técnicas para a integração dos sistemas dos intervenientes com o Portal: 1) No Portal, todos os serviços adotam o mesmo protocolo de acesso, baseado no padrão SSL/TLS e no uso de certificado digital. A API do Portal foi desenvolvida baseada na arquitetura REST. Ela trabalhará com o formato JSON. Além disso, toda a nossa API usará o formato UTF-8; O depositário, inclusive quando executar atividades de operador portuário em seu próprio recinto, pode enviar todos os eventos com a autenticação DEPOSIT. O pacote de dados a ser transmitido deve informar o seu código de recinto (codigoRecinto), ou seja, o código do recinto onde ocorreu o evento a ser transmitido. Caso o interveniente atue exclusivamente como operador portuário, ou seja, não acumule ambas as atuações (depositário e operador portuário) no recinto de ocorrência do evento, então ele deve usar o perfil OPERPORT para autenticação. Enfatiza-se que o código de recinto (codigoRecinto), indicado no pacote de dados, deve refletir o recinto onde, de fato, ocorreu o evento a ser transmitido. Ressaltamos que o servidor da API Recintos possui horário sincronizado com o protocolo NTP.BR. Orientamos que os recintos sincronizem os servidores envolvidos na geração e transmissão dos eventos com o mesmo protocolo. Para utilizar os serviços disponíveis nessa API deve-se usar as seguintes de URLs: Logo, abaixo temos um exemplo de URL completa considerando o ambiente de Validação de Empresas, consumindo o serviço de Credenciamento de Pessoas: https://val.portalunico.siscomex.gov.br/recintos-ext/api/ext/credenciamento-pessoas Bem-vindo à Application Programming Interface (API) de interação entre os recintos e o Portal Único de Comércio Exterior no Sistema Integrado de Comércio Exterior (Portal Siscomex), aqui chamada de API-Recintos. Trata-se de um conjunto de rotinas e padrões de programação para acesso a um aplicativo de software baseado nos padrões Web, que permitirá a recepção de eventos dentro do Portal Siscomex. Disponibilizamos os endpoints de 22 eventos. Para a utilização dos serviços desta API, a autenticação via certificação digital, do tipo e-CNPJ, é obrigatória. Caso seja verificado erro na autenticação ao serviço, o sistema irá retornar o erro referente à autenticação conforme especificado na seção Status Codes da API. O processo de autenticação deve ser executado conforme descrito em Autenticação. Definições importantes, conforme a Portaria Coana no 72, de 12 de abril de 2022: I - Sistema Informatizado de Controle Aduaneiro (SICA): o conjunto de sistemas informatizados de controle que operem em locais ou recintos alfandegados ou autorizados a operar com mercadorias sob controle aduaneiro;
Domínio:")
+ /**
+ * Tipo de Operação (acreścimo ou dedução).
Domínio:
+ **/
+ private TipoEnum tipo = null;
+
+ @XmlElement(name = "moeda", required = true)
+ @ApiModelProperty(required = true, value = "")
+ @Valid
+ private MoedaAcrescimoDeducaoCover moeda = null;
+
+ @XmlElement(name = "denominacao", required = true)
+ @ApiModelProperty(required = true, value = "")
+ @Valid
+ private DenominacaoAcrescimoDeducaoCover denominacao = null;
+
+ /**
+ * Tipo de Operação (acreścimo ou dedução).<br>Domínio:
+ *
+ * @return tipo
+ **/
+ @JsonProperty("tipo")
+ @NotNull
+ public String getTipo() {
+ if (tipo == null) {
+ return null;
+ }
+ return tipo.value();
+ }
+
+ public void setTipo(TipoEnum tipo) {
+ this.tipo = tipo;
+ }
+
+ public AcrescimoDeducaoCover tipo(TipoEnum tipo) {
+ this.tipo = tipo;
+ return this;
+ }
+
+ /**
+ * Get moeda
+ *
+ * @return moeda
+ **/
+ @JsonProperty("moeda")
+ @NotNull
+ public MoedaAcrescimoDeducaoCover getMoeda() {
+ return moeda;
+ }
+
+ public void setMoeda(MoedaAcrescimoDeducaoCover moeda) {
+ this.moeda = moeda;
+ }
+
+ public AcrescimoDeducaoCover moeda(MoedaAcrescimoDeducaoCover moeda) {
+ this.moeda = moeda;
+ return this;
+ }
+
+ /**
+ * Get denominacao
+ *
+ * @return denominacao
+ **/
+ @JsonProperty("denominacao")
+ @NotNull
+ public DenominacaoAcrescimoDeducaoCover getDenominacao() {
+ return denominacao;
+ }
+
+ public void setDenominacao(DenominacaoAcrescimoDeducaoCover denominacao) {
+ this.denominacao = denominacao;
+ }
+
+ public AcrescimoDeducaoCover denominacao(DenominacaoAcrescimoDeducaoCover denominacao) {
+ this.denominacao = denominacao;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class AcrescimoDeducaoCover {\n" +
+ " tipo: " + toIndentedString(tipo) + "\n" +
+ " moeda: " + toIndentedString(moeda) + "\n" +
+ " denominacao: " + toIndentedString(denominacao) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/AcrescimoDeducaoValoresCalculadosCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/AcrescimoDeducaoValoresCalculadosCover.java
new file mode 100644
index 0000000..45e20f4
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/AcrescimoDeducaoValoresCalculadosCover.java
@@ -0,0 +1,167 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AcrescimoDeducaoValoresCalculadosCover", propOrder =
+ {"tipo", "denominacao", "valorBRL"
+ })
+
+@XmlRootElement(name = "AcrescimoDeducaoValoresCalculadosCover")
+public class AcrescimoDeducaoValoresCalculadosCover {
+
+
+ @XmlType(name = "TipoEnum")
+ @XmlEnum(String.class)
+ public enum TipoEnum {
+
+ @XmlEnumValue("ACRESCIMO")
+ @JsonProperty("ACRESCIMO")
+ ACRESCIMO("ACRESCIMO"),
+
+ @XmlEnumValue("DEDUCAO")
+ @JsonProperty("DEDUCAO")
+ DEDUCAO("DEDUCAO");
+
+
+ private final String value;
+
+ TipoEnum(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static TipoEnum fromValue(String v) {
+ for (TipoEnum b : TipoEnum.values()) {
+ if (String.valueOf(b.value).equals(v)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + v + "' to TipoEnum");
+ }
+ }
+
+ @XmlElement(name = "tipo", required = true)
+ @ApiModelProperty(example = "ACRESCIMO", required = true, value = "Tipo de Operação (acreścimo ou dedução).
Domínio:")
+ /**
+ * Tipo de Operação (acreścimo ou dedução).
Domínio:
+ **/
+ private TipoEnum tipo = null;
+
+ @XmlElement(name = "denominacao", required = true)
+ @ApiModelProperty(required = true, value = "")
+ @Valid
+ private DenominacaoAcrescimoDeducaoCover denominacao = null;
+
+ @XmlElement(name = "valorBRL")
+ @ApiModelProperty(example = "400.48", value = "Valor do acréscimo/dedução em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ /**
+ * Valor do acréscimo/dedução em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private Double valorBRL = null;
+
+ /**
+ * Tipo de Operação (acreścimo ou dedução).<br>Domínio:
+ *
+ * @return tipo
+ **/
+ @JsonProperty("tipo")
+ @NotNull
+ public String getTipo() {
+ if (tipo == null) {
+ return null;
+ }
+ return tipo.value();
+ }
+
+ public void setTipo(TipoEnum tipo) {
+ this.tipo = tipo;
+ }
+
+ public AcrescimoDeducaoValoresCalculadosCover tipo(TipoEnum tipo) {
+ this.tipo = tipo;
+ return this;
+ }
+
+ /**
+ * Get denominacao
+ *
+ * @return denominacao
+ **/
+ @JsonProperty("denominacao")
+ @NotNull
+ public DenominacaoAcrescimoDeducaoCover getDenominacao() {
+ return denominacao;
+ }
+
+ public void setDenominacao(DenominacaoAcrescimoDeducaoCover denominacao) {
+ this.denominacao = denominacao;
+ }
+
+ public AcrescimoDeducaoValoresCalculadosCover denominacao(DenominacaoAcrescimoDeducaoCover denominacao) {
+ this.denominacao = denominacao;
+ return this;
+ }
+
+ /**
+ * Valor do acréscimo/dedução em R$ (Reais).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return valorBRL
+ **/
+ @JsonProperty("valorBRL")
+ public Double getValorBRL() {
+ return valorBRL;
+ }
+
+ public void setValorBRL(Double valorBRL) {
+ this.valorBRL = valorBRL;
+ }
+
+ public AcrescimoDeducaoValoresCalculadosCover valorBRL(Double valorBRL) {
+ this.valorBRL = valorBRL;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class AcrescimoDeducaoValoresCalculadosCover {\n" +
+ " tipo: " + toIndentedString(tipo) + "\n" +
+ " denominacao: " + toIndentedString(denominacao) + "\n" +
+ " valorBRL: " + toIndentedString(valorBRL) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/AdicaoValoresCalculadosDuimpCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/AdicaoValoresCalculadosDuimpCover.java
new file mode 100644
index 0000000..c6732d7
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/AdicaoValoresCalculadosDuimpCover.java
@@ -0,0 +1,99 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AdicaoValoresCalculadosDuimpCover", propOrder =
+ {"numero", "itens"
+ })
+
+@XmlRootElement(name = "AdicaoValoresCalculadosDuimpCover")
+/**
+ * Dados da adição.
+ **/
+@ApiModel(description = "Dados da adição.")
+public class AdicaoValoresCalculadosDuimpCover {
+
+ @XmlElement(name = "numero")
+ @ApiModelProperty(example = "1.0", value = "Número total de adições.
Tamanho mínimo: 1
Tamanho máximo: 99")
+ /**
+ * Número total de adições.
Tamanho mínimo: 1
Tamanho máximo: 99
+ **/
+ private Double numero = null;
+
+ @XmlElement(name = "itens")
+ @ApiModelProperty(example = "1.0", value = "Número de identificação de cada item que compõe a Duimp.
Tamanho mínimo: 1
Tamanho máximo: 9999")
+ /**
+ * Número de identificação de cada item que compõe a Duimp.
Tamanho mínimo: 1
Tamanho máximo: 9999
+ **/
+ private Double itens = null;
+
+ /**
+ * Número total de adições.<br>Tamanho mínimo: 1<br>Tamanho máximo: 99
+ *
+ * @return numero
+ **/
+ @JsonProperty("numero")
+ public Double getNumero() {
+ return numero;
+ }
+
+ public void setNumero(Double numero) {
+ this.numero = numero;
+ }
+
+ public AdicaoValoresCalculadosDuimpCover numero(Double numero) {
+ this.numero = numero;
+ return this;
+ }
+
+ /**
+ * Número de identificação de cada item que compõe a Duimp.<br>Tamanho mínimo: 1<br>Tamanho máximo: 9999
+ *
+ * @return itens
+ **/
+ @JsonProperty("itens")
+ public Double getItens() {
+ return itens;
+ }
+
+ public void setItens(Double itens) {
+ this.itens = itens;
+ }
+
+ public AdicaoValoresCalculadosDuimpCover itens(Double itens) {
+ this.itens = itens;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class AdicaoValoresCalculadosDuimpCover {\n" +
+ " numero: " + toIndentedString(numero) + "\n" +
+ " itens: " + toIndentedString(itens) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/AtributoFundamentoLegalItemCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/AtributoFundamentoLegalItemCover.java
new file mode 100644
index 0000000..2ba6905
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/AtributoFundamentoLegalItemCover.java
@@ -0,0 +1,99 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AtributoFundamentoLegalItemCover", propOrder =
+ {"codigo", "valor"
+ })
+
+@XmlRootElement(name = "AtributoFundamentoLegalItemCover")
+/**
+ * Lista de atributos dinâmicos relacionados ao Fundamento Legal aplicado.
Origem: Sistema Cadastro de Atributos - https://api-docs.portalunico.siscomex.gov.br/
+ **/
+@ApiModel(description = "Lista de atributos dinâmicos relacionados ao Fundamento Legal aplicado.
Origem: Sistema Cadastro de Atributos - https://api-docs.portalunico.siscomex.gov.br/")
+public class AtributoFundamentoLegalItemCover {
+
+ @XmlElement(name = "codigo")
+ @ApiModelProperty(example = "ATT_1001", value = "Código do atributo no cadastro de atributos.
Tamanho mínimo: 1
Tamanho máximo: 14")
+ /**
+ * Código do atributo no cadastro de atributos.
Tamanho mínimo: 1
Tamanho máximo: 14
+ **/
+ private String codigo = null;
+
+ @XmlElement(name = "valor")
+ @ApiModelProperty(example = "230000123", value = "Valor atribuído pelo importador ao atributo representado pelo código.
Tamanho mínimo: 0
Tamanho máximo: 10000")
+ /**
+ * Valor atribuído pelo importador ao atributo representado pelo código.
Tamanho mínimo: 0
Tamanho máximo: 10000
+ **/
+ private String valor = null;
+
+ /**
+ * Código do atributo no cadastro de atributos.<br>Tamanho mínimo: 1<br>Tamanho máximo: 14
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ public String getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(String codigo) {
+ this.codigo = codigo;
+ }
+
+ public AtributoFundamentoLegalItemCover codigo(String codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+ /**
+ * Valor atribuído pelo importador ao atributo representado pelo código.<br>Tamanho mínimo: 0<br>Tamanho máximo: 10000
+ *
+ * @return valor
+ **/
+ @JsonProperty("valor")
+ public String getValor() {
+ return valor;
+ }
+
+ public void setValor(String valor) {
+ this.valor = valor;
+ }
+
+ public AtributoFundamentoLegalItemCover valor(String valor) {
+ this.valor = valor;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class AtributoFundamentoLegalItemCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ " valor: " + toIndentedString(valor) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/AtributoItemCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/AtributoItemCover.java
new file mode 100644
index 0000000..9458ae5
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/AtributoItemCover.java
@@ -0,0 +1,99 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AtributoItemCover", propOrder =
+ {"codigo", "valor"
+ })
+
+@XmlRootElement(name = "AtributoItemCover")
+/**
+ * Lista de atributos dinâmicos da mercadoria.
Origem: Sistema Cadastro de Atributos - https://api-docs.portalunico.siscomex.gov.br/
+ **/
+@ApiModel(description = "Lista de atributos dinâmicos da mercadoria.
Origem: Sistema Cadastro de Atributos - https://api-docs.portalunico.siscomex.gov.br/")
+public class AtributoItemCover {
+
+ @XmlElement(name = "codigo")
+ @ApiModelProperty(example = "ATT_0001", value = "Código do atributo no cadastro de atributos.
Tamanho mínimo: 1
Tamanho máximo: 14")
+ /**
+ * Código do atributo no cadastro de atributos.
Tamanho mínimo: 1
Tamanho máximo: 14
+ **/
+ private String codigo = null;
+
+ @XmlElement(name = "valor")
+ @ApiModelProperty(example = "01011100", value = "Valor atribuído pelo importador ao atributo representado pelo código.
Tamanho mínimo: 0
Tamanho máximo: 10000")
+ /**
+ * Valor atribuído pelo importador ao atributo representado pelo código.
Tamanho mínimo: 0
Tamanho máximo: 10000
+ **/
+ private String valor = null;
+
+ /**
+ * Código do atributo no cadastro de atributos.<br>Tamanho mínimo: 1<br>Tamanho máximo: 14
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ public String getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(String codigo) {
+ this.codigo = codigo;
+ }
+
+ public AtributoItemCover codigo(String codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+ /**
+ * Valor atribuído pelo importador ao atributo representado pelo código.<br>Tamanho mínimo: 0<br>Tamanho máximo: 10000
+ *
+ * @return valor
+ **/
+ @JsonProperty("valor")
+ public String getValor() {
+ return valor;
+ }
+
+ public void setValor(String valor) {
+ this.valor = valor;
+ }
+
+ public AtributoItemCover valor(String valor) {
+ this.valor = valor;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class AtributoItemCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ " valor: " + toIndentedString(valor) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/AtributoTributoCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/AtributoTributoCover.java
new file mode 100644
index 0000000..ed50ee3
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/AtributoTributoCover.java
@@ -0,0 +1,99 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AtributoTributoCover", propOrder =
+ {"codigo", "valor"
+ })
+
+@XmlRootElement(name = "AtributoTributoCover")
+/**
+ * Lista de atributos dinâmicos dos tributos.
+ **/
+@ApiModel(description = "Lista de atributos dinâmicos dos tributos.")
+public class AtributoTributoCover {
+
+ @XmlElement(name = "codigo")
+ @ApiModelProperty(example = "ATT_0001", value = "Código do atributo no cadastro de atributos.
Tamanho mínimo: 1
Tamanho máximo: 14")
+ /**
+ * Código do atributo no cadastro de atributos.
Tamanho mínimo: 1
Tamanho máximo: 14
+ **/
+ private String codigo = null;
+
+ @XmlElement(name = "valor")
+ @ApiModelProperty(example = "01011100", value = "Valor atribuído pelo importador ao atributo representado pelo código.
Tamanho mínimo: 0
Tamanho máximo: 10000")
+ /**
+ * Valor atribuído pelo importador ao atributo representado pelo código.
Tamanho mínimo: 0
Tamanho máximo: 10000
+ **/
+ private String valor = null;
+
+ /**
+ * Código do atributo no cadastro de atributos.<br>Tamanho mínimo: 1<br>Tamanho máximo: 14
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ public String getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(String codigo) {
+ this.codigo = codigo;
+ }
+
+ public AtributoTributoCover codigo(String codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+ /**
+ * Valor atribuído pelo importador ao atributo representado pelo código.<br>Tamanho mínimo: 0<br>Tamanho máximo: 10000
+ *
+ * @return valor
+ **/
+ @JsonProperty("valor")
+ public String getValor() {
+ return valor;
+ }
+
+ public void setValor(String valor) {
+ this.valor = valor;
+ }
+
+ public AtributoTributoCover valor(String valor) {
+ this.valor = valor;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class AtributoTributoCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ " valor: " + toIndentedString(valor) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/CaracterizacaoImportacaoCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/CaracterizacaoImportacaoCover.java
new file mode 100644
index 0000000..5880196
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/CaracterizacaoImportacaoCover.java
@@ -0,0 +1,149 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CaracterizacaoImportacaoCover", propOrder =
+ {"indicador", "ni"
+ })
+
+@XmlRootElement(name = "CaracterizacaoImportacaoCover")
+/**
+ * Caracterização da Importação.
+ **/
+@ApiModel(description = "Caracterização da Importação.")
+public class CaracterizacaoImportacaoCover {
+
+
+ @XmlType(name = "IndicadorEnum")
+ @XmlEnum(String.class)
+ public enum IndicadorEnum {
+
+ @XmlEnumValue("IMPORTACAO_DIRETA")
+ @JsonProperty("IMPORTACAO_DIRETA")
+ DIRETA("IMPORTACAO_DIRETA"),
+
+ @XmlEnumValue("IMPORTACAO_POR_CONTA_E_ORDEM")
+ @JsonProperty("IMPORTACAO_POR_CONTA_E_ORDEM")
+ POR_CONTA_E_ORDEM("IMPORTACAO_POR_CONTA_E_ORDEM"),
+
+ @XmlEnumValue("IMPORTACAO_POR_ENCOMENDA")
+ @JsonProperty("IMPORTACAO_POR_ENCOMENDA")
+ POR_ENCOMENDA("IMPORTACAO_POR_ENCOMENDA");
+
+
+ private final String value;
+
+ IndicadorEnum(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static IndicadorEnum fromValue(String v) {
+ for (IndicadorEnum b : IndicadorEnum.values()) {
+ if (String.valueOf(b.value).equals(v)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + v + "' to IndicadorEnum");
+ }
+ }
+
+ @XmlElement(name = "indicador", required = true)
+ @ApiModelProperty(example = "IMPORTACAO_DIRETA", required = true, value = "Indicador de importação por terceiros.")
+ /**
+ * Indicador de importação por terceiros.
+ **/
+ private IndicadorEnum indicador = null;
+
+ @XmlElement(name = "ni")
+ @ApiModelProperty(example = "00000000000191", value = "CNPJ do adquirente ou encomendante.
Tamanho: 14
Formato: 'NNNNNNNNNNNNNN'
Observação: Este atributo é informado apenas quando o atributo 'indicador' possui um dos seguintes valores: 'IMPORTACAO_POR_CONTA_E_ORDEM', 'IMPORTACAO_POR_ENCOMENDA'")
+ /**
+ * CNPJ do adquirente ou encomendante.
Tamanho: 14
Formato: 'NNNNNNNNNNNNNN'
Observação: Este atributo é informado apenas quando o atributo 'indicador' possui um dos seguintes valores: 'IMPORTACAO_POR_CONTA_E_ORDEM', 'IMPORTACAO_POR_ENCOMENDA'
+ **/
+ private String ni = null;
+
+ /**
+ * Indicador de importação por terceiros.
+ *
+ * @return indicador
+ **/
+ @JsonProperty("indicador")
+ @NotNull
+ public String getIndicador() {
+ if (indicador == null) {
+ return null;
+ }
+ return indicador.value();
+ }
+
+ public void setIndicador(IndicadorEnum indicador) {
+ this.indicador = indicador;
+ }
+
+ public CaracterizacaoImportacaoCover indicador(IndicadorEnum indicador) {
+ this.indicador = indicador;
+ return this;
+ }
+
+ /**
+ * CNPJ do adquirente ou encomendante.<br>Tamanho: 14<br>Formato: 'NNNNNNNNNNNNNN'<br>Observação: Este atributo é informado apenas quando o atributo 'indicador' possui um dos seguintes valores: 'IMPORTACAO_POR_CONTA_E_ORDEM', 'IMPORTACAO_POR_ENCOMENDA'
+ *
+ * @return ni
+ **/
+ @JsonProperty("ni")
+ public String getNi() {
+ return ni;
+ }
+
+ public void setNi(String ni) {
+ this.ni = ni;
+ }
+
+ public CaracterizacaoImportacaoCover ni(String ni) {
+ this.ni = ni;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class CaracterizacaoImportacaoCover {\n" +
+ " indicador: " + toIndentedString(indicador) + "\n" +
+ " ni: " + toIndentedString(ni) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/CargaCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/CargaCover.java
new file mode 100644
index 0000000..a4e6ba0
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/CargaCover.java
@@ -0,0 +1,273 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CargaCover", propOrder =
+ {"tipoIdentificacaoCarga", "identificacao", "unidadeDeclarada", "motivoSituacaoEspecial", "seguro", "frete", "paisProcedencia"
+ })
+
+@XmlRootElement(name = "CargaCover")
+/**
+ * Dados da carga.
+ **/
+@ApiModel(description = "Dados da carga.")
+public class CargaCover {
+
+
+ @XmlType(name = "TipoIdentificacaoCargaEnum")
+ @XmlEnum(String.class)
+ public enum TipoIdentificacaoCargaEnum {
+
+ @XmlEnumValue("CE")
+ @JsonProperty("CE")
+ CE("CE"),
+
+ @XmlEnumValue("RUC")
+ @JsonProperty("RUC")
+ RUC("RUC");
+
+
+ private final String value;
+
+ TipoIdentificacaoCargaEnum(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static TipoIdentificacaoCargaEnum fromValue(String v) {
+ for (TipoIdentificacaoCargaEnum b : TipoIdentificacaoCargaEnum.values()) {
+ if (String.valueOf(b.value).equals(v)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + v + "' to TipoIdentificacaoCargaEnum");
+ }
+ }
+
+ @XmlElement(name = "tipoIdentificacaoCarga")
+ @ApiModelProperty(example = "CE", value = "Descreve se a identificação da carga é do tipo CE ou RUC")
+ /**
+ * Descreve se a identificação da carga é do tipo CE ou RUC
+ **/
+ private TipoIdentificacaoCargaEnum tipoIdentificacaoCarga = null;
+
+ @XmlElement(name = "identificacao")
+ @ApiModelProperty(value = "Número de Identificação da Carga.
Quando tipo de identificação da carga for CE:
- Tamanho: 15
- Formato: NNNNNNNNNNNNNNN
Quando tipo de identificação da carga for RUC:
- Tamanho mínimo: 1
- Tamanho máximo: 32
Origem: Sistema Siscomex Carga - https://www4.receita.fazenda.gov.br/g33159/jsp/logon.jsp?ind=11
Origem: Portal Único Siscomex - Sistema CCT Importação - https://portalunico.siscomex.gov.br/
Para Duimp COM situação especial de despacho (atributo carga.motivoSituacaoEspecial.codigo preenchido), este atributo será retornado nulo")
+ /**
+ * Número de Identificação da Carga.
Quando tipo de identificação da carga for CE:
- Tamanho: 15
- Formato: NNNNNNNNNNNNNNN
Quando tipo de identificação da carga for RUC:
- Tamanho mínimo: 1
- Tamanho máximo: 32
Origem: Sistema Siscomex Carga - https://www4.receita.fazenda.gov.br/g33159/jsp/logon.jsp?ind=11
Origem: Portal Único Siscomex - Sistema CCT Importação - https://portalunico.siscomex.gov.br/
Para Duimp COM situação especial de despacho (atributo carga.motivoSituacaoEspecial.codigo preenchido), este atributo será retornado nulo
+ **/
+ private String identificacao = null;
+
+ @XmlElement(name = "unidadeDeclarada", required = true)
+ @ApiModelProperty(required = true, value = "")
+ @Valid
+ private UnidadeDeclaradaCover unidadeDeclarada = null;
+
+ @XmlElement(name = "motivoSituacaoEspecial")
+ @ApiModelProperty(value = "Código do motivo da situação especial de despacho no sistema.
Tamanho: 5
Formato: 'NNNNN'
Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/")
+ /**
+ * Código do motivo da situação especial de despacho no sistema.
Tamanho: 5
Formato: 'NNNNN'
Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
+ **/
+ private String motivoSituacaoEspecial = null;
+
+ @XmlElement(name = "seguro")
+ @ApiModelProperty(value = "")
+ @Valid
+ private SeguroCover seguro = null;
+
+ @XmlElement(name = "frete")
+ @ApiModelProperty(value = "")
+ @Valid
+ private FreteCover frete = null;
+
+ @XmlElement(name = "paisProcedencia")
+ @ApiModelProperty(value = "")
+ @Valid
+ private CargaDuimpPaisProcedenciaCover paisProcedencia = null;
+
+ /**
+ * Descreve se a identificação da carga é do tipo CE ou RUC
+ *
+ * @return tipoIdentificacaoCarga
+ **/
+ @JsonProperty("tipoIdentificacaoCarga")
+ public String getTipoIdentificacaoCarga() {
+ if (tipoIdentificacaoCarga == null) {
+ return null;
+ }
+ return tipoIdentificacaoCarga.value();
+ }
+
+ public void setTipoIdentificacaoCarga(TipoIdentificacaoCargaEnum tipoIdentificacaoCarga) {
+ this.tipoIdentificacaoCarga = tipoIdentificacaoCarga;
+ }
+
+ public CargaCover tipoIdentificacaoCarga(TipoIdentificacaoCargaEnum tipoIdentificacaoCarga) {
+ this.tipoIdentificacaoCarga = tipoIdentificacaoCarga;
+ return this;
+ }
+
+ /**
+ * Número de Identificação da Carga.<br>Quando tipo de identificação da carga for CE: <br> - Tamanho: 15 <br> - Formato: NNNNNNNNNNNNNNN<br>Quando tipo de identificação da carga for RUC: <br> - Tamanho mínimo: 1<br> - Tamanho máximo: 32<br>Origem: Sistema Siscomex Carga - https://www4.receita.fazenda.gov.br/g33159/jsp/logon.jsp?ind=11<br><br>Origem: Portal Único Siscomex - Sistema CCT Importação - https://portalunico.siscomex.gov.br/<br>Para Duimp COM situação especial de despacho (atributo carga.motivoSituacaoEspecial.codigo preenchido), este atributo será retornado nulo
+ *
+ * @return identificacao
+ **/
+ @JsonProperty("identificacao")
+ public String getIdentificacao() {
+ return identificacao;
+ }
+
+ public void setIdentificacao(String identificacao) {
+ this.identificacao = identificacao;
+ }
+
+ public CargaCover identificacao(String identificacao) {
+ this.identificacao = identificacao;
+ return this;
+ }
+
+ /**
+ * Get unidadeDeclarada
+ *
+ * @return unidadeDeclarada
+ **/
+ @JsonProperty("unidadeDeclarada")
+ @NotNull
+ public UnidadeDeclaradaCover getUnidadeDeclarada() {
+ return unidadeDeclarada;
+ }
+
+ public void setUnidadeDeclarada(UnidadeDeclaradaCover unidadeDeclarada) {
+ this.unidadeDeclarada = unidadeDeclarada;
+ }
+
+ public CargaCover unidadeDeclarada(UnidadeDeclaradaCover unidadeDeclarada) {
+ this.unidadeDeclarada = unidadeDeclarada;
+ return this;
+ }
+
+ /**
+ * Código do motivo da situação especial de despacho no sistema.<br>Tamanho: 5<br>Formato: 'NNNNN'<br>Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
+ *
+ * @return motivoSituacaoEspecial
+ **/
+ @JsonProperty("motivoSituacaoEspecial")
+ public String getMotivoSituacaoEspecial() {
+ return motivoSituacaoEspecial;
+ }
+
+ public void setMotivoSituacaoEspecial(String motivoSituacaoEspecial) {
+ this.motivoSituacaoEspecial = motivoSituacaoEspecial;
+ }
+
+ public CargaCover motivoSituacaoEspecial(String motivoSituacaoEspecial) {
+ this.motivoSituacaoEspecial = motivoSituacaoEspecial;
+ return this;
+ }
+
+ /**
+ * Get seguro
+ *
+ * @return seguro
+ **/
+ @JsonProperty("seguro")
+ public SeguroCover getSeguro() {
+ return seguro;
+ }
+
+ public void setSeguro(SeguroCover seguro) {
+ this.seguro = seguro;
+ }
+
+ public CargaCover seguro(SeguroCover seguro) {
+ this.seguro = seguro;
+ return this;
+ }
+
+ /**
+ * Get frete
+ *
+ * @return frete
+ **/
+ @JsonProperty("frete")
+ public FreteCover getFrete() {
+ return frete;
+ }
+
+ public void setFrete(FreteCover frete) {
+ this.frete = frete;
+ }
+
+ public CargaCover frete(FreteCover frete) {
+ this.frete = frete;
+ return this;
+ }
+
+ /**
+ * Get paisProcedencia
+ *
+ * @return paisProcedencia
+ **/
+ @JsonProperty("paisProcedencia")
+ public CargaDuimpPaisProcedenciaCover getPaisProcedencia() {
+ return paisProcedencia;
+ }
+
+ public void setPaisProcedencia(CargaDuimpPaisProcedenciaCover paisProcedencia) {
+ this.paisProcedencia = paisProcedencia;
+ }
+
+ public CargaCover paisProcedencia(CargaDuimpPaisProcedenciaCover paisProcedencia) {
+ this.paisProcedencia = paisProcedencia;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class CargaCover {\n" +
+ " tipoIdentificacaoCarga: " + toIndentedString(tipoIdentificacaoCarga) + "\n" +
+ " identificacao: " + toIndentedString(identificacao) + "\n" +
+ " unidadeDeclarada: " + toIndentedString(unidadeDeclarada) + "\n" +
+ " motivoSituacaoEspecial: " + toIndentedString(motivoSituacaoEspecial) + "\n" +
+ " seguro: " + toIndentedString(seguro) + "\n" +
+ " frete: " + toIndentedString(frete) + "\n" +
+ " paisProcedencia: " + toIndentedString(paisProcedencia) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/CargaDuimpPaisProcedenciaCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/CargaDuimpPaisProcedenciaCover.java
new file mode 100644
index 0000000..c722ec3
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/CargaDuimpPaisProcedenciaCover.java
@@ -0,0 +1,72 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CargaDuimpPaisProcedenciaCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "CargaDuimpPaisProcedenciaCover")
+/**
+ * País de Procedência.
Para DUIMP com tipo de identificação de carga RUC, o país de procedência é informado pelo Importador
+ **/
+@ApiModel(description = "País de Procedência.
Para DUIMP com tipo de identificação de carga RUC, o país de procedência é informado pelo Importador")
+public class CargaDuimpPaisProcedenciaCover {
+
+ @XmlElement(name = "codigo")
+ @ApiModelProperty(example = "CN", value = "Código do país de procedência no formato ISO (3166-1 alfa-2).
Tamanho: 2
Formato: 'AA'")
+ /**
+ * Código do país de procedência no formato ISO (3166-1 alfa-2).
Tamanho: 2
Formato: 'AA'
+ **/
+ private String codigo = null;
+
+ /**
+ * Código do país de procedência no formato ISO (3166-1 alfa-2).<br>Tamanho: 2<br>Formato: 'AA'
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ public String getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(String codigo) {
+ this.codigo = codigo;
+ }
+
+ public CargaDuimpPaisProcedenciaCover codigo(String codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class CargaDuimpPaisProcedenciaCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/CargaValoresCalculadosDuimpCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/CargaValoresCalculadosDuimpCover.java
new file mode 100644
index 0000000..d6020bc
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/CargaValoresCalculadosDuimpCover.java
@@ -0,0 +1,96 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CargaValoresCalculadosDuimpCover", propOrder =
+ {"frete", "seguro"
+ })
+
+@XmlRootElement(name = "CargaValoresCalculadosDuimpCover")
+/**
+ * Dados da carga.
+ **/
+@ApiModel(description = "Dados da carga.")
+public class CargaValoresCalculadosDuimpCover {
+
+ @XmlElement(name = "frete")
+ @ApiModelProperty(value = "")
+ @Valid
+ private FreteValoresCalculadosDuimpCover frete = null;
+
+ @XmlElement(name = "seguro")
+ @ApiModelProperty(value = "")
+ @Valid
+ private SeguroValoresCalculadosDuimpCover seguro = null;
+
+ /**
+ * Get frete
+ *
+ * @return frete
+ **/
+ @JsonProperty("frete")
+ public FreteValoresCalculadosDuimpCover getFrete() {
+ return frete;
+ }
+
+ public void setFrete(FreteValoresCalculadosDuimpCover frete) {
+ this.frete = frete;
+ }
+
+ public CargaValoresCalculadosDuimpCover frete(FreteValoresCalculadosDuimpCover frete) {
+ this.frete = frete;
+ return this;
+ }
+
+ /**
+ * Get seguro
+ *
+ * @return seguro
+ **/
+ @JsonProperty("seguro")
+ public SeguroValoresCalculadosDuimpCover getSeguro() {
+ return seguro;
+ }
+
+ public void setSeguro(SeguroValoresCalculadosDuimpCover seguro) {
+ this.seguro = seguro;
+ }
+
+ public CargaValoresCalculadosDuimpCover seguro(SeguroValoresCalculadosDuimpCover seguro) {
+ this.seguro = seguro;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class CargaValoresCalculadosDuimpCover {\n" +
+ " frete: " + toIndentedString(frete) + "\n" +
+ " seguro: " + toIndentedString(seguro) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/CertificadoMercosulCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/CertificadoMercosulCover.java
new file mode 100644
index 0000000..1b70acf
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/CertificadoMercosulCover.java
@@ -0,0 +1,170 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CertificadoMercosulCover", propOrder =
+ {"tipo", "numero", "quantidade"
+ })
+
+@XmlRootElement(name = "CertificadoMercosulCover")
+/**
+ * Lista de declarações estrangeiras.
Observação: Este atributo somente deve ser preenchido quando o país de procedência é pertencente ao Mercosul.
Observação: Este grupo será preenchido apenas nos casos de importação de mercadorias que procedam diretamente do exterior cujo país de procedência seja membro do MERCOSUL.
+ **/
+@ApiModel(description = "Lista de declarações estrangeiras.
Observação: Este atributo somente deve ser preenchido quando o país de procedência é pertencente ao Mercosul.
Observação: Este grupo será preenchido apenas nos casos de importação de mercadorias que procedam diretamente do exterior cujo país de procedência seja membro do MERCOSUL.")
+public class CertificadoMercosulCover {
+
+
+ @XmlType(name = "TipoEnum")
+ @XmlEnum(String.class)
+ public enum TipoEnum {
+
+ @XmlEnumValue("CCPTC")
+ @JsonProperty("CCPTC")
+ CCPTC("CCPTC"),
+
+ @XmlEnumValue("CCROM")
+ @JsonProperty("CCROM")
+ CCROM("CCROM");
+
+
+ private final String value;
+
+ TipoEnum(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static TipoEnum fromValue(String v) {
+ for (TipoEnum b : TipoEnum.values()) {
+ if (String.valueOf(b.value).equals(v)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + v + "' to TipoEnum");
+ }
+ }
+
+ @XmlElement(name = "tipo")
+ @ApiModelProperty(example = "CCPTC", value = "Tipo de certificado Mercosul.
Domínio:")
+ /**
+ * Tipo de certificado Mercosul.
Domínio:
+ **/
+ private TipoEnum tipo = null;
+
+ @XmlElement(name = "numero")
+ @ApiModelProperty(example = "PY-06000AA0000A-0001", value = "Número do Certificado Mercosul.
Tamanho mínimo: 1
Tamanho máximo: 20")
+ /**
+ * Número do Certificado Mercosul.
Tamanho mínimo: 1
Tamanho máximo: 20
+ **/
+ private String numero = null;
+
+ @XmlElement(name = "quantidade")
+ @ApiModelProperty(example = "1.12345", value = "Quantidade da mercadoria na unidade estatística.
Tamanho: 11,5
Formato: Decimal, com até 5 casas decimais separadas por ponto.")
+ /**
+ * Quantidade da mercadoria na unidade estatística.
Tamanho: 11,5
Formato: Decimal, com até 5 casas decimais separadas por ponto.
+ **/
+ private String quantidade = null;
+
+ /**
+ * Tipo de certificado Mercosul.<br>Domínio:
+ *
+ * @return tipo
+ **/
+ @JsonProperty("tipo")
+ public String getTipo() {
+ if (tipo == null) {
+ return null;
+ }
+ return tipo.value();
+ }
+
+ public void setTipo(TipoEnum tipo) {
+ this.tipo = tipo;
+ }
+
+ public CertificadoMercosulCover tipo(TipoEnum tipo) {
+ this.tipo = tipo;
+ return this;
+ }
+
+ /**
+ * Número do Certificado Mercosul.<br>Tamanho mínimo: 1<br>Tamanho máximo: 20
+ *
+ * @return numero
+ **/
+ @JsonProperty("numero")
+ public String getNumero() {
+ return numero;
+ }
+
+ public void setNumero(String numero) {
+ this.numero = numero;
+ }
+
+ public CertificadoMercosulCover numero(String numero) {
+ this.numero = numero;
+ return this;
+ }
+
+ /**
+ * Quantidade da mercadoria na unidade estatística.<br>Tamanho: 11,5<br>Formato: Decimal, com até 5 casas decimais separadas por ponto.
+ *
+ * @return quantidade
+ **/
+ @JsonProperty("quantidade")
+ public String getQuantidade() {
+ return quantidade;
+ }
+
+ public void setQuantidade(String quantidade) {
+ this.quantidade = quantidade;
+ }
+
+ public CertificadoMercosulCover quantidade(String quantidade) {
+ this.quantidade = quantidade;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class CertificadoMercosulCover {\n" +
+ " tipo: " + toIndentedString(tipo) + "\n" +
+ " numero: " + toIndentedString(numero) + "\n" +
+ " quantidade: " + toIndentedString(quantidade) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/CoberturaCambialCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/CoberturaCambialCover.java
new file mode 100644
index 0000000..a27a165
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/CoberturaCambialCover.java
@@ -0,0 +1,126 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CoberturaCambialCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "CoberturaCambialCover")
+/**
+ * Cobertura cambial.
+ **/
+@ApiModel(description = "Cobertura cambial.")
+public class CoberturaCambialCover {
+
+
+ @XmlType(name = "CodigoEnum")
+ @XmlEnum(String.class)
+ public enum CodigoEnum {
+
+ @XmlEnumValue("ATE_180_DIAS")
+ @JsonProperty("ATE_180_DIAS")
+ ATE_180_DIAS("ATE_180_DIAS"),
+
+ @XmlEnumValue("DE_180_ATE_360")
+ @JsonProperty("DE_180_ATE_360")
+ DE_180_ATE_360("DE_180_ATE_360"),
+
+ @XmlEnumValue("ACIMA_360")
+ @JsonProperty("ACIMA_360")
+ ACIMA_360("ACIMA_360"),
+
+ @XmlEnumValue("SEM_COBERTURA")
+ @JsonProperty("SEM_COBERTURA")
+ SEM_COBERTURA("SEM_COBERTURA");
+
+
+ private final String value;
+
+ CodigoEnum(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static CodigoEnum fromValue(String v) {
+ for (CodigoEnum b : CodigoEnum.values()) {
+ if (String.valueOf(b.value).equals(v)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + v + "' to CodigoEnum");
+ }
+ }
+
+ @XmlElement(name = "codigo", required = true)
+ @ApiModelProperty(example = "ATE_180_DIAS", required = true, value = "Código da cobertura cambial.
Domínio:")
+ /**
+ * Código da cobertura cambial.
Domínio:
+ **/
+ private CodigoEnum codigo = null;
+
+ /**
+ * Código da cobertura cambial.<br>Domínio:
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ @NotNull
+ public String getCodigo() {
+ if (codigo == null) {
+ return null;
+ }
+ return codigo.value();
+ }
+
+ public void setCodigo(CodigoEnum codigo) {
+ this.codigo = codigo;
+ }
+
+ public CoberturaCambialCover codigo(CodigoEnum codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class CoberturaCambialCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/CondicaoVendaCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/CondicaoVendaCover.java
new file mode 100644
index 0000000..e59ec1c
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/CondicaoVendaCover.java
@@ -0,0 +1,177 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import java.util.List;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CondicaoVendaCover", propOrder =
+ {"metodoValoracao", "incoterm", "frete", "seguro", "acrescimosDeducoes"
+ })
+
+@XmlRootElement(name = "CondicaoVendaCover")
+/**
+ * Condição de venda da mercadoria.
+ **/
+@ApiModel(description = "Condição de venda da mercadoria.")
+public class CondicaoVendaCover {
+
+ @XmlElement(name = "metodoValoracao")
+ @ApiModelProperty(value = "")
+ @Valid
+ private MetodoValoracaoCover metodoValoracao = null;
+
+ @XmlElement(name = "incoterm")
+ @ApiModelProperty(value = "")
+ @Valid
+ private IncotermCover incoterm = null;
+
+ @XmlElement(name = "frete")
+ @ApiModelProperty(value = "")
+ @Valid
+ private ItemFreteCover frete = null;
+
+ @XmlElement(name = "seguro")
+ @ApiModelProperty(value = "")
+ @Valid
+ private ItemSeguroCover seguro = null;
+
+ @XmlElement(name = "acrescimosDeducoes")
+ @ApiModelProperty(value = "")
+ @Valid
+ private List
Tamanho: 13,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ /**
+ * Valor unitário da mercadoria na condição de venda.
Tamanho: 13,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private Double valorBRL = null;
+
+ @XmlElement(name = "frete")
+ @ApiModelProperty(value = "")
+ @Valid
+ private FreteValoresCalculadosItemCover frete = null;
+
+ @XmlElement(name = "seguro")
+ @ApiModelProperty(value = "")
+ @Valid
+ private SeguroValoresCalculadosItemCover seguro = null;
+
+ @XmlElement(name = "acrescimosDeducoes")
+ @ApiModelProperty(value = "")
+ @Valid
+ private List
Observação: Deve ser preenchido quando a cobertura cambial estiver acima de 360 dias ou quando o motivo selecionado no atributo \"motivoSemCobertura\" admitir a utilização do ROF.
Tamanho mínimo: 1
Tamanho máximo: 8")
+ /**
+ * Número do ROF no BACEN.
Observação: Deve ser preenchido quando a cobertura cambial estiver acima de 360 dias ou quando o motivo selecionado no atributo \"motivoSemCobertura\" admitir a utilização do ROF.
Tamanho mínimo: 1
Tamanho máximo: 8
+ **/
+ private String numeroROF = null;
+
+ @XmlElement(name = "instituicaoFinanciadora")
+ @ApiModelProperty(value = "")
+ @Valid
+ private InstituicaoFinanciadoraCover instituicaoFinanciadora = null;
+
+ @XmlElement(name = "valorCoberturaCambial")
+ @ApiModelProperty(example = "100.12", value = "Valor da cobertura cambial.
Tamanho: 13,2
Formato: Decimal, com até 2 casas decimais separadas por ponto.Observação: Deve ser preenchido quando a cobertura cambial estiver acima de 360 dias.")
+ /**
+ * Valor da cobertura cambial.
Tamanho: 13,2
Formato: Decimal, com até 2 casas decimais separadas por ponto.Observação: Deve ser preenchido quando a cobertura cambial estiver acima de 360 dias.
+ **/
+ private String valorCoberturaCambial = null;
+
+ @XmlElement(name = "motivoSemCobertura")
+ @ApiModelProperty(value = "")
+ @Valid
+ private MotivoSemCoberturaCambialCover motivoSemCobertura = null;
+
+ /**
+ * Get coberturaCambial
+ *
+ * @return coberturaCambial
+ **/
+ @JsonProperty("coberturaCambial")
+ @NotNull
+ public CoberturaCambialCover getCoberturaCambial() {
+ return coberturaCambial;
+ }
+
+ public void setCoberturaCambial(CoberturaCambialCover coberturaCambial) {
+ this.coberturaCambial = coberturaCambial;
+ }
+
+ public DadosCambiaisCover coberturaCambial(CoberturaCambialCover coberturaCambial) {
+ this.coberturaCambial = coberturaCambial;
+ return this;
+ }
+
+ /**
+ * Número do ROF no BACEN.<br>Observação: Deve ser preenchido quando a cobertura cambial estiver acima de 360 dias ou quando o motivo selecionado no atributo \"motivoSemCobertura\" admitir a utilização do ROF.<br>Tamanho mínimo: 1<br>Tamanho máximo: 8
+ *
+ * @return numeroROF
+ **/
+ @JsonProperty("numeroROF")
+ public String getNumeroROF() {
+ return numeroROF;
+ }
+
+ public void setNumeroROF(String numeroROF) {
+ this.numeroROF = numeroROF;
+ }
+
+ public DadosCambiaisCover numeroROF(String numeroROF) {
+ this.numeroROF = numeroROF;
+ return this;
+ }
+
+ /**
+ * Get instituicaoFinanciadora
+ *
+ * @return instituicaoFinanciadora
+ **/
+ @JsonProperty("instituicaoFinanciadora")
+ public InstituicaoFinanciadoraCover getInstituicaoFinanciadora() {
+ return instituicaoFinanciadora;
+ }
+
+ public void setInstituicaoFinanciadora(InstituicaoFinanciadoraCover instituicaoFinanciadora) {
+ this.instituicaoFinanciadora = instituicaoFinanciadora;
+ }
+
+ public DadosCambiaisCover instituicaoFinanciadora(InstituicaoFinanciadoraCover instituicaoFinanciadora) {
+ this.instituicaoFinanciadora = instituicaoFinanciadora;
+ return this;
+ }
+
+ /**
+ * Valor da cobertura cambial.<br>Tamanho: 13,2<br>Formato: Decimal, com até 2 casas decimais separadas por ponto.Observação: Deve ser preenchido quando a cobertura cambial estiver acima de 360 dias.
+ *
+ * @return valorCoberturaCambial
+ **/
+ @JsonProperty("valorCoberturaCambial")
+ public String getValorCoberturaCambial() {
+ return valorCoberturaCambial;
+ }
+
+ public void setValorCoberturaCambial(String valorCoberturaCambial) {
+ this.valorCoberturaCambial = valorCoberturaCambial;
+ }
+
+ public DadosCambiaisCover valorCoberturaCambial(String valorCoberturaCambial) {
+ this.valorCoberturaCambial = valorCoberturaCambial;
+ return this;
+ }
+
+ /**
+ * Get motivoSemCobertura
+ *
+ * @return motivoSemCobertura
+ **/
+ @JsonProperty("motivoSemCobertura")
+ public MotivoSemCoberturaCambialCover getMotivoSemCobertura() {
+ return motivoSemCobertura;
+ }
+
+ public void setMotivoSemCobertura(MotivoSemCoberturaCambialCover motivoSemCobertura) {
+ this.motivoSemCobertura = motivoSemCobertura;
+ }
+
+ public DadosCambiaisCover motivoSemCobertura(MotivoSemCoberturaCambialCover motivoSemCobertura) {
+ this.motivoSemCobertura = motivoSemCobertura;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class DadosCambiaisCover {\n" +
+ " coberturaCambial: " + toIndentedString(coberturaCambial) + "\n" +
+ " numeroROF: " + toIndentedString(numeroROF) + "\n" +
+ " instituicaoFinanciadora: " + toIndentedString(instituicaoFinanciadora) + "\n" +
+ " valorCoberturaCambial: " + toIndentedString(valorCoberturaCambial) + "\n" +
+ " motivoSemCobertura: " + toIndentedString(motivoSemCobertura) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/DeclaracaoExportacaoEstrangeiraCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/DeclaracaoExportacaoEstrangeiraCover.java
new file mode 100644
index 0000000..6b342ce
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/DeclaracaoExportacaoEstrangeiraCover.java
@@ -0,0 +1,126 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "DeclaracaoExportacaoEstrangeiraCover", propOrder =
+ {"numero", "faixaInicio", "faixaFim"
+ })
+
+@XmlRootElement(name = "DeclaracaoExportacaoEstrangeiraCover")
+/**
+ * Lista de declarações estrangeiras.
Observação: Os campos deste grupo são informados apenas quando a procedência da carga é de um país do Mercosul.
+ **/
+@ApiModel(description = "Lista de declarações estrangeiras.
Observação: Os campos deste grupo são informados apenas quando a procedência da carga é de um país do Mercosul.")
+public class DeclaracaoExportacaoEstrangeiraCover {
+
+ @XmlElement(name = "numero")
+ @ApiModelProperty(example = "19XY0000001-XYZ", value = "Número da declaração.
Tamanho mínimo: 1
Tamanho máximo: 70")
+ /**
+ * Número da declaração.
Tamanho mínimo: 1
Tamanho máximo: 70
+ **/
+ private String numero = null;
+
+ @XmlElement(name = "faixaInicio")
+ @ApiModelProperty(example = "A-11", value = "Item inicial da faixa de itens.
Tamanho mínimo: 1
Tamanho máximo: 7")
+ /**
+ * Item inicial da faixa de itens.
Tamanho mínimo: 1
Tamanho máximo: 7
+ **/
+ private String faixaInicio = null;
+
+ @XmlElement(name = "faixaFim")
+ @ApiModelProperty(example = "B-20", value = "Item final da faixa de itens.
Tamanho mínimo: 1
Tamanho máximo: 7")
+ /**
+ * Item final da faixa de itens.
Tamanho mínimo: 1
Tamanho máximo: 7
+ **/
+ private String faixaFim = null;
+
+ /**
+ * Número da declaração.<br>Tamanho mínimo: 1<br>Tamanho máximo: 70
+ *
+ * @return numero
+ **/
+ @JsonProperty("numero")
+ public String getNumero() {
+ return numero;
+ }
+
+ public void setNumero(String numero) {
+ this.numero = numero;
+ }
+
+ public DeclaracaoExportacaoEstrangeiraCover numero(String numero) {
+ this.numero = numero;
+ return this;
+ }
+
+ /**
+ * Item inicial da faixa de itens.<br>Tamanho mínimo: 1<br>Tamanho máximo: 7
+ *
+ * @return faixaInicio
+ **/
+ @JsonProperty("faixaInicio")
+ public String getFaixaInicio() {
+ return faixaInicio;
+ }
+
+ public void setFaixaInicio(String faixaInicio) {
+ this.faixaInicio = faixaInicio;
+ }
+
+ public DeclaracaoExportacaoEstrangeiraCover faixaInicio(String faixaInicio) {
+ this.faixaInicio = faixaInicio;
+ return this;
+ }
+
+ /**
+ * Item final da faixa de itens.<br>Tamanho mínimo: 1<br>Tamanho máximo: 7
+ *
+ * @return faixaFim
+ **/
+ @JsonProperty("faixaFim")
+ public String getFaixaFim() {
+ return faixaFim;
+ }
+
+ public void setFaixaFim(String faixaFim) {
+ this.faixaFim = faixaFim;
+ }
+
+ public DeclaracaoExportacaoEstrangeiraCover faixaFim(String faixaFim) {
+ this.faixaFim = faixaFim;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class DeclaracaoExportacaoEstrangeiraCover {\n" +
+ " numero: " + toIndentedString(numero) + "\n" +
+ " faixaInicio: " + toIndentedString(faixaInicio) + "\n" +
+ " faixaFim: " + toIndentedString(faixaFim) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/DeclaracaoVinculadaCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/DeclaracaoVinculadaCover.java
new file mode 100644
index 0000000..38377e0
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/DeclaracaoVinculadaCover.java
@@ -0,0 +1,205 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "DeclaracaoVinculadaCover", propOrder =
+ {"tipo", "numero", "numeroItem", "chaveAcesso"
+ })
+
+@XmlRootElement(name = "DeclaracaoVinculadaCover")
+/**
+ * Lista de declarações aduaneiras vinculadas.
+ **/
+@ApiModel(description = "Lista de declarações aduaneiras vinculadas.")
+public class DeclaracaoVinculadaCover {
+
+
+ @XmlType(name = "TipoEnum")
+ @XmlEnum(String.class)
+ public enum TipoEnum {
+
+ @XmlEnumValue("DUIMP")
+ @JsonProperty("DUIMP")
+ DUIMP("DUIMP"),
+
+ @XmlEnumValue("DUE")
+ @JsonProperty("DUE")
+ DUE("DUE"),
+
+ @XmlEnumValue("DI")
+ @JsonProperty("DI")
+ DI("DI"),
+
+ @XmlEnumValue("DE")
+ @JsonProperty("DE")
+ DE("DE");
+
+
+ private final String value;
+
+ TipoEnum(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static TipoEnum fromValue(String v) {
+ for (TipoEnum b : TipoEnum.values()) {
+ if (String.valueOf(b.value).equals(v)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + v + "' to TipoEnum");
+ }
+ }
+
+ @XmlElement(name = "tipo")
+ @ApiModelProperty(example = "DUIMP", value = "Tipo de declaração vinculada.
Domínio:")
+ /**
+ * Tipo de declaração vinculada.
Domínio:
+ **/
+ private TipoEnum tipo = null;
+
+ @XmlElement(name = "numero")
+ @ApiModelProperty(example = "23BR00001010550", value = "Número da Declaração.
Tamanho mínimo: 1
Tamanho máximo: 15")
+ /**
+ * Número da Declaração.
Tamanho mínimo: 1
Tamanho máximo: 15
+ **/
+ private String numero = null;
+
+ @XmlElement(name = "numeroItem")
+ @ApiModelProperty(example = "10001", value = "Número do item/adição da declaração.
Valor mínimo: 1
Valor máximo: 99999")
+ /**
+ * Número do item/adição da declaração.
Valor mínimo: 1
Valor máximo: 99999
+ **/
+ private Integer numeroItem = null;
+
+ @XmlElement(name = "chaveAcesso")
+ @ApiModelProperty(example = "23NcT000115501", value = "Chave de acesso da Duimp vinculada. Atributo previsto no json de saída para auxiliar o usuário na utilização da estrutura do json. No entanto, não é preenchido, por se tratar de um dado restrito.
Tamanho: 14
Formato: 'AALLLSSSSSSSSD'
Lei de formação:
* AA = Corresponde ao ano (2 caracteres).
* LLL = 3 letras aleatórias.
* SSSSSSSS = 8 caracteres númericos. Número sequencial da Duimp dentro do ano.
* D = (1 caracter númerico. DV para os demais caracteres numéricos (Módulo 11)")
+ /**
+ * Chave de acesso da Duimp vinculada. Atributo previsto no json de saída para auxiliar o usuário na utilização da estrutura do json. No entanto, não é preenchido, por se tratar de um dado restrito.
Tamanho: 14
Formato: 'AALLLSSSSSSSSD'
Lei de formação:
* AA = Corresponde ao ano (2 caracteres).
* LLL = 3 letras aleatórias.
* SSSSSSSS = 8 caracteres númericos. Número sequencial da Duimp dentro do ano.
* D = (1 caracter númerico. DV para os demais caracteres numéricos (Módulo 11)
+ **/
+ private String chaveAcesso = null;
+
+ /**
+ * Tipo de declaração vinculada.<br>Domínio:
+ *
+ * @return tipo
+ **/
+ @JsonProperty("tipo")
+ public String getTipo() {
+ if (tipo == null) {
+ return null;
+ }
+ return tipo.value();
+ }
+
+ public void setTipo(TipoEnum tipo) {
+ this.tipo = tipo;
+ }
+
+ public DeclaracaoVinculadaCover tipo(TipoEnum tipo) {
+ this.tipo = tipo;
+ return this;
+ }
+
+ /**
+ * Número da Declaração.<br>Tamanho mínimo: 1<br>Tamanho máximo: 15
+ *
+ * @return numero
+ **/
+ @JsonProperty("numero")
+ public String getNumero() {
+ return numero;
+ }
+
+ public void setNumero(String numero) {
+ this.numero = numero;
+ }
+
+ public DeclaracaoVinculadaCover numero(String numero) {
+ this.numero = numero;
+ return this;
+ }
+
+ /**
+ * Número do item/adição da declaração.<br>Valor mínimo: 1<br>Valor máximo: 99999
+ *
+ * @return numeroItem
+ **/
+ @JsonProperty("numeroItem")
+ public Integer getNumeroItem() {
+ return numeroItem;
+ }
+
+ public void setNumeroItem(Integer numeroItem) {
+ this.numeroItem = numeroItem;
+ }
+
+ public DeclaracaoVinculadaCover numeroItem(Integer numeroItem) {
+ this.numeroItem = numeroItem;
+ return this;
+ }
+
+ /**
+ * Chave de acesso da Duimp vinculada. Atributo previsto no json de saída para auxiliar o usuário na utilização da estrutura do json. No entanto, não é preenchido, por se tratar de um dado restrito.<br>Tamanho: 14<br>Formato: 'AALLLSSSSSSSSD'<br>Lei de formação: <br>* AA = Corresponde ao ano (2 caracteres).<br>* LLL = 3 letras aleatórias.<br>* SSSSSSSS = 8 caracteres númericos. Número sequencial da Duimp dentro do ano.<br>* D = (1 caracter númerico. DV para os demais caracteres numéricos (Módulo 11)
+ *
+ * @return chaveAcesso
+ **/
+ @JsonProperty("chaveAcesso")
+ public String getChaveAcesso() {
+ return chaveAcesso;
+ }
+
+ public void setChaveAcesso(String chaveAcesso) {
+ this.chaveAcesso = chaveAcesso;
+ }
+
+ public DeclaracaoVinculadaCover chaveAcesso(String chaveAcesso) {
+ this.chaveAcesso = chaveAcesso;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class DeclaracaoVinculadaCover {\n" +
+ " tipo: " + toIndentedString(tipo) + "\n" +
+ " numero: " + toIndentedString(numero) + "\n" +
+ " numeroItem: " + toIndentedString(numeroItem) + "\n" +
+ " chaveAcesso: " + toIndentedString(chaveAcesso) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/DenominacaoAcrescimoDeducaoCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/DenominacaoAcrescimoDeducaoCover.java
new file mode 100644
index 0000000..798a401
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/DenominacaoAcrescimoDeducaoCover.java
@@ -0,0 +1,72 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "DenominacaoAcrescimoDeducaoCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "DenominacaoAcrescimoDeducaoCover")
+/**
+ * Denominação do acréscimo ou da dedução escolhida.
+ **/
+@ApiModel(description = "Denominação do acréscimo ou da dedução escolhida.")
+public class DenominacaoAcrescimoDeducaoCover {
+
+ @XmlElement(name = "codigo")
+ @ApiModelProperty(example = "1", value = "Código do acréscimo ou da dedução escolhida.
Domínio: Tabela de Acréscimos/Deduções do Siscomex
Valor mínimo: 1
Valor máximo: 99Origem: Sistema Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/")
+ /**
+ * Código do acréscimo ou da dedução escolhida.
Domínio: Tabela de Acréscimos/Deduções do Siscomex
Valor mínimo: 1
Valor máximo: 99Origem: Sistema Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
+ **/
+ private Integer codigo = null;
+
+ /**
+ * Código do acréscimo ou da dedução escolhida.<br>Domínio: Tabela de Acréscimos/Deduções do Siscomex<br>Valor mínimo: 1<br>Valor máximo: 99Origem: Sistema Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ public Integer getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(Integer codigo) {
+ this.codigo = codigo;
+ }
+
+ public DenominacaoAcrescimoDeducaoCover codigo(Integer codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class DenominacaoAcrescimoDeducaoCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/DocumentoInstrucaoCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/DocumentoInstrucaoCover.java
new file mode 100644
index 0000000..935f59c
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/DocumentoInstrucaoCover.java
@@ -0,0 +1,106 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import java.util.ArrayList;
+import java.util.List;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "DocumentoInstrucaoCover", propOrder =
+ {"tipo", "palavrasChave"
+ })
+
+@XmlRootElement(name = "DocumentoInstrucaoCover")
+/**
+ * Lista de documentos instrutivos para despacho.
Origem: Sistema Anexação Eletrônica - https://api-docs.portalunico.siscomex.gov.br/
+ **/
+@ApiModel(description = "Lista de documentos instrutivos para despacho.
Origem: Sistema Anexação Eletrônica - https://api-docs.portalunico.siscomex.gov.br/")
+public class DocumentoInstrucaoCover {
+
+ @XmlElement(name = "tipo", required = true)
+ @ApiModelProperty(required = true, value = "")
+ @Valid
+ private TipoDocumentoInstrucaoCover tipo = null;
+
+ @XmlElement(name = "palavrasChave", required = true)
+ @ApiModelProperty(required = true, value = "")
+ @Valid
+ private List
Atributo opcional: Só será devolvido caso o erro tenha sido provocado por um atributo inválido")
+ /**
+ * Nome do campo que contém o valor inválido.
Atributo opcional: Só será devolvido caso o erro tenha sido provocado por um atributo inválido
+ **/
+ private String field = null;
+
+ @XmlElement(name = "message")
+ @ApiModelProperty(example = "Mensagem de negócio detalhando o código de erro informado no atributo 'code'.", value = "Mensagem de erro.")
+ /**
+ * Mensagem de erro.
+ **/
+ private String message = null;
+
+ /**
+ * Código interno da mensagem de erro.
+ *
+ * @return code
+ **/
+ @JsonProperty("code")
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public DuimpApiMessageCover code(String code) {
+ this.code = code;
+ return this;
+ }
+
+ /**
+ * Nome do campo que contém o valor inválido. <br> Atributo opcional: Só será devolvido caso o erro tenha sido provocado por um atributo inválido
+ *
+ * @return field
+ **/
+ @JsonProperty("field")
+ public String getField() {
+ return field;
+ }
+
+ public void setField(String field) {
+ this.field = field;
+ }
+
+ public DuimpApiMessageCover field(String field) {
+ this.field = field;
+ return this;
+ }
+
+ /**
+ * Mensagem de erro.
+ *
+ * @return message
+ **/
+ @JsonProperty("message")
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public DuimpApiMessageCover message(String message) {
+ this.message = message;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class DuimpApiMessageCover {\n" +
+ " code: " + toIndentedString(code) + "\n" +
+ " field: " + toIndentedString(field) + "\n" +
+ " message: " + toIndentedString(message) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/DuimpCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/DuimpCover.java
new file mode 100644
index 0000000..34b50bc
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/DuimpCover.java
@@ -0,0 +1,125 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "DuimpCover", propOrder =
+ {"identificacao", "carga", "documentos"
+ })
+
+@XmlRootElement(name = "DuimpCover")
+/**
+ * Dados da capa da Duimp.
+ **/
+@ApiModel(description = "Dados da capa da Duimp.")
+public class DuimpCover {
+
+ @XmlElement(name = "identificacao", required = true)
+ @ApiModelProperty(required = true, value = "")
+ @Valid
+ private IdentificacaoCapaCover identificacao = null;
+
+ @XmlElement(name = "carga", required = true)
+ @ApiModelProperty(required = true, value = "")
+ @Valid
+ private CargaCover carga = null;
+
+ @XmlElement(name = "documentos", required = true)
+ @ApiModelProperty(required = true, value = "")
+ @Valid
+ private DocumentosCover documentos = null;
+
+ /**
+ * Get identificacao
+ *
+ * @return identificacao
+ **/
+ @JsonProperty("identificacao")
+ @NotNull
+ public IdentificacaoCapaCover getIdentificacao() {
+ return identificacao;
+ }
+
+ public void setIdentificacao(IdentificacaoCapaCover identificacao) {
+ this.identificacao = identificacao;
+ }
+
+ public DuimpCover identificacao(IdentificacaoCapaCover identificacao) {
+ this.identificacao = identificacao;
+ return this;
+ }
+
+ /**
+ * Get carga
+ *
+ * @return carga
+ **/
+ @JsonProperty("carga")
+ @NotNull
+ public CargaCover getCarga() {
+ return carga;
+ }
+
+ public void setCarga(CargaCover carga) {
+ this.carga = carga;
+ }
+
+ public DuimpCover carga(CargaCover carga) {
+ this.carga = carga;
+ return this;
+ }
+
+ /**
+ * Get documentos
+ *
+ * @return documentos
+ **/
+ @JsonProperty("documentos")
+ @NotNull
+ public DocumentosCover getDocumentos() {
+ return documentos;
+ }
+
+ public void setDocumentos(DocumentosCover documentos) {
+ this.documentos = documentos;
+ }
+
+ public DuimpCover documentos(DocumentosCover documentos) {
+ this.documentos = documentos;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class DuimpCover {\n" +
+ " identificacao: " + toIndentedString(identificacao) + "\n" +
+ " carga: " + toIndentedString(carga) + "\n" +
+ " documentos: " + toIndentedString(documentos) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/ExportadorCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/ExportadorCover.java
new file mode 100644
index 0000000..3404a64
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/ExportadorCover.java
@@ -0,0 +1,157 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ExportadorCover", propOrder =
+ {"codigo", "versao", "niOperador", "pais"
+ })
+
+@XmlRootElement(name = "ExportadorCover")
+/**
+ * Dados de Operador Estrangeiro.
Origem: Sistema Catálogo de Produtos - https://api-docs.portalunico.siscomex.gov.br/
Observação: Quando o atributo \"exportadorIndicadorFabricante\" for preenchido com o valor \"EXPORTADOR_IGUAL_FABRICANTE\", os valores informados neste grupo devem ser idênticos aos valores informados no grupo \"Fabricante\".
+ **/
+@ApiModel(description = "Dados de Operador Estrangeiro.
Origem: Sistema Catálogo de Produtos - https://api-docs.portalunico.siscomex.gov.br/
Observação: Quando o atributo \"exportadorIndicadorFabricante\" for preenchido com o valor \"EXPORTADOR_IGUAL_FABRICANTE\", os valores informados neste grupo devem ser idênticos aos valores informados no grupo \"Fabricante\".")
+public class ExportadorCover {
+
+ @XmlElement(name = "codigo", required = true)
+ @ApiModelProperty(example = "CN001", required = true, value = "Código do exportador estrangeiro.
Tamanho mínimo: 1
Tamanho máximo: 35")
+ /**
+ * Código do exportador estrangeiro.
Tamanho mínimo: 1
Tamanho máximo: 35
+ **/
+ private String codigo = null;
+
+ @XmlElement(name = "versao", required = true)
+ @ApiModelProperty(example = "1", required = true, value = "Versão do exportador.
Tamanho mínimo: 0
Tamanho máximo: 6")
+ /**
+ * Versão do exportador.
Tamanho mínimo: 0
Tamanho máximo: 6
+ **/
+ private String versao = null;
+
+ @XmlElement(name = "niOperador", required = true)
+ @ApiModelProperty(example = "00000000", required = true, value = "
Número de Identificação:
Caso seja CNPJ (Raiz):
Tamanho: 8
Formato: 'NNNNNNNN'
Caso seja CPF:
Tamanho: 11
Formato: 'NNNNNNNNNNN'")
+ /**
+ *
Número de Identificação:
Caso seja CNPJ (Raiz):
Tamanho: 8
Formato: 'NNNNNNNN'
Caso seja CPF:
Tamanho: 11
Formato: 'NNNNNNNNNNN'
+ **/
+ private String niOperador = null;
+
+ @XmlElement(name = "pais", required = true)
+ @ApiModelProperty(required = true, value = "")
+ @Valid
+ private PaisExportadorCover pais = null;
+
+ /**
+ * Código do exportador estrangeiro.<br>Tamanho mínimo: 1<br>Tamanho máximo: 35
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ @NotNull
+ public String getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(String codigo) {
+ this.codigo = codigo;
+ }
+
+ public ExportadorCover codigo(String codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+ /**
+ * Versão do exportador.<br>Tamanho mínimo: 0<br>Tamanho máximo: 6
+ *
+ * @return versao
+ **/
+ @JsonProperty("versao")
+ @NotNull
+ public String getVersao() {
+ return versao;
+ }
+
+ public void setVersao(String versao) {
+ this.versao = versao;
+ }
+
+ public ExportadorCover versao(String versao) {
+ this.versao = versao;
+ return this;
+ }
+
+ /**
+ * <br>Número de Identificação: <br>Caso seja CNPJ (Raiz): <br>Tamanho: 8<br>Formato: 'NNNNNNNN'<br>Caso seja CPF: <br>Tamanho: 11<br>Formato: 'NNNNNNNNNNN'
+ *
+ * @return niOperador
+ **/
+ @JsonProperty("niOperador")
+ @NotNull
+ public String getNiOperador() {
+ return niOperador;
+ }
+
+ public void setNiOperador(String niOperador) {
+ this.niOperador = niOperador;
+ }
+
+ public ExportadorCover niOperador(String niOperador) {
+ this.niOperador = niOperador;
+ return this;
+ }
+
+ /**
+ * Get pais
+ *
+ * @return pais
+ **/
+ @JsonProperty("pais")
+ @NotNull
+ public PaisExportadorCover getPais() {
+ return pais;
+ }
+
+ public void setPais(PaisExportadorCover pais) {
+ this.pais = pais;
+ }
+
+ public ExportadorCover pais(PaisExportadorCover pais) {
+ this.pais = pais;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class ExportadorCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ " versao: " + toIndentedString(versao) + "\n" +
+ " niOperador: " + toIndentedString(niOperador) + "\n" +
+ " pais: " + toIndentedString(pais) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/FabricanteCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/FabricanteCover.java
new file mode 100644
index 0000000..5fd2267
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/FabricanteCover.java
@@ -0,0 +1,152 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "FabricanteCover", propOrder =
+ {"codigo", "versao", "niOperador", "pais"
+ })
+
+@XmlRootElement(name = "FabricanteCover")
+/**
+ * Dados do Fabricante/Produtor
Origem: Sistema Catálogo de Produtos - https://api-docs.portalunico.siscomex.gov.br/
+ **/
+@ApiModel(description = "Dados do Fabricante/Produtor
Origem: Sistema Catálogo de Produtos - https://api-docs.portalunico.siscomex.gov.br/")
+public class FabricanteCover {
+
+ @XmlElement(name = "codigo")
+ @ApiModelProperty(example = "2104", value = "Código do Fabricante.
Tamanho mínimo: 1
Tamanho máximo: 35
Observação: Quando o país de origem for \"BR\", este atributo deverá ser preenchido com o CNPJ ou CPF do Fabricante. Quando o país de origem for diferente de \"BR\", deverá ser utilizado o código do exportador estrangeiro.")
+ /**
+ * Código do Fabricante.
Tamanho mínimo: 1
Tamanho máximo: 35
Observação: Quando o país de origem for \"BR\", este atributo deverá ser preenchido com o CNPJ ou CPF do Fabricante. Quando o país de origem for diferente de \"BR\", deverá ser utilizado o código do exportador estrangeiro.
+ **/
+ private String codigo = null;
+
+ @XmlElement(name = "versao")
+ @ApiModelProperty(example = "1", value = "Versão do fabricante.
Tamanho mínimo: 0
Tamanho máximo: 6")
+ /**
+ * Versão do fabricante.
Tamanho mínimo: 0
Tamanho máximo: 6
+ **/
+ private String versao = null;
+
+ @XmlElement(name = "niOperador")
+ @ApiModelProperty(example = "00000000", value = "
Número de Identificação:
Caso seja CNPJ (Raiz):
Tamanho: 8
Formato: 'NNNNNNNN'
Caso seja CPF:
Tamanho: 11
Formato: 'NNNNNNNNNNN'")
+ /**
+ *
Número de Identificação:
Caso seja CNPJ (Raiz):
Tamanho: 8
Formato: 'NNNNNNNN'
Caso seja CPF:
Tamanho: 11
Formato: 'NNNNNNNNNNN'
+ **/
+ private String niOperador = null;
+
+ @XmlElement(name = "pais")
+ @ApiModelProperty(value = "")
+ @Valid
+ private PaisFabricanteCover pais = null;
+
+ /**
+ * Código do Fabricante.<br>Tamanho mínimo: 1<br>Tamanho máximo: 35<br>Observação: Quando o país de origem for \"BR\", este atributo deverá ser preenchido com o CNPJ ou CPF do Fabricante. Quando o país de origem for diferente de \"BR\", deverá ser utilizado o código do exportador estrangeiro.
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ public String getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(String codigo) {
+ this.codigo = codigo;
+ }
+
+ public FabricanteCover codigo(String codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+ /**
+ * Versão do fabricante.<br>Tamanho mínimo: 0<br>Tamanho máximo: 6
+ *
+ * @return versao
+ **/
+ @JsonProperty("versao")
+ public String getVersao() {
+ return versao;
+ }
+
+ public void setVersao(String versao) {
+ this.versao = versao;
+ }
+
+ public FabricanteCover versao(String versao) {
+ this.versao = versao;
+ return this;
+ }
+
+ /**
+ * <br>Número de Identificação: <br>Caso seja CNPJ (Raiz): <br>Tamanho: 8<br>Formato: 'NNNNNNNN'<br>Caso seja CPF: <br>Tamanho: 11<br>Formato: 'NNNNNNNNNNN'
+ *
+ * @return niOperador
+ **/
+ @JsonProperty("niOperador")
+ public String getNiOperador() {
+ return niOperador;
+ }
+
+ public void setNiOperador(String niOperador) {
+ this.niOperador = niOperador;
+ }
+
+ public FabricanteCover niOperador(String niOperador) {
+ this.niOperador = niOperador;
+ return this;
+ }
+
+ /**
+ * Get pais
+ *
+ * @return pais
+ **/
+ @JsonProperty("pais")
+ public PaisFabricanteCover getPais() {
+ return pais;
+ }
+
+ public void setPais(PaisFabricanteCover pais) {
+ this.pais = pais;
+ }
+
+ public FabricanteCover pais(PaisFabricanteCover pais) {
+ this.pais = pais;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class FabricanteCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ " versao: " + toIndentedString(versao) + "\n" +
+ " niOperador: " + toIndentedString(niOperador) + "\n" +
+ " pais: " + toIndentedString(pais) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/FreteCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/FreteCover.java
new file mode 100644
index 0000000..716baf2
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/FreteCover.java
@@ -0,0 +1,99 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "FreteCover", propOrder =
+ {"codigoMoedaNegociada", "valorMoedaNegociada"
+ })
+
+@XmlRootElement(name = "FreteCover")
+/**
+ * Dados do Frete.
Para Duimp com tipo de identificação de carga RUC e tipo de conhecimento DSIC (sem desdobro), o valor de frete pode ser informado pelo importador.
+ **/
+@ApiModel(description = "Dados do Frete.
Para Duimp com tipo de identificação de carga RUC e tipo de conhecimento DSIC (sem desdobro), o valor de frete pode ser informado pelo importador.")
+public class FreteCover {
+
+ @XmlElement(name = "codigoMoedaNegociada")
+ @ApiModelProperty(example = "USD", value = "Código da Moeda utilizada para a negociação da mercadoria e usada na expedição da fatura comercial (ISO-4217).
Tamanho: 3
Formato: 'AAA'
Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/")
+ /**
+ * Código da Moeda utilizada para a negociação da mercadoria e usada na expedição da fatura comercial (ISO-4217).
Tamanho: 3
Formato: 'AAA'
Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
+ **/
+ private String codigoMoedaNegociada = null;
+
+ @XmlElement(name = "valorMoedaNegociada")
+ @ApiModelProperty(example = "30.12", value = "Valor do frete na moeda negociada.
Tamanho: 13,2
Formato: Decimal, com até 2 casas decimais separadas por ponto.")
+ /**
+ * Valor do frete na moeda negociada.
Tamanho: 13,2
Formato: Decimal, com até 2 casas decimais separadas por ponto.
+ **/
+ private Double valorMoedaNegociada = null;
+
+ /**
+ * Código da Moeda utilizada para a negociação da mercadoria e usada na expedição da fatura comercial (ISO-4217).<br>Tamanho: 3<br>Formato: 'AAA'<br>Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
+ *
+ * @return codigoMoedaNegociada
+ **/
+ @JsonProperty("codigoMoedaNegociada")
+ public String getCodigoMoedaNegociada() {
+ return codigoMoedaNegociada;
+ }
+
+ public void setCodigoMoedaNegociada(String codigoMoedaNegociada) {
+ this.codigoMoedaNegociada = codigoMoedaNegociada;
+ }
+
+ public FreteCover codigoMoedaNegociada(String codigoMoedaNegociada) {
+ this.codigoMoedaNegociada = codigoMoedaNegociada;
+ return this;
+ }
+
+ /**
+ * Valor do frete na moeda negociada.<br>Tamanho: 13,2<br>Formato: Decimal, com até 2 casas decimais separadas por ponto.
+ *
+ * @return valorMoedaNegociada
+ **/
+ @JsonProperty("valorMoedaNegociada")
+ public Double getValorMoedaNegociada() {
+ return valorMoedaNegociada;
+ }
+
+ public void setValorMoedaNegociada(Double valorMoedaNegociada) {
+ this.valorMoedaNegociada = valorMoedaNegociada;
+ }
+
+ public FreteCover valorMoedaNegociada(Double valorMoedaNegociada) {
+ this.valorMoedaNegociada = valorMoedaNegociada;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class FreteCover {\n" +
+ " codigoMoedaNegociada: " + toIndentedString(codigoMoedaNegociada) + "\n" +
+ " valorMoedaNegociada: " + toIndentedString(valorMoedaNegociada) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/FreteValoresCalculadosDuimpCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/FreteValoresCalculadosDuimpCover.java
new file mode 100644
index 0000000..9b150c5
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/FreteValoresCalculadosDuimpCover.java
@@ -0,0 +1,72 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "FreteValoresCalculadosDuimpCover", propOrder =
+ {"valorTotalBRL"
+ })
+
+@XmlRootElement(name = "FreteValoresCalculadosDuimpCover")
+/**
+ * Dados do frete.
+ **/
+@ApiModel(description = "Dados do frete.")
+public class FreteValoresCalculadosDuimpCover {
+
+ @XmlElement(name = "valorTotalBRL")
+ @ApiModelProperty(example = "40.48", value = "Valor do frete total em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
Observação:
Para as Duimp registradas a partir de 08/06/2022, o valor do frete utilizado no cálculo do valor aduaneiro não inclui os gastos relativos à carga, à descarga e ao manuseio incorridos no território nacional e destacados do custo de transporte")
+ /**
+ * Valor do frete total em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
Observação:
Para as Duimp registradas a partir de 08/06/2022, o valor do frete utilizado no cálculo do valor aduaneiro não inclui os gastos relativos à carga, à descarga e ao manuseio incorridos no território nacional e destacados do custo de transporte
+ **/
+ private Double valorTotalBRL = null;
+
+ /**
+ * Valor do frete total em R$ (Reais).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.<br>Observação:<br>Para as Duimp registradas a partir de 08/06/2022, o valor do frete utilizado no cálculo do valor aduaneiro não inclui os gastos relativos à carga, à descarga e ao manuseio incorridos no território nacional e destacados do custo de transporte
+ *
+ * @return valorTotalBRL
+ **/
+ @JsonProperty("valorTotalBRL")
+ public Double getValorTotalBRL() {
+ return valorTotalBRL;
+ }
+
+ public void setValorTotalBRL(Double valorTotalBRL) {
+ this.valorTotalBRL = valorTotalBRL;
+ }
+
+ public FreteValoresCalculadosDuimpCover valorTotalBRL(Double valorTotalBRL) {
+ this.valorTotalBRL = valorTotalBRL;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class FreteValoresCalculadosDuimpCover {\n" +
+ " valorTotalBRL: " + toIndentedString(valorTotalBRL) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/FreteValoresCalculadosItemCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/FreteValoresCalculadosItemCover.java
new file mode 100644
index 0000000..17bfce3
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/FreteValoresCalculadosItemCover.java
@@ -0,0 +1,72 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "FreteValoresCalculadosItemCover", propOrder =
+ {"valorBRL"
+ })
+
+@XmlRootElement(name = "FreteValoresCalculadosItemCover")
+/**
+ * Valor do Frete.
+ **/
+@ApiModel(description = "Valor do Frete.")
+public class FreteValoresCalculadosItemCover {
+
+ @XmlElement(name = "valorBRL")
+ @ApiModelProperty(example = "12.4", value = "Valor do frete total em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ /**
+ * Valor do frete total em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private Double valorBRL = null;
+
+ /**
+ * Valor do frete total em R$ (Reais).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return valorBRL
+ **/
+ @JsonProperty("valorBRL")
+ public Double getValorBRL() {
+ return valorBRL;
+ }
+
+ public void setValorBRL(Double valorBRL) {
+ this.valorBRL = valorBRL;
+ }
+
+ public FreteValoresCalculadosItemCover valorBRL(Double valorBRL) {
+ this.valorBRL = valorBRL;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class FreteValoresCalculadosItemCover {\n" +
+ " valorBRL: " + toIndentedString(valorBRL) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/FundamentoCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/FundamentoCover.java
new file mode 100644
index 0000000..8ec011d
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/FundamentoCover.java
@@ -0,0 +1,74 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "FundamentoCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "FundamentoCover")
+/**
+ * Fundamento legal do regime tributário de importação.
+ **/
+@ApiModel(description = "Fundamento legal do regime tributário de importação.")
+public class FundamentoCover {
+
+ @XmlElement(name = "codigo", required = true)
+ @ApiModelProperty(example = "1001", required = true, value = "Código do fundamento legal do regime tributário de importação utilizado na declaração.
Dominio: Fundamentos legais existentes no sistema Tratamento Tributário.")
+ /**
+ * Código do fundamento legal do regime tributário de importação utilizado na declaração.
Dominio: Fundamentos legais existentes no sistema Tratamento Tributário.
+ **/
+ private Integer codigo = null;
+
+ /**
+ * Código do fundamento legal do regime tributário de importação utilizado na declaração.<br>Dominio: Fundamentos legais existentes no sistema Tratamento Tributário.
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ @NotNull
+ public Integer getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(Integer codigo) {
+ this.codigo = codigo;
+ }
+
+ public FundamentoCover codigo(Integer codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class FundamentoCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/IdentificacaoCapaCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/IdentificacaoCapaCover.java
new file mode 100644
index 0000000..05e6ea1
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/IdentificacaoCapaCover.java
@@ -0,0 +1,100 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "IdentificacaoCapaCover", propOrder =
+ {"importador", "informacaoComplementar"
+ })
+
+@XmlRootElement(name = "IdentificacaoCapaCover")
+/**
+ * Dados da identificação da declaração única de importação.
+ **/
+@ApiModel(description = "Dados da identificação da declaração única de importação.")
+public class IdentificacaoCapaCover {
+
+ @XmlElement(name = "importador", required = true)
+ @ApiModelProperty(required = true, value = "")
+ @Valid
+ private ImportadorCover importador = null;
+
+ @XmlElement(name = "informacaoComplementar")
+ @ApiModelProperty(example = "Texto complementando informações sobre a Duimp.", value = "Descrição complementar da Duimp.
Tamanho mínimo: 0
Tamanho máximo: 7800")
+ /**
+ * Descrição complementar da Duimp.
Tamanho mínimo: 0
Tamanho máximo: 7800
+ **/
+ private String informacaoComplementar = null;
+
+ /**
+ * Get importador
+ *
+ * @return importador
+ **/
+ @JsonProperty("importador")
+ @NotNull
+ public ImportadorCover getImportador() {
+ return importador;
+ }
+
+ public void setImportador(ImportadorCover importador) {
+ this.importador = importador;
+ }
+
+ public IdentificacaoCapaCover importador(ImportadorCover importador) {
+ this.importador = importador;
+ return this;
+ }
+
+ /**
+ * Descrição complementar da Duimp.<br>Tamanho mínimo: 0<br>Tamanho máximo: 7800
+ *
+ * @return informacaoComplementar
+ **/
+ @JsonProperty("informacaoComplementar")
+ public String getInformacaoComplementar() {
+ return informacaoComplementar;
+ }
+
+ public void setInformacaoComplementar(String informacaoComplementar) {
+ this.informacaoComplementar = informacaoComplementar;
+ }
+
+ public IdentificacaoCapaCover informacaoComplementar(String informacaoComplementar) {
+ this.informacaoComplementar = informacaoComplementar;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class IdentificacaoCapaCover {\n" +
+ " importador: " + toIndentedString(importador) + "\n" +
+ " informacaoComplementar: " + toIndentedString(informacaoComplementar) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/IdentificacaoDuimpRespostaApi.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/IdentificacaoDuimpRespostaApi.java
new file mode 100644
index 0000000..c9f3c71
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/IdentificacaoDuimpRespostaApi.java
@@ -0,0 +1,99 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "IdentificacaoDuimpRespostaApi", propOrder =
+ {"numero", "versao"
+ })
+
+@XmlRootElement(name = "IdentificacaoDuimpRespostaApi")
+/**
+ * Dados da identificação da Duimp criada, retificada ou atualizada.
Atributos devolvidos apenas na resposta aos métodos POST e PUT.
+ **/
+@ApiModel(description = "Dados da identificação da Duimp criada, retificada ou atualizada.
Atributos devolvidos apenas na resposta aos métodos POST e PUT.")
+public class IdentificacaoDuimpRespostaApi {
+
+ @XmlElement(name = "numero")
+ @ApiModelProperty(example = "20BR00000012345", value = "Número da Duimp.
Tamanho: 15
Formato: 'AABRSSSSSSSSSSD'
Lei de formação. O número da Duimp é composto por:
* AA = Corresponde ao ano do registro da Declaração.
* BR = Corresponde à sigla do país de emissão do documento (BR).
* SSSSSSSSSS = 10 caracteres numéricos. Número sequencial da Duimp dentro do ano.
* D = 1 caracter numérico. DV para todos os demais caracteres numéricos (Módulo 11)")
+ /**
+ * Número da Duimp.
Tamanho: 15
Formato: 'AABRSSSSSSSSSSD'
Lei de formação. O número da Duimp é composto por:
* AA = Corresponde ao ano do registro da Declaração.
* BR = Corresponde à sigla do país de emissão do documento (BR).
* SSSSSSSSSS = 10 caracteres numéricos. Número sequencial da Duimp dentro do ano.
* D = 1 caracter numérico. DV para todos os demais caracteres numéricos (Módulo 11)
+ **/
+ private String numero = null;
+
+ @XmlElement(name = "versao")
+ @ApiModelProperty(example = "1", value = "Versão da Duimp.
Valor mínimo: 0
Valor máximo: 9999")
+ /**
+ * Versão da Duimp.
Valor mínimo: 0
Valor máximo: 9999
+ **/
+ private String versao = null;
+
+ /**
+ * Número da Duimp.<br>Tamanho: 15<br>Formato: 'AABRSSSSSSSSSSD'<br>Lei de formação. O número da Duimp é composto por: <br>* AA = Corresponde ao ano do registro da Declaração. <br>* BR = Corresponde à sigla do país de emissão do documento (BR).<br>* SSSSSSSSSS = 10 caracteres numéricos. Número sequencial da Duimp dentro do ano.<br>* D = 1 caracter numérico. DV para todos os demais caracteres numéricos (Módulo 11)
+ *
+ * @return numero
+ **/
+ @JsonProperty("numero")
+ public String getNumero() {
+ return numero;
+ }
+
+ public void setNumero(String numero) {
+ this.numero = numero;
+ }
+
+ public IdentificacaoDuimpRespostaApi numero(String numero) {
+ this.numero = numero;
+ return this;
+ }
+
+ /**
+ * Versão da Duimp.<br>Valor mínimo: 0<br>Valor máximo: 9999
+ *
+ * @return versao
+ **/
+ @JsonProperty("versao")
+ public String getVersao() {
+ return versao;
+ }
+
+ public void setVersao(String versao) {
+ this.versao = versao;
+ }
+
+ public IdentificacaoDuimpRespostaApi versao(String versao) {
+ this.versao = versao;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class IdentificacaoDuimpRespostaApi {\n" +
+ " numero: " + toIndentedString(numero) + "\n" +
+ " versao: " + toIndentedString(versao) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/IdentificacaoItemCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/IdentificacaoItemCover.java
new file mode 100644
index 0000000..db42d64
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/IdentificacaoItemCover.java
@@ -0,0 +1,74 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "IdentificacaoItemCover", propOrder =
+ {"numeroItem"
+ })
+
+@XmlRootElement(name = "IdentificacaoItemCover")
+/**
+ * Dados da identificação da declaração única de importação.
+ **/
+@ApiModel(description = "Dados da identificação da declaração única de importação.")
+public class IdentificacaoItemCover {
+
+ @XmlElement(name = "numeroItem", required = true)
+ @ApiModelProperty(example = "1", required = true, value = "Número do item da Duimp.
Formato: Inteiro, com até 5 dígitos")
+ /**
+ * Número do item da Duimp.
Formato: Inteiro, com até 5 dígitos
+ **/
+ private Integer numeroItem = null;
+
+ /**
+ * Número do item da Duimp.<br>Formato: Inteiro, com até 5 dígitos
+ *
+ * @return numeroItem
+ **/
+ @JsonProperty("numeroItem")
+ @NotNull
+ public Integer getNumeroItem() {
+ return numeroItem;
+ }
+
+ public void setNumeroItem(Integer numeroItem) {
+ this.numeroItem = numeroItem;
+ }
+
+ public IdentificacaoItemCover numeroItem(Integer numeroItem) {
+ this.numeroItem = numeroItem;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class IdentificacaoItemCover {\n" +
+ " numeroItem: " + toIndentedString(numeroItem) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/IdentificadorDuimpCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/IdentificadorDuimpCover.java
new file mode 100644
index 0000000..4ad8b09
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/IdentificadorDuimpCover.java
@@ -0,0 +1,99 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "IdentificadorDuimpCover", propOrder =
+ {"numero", "versao"
+ })
+
+@XmlRootElement(name = "IdentificadorDuimpCover")
+/**
+ * Dados da identificação da declaração única de importação.
+ **/
+@ApiModel(description = "Dados da identificação da declaração única de importação.")
+public class IdentificadorDuimpCover {
+
+ @XmlElement(name = "numero")
+ @ApiModelProperty(example = "19BR00000004677", value = "Número da Duimp.
Tamanho: 15
Formato: 'AABRSSSSSSSSSSD'
Lei de formação. O número da Duimp é composto por:
* AA = Corresponde ao ano do registro da Declaração.
* BR = Corresponde à sigla do país de emissão do documento (BR).
* SSSSSSSSSS = 10 caracteres numéricos. Número sequencial da Duimp dentro do ano.
* D = 1 caracter numérico. DV para todos os demais caracteres numéricos (Módulo 11)")
+ /**
+ * Número da Duimp.
Tamanho: 15
Formato: 'AABRSSSSSSSSSSD'
Lei de formação. O número da Duimp é composto por:
* AA = Corresponde ao ano do registro da Declaração.
* BR = Corresponde à sigla do país de emissão do documento (BR).
* SSSSSSSSSS = 10 caracteres numéricos. Número sequencial da Duimp dentro do ano.
* D = 1 caracter numérico. DV para todos os demais caracteres numéricos (Módulo 11)
+ **/
+ private String numero = null;
+
+ @XmlElement(name = "versao")
+ @ApiModelProperty(example = "1", value = "Versão da Duimp.
Valor mínimo: 0
Valor máximo: 9999")
+ /**
+ * Versão da Duimp.
Valor mínimo: 0
Valor máximo: 9999
+ **/
+ private String versao = null;
+
+ /**
+ * Número da Duimp.<br>Tamanho: 15<br>Formato: 'AABRSSSSSSSSSSD'<br>Lei de formação. O número da Duimp é composto por: <br>* AA = Corresponde ao ano do registro da Declaração. <br>* BR = Corresponde à sigla do país de emissão do documento (BR).<br>* SSSSSSSSSS = 10 caracteres numéricos. Número sequencial da Duimp dentro do ano.<br>* D = 1 caracter numérico. DV para todos os demais caracteres numéricos (Módulo 11)
+ *
+ * @return numero
+ **/
+ @JsonProperty("numero")
+ public String getNumero() {
+ return numero;
+ }
+
+ public void setNumero(String numero) {
+ this.numero = numero;
+ }
+
+ public IdentificadorDuimpCover numero(String numero) {
+ this.numero = numero;
+ return this;
+ }
+
+ /**
+ * Versão da Duimp.<br>Valor mínimo: 0<br>Valor máximo: 9999
+ *
+ * @return versao
+ **/
+ @JsonProperty("versao")
+ public String getVersao() {
+ return versao;
+ }
+
+ public void setVersao(String versao) {
+ this.versao = versao;
+ }
+
+ public IdentificadorDuimpCover versao(String versao) {
+ this.versao = versao;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class IdentificadorDuimpCover {\n" +
+ " numero: " + toIndentedString(numero) + "\n" +
+ " versao: " + toIndentedString(versao) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/IdentificadorItemDuimpCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/IdentificadorItemDuimpCover.java
new file mode 100644
index 0000000..4b78e7b
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/IdentificadorItemDuimpCover.java
@@ -0,0 +1,126 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "IdentificadorItemDuimpCover", propOrder =
+ {"numero", "versao", "numeroItem"
+ })
+
+@XmlRootElement(name = "IdentificadorItemDuimpCover")
+/**
+ * Dados da identificação da declaração única de importação.
+ **/
+@ApiModel(description = "Dados da identificação da declaração única de importação.")
+public class IdentificadorItemDuimpCover {
+
+ @XmlElement(name = "numero")
+ @ApiModelProperty(example = "19BR00000004677", value = "Número da Duimp.
Tamanho: 15
Formato: 'AABRSSSSSSSSSSD'
Lei de formação. O número da Duimp é composto por:
* AA = Corresponde ao ano do registro da Declaração.
* BR = Corresponde à sigla do país de emissão do documento (BR).
* SSSSSSSSSS = 10 caracteres numéricos. Número sequencial da Duimp dentro do ano.
* D = 1 caracter numérico. DV para todos os demais caracteres numéricos (Módulo 11)")
+ /**
+ * Número da Duimp.
Tamanho: 15
Formato: 'AABRSSSSSSSSSSD'
Lei de formação. O número da Duimp é composto por:
* AA = Corresponde ao ano do registro da Declaração.
* BR = Corresponde à sigla do país de emissão do documento (BR).
* SSSSSSSSSS = 10 caracteres numéricos. Número sequencial da Duimp dentro do ano.
* D = 1 caracter numérico. DV para todos os demais caracteres numéricos (Módulo 11)
+ **/
+ private String numero = null;
+
+ @XmlElement(name = "versao")
+ @ApiModelProperty(example = "1", value = "Versão da Duimp.
Valor mínimo: 0
Valor máximo: 9999")
+ /**
+ * Versão da Duimp.
Valor mínimo: 0
Valor máximo: 9999
+ **/
+ private String versao = null;
+
+ @XmlElement(name = "numeroItem")
+ @ApiModelProperty(example = "1", value = "Número do item da Duimp.
Formato: Inteiro, com até 5 dígitos")
+ /**
+ * Número do item da Duimp.
Formato: Inteiro, com até 5 dígitos
+ **/
+ private Integer numeroItem = null;
+
+ /**
+ * Número da Duimp.<br>Tamanho: 15<br>Formato: 'AABRSSSSSSSSSSD'<br>Lei de formação. O número da Duimp é composto por: <br>* AA = Corresponde ao ano do registro da Declaração. <br>* BR = Corresponde à sigla do país de emissão do documento (BR).<br>* SSSSSSSSSS = 10 caracteres numéricos. Número sequencial da Duimp dentro do ano.<br>* D = 1 caracter numérico. DV para todos os demais caracteres numéricos (Módulo 11)
+ *
+ * @return numero
+ **/
+ @JsonProperty("numero")
+ public String getNumero() {
+ return numero;
+ }
+
+ public void setNumero(String numero) {
+ this.numero = numero;
+ }
+
+ public IdentificadorItemDuimpCover numero(String numero) {
+ this.numero = numero;
+ return this;
+ }
+
+ /**
+ * Versão da Duimp.<br>Valor mínimo: 0<br>Valor máximo: 9999
+ *
+ * @return versao
+ **/
+ @JsonProperty("versao")
+ public String getVersao() {
+ return versao;
+ }
+
+ public void setVersao(String versao) {
+ this.versao = versao;
+ }
+
+ public IdentificadorItemDuimpCover versao(String versao) {
+ this.versao = versao;
+ return this;
+ }
+
+ /**
+ * Número do item da Duimp.<br>Formato: Inteiro, com até 5 dígitos
+ *
+ * @return numeroItem
+ **/
+ @JsonProperty("numeroItem")
+ public Integer getNumeroItem() {
+ return numeroItem;
+ }
+
+ public void setNumeroItem(Integer numeroItem) {
+ this.numeroItem = numeroItem;
+ }
+
+ public IdentificadorItemDuimpCover numeroItem(Integer numeroItem) {
+ this.numeroItem = numeroItem;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class IdentificadorItemDuimpCover {\n" +
+ " numero: " + toIndentedString(numero) + "\n" +
+ " versao: " + toIndentedString(versao) + "\n" +
+ " numeroItem: " + toIndentedString(numeroItem) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/ImportadorCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/ImportadorCover.java
new file mode 100644
index 0000000..35b8919
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/ImportadorCover.java
@@ -0,0 +1,145 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ImportadorCover", propOrder =
+ {"tipoImportador", "ni"
+ })
+
+@XmlRootElement(name = "ImportadorCover")
+/**
+ * Identificação do importador da declaração única de importação.
+ **/
+@ApiModel(description = "Identificação do importador da declaração única de importação.")
+public class ImportadorCover {
+
+
+ @XmlType(name = "TipoImportadorEnum")
+ @XmlEnum(String.class)
+ public enum TipoImportadorEnum {
+
+ @XmlEnumValue("CNPJ")
+ @JsonProperty("CNPJ")
+ CNPJ("CNPJ"),
+
+ @XmlEnumValue("CPF")
+ @JsonProperty("CPF")
+ CPF("CPF");
+
+
+ private final String value;
+
+ TipoImportadorEnum(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static TipoImportadorEnum fromValue(String v) {
+ for (TipoImportadorEnum b : TipoImportadorEnum.values()) {
+ if (String.valueOf(b.value).equals(v)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + v + "' to TipoImportadorEnum");
+ }
+ }
+
+ @XmlElement(name = "tipoImportador")
+ @ApiModelProperty(example = "CNPJ", value = "Descreve se o Importador é do tipo CPF ou CNPJ")
+ /**
+ * Descreve se o Importador é do tipo CPF ou CNPJ
+ **/
+ private TipoImportadorEnum tipoImportador = null;
+
+ @XmlElement(name = "ni", required = true)
+ @ApiModelProperty(example = "00055555000130", required = true, value = "
Número do Importador:
Caso seja CNPJ:
Tamanho: 14
Formato: 'NNNNNNNNNNNNNN'
Caso seja CPF:
Tamanho: 11
Formato: 'NNNNNNNNNNN'")
+ /**
+ *
Número do Importador:
Caso seja CNPJ:
Tamanho: 14
Formato: 'NNNNNNNNNNNNNN'
Caso seja CPF:
Tamanho: 11
Formato: 'NNNNNNNNNNN'
+ **/
+ private String ni = null;
+
+ /**
+ * Descreve se o Importador é do tipo CPF ou CNPJ
+ *
+ * @return tipoImportador
+ **/
+ @JsonProperty("tipoImportador")
+ public String getTipoImportador() {
+ if (tipoImportador == null) {
+ return null;
+ }
+ return tipoImportador.value();
+ }
+
+ public void setTipoImportador(TipoImportadorEnum tipoImportador) {
+ this.tipoImportador = tipoImportador;
+ }
+
+ public ImportadorCover tipoImportador(TipoImportadorEnum tipoImportador) {
+ this.tipoImportador = tipoImportador;
+ return this;
+ }
+
+ /**
+ * <br>Número do Importador: <br>Caso seja CNPJ: <br>Tamanho: 14<br>Formato: 'NNNNNNNNNNNNNN'<br>Caso seja CPF: <br>Tamanho: 11<br>Formato: 'NNNNNNNNNNN'
+ *
+ * @return ni
+ **/
+ @JsonProperty("ni")
+ @NotNull
+ public String getNi() {
+ return ni;
+ }
+
+ public void setNi(String ni) {
+ this.ni = ni;
+ }
+
+ public ImportadorCover ni(String ni) {
+ this.ni = ni;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class ImportadorCover {\n" +
+ " tipoImportador: " + toIndentedString(tipoImportador) + "\n" +
+ " ni: " + toIndentedString(ni) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/IncotermCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/IncotermCover.java
new file mode 100644
index 0000000..1243299
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/IncotermCover.java
@@ -0,0 +1,99 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "IncotermCover", propOrder =
+ {"codigo", "complemento"
+ })
+
+@XmlRootElement(name = "IncotermCover")
+/**
+ * Condição de Venda
Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
Observação: Este grupo só deve ser preenchido quando o atributo \"código do método de valoração\" for preenchido com o valor '1'.
+ **/
+@ApiModel(description = "Condição de Venda
Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
Observação: Este grupo só deve ser preenchido quando o atributo \"código do método de valoração\" for preenchido com o valor '1'.")
+public class IncotermCover {
+
+ @XmlElement(name = "codigo")
+ @ApiModelProperty(example = "FOB", value = "Código da Condição de Venda (Código INCOTERM).
Tamanho: 3
Domínio: EXW, FAS, FCA, FOB, OCV, C+F, CFR, CPT, C+I, DAT, CIF, CIP, DAP")
+ /**
+ * Código da Condição de Venda (Código INCOTERM).
Tamanho: 3
Domínio: EXW, FAS, FCA, FOB, OCV, C+F, CFR, CPT, C+I, DAT, CIF, CIP, DAP
+ **/
+ private String codigo = null;
+
+ @XmlElement(name = "complemento")
+ @ApiModelProperty(example = "1", value = "Descrição complementar da condição de venda.
Tamanho mínimo: 0
Tamanho máximo: 250")
+ /**
+ * Descrição complementar da condição de venda.
Tamanho mínimo: 0
Tamanho máximo: 250
+ **/
+ private String complemento = null;
+
+ /**
+ * Código da Condição de Venda (Código INCOTERM).<br>Tamanho: 3<br>Domínio: EXW, FAS, FCA, FOB, OCV, C+F, CFR, CPT, C+I, DAT, CIF, CIP, DAP
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ public String getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(String codigo) {
+ this.codigo = codigo;
+ }
+
+ public IncotermCover codigo(String codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+ /**
+ * Descrição complementar da condição de venda.<br>Tamanho mínimo: 0<br>Tamanho máximo: 250
+ *
+ * @return complemento
+ **/
+ @JsonProperty("complemento")
+ public String getComplemento() {
+ return complemento;
+ }
+
+ public void setComplemento(String complemento) {
+ this.complemento = complemento;
+ }
+
+ public IncotermCover complemento(String complemento) {
+ this.complemento = complemento;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class IncotermCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ " complemento: " + toIndentedString(complemento) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/IndicadorCompradorVendedorCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/IndicadorCompradorVendedorCover.java
new file mode 100644
index 0000000..0012f53
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/IndicadorCompradorVendedorCover.java
@@ -0,0 +1,122 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "IndicadorCompradorVendedorCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "IndicadorCompradorVendedorCover")
+/**
+ * Vinculação comprador x vendedor.
+ **/
+@ApiModel(description = "Vinculação comprador x vendedor.")
+public class IndicadorCompradorVendedorCover {
+
+
+ @XmlType(name = "CodigoEnum")
+ @XmlEnum(String.class)
+ public enum CodigoEnum {
+
+ @XmlEnumValue("NAO_HA_VINCULACAO")
+ @JsonProperty("NAO_HA_VINCULACAO")
+ NAO_HA_VINCULACAO("NAO_HA_VINCULACAO"),
+
+ @XmlEnumValue("VINCULACAO_SEM_INFLUENCIA_PRECO")
+ @JsonProperty("VINCULACAO_SEM_INFLUENCIA_PRECO")
+ VINCULACAO_SEM_INFLUENCIA_PRECO("VINCULACAO_SEM_INFLUENCIA_PRECO"),
+
+ @XmlEnumValue("VINCULACAO_COM_INFLUENCIA_PRECO")
+ @JsonProperty("VINCULACAO_COM_INFLUENCIA_PRECO")
+ VINCULACAO_COM_INFLUENCIA_PRECO("VINCULACAO_COM_INFLUENCIA_PRECO");
+
+
+ private final String value;
+
+ CodigoEnum(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static CodigoEnum fromValue(String v) {
+ for (CodigoEnum b : CodigoEnum.values()) {
+ if (String.valueOf(b.value).equals(v)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + v + "' to CodigoEnum");
+ }
+ }
+
+ @XmlElement(name = "codigo", required = true)
+ @ApiModelProperty(example = "NAO_HA_VINCULACAO", required = true, value = "Tipo de vinculação 'comprador x vendedor' ou 'comprador/encomendante x vendedor'.
Domínio:")
+ /**
+ * Tipo de vinculação 'comprador x vendedor' ou 'comprador/encomendante x vendedor'.
Domínio:
+ **/
+ private CodigoEnum codigo = null;
+
+ /**
+ * Tipo de vinculação 'comprador x vendedor' ou 'comprador/encomendante x vendedor'.<br>Domínio:
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ @NotNull
+ public String getCodigo() {
+ if (codigo == null) {
+ return null;
+ }
+ return codigo.value();
+ }
+
+ public void setCodigo(CodigoEnum codigo) {
+ this.codigo = codigo;
+ }
+
+ public IndicadorCompradorVendedorCover codigo(CodigoEnum codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class IndicadorCompradorVendedorCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/IndicadorExportadorFabricanteCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/IndicadorExportadorFabricanteCover.java
new file mode 100644
index 0000000..af1d0ad
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/IndicadorExportadorFabricanteCover.java
@@ -0,0 +1,118 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "IndicadorExportadorFabricanteCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "IndicadorExportadorFabricanteCover")
+/**
+ * Relação exportador x fabricante.
+ **/
+@ApiModel(description = "Relação exportador x fabricante.")
+public class IndicadorExportadorFabricanteCover {
+
+
+ @XmlType(name = "CodigoEnum")
+ @XmlEnum(String.class)
+ public enum CodigoEnum {
+
+ @XmlEnumValue("EXPORTADOR_DIFERENTE_FABRICANTE")
+ @JsonProperty("EXPORTADOR_DIFERENTE_FABRICANTE")
+ DIFERENTE_FABRICANTE("EXPORTADOR_DIFERENTE_FABRICANTE"),
+
+ @XmlEnumValue("EXPORTADOR_IGUAL_FABRICANTE")
+ @JsonProperty("EXPORTADOR_IGUAL_FABRICANTE")
+ IGUAL_FABRICANTE("EXPORTADOR_IGUAL_FABRICANTE");
+
+
+ private final String value;
+
+ CodigoEnum(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static CodigoEnum fromValue(String v) {
+ for (CodigoEnum b : CodigoEnum.values()) {
+ if (String.valueOf(b.value).equals(v)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + v + "' to CodigoEnum");
+ }
+ }
+
+ @XmlElement(name = "codigo", required = true)
+ @ApiModelProperty(example = "EXPORTADOR_DIFERENTE_FABRICANTE", required = true, value = "Código da relação exportador x fabricante.
Domínio:")
+ /**
+ * Código da relação exportador x fabricante.
Domínio:
+ **/
+ private CodigoEnum codigo = null;
+
+ /**
+ * Código da relação exportador x fabricante.<br>Domínio:
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ @NotNull
+ public String getCodigo() {
+ if (codigo == null) {
+ return null;
+ }
+ return codigo.value();
+ }
+
+ public void setCodigo(CodigoEnum codigo) {
+ this.codigo = codigo;
+ }
+
+ public IndicadorExportadorFabricanteCover codigo(CodigoEnum codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class IndicadorExportadorFabricanteCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/InstituicaoFinanciadoraCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/InstituicaoFinanciadoraCover.java
new file mode 100644
index 0000000..621f356
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/InstituicaoFinanciadoraCover.java
@@ -0,0 +1,72 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "InstituicaoFinanciadoraCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "InstituicaoFinanciadoraCover")
+/**
+ * Instituição financiadora.
Observação: Deve ser preenchido quando a cobertura cambial estiver acima de 360 dias.
+ **/
+@ApiModel(description = "Instituição financiadora.
Observação: Deve ser preenchido quando a cobertura cambial estiver acima de 360 dias.")
+public class InstituicaoFinanciadoraCover {
+
+ @XmlElement(name = "codigo")
+ @ApiModelProperty(example = "99", value = "Código da instituição financiadora.
Origem : Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
Valor mínimo: 1
Valor máximo: 99")
+ /**
+ * Código da instituição financiadora.
Origem : Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
Valor mínimo: 1
Valor máximo: 99
+ **/
+ private Integer codigo = null;
+
+ /**
+ * Código da instituição financiadora.<br>Origem : Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/<br>Valor mínimo: 1<br>Valor máximo: 99
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ public Integer getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(Integer codigo) {
+ this.codigo = codigo;
+ }
+
+ public InstituicaoFinanciadoraCover codigo(Integer codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class InstituicaoFinanciadoraCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/ItemCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/ItemCover.java
new file mode 100644
index 0000000..8316af4
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/ItemCover.java
@@ -0,0 +1,486 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import java.util.List;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ItemCover", propOrder =
+ {"identificacao", "produto", "caracterizacaoImportacao", "indicadorExportadorFabricante", "fabricante", "exportador", "indicadorCompradorVendedor", "mercadoria", "condicaoVenda", "lpcos", "certificadoMercosul", "declaracoesVinculadas", "dadosCambiais", "atributosDuimp", "atributosFundamentoLegalDuimp", "tributos"
+ })
+
+@XmlRootElement(name = "ItemCover")
+/**
+ * Dados do item da Duimp.
+ **/
+@ApiModel(description = "Dados do item da Duimp.")
+public class ItemCover {
+
+ @XmlElement(name = "identificacao", required = true)
+ @ApiModelProperty(required = true, value = "")
+ @Valid
+ private IdentificacaoItemCover identificacao = null;
+
+ @XmlElement(name = "produto", required = true)
+ @ApiModelProperty(required = true, value = "")
+ @Valid
+ private ProdutoCover produto = null;
+
+ @XmlElement(name = "caracterizacaoImportacao", required = true)
+ @ApiModelProperty(required = true, value = "")
+ @Valid
+ private CaracterizacaoImportacaoCover caracterizacaoImportacao = null;
+
+ @XmlElement(name = "indicadorExportadorFabricante", required = true)
+ @ApiModelProperty(required = true, value = "")
+ @Valid
+ private IndicadorExportadorFabricanteCover indicadorExportadorFabricante = null;
+
+ @XmlElement(name = "fabricante", required = true)
+ @ApiModelProperty(required = true, value = "")
+ @Valid
+ private FabricanteCover fabricante = null;
+
+ @XmlElement(name = "exportador", required = true)
+ @ApiModelProperty(required = true, value = "")
+ @Valid
+ private ExportadorCover exportador = null;
+
+ @XmlElement(name = "indicadorCompradorVendedor", required = true)
+ @ApiModelProperty(required = true, value = "")
+ @Valid
+ private IndicadorCompradorVendedorCover indicadorCompradorVendedor = null;
+
+ @XmlElement(name = "mercadoria")
+ @ApiModelProperty(value = "")
+ @Valid
+ private MercadoriaCover mercadoria = null;
+
+ @XmlElement(name = "condicaoVenda")
+ @ApiModelProperty(value = "")
+ @Valid
+ private CondicaoVendaCover condicaoVenda = null;
+
+ @XmlElement(name = "lpcos")
+ @ApiModelProperty(value = "")
+ @Valid
+ private List
Tamanho: 17,2
Formato: Decimal, com até 2 casas decimais separadas por ponto.")
+ /**
+ * Valor do frete em real de Duimp de situação especial de despacho, cujo motivo (da situação especial de despacho) possui o atributo 'Cálculo do frete e seguro' preenchido com o valor '2' (Declarado pelo importador), na tabela 'Tabela Motivo da Situação Especial da Duimp' do sistema TABX.
Tamanho: 17,2
Formato: Decimal, com até 2 casas decimais separadas por ponto.
+ **/
+ private Double valor = null;
+
+ /**
+ * Valor do frete em real de Duimp de situação especial de despacho, cujo motivo (da situação especial de despacho) possui o atributo 'Cálculo do frete e seguro' preenchido com o valor '2' (Declarado pelo importador), na tabela 'Tabela Motivo da Situação Especial da Duimp' do sistema TABX.<br>Tamanho: 17,2<br>Formato: Decimal, com até 2 casas decimais separadas por ponto.
+ *
+ * @return valor
+ **/
+ @JsonProperty("valor")
+ @NotNull
+ public Double getValor() {
+ return valor;
+ }
+
+ public void setValor(Double valor) {
+ this.valor = valor;
+ }
+
+ public ItemFreteCover valor(Double valor) {
+ this.valor = valor;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class ItemFreteCover {\n" +
+ " valor: " + toIndentedString(valor) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/ItemSeguroCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/ItemSeguroCover.java
new file mode 100644
index 0000000..690bffe
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/ItemSeguroCover.java
@@ -0,0 +1,74 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ItemSeguroCover", propOrder =
+ {"valor"
+ })
+
+@XmlRootElement(name = "ItemSeguroCover")
+/**
+ * Dados do seguro declarado.
+ **/
+@ApiModel(description = "Dados do seguro declarado.")
+public class ItemSeguroCover {
+
+ @XmlElement(name = "valor", required = true)
+ @ApiModelProperty(example = "100.02", required = true, value = "Valor do seguro em real de Duimp de situação especial de despacho, cujo motivo (da situação especial de despacho) possui o atributo 'Cálculo do frete e seguro' preenchido com o valor '2' (Declarado pelo importador), na tabela 'Tabela Motivo da Situação Especial da Duimp' do sistema TABX.
Tamanho: 17,2
Formato: Decimal, com até 2 casas decimais separadas por ponto.")
+ /**
+ * Valor do seguro em real de Duimp de situação especial de despacho, cujo motivo (da situação especial de despacho) possui o atributo 'Cálculo do frete e seguro' preenchido com o valor '2' (Declarado pelo importador), na tabela 'Tabela Motivo da Situação Especial da Duimp' do sistema TABX.
Tamanho: 17,2
Formato: Decimal, com até 2 casas decimais separadas por ponto.
+ **/
+ private Double valor = null;
+
+ /**
+ * Valor do seguro em real de Duimp de situação especial de despacho, cujo motivo (da situação especial de despacho) possui o atributo 'Cálculo do frete e seguro' preenchido com o valor '2' (Declarado pelo importador), na tabela 'Tabela Motivo da Situação Especial da Duimp' do sistema TABX.<br>Tamanho: 17,2<br>Formato: Decimal, com até 2 casas decimais separadas por ponto.
+ *
+ * @return valor
+ **/
+ @JsonProperty("valor")
+ @NotNull
+ public Double getValor() {
+ return valor;
+ }
+
+ public void setValor(Double valor) {
+ this.valor = valor;
+ }
+
+ public ItemSeguroCover valor(Double valor) {
+ this.valor = valor;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class ItemSeguroCover {\n" +
+ " valor: " + toIndentedString(valor) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/LpcoCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/LpcoCover.java
new file mode 100644
index 0000000..9799ef3
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/LpcoCover.java
@@ -0,0 +1,72 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "LpcoCover", propOrder =
+ {"numero"
+ })
+
+@XmlRootElement(name = "LpcoCover")
+/**
+ * Lista de documentos LPCO (Licenças, Permissões, Certificados e Outros) necessários para operações de comércio exterior.
Origem: Sistema Tratamento Administrativo e LPCO - https://api-docs.portalunico.siscomex.gov.br/
+ **/
+@ApiModel(description = "Lista de documentos LPCO (Licenças, Permissões, Certificados e Outros) necessários para operações de comércio exterior.
Origem: Sistema Tratamento Administrativo e LPCO - https://api-docs.portalunico.siscomex.gov.br/")
+public class LpcoCover {
+
+ @XmlElement(name = "numero")
+ @ApiModelProperty(example = "I2000000063", value = "Número do um LPCO.
Tamanho: 11
Formato: 'OAANNNNNNNN'
Lei de formação. O número do LPCO é composto por:
* O = Operação (E para exportação, I para importação).
* AA = Ano do registro do LPCO.
* NNNNNNNN = 8 caracteres númericos. Número sequencial do LPCO no ano.")
+ /**
+ * Número do um LPCO.
Tamanho: 11
Formato: 'OAANNNNNNNN'
Lei de formação. O número do LPCO é composto por:
* O = Operação (E para exportação, I para importação).
* AA = Ano do registro do LPCO.
* NNNNNNNN = 8 caracteres númericos. Número sequencial do LPCO no ano.
+ **/
+ private String numero = null;
+
+ /**
+ * Número do um LPCO.<br>Tamanho: 11<br>Formato: 'OAANNNNNNNN'<br>Lei de formação. O número do LPCO é composto por: <br>* O = Operação (E para exportação, I para importação).<br>* AA = Ano do registro do LPCO.<br>* NNNNNNNN = 8 caracteres númericos. Número sequencial do LPCO no ano.
+ *
+ * @return numero
+ **/
+ @JsonProperty("numero")
+ public String getNumero() {
+ return numero;
+ }
+
+ public void setNumero(String numero) {
+ this.numero = numero;
+ }
+
+ public LpcoCover numero(String numero) {
+ this.numero = numero;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class LpcoCover {\n" +
+ " numero: " + toIndentedString(numero) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/MemoriaCalculoItemCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/MemoriaCalculoItemCover.java
new file mode 100644
index 0000000..61d1240
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/MemoriaCalculoItemCover.java
@@ -0,0 +1,440 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "MemoriaCalculoItemCover", propOrder =
+ {"codigoFundamentoLegalNormal", "baseCalculoBRL", "baseCalculoEspecificaBRL", "baseCalculoReduzidaBRL", "percentualReducaoBaseCalculo", "tipoAliquota", "percentualReducaoAliquotaReduzida", "valorAliquota", "valorAliquotaEspecifica", "valorAliquotaReduzida", "normal", "tributado", "percentualPagamento"
+ })
+
+@XmlRootElement(name = "MemoriaCalculoItemCover")
+/**
+ * Memória de cálculo por tipo de imposto.
+ **/
+@ApiModel(description = "Memória de cálculo por tipo de imposto.")
+public class MemoriaCalculoItemCover {
+
+ @XmlElement(name = "codigoFundamentoLegalNormal")
+ @ApiModelProperty(example = "1001", value = "Código do fundamento legal do regime tributário de importação utilizado na declaração.
Domínio: Fundamentos legais existentes no sistema Tratamento Tributário.")
+ /**
+ * Código do fundamento legal do regime tributário de importação utilizado na declaração.
Domínio: Fundamentos legais existentes no sistema Tratamento Tributário.
+ **/
+ private Integer codigoFundamentoLegalNormal = null;
+
+ @XmlElement(name = "baseCalculoBRL")
+ @ApiModelProperty(example = "4567.8", value = "Valor da base de cálculo em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ /**
+ * Valor da base de cálculo em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private Double baseCalculoBRL = null;
+
+ @XmlElement(name = "baseCalculoEspecificaBRL")
+ @ApiModelProperty(example = "4567.8", value = "Valor da base de cálculo específica em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ /**
+ * Valor da base de cálculo específica em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private Double baseCalculoEspecificaBRL = null;
+
+ @XmlElement(name = "baseCalculoReduzidaBRL")
+ @ApiModelProperty(example = "4567.8", value = "Valor da base de cálculo reduzida em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ /**
+ * Valor da base de cálculo reduzida em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private Double baseCalculoReduzidaBRL = null;
+
+ @XmlElement(name = "percentualReducaoBaseCalculo")
+ @ApiModelProperty(example = "4567.8", value = "Percentual de redução da base de cálculo.
Tamanho: 16,5
Formato: Decimal, com até 5 casas decimais separadas por ponto.")
+ /**
+ * Percentual de redução da base de cálculo.
Tamanho: 16,5
Formato: Decimal, com até 5 casas decimais separadas por ponto.
+ **/
+ private Double percentualReducaoBaseCalculo = null;
+
+
+ @XmlType(name = "TipoAliquotaEnum")
+ @XmlEnum(String.class)
+ public enum TipoAliquotaEnum {
+
+ @XmlEnumValue("AD_VALOREM")
+ @JsonProperty("AD_VALOREM")
+ AD_VALOREM("AD_VALOREM"),
+
+ @XmlEnumValue("ESPECIFICA")
+ @JsonProperty("ESPECIFICA")
+ ESPECIFICA("ESPECIFICA");
+
+
+ private final String value;
+
+ TipoAliquotaEnum(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static TipoAliquotaEnum fromValue(String v) {
+ for (TipoAliquotaEnum b : TipoAliquotaEnum.values()) {
+ if (String.valueOf(b.value).equals(v)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + v + "' to TipoAliquotaEnum");
+ }
+ }
+
+ @XmlElement(name = "tipoAliquota")
+ @ApiModelProperty(example = "AD_VALOREM", value = "Tipo de alíquota do tributo.
Domínio:")
+ /**
+ * Tipo de alíquota do tributo.
Domínio:
+ **/
+ private TipoAliquotaEnum tipoAliquota = null;
+
+ @XmlElement(name = "percentualReducaoAliquotaReduzida")
+ @ApiModelProperty(example = "4227.8", value = "Percentual de redução da alíquota reduzida (%).
Tamanho: 16,5
Formato: Decimal, com até 5 casas decimais separadas por ponto.")
+ /**
+ * Percentual de redução da alíquota reduzida (%).
Tamanho: 16,5
Formato: Decimal, com até 5 casas decimais separadas por ponto.
+ **/
+ private Double percentualReducaoAliquotaReduzida = null;
+
+ @XmlElement(name = "valorAliquota")
+ @ApiModelProperty(example = "4227.8", value = "Valor da alíquota (%).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ /**
+ * Valor da alíquota (%).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private Double valorAliquota = null;
+
+ @XmlElement(name = "valorAliquotaEspecifica")
+ @ApiModelProperty(example = "4227.8", value = "Valor da alíquota específica (%).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ /**
+ * Valor da alíquota específica (%).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private Double valorAliquotaEspecifica = null;
+
+ @XmlElement(name = "valorAliquotaReduzida")
+ @ApiModelProperty(example = "4227.8", value = "Valor da alíquota reduzida (%).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ /**
+ * Valor da alíquota reduzida (%).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private Double valorAliquotaReduzida = null;
+
+ @XmlElement(name = "normal")
+ @ApiModelProperty(example = "4227.8", value = "Valor normal em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ /**
+ * Valor normal em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private Double normal = null;
+
+ @XmlElement(name = "tributado")
+ @ApiModelProperty(example = "true", value = "Indicador de tributação.")
+ /**
+ * Indicador de tributação.
+ **/
+ private Boolean tributado = null;
+
+ @XmlElement(name = "percentualPagamento")
+ @ApiModelProperty(example = "4227.8", value = "Percentual de pagamento, preenchido no caso de item com fundamento legal correspondente à admissão temporária com pagamento proporcional (ATUE). Para as demais Duimp será retornado nulo.
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ /**
+ * Percentual de pagamento, preenchido no caso de item com fundamento legal correspondente à admissão temporária com pagamento proporcional (ATUE). Para as demais Duimp será retornado nulo.
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private Double percentualPagamento = null;
+
+ /**
+ * Código do fundamento legal do regime tributário de importação utilizado na declaração.<br>Domínio: Fundamentos legais existentes no sistema Tratamento Tributário.
+ *
+ * @return codigoFundamentoLegalNormal
+ **/
+ @JsonProperty("codigoFundamentoLegalNormal")
+ public Integer getCodigoFundamentoLegalNormal() {
+ return codigoFundamentoLegalNormal;
+ }
+
+ public void setCodigoFundamentoLegalNormal(Integer codigoFundamentoLegalNormal) {
+ this.codigoFundamentoLegalNormal = codigoFundamentoLegalNormal;
+ }
+
+ public MemoriaCalculoItemCover codigoFundamentoLegalNormal(Integer codigoFundamentoLegalNormal) {
+ this.codigoFundamentoLegalNormal = codigoFundamentoLegalNormal;
+ return this;
+ }
+
+ /**
+ * Valor da base de cálculo em R$ (Reais).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return baseCalculoBRL
+ **/
+ @JsonProperty("baseCalculoBRL")
+ public Double getBaseCalculoBRL() {
+ return baseCalculoBRL;
+ }
+
+ public void setBaseCalculoBRL(Double baseCalculoBRL) {
+ this.baseCalculoBRL = baseCalculoBRL;
+ }
+
+ public MemoriaCalculoItemCover baseCalculoBRL(Double baseCalculoBRL) {
+ this.baseCalculoBRL = baseCalculoBRL;
+ return this;
+ }
+
+ /**
+ * Valor da base de cálculo específica em R$ (Reais).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return baseCalculoEspecificaBRL
+ **/
+ @JsonProperty("baseCalculoEspecificaBRL")
+ public Double getBaseCalculoEspecificaBRL() {
+ return baseCalculoEspecificaBRL;
+ }
+
+ public void setBaseCalculoEspecificaBRL(Double baseCalculoEspecificaBRL) {
+ this.baseCalculoEspecificaBRL = baseCalculoEspecificaBRL;
+ }
+
+ public MemoriaCalculoItemCover baseCalculoEspecificaBRL(Double baseCalculoEspecificaBRL) {
+ this.baseCalculoEspecificaBRL = baseCalculoEspecificaBRL;
+ return this;
+ }
+
+ /**
+ * Valor da base de cálculo reduzida em R$ (Reais).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return baseCalculoReduzidaBRL
+ **/
+ @JsonProperty("baseCalculoReduzidaBRL")
+ public Double getBaseCalculoReduzidaBRL() {
+ return baseCalculoReduzidaBRL;
+ }
+
+ public void setBaseCalculoReduzidaBRL(Double baseCalculoReduzidaBRL) {
+ this.baseCalculoReduzidaBRL = baseCalculoReduzidaBRL;
+ }
+
+ public MemoriaCalculoItemCover baseCalculoReduzidaBRL(Double baseCalculoReduzidaBRL) {
+ this.baseCalculoReduzidaBRL = baseCalculoReduzidaBRL;
+ return this;
+ }
+
+ /**
+ * Percentual de redução da base de cálculo.<br>Tamanho: 16,5<br>Formato: Decimal, com até 5 casas decimais separadas por ponto.
+ *
+ * @return percentualReducaoBaseCalculo
+ **/
+ @JsonProperty("percentualReducaoBaseCalculo")
+ public Double getPercentualReducaoBaseCalculo() {
+ return percentualReducaoBaseCalculo;
+ }
+
+ public void setPercentualReducaoBaseCalculo(Double percentualReducaoBaseCalculo) {
+ this.percentualReducaoBaseCalculo = percentualReducaoBaseCalculo;
+ }
+
+ public MemoriaCalculoItemCover percentualReducaoBaseCalculo(Double percentualReducaoBaseCalculo) {
+ this.percentualReducaoBaseCalculo = percentualReducaoBaseCalculo;
+ return this;
+ }
+
+ /**
+ * Tipo de alíquota do tributo.<br>Domínio:
+ *
+ * @return tipoAliquota
+ **/
+ @JsonProperty("tipoAliquota")
+ public String getTipoAliquota() {
+ if (tipoAliquota == null) {
+ return null;
+ }
+ return tipoAliquota.value();
+ }
+
+ public void setTipoAliquota(TipoAliquotaEnum tipoAliquota) {
+ this.tipoAliquota = tipoAliquota;
+ }
+
+ public MemoriaCalculoItemCover tipoAliquota(TipoAliquotaEnum tipoAliquota) {
+ this.tipoAliquota = tipoAliquota;
+ return this;
+ }
+
+ /**
+ * Percentual de redução da alíquota reduzida (%).<br>Tamanho: 16,5<br>Formato: Decimal, com até 5 casas decimais separadas por ponto.
+ *
+ * @return percentualReducaoAliquotaReduzida
+ **/
+ @JsonProperty("percentualReducaoAliquotaReduzida")
+ public Double getPercentualReducaoAliquotaReduzida() {
+ return percentualReducaoAliquotaReduzida;
+ }
+
+ public void setPercentualReducaoAliquotaReduzida(Double percentualReducaoAliquotaReduzida) {
+ this.percentualReducaoAliquotaReduzida = percentualReducaoAliquotaReduzida;
+ }
+
+ public MemoriaCalculoItemCover percentualReducaoAliquotaReduzida(Double percentualReducaoAliquotaReduzida) {
+ this.percentualReducaoAliquotaReduzida = percentualReducaoAliquotaReduzida;
+ return this;
+ }
+
+ /**
+ * Valor da alíquota (%).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return valorAliquota
+ **/
+ @JsonProperty("valorAliquota")
+ public Double getValorAliquota() {
+ return valorAliquota;
+ }
+
+ public void setValorAliquota(Double valorAliquota) {
+ this.valorAliquota = valorAliquota;
+ }
+
+ public MemoriaCalculoItemCover valorAliquota(Double valorAliquota) {
+ this.valorAliquota = valorAliquota;
+ return this;
+ }
+
+ /**
+ * Valor da alíquota específica (%).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return valorAliquotaEspecifica
+ **/
+ @JsonProperty("valorAliquotaEspecifica")
+ public Double getValorAliquotaEspecifica() {
+ return valorAliquotaEspecifica;
+ }
+
+ public void setValorAliquotaEspecifica(Double valorAliquotaEspecifica) {
+ this.valorAliquotaEspecifica = valorAliquotaEspecifica;
+ }
+
+ public MemoriaCalculoItemCover valorAliquotaEspecifica(Double valorAliquotaEspecifica) {
+ this.valorAliquotaEspecifica = valorAliquotaEspecifica;
+ return this;
+ }
+
+ /**
+ * Valor da alíquota reduzida (%).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return valorAliquotaReduzida
+ **/
+ @JsonProperty("valorAliquotaReduzida")
+ public Double getValorAliquotaReduzida() {
+ return valorAliquotaReduzida;
+ }
+
+ public void setValorAliquotaReduzida(Double valorAliquotaReduzida) {
+ this.valorAliquotaReduzida = valorAliquotaReduzida;
+ }
+
+ public MemoriaCalculoItemCover valorAliquotaReduzida(Double valorAliquotaReduzida) {
+ this.valorAliquotaReduzida = valorAliquotaReduzida;
+ return this;
+ }
+
+ /**
+ * Valor normal em R$ (Reais).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return normal
+ **/
+ @JsonProperty("normal")
+ public Double getNormal() {
+ return normal;
+ }
+
+ public void setNormal(Double normal) {
+ this.normal = normal;
+ }
+
+ public MemoriaCalculoItemCover normal(Double normal) {
+ this.normal = normal;
+ return this;
+ }
+
+ /**
+ * Indicador de tributação.
+ *
+ * @return tributado
+ **/
+ @JsonProperty("tributado")
+ public Boolean isTributado() {
+ return tributado;
+ }
+
+ public void setTributado(Boolean tributado) {
+ this.tributado = tributado;
+ }
+
+ public MemoriaCalculoItemCover tributado(Boolean tributado) {
+ this.tributado = tributado;
+ return this;
+ }
+
+ /**
+ * Percentual de pagamento, preenchido no caso de item com fundamento legal correspondente à admissão temporária com pagamento proporcional (ATUE). Para as demais Duimp será retornado nulo.<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return percentualPagamento
+ **/
+ @JsonProperty("percentualPagamento")
+ public Double getPercentualPagamento() {
+ return percentualPagamento;
+ }
+
+ public void setPercentualPagamento(Double percentualPagamento) {
+ this.percentualPagamento = percentualPagamento;
+ }
+
+ public MemoriaCalculoItemCover percentualPagamento(Double percentualPagamento) {
+ this.percentualPagamento = percentualPagamento;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class MemoriaCalculoItemCover {\n" +
+ " codigoFundamentoLegalNormal: " + toIndentedString(codigoFundamentoLegalNormal) + "\n" +
+ " baseCalculoBRL: " + toIndentedString(baseCalculoBRL) + "\n" +
+ " baseCalculoEspecificaBRL: " + toIndentedString(baseCalculoEspecificaBRL) + "\n" +
+ " baseCalculoReduzidaBRL: " + toIndentedString(baseCalculoReduzidaBRL) + "\n" +
+ " percentualReducaoBaseCalculo: " + toIndentedString(percentualReducaoBaseCalculo) + "\n" +
+ " tipoAliquota: " + toIndentedString(tipoAliquota) + "\n" +
+ " percentualReducaoAliquotaReduzida: " + toIndentedString(percentualReducaoAliquotaReduzida) + "\n" +
+ " valorAliquota: " + toIndentedString(valorAliquota) + "\n" +
+ " valorAliquotaEspecifica: " + toIndentedString(valorAliquotaEspecifica) + "\n" +
+ " valorAliquotaReduzida: " + toIndentedString(valorAliquotaReduzida) + "\n" +
+ " normal: " + toIndentedString(normal) + "\n" +
+ " tributado: " + toIndentedString(tributado) + "\n" +
+ " percentualPagamento: " + toIndentedString(percentualPagamento) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/MercadoriaCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/MercadoriaCover.java
new file mode 100644
index 0000000..5d012ba
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/MercadoriaCover.java
@@ -0,0 +1,338 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "MercadoriaCover", propOrder =
+ {"tipoAplicacao", "condicao", "unidadeComercial", "quantidadeComercial", "quantidadeMedidaEstatistica", "pesoLiquido", "moedaNegociada", "valorUnitarioMoedaNegociada", "descricao"
+ })
+
+@XmlRootElement(name = "MercadoriaCover")
+/**
+ * Dados da Mercadoria.
+ **/
+@ApiModel(description = "Dados da Mercadoria.")
+public class MercadoriaCover {
+
+ @XmlElement(name = "tipoAplicacao", required = true)
+ @ApiModelProperty(required = true, value = "")
+ @Valid
+ private TipoAplicacaoCover tipoAplicacao = null;
+
+
+ @XmlType(name = "CondicaoEnum")
+ @XmlEnum(String.class)
+ public enum CondicaoEnum {
+
+ @XmlEnumValue("NOVA")
+ @JsonProperty("NOVA")
+ NOVA("NOVA"),
+
+ @XmlEnumValue("USADA")
+ @JsonProperty("USADA")
+ USADA("USADA");
+
+
+ private final String value;
+
+ CondicaoEnum(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static CondicaoEnum fromValue(String v) {
+ for (CondicaoEnum b : CondicaoEnum.values()) {
+ if (String.valueOf(b.value).equals(v)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + v + "' to CondicaoEnum");
+ }
+ }
+
+ @XmlElement(name = "condicao", required = true)
+ @ApiModelProperty(example = "NOVA", required = true, value = "Indica se a mercadoria é nova ou usada.
Domínio:")
+ /**
+ * Indica se a mercadoria é nova ou usada.
Domínio:
+ **/
+ private CondicaoEnum condicao = null;
+
+ @XmlElement(name = "unidadeComercial", required = true)
+ @ApiModelProperty(example = "SACAS", required = true, value = "Unidade de medida utilizada na comercialização da mercadoria.
Tamanho mínimo: 1
Tamanho máximo: 20")
+ /**
+ * Unidade de medida utilizada na comercialização da mercadoria.
Tamanho mínimo: 1
Tamanho máximo: 20
+ **/
+ private String unidadeComercial = null;
+
+ @XmlElement(name = "quantidadeComercial", required = true)
+ @ApiModelProperty(example = "100.5", required = true, value = "Quantidade da mercadoria na unidade de medida comercial.
Tamanho: 9,5
Formato: Decimal, com até 5 casas decimais separadas por ponto.")
+ /**
+ * Quantidade da mercadoria na unidade de medida comercial.
Tamanho: 9,5
Formato: Decimal, com até 5 casas decimais separadas por ponto.
+ **/
+ private Double quantidadeComercial = null;
+
+ @XmlElement(name = "quantidadeMedidaEstatistica", required = true)
+ @ApiModelProperty(example = "12.12345", required = true, value = "Quantidade na unidade de medida estatística associada à NCM do produto.
Tamanho: 9,5
Formato: Decimal, com até 5 casas decimais separadas por ponto.")
+ /**
+ * Quantidade na unidade de medida estatística associada à NCM do produto.
Tamanho: 9,5
Formato: Decimal, com até 5 casas decimais separadas por ponto.
+ **/
+ private Double quantidadeMedidaEstatistica = null;
+
+ @XmlElement(name = "pesoLiquido", required = true)
+ @ApiModelProperty(example = "100.0", required = true, value = "Peso líquido, em quilogramas, que corresponde ao quantitativo total das mercadorias do item.
Tamanho: 9,5
Formato: Decimal, com até 5 casas decimais separadas por ponto.")
+ /**
+ * Peso líquido, em quilogramas, que corresponde ao quantitativo total das mercadorias do item.
Tamanho: 9,5
Formato: Decimal, com até 5 casas decimais separadas por ponto.
+ **/
+ private Double pesoLiquido = null;
+
+ @XmlElement(name = "moedaNegociada", required = true)
+ @ApiModelProperty(required = true, value = "")
+ @Valid
+ private MoedaNegociadaCover moedaNegociada = null;
+
+ @XmlElement(name = "valorUnitarioMoedaNegociada", required = true)
+ @ApiModelProperty(example = "10.0", required = true, value = "Valor unitário da mercadoria na condição de venda.
Tamanho: 13,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ /**
+ * Valor unitário da mercadoria na condição de venda.
Tamanho: 13,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private Double valorUnitarioMoedaNegociada = null;
+
+ @XmlElement(name = "descricao")
+ @ApiModelProperty(example = "Texto de exemplo.", value = "Descrição complementar da mercadoria.
Tamanho mínimo: 0
Tamanho máximo: 4000")
+ /**
+ * Descrição complementar da mercadoria.
Tamanho mínimo: 0
Tamanho máximo: 4000
+ **/
+ private String descricao = null;
+
+ /**
+ * Get tipoAplicacao
+ *
+ * @return tipoAplicacao
+ **/
+ @JsonProperty("tipoAplicacao")
+ @NotNull
+ public TipoAplicacaoCover getTipoAplicacao() {
+ return tipoAplicacao;
+ }
+
+ public void setTipoAplicacao(TipoAplicacaoCover tipoAplicacao) {
+ this.tipoAplicacao = tipoAplicacao;
+ }
+
+ public MercadoriaCover tipoAplicacao(TipoAplicacaoCover tipoAplicacao) {
+ this.tipoAplicacao = tipoAplicacao;
+ return this;
+ }
+
+ /**
+ * Indica se a mercadoria é nova ou usada.<br>Domínio:
+ *
+ * @return condicao
+ **/
+ @JsonProperty("condicao")
+ @NotNull
+ public String getCondicao() {
+ if (condicao == null) {
+ return null;
+ }
+ return condicao.value();
+ }
+
+ public void setCondicao(CondicaoEnum condicao) {
+ this.condicao = condicao;
+ }
+
+ public MercadoriaCover condicao(CondicaoEnum condicao) {
+ this.condicao = condicao;
+ return this;
+ }
+
+ /**
+ * Unidade de medida utilizada na comercialização da mercadoria.<br>Tamanho mínimo: 1<br>Tamanho máximo: 20
+ *
+ * @return unidadeComercial
+ **/
+ @JsonProperty("unidadeComercial")
+ @NotNull
+ public String getUnidadeComercial() {
+ return unidadeComercial;
+ }
+
+ public void setUnidadeComercial(String unidadeComercial) {
+ this.unidadeComercial = unidadeComercial;
+ }
+
+ public MercadoriaCover unidadeComercial(String unidadeComercial) {
+ this.unidadeComercial = unidadeComercial;
+ return this;
+ }
+
+ /**
+ * Quantidade da mercadoria na unidade de medida comercial.<br>Tamanho: 9,5<br>Formato: Decimal, com até 5 casas decimais separadas por ponto.
+ *
+ * @return quantidadeComercial
+ **/
+ @JsonProperty("quantidadeComercial")
+ @NotNull
+ public Double getQuantidadeComercial() {
+ return quantidadeComercial;
+ }
+
+ public void setQuantidadeComercial(Double quantidadeComercial) {
+ this.quantidadeComercial = quantidadeComercial;
+ }
+
+ public MercadoriaCover quantidadeComercial(Double quantidadeComercial) {
+ this.quantidadeComercial = quantidadeComercial;
+ return this;
+ }
+
+ /**
+ * Quantidade na unidade de medida estatística associada à NCM do produto.<br>Tamanho: 9,5<br>Formato: Decimal, com até 5 casas decimais separadas por ponto.
+ *
+ * @return quantidadeMedidaEstatistica
+ **/
+ @JsonProperty("quantidadeMedidaEstatistica")
+ @NotNull
+ public Double getQuantidadeMedidaEstatistica() {
+ return quantidadeMedidaEstatistica;
+ }
+
+ public void setQuantidadeMedidaEstatistica(Double quantidadeMedidaEstatistica) {
+ this.quantidadeMedidaEstatistica = quantidadeMedidaEstatistica;
+ }
+
+ public MercadoriaCover quantidadeMedidaEstatistica(Double quantidadeMedidaEstatistica) {
+ this.quantidadeMedidaEstatistica = quantidadeMedidaEstatistica;
+ return this;
+ }
+
+ /**
+ * Peso líquido, em quilogramas, que corresponde ao quantitativo total das mercadorias do item.<br>Tamanho: 9,5<br>Formato: Decimal, com até 5 casas decimais separadas por ponto.
+ *
+ * @return pesoLiquido
+ **/
+ @JsonProperty("pesoLiquido")
+ @NotNull
+ public Double getPesoLiquido() {
+ return pesoLiquido;
+ }
+
+ public void setPesoLiquido(Double pesoLiquido) {
+ this.pesoLiquido = pesoLiquido;
+ }
+
+ public MercadoriaCover pesoLiquido(Double pesoLiquido) {
+ this.pesoLiquido = pesoLiquido;
+ return this;
+ }
+
+ /**
+ * Get moedaNegociada
+ *
+ * @return moedaNegociada
+ **/
+ @JsonProperty("moedaNegociada")
+ @NotNull
+ public MoedaNegociadaCover getMoedaNegociada() {
+ return moedaNegociada;
+ }
+
+ public void setMoedaNegociada(MoedaNegociadaCover moedaNegociada) {
+ this.moedaNegociada = moedaNegociada;
+ }
+
+ public MercadoriaCover moedaNegociada(MoedaNegociadaCover moedaNegociada) {
+ this.moedaNegociada = moedaNegociada;
+ return this;
+ }
+
+ /**
+ * Valor unitário da mercadoria na condição de venda.<br>Tamanho: 13,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return valorUnitarioMoedaNegociada
+ **/
+ @JsonProperty("valorUnitarioMoedaNegociada")
+ @NotNull
+ public Double getValorUnitarioMoedaNegociada() {
+ return valorUnitarioMoedaNegociada;
+ }
+
+ public void setValorUnitarioMoedaNegociada(Double valorUnitarioMoedaNegociada) {
+ this.valorUnitarioMoedaNegociada = valorUnitarioMoedaNegociada;
+ }
+
+ public MercadoriaCover valorUnitarioMoedaNegociada(Double valorUnitarioMoedaNegociada) {
+ this.valorUnitarioMoedaNegociada = valorUnitarioMoedaNegociada;
+ return this;
+ }
+
+ /**
+ * Descrição complementar da mercadoria.<br>Tamanho mínimo: 0<br>Tamanho máximo: 4000
+ *
+ * @return descricao
+ **/
+ @JsonProperty("descricao")
+ public String getDescricao() {
+ return descricao;
+ }
+
+ public void setDescricao(String descricao) {
+ this.descricao = descricao;
+ }
+
+ public MercadoriaCover descricao(String descricao) {
+ this.descricao = descricao;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class MercadoriaCover {\n" +
+ " tipoAplicacao: " + toIndentedString(tipoAplicacao) + "\n" +
+ " condicao: " + toIndentedString(condicao) + "\n" +
+ " unidadeComercial: " + toIndentedString(unidadeComercial) + "\n" +
+ " quantidadeComercial: " + toIndentedString(quantidadeComercial) + "\n" +
+ " quantidadeMedidaEstatistica: " + toIndentedString(quantidadeMedidaEstatistica) + "\n" +
+ " pesoLiquido: " + toIndentedString(pesoLiquido) + "\n" +
+ " moedaNegociada: " + toIndentedString(moedaNegociada) + "\n" +
+ " valorUnitarioMoedaNegociada: " + toIndentedString(valorUnitarioMoedaNegociada) + "\n" +
+ " descricao: " + toIndentedString(descricao) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/MercadoriaLocalEmbarqueCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/MercadoriaLocalEmbarqueCover.java
new file mode 100644
index 0000000..7b8db17
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/MercadoriaLocalEmbarqueCover.java
@@ -0,0 +1,72 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "MercadoriaLocalEmbarqueCover", propOrder =
+ {"valorTotalBRL"
+ })
+
+@XmlRootElement(name = "MercadoriaLocalEmbarqueCover")
+/**
+ * Valor da mercadoria no local de embarque.
+ **/
+@ApiModel(description = "Valor da mercadoria no local de embarque.")
+public class MercadoriaLocalEmbarqueCover {
+
+ @XmlElement(name = "valorTotalBRL")
+ @ApiModelProperty(example = "3806.5", value = "Valor total da mercadoria no local de embarque.
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ /**
+ * Valor total da mercadoria no local de embarque.
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private Double valorTotalBRL = null;
+
+ /**
+ * Valor total da mercadoria no local de embarque.<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return valorTotalBRL
+ **/
+ @JsonProperty("valorTotalBRL")
+ public Double getValorTotalBRL() {
+ return valorTotalBRL;
+ }
+
+ public void setValorTotalBRL(Double valorTotalBRL) {
+ this.valorTotalBRL = valorTotalBRL;
+ }
+
+ public MercadoriaLocalEmbarqueCover valorTotalBRL(Double valorTotalBRL) {
+ this.valorTotalBRL = valorTotalBRL;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class MercadoriaLocalEmbarqueCover {\n" +
+ " valorTotalBRL: " + toIndentedString(valorTotalBRL) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/MercadoriaValoresCalculadosItemCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/MercadoriaValoresCalculadosItemCover.java
new file mode 100644
index 0000000..d7e420f
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/MercadoriaValoresCalculadosItemCover.java
@@ -0,0 +1,99 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "MercadoriaValoresCalculadosItemCover", propOrder =
+ {"valorLocalEmbarqueBRL", "valorAduaneiroBRL"
+ })
+
+@XmlRootElement(name = "MercadoriaValoresCalculadosItemCover")
+/**
+ * Valores da Mercadoria.
+ **/
+@ApiModel(description = "Valores da Mercadoria.")
+public class MercadoriaValoresCalculadosItemCover {
+
+ @XmlElement(name = "valorLocalEmbarqueBRL")
+ @ApiModelProperty(example = "20.666", value = "Valor total da mercadoria no local de embarque em R$ (Reais).
Para Duimps com situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso, será retornado o valor nulo (**null**)
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ /**
+ * Valor total da mercadoria no local de embarque em R$ (Reais).
Para Duimps com situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso, será retornado o valor nulo (**null**)
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private Double valorLocalEmbarqueBRL = null;
+
+ @XmlElement(name = "valorAduaneiroBRL")
+ @ApiModelProperty(example = "20.666", value = "Valor total aduaneiro em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ /**
+ * Valor total aduaneiro em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private Double valorAduaneiroBRL = null;
+
+ /**
+ * Valor total da mercadoria no local de embarque em R$ (Reais). <br> Para Duimps com situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso, será retornado o valor nulo (**null**)<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return valorLocalEmbarqueBRL
+ **/
+ @JsonProperty("valorLocalEmbarqueBRL")
+ public Double getValorLocalEmbarqueBRL() {
+ return valorLocalEmbarqueBRL;
+ }
+
+ public void setValorLocalEmbarqueBRL(Double valorLocalEmbarqueBRL) {
+ this.valorLocalEmbarqueBRL = valorLocalEmbarqueBRL;
+ }
+
+ public MercadoriaValoresCalculadosItemCover valorLocalEmbarqueBRL(Double valorLocalEmbarqueBRL) {
+ this.valorLocalEmbarqueBRL = valorLocalEmbarqueBRL;
+ return this;
+ }
+
+ /**
+ * Valor total aduaneiro em R$ (Reais).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return valorAduaneiroBRL
+ **/
+ @JsonProperty("valorAduaneiroBRL")
+ public Double getValorAduaneiroBRL() {
+ return valorAduaneiroBRL;
+ }
+
+ public void setValorAduaneiroBRL(Double valorAduaneiroBRL) {
+ this.valorAduaneiroBRL = valorAduaneiroBRL;
+ }
+
+ public MercadoriaValoresCalculadosItemCover valorAduaneiroBRL(Double valorAduaneiroBRL) {
+ this.valorAduaneiroBRL = valorAduaneiroBRL;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class MercadoriaValoresCalculadosItemCover {\n" +
+ " valorLocalEmbarqueBRL: " + toIndentedString(valorLocalEmbarqueBRL) + "\n" +
+ " valorAduaneiroBRL: " + toIndentedString(valorAduaneiroBRL) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/MetodoValoracaoCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/MetodoValoracaoCover.java
new file mode 100644
index 0000000..9e92770
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/MetodoValoracaoCover.java
@@ -0,0 +1,74 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "MetodoValoracaoCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "MetodoValoracaoCover")
+/**
+ * Método de valoração.
+ **/
+@ApiModel(description = "Método de valoração.")
+public class MetodoValoracaoCover {
+
+ @XmlElement(name = "codigo", required = true)
+ @ApiModelProperty(example = "1", required = true, value = "Código do método de valoração.
Domínio: Tabela de Métodos de Valoração Siscomex
Valor mínimo: 1
Valor máximo: 99999
Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/")
+ /**
+ * Código do método de valoração.
Domínio: Tabela de Métodos de Valoração Siscomex
Valor mínimo: 1
Valor máximo: 99999
Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
+ **/
+ private Integer codigo = null;
+
+ /**
+ * Código do método de valoração.<br>Domínio: Tabela de Métodos de Valoração Siscomex<br>Valor mínimo: 1<br>Valor máximo: 99999<br>Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ @NotNull
+ public Integer getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(Integer codigo) {
+ this.codigo = codigo;
+ }
+
+ public MetodoValoracaoCover codigo(Integer codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class MetodoValoracaoCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/MoedaAcrescimoDeducaoCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/MoedaAcrescimoDeducaoCover.java
new file mode 100644
index 0000000..821e6bb
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/MoedaAcrescimoDeducaoCover.java
@@ -0,0 +1,102 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "MoedaAcrescimoDeducaoCover", propOrder =
+ {"codigo", "valor"
+ })
+
+@XmlRootElement(name = "MoedaAcrescimoDeducaoCover")
+/**
+ * Dados da moeda utilizada no Acréscimo ou Dedução.
+ **/
+@ApiModel(description = "Dados da moeda utilizada no Acréscimo ou Dedução.")
+public class MoedaAcrescimoDeducaoCover {
+
+ @XmlElement(name = "codigo", required = true)
+ @ApiModelProperty(example = "USD", required = true, value = "Código da Moeda negociada (ISO-4217).
Tamanho: 3
Formato: 'AAA'
Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/")
+ /**
+ * Código da Moeda negociada (ISO-4217).
Tamanho: 3
Formato: 'AAA'
Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
+ **/
+ private String codigo = null;
+
+ @XmlElement(name = "valor", required = true)
+ @ApiModelProperty(example = "100.12", required = true, value = "Valor, na moeda negociada, acrescentado no/deduzido do valor da condição de venda.
Tamanho: 13,2
Formato: Decimal, com até 2 casas decimais separadas por ponto.")
+ /**
+ * Valor, na moeda negociada, acrescentado no/deduzido do valor da condição de venda.
Tamanho: 13,2
Formato: Decimal, com até 2 casas decimais separadas por ponto.
+ **/
+ private Double valor = null;
+
+ /**
+ * Código da Moeda negociada (ISO-4217).<br>Tamanho: 3<br>Formato: 'AAA'<br>Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ @NotNull
+ public String getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(String codigo) {
+ this.codigo = codigo;
+ }
+
+ public MoedaAcrescimoDeducaoCover codigo(String codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+ /**
+ * Valor, na moeda negociada, acrescentado no/deduzido do valor da condição de venda.<br>Tamanho: 13,2<br>Formato: Decimal, com até 2 casas decimais separadas por ponto.
+ *
+ * @return valor
+ **/
+ @JsonProperty("valor")
+ @NotNull
+ public Double getValor() {
+ return valor;
+ }
+
+ public void setValor(Double valor) {
+ this.valor = valor;
+ }
+
+ public MoedaAcrescimoDeducaoCover valor(Double valor) {
+ this.valor = valor;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class MoedaAcrescimoDeducaoCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ " valor: " + toIndentedString(valor) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/MoedaNegociadaCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/MoedaNegociadaCover.java
new file mode 100644
index 0000000..2f77151
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/MoedaNegociadaCover.java
@@ -0,0 +1,74 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "MoedaNegociadaCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "MoedaNegociadaCover")
+/**
+ * Moeda utilizada para a negociação da mercadoria e usada na expedição da fatura comercial (ISO-4217).
+ **/
+@ApiModel(description = "Moeda utilizada para a negociação da mercadoria e usada na expedição da fatura comercial (ISO-4217).")
+public class MoedaNegociadaCover {
+
+ @XmlElement(name = "codigo", required = true)
+ @ApiModelProperty(example = "USD", required = true, value = "Código da Moeda utilizada para a negociação da mercadoria e usada na expedição da fatura comercial (ISO-4217).
Tamanho: 3
Formato: 'AAA'
Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/")
+ /**
+ * Código da Moeda utilizada para a negociação da mercadoria e usada na expedição da fatura comercial (ISO-4217).
Tamanho: 3
Formato: 'AAA'
Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
+ **/
+ private String codigo = null;
+
+ /**
+ * Código da Moeda utilizada para a negociação da mercadoria e usada na expedição da fatura comercial (ISO-4217).<br>Tamanho: 3<br>Formato: 'AAA'<br>Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ @NotNull
+ public String getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(String codigo) {
+ this.codigo = codigo;
+ }
+
+ public MoedaNegociadaCover codigo(String codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class MoedaNegociadaCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/MotivoSemCoberturaCambialCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/MotivoSemCoberturaCambialCover.java
new file mode 100644
index 0000000..f0592ee
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/MotivoSemCoberturaCambialCover.java
@@ -0,0 +1,72 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "MotivoSemCoberturaCambialCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "MotivoSemCoberturaCambialCover")
+/**
+ * Motivo para ausência de cobertura cambial.
Observação: Deve ser preenchido quando a cobertura cambial for \"sem cobertura\".
+ **/
+@ApiModel(description = "Motivo para ausência de cobertura cambial.
Observação: Deve ser preenchido quando a cobertura cambial for \"sem cobertura\".")
+public class MotivoSemCoberturaCambialCover {
+
+ @XmlElement(name = "codigo")
+ @ApiModelProperty(example = "52", value = "Código do Motivo para ausência de cobertura cambial.
Domínio: Tabela de Motivos Sem Cobertura do Siscomex. - https://api-docs.portalunico.siscomex.gov.br/
Valor mínimo: 1
Valor máximo: 99999")
+ /**
+ * Código do Motivo para ausência de cobertura cambial.
Domínio: Tabela de Motivos Sem Cobertura do Siscomex. - https://api-docs.portalunico.siscomex.gov.br/
Valor mínimo: 1
Valor máximo: 99999
+ **/
+ private Integer codigo = null;
+
+ /**
+ * Código do Motivo para ausência de cobertura cambial.<br>Domínio: Tabela de Motivos Sem Cobertura do Siscomex. - https://api-docs.portalunico.siscomex.gov.br/<br>Valor mínimo: 1<br>Valor máximo: 99999
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ public Integer getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(Integer codigo) {
+ this.codigo = codigo;
+ }
+
+ public MotivoSemCoberturaCambialCover codigo(Integer codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class MotivoSemCoberturaCambialCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/PagamentoRegistroCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/PagamentoRegistroCover.java
new file mode 100644
index 0000000..5705521
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/PagamentoRegistroCover.java
@@ -0,0 +1,71 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "PagamentoRegistroCover", propOrder =
+ {"principal"
+ })
+
+@XmlRootElement(name = "PagamentoRegistroCover")
+/**
+ * Dados de um pagamento.
+ **/
+@ApiModel(description = "Dados de um pagamento.")
+public class PagamentoRegistroCover {
+
+ @XmlElement(name = "principal")
+ @ApiModelProperty(value = "")
+ @Valid
+ private ValorPagamentoRegistroCover principal = null;
+
+ /**
+ * Get principal
+ *
+ * @return principal
+ **/
+ @JsonProperty("principal")
+ public ValorPagamentoRegistroCover getPrincipal() {
+ return principal;
+ }
+
+ public void setPrincipal(ValorPagamentoRegistroCover principal) {
+ this.principal = principal;
+ }
+
+ public PagamentoRegistroCover principal(ValorPagamentoRegistroCover principal) {
+ this.principal = principal;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class PagamentoRegistroCover {\n" +
+ " principal: " + toIndentedString(principal) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/PaisExportadorCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/PaisExportadorCover.java
new file mode 100644
index 0000000..05ee2bc
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/PaisExportadorCover.java
@@ -0,0 +1,74 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "PaisExportadorCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "PaisExportadorCover")
+/**
+ * País de procedência da mercadoria.
+ **/
+@ApiModel(description = "País de procedência da mercadoria.")
+public class PaisExportadorCover {
+
+ @XmlElement(name = "codigo", required = true)
+ @ApiModelProperty(example = "BR", required = true, value = "Código do país de origem no formato ISO (3166-1 alfa-2).
Tamanho: 2
Formato: 'AA'")
+ /**
+ * Código do país de origem no formato ISO (3166-1 alfa-2).
Tamanho: 2
Formato: 'AA'
+ **/
+ private String codigo = null;
+
+ /**
+ * Código do país de origem no formato ISO (3166-1 alfa-2).<br>Tamanho: 2<br>Formato: 'AA'
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ @NotNull
+ public String getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(String codigo) {
+ this.codigo = codigo;
+ }
+
+ public PaisExportadorCover codigo(String codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class PaisExportadorCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/PaisFabricanteCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/PaisFabricanteCover.java
new file mode 100644
index 0000000..928f584
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/PaisFabricanteCover.java
@@ -0,0 +1,74 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "PaisFabricanteCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "PaisFabricanteCover")
+/**
+ * País de origem do fabricante.
+ **/
+@ApiModel(description = "País de origem do fabricante.")
+public class PaisFabricanteCover {
+
+ @XmlElement(name = "codigo", required = true)
+ @ApiModelProperty(example = "BR", required = true, value = "Código do país de origem no formato ISO (3166-1 alfa-2).
Tamanho: 2
Formato: 'AA'")
+ /**
+ * Código do país de origem no formato ISO (3166-1 alfa-2).
Tamanho: 2
Formato: 'AA'
+ **/
+ private String codigo = null;
+
+ /**
+ * Código do país de origem no formato ISO (3166-1 alfa-2).<br>Tamanho: 2<br>Formato: 'AA'
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ @NotNull
+ public String getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(String codigo) {
+ this.codigo = codigo;
+ }
+
+ public PaisFabricanteCover codigo(String codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class PaisFabricanteCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/PalavraChaveDocumentoInstrucaoCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/PalavraChaveDocumentoInstrucaoCover.java
new file mode 100644
index 0000000..a6e1eb0
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/PalavraChaveDocumentoInstrucaoCover.java
@@ -0,0 +1,99 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "PalavraChaveDocumentoInstrucaoCover", propOrder =
+ {"codigo", "valor"
+ })
+
+@XmlRootElement(name = "PalavraChaveDocumentoInstrucaoCover")
+/**
+ * Lista de palavras-chave associadas ao documento instrutivo.
A palavra-chave obrigatória deve ser o primeiro item da lista.
+ **/
+@ApiModel(description = "Lista de palavras-chave associadas ao documento instrutivo.
A palavra-chave obrigatória deve ser o primeiro item da lista.")
+public class PalavraChaveDocumentoInstrucaoCover {
+
+ @XmlElement(name = "codigo")
+ @ApiModelProperty(example = "33", value = "Código da palavra-chave no sistema Anexação.
Domínio: Palavras-Chave existentes no sistema Anexação (E-Docex).
Valor mínimo: 1
Valor máximo: 999")
+ /**
+ * Código da palavra-chave no sistema Anexação.
Domínio: Palavras-Chave existentes no sistema Anexação (E-Docex).
Valor mínimo: 1
Valor máximo: 999
+ **/
+ private Integer codigo = null;
+
+ @XmlElement(name = "valor")
+ @ApiModelProperty(example = "9999.99.99", value = "Valor informado pelo importador para a palavra-chave.")
+ /**
+ * Valor informado pelo importador para a palavra-chave.
+ **/
+ private String valor = null;
+
+ /**
+ * Código da palavra-chave no sistema Anexação.<br>Domínio: Palavras-Chave existentes no sistema Anexação (E-Docex).<br>Valor mínimo: 1<br>Valor máximo: 999
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ public Integer getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(Integer codigo) {
+ this.codigo = codigo;
+ }
+
+ public PalavraChaveDocumentoInstrucaoCover codigo(Integer codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+ /**
+ * Valor informado pelo importador para a palavra-chave.
+ *
+ * @return valor
+ **/
+ @JsonProperty("valor")
+ public String getValor() {
+ return valor;
+ }
+
+ public void setValor(String valor) {
+ this.valor = valor;
+ }
+
+ public PalavraChaveDocumentoInstrucaoCover valor(String valor) {
+ this.valor = valor;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class PalavraChaveDocumentoInstrucaoCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ " valor: " + toIndentedString(valor) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/ProcessoDocumentoInstrucaoCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/ProcessoDocumentoInstrucaoCover.java
new file mode 100644
index 0000000..a46a427
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/ProcessoDocumentoInstrucaoCover.java
@@ -0,0 +1,139 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ProcessoDocumentoInstrucaoCover", propOrder =
+ {"identificacao", "tipo"
+ })
+
+@XmlRootElement(name = "ProcessoDocumentoInstrucaoCover")
+/**
+ * Lista de processos vinculados.
+ **/
+@ApiModel(description = "Lista de processos vinculados.")
+public class ProcessoDocumentoInstrucaoCover {
+
+ @XmlElement(name = "identificacao")
+ @ApiModelProperty(example = "15595720034201371", value = "Número do Processo vinculado à Duimp.")
+ /**
+ * Número do Processo vinculado à Duimp.
+ **/
+ private String identificacao = null;
+
+
+ @XmlType(name = "TipoEnum")
+ @XmlEnum(String.class)
+ public enum TipoEnum {
+
+ @XmlEnumValue("ADMINISTRATIVO")
+ @JsonProperty("ADMINISTRATIVO")
+ ADMINISTRATIVO("ADMINISTRATIVO");
+
+
+ private final String value;
+
+ TipoEnum(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static TipoEnum fromValue(String v) {
+ for (TipoEnum b : TipoEnum.values()) {
+ if (String.valueOf(b.value).equals(v)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + v + "' to TipoEnum");
+ }
+ }
+
+ @XmlElement(name = "tipo")
+ @ApiModelProperty(example = "ADMINISTRATIVO", value = "Tipo de Processo Administrativo.
Domínio:")
+ /**
+ * Tipo de Processo Administrativo.
Domínio:
+ **/
+ private TipoEnum tipo = null;
+
+ /**
+ * Número do Processo vinculado à Duimp.
+ *
+ * @return identificacao
+ **/
+ @JsonProperty("identificacao")
+ public String getIdentificacao() {
+ return identificacao;
+ }
+
+ public void setIdentificacao(String identificacao) {
+ this.identificacao = identificacao;
+ }
+
+ public ProcessoDocumentoInstrucaoCover identificacao(String identificacao) {
+ this.identificacao = identificacao;
+ return this;
+ }
+
+ /**
+ * Tipo de Processo Administrativo.<br>Domínio:
+ *
+ * @return tipo
+ **/
+ @JsonProperty("tipo")
+ public String getTipo() {
+ if (tipo == null) {
+ return null;
+ }
+ return tipo.value();
+ }
+
+ public void setTipo(TipoEnum tipo) {
+ this.tipo = tipo;
+ }
+
+ public ProcessoDocumentoInstrucaoCover tipo(TipoEnum tipo) {
+ this.tipo = tipo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class ProcessoDocumentoInstrucaoCover {\n" +
+ " identificacao: " + toIndentedString(identificacao) + "\n" +
+ " tipo: " + toIndentedString(tipo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/ProdutoCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/ProdutoCover.java
new file mode 100644
index 0000000..4d827b0
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/ProdutoCover.java
@@ -0,0 +1,126 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ProdutoCover", propOrder =
+ {"codigo", "versao", "niResponsavel"
+ })
+
+@XmlRootElement(name = "ProdutoCover")
+/**
+ * Dados do Produto.
Origem: Sistema Catálogo de Produtos - https://api-docs.portalunico.siscomex.gov.br/
+ **/
+@ApiModel(description = "Dados do Produto.
Origem: Sistema Catálogo de Produtos - https://api-docs.portalunico.siscomex.gov.br/")
+public class ProdutoCover {
+
+ @XmlElement(name = "codigo")
+ @ApiModelProperty(example = "10", value = "Código do produto.
Formato: Inteiro, com até 10 dígitos")
+ /**
+ * Código do produto.
Formato: Inteiro, com até 10 dígitos
+ **/
+ private Integer codigo = null;
+
+ @XmlElement(name = "versao")
+ @ApiModelProperty(example = "1", value = "Versão do produto.
Tamanho mínimo: 1
Tamanho máximo: 7")
+ /**
+ * Versão do produto.
Tamanho mínimo: 1
Tamanho máximo: 7
+ **/
+ private String versao = null;
+
+ @XmlElement(name = "niResponsavel")
+ @ApiModelProperty(example = "00000000", value = "
Número de Identificação:
Caso seja CNPJ (Raiz):
Tamanho: 8
Formato: 'NNNNNNNN'
Caso seja CPF:
Tamanho: 11
Formato: 'NNNNNNNNNNN'")
+ /**
+ *
Número de Identificação:
Caso seja CNPJ (Raiz):
Tamanho: 8
Formato: 'NNNNNNNN'
Caso seja CPF:
Tamanho: 11
Formato: 'NNNNNNNNNNN'
+ **/
+ private String niResponsavel = null;
+
+ /**
+ * Código do produto.<br>Formato: Inteiro, com até 10 dígitos
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ public Integer getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(Integer codigo) {
+ this.codigo = codigo;
+ }
+
+ public ProdutoCover codigo(Integer codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+ /**
+ * Versão do produto.<br>Tamanho mínimo: 1<br>Tamanho máximo: 7
+ *
+ * @return versao
+ **/
+ @JsonProperty("versao")
+ public String getVersao() {
+ return versao;
+ }
+
+ public void setVersao(String versao) {
+ this.versao = versao;
+ }
+
+ public ProdutoCover versao(String versao) {
+ this.versao = versao;
+ return this;
+ }
+
+ /**
+ * <br>Número de Identificação: <br>Caso seja CNPJ (Raiz): <br>Tamanho: 8<br>Formato: 'NNNNNNNN'<br>Caso seja CPF: <br>Tamanho: 11<br>Formato: 'NNNNNNNNNNN'
+ *
+ * @return niResponsavel
+ **/
+ @JsonProperty("niResponsavel")
+ public String getNiResponsavel() {
+ return niResponsavel;
+ }
+
+ public void setNiResponsavel(String niResponsavel) {
+ this.niResponsavel = niResponsavel;
+ }
+
+ public ProdutoCover niResponsavel(String niResponsavel) {
+ this.niResponsavel = niResponsavel;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class ProdutoCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ " versao: " + toIndentedString(versao) + "\n" +
+ " niResponsavel: " + toIndentedString(niResponsavel) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/RegimeCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/RegimeCover.java
new file mode 100644
index 0000000..368c00d
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/RegimeCover.java
@@ -0,0 +1,74 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "RegimeCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "RegimeCover")
+/**
+ * Regime tributário.
+ **/
+@ApiModel(description = "Regime tributário.")
+public class RegimeCover {
+
+ @XmlElement(name = "codigo", required = true)
+ @ApiModelProperty(example = "1", required = true, value = "Código do regime tributário.
Dominio: Regimes tributários existentes no sistema Tratamento Tributário.")
+ /**
+ * Código do regime tributário.
Dominio: Regimes tributários existentes no sistema Tratamento Tributário.
+ **/
+ private Integer codigo = null;
+
+ /**
+ * Código do regime tributário.<br>Dominio: Regimes tributários existentes no sistema Tratamento Tributário.
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ @NotNull
+ public Integer getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(Integer codigo) {
+ this.codigo = codigo;
+ }
+
+ public RegimeCover codigo(Integer codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class RegimeCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/RegistroCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/RegistroCover.java
new file mode 100644
index 0000000..6802a02
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/RegistroCover.java
@@ -0,0 +1,179 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import java.util.ArrayList;
+import java.util.List;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "RegistroCover", propOrder =
+ {"totalItem", "pagamentos", "confirmacaoAlertaErrosNaoImpeditivos"
+ })
+
+@XmlRootElement(name = "RegistroCover")
+public class RegistroCover {
+
+ @XmlElement(name = "totalItem", required = true)
+ @ApiModelProperty(example = "3", required = true, value = "Número total de itens já enviados e salvos.
Formato: Inteiro, com até 5 dígitos
Valor mínimo: 0
Valor máximo: 99999")
+ /**
+ * Número total de itens já enviados e salvos.
Formato: Inteiro, com até 5 dígitos
Valor mínimo: 0
Valor máximo: 99999
+ **/
+ private Integer totalItem = null;
+
+ @XmlElement(name = "pagamentos", required = true)
+ @ApiModelProperty(required = true, value = "")
+ @Valid
+ private List
Domínio:")
+ /**
+ * Indica se a Duimp deve ser registrada mesmo com a existência de erros não impeditivos.
Domínio:
+ **/
+ private ConfirmacaoAlertaErrosNaoImpeditivosEnum confirmacaoAlertaErrosNaoImpeditivos = null;
+
+ /**
+ * Número total de itens já enviados e salvos.<br>Formato: Inteiro, com até 5 dígitos<br>Valor mínimo: 0<br>Valor máximo: 99999
+ *
+ * @return totalItem
+ **/
+ @JsonProperty("totalItem")
+ @NotNull
+ public Integer getTotalItem() {
+ return totalItem;
+ }
+
+ public void setTotalItem(Integer totalItem) {
+ this.totalItem = totalItem;
+ }
+
+ public RegistroCover totalItem(Integer totalItem) {
+ this.totalItem = totalItem;
+ return this;
+ }
+
+ /**
+ * Get pagamentos
+ *
+ * @return pagamentos
+ **/
+ @JsonProperty("pagamentos")
+ @NotNull
+ public List
Esta é uma lista opcional e fornece o detalhamento de todos os erros que deram origem ao erro 422
Quando houver mais de um erro, essa lista será preenchida com cada um dos erros
Exemplo: A lista detalhada dos problemas encontrados em um item, quando for gerado um erro 422 ao validar a inclusão de um item.")
+ @Valid
+ /**
+ * Conjunto de erros de validação dos campos. Devolvido apenas para erros HTTP 422.
Esta é uma lista opcional e fornece o detalhamento de todos os erros que deram origem ao erro 422
Quando houver mais de um erro, essa lista será preenchida com cada um dos erros
Exemplo: A lista detalhada dos problemas encontrados em um item, quando for gerado um erro 422 ao validar a inclusão de um item.
+ **/
+ private List
Tamanho: 3
Formato: 'AAA'
Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/")
+ /**
+ * Código da Moeda utilizada para a negociação da mercadoria e usada na expedição da fatura comercial (ISO-4217).
Tamanho: 3
Formato: 'AAA'
Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
+ **/
+ private String codigoMoedaNegociada = null;
+
+ @XmlElement(name = "valorMoedaNegociada")
+ @ApiModelProperty(example = "30.12", value = "Valor do seguro na moeda negociada.
Tamanho: 13,2
Formato: Decimal, com até 2 casas decimais separadas por ponto.")
+ /**
+ * Valor do seguro na moeda negociada.
Tamanho: 13,2
Formato: Decimal, com até 2 casas decimais separadas por ponto.
+ **/
+ private Double valorMoedaNegociada = null;
+
+ /**
+ * Código da Moeda utilizada para a negociação da mercadoria e usada na expedição da fatura comercial (ISO-4217).<br>Tamanho: 3<br>Formato: 'AAA'<br>Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
+ *
+ * @return codigoMoedaNegociada
+ **/
+ @JsonProperty("codigoMoedaNegociada")
+ public String getCodigoMoedaNegociada() {
+ return codigoMoedaNegociada;
+ }
+
+ public void setCodigoMoedaNegociada(String codigoMoedaNegociada) {
+ this.codigoMoedaNegociada = codigoMoedaNegociada;
+ }
+
+ public SeguroCover codigoMoedaNegociada(String codigoMoedaNegociada) {
+ this.codigoMoedaNegociada = codigoMoedaNegociada;
+ return this;
+ }
+
+ /**
+ * Valor do seguro na moeda negociada.<br>Tamanho: 13,2<br>Formato: Decimal, com até 2 casas decimais separadas por ponto.
+ *
+ * @return valorMoedaNegociada
+ **/
+ @JsonProperty("valorMoedaNegociada")
+ public Double getValorMoedaNegociada() {
+ return valorMoedaNegociada;
+ }
+
+ public void setValorMoedaNegociada(Double valorMoedaNegociada) {
+ this.valorMoedaNegociada = valorMoedaNegociada;
+ }
+
+ public SeguroCover valorMoedaNegociada(Double valorMoedaNegociada) {
+ this.valorMoedaNegociada = valorMoedaNegociada;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class SeguroCover {\n" +
+ " codigoMoedaNegociada: " + toIndentedString(codigoMoedaNegociada) + "\n" +
+ " valorMoedaNegociada: " + toIndentedString(valorMoedaNegociada) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/SeguroValoresCalculadosDuimpCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/SeguroValoresCalculadosDuimpCover.java
new file mode 100644
index 0000000..134614a
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/SeguroValoresCalculadosDuimpCover.java
@@ -0,0 +1,72 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "SeguroValoresCalculadosDuimpCover", propOrder =
+ {"valorTotalBRL"
+ })
+
+@XmlRootElement(name = "SeguroValoresCalculadosDuimpCover")
+/**
+ * Dados do seguro.
+ **/
+@ApiModel(description = "Dados do seguro.")
+public class SeguroValoresCalculadosDuimpCover {
+
+ @XmlElement(name = "valorTotalBRL")
+ @ApiModelProperty(example = "120.48", value = "Valor do seguro em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ /**
+ * Valor do seguro em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private Double valorTotalBRL = null;
+
+ /**
+ * Valor do seguro em R$ (Reais).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return valorTotalBRL
+ **/
+ @JsonProperty("valorTotalBRL")
+ public Double getValorTotalBRL() {
+ return valorTotalBRL;
+ }
+
+ public void setValorTotalBRL(Double valorTotalBRL) {
+ this.valorTotalBRL = valorTotalBRL;
+ }
+
+ public SeguroValoresCalculadosDuimpCover valorTotalBRL(Double valorTotalBRL) {
+ this.valorTotalBRL = valorTotalBRL;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class SeguroValoresCalculadosDuimpCover {\n" +
+ " valorTotalBRL: " + toIndentedString(valorTotalBRL) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/SeguroValoresCalculadosItemCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/SeguroValoresCalculadosItemCover.java
new file mode 100644
index 0000000..b02780d
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/SeguroValoresCalculadosItemCover.java
@@ -0,0 +1,72 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "SeguroValoresCalculadosItemCover", propOrder =
+ {"valorBRL"
+ })
+
+@XmlRootElement(name = "SeguroValoresCalculadosItemCover")
+/**
+ * Valor do seguro.
+ **/
+@ApiModel(description = "Valor do seguro.")
+public class SeguroValoresCalculadosItemCover {
+
+ @XmlElement(name = "valorBRL")
+ @ApiModelProperty(example = "120.48", value = "Valor do seguro em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ /**
+ * Valor do seguro em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private Double valorBRL = null;
+
+ /**
+ * Valor do seguro em R$ (Reais).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return valorBRL
+ **/
+ @JsonProperty("valorBRL")
+ public Double getValorBRL() {
+ return valorBRL;
+ }
+
+ public void setValorBRL(Double valorBRL) {
+ this.valorBRL = valorBRL;
+ }
+
+ public SeguroValoresCalculadosItemCover valorBRL(Double valorBRL) {
+ this.valorBRL = valorBRL;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class SeguroValoresCalculadosItemCover {\n" +
+ " valorBRL: " + toIndentedString(valorBRL) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/TipoAplicacaoCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/TipoAplicacaoCover.java
new file mode 100644
index 0000000..1a1d6e6
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/TipoAplicacaoCover.java
@@ -0,0 +1,130 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "TipoAplicacaoCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "TipoAplicacaoCover")
+/**
+ * Destinação da mercadoria.
+ **/
+@ApiModel(description = "Destinação da mercadoria.")
+public class TipoAplicacaoCover {
+
+
+ @XmlType(name = "CodigoEnum")
+ @XmlEnum(String.class)
+ public enum CodigoEnum {
+
+ @XmlEnumValue("CONSUMO")
+ @JsonProperty("CONSUMO")
+ CONSUMO("CONSUMO"),
+
+ @XmlEnumValue("INCORPORACAO_ATIVO_FIXO")
+ @JsonProperty("INCORPORACAO_ATIVO_FIXO")
+ INCORPORACAO_ATIVO_FIXO("INCORPORACAO_ATIVO_FIXO"),
+
+ @XmlEnumValue("INDUSTRIALIZACAO")
+ @JsonProperty("INDUSTRIALIZACAO")
+ INDUSTRIALIZACAO("INDUSTRIALIZACAO"),
+
+ @XmlEnumValue("REVENDA")
+ @JsonProperty("REVENDA")
+ REVENDA("REVENDA"),
+
+ @XmlEnumValue("OUTRA")
+ @JsonProperty("OUTRA")
+ OUTRA("OUTRA");
+
+
+ private final String value;
+
+ CodigoEnum(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static CodigoEnum fromValue(String v) {
+ for (CodigoEnum b : CodigoEnum.values()) {
+ if (String.valueOf(b.value).equals(v)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + v + "' to CodigoEnum");
+ }
+ }
+
+ @XmlElement(name = "codigo", required = true)
+ @ApiModelProperty(example = "CONSUMO", required = true, value = "Destinação da mercadoria de acordo com o domínio a seguir.
Domínio:")
+ /**
+ * Destinação da mercadoria de acordo com o domínio a seguir.
Domínio:
+ **/
+ private CodigoEnum codigo = null;
+
+ /**
+ * Destinação da mercadoria de acordo com o domínio a seguir.<br>Domínio:
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ @NotNull
+ public String getCodigo() {
+ if (codigo == null) {
+ return null;
+ }
+ return codigo.value();
+ }
+
+ public void setCodigo(CodigoEnum codigo) {
+ this.codigo = codigo;
+ }
+
+ public TipoAplicacaoCover codigo(CodigoEnum codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class TipoAplicacaoCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/TipoDocumentoInstrucaoCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/TipoDocumentoInstrucaoCover.java
new file mode 100644
index 0000000..74d5f4b
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/TipoDocumentoInstrucaoCover.java
@@ -0,0 +1,74 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "TipoDocumentoInstrucaoCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "TipoDocumentoInstrucaoCover")
+/**
+ * Tipo do documento instrutivo para despacho.
+ **/
+@ApiModel(description = "Tipo do documento instrutivo para despacho.")
+public class TipoDocumentoInstrucaoCover {
+
+ @XmlElement(name = "codigo", required = true)
+ @ApiModelProperty(example = "99", required = true, value = "Código do Tipo de Documento no sistema Anexação (E-Docex).
Domínio: Tipos de Documento existentes no sistema Anexação (E-Docex).
Valor mínimo: 1
Valor máximo: 999")
+ /**
+ * Código do Tipo de Documento no sistema Anexação (E-Docex).
Domínio: Tipos de Documento existentes no sistema Anexação (E-Docex).
Valor mínimo: 1
Valor máximo: 999
+ **/
+ private String codigo = null;
+
+ /**
+ * Código do Tipo de Documento no sistema Anexação (E-Docex).<br>Domínio: Tipos de Documento existentes no sistema Anexação (E-Docex).<br>Valor mínimo: 1<br>Valor máximo: 999
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ @NotNull
+ public String getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(String codigo) {
+ this.codigo = codigo;
+ }
+
+ public TipoDocumentoInstrucaoCover codigo(String codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class TipoDocumentoInstrucaoCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/TributoCalculadoDuimpCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/TributoCalculadoDuimpCover.java
new file mode 100644
index 0000000..641f87d
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/TributoCalculadoDuimpCover.java
@@ -0,0 +1,170 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "TributoCalculadoDuimpCover", propOrder =
+ {"tipo", "valoresBRL"
+ })
+
+@XmlRootElement(name = "TributoCalculadoDuimpCover")
+/**
+ * Valores do cálculo do tributo e a memória de cálculo.
+ **/
+@ApiModel(description = "Valores do cálculo do tributo e a memória de cálculo.")
+public class TributoCalculadoDuimpCover {
+
+
+ @XmlType(name = "TipoEnum")
+ @XmlEnum(String.class)
+ public enum TipoEnum {
+
+ @XmlEnumValue("II")
+ @JsonProperty("II")
+ II("II"),
+
+ @XmlEnumValue("IPI")
+ @JsonProperty("IPI")
+ IPI("IPI"),
+
+ @XmlEnumValue("PIS")
+ @JsonProperty("PIS")
+ PIS("PIS"),
+
+ @XmlEnumValue("COFINS")
+ @JsonProperty("COFINS")
+ COFINS("COFINS"),
+
+ @XmlEnumValue("CIDE")
+ @JsonProperty("CIDE")
+ CIDE("CIDE"),
+
+ @XmlEnumValue("ANTIDUMPING")
+ @JsonProperty("ANTIDUMPING")
+ ANTIDUMPING("ANTIDUMPING"),
+
+ @XmlEnumValue("MULTA_COM_REDUCAO")
+ @JsonProperty("MULTA_COM_REDUCAO")
+ MULTA_COM_REDUCAO("MULTA_COM_REDUCAO"),
+
+ @XmlEnumValue("MULTA_SEM_REDUCAO")
+ @JsonProperty("MULTA_SEM_REDUCAO")
+ MULTA_SEM_REDUCAO("MULTA_SEM_REDUCAO"),
+
+ @XmlEnumValue("TAXA_UTILIZACAO")
+ @JsonProperty("TAXA_UTILIZACAO")
+ TAXA_UTILIZACAO("TAXA_UTILIZACAO");
+
+
+ private final String value;
+
+ TipoEnum(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static TipoEnum fromValue(String v) {
+ for (TipoEnum b : TipoEnum.values()) {
+ if (String.valueOf(b.value).equals(v)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + v + "' to TipoEnum");
+ }
+ }
+
+ @XmlElement(name = "tipo")
+ @ApiModelProperty(example = "II", value = "Tipo de impostos (códigos de receita principal únicos).
Domínio:")
+ /**
+ * Tipo de impostos (códigos de receita principal únicos).
Domínio:
+ **/
+ private TipoEnum tipo = null;
+
+ @XmlElement(name = "valoresBRL")
+ @ApiModelProperty(value = "")
+ @Valid
+ private ValoresTributoDuimpCover valoresBRL = null;
+
+ /**
+ * Tipo de impostos (códigos de receita principal únicos).<br>Domínio:
+ *
+ * @return tipo
+ **/
+ @JsonProperty("tipo")
+ public String getTipo() {
+ if (tipo == null) {
+ return null;
+ }
+ return tipo.value();
+ }
+
+ public void setTipo(TipoEnum tipo) {
+ this.tipo = tipo;
+ }
+
+ public TributoCalculadoDuimpCover tipo(TipoEnum tipo) {
+ this.tipo = tipo;
+ return this;
+ }
+
+ /**
+ * Get valoresBRL
+ *
+ * @return valoresBRL
+ **/
+ @JsonProperty("valoresBRL")
+ public ValoresTributoDuimpCover getValoresBRL() {
+ return valoresBRL;
+ }
+
+ public void setValoresBRL(ValoresTributoDuimpCover valoresBRL) {
+ this.valoresBRL = valoresBRL;
+ }
+
+ public TributoCalculadoDuimpCover valoresBRL(ValoresTributoDuimpCover valoresBRL) {
+ this.valoresBRL = valoresBRL;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class TributoCalculadoDuimpCover {\n" +
+ " tipo: " + toIndentedString(tipo) + "\n" +
+ " valoresBRL: " + toIndentedString(valoresBRL) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/TributoCalculadoItemCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/TributoCalculadoItemCover.java
new file mode 100644
index 0000000..438701c
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/TributoCalculadoItemCover.java
@@ -0,0 +1,195 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "TributoCalculadoItemCover", propOrder =
+ {"tipo", "valoresBRL", "memoriaCalculo"
+ })
+
+@XmlRootElement(name = "TributoCalculadoItemCover")
+/**
+ * Valores do cálculo do tributo e a memória de cálculo.
+ **/
+@ApiModel(description = "Valores do cálculo do tributo e a memória de cálculo.")
+public class TributoCalculadoItemCover {
+
+
+ @XmlType(name = "TipoEnum")
+ @XmlEnum(String.class)
+ public enum TipoEnum {
+
+ @XmlEnumValue("II")
+ @JsonProperty("II")
+ II("II"),
+
+ @XmlEnumValue("IPI")
+ @JsonProperty("IPI")
+ IPI("IPI"),
+
+ @XmlEnumValue("PIS")
+ @JsonProperty("PIS")
+ PIS("PIS"),
+
+ @XmlEnumValue("COFINS")
+ @JsonProperty("COFINS")
+ COFINS("COFINS"),
+
+ @XmlEnumValue("CIDE")
+ @JsonProperty("CIDE")
+ CIDE("CIDE"),
+
+ @XmlEnumValue("ANTIDUMPING")
+ @JsonProperty("ANTIDUMPING")
+ ANTIDUMPING("ANTIDUMPING"),
+
+ @XmlEnumValue("MULTA_COM_REDUCAO")
+ @JsonProperty("MULTA_COM_REDUCAO")
+ MULTA_COM_REDUCAO("MULTA_COM_REDUCAO"),
+
+ @XmlEnumValue("MULTA_SEM_REDUCAO")
+ @JsonProperty("MULTA_SEM_REDUCAO")
+ MULTA_SEM_REDUCAO("MULTA_SEM_REDUCAO"),
+
+ @XmlEnumValue("TAXA_UTILIZACAO")
+ @JsonProperty("TAXA_UTILIZACAO")
+ TAXA_UTILIZACAO("TAXA_UTILIZACAO");
+
+
+ private final String value;
+
+ TipoEnum(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static TipoEnum fromValue(String v) {
+ for (TipoEnum b : TipoEnum.values()) {
+ if (String.valueOf(b.value).equals(v)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + v + "' to TipoEnum");
+ }
+ }
+
+ @XmlElement(name = "tipo")
+ @ApiModelProperty(example = "II", value = "Tipo de impostos (códigos de receita principal únicos).
Domínio:")
+ /**
+ * Tipo de impostos (códigos de receita principal únicos).
Domínio:
+ **/
+ private TipoEnum tipo = null;
+
+ @XmlElement(name = "valoresBRL")
+ @ApiModelProperty(value = "")
+ @Valid
+ private ValoresTributoItemCover valoresBRL = null;
+
+ @XmlElement(name = "memoriaCalculo")
+ @ApiModelProperty(value = "")
+ @Valid
+ private MemoriaCalculoItemCover memoriaCalculo = null;
+
+ /**
+ * Tipo de impostos (códigos de receita principal únicos).<br>Domínio:
+ *
+ * @return tipo
+ **/
+ @JsonProperty("tipo")
+ public String getTipo() {
+ if (tipo == null) {
+ return null;
+ }
+ return tipo.value();
+ }
+
+ public void setTipo(TipoEnum tipo) {
+ this.tipo = tipo;
+ }
+
+ public TributoCalculadoItemCover tipo(TipoEnum tipo) {
+ this.tipo = tipo;
+ return this;
+ }
+
+ /**
+ * Get valoresBRL
+ *
+ * @return valoresBRL
+ **/
+ @JsonProperty("valoresBRL")
+ public ValoresTributoItemCover getValoresBRL() {
+ return valoresBRL;
+ }
+
+ public void setValoresBRL(ValoresTributoItemCover valoresBRL) {
+ this.valoresBRL = valoresBRL;
+ }
+
+ public TributoCalculadoItemCover valoresBRL(ValoresTributoItemCover valoresBRL) {
+ this.valoresBRL = valoresBRL;
+ return this;
+ }
+
+ /**
+ * Get memoriaCalculo
+ *
+ * @return memoriaCalculo
+ **/
+ @JsonProperty("memoriaCalculo")
+ public MemoriaCalculoItemCover getMemoriaCalculo() {
+ return memoriaCalculo;
+ }
+
+ public void setMemoriaCalculo(MemoriaCalculoItemCover memoriaCalculo) {
+ this.memoriaCalculo = memoriaCalculo;
+ }
+
+ public TributoCalculadoItemCover memoriaCalculo(MemoriaCalculoItemCover memoriaCalculo) {
+ this.memoriaCalculo = memoriaCalculo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class TributoCalculadoItemCover {\n" +
+ " tipo: " + toIndentedString(tipo) + "\n" +
+ " valoresBRL: " + toIndentedString(valoresBRL) + "\n" +
+ " memoriaCalculo: " + toIndentedString(memoriaCalculo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/TributoCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/TributoCover.java
new file mode 100644
index 0000000..07686b8
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/TributoCover.java
@@ -0,0 +1,144 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "TributoCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "TributoCover")
+/**
+ * Dados de um tributo.
+ **/
+@ApiModel(description = "Dados de um tributo.")
+public class TributoCover {
+
+
+ @XmlType(name = "CodigoEnum")
+ @XmlEnum(String.class)
+ public enum CodigoEnum {
+
+ @XmlEnumValue("II")
+ @JsonProperty("II")
+ II("II"),
+
+ @XmlEnumValue("IPI")
+ @JsonProperty("IPI")
+ IPI("IPI"),
+
+ @XmlEnumValue("PIS")
+ @JsonProperty("PIS")
+ PIS("PIS"),
+
+ @XmlEnumValue("COFINS")
+ @JsonProperty("COFINS")
+ COFINS("COFINS"),
+
+ @XmlEnumValue("CIDE")
+ @JsonProperty("CIDE")
+ CIDE("CIDE"),
+
+ @XmlEnumValue("ANTIDUMPING")
+ @JsonProperty("ANTIDUMPING")
+ ANTIDUMPING("ANTIDUMPING"),
+
+ @XmlEnumValue("MEDIDAS")
+ @JsonProperty("MEDIDAS")
+ MEDIDAS("MEDIDAS"),
+
+ @XmlEnumValue("SALVAGUARDA")
+ @JsonProperty("SALVAGUARDA")
+ SALVAGUARDA("SALVAGUARDA"),
+
+ @XmlEnumValue("MULTA")
+ @JsonProperty("MULTA")
+ MULTA("MULTA");
+
+
+ private final String value;
+
+ CodigoEnum(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static CodigoEnum fromValue(String v) {
+ for (CodigoEnum b : CodigoEnum.values()) {
+ if (String.valueOf(b.value).equals(v)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + v + "' to CodigoEnum");
+ }
+ }
+
+ @XmlElement(name = "codigo")
+ @ApiModelProperty(example = "IPI", value = "Código do regime tributário.
Domínio:")
+ /**
+ * Código do regime tributário.
Domínio:
+ **/
+ private CodigoEnum codigo = null;
+
+ /**
+ * Código do regime tributário.<br>Domínio:
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ public String getCodigo() {
+ if (codigo == null) {
+ return null;
+ }
+ return codigo.value();
+ }
+
+ public void setCodigo(CodigoEnum codigo) {
+ this.codigo = codigo;
+ }
+
+ public TributoCover codigo(CodigoEnum codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class TributoCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/TributoItemCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/TributoItemCover.java
new file mode 100644
index 0000000..7b37a29
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/TributoItemCover.java
@@ -0,0 +1,152 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import java.util.List;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "TributoItemCover", propOrder =
+ {"tributo", "regime", "fundamento", "atributos"
+ })
+
+@XmlRootElement(name = "TributoItemCover")
+/**
+ * Lista de Tributos.
Origem: Sistema Tratamento Tributário - https://api-docs.portalunico.siscomex.gov.br/
+ **/
+@ApiModel(description = "Lista de Tributos.
Origem: Sistema Tratamento Tributário - https://api-docs.portalunico.siscomex.gov.br/")
+public class TributoItemCover {
+
+ @XmlElement(name = "tributo")
+ @ApiModelProperty(value = "")
+ @Valid
+ private TributoCover tributo = null;
+
+ @XmlElement(name = "regime")
+ @ApiModelProperty(value = "")
+ @Valid
+ private RegimeCover regime = null;
+
+ @XmlElement(name = "fundamento")
+ @ApiModelProperty(value = "")
+ @Valid
+ private FundamentoCover fundamento = null;
+
+ @XmlElement(name = "atributos")
+ @ApiModelProperty(value = "")
+ @Valid
+ private List
Domínio:")
+ /**
+ * Código do tipo de tributo.
Domínio:
+ **/
+ private TipoEnum tipo = null;
+
+ /**
+ * Código do tipo de tributo.<br>Domínio:
+ *
+ * @return tipo
+ **/
+ @JsonProperty("tipo")
+ @NotNull
+ public String getTipo() {
+ if (tipo == null) {
+ return null;
+ }
+ return tipo.value();
+ }
+
+ public void setTipo(TipoEnum tipo) {
+ this.tipo = tipo;
+ }
+
+ public TributoPagamentoRegistroCover tipo(TipoEnum tipo) {
+ this.tipo = tipo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class TributoPagamentoRegistroCover {\n" +
+ " tipo: " + toIndentedString(tipo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/UnidadeDeclaradaCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/UnidadeDeclaradaCover.java
new file mode 100644
index 0000000..662ebb1
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/UnidadeDeclaradaCover.java
@@ -0,0 +1,74 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "UnidadeDeclaradaCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "UnidadeDeclaradaCover")
+/**
+ * Unidade de Despacho.
+ **/
+@ApiModel(description = "Unidade de Despacho.")
+public class UnidadeDeclaradaCover {
+
+ @XmlElement(name = "codigo", required = true)
+ @ApiModelProperty(example = "7912001", required = true, value = "Código da unidade da RFB na qual as mercadorias acobertadas pela Duimp serão submetidas a conferência aduaneira.
Tamanho: 7
Formato: 'NNNNNNN'
Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/")
+ /**
+ * Código da unidade da RFB na qual as mercadorias acobertadas pela Duimp serão submetidas a conferência aduaneira.
Tamanho: 7
Formato: 'NNNNNNN'
Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
+ **/
+ private String codigo = null;
+
+ /**
+ * Código da unidade da RFB na qual as mercadorias acobertadas pela Duimp serão submetidas a conferência aduaneira.<br>Tamanho: 7<br>Formato: 'NNNNNNN'<br>Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ @NotNull
+ public String getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(String codigo) {
+ this.codigo = codigo;
+ }
+
+ public UnidadeDeclaradaCover codigo(String codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class UnidadeDeclaradaCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/ValorPagamentoRegistroCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/ValorPagamentoRegistroCover.java
new file mode 100644
index 0000000..d5cf728
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/ValorPagamentoRegistroCover.java
@@ -0,0 +1,129 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ValorPagamentoRegistroCover", propOrder =
+ {"tributo", "valor", "juros"
+ })
+
+@XmlRootElement(name = "ValorPagamentoRegistroCover")
+/**
+ * Dados do tributo principal.
+ **/
+@ApiModel(description = "Dados do tributo principal.")
+public class ValorPagamentoRegistroCover {
+
+ @XmlElement(name = "tributo", required = true)
+ @ApiModelProperty(required = true, value = "")
+ @Valid
+ private TributoPagamentoRegistroCover tributo = null;
+
+ @XmlElement(name = "valor", required = true)
+ @ApiModelProperty(example = "10.12", required = true, value = "Valor do pagamento principal em R$ (Reais).
Tamanho: 13,2
Formato: Decimal, com até 2 casas decimais separadas por ponto.")
+ /**
+ * Valor do pagamento principal em R$ (Reais).
Tamanho: 13,2
Formato: Decimal, com até 2 casas decimais separadas por ponto.
+ **/
+ private Double valor = null;
+
+ @XmlElement(name = "juros", required = true)
+ @ApiModelProperty(example = "10.12", required = true, value = "Valor do pagamento de juros em R$ (Reais).
Tamanho: 13,2
Formato: Decimal, com até 2 casas decimais separadas por ponto.")
+ /**
+ * Valor do pagamento de juros em R$ (Reais).
Tamanho: 13,2
Formato: Decimal, com até 2 casas decimais separadas por ponto.
+ **/
+ private Double juros = null;
+
+ /**
+ * Get tributo
+ *
+ * @return tributo
+ **/
+ @JsonProperty("tributo")
+ @NotNull
+ public TributoPagamentoRegistroCover getTributo() {
+ return tributo;
+ }
+
+ public void setTributo(TributoPagamentoRegistroCover tributo) {
+ this.tributo = tributo;
+ }
+
+ public ValorPagamentoRegistroCover tributo(TributoPagamentoRegistroCover tributo) {
+ this.tributo = tributo;
+ return this;
+ }
+
+ /**
+ * Valor do pagamento principal em R$ (Reais).<br>Tamanho: 13,2<br>Formato: Decimal, com até 2 casas decimais separadas por ponto.
+ *
+ * @return valor
+ **/
+ @JsonProperty("valor")
+ @NotNull
+ public Double getValor() {
+ return valor;
+ }
+
+ public void setValor(Double valor) {
+ this.valor = valor;
+ }
+
+ public ValorPagamentoRegistroCover valor(Double valor) {
+ this.valor = valor;
+ return this;
+ }
+
+ /**
+ * Valor do pagamento de juros em R$ (Reais).<br>Tamanho: 13,2<br>Formato: Decimal, com até 2 casas decimais separadas por ponto.
+ *
+ * @return juros
+ **/
+ @JsonProperty("juros")
+ @NotNull
+ public Double getJuros() {
+ return juros;
+ }
+
+ public void setJuros(Double juros) {
+ this.juros = juros;
+ }
+
+ public ValorPagamentoRegistroCover juros(Double juros) {
+ this.juros = juros;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class ValorPagamentoRegistroCover {\n" +
+ " tributo: " + toIndentedString(tributo) + "\n" +
+ " valor: " + toIndentedString(valor) + "\n" +
+ " juros: " + toIndentedString(juros) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/ValoresCalculadosDuimpCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/ValoresCalculadosDuimpCover.java
new file mode 100644
index 0000000..92ec63a
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/ValoresCalculadosDuimpCover.java
@@ -0,0 +1,177 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import java.util.List;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ValoresCalculadosDuimpCover", propOrder =
+ {"identificacao", "carga", "adicoes", "mercadoriaLocalEmbarque", "tributosCalculados"
+ })
+
+@XmlRootElement(name = "ValoresCalculadosDuimpCover")
+public class ValoresCalculadosDuimpCover {
+
+ @XmlElement(name = "identificacao")
+ @ApiModelProperty(value = "")
+ @Valid
+ private IdentificadorDuimpCover identificacao = null;
+
+ @XmlElement(name = "carga")
+ @ApiModelProperty(value = "")
+ @Valid
+ private CargaValoresCalculadosDuimpCover carga = null;
+
+ @XmlElement(name = "adicoes")
+ @ApiModelProperty(value = "")
+ @Valid
+ private List
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto. Para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso, este valor possuirá o somatório dos valores calculados do pagamento proporcional dos itens")
+ /**
+ * Valor do tributo calculado em R$ (Reais).Para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso,este valor possuirá o somatório dos valores calculados do pagamento proporcional dos itens.
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto. Para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso, este valor possuirá o somatório dos valores calculados do pagamento proporcional dos itens
+ **/
+ private Double calculado = null;
+
+ @XmlElement(name = "aReduzir")
+ @ApiModelProperty(example = "135.7", value = "Valor a Reduzir do Tributo em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ /**
+ * Valor a Reduzir do Tributo em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private Double aReduzir = null;
+
+ @XmlElement(name = "devido")
+ @ApiModelProperty(example = "201.12", value = "Valor do tributo devido em R$ (Reais). Para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso, este valor possuirá o somatório dos valores originalmente devidos dos itens.
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto. Para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso, este valor possuirá o somatório dos valores calculados do pagamento proporcional dos itens")
+ /**
+ * Valor do tributo devido em R$ (Reais). Para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso, este valor possuirá o somatório dos valores originalmente devidos dos itens.
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto. Para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso, este valor possuirá o somatório dos valores calculados do pagamento proporcional dos itens
+ **/
+ private Double devido = null;
+
+ @XmlElement(name = "suspenso")
+ @ApiModelProperty(example = "16.7", value = "Valor Suspenso do Tributo em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ /**
+ * Valor Suspenso do Tributo em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private Double suspenso = null;
+
+ @XmlElement(name = "aRecolher")
+ @ApiModelProperty(example = "16.7", value = "Valor a Recolher do Imposto de Importação em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ /**
+ * Valor a Recolher do Imposto de Importação em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private Double aRecolher = null;
+
+ @XmlElement(name = "recolhido")
+ @ApiModelProperty(example = "16.7", value = "Valores Recolhidos (pagos) do Tributo.
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ /**
+ * Valores Recolhidos (pagos) do Tributo.
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private Double recolhido = null;
+
+ @XmlElement(name = "complementar")
+ @ApiModelProperty(example = "16.7", value = "Valores complementares para pagamento por tributos.
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ /**
+ * Valores complementares para pagamento por tributos.
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private Double complementar = null;
+
+ @XmlElement(name = "juros")
+ @ApiModelProperty(example = "16.7", value = "Valores de cálculo de juros.
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ /**
+ * Valores de cálculo de juros.
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private Double juros = null;
+
+ /**
+ * Valor do tributo calculado em R$ (Reais).Para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso,este valor possuirá o somatório dos valores calculados do pagamento proporcional dos itens.<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto. Para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso, este valor possuirá o somatório dos valores calculados do pagamento proporcional dos itens
+ *
+ * @return calculado
+ **/
+ @JsonProperty("calculado")
+ public Double getCalculado() {
+ return calculado;
+ }
+
+ public void setCalculado(Double calculado) {
+ this.calculado = calculado;
+ }
+
+ public ValoresTributoDuimpCover calculado(Double calculado) {
+ this.calculado = calculado;
+ return this;
+ }
+
+ /**
+ * Valor a Reduzir do Tributo em R$ (Reais).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return aReduzir
+ **/
+ @JsonProperty("aReduzir")
+ public Double getAReduzir() {
+ return aReduzir;
+ }
+
+ public void setAReduzir(Double aReduzir) {
+ this.aReduzir = aReduzir;
+ }
+
+ public ValoresTributoDuimpCover aReduzir(Double aReduzir) {
+ this.aReduzir = aReduzir;
+ return this;
+ }
+
+ /**
+ * Valor do tributo devido em R$ (Reais). Para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso, este valor possuirá o somatório dos valores originalmente devidos dos itens.<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto. Para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso, este valor possuirá o somatório dos valores calculados do pagamento proporcional dos itens
+ *
+ * @return devido
+ **/
+ @JsonProperty("devido")
+ public Double getDevido() {
+ return devido;
+ }
+
+ public void setDevido(Double devido) {
+ this.devido = devido;
+ }
+
+ public ValoresTributoDuimpCover devido(Double devido) {
+ this.devido = devido;
+ return this;
+ }
+
+ /**
+ * Valor Suspenso do Tributo em R$ (Reais).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return suspenso
+ **/
+ @JsonProperty("suspenso")
+ public Double getSuspenso() {
+ return suspenso;
+ }
+
+ public void setSuspenso(Double suspenso) {
+ this.suspenso = suspenso;
+ }
+
+ public ValoresTributoDuimpCover suspenso(Double suspenso) {
+ this.suspenso = suspenso;
+ return this;
+ }
+
+ /**
+ * Valor a Recolher do Imposto de Importação em R$ (Reais).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return aRecolher
+ **/
+ @JsonProperty("aRecolher")
+ public Double getARecolher() {
+ return aRecolher;
+ }
+
+ public void setARecolher(Double aRecolher) {
+ this.aRecolher = aRecolher;
+ }
+
+ public ValoresTributoDuimpCover aRecolher(Double aRecolher) {
+ this.aRecolher = aRecolher;
+ return this;
+ }
+
+ /**
+ * Valores Recolhidos (pagos) do Tributo.<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return recolhido
+ **/
+ @JsonProperty("recolhido")
+ public Double getRecolhido() {
+ return recolhido;
+ }
+
+ public void setRecolhido(Double recolhido) {
+ this.recolhido = recolhido;
+ }
+
+ public ValoresTributoDuimpCover recolhido(Double recolhido) {
+ this.recolhido = recolhido;
+ return this;
+ }
+
+ /**
+ * Valores complementares para pagamento por tributos.<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return complementar
+ **/
+ @JsonProperty("complementar")
+ public Double getComplementar() {
+ return complementar;
+ }
+
+ public void setComplementar(Double complementar) {
+ this.complementar = complementar;
+ }
+
+ public ValoresTributoDuimpCover complementar(Double complementar) {
+ this.complementar = complementar;
+ return this;
+ }
+
+ /**
+ * Valores de cálculo de juros.<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return juros
+ **/
+ @JsonProperty("juros")
+ public Double getJuros() {
+ return juros;
+ }
+
+ public void setJuros(Double juros) {
+ this.juros = juros;
+ }
+
+ public ValoresTributoDuimpCover juros(Double juros) {
+ this.juros = juros;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class ValoresTributoDuimpCover {\n" +
+ " calculado: " + toIndentedString(calculado) + "\n" +
+ " aReduzir: " + toIndentedString(aReduzir) + "\n" +
+ " devido: " + toIndentedString(devido) + "\n" +
+ " suspenso: " + toIndentedString(suspenso) + "\n" +
+ " aRecolher: " + toIndentedString(aRecolher) + "\n" +
+ " recolhido: " + toIndentedString(recolhido) + "\n" +
+ " complementar: " + toIndentedString(complementar) + "\n" +
+ " juros: " + toIndentedString(juros) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/ValoresTributoItemCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/ValoresTributoItemCover.java
new file mode 100644
index 0000000..51c3872
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_api_receita/model/ValoresTributoItemCover.java
@@ -0,0 +1,234 @@
+package br.gov.siscomex.portalunico.duimp_api_receita.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ValoresTributoItemCover", propOrder =
+ {"calculado", "aReduzir", "devido", "suspenso", "aRecolher", "originalDevido", "calculadoPagProporcional"
+ })
+
+@XmlRootElement(name = "ValoresTributoItemCover")
+/**
+ * Valores do cálculo do tributo.
+ **/
+@ApiModel(description = "Valores do cálculo do tributo.")
+public class ValoresTributoItemCover {
+
+ @XmlElement(name = "calculado")
+ @ApiModelProperty(example = "1598.73", value = "Valor Calculado do Tributo em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ /**
+ * Valor Calculado do Tributo em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private Double calculado = null;
+
+ @XmlElement(name = "aReduzir")
+ @ApiModelProperty(example = "165.7", value = "Valor a Reduzir do Tributo em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ /**
+ * Valor a Reduzir do Tributo em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private Double aReduzir = null;
+
+ @XmlElement(name = "devido")
+ @ApiModelProperty(example = "16.7", value = "Valor Devido do Tributo em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ /**
+ * Valor Devido do Tributo em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private Double devido = null;
+
+ @XmlElement(name = "suspenso")
+ @ApiModelProperty(example = "16.7", value = "Valor Suspenso do Tributo em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ /**
+ * Valor Suspenso do Tributo em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private Double suspenso = null;
+
+ @XmlElement(name = "aRecolher")
+ @ApiModelProperty(example = "16.7", value = "Valor a Recolher do Imposto de Importação em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ /**
+ * Valor a Recolher do Imposto de Importação em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private Double aRecolher = null;
+
+ @XmlElement(name = "originalDevido")
+ @ApiModelProperty(example = "16.7", value = "Valor do Tributo Originalmente Devido em R$ (Reais), para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso.
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ /**
+ * Valor do Tributo Originalmente Devido em R$ (Reais), para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso.
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private Double originalDevido = null;
+
+ @XmlElement(name = "calculadoPagProporcional")
+ @ApiModelProperty(example = "16.7", value = "Valor do Tributo Calculado do Pagamento Proporcional em R$ (Reais), para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso.
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ /**
+ * Valor do Tributo Calculado do Pagamento Proporcional em R$ (Reais), para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso.
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private Double calculadoPagProporcional = null;
+
+ /**
+ * Valor Calculado do Tributo em R$ (Reais).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return calculado
+ **/
+ @JsonProperty("calculado")
+ public Double getCalculado() {
+ return calculado;
+ }
+
+ public void setCalculado(Double calculado) {
+ this.calculado = calculado;
+ }
+
+ public ValoresTributoItemCover calculado(Double calculado) {
+ this.calculado = calculado;
+ return this;
+ }
+
+ /**
+ * Valor a Reduzir do Tributo em R$ (Reais).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return aReduzir
+ **/
+ @JsonProperty("aReduzir")
+ public Double getAReduzir() {
+ return aReduzir;
+ }
+
+ public void setAReduzir(Double aReduzir) {
+ this.aReduzir = aReduzir;
+ }
+
+ public ValoresTributoItemCover aReduzir(Double aReduzir) {
+ this.aReduzir = aReduzir;
+ return this;
+ }
+
+ /**
+ * Valor Devido do Tributo em R$ (Reais).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return devido
+ **/
+ @JsonProperty("devido")
+ public Double getDevido() {
+ return devido;
+ }
+
+ public void setDevido(Double devido) {
+ this.devido = devido;
+ }
+
+ public ValoresTributoItemCover devido(Double devido) {
+ this.devido = devido;
+ return this;
+ }
+
+ /**
+ * Valor Suspenso do Tributo em R$ (Reais).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return suspenso
+ **/
+ @JsonProperty("suspenso")
+ public Double getSuspenso() {
+ return suspenso;
+ }
+
+ public void setSuspenso(Double suspenso) {
+ this.suspenso = suspenso;
+ }
+
+ public ValoresTributoItemCover suspenso(Double suspenso) {
+ this.suspenso = suspenso;
+ return this;
+ }
+
+ /**
+ * Valor a Recolher do Imposto de Importação em R$ (Reais).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return aRecolher
+ **/
+ @JsonProperty("aRecolher")
+ public Double getARecolher() {
+ return aRecolher;
+ }
+
+ public void setARecolher(Double aRecolher) {
+ this.aRecolher = aRecolher;
+ }
+
+ public ValoresTributoItemCover aRecolher(Double aRecolher) {
+ this.aRecolher = aRecolher;
+ return this;
+ }
+
+ /**
+ * Valor do Tributo Originalmente Devido em R$ (Reais), para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso.<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return originalDevido
+ **/
+ @JsonProperty("originalDevido")
+ public Double getOriginalDevido() {
+ return originalDevido;
+ }
+
+ public void setOriginalDevido(Double originalDevido) {
+ this.originalDevido = originalDevido;
+ }
+
+ public ValoresTributoItemCover originalDevido(Double originalDevido) {
+ this.originalDevido = originalDevido;
+ return this;
+ }
+
+ /**
+ * Valor do Tributo Calculado do Pagamento Proporcional em R$ (Reais), para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso.<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return calculadoPagProporcional
+ **/
+ @JsonProperty("calculadoPagProporcional")
+ public Double getCalculadoPagProporcional() {
+ return calculadoPagProporcional;
+ }
+
+ public void setCalculadoPagProporcional(Double calculadoPagProporcional) {
+ this.calculadoPagProporcional = calculadoPagProporcional;
+ }
+
+ public ValoresTributoItemCover calculadoPagProporcional(Double calculadoPagProporcional) {
+ this.calculadoPagProporcional = calculadoPagProporcional;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class ValoresTributoItemCover {\n" +
+ " calculado: " + toIndentedString(calculado) + "\n" +
+ " aReduzir: " + toIndentedString(aReduzir) + "\n" +
+ " devido: " + toIndentedString(devido) + "\n" +
+ " suspenso: " + toIndentedString(suspenso) + "\n" +
+ " aRecolher: " + toIndentedString(aRecolher) + "\n" +
+ " originalDevido: " + toIndentedString(originalDevido) + "\n" +
+ " calculadoPagProporcional: " + toIndentedString(calculadoPagProporcional) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/api/DuimpDadosDeItensApi.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/api/DuimpDadosDeItensApi.java
new file mode 100644
index 0000000..52a2555
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/api/DuimpDadosDeItensApi.java
@@ -0,0 +1,46 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.api;
+
+import br.gov.siscomex.portalunico.duimp_balanca_itens.model.DuimpItemBalancaComercialCover;
+import br.gov.siscomex.portalunico.duimp_balanca_itens.model.RespostaApiErro;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+
+import javax.validation.constraints.NotNull;
+import javax.ws.rs.DefaultValue;
+import javax.ws.rs.GET;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.Response;
+
+/**
+ * Declaração Única de Importação - Balança Comercial - Itens de Duimp
+ *
+ *
Este token é recuperado no parâmetro Set-Token no response da autenticação", required = true) @HeaderParam("Authorization") String authorization, @ApiParam(value = "Token de prevenção contra ataques CSRF.
Este token é recuperado no parâmetro X-CSRF-Token no response da autenticação", required = true) @HeaderParam("X-CSRF-Token") String xCSRFToken, @NotNull @ApiParam(value = "Identificador único da consulta.
O valor deste parâmetro é recuperado no header da primeira página da consulta dos dados gerais.
Este atributo é obrigatório para recuperar os dados dos itens", required = true) @QueryParam("id-consulta") String idConsulta, @ApiParam(value = "Tamanho limite da quantidade de dados retornados.
Formato: Inteiro, com até 10 dígitos", defaultValue = "1000") @DefaultValue("1000") @QueryParam("limit") Integer limit, @ApiParam(value = "Índice do primeiro elemento.
Formato: Inteiro, com até 10 dígitos", defaultValue = "0") @DefaultValue("0") @QueryParam("offset") Integer offset);
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/AcrescimoDeducaoConsultaItemCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/AcrescimoDeducaoConsultaItemCover.java
new file mode 100644
index 0000000..1911f1e
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/AcrescimoDeducaoConsultaItemCover.java
@@ -0,0 +1,195 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import java.math.BigDecimal;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AcrescimoDeducaoConsultaItemCover", propOrder =
+ {"tipo", "moeda", "denominacao", "valorBRL"
+ })
+
+@XmlRootElement(name = "AcrescimoDeducaoConsultaItemCover")
+public class AcrescimoDeducaoConsultaItemCover {
+
+
+ @XmlType(name = "TipoEnum")
+ @XmlEnum(String.class)
+ public enum TipoEnum {
+
+ @XmlEnumValue("ACRESCIMO")
+ @JsonProperty("ACRESCIMO")
+ ACRESCIMO("ACRESCIMO"),
+
+ @XmlEnumValue("DEDUCAO")
+ @JsonProperty("DEDUCAO")
+ DEDUCAO("DEDUCAO");
+
+
+ private final String value;
+
+ TipoEnum(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static TipoEnum fromValue(String v) {
+ for (TipoEnum b : TipoEnum.values()) {
+ if (String.valueOf(b.value).equals(v)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + v + "' to TipoEnum");
+ }
+ }
+
+ @XmlElement(name = "tipo", required = true)
+ @ApiModelProperty(example = "ACRESCIMO", required = true, value = "Tipo de Operação (acreścimo ou dedução).
Domínio:")
+ /**
+ * Tipo de Operação (acreścimo ou dedução).
Domínio:
+ **/
+ private TipoEnum tipo = null;
+
+ @XmlElement(name = "moeda", required = true)
+ @ApiModelProperty(required = true, value = "")
+ @Valid
+ private MoedaAcrescimoDeducaoCover moeda = null;
+
+ @XmlElement(name = "denominacao", required = true)
+ @ApiModelProperty(required = true, value = "")
+ @Valid
+ private DenominacaoAcrescimoDeducaoCover denominacao = null;
+
+ @XmlElement(name = "valorBRL")
+ @ApiModelProperty(example = "33.45", value = "Valor na moeda negociada convertido em R$ (Reais).
Tamanho: 13,2
Formato: Decimal, com até 2 casas decimais separadas por ponto.")
+ @Valid
+ /**
+ * Valor na moeda negociada convertido em R$ (Reais).
Tamanho: 13,2
Formato: Decimal, com até 2 casas decimais separadas por ponto.
+ **/
+ private BigDecimal valorBRL = null;
+
+ /**
+ * Tipo de Operação (acreścimo ou dedução).<br>Domínio:
+ *
+ * @return tipo
+ **/
+ @JsonProperty("tipo")
+ @NotNull
+ public String getTipo() {
+ if (tipo == null) {
+ return null;
+ }
+ return tipo.value();
+ }
+
+ public void setTipo(TipoEnum tipo) {
+ this.tipo = tipo;
+ }
+
+ public AcrescimoDeducaoConsultaItemCover tipo(TipoEnum tipo) {
+ this.tipo = tipo;
+ return this;
+ }
+
+ /**
+ * Get moeda
+ *
+ * @return moeda
+ **/
+ @JsonProperty("moeda")
+ @NotNull
+ public MoedaAcrescimoDeducaoCover getMoeda() {
+ return moeda;
+ }
+
+ public void setMoeda(MoedaAcrescimoDeducaoCover moeda) {
+ this.moeda = moeda;
+ }
+
+ public AcrescimoDeducaoConsultaItemCover moeda(MoedaAcrescimoDeducaoCover moeda) {
+ this.moeda = moeda;
+ return this;
+ }
+
+ /**
+ * Get denominacao
+ *
+ * @return denominacao
+ **/
+ @JsonProperty("denominacao")
+ @NotNull
+ public DenominacaoAcrescimoDeducaoCover getDenominacao() {
+ return denominacao;
+ }
+
+ public void setDenominacao(DenominacaoAcrescimoDeducaoCover denominacao) {
+ this.denominacao = denominacao;
+ }
+
+ public AcrescimoDeducaoConsultaItemCover denominacao(DenominacaoAcrescimoDeducaoCover denominacao) {
+ this.denominacao = denominacao;
+ return this;
+ }
+
+ /**
+ * Valor na moeda negociada convertido em R$ (Reais).<br>Tamanho: 13,2<br>Formato: Decimal, com até 2 casas decimais separadas por ponto.
+ *
+ * @return valorBRL
+ **/
+ @JsonProperty("valorBRL")
+ public BigDecimal getValorBRL() {
+ return valorBRL;
+ }
+
+ public void setValorBRL(BigDecimal valorBRL) {
+ this.valorBRL = valorBRL;
+ }
+
+ public AcrescimoDeducaoConsultaItemCover valorBRL(BigDecimal valorBRL) {
+ this.valorBRL = valorBRL;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class AcrescimoDeducaoConsultaItemCover {\n" +
+ " tipo: " + toIndentedString(tipo) + "\n" +
+ " moeda: " + toIndentedString(moeda) + "\n" +
+ " denominacao: " + toIndentedString(denominacao) + "\n" +
+ " valorBRL: " + toIndentedString(valorBRL) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/AtributoFundamentoLegalCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/AtributoFundamentoLegalCover.java
new file mode 100644
index 0000000..33d70f0
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/AtributoFundamentoLegalCover.java
@@ -0,0 +1,94 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AtributoFundamentoLegalCover", propOrder =
+ {"codigo", "valor"
+ })
+
+@XmlRootElement(name = "AtributoFundamentoLegalCover")
+public class AtributoFundamentoLegalCover {
+
+ @XmlElement(name = "codigo")
+ @ApiModelProperty(value = "Código do atributo Fundamento Legal da Duimp para regimes especiais de despacho")
+ /**
+ * Código do atributo Fundamento Legal da Duimp para regimes especiais de despacho
+ **/
+ private String codigo = null;
+
+ @XmlElement(name = "valor")
+ @ApiModelProperty(example = "10.53", value = "Valor do atributo Fundamento Legal da Duimp para regimes especiais de despacho")
+ /**
+ * Valor do atributo Fundamento Legal da Duimp para regimes especiais de despacho
+ **/
+ private String valor = null;
+
+ /**
+ * Código do atributo Fundamento Legal da Duimp para regimes especiais de despacho
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ public String getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(String codigo) {
+ this.codigo = codigo;
+ }
+
+ public AtributoFundamentoLegalCover codigo(String codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+ /**
+ * Valor do atributo Fundamento Legal da Duimp para regimes especiais de despacho
+ *
+ * @return valor
+ **/
+ @JsonProperty("valor")
+ public String getValor() {
+ return valor;
+ }
+
+ public void setValor(String valor) {
+ this.valor = valor;
+ }
+
+ public AtributoFundamentoLegalCover valor(String valor) {
+ this.valor = valor;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class AtributoFundamentoLegalCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ " valor: " + toIndentedString(valor) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/AtributoItemCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/AtributoItemCover.java
new file mode 100644
index 0000000..cb97701
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/AtributoItemCover.java
@@ -0,0 +1,99 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AtributoItemCover", propOrder =
+ {"codigo", "valor"
+ })
+
+@XmlRootElement(name = "AtributoItemCover")
+/**
+ * Lista de atributos dinâmicos da mercadoria.
Origem: Sistema Cadastro de Atributos - https://api-docs.portalunico.siscomex.gov.br/
+ **/
+@ApiModel(description = "Lista de atributos dinâmicos da mercadoria.
Origem: Sistema Cadastro de Atributos - https://api-docs.portalunico.siscomex.gov.br/")
+public class AtributoItemCover {
+
+ @XmlElement(name = "codigo")
+ @ApiModelProperty(example = "ATT_0001", value = "Código do atributo no cadastro de atributos.
Tamanho mínimo: 1
Tamanho máximo: 14")
+ /**
+ * Código do atributo no cadastro de atributos.
Tamanho mínimo: 1
Tamanho máximo: 14
+ **/
+ private String codigo = null;
+
+ @XmlElement(name = "valor")
+ @ApiModelProperty(example = "01011100", value = "Valor atribuído pelo importador ao atributo representado pelo código.
Tamanho mínimo: 0
Tamanho máximo: 10000")
+ /**
+ * Valor atribuído pelo importador ao atributo representado pelo código.
Tamanho mínimo: 0
Tamanho máximo: 10000
+ **/
+ private String valor = null;
+
+ /**
+ * Código do atributo no cadastro de atributos.<br>Tamanho mínimo: 1<br>Tamanho máximo: 14
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ public String getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(String codigo) {
+ this.codigo = codigo;
+ }
+
+ public AtributoItemCover codigo(String codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+ /**
+ * Valor atribuído pelo importador ao atributo representado pelo código.<br>Tamanho mínimo: 0<br>Tamanho máximo: 10000
+ *
+ * @return valor
+ **/
+ @JsonProperty("valor")
+ public String getValor() {
+ return valor;
+ }
+
+ public void setValor(String valor) {
+ this.valor = valor;
+ }
+
+ public AtributoItemCover valor(String valor) {
+ this.valor = valor;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class AtributoItemCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ " valor: " + toIndentedString(valor) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/AtributoTributoCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/AtributoTributoCover.java
new file mode 100644
index 0000000..fb52419
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/AtributoTributoCover.java
@@ -0,0 +1,99 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AtributoTributoCover", propOrder =
+ {"codigo", "valor"
+ })
+
+@XmlRootElement(name = "AtributoTributoCover")
+/**
+ * Lista de atributos dinâmicos dos tributos.
+ **/
+@ApiModel(description = "Lista de atributos dinâmicos dos tributos.")
+public class AtributoTributoCover {
+
+ @XmlElement(name = "codigo")
+ @ApiModelProperty(example = "ATT_0001", value = "Código do atributo no cadastro de atributos.
Tamanho mínimo: 1
Tamanho máximo: 14")
+ /**
+ * Código do atributo no cadastro de atributos.
Tamanho mínimo: 1
Tamanho máximo: 14
+ **/
+ private String codigo = null;
+
+ @XmlElement(name = "valor")
+ @ApiModelProperty(example = "01011100", value = "Valor atribuído pelo importador ao atributo representado pelo código.
Tamanho mínimo: 0
Tamanho máximo: 10000")
+ /**
+ * Valor atribuído pelo importador ao atributo representado pelo código.
Tamanho mínimo: 0
Tamanho máximo: 10000
+ **/
+ private String valor = null;
+
+ /**
+ * Código do atributo no cadastro de atributos.<br>Tamanho mínimo: 1<br>Tamanho máximo: 14
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ public String getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(String codigo) {
+ this.codigo = codigo;
+ }
+
+ public AtributoTributoCover codigo(String codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+ /**
+ * Valor atribuído pelo importador ao atributo representado pelo código.<br>Tamanho mínimo: 0<br>Tamanho máximo: 10000
+ *
+ * @return valor
+ **/
+ @JsonProperty("valor")
+ public String getValor() {
+ return valor;
+ }
+
+ public void setValor(String valor) {
+ this.valor = valor;
+ }
+
+ public AtributoTributoCover valor(String valor) {
+ this.valor = valor;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class AtributoTributoCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ " valor: " + toIndentedString(valor) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/CaracterizacaoImportacaoConsultaItemCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/CaracterizacaoImportacaoConsultaItemCover.java
new file mode 100644
index 0000000..d2a7b8e
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/CaracterizacaoImportacaoConsultaItemCover.java
@@ -0,0 +1,149 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CaracterizacaoImportacaoConsultaItemCover", propOrder =
+ {"indicador", "ni"
+ })
+
+@XmlRootElement(name = "CaracterizacaoImportacaoConsultaItemCover")
+/**
+ * Caracterização da Importação.
+ **/
+@ApiModel(description = "Caracterização da Importação.")
+public class CaracterizacaoImportacaoConsultaItemCover {
+
+
+ @XmlType(name = "IndicadorEnum")
+ @XmlEnum(String.class)
+ public enum IndicadorEnum {
+
+ @XmlEnumValue("IMPORTACAO_DIRETA")
+ @JsonProperty("IMPORTACAO_DIRETA")
+ DIRETA("IMPORTACAO_DIRETA"),
+
+ @XmlEnumValue("IMPORTACAO_POR_CONTA_E_ORDEM")
+ @JsonProperty("IMPORTACAO_POR_CONTA_E_ORDEM")
+ POR_CONTA_E_ORDEM("IMPORTACAO_POR_CONTA_E_ORDEM"),
+
+ @XmlEnumValue("IMPORTACAO_POR_ENCOMENDA")
+ @JsonProperty("IMPORTACAO_POR_ENCOMENDA")
+ POR_ENCOMENDA("IMPORTACAO_POR_ENCOMENDA");
+
+
+ private final String value;
+
+ IndicadorEnum(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static IndicadorEnum fromValue(String v) {
+ for (IndicadorEnum b : IndicadorEnum.values()) {
+ if (String.valueOf(b.value).equals(v)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + v + "' to IndicadorEnum");
+ }
+ }
+
+ @XmlElement(name = "indicador", required = true)
+ @ApiModelProperty(example = "IMPORTACAO_DIRETA", required = true, value = "Indicador de importação por terceiros.")
+ /**
+ * Indicador de importação por terceiros.
+ **/
+ private IndicadorEnum indicador = null;
+
+ @XmlElement(name = "ni")
+ @ApiModelProperty(example = "00000000000191", value = "CNPJ do adquirente ou encomendante.
Tamanho: 14
Formato: 'NNNNNNNNNNNNNN'
Observação: Este atributo é informado apenas quando o atributo 'indicador' possui um dos seguintes valores: 'IMPORTACAO_POR_CONTA_E_ORDEM', 'IMPORTACAO_POR_ENCOMENDA'")
+ /**
+ * CNPJ do adquirente ou encomendante.
Tamanho: 14
Formato: 'NNNNNNNNNNNNNN'
Observação: Este atributo é informado apenas quando o atributo 'indicador' possui um dos seguintes valores: 'IMPORTACAO_POR_CONTA_E_ORDEM', 'IMPORTACAO_POR_ENCOMENDA'
+ **/
+ private String ni = null;
+
+ /**
+ * Indicador de importação por terceiros.
+ *
+ * @return indicador
+ **/
+ @JsonProperty("indicador")
+ @NotNull
+ public String getIndicador() {
+ if (indicador == null) {
+ return null;
+ }
+ return indicador.value();
+ }
+
+ public void setIndicador(IndicadorEnum indicador) {
+ this.indicador = indicador;
+ }
+
+ public CaracterizacaoImportacaoConsultaItemCover indicador(IndicadorEnum indicador) {
+ this.indicador = indicador;
+ return this;
+ }
+
+ /**
+ * CNPJ do adquirente ou encomendante.<br>Tamanho: 14<br>Formato: 'NNNNNNNNNNNNNN'<br>Observação: Este atributo é informado apenas quando o atributo 'indicador' possui um dos seguintes valores: 'IMPORTACAO_POR_CONTA_E_ORDEM', 'IMPORTACAO_POR_ENCOMENDA'
+ *
+ * @return ni
+ **/
+ @JsonProperty("ni")
+ public String getNi() {
+ return ni;
+ }
+
+ public void setNi(String ni) {
+ this.ni = ni;
+ }
+
+ public CaracterizacaoImportacaoConsultaItemCover ni(String ni) {
+ this.ni = ni;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class CaracterizacaoImportacaoConsultaItemCover {\n" +
+ " indicador: " + toIndentedString(indicador) + "\n" +
+ " ni: " + toIndentedString(ni) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/CoberturaCambialCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/CoberturaCambialCover.java
new file mode 100644
index 0000000..8c4615b
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/CoberturaCambialCover.java
@@ -0,0 +1,126 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CoberturaCambialCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "CoberturaCambialCover")
+/**
+ * Cobertura cambial.
+ **/
+@ApiModel(description = "Cobertura cambial.")
+public class CoberturaCambialCover {
+
+
+ @XmlType(name = "CodigoEnum")
+ @XmlEnum(String.class)
+ public enum CodigoEnum {
+
+ @XmlEnumValue("ATE_180_DIAS")
+ @JsonProperty("ATE_180_DIAS")
+ ATE_180_DIAS("ATE_180_DIAS"),
+
+ @XmlEnumValue("DE_180_ATE_360")
+ @JsonProperty("DE_180_ATE_360")
+ DE_180_ATE_360("DE_180_ATE_360"),
+
+ @XmlEnumValue("ACIMA_360")
+ @JsonProperty("ACIMA_360")
+ ACIMA_360("ACIMA_360"),
+
+ @XmlEnumValue("SEM_COBERTURA")
+ @JsonProperty("SEM_COBERTURA")
+ SEM_COBERTURA("SEM_COBERTURA");
+
+
+ private final String value;
+
+ CodigoEnum(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static CodigoEnum fromValue(String v) {
+ for (CodigoEnum b : CodigoEnum.values()) {
+ if (String.valueOf(b.value).equals(v)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + v + "' to CodigoEnum");
+ }
+ }
+
+ @XmlElement(name = "codigo", required = true)
+ @ApiModelProperty(example = "ATE_180_DIAS", required = true, value = "Código da cobertura cambial.
Domínio:")
+ /**
+ * Código da cobertura cambial.
Domínio:
+ **/
+ private CodigoEnum codigo = null;
+
+ /**
+ * Código da cobertura cambial.<br>Domínio:
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ @NotNull
+ public String getCodigo() {
+ if (codigo == null) {
+ return null;
+ }
+ return codigo.value();
+ }
+
+ public void setCodigo(CodigoEnum codigo) {
+ this.codigo = codigo;
+ }
+
+ public CoberturaCambialCover codigo(CodigoEnum codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class CoberturaCambialCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/CondicaoVendaConsultaItemCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/CondicaoVendaConsultaItemCover.java
new file mode 100644
index 0000000..243d1ea
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/CondicaoVendaConsultaItemCover.java
@@ -0,0 +1,234 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import java.math.BigDecimal;
+import java.util.List;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CondicaoVendaConsultaItemCover", propOrder =
+ {"metodoValoracao", "incoterm", "valorBRL", "valorMoedaNegociada", "frete", "seguro", "acrescimosDeducoes"
+ })
+
+@XmlRootElement(name = "CondicaoVendaConsultaItemCover")
+/**
+ *
Condição de venda da mercadoria.
Para Duimps com situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso, será retornado o valor nulo (**null**)
+ **/
+@ApiModel(description = "
Condição de venda da mercadoria.
Para Duimps com situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso, será retornado o valor nulo (**null**)")
+public class CondicaoVendaConsultaItemCover {
+
+ @XmlElement(name = "metodoValoracao")
+ @ApiModelProperty(value = "")
+ @Valid
+ private MetodoValoracaoCover metodoValoracao = null;
+
+ @XmlElement(name = "incoterm")
+ @ApiModelProperty(value = "")
+ @Valid
+ private IncotermCover incoterm = null;
+
+ @XmlElement(name = "valorBRL")
+ @ApiModelProperty(example = "1.0", value = "Valor na moeda negociada convertido em R$ (Reais).
Tamanho: 13,2
Formato: Decimal, com até 2 casas decimais separadas por ponto.")
+ @Valid
+ /**
+ * Valor na moeda negociada convertido em R$ (Reais).
Tamanho: 13,2
Formato: Decimal, com até 2 casas decimais separadas por ponto.
+ **/
+ private BigDecimal valorBRL = null;
+
+ @XmlElement(name = "valorMoedaNegociada")
+ @ApiModelProperty(example = "1.0", value = "Valor na moeda negociada.
Tamanho: 13,2
Formato: Decimal, com até 2 casas decimais separadas por ponto.")
+ @Valid
+ /**
+ * Valor na moeda negociada.
Tamanho: 13,2
Formato: Decimal, com até 2 casas decimais separadas por ponto.
+ **/
+ private BigDecimal valorMoedaNegociada = null;
+
+ @XmlElement(name = "frete")
+ @ApiModelProperty(value = "")
+ @Valid
+ private FreteConsultaItemCover frete = null;
+
+ @XmlElement(name = "seguro")
+ @ApiModelProperty(value = "")
+ @Valid
+ private SeguroConsultaItemCover seguro = null;
+
+ @XmlElement(name = "acrescimosDeducoes")
+ @ApiModelProperty(value = "")
+ @Valid
+ private List
Observação: Deve ser preenchido quando a cobertura cambial estiver acima de 360 dias ou quando o motivo selecionado no atributo \"motivoSemCobertura\" admitir a utilização do ROF.
Tamanho mínimo: 1
Tamanho máximo: 8")
+ /**
+ * Número do ROF no BACEN.
Observação: Deve ser preenchido quando a cobertura cambial estiver acima de 360 dias ou quando o motivo selecionado no atributo \"motivoSemCobertura\" admitir a utilização do ROF.
Tamanho mínimo: 1
Tamanho máximo: 8
+ **/
+ private String numeroROF = null;
+
+ @XmlElement(name = "instituicaoFinanciadora")
+ @ApiModelProperty(value = "")
+ @Valid
+ private InstituicaoFinanciadoraCover instituicaoFinanciadora = null;
+
+ @XmlElement(name = "valorCoberturaCambial")
+ @ApiModelProperty(example = "100.12", value = "Valor da cobertura cambial.
Tamanho: 13,2
Formato: Decimal, com até 2 casas decimais separadas por ponto.Observação: Deve ser preenchido quando a cobertura cambial estiver acima de 360 dias.")
+ /**
+ * Valor da cobertura cambial.
Tamanho: 13,2
Formato: Decimal, com até 2 casas decimais separadas por ponto.Observação: Deve ser preenchido quando a cobertura cambial estiver acima de 360 dias.
+ **/
+ private String valorCoberturaCambial = null;
+
+ @XmlElement(name = "motivoSemCobertura")
+ @ApiModelProperty(value = "")
+ @Valid
+ private MotivoSemCoberturaCambialCover motivoSemCobertura = null;
+
+ /**
+ * Get coberturaCambial
+ *
+ * @return coberturaCambial
+ **/
+ @JsonProperty("coberturaCambial")
+ @NotNull
+ public CoberturaCambialCover getCoberturaCambial() {
+ return coberturaCambial;
+ }
+
+ public void setCoberturaCambial(CoberturaCambialCover coberturaCambial) {
+ this.coberturaCambial = coberturaCambial;
+ }
+
+ public DadosCambiaisCover coberturaCambial(CoberturaCambialCover coberturaCambial) {
+ this.coberturaCambial = coberturaCambial;
+ return this;
+ }
+
+ /**
+ * Número do ROF no BACEN.<br>Observação: Deve ser preenchido quando a cobertura cambial estiver acima de 360 dias ou quando o motivo selecionado no atributo \"motivoSemCobertura\" admitir a utilização do ROF.<br>Tamanho mínimo: 1<br>Tamanho máximo: 8
+ *
+ * @return numeroROF
+ **/
+ @JsonProperty("numeroROF")
+ public String getNumeroROF() {
+ return numeroROF;
+ }
+
+ public void setNumeroROF(String numeroROF) {
+ this.numeroROF = numeroROF;
+ }
+
+ public DadosCambiaisCover numeroROF(String numeroROF) {
+ this.numeroROF = numeroROF;
+ return this;
+ }
+
+ /**
+ * Get instituicaoFinanciadora
+ *
+ * @return instituicaoFinanciadora
+ **/
+ @JsonProperty("instituicaoFinanciadora")
+ public InstituicaoFinanciadoraCover getInstituicaoFinanciadora() {
+ return instituicaoFinanciadora;
+ }
+
+ public void setInstituicaoFinanciadora(InstituicaoFinanciadoraCover instituicaoFinanciadora) {
+ this.instituicaoFinanciadora = instituicaoFinanciadora;
+ }
+
+ public DadosCambiaisCover instituicaoFinanciadora(InstituicaoFinanciadoraCover instituicaoFinanciadora) {
+ this.instituicaoFinanciadora = instituicaoFinanciadora;
+ return this;
+ }
+
+ /**
+ * Valor da cobertura cambial.<br>Tamanho: 13,2<br>Formato: Decimal, com até 2 casas decimais separadas por ponto.Observação: Deve ser preenchido quando a cobertura cambial estiver acima de 360 dias.
+ *
+ * @return valorCoberturaCambial
+ **/
+ @JsonProperty("valorCoberturaCambial")
+ public String getValorCoberturaCambial() {
+ return valorCoberturaCambial;
+ }
+
+ public void setValorCoberturaCambial(String valorCoberturaCambial) {
+ this.valorCoberturaCambial = valorCoberturaCambial;
+ }
+
+ public DadosCambiaisCover valorCoberturaCambial(String valorCoberturaCambial) {
+ this.valorCoberturaCambial = valorCoberturaCambial;
+ return this;
+ }
+
+ /**
+ * Get motivoSemCobertura
+ *
+ * @return motivoSemCobertura
+ **/
+ @JsonProperty("motivoSemCobertura")
+ public MotivoSemCoberturaCambialCover getMotivoSemCobertura() {
+ return motivoSemCobertura;
+ }
+
+ public void setMotivoSemCobertura(MotivoSemCoberturaCambialCover motivoSemCobertura) {
+ this.motivoSemCobertura = motivoSemCobertura;
+ }
+
+ public DadosCambiaisCover motivoSemCobertura(MotivoSemCoberturaCambialCover motivoSemCobertura) {
+ this.motivoSemCobertura = motivoSemCobertura;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class DadosCambiaisCover {\n" +
+ " coberturaCambial: " + toIndentedString(coberturaCambial) + "\n" +
+ " numeroROF: " + toIndentedString(numeroROF) + "\n" +
+ " instituicaoFinanciadora: " + toIndentedString(instituicaoFinanciadora) + "\n" +
+ " valorCoberturaCambial: " + toIndentedString(valorCoberturaCambial) + "\n" +
+ " motivoSemCobertura: " + toIndentedString(motivoSemCobertura) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/DenominacaoAcrescimoDeducaoCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/DenominacaoAcrescimoDeducaoCover.java
new file mode 100644
index 0000000..c940d30
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/DenominacaoAcrescimoDeducaoCover.java
@@ -0,0 +1,72 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "DenominacaoAcrescimoDeducaoCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "DenominacaoAcrescimoDeducaoCover")
+/**
+ * Denominação do acréscimo ou da dedução escolhida.
+ **/
+@ApiModel(description = "Denominação do acréscimo ou da dedução escolhida.")
+public class DenominacaoAcrescimoDeducaoCover {
+
+ @XmlElement(name = "codigo")
+ @ApiModelProperty(example = "1", value = "Código do acréscimo ou da dedução escolhida.
Domínio: Tabela de Acréscimos/Deduções do Siscomex
Valor mínimo: 1
Valor máximo: 99Origem: Sistema Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/")
+ /**
+ * Código do acréscimo ou da dedução escolhida.
Domínio: Tabela de Acréscimos/Deduções do Siscomex
Valor mínimo: 1
Valor máximo: 99Origem: Sistema Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
+ **/
+ private String codigo = null;
+
+ /**
+ * Código do acréscimo ou da dedução escolhida.<br>Domínio: Tabela de Acréscimos/Deduções do Siscomex<br>Valor mínimo: 1<br>Valor máximo: 99Origem: Sistema Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ public String getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(String codigo) {
+ this.codigo = codigo;
+ }
+
+ public DenominacaoAcrescimoDeducaoCover codigo(String codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class DenominacaoAcrescimoDeducaoCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/DuimpApiMessageCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/DuimpApiMessageCover.java
new file mode 100644
index 0000000..d62c33d
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/DuimpApiMessageCover.java
@@ -0,0 +1,121 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "DuimpApiMessageCover", propOrder =
+ {"code", "field", "message"
+ })
+
+@XmlRootElement(name = "DuimpApiMessageCover")
+public class DuimpApiMessageCover {
+
+ @XmlElement(name = "code")
+ @ApiModelProperty(example = "DIMP-ER9999", value = "Código interno da mensagem de erro.")
+ /**
+ * Código interno da mensagem de erro.
+ **/
+ private String code = null;
+
+ @XmlElement(name = "field")
+ @ApiModelProperty(example = "numero", value = "Nome do campo que contém o valor inválido.
Atributo opcional: Só será devolvido caso o erro tenha sido provocado por um atributo inválido")
+ /**
+ * Nome do campo que contém o valor inválido.
Atributo opcional: Só será devolvido caso o erro tenha sido provocado por um atributo inválido
+ **/
+ private String field = null;
+
+ @XmlElement(name = "message")
+ @ApiModelProperty(example = "Mensagem de negócio detalhando o código de erro informado no atributo 'code'.", value = "Mensagem de erro.")
+ /**
+ * Mensagem de erro.
+ **/
+ private String message = null;
+
+ /**
+ * Código interno da mensagem de erro.
+ *
+ * @return code
+ **/
+ @JsonProperty("code")
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public DuimpApiMessageCover code(String code) {
+ this.code = code;
+ return this;
+ }
+
+ /**
+ * Nome do campo que contém o valor inválido. <br> Atributo opcional: Só será devolvido caso o erro tenha sido provocado por um atributo inválido
+ *
+ * @return field
+ **/
+ @JsonProperty("field")
+ public String getField() {
+ return field;
+ }
+
+ public void setField(String field) {
+ this.field = field;
+ }
+
+ public DuimpApiMessageCover field(String field) {
+ this.field = field;
+ return this;
+ }
+
+ /**
+ * Mensagem de erro.
+ *
+ * @return message
+ **/
+ @JsonProperty("message")
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public DuimpApiMessageCover message(String message) {
+ this.message = message;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class DuimpApiMessageCover {\n" +
+ " code: " + toIndentedString(code) + "\n" +
+ " field: " + toIndentedString(field) + "\n" +
+ " message: " + toIndentedString(message) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/DuimpItemBalancaComercialCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/DuimpItemBalancaComercialCover.java
new file mode 100644
index 0000000..eaf507d
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/DuimpItemBalancaComercialCover.java
@@ -0,0 +1,407 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import java.util.List;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "DuimpItemBalancaComercialCover", propOrder =
+ {"identificacao", "produto", "caracterizacaoImportacao", "indicadorExportadorFabricante", "fabricante", "exportador", "indicadorCompradorVendedor", "mercadoria", "condicaoVenda", "lpcos", "dadosCambiais", "atributosDuimp", "atributosFundamentoLegalDuimp", "tributos"
+ })
+
+@XmlRootElement(name = "DuimpItemBalancaComercialCover")
+public class DuimpItemBalancaComercialCover {
+
+ @XmlElement(name = "identificacao")
+ @ApiModelProperty(value = "")
+ @Valid
+ private IdentificadorItemDuimpCover identificacao = null;
+
+ @XmlElement(name = "produto")
+ @ApiModelProperty(value = "")
+ @Valid
+ private ProdutoConsultaItemCover produto = null;
+
+ @XmlElement(name = "caracterizacaoImportacao")
+ @ApiModelProperty(value = "")
+ @Valid
+ private CaracterizacaoImportacaoConsultaItemCover caracterizacaoImportacao = null;
+
+ @XmlElement(name = "indicadorExportadorFabricante")
+ @ApiModelProperty(value = "")
+ @Valid
+ private IndicadorExportadorFabricanteCover indicadorExportadorFabricante = null;
+
+ @XmlElement(name = "fabricante")
+ @ApiModelProperty(value = "")
+ @Valid
+ private FabricanteCover fabricante = null;
+
+ @XmlElement(name = "exportador")
+ @ApiModelProperty(value = "")
+ @Valid
+ private ExportadorCover exportador = null;
+
+ @XmlElement(name = "indicadorCompradorVendedor")
+ @ApiModelProperty(value = "")
+ @Valid
+ private IndicadorCompradorVendedorCover indicadorCompradorVendedor = null;
+
+ @XmlElement(name = "mercadoria")
+ @ApiModelProperty(value = "")
+ @Valid
+ private MercadoriaCover mercadoria = null;
+
+ @XmlElement(name = "condicaoVenda")
+ @ApiModelProperty(value = "")
+ @Valid
+ private CondicaoVendaConsultaItemCover condicaoVenda = null;
+
+ @XmlElement(name = "lpcos")
+ @ApiModelProperty(value = "")
+ @Valid
+ private List
Origem: Sistema Catálogo de Produtos - https://api-docs.portalunico.siscomex.gov.br/
Observação: Quando o atributo \"exportadorIndicadorFabricante\" for preenchido com o valor \"EXPORTADOR_IGUAL_FABRICANTE\", os valores informados neste grupo devem ser idênticos aos valores informados no grupo \"Fabricante\".
+ **/
+@ApiModel(description = "Dados de Operador Estrangeiro.
Origem: Sistema Catálogo de Produtos - https://api-docs.portalunico.siscomex.gov.br/
Observação: Quando o atributo \"exportadorIndicadorFabricante\" for preenchido com o valor \"EXPORTADOR_IGUAL_FABRICANTE\", os valores informados neste grupo devem ser idênticos aos valores informados no grupo \"Fabricante\".")
+public class ExportadorCover {
+
+ @XmlElement(name = "codigo", required = true)
+ @ApiModelProperty(example = "CN001", required = true, value = "Código do exportador estrangeiro.
Tamanho mínimo: 1
Tamanho máximo: 35")
+ /**
+ * Código do exportador estrangeiro.
Tamanho mínimo: 1
Tamanho máximo: 35
+ **/
+ private String codigo = null;
+
+ @XmlElement(name = "versao", required = true)
+ @ApiModelProperty(example = "1", required = true, value = "Versão do exportador.
Tamanho mínimo: 0
Tamanho máximo: 6")
+ /**
+ * Versão do exportador.
Tamanho mínimo: 0
Tamanho máximo: 6
+ **/
+ private String versao = null;
+
+ @XmlElement(name = "niOperador", required = true)
+ @ApiModelProperty(example = "00000000", required = true, value = "
Número de Identificação:
Caso seja CNPJ (Raiz):
Tamanho: 8
Formato: 'NNNNNNNN'
Caso seja CPF:
Tamanho: 11
Formato: 'NNNNNNNNNNN'")
+ /**
+ *
Número de Identificação:
Caso seja CNPJ (Raiz):
Tamanho: 8
Formato: 'NNNNNNNN'
Caso seja CPF:
Tamanho: 11
Formato: 'NNNNNNNNNNN'
+ **/
+ private String niOperador = null;
+
+ @XmlElement(name = "pais", required = true)
+ @ApiModelProperty(required = true, value = "")
+ @Valid
+ private PaisExportadorCover pais = null;
+
+ /**
+ * Código do exportador estrangeiro.<br>Tamanho mínimo: 1<br>Tamanho máximo: 35
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ @NotNull
+ public String getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(String codigo) {
+ this.codigo = codigo;
+ }
+
+ public ExportadorCover codigo(String codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+ /**
+ * Versão do exportador.<br>Tamanho mínimo: 0<br>Tamanho máximo: 6
+ *
+ * @return versao
+ **/
+ @JsonProperty("versao")
+ @NotNull
+ public String getVersao() {
+ return versao;
+ }
+
+ public void setVersao(String versao) {
+ this.versao = versao;
+ }
+
+ public ExportadorCover versao(String versao) {
+ this.versao = versao;
+ return this;
+ }
+
+ /**
+ * <br>Número de Identificação: <br>Caso seja CNPJ (Raiz): <br>Tamanho: 8<br>Formato: 'NNNNNNNN'<br>Caso seja CPF: <br>Tamanho: 11<br>Formato: 'NNNNNNNNNNN'
+ *
+ * @return niOperador
+ **/
+ @JsonProperty("niOperador")
+ @NotNull
+ public String getNiOperador() {
+ return niOperador;
+ }
+
+ public void setNiOperador(String niOperador) {
+ this.niOperador = niOperador;
+ }
+
+ public ExportadorCover niOperador(String niOperador) {
+ this.niOperador = niOperador;
+ return this;
+ }
+
+ /**
+ * Get pais
+ *
+ * @return pais
+ **/
+ @JsonProperty("pais")
+ @NotNull
+ public PaisExportadorCover getPais() {
+ return pais;
+ }
+
+ public void setPais(PaisExportadorCover pais) {
+ this.pais = pais;
+ }
+
+ public ExportadorCover pais(PaisExportadorCover pais) {
+ this.pais = pais;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class ExportadorCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ " versao: " + toIndentedString(versao) + "\n" +
+ " niOperador: " + toIndentedString(niOperador) + "\n" +
+ " pais: " + toIndentedString(pais) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/FabricanteCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/FabricanteCover.java
new file mode 100644
index 0000000..104ff37
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/FabricanteCover.java
@@ -0,0 +1,152 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "FabricanteCover", propOrder =
+ {"codigo", "versao", "niOperador", "pais"
+ })
+
+@XmlRootElement(name = "FabricanteCover")
+/**
+ * Dados do Fabricante/Produtor
Origem: Sistema Catálogo de Produtos - https://api-docs.portalunico.siscomex.gov.br/
+ **/
+@ApiModel(description = "Dados do Fabricante/Produtor
Origem: Sistema Catálogo de Produtos - https://api-docs.portalunico.siscomex.gov.br/")
+public class FabricanteCover {
+
+ @XmlElement(name = "codigo")
+ @ApiModelProperty(example = "2104", value = "Código do Fabricante.
Tamanho mínimo: 1
Tamanho máximo: 35
Observação: Quando o país de origem for \"BR\", este atributo deverá ser preenchido com o CNPJ ou CPF do Fabricante. Quando o país de origem for diferente de \"BR\", deverá ser utilizado o código do exportador estrangeiro.")
+ /**
+ * Código do Fabricante.
Tamanho mínimo: 1
Tamanho máximo: 35
Observação: Quando o país de origem for \"BR\", este atributo deverá ser preenchido com o CNPJ ou CPF do Fabricante. Quando o país de origem for diferente de \"BR\", deverá ser utilizado o código do exportador estrangeiro.
+ **/
+ private String codigo = null;
+
+ @XmlElement(name = "versao")
+ @ApiModelProperty(example = "1", value = "Versão do fabricante.
Tamanho mínimo: 0
Tamanho máximo: 6")
+ /**
+ * Versão do fabricante.
Tamanho mínimo: 0
Tamanho máximo: 6
+ **/
+ private String versao = null;
+
+ @XmlElement(name = "niOperador")
+ @ApiModelProperty(example = "00000000", value = "
Número de Identificação:
Caso seja CNPJ (Raiz):
Tamanho: 8
Formato: 'NNNNNNNN'
Caso seja CPF:
Tamanho: 11
Formato: 'NNNNNNNNNNN'")
+ /**
+ *
Número de Identificação:
Caso seja CNPJ (Raiz):
Tamanho: 8
Formato: 'NNNNNNNN'
Caso seja CPF:
Tamanho: 11
Formato: 'NNNNNNNNNNN'
+ **/
+ private String niOperador = null;
+
+ @XmlElement(name = "pais")
+ @ApiModelProperty(value = "")
+ @Valid
+ private PaisFabricanteCover pais = null;
+
+ /**
+ * Código do Fabricante.<br>Tamanho mínimo: 1<br>Tamanho máximo: 35<br>Observação: Quando o país de origem for \"BR\", este atributo deverá ser preenchido com o CNPJ ou CPF do Fabricante. Quando o país de origem for diferente de \"BR\", deverá ser utilizado o código do exportador estrangeiro.
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ public String getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(String codigo) {
+ this.codigo = codigo;
+ }
+
+ public FabricanteCover codigo(String codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+ /**
+ * Versão do fabricante.<br>Tamanho mínimo: 0<br>Tamanho máximo: 6
+ *
+ * @return versao
+ **/
+ @JsonProperty("versao")
+ public String getVersao() {
+ return versao;
+ }
+
+ public void setVersao(String versao) {
+ this.versao = versao;
+ }
+
+ public FabricanteCover versao(String versao) {
+ this.versao = versao;
+ return this;
+ }
+
+ /**
+ * <br>Número de Identificação: <br>Caso seja CNPJ (Raiz): <br>Tamanho: 8<br>Formato: 'NNNNNNNN'<br>Caso seja CPF: <br>Tamanho: 11<br>Formato: 'NNNNNNNNNNN'
+ *
+ * @return niOperador
+ **/
+ @JsonProperty("niOperador")
+ public String getNiOperador() {
+ return niOperador;
+ }
+
+ public void setNiOperador(String niOperador) {
+ this.niOperador = niOperador;
+ }
+
+ public FabricanteCover niOperador(String niOperador) {
+ this.niOperador = niOperador;
+ return this;
+ }
+
+ /**
+ * Get pais
+ *
+ * @return pais
+ **/
+ @JsonProperty("pais")
+ public PaisFabricanteCover getPais() {
+ return pais;
+ }
+
+ public void setPais(PaisFabricanteCover pais) {
+ this.pais = pais;
+ }
+
+ public FabricanteCover pais(PaisFabricanteCover pais) {
+ this.pais = pais;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class FabricanteCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ " versao: " + toIndentedString(versao) + "\n" +
+ " niOperador: " + toIndentedString(niOperador) + "\n" +
+ " pais: " + toIndentedString(pais) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/FreteConsultaItemCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/FreteConsultaItemCover.java
new file mode 100644
index 0000000..9442d14
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/FreteConsultaItemCover.java
@@ -0,0 +1,72 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "FreteConsultaItemCover", propOrder =
+ {"valorBRL"
+ })
+
+@XmlRootElement(name = "FreteConsultaItemCover")
+/**
+ * Valor do frete.
+ **/
+@ApiModel(description = "Valor do frete.")
+public class FreteConsultaItemCover {
+
+ @XmlElement(name = "valorBRL")
+ @ApiModelProperty(example = "12.4", value = "Valor do frete total em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ /**
+ * Valor do frete total em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private String valorBRL = null;
+
+ /**
+ * Valor do frete total em R$ (Reais).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return valorBRL
+ **/
+ @JsonProperty("valorBRL")
+ public String getValorBRL() {
+ return valorBRL;
+ }
+
+ public void setValorBRL(String valorBRL) {
+ this.valorBRL = valorBRL;
+ }
+
+ public FreteConsultaItemCover valorBRL(String valorBRL) {
+ this.valorBRL = valorBRL;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class FreteConsultaItemCover {\n" +
+ " valorBRL: " + toIndentedString(valorBRL) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/FundamentoCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/FundamentoCover.java
new file mode 100644
index 0000000..ed8618f
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/FundamentoCover.java
@@ -0,0 +1,74 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "FundamentoCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "FundamentoCover")
+/**
+ * Fundamento legal do regime tributário de importação.
+ **/
+@ApiModel(description = "Fundamento legal do regime tributário de importação.")
+public class FundamentoCover {
+
+ @XmlElement(name = "codigo", required = true)
+ @ApiModelProperty(example = "1001", required = true, value = "Código do fundamento legal do regime tributário de importação utilizado na declaração.
Dominio: Fundamentos legais existentes no sistema Tratamento Tributário.")
+ /**
+ * Código do fundamento legal do regime tributário de importação utilizado na declaração.
Dominio: Fundamentos legais existentes no sistema Tratamento Tributário.
+ **/
+ private String codigo = null;
+
+ /**
+ * Código do fundamento legal do regime tributário de importação utilizado na declaração.<br>Dominio: Fundamentos legais existentes no sistema Tratamento Tributário.
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ @NotNull
+ public String getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(String codigo) {
+ this.codigo = codigo;
+ }
+
+ public FundamentoCover codigo(String codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class FundamentoCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/IdentificacaoDuimpRespostaApi.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/IdentificacaoDuimpRespostaApi.java
new file mode 100644
index 0000000..cc5ea52
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/IdentificacaoDuimpRespostaApi.java
@@ -0,0 +1,99 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "IdentificacaoDuimpRespostaApi", propOrder =
+ {"numero", "versao"
+ })
+
+@XmlRootElement(name = "IdentificacaoDuimpRespostaApi")
+/**
+ * Dados da identificação da Duimp criada, retificada ou atualizada.
Atributos devolvidos apenas na resposta aos métodos POST e PUT.
+ **/
+@ApiModel(description = "Dados da identificação da Duimp criada, retificada ou atualizada.
Atributos devolvidos apenas na resposta aos métodos POST e PUT.")
+public class IdentificacaoDuimpRespostaApi {
+
+ @XmlElement(name = "numero")
+ @ApiModelProperty(example = "20BR00000012345", value = "Número da Duimp.
Tamanho: 15
Formato: 'AABRSSSSSSSSSSD'
Lei de formação. O número da Duimp é composto por:
* AA = Corresponde ao ano do registro da Declaração.
* BR = Corresponde à sigla do país de emissão do documento (BR).
* SSSSSSSSSS = 10 caracteres numéricos. Número sequencial da Duimp dentro do ano.
* D = 1 caracter numérico. DV para todos os demais caracteres numéricos (Módulo 11)")
+ /**
+ * Número da Duimp.
Tamanho: 15
Formato: 'AABRSSSSSSSSSSD'
Lei de formação. O número da Duimp é composto por:
* AA = Corresponde ao ano do registro da Declaração.
* BR = Corresponde à sigla do país de emissão do documento (BR).
* SSSSSSSSSS = 10 caracteres numéricos. Número sequencial da Duimp dentro do ano.
* D = 1 caracter numérico. DV para todos os demais caracteres numéricos (Módulo 11)
+ **/
+ private String numero = null;
+
+ @XmlElement(name = "versao")
+ @ApiModelProperty(example = "1", value = "Versão da Duimp.
Valor mínimo: 0
Valor máximo: 9999")
+ /**
+ * Versão da Duimp.
Valor mínimo: 0
Valor máximo: 9999
+ **/
+ private String versao = null;
+
+ /**
+ * Número da Duimp.<br>Tamanho: 15<br>Formato: 'AABRSSSSSSSSSSD'<br>Lei de formação. O número da Duimp é composto por: <br>* AA = Corresponde ao ano do registro da Declaração. <br>* BR = Corresponde à sigla do país de emissão do documento (BR).<br>* SSSSSSSSSS = 10 caracteres numéricos. Número sequencial da Duimp dentro do ano.<br>* D = 1 caracter numérico. DV para todos os demais caracteres numéricos (Módulo 11)
+ *
+ * @return numero
+ **/
+ @JsonProperty("numero")
+ public String getNumero() {
+ return numero;
+ }
+
+ public void setNumero(String numero) {
+ this.numero = numero;
+ }
+
+ public IdentificacaoDuimpRespostaApi numero(String numero) {
+ this.numero = numero;
+ return this;
+ }
+
+ /**
+ * Versão da Duimp.<br>Valor mínimo: 0<br>Valor máximo: 9999
+ *
+ * @return versao
+ **/
+ @JsonProperty("versao")
+ public String getVersao() {
+ return versao;
+ }
+
+ public void setVersao(String versao) {
+ this.versao = versao;
+ }
+
+ public IdentificacaoDuimpRespostaApi versao(String versao) {
+ this.versao = versao;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class IdentificacaoDuimpRespostaApi {\n" +
+ " numero: " + toIndentedString(numero) + "\n" +
+ " versao: " + toIndentedString(versao) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/IdentificadorItemDuimpCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/IdentificadorItemDuimpCover.java
new file mode 100644
index 0000000..3b98e79
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/IdentificadorItemDuimpCover.java
@@ -0,0 +1,126 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "IdentificadorItemDuimpCover", propOrder =
+ {"numero", "versao", "numeroItem"
+ })
+
+@XmlRootElement(name = "IdentificadorItemDuimpCover")
+/**
+ * Dados da identificação da declaração única de importação.
+ **/
+@ApiModel(description = "Dados da identificação da declaração única de importação.")
+public class IdentificadorItemDuimpCover {
+
+ @XmlElement(name = "numero")
+ @ApiModelProperty(example = "19BR00000004677", value = "Número da Duimp.
Tamanho: 15
Formato: 'AABRSSSSSSSSSSD'
Lei de formação. O número da Duimp é composto por:
* AA = Corresponde ao ano do registro da Declaração.
* BR = Corresponde à sigla do país de emissão do documento (BR).
* SSSSSSSSSS = 10 caracteres numéricos. Número sequencial da Duimp dentro do ano.
* D = 1 caracter numérico. DV para todos os demais caracteres numéricos (Módulo 11)")
+ /**
+ * Número da Duimp.
Tamanho: 15
Formato: 'AABRSSSSSSSSSSD'
Lei de formação. O número da Duimp é composto por:
* AA = Corresponde ao ano do registro da Declaração.
* BR = Corresponde à sigla do país de emissão do documento (BR).
* SSSSSSSSSS = 10 caracteres numéricos. Número sequencial da Duimp dentro do ano.
* D = 1 caracter numérico. DV para todos os demais caracteres numéricos (Módulo 11)
+ **/
+ private String numero = null;
+
+ @XmlElement(name = "versao")
+ @ApiModelProperty(example = "1", value = "Versão da Duimp.
Valor mínimo: 0
Valor máximo: 9999")
+ /**
+ * Versão da Duimp.
Valor mínimo: 0
Valor máximo: 9999
+ **/
+ private Integer versao = null;
+
+ @XmlElement(name = "numeroItem")
+ @ApiModelProperty(example = "1", value = "Número do item da Duimp.
Formato: Inteiro, com até 5 dígitos")
+ /**
+ * Número do item da Duimp.
Formato: Inteiro, com até 5 dígitos
+ **/
+ private Integer numeroItem = null;
+
+ /**
+ * Número da Duimp.<br>Tamanho: 15<br>Formato: 'AABRSSSSSSSSSSD'<br>Lei de formação. O número da Duimp é composto por: <br>* AA = Corresponde ao ano do registro da Declaração. <br>* BR = Corresponde à sigla do país de emissão do documento (BR).<br>* SSSSSSSSSS = 10 caracteres numéricos. Número sequencial da Duimp dentro do ano.<br>* D = 1 caracter numérico. DV para todos os demais caracteres numéricos (Módulo 11)
+ *
+ * @return numero
+ **/
+ @JsonProperty("numero")
+ public String getNumero() {
+ return numero;
+ }
+
+ public void setNumero(String numero) {
+ this.numero = numero;
+ }
+
+ public IdentificadorItemDuimpCover numero(String numero) {
+ this.numero = numero;
+ return this;
+ }
+
+ /**
+ * Versão da Duimp.<br>Valor mínimo: 0<br>Valor máximo: 9999
+ *
+ * @return versao
+ **/
+ @JsonProperty("versao")
+ public Integer getVersao() {
+ return versao;
+ }
+
+ public void setVersao(Integer versao) {
+ this.versao = versao;
+ }
+
+ public IdentificadorItemDuimpCover versao(Integer versao) {
+ this.versao = versao;
+ return this;
+ }
+
+ /**
+ * Número do item da Duimp.<br>Formato: Inteiro, com até 5 dígitos
+ *
+ * @return numeroItem
+ **/
+ @JsonProperty("numeroItem")
+ public Integer getNumeroItem() {
+ return numeroItem;
+ }
+
+ public void setNumeroItem(Integer numeroItem) {
+ this.numeroItem = numeroItem;
+ }
+
+ public IdentificadorItemDuimpCover numeroItem(Integer numeroItem) {
+ this.numeroItem = numeroItem;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class IdentificadorItemDuimpCover {\n" +
+ " numero: " + toIndentedString(numero) + "\n" +
+ " versao: " + toIndentedString(versao) + "\n" +
+ " numeroItem: " + toIndentedString(numeroItem) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/IncotermCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/IncotermCover.java
new file mode 100644
index 0000000..ad3bb1c
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/IncotermCover.java
@@ -0,0 +1,99 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "IncotermCover", propOrder =
+ {"codigo", "complemento"
+ })
+
+@XmlRootElement(name = "IncotermCover")
+/**
+ * Condição de Venda
Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
Observação: Este grupo só deve ser preenchido quando o atributo \"código do método de valoração\" for preenchido com o valor '1'.
+ **/
+@ApiModel(description = "Condição de Venda
Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
Observação: Este grupo só deve ser preenchido quando o atributo \"código do método de valoração\" for preenchido com o valor '1'.")
+public class IncotermCover {
+
+ @XmlElement(name = "codigo")
+ @ApiModelProperty(example = "FOB", value = "Código da Condição de Venda (Código INCOTERM).
Tamanho: 3
Domínio: EXW, FAS, FCA, FOB, OCV, C+F, CFR, CPT, C+I, DAT, CIF, CIP, DAP")
+ /**
+ * Código da Condição de Venda (Código INCOTERM).
Tamanho: 3
Domínio: EXW, FAS, FCA, FOB, OCV, C+F, CFR, CPT, C+I, DAT, CIF, CIP, DAP
+ **/
+ private String codigo = null;
+
+ @XmlElement(name = "complemento")
+ @ApiModelProperty(example = "1", value = "Descrição complementar da condição de venda.
Tamanho mínimo: 0
Tamanho máximo: 250")
+ /**
+ * Descrição complementar da condição de venda.
Tamanho mínimo: 0
Tamanho máximo: 250
+ **/
+ private String complemento = null;
+
+ /**
+ * Código da Condição de Venda (Código INCOTERM).<br>Tamanho: 3<br>Domínio: EXW, FAS, FCA, FOB, OCV, C+F, CFR, CPT, C+I, DAT, CIF, CIP, DAP
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ public String getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(String codigo) {
+ this.codigo = codigo;
+ }
+
+ public IncotermCover codigo(String codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+ /**
+ * Descrição complementar da condição de venda.<br>Tamanho mínimo: 0<br>Tamanho máximo: 250
+ *
+ * @return complemento
+ **/
+ @JsonProperty("complemento")
+ public String getComplemento() {
+ return complemento;
+ }
+
+ public void setComplemento(String complemento) {
+ this.complemento = complemento;
+ }
+
+ public IncotermCover complemento(String complemento) {
+ this.complemento = complemento;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class IncotermCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ " complemento: " + toIndentedString(complemento) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/IndicadorCompradorVendedorCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/IndicadorCompradorVendedorCover.java
new file mode 100644
index 0000000..ef46027
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/IndicadorCompradorVendedorCover.java
@@ -0,0 +1,122 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "IndicadorCompradorVendedorCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "IndicadorCompradorVendedorCover")
+/**
+ * Vinculação comprador x vendedor.
+ **/
+@ApiModel(description = "Vinculação comprador x vendedor.")
+public class IndicadorCompradorVendedorCover {
+
+
+ @XmlType(name = "CodigoEnum")
+ @XmlEnum(String.class)
+ public enum CodigoEnum {
+
+ @XmlEnumValue("NAO_HA_VINCULACAO")
+ @JsonProperty("NAO_HA_VINCULACAO")
+ NAO_HA_VINCULACAO("NAO_HA_VINCULACAO"),
+
+ @XmlEnumValue("VINCULACAO_SEM_INFLUENCIA_PRECO")
+ @JsonProperty("VINCULACAO_SEM_INFLUENCIA_PRECO")
+ VINCULACAO_SEM_INFLUENCIA_PRECO("VINCULACAO_SEM_INFLUENCIA_PRECO"),
+
+ @XmlEnumValue("VINCULACAO_COM_INFLUENCIA_PRECO")
+ @JsonProperty("VINCULACAO_COM_INFLUENCIA_PRECO")
+ VINCULACAO_COM_INFLUENCIA_PRECO("VINCULACAO_COM_INFLUENCIA_PRECO");
+
+
+ private final String value;
+
+ CodigoEnum(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static CodigoEnum fromValue(String v) {
+ for (CodigoEnum b : CodigoEnum.values()) {
+ if (String.valueOf(b.value).equals(v)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + v + "' to CodigoEnum");
+ }
+ }
+
+ @XmlElement(name = "codigo", required = true)
+ @ApiModelProperty(example = "NAO_HA_VINCULACAO", required = true, value = "Tipo de vinculação 'comprador x vendedor' ou 'comprador/encomendante x vendedor'.
Domínio:")
+ /**
+ * Tipo de vinculação 'comprador x vendedor' ou 'comprador/encomendante x vendedor'.
Domínio:
+ **/
+ private CodigoEnum codigo = null;
+
+ /**
+ * Tipo de vinculação 'comprador x vendedor' ou 'comprador/encomendante x vendedor'.<br>Domínio:
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ @NotNull
+ public String getCodigo() {
+ if (codigo == null) {
+ return null;
+ }
+ return codigo.value();
+ }
+
+ public void setCodigo(CodigoEnum codigo) {
+ this.codigo = codigo;
+ }
+
+ public IndicadorCompradorVendedorCover codigo(CodigoEnum codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class IndicadorCompradorVendedorCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/IndicadorExportadorFabricanteCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/IndicadorExportadorFabricanteCover.java
new file mode 100644
index 0000000..551bee1
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/IndicadorExportadorFabricanteCover.java
@@ -0,0 +1,118 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "IndicadorExportadorFabricanteCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "IndicadorExportadorFabricanteCover")
+/**
+ * Relação exportador x fabricante.
+ **/
+@ApiModel(description = "Relação exportador x fabricante.")
+public class IndicadorExportadorFabricanteCover {
+
+
+ @XmlType(name = "CodigoEnum")
+ @XmlEnum(String.class)
+ public enum CodigoEnum {
+
+ @XmlEnumValue("EXPORTADOR_DIFERENTE_FABRICANTE")
+ @JsonProperty("EXPORTADOR_DIFERENTE_FABRICANTE")
+ DIFERENTE_FABRICANTE("EXPORTADOR_DIFERENTE_FABRICANTE"),
+
+ @XmlEnumValue("EXPORTADOR_IGUAL_FABRICANTE")
+ @JsonProperty("EXPORTADOR_IGUAL_FABRICANTE")
+ IGUAL_FABRICANTE("EXPORTADOR_IGUAL_FABRICANTE");
+
+
+ private final String value;
+
+ CodigoEnum(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static CodigoEnum fromValue(String v) {
+ for (CodigoEnum b : CodigoEnum.values()) {
+ if (String.valueOf(b.value).equals(v)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + v + "' to CodigoEnum");
+ }
+ }
+
+ @XmlElement(name = "codigo", required = true)
+ @ApiModelProperty(example = "EXPORTADOR_DIFERENTE_FABRICANTE", required = true, value = "Código da relação exportador x fabricante.
Domínio:")
+ /**
+ * Código da relação exportador x fabricante.
Domínio:
+ **/
+ private CodigoEnum codigo = null;
+
+ /**
+ * Código da relação exportador x fabricante.<br>Domínio:
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ @NotNull
+ public String getCodigo() {
+ if (codigo == null) {
+ return null;
+ }
+ return codigo.value();
+ }
+
+ public void setCodigo(CodigoEnum codigo) {
+ this.codigo = codigo;
+ }
+
+ public IndicadorExportadorFabricanteCover codigo(CodigoEnum codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class IndicadorExportadorFabricanteCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/InstituicaoFinanciadoraCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/InstituicaoFinanciadoraCover.java
new file mode 100644
index 0000000..fe5946c
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/InstituicaoFinanciadoraCover.java
@@ -0,0 +1,72 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "InstituicaoFinanciadoraCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "InstituicaoFinanciadoraCover")
+/**
+ * Instituição financiadora.
Observação: Deve ser preenchido quando a cobertura cambial estiver acima de 360 dias.
+ **/
+@ApiModel(description = "Instituição financiadora.
Observação: Deve ser preenchido quando a cobertura cambial estiver acima de 360 dias.")
+public class InstituicaoFinanciadoraCover {
+
+ @XmlElement(name = "codigo")
+ @ApiModelProperty(example = "99", value = "Código da instituição financiadora.
Origem : Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
Valor mínimo: 1
Valor máximo: 99")
+ /**
+ * Código da instituição financiadora.
Origem : Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
Valor mínimo: 1
Valor máximo: 99
+ **/
+ private String codigo = null;
+
+ /**
+ * Código da instituição financiadora.<br>Origem : Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/<br>Valor mínimo: 1<br>Valor máximo: 99
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ public String getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(String codigo) {
+ this.codigo = codigo;
+ }
+
+ public InstituicaoFinanciadoraCover codigo(String codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class InstituicaoFinanciadoraCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/LinkCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/LinkCover.java
new file mode 100644
index 0000000..65c6e45
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/LinkCover.java
@@ -0,0 +1,189 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "LinkCover", propOrder =
+ {"_rel", "_href", "_method"
+ })
+
+@XmlRootElement(name = "LinkCover")
+public class LinkCover {
+
+ @XmlElement(name = "_rel")
+ @ApiModelProperty(value = "Descrição de uma URL que provê um operação relacionada ao serviço utilizado.")
+ /**
+ * Descrição de uma URL que provê um operação relacionada ao serviço utilizado.
+ **/
+ private String _rel = null;
+
+ @XmlElement(name = "_href")
+ @ApiModelProperty(value = "URL que deve ser utilizada para acessar o serviço descrito no atributo '_rel'")
+ /**
+ * URL que deve ser utilizada para acessar o serviço descrito no atributo '_rel'
+ **/
+ private String _href = null;
+
+
+ @XmlType(name = "MethodEnum")
+ @XmlEnum(String.class)
+ public enum MethodEnum {
+
+ @XmlEnumValue("GET")
+ @JsonProperty("GET")
+ GET("GET"),
+
+ @XmlEnumValue("HEAD")
+ @JsonProperty("HEAD")
+ HEAD("HEAD"),
+
+ @XmlEnumValue("POST")
+ @JsonProperty("POST")
+ POST("POST"),
+
+ @XmlEnumValue("PUT")
+ @JsonProperty("PUT")
+ PUT("PUT"),
+
+ @XmlEnumValue("DELETE")
+ @JsonProperty("DELETE")
+ DELETE("DELETE"),
+
+ @XmlEnumValue("OPTIONS")
+ @JsonProperty("OPTIONS")
+ OPTIONS("OPTIONS"),
+
+ @XmlEnumValue("TRACE")
+ @JsonProperty("TRACE")
+ TRACE("TRACE"),
+
+ @XmlEnumValue("PATCH")
+ @JsonProperty("PATCH")
+ PATCH("PATCH");
+
+
+ private final String value;
+
+ MethodEnum(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static MethodEnum fromValue(String v) {
+ for (MethodEnum b : MethodEnum.values()) {
+ if (String.valueOf(b.value).equals(v)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + v + "' to MethodEnum");
+ }
+ }
+
+ @XmlElement(name = "_method")
+ @ApiModelProperty(value = "Método HTTP que deve ser utilizado para acessar o serviço")
+ /**
+ * Método HTTP que deve ser utilizado para acessar o serviço
+ **/
+ private MethodEnum _method = null;
+
+ /**
+ * Descrição de uma URL que provê um operação relacionada ao serviço utilizado.
+ *
+ * @return _rel
+ **/
+ @JsonProperty("_rel")
+ public String getRel() {
+ return _rel;
+ }
+
+ public void setRel(String _rel) {
+ this._rel = _rel;
+ }
+
+ public LinkCover _rel(String _rel) {
+ this._rel = _rel;
+ return this;
+ }
+
+ /**
+ * URL que deve ser utilizada para acessar o serviço descrito no atributo '_rel'
+ *
+ * @return _href
+ **/
+ @JsonProperty("_href")
+ public String getHref() {
+ return _href;
+ }
+
+ public void setHref(String _href) {
+ this._href = _href;
+ }
+
+ public LinkCover _href(String _href) {
+ this._href = _href;
+ return this;
+ }
+
+ /**
+ * Método HTTP que deve ser utilizado para acessar o serviço
+ *
+ * @return _method
+ **/
+ @JsonProperty("_method")
+ public String getMethod() {
+ if (_method == null) {
+ return null;
+ }
+ return _method.value();
+ }
+
+ public void setMethod(MethodEnum _method) {
+ this._method = _method;
+ }
+
+ public LinkCover _method(MethodEnum _method) {
+ this._method = _method;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class LinkCover {\n" +
+ " _rel: " + toIndentedString(_rel) + "\n" +
+ " _href: " + toIndentedString(_href) + "\n" +
+ " _method: " + toIndentedString(_method) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/LpcoCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/LpcoCover.java
new file mode 100644
index 0000000..1250ad8
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/LpcoCover.java
@@ -0,0 +1,72 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "LpcoCover", propOrder =
+ {"numero"
+ })
+
+@XmlRootElement(name = "LpcoCover")
+/**
+ * Lista de documentos LPCO (Licenças, Permissões, Certificados e Outros) necessários para operações de comércio exterior.
Origem: Sistema Tratamento Administrativo e LPCO - https://api-docs.portalunico.siscomex.gov.br/
+ **/
+@ApiModel(description = "Lista de documentos LPCO (Licenças, Permissões, Certificados e Outros) necessários para operações de comércio exterior.
Origem: Sistema Tratamento Administrativo e LPCO - https://api-docs.portalunico.siscomex.gov.br/")
+public class LpcoCover {
+
+ @XmlElement(name = "numero")
+ @ApiModelProperty(example = "I2000000063", value = "Número do um LPCO.
Tamanho: 11
Formato: 'OAANNNNNNNN'
Lei de formação. O número do LPCO é composto por:
* O = Operação (E para exportação, I para importação).
* AA = Ano do registro do LPCO.
* NNNNNNNN = 8 caracteres númericos. Número sequencial do LPCO no ano.")
+ /**
+ * Número do um LPCO.
Tamanho: 11
Formato: 'OAANNNNNNNN'
Lei de formação. O número do LPCO é composto por:
* O = Operação (E para exportação, I para importação).
* AA = Ano do registro do LPCO.
* NNNNNNNN = 8 caracteres númericos. Número sequencial do LPCO no ano.
+ **/
+ private String numero = null;
+
+ /**
+ * Número do um LPCO.<br>Tamanho: 11<br>Formato: 'OAANNNNNNNN'<br>Lei de formação. O número do LPCO é composto por: <br>* O = Operação (E para exportação, I para importação).<br>* AA = Ano do registro do LPCO.<br>* NNNNNNNN = 8 caracteres númericos. Número sequencial do LPCO no ano.
+ *
+ * @return numero
+ **/
+ @JsonProperty("numero")
+ public String getNumero() {
+ return numero;
+ }
+
+ public void setNumero(String numero) {
+ this.numero = numero;
+ }
+
+ public LpcoCover numero(String numero) {
+ this.numero = numero;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class LpcoCover {\n" +
+ " numero: " + toIndentedString(numero) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/MemoriaCalculoItemCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/MemoriaCalculoItemCover.java
new file mode 100644
index 0000000..170c019
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/MemoriaCalculoItemCover.java
@@ -0,0 +1,452 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import java.math.BigDecimal;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "MemoriaCalculoItemCover", propOrder =
+ {"codigoFundamentoLegalNormal", "baseCalculoBRL", "baseCalculoEspecificaBRL", "baseCalculoReduzidaBRL", "percentualReducaoBaseCalculo", "tipoAliquota", "percentualReducaoAliquotaReduzida", "valorAliquota", "valorAliquotaEspecifica", "valorAliquotaReduzida", "normal", "tributado", "percentualPagamento"
+ })
+
+@XmlRootElement(name = "MemoriaCalculoItemCover")
+/**
+ * Memória de cálculo por tipo de imposto.
+ **/
+@ApiModel(description = "Memória de cálculo por tipo de imposto.")
+public class MemoriaCalculoItemCover {
+
+ @XmlElement(name = "codigoFundamentoLegalNormal")
+ @ApiModelProperty(example = "1001", value = "Código do fundamento legal do regime tributário de importação utilizado na declaração.
Domínio: Fundamentos legais existentes no sistema Tratamento Tributário.")
+ /**
+ * Código do fundamento legal do regime tributário de importação utilizado na declaração.
Domínio: Fundamentos legais existentes no sistema Tratamento Tributário.
+ **/
+ private Long codigoFundamentoLegalNormal = null;
+
+ @XmlElement(name = "baseCalculoBRL")
+ @ApiModelProperty(example = "4567.8", value = "Valor da base de cálculo em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ @Valid
+ /**
+ * Valor da base de cálculo em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private BigDecimal baseCalculoBRL = null;
+
+ @XmlElement(name = "baseCalculoEspecificaBRL")
+ @ApiModelProperty(example = "4567.8", value = "Valor da base de cálculo específica em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ @Valid
+ /**
+ * Valor da base de cálculo específica em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private BigDecimal baseCalculoEspecificaBRL = null;
+
+ @XmlElement(name = "baseCalculoReduzidaBRL")
+ @ApiModelProperty(example = "4567.8", value = "Valor da base de cálculo reduzida em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ @Valid
+ /**
+ * Valor da base de cálculo reduzida em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private BigDecimal baseCalculoReduzidaBRL = null;
+
+ @XmlElement(name = "percentualReducaoBaseCalculo")
+ @ApiModelProperty(example = "4567.8", value = "Percentual de redução da base de cálculo.
Tamanho: 16,5
Formato: Decimal, com até 5 casas decimais separadas por ponto.")
+ @Valid
+ /**
+ * Percentual de redução da base de cálculo.
Tamanho: 16,5
Formato: Decimal, com até 5 casas decimais separadas por ponto.
+ **/
+ private BigDecimal percentualReducaoBaseCalculo = null;
+
+
+ @XmlType(name = "TipoAliquotaEnum")
+ @XmlEnum(String.class)
+ public enum TipoAliquotaEnum {
+
+ @XmlEnumValue("AD_VALOREM")
+ @JsonProperty("AD_VALOREM")
+ AD_VALOREM("AD_VALOREM"),
+
+ @XmlEnumValue("ESPECIFICA")
+ @JsonProperty("ESPECIFICA")
+ ESPECIFICA("ESPECIFICA");
+
+
+ private final String value;
+
+ TipoAliquotaEnum(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static TipoAliquotaEnum fromValue(String v) {
+ for (TipoAliquotaEnum b : TipoAliquotaEnum.values()) {
+ if (String.valueOf(b.value).equals(v)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + v + "' to TipoAliquotaEnum");
+ }
+ }
+
+ @XmlElement(name = "tipoAliquota")
+ @ApiModelProperty(example = "AD_VALOREM", value = "Tipo de alíquota do tributo.
Domínio:")
+ /**
+ * Tipo de alíquota do tributo.
Domínio:
+ **/
+ private TipoAliquotaEnum tipoAliquota = null;
+
+ @XmlElement(name = "percentualReducaoAliquotaReduzida")
+ @ApiModelProperty(example = "4227.8", value = "Percentual de redução da alíquota reduzida (%).
Tamanho: 16,5
Formato: Decimal, com até 5 casas decimais separadas por ponto.")
+ @Valid
+ /**
+ * Percentual de redução da alíquota reduzida (%).
Tamanho: 16,5
Formato: Decimal, com até 5 casas decimais separadas por ponto.
+ **/
+ private BigDecimal percentualReducaoAliquotaReduzida = null;
+
+ @XmlElement(name = "valorAliquota")
+ @ApiModelProperty(example = "4227.8", value = "Valor da alíquota (%).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ @Valid
+ /**
+ * Valor da alíquota (%).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private BigDecimal valorAliquota = null;
+
+ @XmlElement(name = "valorAliquotaEspecifica")
+ @ApiModelProperty(example = "4227.8", value = "Valor da alíquota específica (%).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ @Valid
+ /**
+ * Valor da alíquota específica (%).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private BigDecimal valorAliquotaEspecifica = null;
+
+ @XmlElement(name = "valorAliquotaReduzida")
+ @ApiModelProperty(example = "4227.8", value = "Valor da alíquota reduzida (%).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ @Valid
+ /**
+ * Valor da alíquota reduzida (%).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private BigDecimal valorAliquotaReduzida = null;
+
+ @XmlElement(name = "normal")
+ @ApiModelProperty(example = "4227.8", value = "Valor normal em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ @Valid
+ /**
+ * Valor normal em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private BigDecimal normal = null;
+
+ @XmlElement(name = "tributado")
+ @ApiModelProperty(example = "true", value = "Indicador de tributação.")
+ /**
+ * Indicador de tributação.
+ **/
+ private Boolean tributado = null;
+
+ @XmlElement(name = "percentualPagamento")
+ @ApiModelProperty(example = "4227.8", value = "Percentual de pagamento, preenchido no caso de item com fundamento legal correspondente à admissão temporária com pagamento proporcional (ATUE). Para as demais Duimp será retornado nulo.
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ @Valid
+ /**
+ * Percentual de pagamento, preenchido no caso de item com fundamento legal correspondente à admissão temporária com pagamento proporcional (ATUE). Para as demais Duimp será retornado nulo.
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private BigDecimal percentualPagamento = null;
+
+ /**
+ * Código do fundamento legal do regime tributário de importação utilizado na declaração.<br>Domínio: Fundamentos legais existentes no sistema Tratamento Tributário.
+ *
+ * @return codigoFundamentoLegalNormal
+ **/
+ @JsonProperty("codigoFundamentoLegalNormal")
+ public Long getCodigoFundamentoLegalNormal() {
+ return codigoFundamentoLegalNormal;
+ }
+
+ public void setCodigoFundamentoLegalNormal(Long codigoFundamentoLegalNormal) {
+ this.codigoFundamentoLegalNormal = codigoFundamentoLegalNormal;
+ }
+
+ public MemoriaCalculoItemCover codigoFundamentoLegalNormal(Long codigoFundamentoLegalNormal) {
+ this.codigoFundamentoLegalNormal = codigoFundamentoLegalNormal;
+ return this;
+ }
+
+ /**
+ * Valor da base de cálculo em R$ (Reais).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return baseCalculoBRL
+ **/
+ @JsonProperty("baseCalculoBRL")
+ public BigDecimal getBaseCalculoBRL() {
+ return baseCalculoBRL;
+ }
+
+ public void setBaseCalculoBRL(BigDecimal baseCalculoBRL) {
+ this.baseCalculoBRL = baseCalculoBRL;
+ }
+
+ public MemoriaCalculoItemCover baseCalculoBRL(BigDecimal baseCalculoBRL) {
+ this.baseCalculoBRL = baseCalculoBRL;
+ return this;
+ }
+
+ /**
+ * Valor da base de cálculo específica em R$ (Reais).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return baseCalculoEspecificaBRL
+ **/
+ @JsonProperty("baseCalculoEspecificaBRL")
+ public BigDecimal getBaseCalculoEspecificaBRL() {
+ return baseCalculoEspecificaBRL;
+ }
+
+ public void setBaseCalculoEspecificaBRL(BigDecimal baseCalculoEspecificaBRL) {
+ this.baseCalculoEspecificaBRL = baseCalculoEspecificaBRL;
+ }
+
+ public MemoriaCalculoItemCover baseCalculoEspecificaBRL(BigDecimal baseCalculoEspecificaBRL) {
+ this.baseCalculoEspecificaBRL = baseCalculoEspecificaBRL;
+ return this;
+ }
+
+ /**
+ * Valor da base de cálculo reduzida em R$ (Reais).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return baseCalculoReduzidaBRL
+ **/
+ @JsonProperty("baseCalculoReduzidaBRL")
+ public BigDecimal getBaseCalculoReduzidaBRL() {
+ return baseCalculoReduzidaBRL;
+ }
+
+ public void setBaseCalculoReduzidaBRL(BigDecimal baseCalculoReduzidaBRL) {
+ this.baseCalculoReduzidaBRL = baseCalculoReduzidaBRL;
+ }
+
+ public MemoriaCalculoItemCover baseCalculoReduzidaBRL(BigDecimal baseCalculoReduzidaBRL) {
+ this.baseCalculoReduzidaBRL = baseCalculoReduzidaBRL;
+ return this;
+ }
+
+ /**
+ * Percentual de redução da base de cálculo.<br>Tamanho: 16,5<br>Formato: Decimal, com até 5 casas decimais separadas por ponto.
+ *
+ * @return percentualReducaoBaseCalculo
+ **/
+ @JsonProperty("percentualReducaoBaseCalculo")
+ public BigDecimal getPercentualReducaoBaseCalculo() {
+ return percentualReducaoBaseCalculo;
+ }
+
+ public void setPercentualReducaoBaseCalculo(BigDecimal percentualReducaoBaseCalculo) {
+ this.percentualReducaoBaseCalculo = percentualReducaoBaseCalculo;
+ }
+
+ public MemoriaCalculoItemCover percentualReducaoBaseCalculo(BigDecimal percentualReducaoBaseCalculo) {
+ this.percentualReducaoBaseCalculo = percentualReducaoBaseCalculo;
+ return this;
+ }
+
+ /**
+ * Tipo de alíquota do tributo.<br>Domínio:
+ *
+ * @return tipoAliquota
+ **/
+ @JsonProperty("tipoAliquota")
+ public String getTipoAliquota() {
+ if (tipoAliquota == null) {
+ return null;
+ }
+ return tipoAliquota.value();
+ }
+
+ public void setTipoAliquota(TipoAliquotaEnum tipoAliquota) {
+ this.tipoAliquota = tipoAliquota;
+ }
+
+ public MemoriaCalculoItemCover tipoAliquota(TipoAliquotaEnum tipoAliquota) {
+ this.tipoAliquota = tipoAliquota;
+ return this;
+ }
+
+ /**
+ * Percentual de redução da alíquota reduzida (%).<br>Tamanho: 16,5<br>Formato: Decimal, com até 5 casas decimais separadas por ponto.
+ *
+ * @return percentualReducaoAliquotaReduzida
+ **/
+ @JsonProperty("percentualReducaoAliquotaReduzida")
+ public BigDecimal getPercentualReducaoAliquotaReduzida() {
+ return percentualReducaoAliquotaReduzida;
+ }
+
+ public void setPercentualReducaoAliquotaReduzida(BigDecimal percentualReducaoAliquotaReduzida) {
+ this.percentualReducaoAliquotaReduzida = percentualReducaoAliquotaReduzida;
+ }
+
+ public MemoriaCalculoItemCover percentualReducaoAliquotaReduzida(BigDecimal percentualReducaoAliquotaReduzida) {
+ this.percentualReducaoAliquotaReduzida = percentualReducaoAliquotaReduzida;
+ return this;
+ }
+
+ /**
+ * Valor da alíquota (%).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return valorAliquota
+ **/
+ @JsonProperty("valorAliquota")
+ public BigDecimal getValorAliquota() {
+ return valorAliquota;
+ }
+
+ public void setValorAliquota(BigDecimal valorAliquota) {
+ this.valorAliquota = valorAliquota;
+ }
+
+ public MemoriaCalculoItemCover valorAliquota(BigDecimal valorAliquota) {
+ this.valorAliquota = valorAliquota;
+ return this;
+ }
+
+ /**
+ * Valor da alíquota específica (%).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return valorAliquotaEspecifica
+ **/
+ @JsonProperty("valorAliquotaEspecifica")
+ public BigDecimal getValorAliquotaEspecifica() {
+ return valorAliquotaEspecifica;
+ }
+
+ public void setValorAliquotaEspecifica(BigDecimal valorAliquotaEspecifica) {
+ this.valorAliquotaEspecifica = valorAliquotaEspecifica;
+ }
+
+ public MemoriaCalculoItemCover valorAliquotaEspecifica(BigDecimal valorAliquotaEspecifica) {
+ this.valorAliquotaEspecifica = valorAliquotaEspecifica;
+ return this;
+ }
+
+ /**
+ * Valor da alíquota reduzida (%).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return valorAliquotaReduzida
+ **/
+ @JsonProperty("valorAliquotaReduzida")
+ public BigDecimal getValorAliquotaReduzida() {
+ return valorAliquotaReduzida;
+ }
+
+ public void setValorAliquotaReduzida(BigDecimal valorAliquotaReduzida) {
+ this.valorAliquotaReduzida = valorAliquotaReduzida;
+ }
+
+ public MemoriaCalculoItemCover valorAliquotaReduzida(BigDecimal valorAliquotaReduzida) {
+ this.valorAliquotaReduzida = valorAliquotaReduzida;
+ return this;
+ }
+
+ /**
+ * Valor normal em R$ (Reais).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return normal
+ **/
+ @JsonProperty("normal")
+ public BigDecimal getNormal() {
+ return normal;
+ }
+
+ public void setNormal(BigDecimal normal) {
+ this.normal = normal;
+ }
+
+ public MemoriaCalculoItemCover normal(BigDecimal normal) {
+ this.normal = normal;
+ return this;
+ }
+
+ /**
+ * Indicador de tributação.
+ *
+ * @return tributado
+ **/
+ @JsonProperty("tributado")
+ public Boolean isTributado() {
+ return tributado;
+ }
+
+ public void setTributado(Boolean tributado) {
+ this.tributado = tributado;
+ }
+
+ public MemoriaCalculoItemCover tributado(Boolean tributado) {
+ this.tributado = tributado;
+ return this;
+ }
+
+ /**
+ * Percentual de pagamento, preenchido no caso de item com fundamento legal correspondente à admissão temporária com pagamento proporcional (ATUE). Para as demais Duimp será retornado nulo.<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return percentualPagamento
+ **/
+ @JsonProperty("percentualPagamento")
+ public BigDecimal getPercentualPagamento() {
+ return percentualPagamento;
+ }
+
+ public void setPercentualPagamento(BigDecimal percentualPagamento) {
+ this.percentualPagamento = percentualPagamento;
+ }
+
+ public MemoriaCalculoItemCover percentualPagamento(BigDecimal percentualPagamento) {
+ this.percentualPagamento = percentualPagamento;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class MemoriaCalculoItemCover {\n" +
+ " codigoFundamentoLegalNormal: " + toIndentedString(codigoFundamentoLegalNormal) + "\n" +
+ " baseCalculoBRL: " + toIndentedString(baseCalculoBRL) + "\n" +
+ " baseCalculoEspecificaBRL: " + toIndentedString(baseCalculoEspecificaBRL) + "\n" +
+ " baseCalculoReduzidaBRL: " + toIndentedString(baseCalculoReduzidaBRL) + "\n" +
+ " percentualReducaoBaseCalculo: " + toIndentedString(percentualReducaoBaseCalculo) + "\n" +
+ " tipoAliquota: " + toIndentedString(tipoAliquota) + "\n" +
+ " percentualReducaoAliquotaReduzida: " + toIndentedString(percentualReducaoAliquotaReduzida) + "\n" +
+ " valorAliquota: " + toIndentedString(valorAliquota) + "\n" +
+ " valorAliquotaEspecifica: " + toIndentedString(valorAliquotaEspecifica) + "\n" +
+ " valorAliquotaReduzida: " + toIndentedString(valorAliquotaReduzida) + "\n" +
+ " normal: " + toIndentedString(normal) + "\n" +
+ " tributado: " + toIndentedString(tributado) + "\n" +
+ " percentualPagamento: " + toIndentedString(percentualPagamento) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/MercadoriaCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/MercadoriaCover.java
new file mode 100644
index 0000000..9279bdb
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/MercadoriaCover.java
@@ -0,0 +1,338 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "MercadoriaCover", propOrder =
+ {"tipoAplicacao", "condicao", "unidadeComercial", "quantidadeComercial", "quantidadeMedidaEstatistica", "pesoLiquido", "moedaNegociada", "valorUnitarioMoedaNegociada", "descricao"
+ })
+
+@XmlRootElement(name = "MercadoriaCover")
+/**
+ * Dados da Mercadoria.
+ **/
+@ApiModel(description = "Dados da Mercadoria.")
+public class MercadoriaCover {
+
+ @XmlElement(name = "tipoAplicacao", required = true)
+ @ApiModelProperty(required = true, value = "")
+ @Valid
+ private TipoAplicacaoCover tipoAplicacao = null;
+
+
+ @XmlType(name = "CondicaoEnum")
+ @XmlEnum(String.class)
+ public enum CondicaoEnum {
+
+ @XmlEnumValue("NOVA")
+ @JsonProperty("NOVA")
+ NOVA("NOVA"),
+
+ @XmlEnumValue("USADA")
+ @JsonProperty("USADA")
+ USADA("USADA");
+
+
+ private final String value;
+
+ CondicaoEnum(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static CondicaoEnum fromValue(String v) {
+ for (CondicaoEnum b : CondicaoEnum.values()) {
+ if (String.valueOf(b.value).equals(v)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + v + "' to CondicaoEnum");
+ }
+ }
+
+ @XmlElement(name = "condicao", required = true)
+ @ApiModelProperty(example = "NOVA", required = true, value = "Indica se a mercadoria é nova ou usada.
Domínio:")
+ /**
+ * Indica se a mercadoria é nova ou usada.
Domínio:
+ **/
+ private CondicaoEnum condicao = null;
+
+ @XmlElement(name = "unidadeComercial", required = true)
+ @ApiModelProperty(example = "SACAS", required = true, value = "Unidade de medida utilizada na comercialização da mercadoria.
Tamanho mínimo: 1
Tamanho máximo: 20")
+ /**
+ * Unidade de medida utilizada na comercialização da mercadoria.
Tamanho mínimo: 1
Tamanho máximo: 20
+ **/
+ private String unidadeComercial = null;
+
+ @XmlElement(name = "quantidadeComercial", required = true)
+ @ApiModelProperty(example = "100.5", required = true, value = "Quantidade da mercadoria na unidade de medida comercial.
Tamanho: 9,5
Formato: Decimal, com até 5 casas decimais separadas por ponto.")
+ /**
+ * Quantidade da mercadoria na unidade de medida comercial.
Tamanho: 9,5
Formato: Decimal, com até 5 casas decimais separadas por ponto.
+ **/
+ private String quantidadeComercial = null;
+
+ @XmlElement(name = "quantidadeMedidaEstatistica", required = true)
+ @ApiModelProperty(example = "12.12345", required = true, value = "Quantidade na unidade de medida estatística associada à NCM do produto.
Tamanho: 9,5
Formato: Decimal, com até 5 casas decimais separadas por ponto.")
+ /**
+ * Quantidade na unidade de medida estatística associada à NCM do produto.
Tamanho: 9,5
Formato: Decimal, com até 5 casas decimais separadas por ponto.
+ **/
+ private String quantidadeMedidaEstatistica = null;
+
+ @XmlElement(name = "pesoLiquido", required = true)
+ @ApiModelProperty(example = "100", required = true, value = "Peso líquido, em quilogramas, que corresponde ao quantitativo total das mercadorias do item.
Tamanho: 9,5
Formato: Decimal, com até 5 casas decimais separadas por ponto.")
+ /**
+ * Peso líquido, em quilogramas, que corresponde ao quantitativo total das mercadorias do item.
Tamanho: 9,5
Formato: Decimal, com até 5 casas decimais separadas por ponto.
+ **/
+ private String pesoLiquido = null;
+
+ @XmlElement(name = "moedaNegociada", required = true)
+ @ApiModelProperty(required = true, value = "")
+ @Valid
+ private MoedaNegociadaCover moedaNegociada = null;
+
+ @XmlElement(name = "valorUnitarioMoedaNegociada", required = true)
+ @ApiModelProperty(example = "10", required = true, value = "Valor unitário da mercadoria na condição de venda.
Tamanho: 13,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ /**
+ * Valor unitário da mercadoria na condição de venda.
Tamanho: 13,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private String valorUnitarioMoedaNegociada = null;
+
+ @XmlElement(name = "descricao")
+ @ApiModelProperty(example = "Texto de exemplo.", value = "Descrição complementar da mercadoria.
Tamanho mínimo: 0
Tamanho máximo: 4000")
+ /**
+ * Descrição complementar da mercadoria.
Tamanho mínimo: 0
Tamanho máximo: 4000
+ **/
+ private String descricao = null;
+
+ /**
+ * Get tipoAplicacao
+ *
+ * @return tipoAplicacao
+ **/
+ @JsonProperty("tipoAplicacao")
+ @NotNull
+ public TipoAplicacaoCover getTipoAplicacao() {
+ return tipoAplicacao;
+ }
+
+ public void setTipoAplicacao(TipoAplicacaoCover tipoAplicacao) {
+ this.tipoAplicacao = tipoAplicacao;
+ }
+
+ public MercadoriaCover tipoAplicacao(TipoAplicacaoCover tipoAplicacao) {
+ this.tipoAplicacao = tipoAplicacao;
+ return this;
+ }
+
+ /**
+ * Indica se a mercadoria é nova ou usada.<br>Domínio:
+ *
+ * @return condicao
+ **/
+ @JsonProperty("condicao")
+ @NotNull
+ public String getCondicao() {
+ if (condicao == null) {
+ return null;
+ }
+ return condicao.value();
+ }
+
+ public void setCondicao(CondicaoEnum condicao) {
+ this.condicao = condicao;
+ }
+
+ public MercadoriaCover condicao(CondicaoEnum condicao) {
+ this.condicao = condicao;
+ return this;
+ }
+
+ /**
+ * Unidade de medida utilizada na comercialização da mercadoria.<br>Tamanho mínimo: 1<br>Tamanho máximo: 20
+ *
+ * @return unidadeComercial
+ **/
+ @JsonProperty("unidadeComercial")
+ @NotNull
+ public String getUnidadeComercial() {
+ return unidadeComercial;
+ }
+
+ public void setUnidadeComercial(String unidadeComercial) {
+ this.unidadeComercial = unidadeComercial;
+ }
+
+ public MercadoriaCover unidadeComercial(String unidadeComercial) {
+ this.unidadeComercial = unidadeComercial;
+ return this;
+ }
+
+ /**
+ * Quantidade da mercadoria na unidade de medida comercial.<br>Tamanho: 9,5<br>Formato: Decimal, com até 5 casas decimais separadas por ponto.
+ *
+ * @return quantidadeComercial
+ **/
+ @JsonProperty("quantidadeComercial")
+ @NotNull
+ public String getQuantidadeComercial() {
+ return quantidadeComercial;
+ }
+
+ public void setQuantidadeComercial(String quantidadeComercial) {
+ this.quantidadeComercial = quantidadeComercial;
+ }
+
+ public MercadoriaCover quantidadeComercial(String quantidadeComercial) {
+ this.quantidadeComercial = quantidadeComercial;
+ return this;
+ }
+
+ /**
+ * Quantidade na unidade de medida estatística associada à NCM do produto.<br>Tamanho: 9,5<br>Formato: Decimal, com até 5 casas decimais separadas por ponto.
+ *
+ * @return quantidadeMedidaEstatistica
+ **/
+ @JsonProperty("quantidadeMedidaEstatistica")
+ @NotNull
+ public String getQuantidadeMedidaEstatistica() {
+ return quantidadeMedidaEstatistica;
+ }
+
+ public void setQuantidadeMedidaEstatistica(String quantidadeMedidaEstatistica) {
+ this.quantidadeMedidaEstatistica = quantidadeMedidaEstatistica;
+ }
+
+ public MercadoriaCover quantidadeMedidaEstatistica(String quantidadeMedidaEstatistica) {
+ this.quantidadeMedidaEstatistica = quantidadeMedidaEstatistica;
+ return this;
+ }
+
+ /**
+ * Peso líquido, em quilogramas, que corresponde ao quantitativo total das mercadorias do item.<br>Tamanho: 9,5<br>Formato: Decimal, com até 5 casas decimais separadas por ponto.
+ *
+ * @return pesoLiquido
+ **/
+ @JsonProperty("pesoLiquido")
+ @NotNull
+ public String getPesoLiquido() {
+ return pesoLiquido;
+ }
+
+ public void setPesoLiquido(String pesoLiquido) {
+ this.pesoLiquido = pesoLiquido;
+ }
+
+ public MercadoriaCover pesoLiquido(String pesoLiquido) {
+ this.pesoLiquido = pesoLiquido;
+ return this;
+ }
+
+ /**
+ * Get moedaNegociada
+ *
+ * @return moedaNegociada
+ **/
+ @JsonProperty("moedaNegociada")
+ @NotNull
+ public MoedaNegociadaCover getMoedaNegociada() {
+ return moedaNegociada;
+ }
+
+ public void setMoedaNegociada(MoedaNegociadaCover moedaNegociada) {
+ this.moedaNegociada = moedaNegociada;
+ }
+
+ public MercadoriaCover moedaNegociada(MoedaNegociadaCover moedaNegociada) {
+ this.moedaNegociada = moedaNegociada;
+ return this;
+ }
+
+ /**
+ * Valor unitário da mercadoria na condição de venda.<br>Tamanho: 13,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return valorUnitarioMoedaNegociada
+ **/
+ @JsonProperty("valorUnitarioMoedaNegociada")
+ @NotNull
+ public String getValorUnitarioMoedaNegociada() {
+ return valorUnitarioMoedaNegociada;
+ }
+
+ public void setValorUnitarioMoedaNegociada(String valorUnitarioMoedaNegociada) {
+ this.valorUnitarioMoedaNegociada = valorUnitarioMoedaNegociada;
+ }
+
+ public MercadoriaCover valorUnitarioMoedaNegociada(String valorUnitarioMoedaNegociada) {
+ this.valorUnitarioMoedaNegociada = valorUnitarioMoedaNegociada;
+ return this;
+ }
+
+ /**
+ * Descrição complementar da mercadoria.<br>Tamanho mínimo: 0<br>Tamanho máximo: 4000
+ *
+ * @return descricao
+ **/
+ @JsonProperty("descricao")
+ public String getDescricao() {
+ return descricao;
+ }
+
+ public void setDescricao(String descricao) {
+ this.descricao = descricao;
+ }
+
+ public MercadoriaCover descricao(String descricao) {
+ this.descricao = descricao;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class MercadoriaCover {\n" +
+ " tipoAplicacao: " + toIndentedString(tipoAplicacao) + "\n" +
+ " condicao: " + toIndentedString(condicao) + "\n" +
+ " unidadeComercial: " + toIndentedString(unidadeComercial) + "\n" +
+ " quantidadeComercial: " + toIndentedString(quantidadeComercial) + "\n" +
+ " quantidadeMedidaEstatistica: " + toIndentedString(quantidadeMedidaEstatistica) + "\n" +
+ " pesoLiquido: " + toIndentedString(pesoLiquido) + "\n" +
+ " moedaNegociada: " + toIndentedString(moedaNegociada) + "\n" +
+ " valorUnitarioMoedaNegociada: " + toIndentedString(valorUnitarioMoedaNegociada) + "\n" +
+ " descricao: " + toIndentedString(descricao) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/MercadoriaValoresCalculadosItemCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/MercadoriaValoresCalculadosItemCover.java
new file mode 100644
index 0000000..f6d93d6
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/MercadoriaValoresCalculadosItemCover.java
@@ -0,0 +1,103 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import java.math.BigDecimal;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "MercadoriaValoresCalculadosItemCover", propOrder =
+ {"valorLocalEmbarqueBRL", "valorAduaneiroBRL"
+ })
+
+@XmlRootElement(name = "MercadoriaValoresCalculadosItemCover")
+/**
+ * Valores da Mercadoria.
+ **/
+@ApiModel(description = "Valores da Mercadoria.")
+public class MercadoriaValoresCalculadosItemCover {
+
+ @XmlElement(name = "valorLocalEmbarqueBRL")
+ @ApiModelProperty(example = "20.666", value = "Valor total da mercadoria no local de embarque em R$ (Reais).
Para Duimps com situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso, será retornado o valor nulo (**null**)
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ @Valid
+ /**
+ * Valor total da mercadoria no local de embarque em R$ (Reais).
Para Duimps com situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso, será retornado o valor nulo (**null**)
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private BigDecimal valorLocalEmbarqueBRL = null;
+
+ @XmlElement(name = "valorAduaneiroBRL")
+ @ApiModelProperty(example = "20.666", value = "Valor total aduaneiro em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ @Valid
+ /**
+ * Valor total aduaneiro em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private BigDecimal valorAduaneiroBRL = null;
+
+ /**
+ * Valor total da mercadoria no local de embarque em R$ (Reais). <br> Para Duimps com situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso, será retornado o valor nulo (**null**)<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return valorLocalEmbarqueBRL
+ **/
+ @JsonProperty("valorLocalEmbarqueBRL")
+ public BigDecimal getValorLocalEmbarqueBRL() {
+ return valorLocalEmbarqueBRL;
+ }
+
+ public void setValorLocalEmbarqueBRL(BigDecimal valorLocalEmbarqueBRL) {
+ this.valorLocalEmbarqueBRL = valorLocalEmbarqueBRL;
+ }
+
+ public MercadoriaValoresCalculadosItemCover valorLocalEmbarqueBRL(BigDecimal valorLocalEmbarqueBRL) {
+ this.valorLocalEmbarqueBRL = valorLocalEmbarqueBRL;
+ return this;
+ }
+
+ /**
+ * Valor total aduaneiro em R$ (Reais).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return valorAduaneiroBRL
+ **/
+ @JsonProperty("valorAduaneiroBRL")
+ public BigDecimal getValorAduaneiroBRL() {
+ return valorAduaneiroBRL;
+ }
+
+ public void setValorAduaneiroBRL(BigDecimal valorAduaneiroBRL) {
+ this.valorAduaneiroBRL = valorAduaneiroBRL;
+ }
+
+ public MercadoriaValoresCalculadosItemCover valorAduaneiroBRL(BigDecimal valorAduaneiroBRL) {
+ this.valorAduaneiroBRL = valorAduaneiroBRL;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class MercadoriaValoresCalculadosItemCover {\n" +
+ " valorLocalEmbarqueBRL: " + toIndentedString(valorLocalEmbarqueBRL) + "\n" +
+ " valorAduaneiroBRL: " + toIndentedString(valorAduaneiroBRL) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/MetodoValoracaoCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/MetodoValoracaoCover.java
new file mode 100644
index 0000000..84b72f8
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/MetodoValoracaoCover.java
@@ -0,0 +1,74 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "MetodoValoracaoCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "MetodoValoracaoCover")
+/**
+ * Método de valoração.
+ **/
+@ApiModel(description = "Método de valoração.")
+public class MetodoValoracaoCover {
+
+ @XmlElement(name = "codigo", required = true)
+ @ApiModelProperty(example = "1", required = true, value = "Código do método de valoração.
Domínio: Tabela de Métodos de Valoração Siscomex
Valor mínimo: 1
Valor máximo: 99999
Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/")
+ /**
+ * Código do método de valoração.
Domínio: Tabela de Métodos de Valoração Siscomex
Valor mínimo: 1
Valor máximo: 99999
Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
+ **/
+ private String codigo = null;
+
+ /**
+ * Código do método de valoração.<br>Domínio: Tabela de Métodos de Valoração Siscomex<br>Valor mínimo: 1<br>Valor máximo: 99999<br>Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ @NotNull
+ public String getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(String codigo) {
+ this.codigo = codigo;
+ }
+
+ public MetodoValoracaoCover codigo(String codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class MetodoValoracaoCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/MoedaAcrescimoDeducaoCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/MoedaAcrescimoDeducaoCover.java
new file mode 100644
index 0000000..dc90486
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/MoedaAcrescimoDeducaoCover.java
@@ -0,0 +1,102 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "MoedaAcrescimoDeducaoCover", propOrder =
+ {"codigo", "valor"
+ })
+
+@XmlRootElement(name = "MoedaAcrescimoDeducaoCover")
+/**
+ * Dados da moeda utilizada no Acréscimo ou Dedução.
+ **/
+@ApiModel(description = "Dados da moeda utilizada no Acréscimo ou Dedução.")
+public class MoedaAcrescimoDeducaoCover {
+
+ @XmlElement(name = "codigo", required = true)
+ @ApiModelProperty(example = "USD", required = true, value = "Código da Moeda negociada (ISO-4217).
Tamanho: 3
Formato: 'AAA'
Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/")
+ /**
+ * Código da Moeda negociada (ISO-4217).
Tamanho: 3
Formato: 'AAA'
Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
+ **/
+ private String codigo = null;
+
+ @XmlElement(name = "valor", required = true)
+ @ApiModelProperty(example = "100.12", required = true, value = "Valor, na moeda negociada, acrescentado no/deduzido do valor da condição de venda.
Tamanho: 13,2
Formato: Decimal, com até 2 casas decimais separadas por ponto.")
+ /**
+ * Valor, na moeda negociada, acrescentado no/deduzido do valor da condição de venda.
Tamanho: 13,2
Formato: Decimal, com até 2 casas decimais separadas por ponto.
+ **/
+ private String valor = null;
+
+ /**
+ * Código da Moeda negociada (ISO-4217).<br>Tamanho: 3<br>Formato: 'AAA'<br>Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ @NotNull
+ public String getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(String codigo) {
+ this.codigo = codigo;
+ }
+
+ public MoedaAcrescimoDeducaoCover codigo(String codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+ /**
+ * Valor, na moeda negociada, acrescentado no/deduzido do valor da condição de venda.<br>Tamanho: 13,2<br>Formato: Decimal, com até 2 casas decimais separadas por ponto.
+ *
+ * @return valor
+ **/
+ @JsonProperty("valor")
+ @NotNull
+ public String getValor() {
+ return valor;
+ }
+
+ public void setValor(String valor) {
+ this.valor = valor;
+ }
+
+ public MoedaAcrescimoDeducaoCover valor(String valor) {
+ this.valor = valor;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class MoedaAcrescimoDeducaoCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ " valor: " + toIndentedString(valor) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/MoedaNegociadaCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/MoedaNegociadaCover.java
new file mode 100644
index 0000000..1a253a3
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/MoedaNegociadaCover.java
@@ -0,0 +1,74 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "MoedaNegociadaCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "MoedaNegociadaCover")
+/**
+ * Moeda utilizada para a negociação da mercadoria e usada na expedição da fatura comercial (ISO-4217).
+ **/
+@ApiModel(description = "Moeda utilizada para a negociação da mercadoria e usada na expedição da fatura comercial (ISO-4217).")
+public class MoedaNegociadaCover {
+
+ @XmlElement(name = "codigo", required = true)
+ @ApiModelProperty(example = "USD", required = true, value = "Código da Moeda utilizada para a negociação da mercadoria e usada na expedição da fatura comercial (ISO-4217).
Tamanho: 3
Formato: 'AAA'
Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/")
+ /**
+ * Código da Moeda utilizada para a negociação da mercadoria e usada na expedição da fatura comercial (ISO-4217).
Tamanho: 3
Formato: 'AAA'
Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
+ **/
+ private String codigo = null;
+
+ /**
+ * Código da Moeda utilizada para a negociação da mercadoria e usada na expedição da fatura comercial (ISO-4217).<br>Tamanho: 3<br>Formato: 'AAA'<br>Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ @NotNull
+ public String getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(String codigo) {
+ this.codigo = codigo;
+ }
+
+ public MoedaNegociadaCover codigo(String codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class MoedaNegociadaCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/MotivoSemCoberturaCambialCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/MotivoSemCoberturaCambialCover.java
new file mode 100644
index 0000000..32bab88
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/MotivoSemCoberturaCambialCover.java
@@ -0,0 +1,72 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "MotivoSemCoberturaCambialCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "MotivoSemCoberturaCambialCover")
+/**
+ * Motivo para ausência de cobertura cambial.
Observação: Deve ser preenchido quando a cobertura cambial for \"sem cobertura\".
+ **/
+@ApiModel(description = "Motivo para ausência de cobertura cambial.
Observação: Deve ser preenchido quando a cobertura cambial for \"sem cobertura\".")
+public class MotivoSemCoberturaCambialCover {
+
+ @XmlElement(name = "codigo")
+ @ApiModelProperty(example = "52", value = "Código do Motivo para ausência de cobertura cambial.
Domínio: Tabela de Motivos Sem Cobertura do Siscomex. - https://api-docs.portalunico.siscomex.gov.br/
Valor mínimo: 1
Valor máximo: 99999")
+ /**
+ * Código do Motivo para ausência de cobertura cambial.
Domínio: Tabela de Motivos Sem Cobertura do Siscomex. - https://api-docs.portalunico.siscomex.gov.br/
Valor mínimo: 1
Valor máximo: 99999
+ **/
+ private String codigo = null;
+
+ /**
+ * Código do Motivo para ausência de cobertura cambial.<br>Domínio: Tabela de Motivos Sem Cobertura do Siscomex. - https://api-docs.portalunico.siscomex.gov.br/<br>Valor mínimo: 1<br>Valor máximo: 99999
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ public String getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(String codigo) {
+ this.codigo = codigo;
+ }
+
+ public MotivoSemCoberturaCambialCover codigo(String codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class MotivoSemCoberturaCambialCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/PaisExportadorCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/PaisExportadorCover.java
new file mode 100644
index 0000000..4502d97
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/PaisExportadorCover.java
@@ -0,0 +1,74 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "PaisExportadorCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "PaisExportadorCover")
+/**
+ * País de procedência da mercadoria.
+ **/
+@ApiModel(description = "País de procedência da mercadoria.")
+public class PaisExportadorCover {
+
+ @XmlElement(name = "codigo", required = true)
+ @ApiModelProperty(example = "BR", required = true, value = "Código do país de origem no formato ISO (3166-1 alfa-2).
Tamanho: 2
Formato: 'AA'")
+ /**
+ * Código do país de origem no formato ISO (3166-1 alfa-2).
Tamanho: 2
Formato: 'AA'
+ **/
+ private String codigo = null;
+
+ /**
+ * Código do país de origem no formato ISO (3166-1 alfa-2).<br>Tamanho: 2<br>Formato: 'AA'
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ @NotNull
+ public String getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(String codigo) {
+ this.codigo = codigo;
+ }
+
+ public PaisExportadorCover codigo(String codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class PaisExportadorCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/PaisFabricanteCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/PaisFabricanteCover.java
new file mode 100644
index 0000000..0af2c67
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/PaisFabricanteCover.java
@@ -0,0 +1,74 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "PaisFabricanteCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "PaisFabricanteCover")
+/**
+ * País de origem do fabricante.
+ **/
+@ApiModel(description = "País de origem do fabricante.")
+public class PaisFabricanteCover {
+
+ @XmlElement(name = "codigo", required = true)
+ @ApiModelProperty(example = "BR", required = true, value = "Código do país de origem no formato ISO (3166-1 alfa-2).
Tamanho: 2
Formato: 'AA'")
+ /**
+ * Código do país de origem no formato ISO (3166-1 alfa-2).
Tamanho: 2
Formato: 'AA'
+ **/
+ private String codigo = null;
+
+ /**
+ * Código do país de origem no formato ISO (3166-1 alfa-2).<br>Tamanho: 2<br>Formato: 'AA'
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ @NotNull
+ public String getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(String codigo) {
+ this.codigo = codigo;
+ }
+
+ public PaisFabricanteCover codigo(String codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class PaisFabricanteCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/ProdutoConsultaItemCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/ProdutoConsultaItemCover.java
new file mode 100644
index 0000000..7c3f6a9
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/ProdutoConsultaItemCover.java
@@ -0,0 +1,126 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ProdutoConsultaItemCover", propOrder =
+ {"codigo", "versao", "niResponsavel"
+ })
+
+@XmlRootElement(name = "ProdutoConsultaItemCover")
+/**
+ * Dados do Produto.
Origem: Sistema Catálogo de Produtos - https://api-docs.portalunico.siscomex.gov.br/
+ **/
+@ApiModel(description = "Dados do Produto.
Origem: Sistema Catálogo de Produtos - https://api-docs.portalunico.siscomex.gov.br/")
+public class ProdutoConsultaItemCover {
+
+ @XmlElement(name = "codigo")
+ @ApiModelProperty(example = "10", value = "Código do produto.
Formato: Inteiro, com até 10 dígitos")
+ /**
+ * Código do produto.
Formato: Inteiro, com até 10 dígitos
+ **/
+ private String codigo = null;
+
+ @XmlElement(name = "versao")
+ @ApiModelProperty(example = "1", value = "Versão do produto.
Tamanho mínimo: 1
Tamanho máximo: 7")
+ /**
+ * Versão do produto.
Tamanho mínimo: 1
Tamanho máximo: 7
+ **/
+ private String versao = null;
+
+ @XmlElement(name = "niResponsavel")
+ @ApiModelProperty(example = "00000000", value = "
Número de Identificação:
Caso seja CNPJ (Raiz):
Tamanho: 8
Formato: 'NNNNNNNN'
Caso seja CPF:
Tamanho: 11
Formato: 'NNNNNNNNNNN'")
+ /**
+ *
Número de Identificação:
Caso seja CNPJ (Raiz):
Tamanho: 8
Formato: 'NNNNNNNN'
Caso seja CPF:
Tamanho: 11
Formato: 'NNNNNNNNNNN'
+ **/
+ private String niResponsavel = null;
+
+ /**
+ * Código do produto.<br>Formato: Inteiro, com até 10 dígitos
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ public String getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(String codigo) {
+ this.codigo = codigo;
+ }
+
+ public ProdutoConsultaItemCover codigo(String codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+ /**
+ * Versão do produto.<br>Tamanho mínimo: 1<br>Tamanho máximo: 7
+ *
+ * @return versao
+ **/
+ @JsonProperty("versao")
+ public String getVersao() {
+ return versao;
+ }
+
+ public void setVersao(String versao) {
+ this.versao = versao;
+ }
+
+ public ProdutoConsultaItemCover versao(String versao) {
+ this.versao = versao;
+ return this;
+ }
+
+ /**
+ * <br>Número de Identificação: <br>Caso seja CNPJ (Raiz): <br>Tamanho: 8<br>Formato: 'NNNNNNNN'<br>Caso seja CPF: <br>Tamanho: 11<br>Formato: 'NNNNNNNNNNN'
+ *
+ * @return niResponsavel
+ **/
+ @JsonProperty("niResponsavel")
+ public String getNiResponsavel() {
+ return niResponsavel;
+ }
+
+ public void setNiResponsavel(String niResponsavel) {
+ this.niResponsavel = niResponsavel;
+ }
+
+ public ProdutoConsultaItemCover niResponsavel(String niResponsavel) {
+ this.niResponsavel = niResponsavel;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class ProdutoConsultaItemCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ " versao: " + toIndentedString(versao) + "\n" +
+ " niResponsavel: " + toIndentedString(niResponsavel) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/RegimeCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/RegimeCover.java
new file mode 100644
index 0000000..2391c06
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/RegimeCover.java
@@ -0,0 +1,74 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "RegimeCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "RegimeCover")
+/**
+ * Regime tributário.
+ **/
+@ApiModel(description = "Regime tributário.")
+public class RegimeCover {
+
+ @XmlElement(name = "codigo", required = true)
+ @ApiModelProperty(example = "1", required = true, value = "Código do regime tributário.
Dominio: Regimes tributários existentes no sistema Tratamento Tributário.")
+ /**
+ * Código do regime tributário.
Dominio: Regimes tributários existentes no sistema Tratamento Tributário.
+ **/
+ private String codigo = null;
+
+ /**
+ * Código do regime tributário.<br>Dominio: Regimes tributários existentes no sistema Tratamento Tributário.
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ @NotNull
+ public String getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(String codigo) {
+ this.codigo = codigo;
+ }
+
+ public RegimeCover codigo(String codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class RegimeCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/RespostaApiErro.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/RespostaApiErro.java
new file mode 100644
index 0000000..7fd2620
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/RespostaApiErro.java
@@ -0,0 +1,160 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import java.util.List;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "RespostaApiErro", propOrder =
+ {"message", "identificacao", "errors", "links"
+ })
+
+@XmlRootElement(name = "RespostaApiErro")
+public class RespostaApiErro {
+
+ @XmlElement(name = "message")
+ @ApiModelProperty(example = "Mensagem de exemplo.", value = "Mensagem de resposta do resultado da operação.")
+ /**
+ * Mensagem de resposta do resultado da operação.
+ **/
+ private String message = null;
+
+ @XmlElement(name = "identificacao")
+ @ApiModelProperty(value = "")
+ @Valid
+ private IdentificacaoDuimpRespostaApi identificacao = null;
+
+ @XmlElement(name = "errors")
+ @ApiModelProperty(value = "Conjunto de erros de validação dos campos. Devolvido apenas para erros HTTP 422.
Esta é uma lista opcional e fornece o detalhamento de todos os erros que deram origem ao erro 422
Quando houver mais de um erro, essa lista será preenchida com cada um dos erros
Exemplo: A lista detalhada dos problemas encontrados em um item, quando for gerado um erro 422 ao validar a inclusão de um item.")
+ @Valid
+ /**
+ * Conjunto de erros de validação dos campos. Devolvido apenas para erros HTTP 422.
Esta é uma lista opcional e fornece o detalhamento de todos os erros que deram origem ao erro 422
Quando houver mais de um erro, essa lista será preenchida com cada um dos erros
Exemplo: A lista detalhada dos problemas encontrados em um item, quando for gerado um erro 422 ao validar a inclusão de um item.
+ **/
+ private List
Lista devolvida apenas quando a operação realizada sobre um recurso permite a realização de operações relacionadas.")
+ @Valid
+ /**
+ * Operações disponíveis sobre o recurso.
Lista devolvida apenas quando a operação realizada sobre um recurso permite a realização de operações relacionadas.
+ **/
+ private List
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ /**
+ * Valor do seguro em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private String valorBRL = null;
+
+ /**
+ * Valor do seguro em R$ (Reais).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return valorBRL
+ **/
+ @JsonProperty("valorBRL")
+ public String getValorBRL() {
+ return valorBRL;
+ }
+
+ public void setValorBRL(String valorBRL) {
+ this.valorBRL = valorBRL;
+ }
+
+ public SeguroConsultaItemCover valorBRL(String valorBRL) {
+ this.valorBRL = valorBRL;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class SeguroConsultaItemCover {\n" +
+ " valorBRL: " + toIndentedString(valorBRL) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/TipoAplicacaoCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/TipoAplicacaoCover.java
new file mode 100644
index 0000000..5382cca
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/TipoAplicacaoCover.java
@@ -0,0 +1,130 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "TipoAplicacaoCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "TipoAplicacaoCover")
+/**
+ * Destinação da mercadoria.
+ **/
+@ApiModel(description = "Destinação da mercadoria.")
+public class TipoAplicacaoCover {
+
+
+ @XmlType(name = "CodigoEnum")
+ @XmlEnum(String.class)
+ public enum CodigoEnum {
+
+ @XmlEnumValue("CONSUMO")
+ @JsonProperty("CONSUMO")
+ CONSUMO("CONSUMO"),
+
+ @XmlEnumValue("INCORPORACAO_ATIVO_FIXO")
+ @JsonProperty("INCORPORACAO_ATIVO_FIXO")
+ INCORPORACAO_ATIVO_FIXO("INCORPORACAO_ATIVO_FIXO"),
+
+ @XmlEnumValue("INDUSTRIALIZACAO")
+ @JsonProperty("INDUSTRIALIZACAO")
+ INDUSTRIALIZACAO("INDUSTRIALIZACAO"),
+
+ @XmlEnumValue("REVENDA")
+ @JsonProperty("REVENDA")
+ REVENDA("REVENDA"),
+
+ @XmlEnumValue("OUTRA")
+ @JsonProperty("OUTRA")
+ OUTRA("OUTRA");
+
+
+ private final String value;
+
+ CodigoEnum(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static CodigoEnum fromValue(String v) {
+ for (CodigoEnum b : CodigoEnum.values()) {
+ if (String.valueOf(b.value).equals(v)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + v + "' to CodigoEnum");
+ }
+ }
+
+ @XmlElement(name = "codigo", required = true)
+ @ApiModelProperty(example = "CONSUMO", required = true, value = "Destinação da mercadoria de acordo com o domínio a seguir.
Domínio:")
+ /**
+ * Destinação da mercadoria de acordo com o domínio a seguir.
Domínio:
+ **/
+ private CodigoEnum codigo = null;
+
+ /**
+ * Destinação da mercadoria de acordo com o domínio a seguir.<br>Domínio:
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ @NotNull
+ public String getCodigo() {
+ if (codigo == null) {
+ return null;
+ }
+ return codigo.value();
+ }
+
+ public void setCodigo(CodigoEnum codigo) {
+ this.codigo = codigo;
+ }
+
+ public TipoAplicacaoCover codigo(CodigoEnum codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class TipoAplicacaoCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/TributoCalculadoItemCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/TributoCalculadoItemCover.java
new file mode 100644
index 0000000..9795338
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/TributoCalculadoItemCover.java
@@ -0,0 +1,195 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "TributoCalculadoItemCover", propOrder =
+ {"tipo", "valoresBRL", "memoriaCalculo"
+ })
+
+@XmlRootElement(name = "TributoCalculadoItemCover")
+/**
+ * Valores do cálculo do tributo e a memória de cálculo.
+ **/
+@ApiModel(description = "Valores do cálculo do tributo e a memória de cálculo.")
+public class TributoCalculadoItemCover {
+
+
+ @XmlType(name = "TipoEnum")
+ @XmlEnum(String.class)
+ public enum TipoEnum {
+
+ @XmlEnumValue("II")
+ @JsonProperty("II")
+ II("II"),
+
+ @XmlEnumValue("IPI")
+ @JsonProperty("IPI")
+ IPI("IPI"),
+
+ @XmlEnumValue("PIS")
+ @JsonProperty("PIS")
+ PIS("PIS"),
+
+ @XmlEnumValue("COFINS")
+ @JsonProperty("COFINS")
+ COFINS("COFINS"),
+
+ @XmlEnumValue("CIDE")
+ @JsonProperty("CIDE")
+ CIDE("CIDE"),
+
+ @XmlEnumValue("ANTIDUMPING")
+ @JsonProperty("ANTIDUMPING")
+ ANTIDUMPING("ANTIDUMPING"),
+
+ @XmlEnumValue("MULTA_COM_REDUCAO")
+ @JsonProperty("MULTA_COM_REDUCAO")
+ MULTA_COM_REDUCAO("MULTA_COM_REDUCAO"),
+
+ @XmlEnumValue("MULTA_SEM_REDUCAO")
+ @JsonProperty("MULTA_SEM_REDUCAO")
+ MULTA_SEM_REDUCAO("MULTA_SEM_REDUCAO"),
+
+ @XmlEnumValue("TAXA_UTILIZACAO")
+ @JsonProperty("TAXA_UTILIZACAO")
+ TAXA_UTILIZACAO("TAXA_UTILIZACAO");
+
+
+ private final String value;
+
+ TipoEnum(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static TipoEnum fromValue(String v) {
+ for (TipoEnum b : TipoEnum.values()) {
+ if (String.valueOf(b.value).equals(v)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + v + "' to TipoEnum");
+ }
+ }
+
+ @XmlElement(name = "tipo")
+ @ApiModelProperty(example = "II", value = "Tipo de impostos (códigos de receita principal únicos).
Domínio:")
+ /**
+ * Tipo de impostos (códigos de receita principal únicos).
Domínio:
+ **/
+ private TipoEnum tipo = null;
+
+ @XmlElement(name = "valoresBRL")
+ @ApiModelProperty(value = "")
+ @Valid
+ private ValoresTributoItemCover valoresBRL = null;
+
+ @XmlElement(name = "memoriaCalculo")
+ @ApiModelProperty(value = "")
+ @Valid
+ private MemoriaCalculoItemCover memoriaCalculo = null;
+
+ /**
+ * Tipo de impostos (códigos de receita principal únicos).<br>Domínio:
+ *
+ * @return tipo
+ **/
+ @JsonProperty("tipo")
+ public String getTipo() {
+ if (tipo == null) {
+ return null;
+ }
+ return tipo.value();
+ }
+
+ public void setTipo(TipoEnum tipo) {
+ this.tipo = tipo;
+ }
+
+ public TributoCalculadoItemCover tipo(TipoEnum tipo) {
+ this.tipo = tipo;
+ return this;
+ }
+
+ /**
+ * Get valoresBRL
+ *
+ * @return valoresBRL
+ **/
+ @JsonProperty("valoresBRL")
+ public ValoresTributoItemCover getValoresBRL() {
+ return valoresBRL;
+ }
+
+ public void setValoresBRL(ValoresTributoItemCover valoresBRL) {
+ this.valoresBRL = valoresBRL;
+ }
+
+ public TributoCalculadoItemCover valoresBRL(ValoresTributoItemCover valoresBRL) {
+ this.valoresBRL = valoresBRL;
+ return this;
+ }
+
+ /**
+ * Get memoriaCalculo
+ *
+ * @return memoriaCalculo
+ **/
+ @JsonProperty("memoriaCalculo")
+ public MemoriaCalculoItemCover getMemoriaCalculo() {
+ return memoriaCalculo;
+ }
+
+ public void setMemoriaCalculo(MemoriaCalculoItemCover memoriaCalculo) {
+ this.memoriaCalculo = memoriaCalculo;
+ }
+
+ public TributoCalculadoItemCover memoriaCalculo(MemoriaCalculoItemCover memoriaCalculo) {
+ this.memoriaCalculo = memoriaCalculo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class TributoCalculadoItemCover {\n" +
+ " tipo: " + toIndentedString(tipo) + "\n" +
+ " valoresBRL: " + toIndentedString(valoresBRL) + "\n" +
+ " memoriaCalculo: " + toIndentedString(memoriaCalculo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/TributoCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/TributoCover.java
new file mode 100644
index 0000000..82e917f
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/TributoCover.java
@@ -0,0 +1,144 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "TributoCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "TributoCover")
+/**
+ * Dados de um tributo.
+ **/
+@ApiModel(description = "Dados de um tributo.")
+public class TributoCover {
+
+
+ @XmlType(name = "CodigoEnum")
+ @XmlEnum(String.class)
+ public enum CodigoEnum {
+
+ @XmlEnumValue("II")
+ @JsonProperty("II")
+ II("II"),
+
+ @XmlEnumValue("IPI")
+ @JsonProperty("IPI")
+ IPI("IPI"),
+
+ @XmlEnumValue("PIS")
+ @JsonProperty("PIS")
+ PIS("PIS"),
+
+ @XmlEnumValue("COFINS")
+ @JsonProperty("COFINS")
+ COFINS("COFINS"),
+
+ @XmlEnumValue("CIDE")
+ @JsonProperty("CIDE")
+ CIDE("CIDE"),
+
+ @XmlEnumValue("ANTIDUMPING")
+ @JsonProperty("ANTIDUMPING")
+ ANTIDUMPING("ANTIDUMPING"),
+
+ @XmlEnumValue("MEDIDAS")
+ @JsonProperty("MEDIDAS")
+ MEDIDAS("MEDIDAS"),
+
+ @XmlEnumValue("SALVAGUARDA")
+ @JsonProperty("SALVAGUARDA")
+ SALVAGUARDA("SALVAGUARDA"),
+
+ @XmlEnumValue("MULTA")
+ @JsonProperty("MULTA")
+ MULTA("MULTA");
+
+
+ private final String value;
+
+ CodigoEnum(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static CodigoEnum fromValue(String v) {
+ for (CodigoEnum b : CodigoEnum.values()) {
+ if (String.valueOf(b.value).equals(v)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + v + "' to CodigoEnum");
+ }
+ }
+
+ @XmlElement(name = "codigo")
+ @ApiModelProperty(example = "IPI", value = "Código do regime tributário.
Domínio:")
+ /**
+ * Código do regime tributário.
Domínio:
+ **/
+ private CodigoEnum codigo = null;
+
+ /**
+ * Código do regime tributário.<br>Domínio:
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ public String getCodigo() {
+ if (codigo == null) {
+ return null;
+ }
+ return codigo.value();
+ }
+
+ public void setCodigo(CodigoEnum codigo) {
+ this.codigo = codigo;
+ }
+
+ public TributoCover codigo(CodigoEnum codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class TributoCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/TributoItemCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/TributoItemCover.java
new file mode 100644
index 0000000..b441aac
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_itens/model/TributoItemCover.java
@@ -0,0 +1,152 @@
+package br.gov.siscomex.portalunico.duimp_balanca_itens.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import java.util.List;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "TributoItemCover", propOrder =
+ {"tributo", "regime", "fundamento", "atributos"
+ })
+
+@XmlRootElement(name = "TributoItemCover")
+/**
+ * Lista de Tributos.
Origem: Sistema Tratamento Tributário - https://api-docs.portalunico.siscomex.gov.br/
+ **/
+@ApiModel(description = "Lista de Tributos.
Origem: Sistema Tratamento Tributário - https://api-docs.portalunico.siscomex.gov.br/")
+public class TributoItemCover {
+
+ @XmlElement(name = "tributo")
+ @ApiModelProperty(value = "")
+ @Valid
+ private TributoCover tributo = null;
+
+ @XmlElement(name = "regime")
+ @ApiModelProperty(value = "")
+ @Valid
+ private RegimeCover regime = null;
+
+ @XmlElement(name = "fundamento")
+ @ApiModelProperty(value = "")
+ @Valid
+ private FundamentoCover fundamento = null;
+
+ @XmlElement(name = "atributos")
+ @ApiModelProperty(value = "")
+ @Valid
+ private List
Origem: Sistema Tratamento Tributário - https://api-docs.portalunico.siscomex.gov.br/
+ **/
+@ApiModel(description = "Lista de Tributos.
Origem: Sistema Tratamento Tributário - https://api-docs.portalunico.siscomex.gov.br/")
+public class TributosConsultaItemCover {
+
+ @XmlElement(name = "mercadoria")
+ @ApiModelProperty(value = "")
+ @Valid
+ private MercadoriaValoresCalculadosItemCover mercadoria = null;
+
+ @XmlElement(name = "tributosAplicados")
+ @ApiModelProperty(value = "Para Duimp de situação especial de despacho cujo motivo indicar cobrança de tributos suspensos: o cálculo dos tributos será feito em conformidade com os fundamentos legais informados na declaração de admissão")
+ @Valid
+ /**
+ * Para Duimp de situação especial de despacho cujo motivo indicar cobrança de tributos suspensos: o cálculo dos tributos será feito em conformidade com os fundamentos legais informados na declaração de admissão
+ **/
+ private List
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ @Valid
+ /**
+ * Valor Calculado do Tributo em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private BigDecimal calculado = null;
+
+ @XmlElement(name = "aReduzir")
+ @ApiModelProperty(example = "165.7", value = "Valor a Reduzir do Tributo em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ @Valid
+ /**
+ * Valor a Reduzir do Tributo em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private BigDecimal aReduzir = null;
+
+ @XmlElement(name = "devido")
+ @ApiModelProperty(example = "16.7", value = "Valor Devido do Tributo em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ @Valid
+ /**
+ * Valor Devido do Tributo em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private BigDecimal devido = null;
+
+ @XmlElement(name = "suspenso")
+ @ApiModelProperty(example = "16.7", value = "Valor Suspenso do Tributo em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ @Valid
+ /**
+ * Valor Suspenso do Tributo em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private BigDecimal suspenso = null;
+
+ @XmlElement(name = "aRecolher")
+ @ApiModelProperty(example = "16.7", value = "Valor a Recolher do Imposto de Importação em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ @Valid
+ /**
+ * Valor a Recolher do Imposto de Importação em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private BigDecimal aRecolher = null;
+
+ @XmlElement(name = "originalDevido")
+ @ApiModelProperty(example = "16.7", value = "Valor do Tributo Originalmente Devido em R$ (Reais), para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso.
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ @Valid
+ /**
+ * Valor do Tributo Originalmente Devido em R$ (Reais), para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso.
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private BigDecimal originalDevido = null;
+
+ @XmlElement(name = "calculadoPagProporcional")
+ @ApiModelProperty(example = "16.7", value = "Valor do Tributo Calculado do Pagamento Proporcional em R$ (Reais), para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso.
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ @Valid
+ /**
+ * Valor do Tributo Calculado do Pagamento Proporcional em R$ (Reais), para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso.
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private BigDecimal calculadoPagProporcional = null;
+
+ /**
+ * Valor Calculado do Tributo em R$ (Reais).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return calculado
+ **/
+ @JsonProperty("calculado")
+ public BigDecimal getCalculado() {
+ return calculado;
+ }
+
+ public void setCalculado(BigDecimal calculado) {
+ this.calculado = calculado;
+ }
+
+ public ValoresTributoItemCover calculado(BigDecimal calculado) {
+ this.calculado = calculado;
+ return this;
+ }
+
+ /**
+ * Valor a Reduzir do Tributo em R$ (Reais).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return aReduzir
+ **/
+ @JsonProperty("aReduzir")
+ public BigDecimal getAReduzir() {
+ return aReduzir;
+ }
+
+ public void setAReduzir(BigDecimal aReduzir) {
+ this.aReduzir = aReduzir;
+ }
+
+ public ValoresTributoItemCover aReduzir(BigDecimal aReduzir) {
+ this.aReduzir = aReduzir;
+ return this;
+ }
+
+ /**
+ * Valor Devido do Tributo em R$ (Reais).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return devido
+ **/
+ @JsonProperty("devido")
+ public BigDecimal getDevido() {
+ return devido;
+ }
+
+ public void setDevido(BigDecimal devido) {
+ this.devido = devido;
+ }
+
+ public ValoresTributoItemCover devido(BigDecimal devido) {
+ this.devido = devido;
+ return this;
+ }
+
+ /**
+ * Valor Suspenso do Tributo em R$ (Reais).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return suspenso
+ **/
+ @JsonProperty("suspenso")
+ public BigDecimal getSuspenso() {
+ return suspenso;
+ }
+
+ public void setSuspenso(BigDecimal suspenso) {
+ this.suspenso = suspenso;
+ }
+
+ public ValoresTributoItemCover suspenso(BigDecimal suspenso) {
+ this.suspenso = suspenso;
+ return this;
+ }
+
+ /**
+ * Valor a Recolher do Imposto de Importação em R$ (Reais).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return aRecolher
+ **/
+ @JsonProperty("aRecolher")
+ public BigDecimal getARecolher() {
+ return aRecolher;
+ }
+
+ public void setARecolher(BigDecimal aRecolher) {
+ this.aRecolher = aRecolher;
+ }
+
+ public ValoresTributoItemCover aRecolher(BigDecimal aRecolher) {
+ this.aRecolher = aRecolher;
+ return this;
+ }
+
+ /**
+ * Valor do Tributo Originalmente Devido em R$ (Reais), para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso.<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return originalDevido
+ **/
+ @JsonProperty("originalDevido")
+ public BigDecimal getOriginalDevido() {
+ return originalDevido;
+ }
+
+ public void setOriginalDevido(BigDecimal originalDevido) {
+ this.originalDevido = originalDevido;
+ }
+
+ public ValoresTributoItemCover originalDevido(BigDecimal originalDevido) {
+ this.originalDevido = originalDevido;
+ return this;
+ }
+
+ /**
+ * Valor do Tributo Calculado do Pagamento Proporcional em R$ (Reais), para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso.<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return calculadoPagProporcional
+ **/
+ @JsonProperty("calculadoPagProporcional")
+ public BigDecimal getCalculadoPagProporcional() {
+ return calculadoPagProporcional;
+ }
+
+ public void setCalculadoPagProporcional(BigDecimal calculadoPagProporcional) {
+ this.calculadoPagProporcional = calculadoPagProporcional;
+ }
+
+ public ValoresTributoItemCover calculadoPagProporcional(BigDecimal calculadoPagProporcional) {
+ this.calculadoPagProporcional = calculadoPagProporcional;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class ValoresTributoItemCover {\n" +
+ " calculado: " + toIndentedString(calculado) + "\n" +
+ " aReduzir: " + toIndentedString(aReduzir) + "\n" +
+ " devido: " + toIndentedString(devido) + "\n" +
+ " suspenso: " + toIndentedString(suspenso) + "\n" +
+ " aRecolher: " + toIndentedString(aRecolher) + "\n" +
+ " originalDevido: " + toIndentedString(originalDevido) + "\n" +
+ " calculadoPagProporcional: " + toIndentedString(calculadoPagProporcional) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/api/DuimpDadosGeraisApi.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/api/DuimpDadosGeraisApi.java
new file mode 100644
index 0000000..54811b3
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/api/DuimpDadosGeraisApi.java
@@ -0,0 +1,45 @@
+package br.gov.siscomex.portalunico.duimp_balanca_principal.api;
+
+import br.gov.siscomex.portalunico.duimp_balanca_principal.model.DuimpBalancaComercialCover;
+import br.gov.siscomex.portalunico.duimp_balanca_principal.model.RespostaApiErroBalanca;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+
+import javax.ws.rs.DefaultValue;
+import javax.ws.rs.GET;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.Response;
+
+/**
+ * Declaração Única de Importação - Balança Comercial - Dados Gerais e Totalizadores
+ *
+ *
Este token é recuperado no parâmetro Set-Token no response da autenticação", required = true) @HeaderParam("Authorization") String authorization, @ApiParam(value = "Token de prevenção contra ataques CSRF.
Este token é recuperado no parâmetro X-CSRF-Token no response da autenticação", required = true) @HeaderParam("X-CSRF-Token") String xCSRFToken, @ApiParam(value = "Data inicial de desembaraço a ser considerada no filtro de pesquisa.
Formato: 'AAAA-MM-DD'
Atenção:
Este abributo deve ser utilizado apenas na recuperação da primeira página.
Nas demais páginas deve ser utilizado o atributo id-consulta fornecido no header da resposta da primeira página!") @QueryParam("data-inicial-desembaraco") String dataInicialDesembaraco, @ApiParam(value = "Data final de desembaraço a ser considerada no filtro de pesquisa.
Formato: 'AAAA-MM-DD'
Atenção:
Este abributo deve ser utilizado apenas na recuperação da primeira página.
Nas demais páginas deve ser utilizado o atributo id-consulta fornecido no header da resposta da primeira página!") @QueryParam("data-final-desembaraco") String dataFinalDesembaraco, @ApiParam(value = "Data inicial da última atualização a ser considerada no filtro de pesquisa.
Formato: 'AAAA-MM-DD'
Atenção:
Este abributo deve ser utilizado apenas na recuperação da primeira página.
Nas demais páginas deve ser utilizado o atributo id-consulta fornecido no header da resposta da primeira página!") @QueryParam("data-inicial-atualizacao") String dataInicialAtualizacao, @ApiParam(value = "Data final da última atualização a ser considerada no filtro de pesquisa.
Formato: 'AAAA-MM-DD'
Atenção:
Este abributo deve ser utilizado apenas na recuperação da primeira página.
Nas demais páginas deve ser utilizado o atributo id-consulta fornecido no header da resposta da primeira página!") @QueryParam("data-final-atualizacao") String dataFinalAtualizacao, @ApiParam(value = "Identificador único da consulta.
O valor deste parâmetro é recuperado no header da primeira página de uma nova busca com filtro.
Este atributo é obrigatório para recuperar as próximas páginas da consulta") @QueryParam("id-consulta") String idConsulta, @ApiParam(value = "Deslocamento do primeiro elemento a ser recebido na consulta.
O valor padrão é zero, para indicar que se deseja receber o primeiro elemento da consulta, sem qualquer deslocamento
Formato: Inteiro, com até 10 dígitos", defaultValue = "0") @DefaultValue("0") @QueryParam("offset") Integer offset, @ApiParam(value = "Tamanho limite da quantidade de dados retornados em uma página.
Formato: Inteiro, com até 10 dígitos", defaultValue = "1000") @DefaultValue("1000") @QueryParam("limit") Integer limit);
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/api/DuimpTotalizadoresApi.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/api/DuimpTotalizadoresApi.java
new file mode 100644
index 0000000..24a8c27
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/api/DuimpTotalizadoresApi.java
@@ -0,0 +1,61 @@
+package br.gov.siscomex.portalunico.duimp_balanca_principal.api;
+
+import br.gov.siscomex.portalunico.duimp_balanca_principal.model.BalancaDuimpSumarioCover;
+import br.gov.siscomex.portalunico.duimp_balanca_principal.model.BalancaDuimpTotaisCover;
+import br.gov.siscomex.portalunico.duimp_balanca_principal.model.RespostaApiErroBalanca;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+
+import javax.validation.constraints.NotNull;
+import javax.ws.rs.GET;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.Response;
+
+/**
+ * Declaração Única de Importação - Balança Comercial - Dados Gerais e Totalizadores
+ *
+ *
Formato: 'AAAA-MM-DD'", required = true) @QueryParam("data-inicial") String dataInicial, @NotNull @ApiParam(value = "Data final de desembaraço a ser considerada no filtro de pesquisa.
Formato: 'AAAA-MM-DD'", required = true) @QueryParam("data-final") String dataFinal, @ApiParam(value = "JSON Web Token (JWT) contendo as informações do usuário.
Este token é recuperado no parâmetro Set-Token no response da autenticação", required = true) @HeaderParam("Authorization") String authorization, @ApiParam(value = "Token de prevenção contra ataques CSRF.
Este token é recuperado no parâmetro X-CSRF-Token no response da autenticação", required = true) @HeaderParam("X-CSRF-Token") String xCSRFToken);
+
+ /**
+ * Recupera os Totais Gerais: Recupera os totalizadores das Duimps seleciondas utilizando os mesmos parâmetros da Consulta dos Dados Gerais .
+ */
+ @GET
+ @Path("/totalizadores/quantidades-totais")
+ @Produces({"application/json"})
+ @ApiOperation(value = "Recupera os Totais Gerais: Recupera os totalizadores das Duimps seleciondas utilizando os mesmos parâmetros da Consulta dos Dados Gerais .", notes = "", tags = {"Duimp - Totalizadores"})
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "Operação realizada com sucesso", response = BalancaDuimpTotaisCover.class),
+ @ApiResponse(code = 401, message = "Usuário não autenticado ou autenticação inválida", response = RespostaApiErroBalanca.class),
+ @ApiResponse(code = 403, message = "Usuário não tem permissão de acesso ao recurso", response = RespostaApiErroBalanca.class),
+ @ApiResponse(code = 404, message = "Recurso não encontrado", response = RespostaApiErroBalanca.class),
+ @ApiResponse(code = 422, message = "Erro(s) de validação da camada de negócio", response = RespostaApiErroBalanca.class),
+ @ApiResponse(code = 500, message = "Erro interno no servidor", response = RespostaApiErroBalanca.class)})
+ Response obterQuantidadesTotaisUsingGET(@NotNull @ApiParam(value = "Data inicial de desembaraço a ser considerada no filtro de pesquisa.
Formato: 'AAAA-MM-DD'", required = true) @QueryParam("data-inicial-desembaraco") String dataInicialDesembaraco, @NotNull @ApiParam(value = "Data final de desembaraço a ser considerada no filtro de pesquisa.
Formato: 'AAAA-MM-DD'", required = true) @QueryParam("data-final-desembaraco") String dataFinalDesembaraco, @NotNull @ApiParam(value = "Data inicial da última atualização a ser considerada no filtro de pesquisa.
Formato: 'AAAA-MM-DD'", required = true) @QueryParam("data-inicial-atualizacao") String dataInicialAtualizacao, @NotNull @ApiParam(value = "Data final da última atualização a ser considerada no filtro de pesquisa.
Formato: 'AAAA-MM-DD'", required = true) @QueryParam("data-final-atualizacao") String dataFinalAtualizacao, @ApiParam(value = "JSON Web Token (JWT) contendo as informações do usuário.
Este token é recuperado no parâmetro Set-Token no response da autenticação", required = true) @HeaderParam("Authorization") String authorization, @ApiParam(value = "Token de prevenção contra ataques CSRF.
Este token é recuperado no parâmetro X-CSRF-Token no response da autenticação", required = true) @HeaderParam("X-CSRF-Token") String xCSRFToken);
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/BalancaDuimpSumarioCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/BalancaDuimpSumarioCover.java
new file mode 100644
index 0000000..beff320
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/BalancaDuimpSumarioCover.java
@@ -0,0 +1,212 @@
+package br.gov.siscomex.portalunico.duimp_balanca_principal.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import java.math.BigDecimal;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "BalancaDuimpSumarioCover", propOrder =
+ {"dataDesembaraco", "quantidadeTotalDuimp", "quantidadeTotaltensDuimp", "somatorioValorTotalCondicaoVenda", "somatorioValorTotalLocalEmbarque", "somatorioPesoItensDuimp"
+ })
+
+@XmlRootElement(name = "BalancaDuimpSumarioCover")
+/**
+ * Dados do Sumario das Duimps em uma data específica
+ **/
+@ApiModel(description = "Dados do Sumario das Duimps em uma data específica")
+public class BalancaDuimpSumarioCover {
+
+ @XmlElement(name = "dataDesembaraco")
+ @ApiModelProperty(example = "2024-01-31", value = "Data de desembaraço das Duimps selecionadas na data.
Formato: 'AAAA-MM-DD'")
+ /**
+ * Data de desembaraço das Duimps selecionadas na data.
Formato: 'AAAA-MM-DD'
+ **/
+ private String dataDesembaraco = null;
+
+ @XmlElement(name = "quantidadeTotalDuimp")
+ @ApiModelProperty(example = "1000", value = "Quantidade de duimps desembaraçadas na data.
Valor mínimo: 1
Valor máximo: 9999999999")
+ /**
+ * Quantidade de duimps desembaraçadas na data.
Valor mínimo: 1
Valor máximo: 9999999999
+ **/
+ private Long quantidadeTotalDuimp = null;
+
+ @XmlElement(name = "quantidadeTotaltensDuimp")
+ @ApiModelProperty(example = "20000", value = "Soma da quantidade de itens das Duimps selecionadas desembaraçadas na data.
Valor mínimo: 1
Valor máximo: 9999999999")
+ /**
+ * Soma da quantidade de itens das Duimps selecionadas desembaraçadas na data.
Valor mínimo: 1
Valor máximo: 9999999999
+ **/
+ private Long quantidadeTotaltensDuimp = null;
+
+ @XmlElement(name = "somatorioValorTotalCondicaoVenda")
+ @ApiModelProperty(example = "1.1234567", value = "Soma do valor na condição de venda dos Itens das Duimps selecionadas na data.
Atributo de origem no item: item.condicaoVenda.valorMoedaNegociada
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ @Valid
+ /**
+ * Soma do valor na condição de venda dos Itens das Duimps selecionadas na data.
Atributo de origem no item: item.condicaoVenda.valorMoedaNegociada
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private BigDecimal somatorioValorTotalCondicaoVenda = null;
+
+ @XmlElement(name = "somatorioValorTotalLocalEmbarque")
+ @ApiModelProperty(example = "1.1234567", value = "Soma do valor da mercadoria no local de embarque das Duimp selecionadas na data.
Atributo de origem no item: item.tributos.mercadoria.valorLocalEmbarqueBRL
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ @Valid
+ /**
+ * Soma do valor da mercadoria no local de embarque das Duimp selecionadas na data.
Atributo de origem no item: item.tributos.mercadoria.valorLocalEmbarqueBRL
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private BigDecimal somatorioValorTotalLocalEmbarque = null;
+
+ @XmlElement(name = "somatorioPesoItensDuimp")
+ @ApiModelProperty(example = "1.12345", value = "Soma do peso líquido dos itens das Duimps selecionadas da data
Atributo de origem no item: item.mercadoria.pesoLiquido
Tamanho: 16,5
Formato: Decimal, com até 5 casas decimais separadas por ponto.")
+ @Valid
+ /**
+ * Soma do peso líquido dos itens das Duimps selecionadas da data
Atributo de origem no item: item.mercadoria.pesoLiquido
Tamanho: 16,5
Formato: Decimal, com até 5 casas decimais separadas por ponto.
+ **/
+ private BigDecimal somatorioPesoItensDuimp = null;
+
+ /**
+ * Data de desembaraço das Duimps selecionadas na data.<br>Formato: 'AAAA-MM-DD'
+ *
+ * @return dataDesembaraco
+ **/
+ @JsonProperty("dataDesembaraco")
+ public String getDataDesembaraco() {
+ return dataDesembaraco;
+ }
+
+ public void setDataDesembaraco(String dataDesembaraco) {
+ this.dataDesembaraco = dataDesembaraco;
+ }
+
+ public BalancaDuimpSumarioCover dataDesembaraco(String dataDesembaraco) {
+ this.dataDesembaraco = dataDesembaraco;
+ return this;
+ }
+
+ /**
+ * Quantidade de duimps desembaraçadas na data.<br>Valor mínimo: 1<br>Valor máximo: 9999999999
+ *
+ * @return quantidadeTotalDuimp
+ **/
+ @JsonProperty("quantidadeTotalDuimp")
+ public Long getQuantidadeTotalDuimp() {
+ return quantidadeTotalDuimp;
+ }
+
+ public void setQuantidadeTotalDuimp(Long quantidadeTotalDuimp) {
+ this.quantidadeTotalDuimp = quantidadeTotalDuimp;
+ }
+
+ public BalancaDuimpSumarioCover quantidadeTotalDuimp(Long quantidadeTotalDuimp) {
+ this.quantidadeTotalDuimp = quantidadeTotalDuimp;
+ return this;
+ }
+
+ /**
+ * Soma da quantidade de itens das Duimps selecionadas desembaraçadas na data.<br>Valor mínimo: 1<br>Valor máximo: 9999999999
+ *
+ * @return quantidadeTotaltensDuimp
+ **/
+ @JsonProperty("quantidadeTotaltensDuimp")
+ public Long getQuantidadeTotaltensDuimp() {
+ return quantidadeTotaltensDuimp;
+ }
+
+ public void setQuantidadeTotaltensDuimp(Long quantidadeTotaltensDuimp) {
+ this.quantidadeTotaltensDuimp = quantidadeTotaltensDuimp;
+ }
+
+ public BalancaDuimpSumarioCover quantidadeTotaltensDuimp(Long quantidadeTotaltensDuimp) {
+ this.quantidadeTotaltensDuimp = quantidadeTotaltensDuimp;
+ return this;
+ }
+
+ /**
+ * Soma do valor na condição de venda dos Itens das Duimps selecionadas na data. <br>Atributo de origem no item: item.condicaoVenda.valorMoedaNegociada<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return somatorioValorTotalCondicaoVenda
+ **/
+ @JsonProperty("somatorioValorTotalCondicaoVenda")
+ public BigDecimal getSomatorioValorTotalCondicaoVenda() {
+ return somatorioValorTotalCondicaoVenda;
+ }
+
+ public void setSomatorioValorTotalCondicaoVenda(BigDecimal somatorioValorTotalCondicaoVenda) {
+ this.somatorioValorTotalCondicaoVenda = somatorioValorTotalCondicaoVenda;
+ }
+
+ public BalancaDuimpSumarioCover somatorioValorTotalCondicaoVenda(BigDecimal somatorioValorTotalCondicaoVenda) {
+ this.somatorioValorTotalCondicaoVenda = somatorioValorTotalCondicaoVenda;
+ return this;
+ }
+
+ /**
+ * Soma do valor da mercadoria no local de embarque das Duimp selecionadas na data.<br>Atributo de origem no item: item.tributos.mercadoria.valorLocalEmbarqueBRL<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return somatorioValorTotalLocalEmbarque
+ **/
+ @JsonProperty("somatorioValorTotalLocalEmbarque")
+ public BigDecimal getSomatorioValorTotalLocalEmbarque() {
+ return somatorioValorTotalLocalEmbarque;
+ }
+
+ public void setSomatorioValorTotalLocalEmbarque(BigDecimal somatorioValorTotalLocalEmbarque) {
+ this.somatorioValorTotalLocalEmbarque = somatorioValorTotalLocalEmbarque;
+ }
+
+ public BalancaDuimpSumarioCover somatorioValorTotalLocalEmbarque(BigDecimal somatorioValorTotalLocalEmbarque) {
+ this.somatorioValorTotalLocalEmbarque = somatorioValorTotalLocalEmbarque;
+ return this;
+ }
+
+ /**
+ * Soma do peso líquido dos itens das Duimps selecionadas da data<br>Atributo de origem no item: item.mercadoria.pesoLiquido<br>Tamanho: 16,5<br>Formato: Decimal, com até 5 casas decimais separadas por ponto.
+ *
+ * @return somatorioPesoItensDuimp
+ **/
+ @JsonProperty("somatorioPesoItensDuimp")
+ public BigDecimal getSomatorioPesoItensDuimp() {
+ return somatorioPesoItensDuimp;
+ }
+
+ public void setSomatorioPesoItensDuimp(BigDecimal somatorioPesoItensDuimp) {
+ this.somatorioPesoItensDuimp = somatorioPesoItensDuimp;
+ }
+
+ public BalancaDuimpSumarioCover somatorioPesoItensDuimp(BigDecimal somatorioPesoItensDuimp) {
+ this.somatorioPesoItensDuimp = somatorioPesoItensDuimp;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class BalancaDuimpSumarioCover {\n" +
+ " dataDesembaraco: " + toIndentedString(dataDesembaraco) + "\n" +
+ " quantidadeTotalDuimp: " + toIndentedString(quantidadeTotalDuimp) + "\n" +
+ " quantidadeTotaltensDuimp: " + toIndentedString(quantidadeTotaltensDuimp) + "\n" +
+ " somatorioValorTotalCondicaoVenda: " + toIndentedString(somatorioValorTotalCondicaoVenda) + "\n" +
+ " somatorioValorTotalLocalEmbarque: " + toIndentedString(somatorioValorTotalLocalEmbarque) + "\n" +
+ " somatorioPesoItensDuimp: " + toIndentedString(somatorioPesoItensDuimp) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/BalancaDuimpTotaisCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/BalancaDuimpTotaisCover.java
new file mode 100644
index 0000000..ac2a3ce
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/BalancaDuimpTotaisCover.java
@@ -0,0 +1,94 @@
+package br.gov.siscomex.portalunico.duimp_balanca_principal.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "BalancaDuimpTotaisCover", propOrder =
+ {"quantidadeTotalDuimp", "quantidadeTotaltensDuimp"
+ })
+
+@XmlRootElement(name = "BalancaDuimpTotaisCover")
+public class BalancaDuimpTotaisCover {
+
+ @XmlElement(name = "quantidadeTotalDuimp")
+ @ApiModelProperty(value = "Quantidade de Duimps selecionadas no período pesquisado.
Valor mínimo: 1
Valor máximo: 9999999999")
+ /**
+ * Quantidade de Duimps selecionadas no período pesquisado.
Valor mínimo: 1
Valor máximo: 9999999999
+ **/
+ private Long quantidadeTotalDuimp = null;
+
+ @XmlElement(name = "quantidadeTotaltensDuimp")
+ @ApiModelProperty(value = "Soma da quantidade de itens das Duimps selecionadas no período pesquisado.
Valor mínimo: 1
Valor máximo: 9999999999")
+ /**
+ * Soma da quantidade de itens das Duimps selecionadas no período pesquisado.
Valor mínimo: 1
Valor máximo: 9999999999
+ **/
+ private Long quantidadeTotaltensDuimp = null;
+
+ /**
+ * Quantidade de Duimps selecionadas no período pesquisado.<br>Valor mínimo: 1<br>Valor máximo: 9999999999
+ *
+ * @return quantidadeTotalDuimp
+ **/
+ @JsonProperty("quantidadeTotalDuimp")
+ public Long getQuantidadeTotalDuimp() {
+ return quantidadeTotalDuimp;
+ }
+
+ public void setQuantidadeTotalDuimp(Long quantidadeTotalDuimp) {
+ this.quantidadeTotalDuimp = quantidadeTotalDuimp;
+ }
+
+ public BalancaDuimpTotaisCover quantidadeTotalDuimp(Long quantidadeTotalDuimp) {
+ this.quantidadeTotalDuimp = quantidadeTotalDuimp;
+ return this;
+ }
+
+ /**
+ * Soma da quantidade de itens das Duimps selecionadas no período pesquisado.<br>Valor mínimo: 1<br>Valor máximo: 9999999999
+ *
+ * @return quantidadeTotaltensDuimp
+ **/
+ @JsonProperty("quantidadeTotaltensDuimp")
+ public Long getQuantidadeTotaltensDuimp() {
+ return quantidadeTotaltensDuimp;
+ }
+
+ public void setQuantidadeTotaltensDuimp(Long quantidadeTotaltensDuimp) {
+ this.quantidadeTotaltensDuimp = quantidadeTotaltensDuimp;
+ }
+
+ public BalancaDuimpTotaisCover quantidadeTotaltensDuimp(Long quantidadeTotaltensDuimp) {
+ this.quantidadeTotaltensDuimp = quantidadeTotaltensDuimp;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class BalancaDuimpTotaisCover {\n" +
+ " quantidadeTotalDuimp: " + toIndentedString(quantidadeTotalDuimp) + "\n" +
+ " quantidadeTotaltensDuimp: " + toIndentedString(quantidadeTotaltensDuimp) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/CargaDuimpConsultaCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/CargaDuimpConsultaCover.java
new file mode 100644
index 0000000..7d26a9c
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/CargaDuimpConsultaCover.java
@@ -0,0 +1,269 @@
+package br.gov.siscomex.portalunico.duimp_balanca_principal.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CargaDuimpConsultaCover", propOrder =
+ {"unidadeDeclarada", "tipoIdentificacaoCarga", "identificacao", "seguro", "frete", "paisProcedencia", "motivoSituacaoEspecial"
+ })
+
+@XmlRootElement(name = "CargaDuimpConsultaCover")
+/**
+ * Dados da carga.
+ **/
+@ApiModel(description = "Dados da carga.")
+public class CargaDuimpConsultaCover {
+
+ @XmlElement(name = "unidadeDeclarada")
+ @ApiModelProperty(value = "")
+ @Valid
+ private UnidadeDeclaradaCover unidadeDeclarada = null;
+
+
+ @XmlType(name = "TipoIdentificacaoCargaEnum")
+ @XmlEnum(String.class)
+ public enum TipoIdentificacaoCargaEnum {
+
+ @XmlEnumValue("CE")
+ @JsonProperty("CE")
+ CE("CE"),
+
+ @XmlEnumValue("RUC")
+ @JsonProperty("RUC")
+ RUC("RUC");
+
+
+ private final String value;
+
+ TipoIdentificacaoCargaEnum(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static TipoIdentificacaoCargaEnum fromValue(String v) {
+ for (TipoIdentificacaoCargaEnum b : TipoIdentificacaoCargaEnum.values()) {
+ if (String.valueOf(b.value).equals(v)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + v + "' to TipoIdentificacaoCargaEnum");
+ }
+ }
+
+ @XmlElement(name = "tipoIdentificacaoCarga")
+ @ApiModelProperty(example = "CE", value = "Descreve se a identificação da carga é do tipo CE ou RUC")
+ /**
+ * Descreve se a identificação da carga é do tipo CE ou RUC
+ **/
+ private TipoIdentificacaoCargaEnum tipoIdentificacaoCarga = null;
+
+ @XmlElement(name = "identificacao")
+ @ApiModelProperty(value = "Número de Identificação da Carga.
Quando tipo de identificação da carga for CE:
- Tamanho: 15
- Formato: NNNNNNNNNNNNNNN
Quando tipo de identificação da carga for RUC:
- Tamanho mínimo: 1
- Tamanho máximo: 32
Origem: Sistema Siscomex Carga - https://www4.receita.fazenda.gov.br/g33159/jsp/logon.jsp?ind=11
Origem: Portal Único Siscomex - Sistema CCT Importação - https://portalunico.siscomex.gov.br/
Para Duimp COM situação especial de despacho (atributo carga.motivoSituacaoEspecial.codigo preenchido), este atributo será retornado nulo")
+ /**
+ * Número de Identificação da Carga.
Quando tipo de identificação da carga for CE:
- Tamanho: 15
- Formato: NNNNNNNNNNNNNNN
Quando tipo de identificação da carga for RUC:
- Tamanho mínimo: 1
- Tamanho máximo: 32
Origem: Sistema Siscomex Carga - https://www4.receita.fazenda.gov.br/g33159/jsp/logon.jsp?ind=11
Origem: Portal Único Siscomex - Sistema CCT Importação - https://portalunico.siscomex.gov.br/
Para Duimp COM situação especial de despacho (atributo carga.motivoSituacaoEspecial.codigo preenchido), este atributo será retornado nulo
+ **/
+ private String identificacao = null;
+
+ @XmlElement(name = "seguro")
+ @ApiModelProperty(value = "")
+ @Valid
+ private CargaDuimpSeguroConsultaCover seguro = null;
+
+ @XmlElement(name = "frete")
+ @ApiModelProperty(value = "")
+ @Valid
+ private CargaDuimpFreteConsultaCover frete = null;
+
+ @XmlElement(name = "paisProcedencia")
+ @ApiModelProperty(value = "")
+ @Valid
+ private CargaDuimpPaisProcedenciaCover paisProcedencia = null;
+
+ @XmlElement(name = "motivoSituacaoEspecial")
+ @ApiModelProperty(value = "")
+ @Valid
+ private CargaDuimpMotivoSituacaoEspecialCover motivoSituacaoEspecial = null;
+
+ /**
+ * Get unidadeDeclarada
+ *
+ * @return unidadeDeclarada
+ **/
+ @JsonProperty("unidadeDeclarada")
+ public UnidadeDeclaradaCover getUnidadeDeclarada() {
+ return unidadeDeclarada;
+ }
+
+ public void setUnidadeDeclarada(UnidadeDeclaradaCover unidadeDeclarada) {
+ this.unidadeDeclarada = unidadeDeclarada;
+ }
+
+ public CargaDuimpConsultaCover unidadeDeclarada(UnidadeDeclaradaCover unidadeDeclarada) {
+ this.unidadeDeclarada = unidadeDeclarada;
+ return this;
+ }
+
+ /**
+ * Descreve se a identificação da carga é do tipo CE ou RUC
+ *
+ * @return tipoIdentificacaoCarga
+ **/
+ @JsonProperty("tipoIdentificacaoCarga")
+ public String getTipoIdentificacaoCarga() {
+ if (tipoIdentificacaoCarga == null) {
+ return null;
+ }
+ return tipoIdentificacaoCarga.value();
+ }
+
+ public void setTipoIdentificacaoCarga(TipoIdentificacaoCargaEnum tipoIdentificacaoCarga) {
+ this.tipoIdentificacaoCarga = tipoIdentificacaoCarga;
+ }
+
+ public CargaDuimpConsultaCover tipoIdentificacaoCarga(TipoIdentificacaoCargaEnum tipoIdentificacaoCarga) {
+ this.tipoIdentificacaoCarga = tipoIdentificacaoCarga;
+ return this;
+ }
+
+ /**
+ * Número de Identificação da Carga.<br>Quando tipo de identificação da carga for CE: <br> - Tamanho: 15 <br> - Formato: NNNNNNNNNNNNNNN<br>Quando tipo de identificação da carga for RUC: <br> - Tamanho mínimo: 1<br> - Tamanho máximo: 32<br>Origem: Sistema Siscomex Carga - https://www4.receita.fazenda.gov.br/g33159/jsp/logon.jsp?ind=11<br><br>Origem: Portal Único Siscomex - Sistema CCT Importação - https://portalunico.siscomex.gov.br/<br>Para Duimp COM situação especial de despacho (atributo carga.motivoSituacaoEspecial.codigo preenchido), este atributo será retornado nulo
+ *
+ * @return identificacao
+ **/
+ @JsonProperty("identificacao")
+ public String getIdentificacao() {
+ return identificacao;
+ }
+
+ public void setIdentificacao(String identificacao) {
+ this.identificacao = identificacao;
+ }
+
+ public CargaDuimpConsultaCover identificacao(String identificacao) {
+ this.identificacao = identificacao;
+ return this;
+ }
+
+ /**
+ * Get seguro
+ *
+ * @return seguro
+ **/
+ @JsonProperty("seguro")
+ public CargaDuimpSeguroConsultaCover getSeguro() {
+ return seguro;
+ }
+
+ public void setSeguro(CargaDuimpSeguroConsultaCover seguro) {
+ this.seguro = seguro;
+ }
+
+ public CargaDuimpConsultaCover seguro(CargaDuimpSeguroConsultaCover seguro) {
+ this.seguro = seguro;
+ return this;
+ }
+
+ /**
+ * Get frete
+ *
+ * @return frete
+ **/
+ @JsonProperty("frete")
+ public CargaDuimpFreteConsultaCover getFrete() {
+ return frete;
+ }
+
+ public void setFrete(CargaDuimpFreteConsultaCover frete) {
+ this.frete = frete;
+ }
+
+ public CargaDuimpConsultaCover frete(CargaDuimpFreteConsultaCover frete) {
+ this.frete = frete;
+ return this;
+ }
+
+ /**
+ * Get paisProcedencia
+ *
+ * @return paisProcedencia
+ **/
+ @JsonProperty("paisProcedencia")
+ public CargaDuimpPaisProcedenciaCover getPaisProcedencia() {
+ return paisProcedencia;
+ }
+
+ public void setPaisProcedencia(CargaDuimpPaisProcedenciaCover paisProcedencia) {
+ this.paisProcedencia = paisProcedencia;
+ }
+
+ public CargaDuimpConsultaCover paisProcedencia(CargaDuimpPaisProcedenciaCover paisProcedencia) {
+ this.paisProcedencia = paisProcedencia;
+ return this;
+ }
+
+ /**
+ * Get motivoSituacaoEspecial
+ *
+ * @return motivoSituacaoEspecial
+ **/
+ @JsonProperty("motivoSituacaoEspecial")
+ public CargaDuimpMotivoSituacaoEspecialCover getMotivoSituacaoEspecial() {
+ return motivoSituacaoEspecial;
+ }
+
+ public void setMotivoSituacaoEspecial(CargaDuimpMotivoSituacaoEspecialCover motivoSituacaoEspecial) {
+ this.motivoSituacaoEspecial = motivoSituacaoEspecial;
+ }
+
+ public CargaDuimpConsultaCover motivoSituacaoEspecial(CargaDuimpMotivoSituacaoEspecialCover motivoSituacaoEspecial) {
+ this.motivoSituacaoEspecial = motivoSituacaoEspecial;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class CargaDuimpConsultaCover {\n" +
+ " unidadeDeclarada: " + toIndentedString(unidadeDeclarada) + "\n" +
+ " tipoIdentificacaoCarga: " + toIndentedString(tipoIdentificacaoCarga) + "\n" +
+ " identificacao: " + toIndentedString(identificacao) + "\n" +
+ " seguro: " + toIndentedString(seguro) + "\n" +
+ " frete: " + toIndentedString(frete) + "\n" +
+ " paisProcedencia: " + toIndentedString(paisProcedencia) + "\n" +
+ " motivoSituacaoEspecial: " + toIndentedString(motivoSituacaoEspecial) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/CargaDuimpFreteConsultaCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/CargaDuimpFreteConsultaCover.java
new file mode 100644
index 0000000..9f363f2
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/CargaDuimpFreteConsultaCover.java
@@ -0,0 +1,102 @@
+package br.gov.siscomex.portalunico.duimp_balanca_principal.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import java.math.BigDecimal;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CargaDuimpFreteConsultaCover", propOrder =
+ {"codigoMoedaNegociada", "valorMoedaNegociada"
+ })
+
+@XmlRootElement(name = "CargaDuimpFreteConsultaCover")
+/**
+ * Dados do frete
+ **/
+@ApiModel(description = "Dados do frete")
+public class CargaDuimpFreteConsultaCover {
+
+ @XmlElement(name = "codigoMoedaNegociada")
+ @ApiModelProperty(example = "USD", value = "Código da moeda negociada do frete (ISO-4217).
Tamanho: 3
Formato: 'AAA' Para Duimp COM situação especial de despacho (atributo carga.motivoSituacaoEspecial.codigo preenchido), este atributo será retornado nulo")
+ /**
+ * Código da moeda negociada do frete (ISO-4217).
Tamanho: 3
Formato: 'AAA' Para Duimp COM situação especial de despacho (atributo carga.motivoSituacaoEspecial.codigo preenchido), este atributo será retornado nulo
+ **/
+ private String codigoMoedaNegociada = null;
+
+ @XmlElement(name = "valorMoedaNegociada")
+ @ApiModelProperty(example = "30.22", value = "Valor do frete na moeda negociada.
Tamanho: 13,2
Formato: Decimal, com até 2 casas decimais separadas por ponto.
Observação:
Para as Duimp registradas a partir de 08/06/2022, o valor do frete utilizado no cálculo do valor aduaneiro não inclui os gastos relativos à carga, à descarga e ao manuseio incorridos no território nacional e destacados do custo de transporte Para Duimp COM situação especial de despacho (atributo carga.motivoSituacaoEspecial.codigo preenchido), este atributo será retornado nulo")
+ @Valid
+ /**
+ * Valor do frete na moeda negociada.
Tamanho: 13,2
Formato: Decimal, com até 2 casas decimais separadas por ponto.
Observação:
Para as Duimp registradas a partir de 08/06/2022, o valor do frete utilizado no cálculo do valor aduaneiro não inclui os gastos relativos à carga, à descarga e ao manuseio incorridos no território nacional e destacados do custo de transporte Para Duimp COM situação especial de despacho (atributo carga.motivoSituacaoEspecial.codigo preenchido), este atributo será retornado nulo
+ **/
+ private BigDecimal valorMoedaNegociada = null;
+
+ /**
+ * Código da moeda negociada do frete (ISO-4217).<br>Tamanho: 3<br>Formato: 'AAA' Para Duimp COM situação especial de despacho (atributo carga.motivoSituacaoEspecial.codigo preenchido), este atributo será retornado nulo
+ *
+ * @return codigoMoedaNegociada
+ **/
+ @JsonProperty("codigoMoedaNegociada")
+ public String getCodigoMoedaNegociada() {
+ return codigoMoedaNegociada;
+ }
+
+ public void setCodigoMoedaNegociada(String codigoMoedaNegociada) {
+ this.codigoMoedaNegociada = codigoMoedaNegociada;
+ }
+
+ public CargaDuimpFreteConsultaCover codigoMoedaNegociada(String codigoMoedaNegociada) {
+ this.codigoMoedaNegociada = codigoMoedaNegociada;
+ return this;
+ }
+
+ /**
+ * Valor do frete na moeda negociada.<br>Tamanho: 13,2<br>Formato: Decimal, com até 2 casas decimais separadas por ponto.<br>Observação:<br>Para as Duimp registradas a partir de 08/06/2022, o valor do frete utilizado no cálculo do valor aduaneiro não inclui os gastos relativos à carga, à descarga e ao manuseio incorridos no território nacional e destacados do custo de transporte Para Duimp COM situação especial de despacho (atributo carga.motivoSituacaoEspecial.codigo preenchido), este atributo será retornado nulo
+ *
+ * @return valorMoedaNegociada
+ **/
+ @JsonProperty("valorMoedaNegociada")
+ public BigDecimal getValorMoedaNegociada() {
+ return valorMoedaNegociada;
+ }
+
+ public void setValorMoedaNegociada(BigDecimal valorMoedaNegociada) {
+ this.valorMoedaNegociada = valorMoedaNegociada;
+ }
+
+ public CargaDuimpFreteConsultaCover valorMoedaNegociada(BigDecimal valorMoedaNegociada) {
+ this.valorMoedaNegociada = valorMoedaNegociada;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class CargaDuimpFreteConsultaCover {\n" +
+ " codigoMoedaNegociada: " + toIndentedString(codigoMoedaNegociada) + "\n" +
+ " valorMoedaNegociada: " + toIndentedString(valorMoedaNegociada) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/CargaDuimpMotivoSituacaoEspecialCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/CargaDuimpMotivoSituacaoEspecialCover.java
new file mode 100644
index 0000000..463c0eb
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/CargaDuimpMotivoSituacaoEspecialCover.java
@@ -0,0 +1,72 @@
+package br.gov.siscomex.portalunico.duimp_balanca_principal.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CargaDuimpMotivoSituacaoEspecialCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "CargaDuimpMotivoSituacaoEspecialCover")
+/**
+ * Motivo da situação especial de despacho da carga
+ **/
+@ApiModel(description = "Motivo da situação especial de despacho da carga")
+public class CargaDuimpMotivoSituacaoEspecialCover {
+
+ @XmlElement(name = "codigo")
+ @ApiModelProperty(example = "1", value = "Código do motivo da situação especial de despacho no sistema.
Tamanho: 5
Formato: 'NNNNN'
Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/ Para Duimp SEM situação especial de despacho (atributo carga.identificacao preenchido), este atributo será retornado nulo")
+ /**
+ * Código do motivo da situação especial de despacho no sistema.
Tamanho: 5
Formato: 'NNNNN'
Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/ Para Duimp SEM situação especial de despacho (atributo carga.identificacao preenchido), este atributo será retornado nulo
+ **/
+ private String codigo = null;
+
+ /**
+ * Código do motivo da situação especial de despacho no sistema.<br>Tamanho: 5<br>Formato: 'NNNNN'<br>Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/ Para Duimp SEM situação especial de despacho (atributo carga.identificacao preenchido), este atributo será retornado nulo
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ public String getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(String codigo) {
+ this.codigo = codigo;
+ }
+
+ public CargaDuimpMotivoSituacaoEspecialCover codigo(String codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class CargaDuimpMotivoSituacaoEspecialCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/CargaDuimpPaisProcedenciaCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/CargaDuimpPaisProcedenciaCover.java
new file mode 100644
index 0000000..98b641d
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/CargaDuimpPaisProcedenciaCover.java
@@ -0,0 +1,72 @@
+package br.gov.siscomex.portalunico.duimp_balanca_principal.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CargaDuimpPaisProcedenciaCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "CargaDuimpPaisProcedenciaCover")
+/**
+ * País de Procedência.
Para DUIMP com tipo de identificação de carga RUC, o país de procedência é informado pelo Importador
+ **/
+@ApiModel(description = "País de Procedência.
Para DUIMP com tipo de identificação de carga RUC, o país de procedência é informado pelo Importador")
+public class CargaDuimpPaisProcedenciaCover {
+
+ @XmlElement(name = "codigo")
+ @ApiModelProperty(example = "CN", value = "Código do país de procedência no formato ISO (3166-1 alfa-2).
Tamanho: 2
Formato: 'AA'")
+ /**
+ * Código do país de procedência no formato ISO (3166-1 alfa-2).
Tamanho: 2
Formato: 'AA'
+ **/
+ private String codigo = null;
+
+ /**
+ * Código do país de procedência no formato ISO (3166-1 alfa-2).<br>Tamanho: 2<br>Formato: 'AA'
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ public String getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(String codigo) {
+ this.codigo = codigo;
+ }
+
+ public CargaDuimpPaisProcedenciaCover codigo(String codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class CargaDuimpPaisProcedenciaCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/CargaDuimpSeguroConsultaCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/CargaDuimpSeguroConsultaCover.java
new file mode 100644
index 0000000..a894094
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/CargaDuimpSeguroConsultaCover.java
@@ -0,0 +1,102 @@
+package br.gov.siscomex.portalunico.duimp_balanca_principal.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import java.math.BigDecimal;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CargaDuimpSeguroConsultaCover", propOrder =
+ {"codigoMoedaNegociada", "valorMoedaNegociada"
+ })
+
+@XmlRootElement(name = "CargaDuimpSeguroConsultaCover")
+/**
+ * Dados do seguro.
+ **/
+@ApiModel(description = "Dados do seguro.")
+public class CargaDuimpSeguroConsultaCover {
+
+ @XmlElement(name = "codigoMoedaNegociada")
+ @ApiModelProperty(example = "USD", value = "Código da moeda negociada do seguro (ISO-4217).
Tamanho: 3
Formato: 'AAA' Para Duimp COM situação especial de despacho (atributo carga.motivoSituacaoEspecial.codigo preenchido), este atributo será retornado nulo")
+ /**
+ * Código da moeda negociada do seguro (ISO-4217).
Tamanho: 3
Formato: 'AAA' Para Duimp COM situação especial de despacho (atributo carga.motivoSituacaoEspecial.codigo preenchido), este atributo será retornado nulo
+ **/
+ private String codigoMoedaNegociada = null;
+
+ @XmlElement(name = "valorMoedaNegociada")
+ @ApiModelProperty(example = "30.22", value = "Valor do seguro na moeda negociada.
Tamanho: 13,2
Formato: Decimal, com até 2 casas decimais separadas por ponto. Para Duimp COM situação especial de despacho (atributo carga.motivoSituacaoEspecial.codigo preenchido), este atributo será retornado nulo")
+ @Valid
+ /**
+ * Valor do seguro na moeda negociada.
Tamanho: 13,2
Formato: Decimal, com até 2 casas decimais separadas por ponto. Para Duimp COM situação especial de despacho (atributo carga.motivoSituacaoEspecial.codigo preenchido), este atributo será retornado nulo
+ **/
+ private BigDecimal valorMoedaNegociada = null;
+
+ /**
+ * Código da moeda negociada do seguro (ISO-4217).<br>Tamanho: 3<br>Formato: 'AAA' Para Duimp COM situação especial de despacho (atributo carga.motivoSituacaoEspecial.codigo preenchido), este atributo será retornado nulo
+ *
+ * @return codigoMoedaNegociada
+ **/
+ @JsonProperty("codigoMoedaNegociada")
+ public String getCodigoMoedaNegociada() {
+ return codigoMoedaNegociada;
+ }
+
+ public void setCodigoMoedaNegociada(String codigoMoedaNegociada) {
+ this.codigoMoedaNegociada = codigoMoedaNegociada;
+ }
+
+ public CargaDuimpSeguroConsultaCover codigoMoedaNegociada(String codigoMoedaNegociada) {
+ this.codigoMoedaNegociada = codigoMoedaNegociada;
+ return this;
+ }
+
+ /**
+ * Valor do seguro na moeda negociada.<br>Tamanho: 13,2<br>Formato: Decimal, com até 2 casas decimais separadas por ponto. Para Duimp COM situação especial de despacho (atributo carga.motivoSituacaoEspecial.codigo preenchido), este atributo será retornado nulo
+ *
+ * @return valorMoedaNegociada
+ **/
+ @JsonProperty("valorMoedaNegociada")
+ public BigDecimal getValorMoedaNegociada() {
+ return valorMoedaNegociada;
+ }
+
+ public void setValorMoedaNegociada(BigDecimal valorMoedaNegociada) {
+ this.valorMoedaNegociada = valorMoedaNegociada;
+ }
+
+ public CargaDuimpSeguroConsultaCover valorMoedaNegociada(BigDecimal valorMoedaNegociada) {
+ this.valorMoedaNegociada = valorMoedaNegociada;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class CargaDuimpSeguroConsultaCover {\n" +
+ " codigoMoedaNegociada: " + toIndentedString(codigoMoedaNegociada) + "\n" +
+ " valorMoedaNegociada: " + toIndentedString(valorMoedaNegociada) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/DadosPagamentoCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/DadosPagamentoCover.java
new file mode 100644
index 0000000..fadbc0d
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/DadosPagamentoCover.java
@@ -0,0 +1,261 @@
+package br.gov.siscomex.portalunico.duimp_balanca_principal.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import java.math.BigDecimal;
+import java.time.OffsetDateTime;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "DadosPagamentoCover", propOrder =
+ {"dataPagamento", "codigoReceita", "banco", "agencia", "conta", "tributo", "valor", "juros"
+ })
+
+@XmlRootElement(name = "DadosPagamentoCover")
+/**
+ * Dados principais de um pagamento.
+ **/
+@ApiModel(description = "Dados principais de um pagamento.")
+public class DadosPagamentoCover {
+
+ @XmlElement(name = "dataPagamento")
+ @ApiModelProperty(value = "Data e hora do pagamento.
Formato: 'yyyy-MM-dd'T'HH:mm:ssZ'")
+ /**
+ * Data e hora do pagamento.
Formato: 'yyyy-MM-dd'T'HH:mm:ssZ'
+ **/
+ private OffsetDateTime dataPagamento = null;
+
+ @XmlElement(name = "codigoReceita")
+ @ApiModelProperty(example = "5602", value = "Código da receita.
Tamanho: 4
Formato: 'NNNN'")
+ /**
+ * Código da receita.
Tamanho: 4
Formato: 'NNNN'
+ **/
+ private String codigoReceita = null;
+
+ @XmlElement(name = "banco")
+ @ApiModelProperty(example = "001", value = "Código do banco.
Valor mínimo: 1
Valor máximo: 999")
+ /**
+ * Código do banco.
Valor mínimo: 1
Valor máximo: 999
+ **/
+ private String banco = null;
+
+ @XmlElement(name = "agencia")
+ @ApiModelProperty(example = "3521", value = "Número da agência
Tamanho mínimo: 1
Tamanho máximo: 4")
+ /**
+ * Número da agência
Tamanho mínimo: 1
Tamanho máximo: 4
+ **/
+ private String agencia = null;
+
+ @XmlElement(name = "conta")
+ @ApiModelProperty(example = "707070", value = "Número da conta
Tamanho mínimo: 1
Tamanho máximo: 10")
+ /**
+ * Número da conta
Tamanho mínimo: 1
Tamanho máximo: 10
+ **/
+ private String conta = null;
+
+ @XmlElement(name = "tributo")
+ @ApiModelProperty(value = "")
+ @Valid
+ private TributoDuimpConsultaCover tributo = null;
+
+ @XmlElement(name = "valor")
+ @ApiModelProperty(example = "17.2", value = "Valor pago.
Tamanho: 17,2
Formato: Decimal, com até 2 casas decimais separadas por ponto.")
+ @Valid
+ /**
+ * Valor pago.
Tamanho: 17,2
Formato: Decimal, com até 2 casas decimais separadas por ponto.
+ **/
+ private BigDecimal valor = null;
+
+ @XmlElement(name = "juros")
+ @ApiModelProperty(value = "")
+ @Valid
+ private JurosPagamentoCover juros = null;
+
+ /**
+ * Data e hora do pagamento.<br>Formato: 'yyyy-MM-dd'T'HH:mm:ssZ'
+ *
+ * @return dataPagamento
+ **/
+ @JsonProperty("dataPagamento")
+ public OffsetDateTime getDataPagamento() {
+ return dataPagamento;
+ }
+
+ public void setDataPagamento(OffsetDateTime dataPagamento) {
+ this.dataPagamento = dataPagamento;
+ }
+
+ public DadosPagamentoCover dataPagamento(OffsetDateTime dataPagamento) {
+ this.dataPagamento = dataPagamento;
+ return this;
+ }
+
+ /**
+ * Código da receita.<br>Tamanho: 4<br>Formato: 'NNNN'
+ *
+ * @return codigoReceita
+ **/
+ @JsonProperty("codigoReceita")
+ public String getCodigoReceita() {
+ return codigoReceita;
+ }
+
+ public void setCodigoReceita(String codigoReceita) {
+ this.codigoReceita = codigoReceita;
+ }
+
+ public DadosPagamentoCover codigoReceita(String codigoReceita) {
+ this.codigoReceita = codigoReceita;
+ return this;
+ }
+
+ /**
+ * Código do banco.<br>Valor mínimo: 1<br>Valor máximo: 999
+ *
+ * @return banco
+ **/
+ @JsonProperty("banco")
+ public String getBanco() {
+ return banco;
+ }
+
+ public void setBanco(String banco) {
+ this.banco = banco;
+ }
+
+ public DadosPagamentoCover banco(String banco) {
+ this.banco = banco;
+ return this;
+ }
+
+ /**
+ * Número da agência<br>Tamanho mínimo: 1<br>Tamanho máximo: 4
+ *
+ * @return agencia
+ **/
+ @JsonProperty("agencia")
+ public String getAgencia() {
+ return agencia;
+ }
+
+ public void setAgencia(String agencia) {
+ this.agencia = agencia;
+ }
+
+ public DadosPagamentoCover agencia(String agencia) {
+ this.agencia = agencia;
+ return this;
+ }
+
+ /**
+ * Número da conta<br>Tamanho mínimo: 1<br>Tamanho máximo: 10
+ *
+ * @return conta
+ **/
+ @JsonProperty("conta")
+ public String getConta() {
+ return conta;
+ }
+
+ public void setConta(String conta) {
+ this.conta = conta;
+ }
+
+ public DadosPagamentoCover conta(String conta) {
+ this.conta = conta;
+ return this;
+ }
+
+ /**
+ * Get tributo
+ *
+ * @return tributo
+ **/
+ @JsonProperty("tributo")
+ public TributoDuimpConsultaCover getTributo() {
+ return tributo;
+ }
+
+ public void setTributo(TributoDuimpConsultaCover tributo) {
+ this.tributo = tributo;
+ }
+
+ public DadosPagamentoCover tributo(TributoDuimpConsultaCover tributo) {
+ this.tributo = tributo;
+ return this;
+ }
+
+ /**
+ * Valor pago.<br>Tamanho: 17,2<br>Formato: Decimal, com até 2 casas decimais separadas por ponto.
+ *
+ * @return valor
+ **/
+ @JsonProperty("valor")
+ public BigDecimal getValor() {
+ return valor;
+ }
+
+ public void setValor(BigDecimal valor) {
+ this.valor = valor;
+ }
+
+ public DadosPagamentoCover valor(BigDecimal valor) {
+ this.valor = valor;
+ return this;
+ }
+
+ /**
+ * Get juros
+ *
+ * @return juros
+ **/
+ @JsonProperty("juros")
+ public JurosPagamentoCover getJuros() {
+ return juros;
+ }
+
+ public void setJuros(JurosPagamentoCover juros) {
+ this.juros = juros;
+ }
+
+ public DadosPagamentoCover juros(JurosPagamentoCover juros) {
+ this.juros = juros;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class DadosPagamentoCover {\n" +
+ " dataPagamento: " + toIndentedString(dataPagamento) + "\n" +
+ " codigoReceita: " + toIndentedString(codigoReceita) + "\n" +
+ " banco: " + toIndentedString(banco) + "\n" +
+ " agencia: " + toIndentedString(agencia) + "\n" +
+ " conta: " + toIndentedString(conta) + "\n" +
+ " tributo: " + toIndentedString(tributo) + "\n" +
+ " valor: " + toIndentedString(valor) + "\n" +
+ " juros: " + toIndentedString(juros) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/DuimpApiMessageCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/DuimpApiMessageCover.java
new file mode 100644
index 0000000..69a9377
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/DuimpApiMessageCover.java
@@ -0,0 +1,121 @@
+package br.gov.siscomex.portalunico.duimp_balanca_principal.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "DuimpApiMessageCover", propOrder =
+ {"code", "field", "message"
+ })
+
+@XmlRootElement(name = "DuimpApiMessageCover")
+public class DuimpApiMessageCover {
+
+ @XmlElement(name = "code")
+ @ApiModelProperty(example = "DIMP-ER9999", value = "Código interno da mensagem de erro.")
+ /**
+ * Código interno da mensagem de erro.
+ **/
+ private String code = null;
+
+ @XmlElement(name = "field")
+ @ApiModelProperty(example = "numero", value = "Nome do campo que contém o valor inválido.
Atributo opcional: Só será devolvido caso o erro tenha sido provocado por um atributo inválido")
+ /**
+ * Nome do campo que contém o valor inválido.
Atributo opcional: Só será devolvido caso o erro tenha sido provocado por um atributo inválido
+ **/
+ private String field = null;
+
+ @XmlElement(name = "message")
+ @ApiModelProperty(example = "Mensagem de negócio detalhando o código de erro informado no atributo 'code'.", value = "Mensagem de erro.")
+ /**
+ * Mensagem de erro.
+ **/
+ private String message = null;
+
+ /**
+ * Código interno da mensagem de erro.
+ *
+ * @return code
+ **/
+ @JsonProperty("code")
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public DuimpApiMessageCover code(String code) {
+ this.code = code;
+ return this;
+ }
+
+ /**
+ * Nome do campo que contém o valor inválido. <br> Atributo opcional: Só será devolvido caso o erro tenha sido provocado por um atributo inválido
+ *
+ * @return field
+ **/
+ @JsonProperty("field")
+ public String getField() {
+ return field;
+ }
+
+ public void setField(String field) {
+ this.field = field;
+ }
+
+ public DuimpApiMessageCover field(String field) {
+ this.field = field;
+ return this;
+ }
+
+ /**
+ * Mensagem de erro.
+ *
+ * @return message
+ **/
+ @JsonProperty("message")
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public DuimpApiMessageCover message(String message) {
+ this.message = message;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class DuimpApiMessageCover {\n" +
+ " code: " + toIndentedString(code) + "\n" +
+ " field: " + toIndentedString(field) + "\n" +
+ " message: " + toIndentedString(message) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/DuimpBalancaComercialCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/DuimpBalancaComercialCover.java
new file mode 100644
index 0000000..4118f7e
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/DuimpBalancaComercialCover.java
@@ -0,0 +1,224 @@
+package br.gov.siscomex.portalunico.duimp_balanca_principal.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import java.util.List;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "DuimpBalancaComercialCover", propOrder =
+ {"identificacao", "situacao", "resultadoAnaliseRisco", "carga", "tributos", "pagamentos", "quantidadeItens"
+ })
+
+@XmlRootElement(name = "DuimpBalancaComercialCover")
+public class DuimpBalancaComercialCover {
+
+ @XmlElement(name = "identificacao")
+ @ApiModelProperty(value = "")
+ @Valid
+ private IdentificacaoDuimpConsultaCover identificacao = null;
+
+ @XmlElement(name = "situacao")
+ @ApiModelProperty(value = "")
+ @Valid
+ private SituacaoDuimpConsultaCover situacao = null;
+
+ @XmlElement(name = "resultadoAnaliseRisco")
+ @ApiModelProperty(value = "")
+ @Valid
+ private ResultadoAnaliseRiscoDuimpCover resultadoAnaliseRisco = null;
+
+ @XmlElement(name = "carga")
+ @ApiModelProperty(value = "")
+ @Valid
+ private CargaDuimpConsultaCover carga = null;
+
+ @XmlElement(name = "tributos")
+ @ApiModelProperty(value = "")
+ @Valid
+ private TributoConsultaDuimpCover tributos = null;
+
+ @XmlElement(name = "pagamentos")
+ @ApiModelProperty(value = "")
+ @Valid
+ private List
Tamanho mínimo: 1
Tamanho máximo: 5")
+ /**
+ * Quantidade total de Itens da Duimp.
Tamanho mínimo: 1
Tamanho máximo: 5
+ **/
+ private Long quantidadeItens = null;
+
+ /**
+ * Get identificacao
+ *
+ * @return identificacao
+ **/
+ @JsonProperty("identificacao")
+ public IdentificacaoDuimpConsultaCover getIdentificacao() {
+ return identificacao;
+ }
+
+ public void setIdentificacao(IdentificacaoDuimpConsultaCover identificacao) {
+ this.identificacao = identificacao;
+ }
+
+ public DuimpBalancaComercialCover identificacao(IdentificacaoDuimpConsultaCover identificacao) {
+ this.identificacao = identificacao;
+ return this;
+ }
+
+ /**
+ * Get situacao
+ *
+ * @return situacao
+ **/
+ @JsonProperty("situacao")
+ public SituacaoDuimpConsultaCover getSituacao() {
+ return situacao;
+ }
+
+ public void setSituacao(SituacaoDuimpConsultaCover situacao) {
+ this.situacao = situacao;
+ }
+
+ public DuimpBalancaComercialCover situacao(SituacaoDuimpConsultaCover situacao) {
+ this.situacao = situacao;
+ return this;
+ }
+
+ /**
+ * Get resultadoAnaliseRisco
+ *
+ * @return resultadoAnaliseRisco
+ **/
+ @JsonProperty("resultadoAnaliseRisco")
+ public ResultadoAnaliseRiscoDuimpCover getResultadoAnaliseRisco() {
+ return resultadoAnaliseRisco;
+ }
+
+ public void setResultadoAnaliseRisco(ResultadoAnaliseRiscoDuimpCover resultadoAnaliseRisco) {
+ this.resultadoAnaliseRisco = resultadoAnaliseRisco;
+ }
+
+ public DuimpBalancaComercialCover resultadoAnaliseRisco(ResultadoAnaliseRiscoDuimpCover resultadoAnaliseRisco) {
+ this.resultadoAnaliseRisco = resultadoAnaliseRisco;
+ return this;
+ }
+
+ /**
+ * Get carga
+ *
+ * @return carga
+ **/
+ @JsonProperty("carga")
+ public CargaDuimpConsultaCover getCarga() {
+ return carga;
+ }
+
+ public void setCarga(CargaDuimpConsultaCover carga) {
+ this.carga = carga;
+ }
+
+ public DuimpBalancaComercialCover carga(CargaDuimpConsultaCover carga) {
+ this.carga = carga;
+ return this;
+ }
+
+ /**
+ * Get tributos
+ *
+ * @return tributos
+ **/
+ @JsonProperty("tributos")
+ public TributoConsultaDuimpCover getTributos() {
+ return tributos;
+ }
+
+ public void setTributos(TributoConsultaDuimpCover tributos) {
+ this.tributos = tributos;
+ }
+
+ public DuimpBalancaComercialCover tributos(TributoConsultaDuimpCover tributos) {
+ this.tributos = tributos;
+ return this;
+ }
+
+ /**
+ * Get pagamentos
+ *
+ * @return pagamentos
+ **/
+ @JsonProperty("pagamentos")
+ public List
Tamanho: 15
Formato: 'AABRSSSSSSSSSSD'
Lei de formação. O número da Duimp é composto por:
* AA = Corresponde ao ano do registro da Declaração.
* BR = Corresponde à sigla do país de emissão do documento (BR).
* SSSSSSSSSS = 10 caracteres numéricos. Número sequencial da Duimp dentro do ano.
* D = 1 caracter numérico. DV para todos os demais caracteres numéricos (Módulo 11)")
+ /**
+ *
Tamanho: 15
Formato: 'AABRSSSSSSSSSSD'
Lei de formação. O número da Duimp é composto por:
* AA = Corresponde ao ano do registro da Declaração.
* BR = Corresponde à sigla do país de emissão do documento (BR).
* SSSSSSSSSS = 10 caracteres numéricos. Número sequencial da Duimp dentro do ano.
* D = 1 caracter numérico. DV para todos os demais caracteres numéricos (Módulo 11)
+ **/
+ private String numero = null;
+
+ @XmlElement(name = "versao")
+ @ApiModelProperty(example = "1", value = "Versão da Duimp.
Valor mínimo: 0
Valor máximo: 9999")
+ /**
+ * Versão da Duimp.
Valor mínimo: 0
Valor máximo: 9999
+ **/
+ private Integer versao = null;
+
+ @XmlElement(name = "importador")
+ @ApiModelProperty(value = "")
+ @Valid
+ private ImportadorCover importador = null;
+
+ @XmlElement(name = "dataRegistro")
+ @ApiModelProperty(value = "Data e hora em que a Duimp foi registrada.
Formato: 'yyyy-MM-dd'T'HH:mm:ssZ'")
+ /**
+ * Data e hora em que a Duimp foi registrada.
Formato: 'yyyy-MM-dd'T'HH:mm:ssZ'
+ **/
+ private OffsetDateTime dataRegistro = null;
+
+ @XmlElement(name = "informacaoComplementar")
+ @ApiModelProperty(example = "Texto complementando informações sobre a Duimp.", value = "Descrição complementar da Duimp.
Tamanho mínimo: 0
Tamanho máximo: 7800")
+ /**
+ * Descrição complementar da Duimp.
Tamanho mínimo: 0
Tamanho máximo: 7800
+ **/
+ private String informacaoComplementar = null;
+
+ /**
+ * <br>Tamanho: 15<br>Formato: 'AABRSSSSSSSSSSD'<br>Lei de formação. O número da Duimp é composto por: <br>* AA = Corresponde ao ano do registro da Declaração. <br>* BR = Corresponde à sigla do país de emissão do documento (BR).<br>* SSSSSSSSSS = 10 caracteres numéricos. Número sequencial da Duimp dentro do ano.<br>* D = 1 caracter numérico. DV para todos os demais caracteres numéricos (Módulo 11)
+ *
+ * @return numero
+ **/
+ @JsonProperty("numero")
+ public String getNumero() {
+ return numero;
+ }
+
+ public void setNumero(String numero) {
+ this.numero = numero;
+ }
+
+ public IdentificacaoDuimpConsultaCover numero(String numero) {
+ this.numero = numero;
+ return this;
+ }
+
+ /**
+ * Versão da Duimp.<br>Valor mínimo: 0<br>Valor máximo: 9999
+ *
+ * @return versao
+ **/
+ @JsonProperty("versao")
+ public Integer getVersao() {
+ return versao;
+ }
+
+ public void setVersao(Integer versao) {
+ this.versao = versao;
+ }
+
+ public IdentificacaoDuimpConsultaCover versao(Integer versao) {
+ this.versao = versao;
+ return this;
+ }
+
+ /**
+ * Get importador
+ *
+ * @return importador
+ **/
+ @JsonProperty("importador")
+ public ImportadorCover getImportador() {
+ return importador;
+ }
+
+ public void setImportador(ImportadorCover importador) {
+ this.importador = importador;
+ }
+
+ public IdentificacaoDuimpConsultaCover importador(ImportadorCover importador) {
+ this.importador = importador;
+ return this;
+ }
+
+ /**
+ * Data e hora em que a Duimp foi registrada.<br>Formato: 'yyyy-MM-dd'T'HH:mm:ssZ'
+ *
+ * @return dataRegistro
+ **/
+ @JsonProperty("dataRegistro")
+ public OffsetDateTime getDataRegistro() {
+ return dataRegistro;
+ }
+
+ public void setDataRegistro(OffsetDateTime dataRegistro) {
+ this.dataRegistro = dataRegistro;
+ }
+
+ public IdentificacaoDuimpConsultaCover dataRegistro(OffsetDateTime dataRegistro) {
+ this.dataRegistro = dataRegistro;
+ return this;
+ }
+
+ /**
+ * Descrição complementar da Duimp.<br>Tamanho mínimo: 0<br>Tamanho máximo: 7800
+ *
+ * @return informacaoComplementar
+ **/
+ @JsonProperty("informacaoComplementar")
+ public String getInformacaoComplementar() {
+ return informacaoComplementar;
+ }
+
+ public void setInformacaoComplementar(String informacaoComplementar) {
+ this.informacaoComplementar = informacaoComplementar;
+ }
+
+ public IdentificacaoDuimpConsultaCover informacaoComplementar(String informacaoComplementar) {
+ this.informacaoComplementar = informacaoComplementar;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class IdentificacaoDuimpConsultaCover {\n" +
+ " numero: " + toIndentedString(numero) + "\n" +
+ " versao: " + toIndentedString(versao) + "\n" +
+ " importador: " + toIndentedString(importador) + "\n" +
+ " dataRegistro: " + toIndentedString(dataRegistro) + "\n" +
+ " informacaoComplementar: " + toIndentedString(informacaoComplementar) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/ImportadorCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/ImportadorCover.java
new file mode 100644
index 0000000..e7e4d34
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/ImportadorCover.java
@@ -0,0 +1,145 @@
+package br.gov.siscomex.portalunico.duimp_balanca_principal.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ImportadorCover", propOrder =
+ {"tipoImportador", "ni"
+ })
+
+@XmlRootElement(name = "ImportadorCover")
+/**
+ * Identificação do importador da declaração única de importação.
+ **/
+@ApiModel(description = "Identificação do importador da declaração única de importação.")
+public class ImportadorCover {
+
+
+ @XmlType(name = "TipoImportadorEnum")
+ @XmlEnum(String.class)
+ public enum TipoImportadorEnum {
+
+ @XmlEnumValue("CNPJ")
+ @JsonProperty("CNPJ")
+ CNPJ("CNPJ"),
+
+ @XmlEnumValue("CPF")
+ @JsonProperty("CPF")
+ CPF("CPF");
+
+
+ private final String value;
+
+ TipoImportadorEnum(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static TipoImportadorEnum fromValue(String v) {
+ for (TipoImportadorEnum b : TipoImportadorEnum.values()) {
+ if (String.valueOf(b.value).equals(v)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + v + "' to TipoImportadorEnum");
+ }
+ }
+
+ @XmlElement(name = "tipoImportador")
+ @ApiModelProperty(example = "CNPJ", value = "Descreve se o Importador é do tipo CPF ou CNPJ")
+ /**
+ * Descreve se o Importador é do tipo CPF ou CNPJ
+ **/
+ private TipoImportadorEnum tipoImportador = null;
+
+ @XmlElement(name = "ni", required = true)
+ @ApiModelProperty(example = "00055555000130", required = true, value = "
Número do Importador:
Caso seja CNPJ:
Tamanho: 14
Formato: 'NNNNNNNNNNNNNN'
Caso seja CPF:
Tamanho: 11
Formato: 'NNNNNNNNNNN'")
+ /**
+ *
Número do Importador:
Caso seja CNPJ:
Tamanho: 14
Formato: 'NNNNNNNNNNNNNN'
Caso seja CPF:
Tamanho: 11
Formato: 'NNNNNNNNNNN'
+ **/
+ private String ni = null;
+
+ /**
+ * Descreve se o Importador é do tipo CPF ou CNPJ
+ *
+ * @return tipoImportador
+ **/
+ @JsonProperty("tipoImportador")
+ public String getTipoImportador() {
+ if (tipoImportador == null) {
+ return null;
+ }
+ return tipoImportador.value();
+ }
+
+ public void setTipoImportador(TipoImportadorEnum tipoImportador) {
+ this.tipoImportador = tipoImportador;
+ }
+
+ public ImportadorCover tipoImportador(TipoImportadorEnum tipoImportador) {
+ this.tipoImportador = tipoImportador;
+ return this;
+ }
+
+ /**
+ * <br>Número do Importador: <br>Caso seja CNPJ: <br>Tamanho: 14<br>Formato: 'NNNNNNNNNNNNNN'<br>Caso seja CPF: <br>Tamanho: 11<br>Formato: 'NNNNNNNNNNN'
+ *
+ * @return ni
+ **/
+ @JsonProperty("ni")
+ @NotNull
+ public String getNi() {
+ return ni;
+ }
+
+ public void setNi(String ni) {
+ this.ni = ni;
+ }
+
+ public ImportadorCover ni(String ni) {
+ this.ni = ni;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class ImportadorCover {\n" +
+ " tipoImportador: " + toIndentedString(tipoImportador) + "\n" +
+ " ni: " + toIndentedString(ni) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/JurosPagamentoCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/JurosPagamentoCover.java
new file mode 100644
index 0000000..a27679f
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/JurosPagamentoCover.java
@@ -0,0 +1,211 @@
+package br.gov.siscomex.portalunico.duimp_balanca_principal.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import java.math.BigDecimal;
+import java.time.OffsetDateTime;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "JurosPagamentoCover", propOrder =
+ {"codigoReceita", "valor", "dataPagamentoJuros", "bancoJuros", "agenciaJuros", "contaJuros"
+ })
+
+@XmlRootElement(name = "JurosPagamentoCover")
+/**
+ * Informações sobre os Juros.
+ **/
+@ApiModel(description = "Informações sobre os Juros.")
+public class JurosPagamentoCover {
+
+ @XmlElement(name = "codigoReceita")
+ @ApiModelProperty(example = "5602", value = "Código da receita.
Tamanho: 4
Formato: 'NNNN'")
+ /**
+ * Código da receita.
Tamanho: 4
Formato: 'NNNN'
+ **/
+ private String codigoReceita = null;
+
+ @XmlElement(name = "valor")
+ @ApiModelProperty(example = "100.1", value = "Valor de juros.
Tamanho: 17,2
Formato: Decimal, com até 2 casas decimais separadas por ponto.")
+ @Valid
+ /**
+ * Valor de juros.
Tamanho: 17,2
Formato: Decimal, com até 2 casas decimais separadas por ponto.
+ **/
+ private BigDecimal valor = null;
+
+ @XmlElement(name = "dataPagamentoJuros")
+ @ApiModelProperty(value = "Data de pagamento de juros.
Formato: 'yyyy-MM-dd'T'HH:mm:ssZ'")
+ /**
+ * Data de pagamento de juros.
Formato: 'yyyy-MM-dd'T'HH:mm:ssZ'
+ **/
+ private OffsetDateTime dataPagamentoJuros = null;
+
+ @XmlElement(name = "bancoJuros")
+ @ApiModelProperty(example = "001", value = "Código do banco.
Valor mínimo: 1
Valor máximo: 999")
+ /**
+ * Código do banco.
Valor mínimo: 1
Valor máximo: 999
+ **/
+ private String bancoJuros = null;
+
+ @XmlElement(name = "agenciaJuros")
+ @ApiModelProperty(example = "3521", value = "Número da agência
Tamanho mínimo: 1
Tamanho máximo: 4")
+ /**
+ * Número da agência
Tamanho mínimo: 1
Tamanho máximo: 4
+ **/
+ private String agenciaJuros = null;
+
+ @XmlElement(name = "contaJuros")
+ @ApiModelProperty(example = "707070", value = "Número da conta
Tamanho mínimo: 1
Tamanho máximo: 10")
+ /**
+ * Número da conta
Tamanho mínimo: 1
Tamanho máximo: 10
+ **/
+ private String contaJuros = null;
+
+ /**
+ * Código da receita.<br>Tamanho: 4<br>Formato: 'NNNN'
+ *
+ * @return codigoReceita
+ **/
+ @JsonProperty("codigoReceita")
+ public String getCodigoReceita() {
+ return codigoReceita;
+ }
+
+ public void setCodigoReceita(String codigoReceita) {
+ this.codigoReceita = codigoReceita;
+ }
+
+ public JurosPagamentoCover codigoReceita(String codigoReceita) {
+ this.codigoReceita = codigoReceita;
+ return this;
+ }
+
+ /**
+ * Valor de juros.<br>Tamanho: 17,2<br>Formato: Decimal, com até 2 casas decimais separadas por ponto.
+ *
+ * @return valor
+ **/
+ @JsonProperty("valor")
+ public BigDecimal getValor() {
+ return valor;
+ }
+
+ public void setValor(BigDecimal valor) {
+ this.valor = valor;
+ }
+
+ public JurosPagamentoCover valor(BigDecimal valor) {
+ this.valor = valor;
+ return this;
+ }
+
+ /**
+ * Data de pagamento de juros.<br>Formato: 'yyyy-MM-dd'T'HH:mm:ssZ'
+ *
+ * @return dataPagamentoJuros
+ **/
+ @JsonProperty("dataPagamentoJuros")
+ public OffsetDateTime getDataPagamentoJuros() {
+ return dataPagamentoJuros;
+ }
+
+ public void setDataPagamentoJuros(OffsetDateTime dataPagamentoJuros) {
+ this.dataPagamentoJuros = dataPagamentoJuros;
+ }
+
+ public JurosPagamentoCover dataPagamentoJuros(OffsetDateTime dataPagamentoJuros) {
+ this.dataPagamentoJuros = dataPagamentoJuros;
+ return this;
+ }
+
+ /**
+ * Código do banco.<br>Valor mínimo: 1<br>Valor máximo: 999
+ *
+ * @return bancoJuros
+ **/
+ @JsonProperty("bancoJuros")
+ public String getBancoJuros() {
+ return bancoJuros;
+ }
+
+ public void setBancoJuros(String bancoJuros) {
+ this.bancoJuros = bancoJuros;
+ }
+
+ public JurosPagamentoCover bancoJuros(String bancoJuros) {
+ this.bancoJuros = bancoJuros;
+ return this;
+ }
+
+ /**
+ * Número da agência<br>Tamanho mínimo: 1<br>Tamanho máximo: 4
+ *
+ * @return agenciaJuros
+ **/
+ @JsonProperty("agenciaJuros")
+ public String getAgenciaJuros() {
+ return agenciaJuros;
+ }
+
+ public void setAgenciaJuros(String agenciaJuros) {
+ this.agenciaJuros = agenciaJuros;
+ }
+
+ public JurosPagamentoCover agenciaJuros(String agenciaJuros) {
+ this.agenciaJuros = agenciaJuros;
+ return this;
+ }
+
+ /**
+ * Número da conta<br>Tamanho mínimo: 1<br>Tamanho máximo: 10
+ *
+ * @return contaJuros
+ **/
+ @JsonProperty("contaJuros")
+ public String getContaJuros() {
+ return contaJuros;
+ }
+
+ public void setContaJuros(String contaJuros) {
+ this.contaJuros = contaJuros;
+ }
+
+ public JurosPagamentoCover contaJuros(String contaJuros) {
+ this.contaJuros = contaJuros;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class JurosPagamentoCover {\n" +
+ " codigoReceita: " + toIndentedString(codigoReceita) + "\n" +
+ " valor: " + toIndentedString(valor) + "\n" +
+ " dataPagamentoJuros: " + toIndentedString(dataPagamentoJuros) + "\n" +
+ " bancoJuros: " + toIndentedString(bancoJuros) + "\n" +
+ " agenciaJuros: " + toIndentedString(agenciaJuros) + "\n" +
+ " contaJuros: " + toIndentedString(contaJuros) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/MercadoriaDuimpConsultaCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/MercadoriaDuimpConsultaCover.java
new file mode 100644
index 0000000..875ef45
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/MercadoriaDuimpConsultaCover.java
@@ -0,0 +1,98 @@
+package br.gov.siscomex.portalunico.duimp_balanca_principal.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import java.math.BigDecimal;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "MercadoriaDuimpConsultaCover", propOrder =
+ {"valorTotalLocalEmbarqueBRL", "valorTotalLocalEmbarqueUSD"
+ })
+
+@XmlRootElement(name = "MercadoriaDuimpConsultaCover")
+public class MercadoriaDuimpConsultaCover {
+
+ @XmlElement(name = "valorTotalLocalEmbarqueBRL")
+ @ApiModelProperty(example = "20.366", value = "Valor total da mercadoria no local de embarque em R$ (Reais).
Para Duimps com situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso, será retornado o valor nulo (**null**)
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ @Valid
+ /**
+ * Valor total da mercadoria no local de embarque em R$ (Reais).
Para Duimps com situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso, será retornado o valor nulo (**null**)
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private BigDecimal valorTotalLocalEmbarqueBRL = null;
+
+ @XmlElement(name = "valorTotalLocalEmbarqueUSD")
+ @ApiModelProperty(example = "20.366", value = "Valor total da mercadoria no local de embarque em US$ (Dólares).
Para Duimps com situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso, será retornado o valor nulo (**null**)
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ @Valid
+ /**
+ * Valor total da mercadoria no local de embarque em US$ (Dólares).
Para Duimps com situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso, será retornado o valor nulo (**null**)
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private BigDecimal valorTotalLocalEmbarqueUSD = null;
+
+ /**
+ * Valor total da mercadoria no local de embarque em R$ (Reais). <br> Para Duimps com situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso, será retornado o valor nulo (**null**)<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return valorTotalLocalEmbarqueBRL
+ **/
+ @JsonProperty("valorTotalLocalEmbarqueBRL")
+ public BigDecimal getValorTotalLocalEmbarqueBRL() {
+ return valorTotalLocalEmbarqueBRL;
+ }
+
+ public void setValorTotalLocalEmbarqueBRL(BigDecimal valorTotalLocalEmbarqueBRL) {
+ this.valorTotalLocalEmbarqueBRL = valorTotalLocalEmbarqueBRL;
+ }
+
+ public MercadoriaDuimpConsultaCover valorTotalLocalEmbarqueBRL(BigDecimal valorTotalLocalEmbarqueBRL) {
+ this.valorTotalLocalEmbarqueBRL = valorTotalLocalEmbarqueBRL;
+ return this;
+ }
+
+ /**
+ * Valor total da mercadoria no local de embarque em US$ (Dólares). <br> Para Duimps com situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso, será retornado o valor nulo (**null**)<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return valorTotalLocalEmbarqueUSD
+ **/
+ @JsonProperty("valorTotalLocalEmbarqueUSD")
+ public BigDecimal getValorTotalLocalEmbarqueUSD() {
+ return valorTotalLocalEmbarqueUSD;
+ }
+
+ public void setValorTotalLocalEmbarqueUSD(BigDecimal valorTotalLocalEmbarqueUSD) {
+ this.valorTotalLocalEmbarqueUSD = valorTotalLocalEmbarqueUSD;
+ }
+
+ public MercadoriaDuimpConsultaCover valorTotalLocalEmbarqueUSD(BigDecimal valorTotalLocalEmbarqueUSD) {
+ this.valorTotalLocalEmbarqueUSD = valorTotalLocalEmbarqueUSD;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class MercadoriaDuimpConsultaCover {\n" +
+ " valorTotalLocalEmbarqueBRL: " + toIndentedString(valorTotalLocalEmbarqueBRL) + "\n" +
+ " valorTotalLocalEmbarqueUSD: " + toIndentedString(valorTotalLocalEmbarqueUSD) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/PagamentoDuimpConsultaCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/PagamentoDuimpConsultaCover.java
new file mode 100644
index 0000000..228f307
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/PagamentoDuimpConsultaCover.java
@@ -0,0 +1,98 @@
+package br.gov.siscomex.portalunico.duimp_balanca_principal.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "PagamentoDuimpConsultaCover", propOrder =
+ {"versaoOrigem", "principal"
+ })
+
+@XmlRootElement(name = "PagamentoDuimpConsultaCover")
+/**
+ * Dados de um pagamento.
+ **/
+@ApiModel(description = "Dados de um pagamento.")
+public class PagamentoDuimpConsultaCover {
+
+ @XmlElement(name = "versaoOrigem")
+ @ApiModelProperty(example = "1", value = "Versão da Duimp em que este pagamento foi realizado.
Valor mínimo: 1
Valor máximo: 9999")
+ /**
+ * Versão da Duimp em que este pagamento foi realizado.
Valor mínimo: 1
Valor máximo: 9999
+ **/
+ private Integer versaoOrigem = null;
+
+ @XmlElement(name = "principal")
+ @ApiModelProperty(value = "")
+ @Valid
+ private DadosPagamentoCover principal = null;
+
+ /**
+ * Versão da Duimp em que este pagamento foi realizado.<br>Valor mínimo: 1<br>Valor máximo: 9999
+ *
+ * @return versaoOrigem
+ **/
+ @JsonProperty("versaoOrigem")
+ public Integer getVersaoOrigem() {
+ return versaoOrigem;
+ }
+
+ public void setVersaoOrigem(Integer versaoOrigem) {
+ this.versaoOrigem = versaoOrigem;
+ }
+
+ public PagamentoDuimpConsultaCover versaoOrigem(Integer versaoOrigem) {
+ this.versaoOrigem = versaoOrigem;
+ return this;
+ }
+
+ /**
+ * Get principal
+ *
+ * @return principal
+ **/
+ @JsonProperty("principal")
+ public DadosPagamentoCover getPrincipal() {
+ return principal;
+ }
+
+ public void setPrincipal(DadosPagamentoCover principal) {
+ this.principal = principal;
+ }
+
+ public PagamentoDuimpConsultaCover principal(DadosPagamentoCover principal) {
+ this.principal = principal;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class PagamentoDuimpConsultaCover {\n" +
+ " versaoOrigem: " + toIndentedString(versaoOrigem) + "\n" +
+ " principal: " + toIndentedString(principal) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/RespostaApiErroBalanca.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/RespostaApiErroBalanca.java
new file mode 100644
index 0000000..3e8f935
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/RespostaApiErroBalanca.java
@@ -0,0 +1,102 @@
+package br.gov.siscomex.portalunico.duimp_balanca_principal.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import java.util.List;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "RespostaApiErroBalanca", propOrder =
+ {"message", "errors"
+ })
+
+@XmlRootElement(name = "RespostaApiErroBalanca")
+public class RespostaApiErroBalanca {
+
+ @XmlElement(name = "message")
+ @ApiModelProperty(example = "Mensagem de exemplo.", value = "Mensagem de resposta do resultado da operação.")
+ /**
+ * Mensagem de resposta do resultado da operação.
+ **/
+ private String message = null;
+
+ @XmlElement(name = "errors")
+ @ApiModelProperty(value = "Conjunto de erros de validação dos campos. Atributo devolvido apenas para erros HTTP 422.
Esta é uma lista opcional e fornece o detalhamento de todos os erros que deram origem ao erro 422
Quando houver mais de um erro, essa lista será preenchida com cada um dos erros
Exemplo: A lista detalhada dos problemas encontrados em um item, quando for gerado um erro 422 ao validar a inclusão de um item.")
+ @Valid
+ /**
+ * Conjunto de erros de validação dos campos. Atributo devolvido apenas para erros HTTP 422.
Esta é uma lista opcional e fornece o detalhamento de todos os erros que deram origem ao erro 422
Quando houver mais de um erro, essa lista será preenchida com cada um dos erros
Exemplo: A lista detalhada dos problemas encontrados em um item, quando for gerado um erro 422 ao validar a inclusão de um item.
+ **/
+ private List
Domínio:")
+ /**
+ * Canais da análise de risco.
Domínio:
+ **/
+ private CanalConsolidadoEnum canalConsolidado = null;
+
+ /**
+ * Canais da análise de risco.<br>Domínio:
+ *
+ * @return canalConsolidado
+ **/
+ @JsonProperty("canalConsolidado")
+ public String getCanalConsolidado() {
+ if (canalConsolidado == null) {
+ return null;
+ }
+ return canalConsolidado.value();
+ }
+
+ public void setCanalConsolidado(CanalConsolidadoEnum canalConsolidado) {
+ this.canalConsolidado = canalConsolidado;
+ }
+
+ public ResultadoAnaliseRiscoDuimpCover canalConsolidado(CanalConsolidadoEnum canalConsolidado) {
+ this.canalConsolidado = canalConsolidado;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class ResultadoAnaliseRiscoDuimpCover {\n" +
+ " canalConsolidado: " + toIndentedString(canalConsolidado) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/SituacaoDuimpConsultaCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/SituacaoDuimpConsultaCover.java
new file mode 100644
index 0000000..ef7e58b
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/SituacaoDuimpConsultaCover.java
@@ -0,0 +1,208 @@
+package br.gov.siscomex.portalunico.duimp_balanca_principal.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "SituacaoDuimpConsultaCover", propOrder =
+ {"situacaoDuimp"
+ })
+
+@XmlRootElement(name = "SituacaoDuimpConsultaCover")
+/**
+ * Tipos de situações e controles da declaração única de importação.
+ **/
+@ApiModel(description = "Tipos de situações e controles da declaração única de importação.")
+public class SituacaoDuimpConsultaCover {
+
+
+ @XmlType(name = "SituacaoDuimpEnum")
+ @XmlEnum(String.class)
+ public enum SituacaoDuimpEnum {
+
+ @XmlEnumValue("EM_ELABORACAO")
+ @JsonProperty("EM_ELABORACAO")
+ EM_ELABORACAO("EM_ELABORACAO"),
+
+ @XmlEnumValue("ELABORADA_AGUARDANDO_VINCULACAO_CARGA")
+ @JsonProperty("ELABORADA_AGUARDANDO_VINCULACAO_CARGA")
+ ELABORADA_AGUARDANDO_VINCULACAO_CARGA("ELABORADA_AGUARDANDO_VINCULACAO_CARGA"),
+
+ @XmlEnumValue("ELABORADA_AGUARDANDO_PCCE")
+ @JsonProperty("ELABORADA_AGUARDANDO_PCCE")
+ ELABORADA_AGUARDANDO_PCCE("ELABORADA_AGUARDANDO_PCCE"),
+
+ @XmlEnumValue("ELABORADA_AGUARDANDO_DESVINCULACAO_CARGA")
+ @JsonProperty("ELABORADA_AGUARDANDO_DESVINCULACAO_CARGA")
+ ELABORADA_AGUARDANDO_DESVINCULACAO_CARGA("ELABORADA_AGUARDANDO_DESVINCULACAO_CARGA"),
+
+ @XmlEnumValue("ELABORADA_AGUARDANDO_PROCESSAMENTO_DRAWBACK")
+ @JsonProperty("ELABORADA_AGUARDANDO_PROCESSAMENTO_DRAWBACK")
+ ELABORADA_AGUARDANDO_PROCESSAMENTO_DRAWBACK("ELABORADA_AGUARDANDO_PROCESSAMENTO_DRAWBACK"),
+
+ @XmlEnumValue("ELABORADA_AGUARDANDO_ROLLBACK_PROCESSAMENTO_DRAWBACK")
+ @JsonProperty("ELABORADA_AGUARDANDO_ROLLBACK_PROCESSAMENTO_DRAWBACK")
+ ELABORADA_AGUARDANDO_ROLLBACK_PROCESSAMENTO_DRAWBACK("ELABORADA_AGUARDANDO_ROLLBACK_PROCESSAMENTO_DRAWBACK"),
+
+ @XmlEnumValue("ELABORADA_AGUARDANDO_CRIACAO_ESTOQUE")
+ @JsonProperty("ELABORADA_AGUARDANDO_CRIACAO_ESTOQUE")
+ ELABORADA_AGUARDANDO_CRIACAO_ESTOQUE("ELABORADA_AGUARDANDO_CRIACAO_ESTOQUE"),
+
+ @XmlEnumValue("ELABORADA_AGUARDANDO_EXCLUSAO_ESTOQUE")
+ @JsonProperty("ELABORADA_AGUARDANDO_EXCLUSAO_ESTOQUE")
+ ELABORADA_AGUARDANDO_EXCLUSAO_ESTOQUE("ELABORADA_AGUARDANDO_EXCLUSAO_ESTOQUE"),
+
+ @XmlEnumValue("SOLICITACAO_RETIFICACAO_EM_ELABORACAO")
+ @JsonProperty("SOLICITACAO_RETIFICACAO_EM_ELABORACAO")
+ SOLICITACAO_RETIFICACAO_EM_ELABORACAO("SOLICITACAO_RETIFICACAO_EM_ELABORACAO"),
+
+ @XmlEnumValue("SOLICITACAO_RETIFICACAO_AGUARDANDO_VINCULACAO_CARGA_NOVA")
+ @JsonProperty("SOLICITACAO_RETIFICACAO_AGUARDANDO_VINCULACAO_CARGA_NOVA")
+ SOLICITACAO_RETIFICACAO_AGUARDANDO_VINCULACAO_CARGA_NOVA("SOLICITACAO_RETIFICACAO_AGUARDANDO_VINCULACAO_CARGA_NOVA"),
+
+ @XmlEnumValue("SOLICITACAO_RETIFICACAO_AGUARDANDO_DESVINCULACAO_CARGA_ANTIGA")
+ @JsonProperty("SOLICITACAO_RETIFICACAO_AGUARDANDO_DESVINCULACAO_CARGA_ANTIGA")
+ SOLICITACAO_RETIFICACAO_AGUARDANDO_DESVINCULACAO_CARGA_ANTIGA("SOLICITACAO_RETIFICACAO_AGUARDANDO_DESVINCULACAO_CARGA_ANTIGA"),
+
+ @XmlEnumValue("SOLICITACAO_RETIFICACAO_AGUARDANDO_PAGAMENTO")
+ @JsonProperty("SOLICITACAO_RETIFICACAO_AGUARDANDO_PAGAMENTO")
+ SOLICITACAO_RETIFICACAO_AGUARDANDO_PAGAMENTO("SOLICITACAO_RETIFICACAO_AGUARDANDO_PAGAMENTO"),
+
+ @XmlEnumValue("SOLICITACAO_RETIFICACAO_AGUARDANDO_DESVINCULACAO_CARGA_NOVA")
+ @JsonProperty("SOLICITACAO_RETIFICACAO_AGUARDANDO_DESVINCULACAO_CARGA_NOVA")
+ SOLICITACAO_RETIFICACAO_AGUARDANDO_DESVINCULACAO_CARGA_NOVA("SOLICITACAO_RETIFICACAO_AGUARDANDO_DESVINCULACAO_CARGA_NOVA"),
+
+ @XmlEnumValue("SOLICITACAO_RETIFICACAO_AGUARDANDO_PROCESSAMENTO_DRAWBACK")
+ @JsonProperty("SOLICITACAO_RETIFICACAO_AGUARDANDO_PROCESSAMENTO_DRAWBACK")
+ SOLICITACAO_RETIFICACAO_AGUARDANDO_PROCESSAMENTO_DRAWBACK("SOLICITACAO_RETIFICACAO_AGUARDANDO_PROCESSAMENTO_DRAWBACK"),
+
+ @XmlEnumValue("SOLICITACAO_RETIFICACAO_AGUARDANDO_ROLLBACK_PROCESSAMENTO_DRAWBACK")
+ @JsonProperty("SOLICITACAO_RETIFICACAO_AGUARDANDO_ROLLBACK_PROCESSAMENTO_DRAWBACK")
+ SOLICITACAO_RETIFICACAO_AGUARDANDO_ROLLBACK_PROCESSAMENTO_DRAWBACK("SOLICITACAO_RETIFICACAO_AGUARDANDO_ROLLBACK_PROCESSAMENTO_DRAWBACK"),
+
+ @XmlEnumValue("REGISTRADA_AGUARDANDO_CANAL")
+ @JsonProperty("REGISTRADA_AGUARDANDO_CANAL")
+ REGISTRADA_AGUARDANDO_CANAL("REGISTRADA_AGUARDANDO_CANAL"),
+
+ @XmlEnumValue("EM_CONFERENCIA_SELECIONADA")
+ @JsonProperty("EM_CONFERENCIA_SELECIONADA")
+ EM_CONFERENCIA_SELECIONADA("EM_CONFERENCIA_SELECIONADA"),
+
+ @XmlEnumValue("DESEMBARACADA_AGUARDANDO_PENDENCIA")
+ @JsonProperty("DESEMBARACADA_AGUARDANDO_PENDENCIA")
+ DESEMBARACADA_AGUARDANDO_PENDENCIA("DESEMBARACADA_AGUARDANDO_PENDENCIA"),
+
+ @XmlEnumValue("DESEMBARACADA_AGUARDANDO_ENTREGA_CARGA")
+ @JsonProperty("DESEMBARACADA_AGUARDANDO_ENTREGA_CARGA")
+ DESEMBARACADA_AGUARDANDO_ENTREGA_CARGA("DESEMBARACADA_AGUARDANDO_ENTREGA_CARGA"),
+
+ @XmlEnumValue("DESEMBARACADA_CARGA_ENTREGUE")
+ @JsonProperty("DESEMBARACADA_CARGA_ENTREGUE")
+ DESEMBARACADA_CARGA_ENTREGUE("DESEMBARACADA_CARGA_ENTREGUE"),
+
+ @XmlEnumValue("ENTREGA_ANTECIPADA_AGUARDANDO_PENDENCIA_TRIBUTOS_ESTADUAIS")
+ @JsonProperty("ENTREGA_ANTECIPADA_AGUARDANDO_PENDENCIA_TRIBUTOS_ESTADUAIS")
+ ENTREGA_ANTECIPADA_AGUARDANDO_PENDENCIA_TRIBUTOS_ESTADUAIS("ENTREGA_ANTECIPADA_AGUARDANDO_PENDENCIA_TRIBUTOS_ESTADUAIS"),
+
+ @XmlEnumValue("ENTREGA_ANTECIPADA_AGUARDANDO_ENTREGA_CARGA")
+ @JsonProperty("ENTREGA_ANTECIPADA_AGUARDANDO_ENTREGA_CARGA")
+ ENTREGA_ANTECIPADA_AGUARDANDO_ENTREGA_CARGA("ENTREGA_ANTECIPADA_AGUARDANDO_ENTREGA_CARGA"),
+
+ @XmlEnumValue("ENTREGA_ANTECIPADA_CARGA_ENTREGUE")
+ @JsonProperty("ENTREGA_ANTECIPADA_CARGA_ENTREGUE")
+ ENTREGA_ANTECIPADA_CARGA_ENTREGUE("ENTREGA_ANTECIPADA_CARGA_ENTREGUE"),
+
+ @XmlEnumValue("CANCELADA_PELA_ADUANA")
+ @JsonProperty("CANCELADA_PELA_ADUANA")
+ CANCELADA_PELA_ADUANA("CANCELADA_PELA_ADUANA"),
+
+ @XmlEnumValue("CANCELADA_POR_APURACAO")
+ @JsonProperty("CANCELADA_POR_APURACAO")
+ CANCELADA_POR_APURACAO("CANCELADA_POR_APURACAO");
+
+
+ private final String value;
+
+ SituacaoDuimpEnum(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static SituacaoDuimpEnum fromValue(String v) {
+ for (SituacaoDuimpEnum b : SituacaoDuimpEnum.values()) {
+ if (String.valueOf(b.value).equals(v)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + v + "' to SituacaoDuimpEnum");
+ }
+ }
+
+ @XmlElement(name = "situacaoDuimp")
+ @ApiModelProperty(example = "REGISTRADA_AGUARDANDO_CANAL", value = "Situação da versão vigente da Duimp.
Domínio:")
+ /**
+ * Situação da versão vigente da Duimp.
Domínio:
+ **/
+ private SituacaoDuimpEnum situacaoDuimp = null;
+
+ /**
+ * Situação da versão vigente da Duimp.<br>Domínio:
+ *
+ * @return situacaoDuimp
+ **/
+ @JsonProperty("situacaoDuimp")
+ public String getSituacaoDuimp() {
+ if (situacaoDuimp == null) {
+ return null;
+ }
+ return situacaoDuimp.value();
+ }
+
+ public void setSituacaoDuimp(SituacaoDuimpEnum situacaoDuimp) {
+ this.situacaoDuimp = situacaoDuimp;
+ }
+
+ public SituacaoDuimpConsultaCover situacaoDuimp(SituacaoDuimpEnum situacaoDuimp) {
+ this.situacaoDuimp = situacaoDuimp;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class SituacaoDuimpConsultaCover {\n" +
+ " situacaoDuimp: " + toIndentedString(situacaoDuimp) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/TributoCalculadoDuimpConsultaCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/TributoCalculadoDuimpConsultaCover.java
new file mode 100644
index 0000000..49dfe74
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/TributoCalculadoDuimpConsultaCover.java
@@ -0,0 +1,170 @@
+package br.gov.siscomex.portalunico.duimp_balanca_principal.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "TributoCalculadoDuimpConsultaCover", propOrder =
+ {"tipo", "valoresBRL"
+ })
+
+@XmlRootElement(name = "TributoCalculadoDuimpConsultaCover")
+/**
+ * Valores do cálculo do tributo e a memória de cálculo.
+ **/
+@ApiModel(description = "Valores do cálculo do tributo e a memória de cálculo.")
+public class TributoCalculadoDuimpConsultaCover {
+
+
+ @XmlType(name = "TipoEnum")
+ @XmlEnum(String.class)
+ public enum TipoEnum {
+
+ @XmlEnumValue("II")
+ @JsonProperty("II")
+ II("II"),
+
+ @XmlEnumValue("IPI")
+ @JsonProperty("IPI")
+ IPI("IPI"),
+
+ @XmlEnumValue("PIS")
+ @JsonProperty("PIS")
+ PIS("PIS"),
+
+ @XmlEnumValue("COFINS")
+ @JsonProperty("COFINS")
+ COFINS("COFINS"),
+
+ @XmlEnumValue("CIDE")
+ @JsonProperty("CIDE")
+ CIDE("CIDE"),
+
+ @XmlEnumValue("ANTIDUMPING")
+ @JsonProperty("ANTIDUMPING")
+ ANTIDUMPING("ANTIDUMPING"),
+
+ @XmlEnumValue("MULTA_COM_REDUCAO")
+ @JsonProperty("MULTA_COM_REDUCAO")
+ MULTA_COM_REDUCAO("MULTA_COM_REDUCAO"),
+
+ @XmlEnumValue("MULTA_SEM_REDUCAO")
+ @JsonProperty("MULTA_SEM_REDUCAO")
+ MULTA_SEM_REDUCAO("MULTA_SEM_REDUCAO"),
+
+ @XmlEnumValue("TAXA_UTILIZACAO")
+ @JsonProperty("TAXA_UTILIZACAO")
+ TAXA_UTILIZACAO("TAXA_UTILIZACAO");
+
+
+ private final String value;
+
+ TipoEnum(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static TipoEnum fromValue(String v) {
+ for (TipoEnum b : TipoEnum.values()) {
+ if (String.valueOf(b.value).equals(v)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + v + "' to TipoEnum");
+ }
+ }
+
+ @XmlElement(name = "tipo")
+ @ApiModelProperty(example = "II", value = "Tipo de impostos (códigos de receita principal únicos).
Domínio:")
+ /**
+ * Tipo de impostos (códigos de receita principal únicos).
Domínio:
+ **/
+ private TipoEnum tipo = null;
+
+ @XmlElement(name = "valoresBRL")
+ @ApiModelProperty(value = "")
+ @Valid
+ private ValoresTributoDuimpConsultaCover valoresBRL = null;
+
+ /**
+ * Tipo de impostos (códigos de receita principal únicos).<br>Domínio:
+ *
+ * @return tipo
+ **/
+ @JsonProperty("tipo")
+ public String getTipo() {
+ if (tipo == null) {
+ return null;
+ }
+ return tipo.value();
+ }
+
+ public void setTipo(TipoEnum tipo) {
+ this.tipo = tipo;
+ }
+
+ public TributoCalculadoDuimpConsultaCover tipo(TipoEnum tipo) {
+ this.tipo = tipo;
+ return this;
+ }
+
+ /**
+ * Get valoresBRL
+ *
+ * @return valoresBRL
+ **/
+ @JsonProperty("valoresBRL")
+ public ValoresTributoDuimpConsultaCover getValoresBRL() {
+ return valoresBRL;
+ }
+
+ public void setValoresBRL(ValoresTributoDuimpConsultaCover valoresBRL) {
+ this.valoresBRL = valoresBRL;
+ }
+
+ public TributoCalculadoDuimpConsultaCover valoresBRL(ValoresTributoDuimpConsultaCover valoresBRL) {
+ this.valoresBRL = valoresBRL;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class TributoCalculadoDuimpConsultaCover {\n" +
+ " tipo: " + toIndentedString(tipo) + "\n" +
+ " valoresBRL: " + toIndentedString(valoresBRL) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/TributoConsultaDuimpCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/TributoConsultaDuimpCover.java
new file mode 100644
index 0000000..04f7576
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/TributoConsultaDuimpCover.java
@@ -0,0 +1,97 @@
+package br.gov.siscomex.portalunico.duimp_balanca_principal.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import java.util.List;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "TributoConsultaDuimpCover", propOrder =
+ {"mercadoria", "tributosCalculados"
+ })
+
+@XmlRootElement(name = "TributoConsultaDuimpCover")
+public class TributoConsultaDuimpCover {
+
+ @XmlElement(name = "mercadoria")
+ @ApiModelProperty(value = "")
+ @Valid
+ private MercadoriaDuimpConsultaCover mercadoria = null;
+
+ @XmlElement(name = "tributosCalculados")
+ @ApiModelProperty(value = "")
+ @Valid
+ private List
Domínio:")
+ /**
+ * Tipo de impostos (códigos de receita principal únicos).
Domínio:
+ **/
+ private TipoEnum tipo = null;
+
+ /**
+ * Tipo de impostos (códigos de receita principal únicos).<br>Domínio:
+ *
+ * @return tipo
+ **/
+ @JsonProperty("tipo")
+ public String getTipo() {
+ if (tipo == null) {
+ return null;
+ }
+ return tipo.value();
+ }
+
+ public void setTipo(TipoEnum tipo) {
+ this.tipo = tipo;
+ }
+
+ public TributoDuimpConsultaCover tipo(TipoEnum tipo) {
+ this.tipo = tipo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class TributoDuimpConsultaCover {\n" +
+ " tipo: " + toIndentedString(tipo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/UnidadeDeclaradaCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/UnidadeDeclaradaCover.java
new file mode 100644
index 0000000..53857a6
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/UnidadeDeclaradaCover.java
@@ -0,0 +1,74 @@
+package br.gov.siscomex.portalunico.duimp_balanca_principal.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "UnidadeDeclaradaCover", propOrder =
+ {"codigo"
+ })
+
+@XmlRootElement(name = "UnidadeDeclaradaCover")
+/**
+ * Unidade de Despacho.
+ **/
+@ApiModel(description = "Unidade de Despacho.")
+public class UnidadeDeclaradaCover {
+
+ @XmlElement(name = "codigo", required = true)
+ @ApiModelProperty(example = "7912001", required = true, value = "Código da unidade da RFB na qual as mercadorias acobertadas pela Duimp serão submetidas a conferência aduaneira.
Tamanho: 7
Formato: 'NNNNNNN'
Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/")
+ /**
+ * Código da unidade da RFB na qual as mercadorias acobertadas pela Duimp serão submetidas a conferência aduaneira.
Tamanho: 7
Formato: 'NNNNNNN'
Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
+ **/
+ private String codigo = null;
+
+ /**
+ * Código da unidade da RFB na qual as mercadorias acobertadas pela Duimp serão submetidas a conferência aduaneira.<br>Tamanho: 7<br>Formato: 'NNNNNNN'<br>Origem: Sistema de Tabelas Aduaneiras - https://api-docs.portalunico.siscomex.gov.br/
+ *
+ * @return codigo
+ **/
+ @JsonProperty("codigo")
+ @NotNull
+ public String getCodigo() {
+ return codigo;
+ }
+
+ public void setCodigo(String codigo) {
+ this.codigo = codigo;
+ }
+
+ public UnidadeDeclaradaCover codigo(String codigo) {
+ this.codigo = codigo;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class UnidadeDeclaradaCover {\n" +
+ " codigo: " + toIndentedString(codigo) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/ValoresTributoDuimpConsultaCover.java b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/ValoresTributoDuimpConsultaCover.java
new file mode 100644
index 0000000..2c5fe6a
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/duimp_balanca_principal/model/ValoresTributoDuimpConsultaCover.java
@@ -0,0 +1,215 @@
+package br.gov.siscomex.portalunico.duimp_balanca_principal.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import java.math.BigDecimal;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ValoresTributoDuimpConsultaCover", propOrder =
+ {"calculado", "aReduzir", "devido", "suspenso", "aRecolher", "recolhido"
+ })
+
+@XmlRootElement(name = "ValoresTributoDuimpConsultaCover")
+/**
+ * Valores do cálculo do tributo.
+ **/
+@ApiModel(description = "Valores do cálculo do tributo.")
+public class ValoresTributoDuimpConsultaCover {
+
+ @XmlElement(name = "calculado")
+ @ApiModelProperty(example = "1598.73", value = "Valor do tributo calculado em R$ (Reais).Para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso,este valor possuirá o somatório dos valores calculados do pagamento proporcional dos itens.
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto. Para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso, este valor possuirá o somatório dos valores calculados do pagamento proporcional dos itens")
+ @Valid
+ /**
+ * Valor do tributo calculado em R$ (Reais).Para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso,este valor possuirá o somatório dos valores calculados do pagamento proporcional dos itens.
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto. Para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso, este valor possuirá o somatório dos valores calculados do pagamento proporcional dos itens
+ **/
+ private BigDecimal calculado = null;
+
+ @XmlElement(name = "aReduzir")
+ @ApiModelProperty(example = "135.7", value = "Valor a Reduzir do Tributo em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ @Valid
+ /**
+ * Valor a Reduzir do Tributo em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private BigDecimal aReduzir = null;
+
+ @XmlElement(name = "devido")
+ @ApiModelProperty(example = "201.12", value = "Valor do tributo devido em R$ (Reais). Para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso, este valor possuirá o somatório dos valores originalmente devidos dos itens.
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto. Para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso, este valor possuirá o somatório dos valores calculados do pagamento proporcional dos itens")
+ @Valid
+ /**
+ * Valor do tributo devido em R$ (Reais). Para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso, este valor possuirá o somatório dos valores originalmente devidos dos itens.
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto. Para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso, este valor possuirá o somatório dos valores calculados do pagamento proporcional dos itens
+ **/
+ private BigDecimal devido = null;
+
+ @XmlElement(name = "suspenso")
+ @ApiModelProperty(example = "16.7", value = "Valor Suspenso do Tributo em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ @Valid
+ /**
+ * Valor Suspenso do Tributo em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private BigDecimal suspenso = null;
+
+ @XmlElement(name = "aRecolher")
+ @ApiModelProperty(example = "16.7", value = "Valor a Recolher do Imposto de Importação em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ @Valid
+ /**
+ * Valor a Recolher do Imposto de Importação em R$ (Reais).
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private BigDecimal aRecolher = null;
+
+ @XmlElement(name = "recolhido")
+ @ApiModelProperty(example = "16.7", value = "Valores Recolhidos (pagos) do Tributo.
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.")
+ @Valid
+ /**
+ * Valores Recolhidos (pagos) do Tributo.
Tamanho: 16,7
Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ **/
+ private BigDecimal recolhido = null;
+
+ /**
+ * Valor do tributo calculado em R$ (Reais).Para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso,este valor possuirá o somatório dos valores calculados do pagamento proporcional dos itens.<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto. Para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso, este valor possuirá o somatório dos valores calculados do pagamento proporcional dos itens
+ *
+ * @return calculado
+ **/
+ @JsonProperty("calculado")
+ public BigDecimal getCalculado() {
+ return calculado;
+ }
+
+ public void setCalculado(BigDecimal calculado) {
+ this.calculado = calculado;
+ }
+
+ public ValoresTributoDuimpConsultaCover calculado(BigDecimal calculado) {
+ this.calculado = calculado;
+ return this;
+ }
+
+ /**
+ * Valor a Reduzir do Tributo em R$ (Reais).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return aReduzir
+ **/
+ @JsonProperty("aReduzir")
+ public BigDecimal getAReduzir() {
+ return aReduzir;
+ }
+
+ public void setAReduzir(BigDecimal aReduzir) {
+ this.aReduzir = aReduzir;
+ }
+
+ public ValoresTributoDuimpConsultaCover aReduzir(BigDecimal aReduzir) {
+ this.aReduzir = aReduzir;
+ return this;
+ }
+
+ /**
+ * Valor do tributo devido em R$ (Reais). Para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso, este valor possuirá o somatório dos valores originalmente devidos dos itens.<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto. Para Duimp COM situação especial de despacho, cujo motivo (da situação especial de despacho) indique cobrança de tributo suspenso, este valor possuirá o somatório dos valores calculados do pagamento proporcional dos itens
+ *
+ * @return devido
+ **/
+ @JsonProperty("devido")
+ public BigDecimal getDevido() {
+ return devido;
+ }
+
+ public void setDevido(BigDecimal devido) {
+ this.devido = devido;
+ }
+
+ public ValoresTributoDuimpConsultaCover devido(BigDecimal devido) {
+ this.devido = devido;
+ return this;
+ }
+
+ /**
+ * Valor Suspenso do Tributo em R$ (Reais).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return suspenso
+ **/
+ @JsonProperty("suspenso")
+ public BigDecimal getSuspenso() {
+ return suspenso;
+ }
+
+ public void setSuspenso(BigDecimal suspenso) {
+ this.suspenso = suspenso;
+ }
+
+ public ValoresTributoDuimpConsultaCover suspenso(BigDecimal suspenso) {
+ this.suspenso = suspenso;
+ return this;
+ }
+
+ /**
+ * Valor a Recolher do Imposto de Importação em R$ (Reais).<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return aRecolher
+ **/
+ @JsonProperty("aRecolher")
+ public BigDecimal getARecolher() {
+ return aRecolher;
+ }
+
+ public void setARecolher(BigDecimal aRecolher) {
+ this.aRecolher = aRecolher;
+ }
+
+ public ValoresTributoDuimpConsultaCover aRecolher(BigDecimal aRecolher) {
+ this.aRecolher = aRecolher;
+ return this;
+ }
+
+ /**
+ * Valores Recolhidos (pagos) do Tributo.<br>Tamanho: 16,7<br>Formato: Decimal, com até 7 casas decimais separadas por ponto.
+ *
+ * @return recolhido
+ **/
+ @JsonProperty("recolhido")
+ public BigDecimal getRecolhido() {
+ return recolhido;
+ }
+
+ public void setRecolhido(BigDecimal recolhido) {
+ this.recolhido = recolhido;
+ }
+
+ public ValoresTributoDuimpConsultaCover recolhido(BigDecimal recolhido) {
+ this.recolhido = recolhido;
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+
+ String sb = "class ValoresTributoDuimpConsultaCover {\n" +
+ " calculado: " + toIndentedString(calculado) + "\n" +
+ " aReduzir: " + toIndentedString(aReduzir) + "\n" +
+ " devido: " + toIndentedString(devido) + "\n" +
+ " suspenso: " + toIndentedString(suspenso) + "\n" +
+ " aRecolher: " + toIndentedString(aRecolher) + "\n" +
+ " recolhido: " + toIndentedString(recolhido) + "\n" +
+ "}";
+ return sb;
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private static String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/rcnt/api/Grupo1ControleDeReasEEquipamentosApi.java b/src/main/java/br/gov/siscomex/portalunico/rcnt/api/Grupo1ControleDeReasEEquipamentosApi.java
new file mode 100644
index 0000000..107620c
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/rcnt/api/Grupo1ControleDeReasEEquipamentosApi.java
@@ -0,0 +1,73 @@
+package br.gov.siscomex.portalunico.rcnt.api;
+
+import br.gov.siscomex.portalunico.rcnt.model.DadosGeorreferenciamento;
+import br.gov.siscomex.portalunico.rcnt.model.DadosIndisponibilidadeEquipamento;
+import br.gov.siscomex.portalunico.rcnt.model.ExceptionCoverDocumentacao;
+import br.gov.siscomex.portalunico.rcnt.model.RespostaParaSucessoNaRecepoDeEventoAduaneiro;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+
+import javax.validation.Valid;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.Response;
+
+/**
+ * Recintos Aduaneiros
+ *
+ * Introdução
II - interveniente: a administradora de local ou recinto alfandegado ou autorizado a operar com mercadorias sob controle aduaneiro, o depositário e o operador portuário habilitado ou autorizado a operar nestes locais ou recintos;
III - informações: aquelas relativas às operações de entrada e saída de pessoas e veículos, movimentação de carga e armazenamento de mercadorias, inclusive imagens;
IV - registro: a inserção e a retificação de informações no SICA;
V - eventos: o conjunto de informações previstas no Anexo III desta Portaria que devem ser enviadas à API-Recintos simultaneamente ao seu registro no SICA; e
VI - envio de eventos à API-Recintos: transmissão eletrônica de conjunto de informações, inclusive imagens, registradas no SICA à API-Recintos, por meio da integração entre estes.
2) Cada envio deve conter um único evento por vez, seguindo o model previsto para cada qual, sendo comum a todos os eventos os dados referentes ao Cabeçalho do Evento (model: Cabeçalho Envio Evento Aduaneiro);
3) O processo de recepção, por parte da API-Recintos, é composta por etapa de validação, armazenamento e, por fim, retorna-se o protocolo de recepção. Dessa maneira, somente será atribuído e retornado o protocolo de recepção para os eventos processados com sucesso. Qualquer erro de validação ou no processamento ocasiona a interrupção da recepção, sendo retornado detalhamento do erro;
4) Para Operações de Retificação e Exclusão é obrigatório informar valor para o atributo protocoloEventoRetificadoOuExcluido que deve apontar para o evento alvo da ação de Retificação ou Exclusão;
5) Para Operações de Exclusão orientamos preencherem apenas o cabeçalho dos eventos.
6) Listas: cada atributo de lista deverá conter um atributo idElemento que identifique unicamente cada item da lista. No caso de eventos retificadores, que referenciam um evento transmitido anteriormente, o recinto deve ser capaz de 'repetir' o mesmo 'idElemento' utilizado no evento retificado;
7) Atributos duplicados: a API não critica atributos duplicados e, caso existam, o conteúdo da segunda ocorrência irá sobrepor o conteúdo da primeira;
8) Domínios: os domínios são sensíveis a maiúsculas e minúsculas;
9) Atributos de data/hora com fuso: deve-se enviar o fuso horário no qual tal data/hora foi gerada considerando, inclusive, o horário de verão.
10) Os perfis de autenticação que devem ser utilizados pelas empresas são: a) Depositário (DEPOSIT) ou b) Operador Portuário (OPERPORT).
11) O campo \"codigoRecinto\" deve ser informado obrigatoriamente em todos os eventos transmitidos na API Recintos.
12) Os campos que representam informações de CPF e CNPJ em eventos deve ser informados somente com números, sem caracteres de formatação.
13) Para todos os eventos, o tamanho máximo da mensagem em formato JSON deve ser 500KB.
14) Na recepção de eventos de inclusão, será rejeitado o evento para o qual for verificado que já existe evento com o mesmo ID, CNPJ, código do recinto e tipo de evento, recebido nos últimos 60 minutos, considerando a data de transmissão.URLs de Acesso
Nome do Ambiente URL de acesso Ambiente de Validação de Empresas https://val.portalunico.siscomex.gov.br/recintos-ext/api/{serviço} Ambiente de Produção https://portalunico.siscomex.gov.br/recintos-ext/api/{serviço} Organização por Tópicos dos Eventos
Os endpoints relativos aos 22 eventos estão distribuídos em 6 grupos, conforme abaixo:
+ *
+ */
+@Path("/")
+@Api(value = "/", description = "")
+public interface Grupo1ControleDeReasEEquipamentosApi {
+
+ /**
+ * Georreferenciamento
+ *
+ * Neste evento devem ser enviadas as informações de georreferenciamento de áreas e equipamentos do recinto.<br/>As áreas e equipamentos considerados devem ser os constantes da lista de domínio “tipo”.<br/>As coordenadas de cada objeto definido podem ser um polígono ou ponto, por exemplo:<br/><ul><li>O perímetro da área alfandegada e demais áreas... (polígono);<br/></li><li>As câmeras do sistema de CFTV, inclusive dos Gates e que fazem parte do sistema de OCR (ponto);</li><li>As catracas, torniquetes e outros instrumentos de controle de acesso de pessoas (ponto);</li><li>As balanças, medidores e outros equipamentos utilizados para quantificação (ponto);</li><li>Os Portêiner, Shiploader e outros instrumentos de manipulação de unidades de carga em navios (ponto/polígono);</li><li>Os escâneres, tanto de contêineres, veículos ou volumes (ponto);</li><li>Os gates, portões e outros instrumentos de controle de acesso de veículos (ponto).</li></ul>Obs.: Visando facilitar o preenchimento das coordenadas, os valores da Latitude e Longitude devem estar dentro dos seguintes limites:<br/><br/>Latitude: entre +10.000000 e -38.000000 <br/>Longitude: entre -30.000000 e -78.000000
+ *
+ */
+ @POST
+ @Path("/ext/evento-georreferenciamento")
+ @Consumes({ "application/json" })
+ @Produces({ "application/json" })
+ @ApiOperation(value = "Georreferenciamento", notes = "Neste evento devem ser enviadas as informações de georreferenciamento de áreas e equipamentos do recinto.
As áreas e equipamentos considerados devem ser os constantes da lista de domínio “tipo”.
As coordenadas de cada objeto definido podem ser um polígono ou ponto, por exemplo:
Obs.: Visando facilitar o preenchimento das coordenadas, os valores da Latitude e Longitude devem estar dentro dos seguintes limites:
Latitude: entre +10.000000 e -38.000000
Longitude: entre -30.000000 e -78.000000", tags={ "Grupo 1 - Controle de Áreas e Equipamentos" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 201, message = "Recurso criado com sucesso", response = RespostaParaSucessoNaRecepoDeEventoAduaneiro.class),
+ @ApiResponse(code = 400, message = "Requisição mal formatada"),
+ @ApiResponse(code = 401, message = "Usuário não autenticado ou autenticação inválida", response = ExceptionCoverDocumentacao.class),
+ @ApiResponse(code = 403, message = "Usuário não tem permissão de acesso ao recurso"),
+ @ApiResponse(code = 422, message = "Erro(s) de validação da camada de negócio", response = ExceptionCoverDocumentacao.class),
+ @ApiResponse(code = 500, message = "Erro interno no servidor"),
+ @ApiResponse(code = 503, message = "Serviço indisponível") })
+ public Response incluirUsingPOST12(@ApiParam(value = "JSON do evento Georreferenciamento" ,required=true)@Valid DadosGeorreferenciamento body, @ApiParam(value = "JSON Web Token (JWT) contendo as informações do usuário. Este token deve ser preenchido com o conteúdo do header Set-Token, retornado no response headers da chamada ao serviço de autenticação." ,required=true)@HeaderParam("Authorization") String authorization, @ApiParam(value = "Token de prevenção contra ataques CSRF (Cross-Site Request Forgery). Este token deve ser preenchido com o conteúdo do header X-CSRF-Token, retornado no response headers da chamada ao serviço de autenticação." ,required=true)@HeaderParam("X-CSRF-Token") String xCSRFToken);
+
+ /**
+ * Ocorrências de indisponibilidades de equipamentos
+ *
+ * Transmitir um evento para cada indisponibilidade e retorno à normalidade de cada equipamento definido.<br/>Não considerar indisponibilidades do tipo “house keeping”, casos de manutenção preventiva, rápida e, muitas vezes, diária de equipamentos (exemplo: trocas de óleo em Portêiner que é executada diariamente).
+ *
+ */
+ @POST
+ @Path("/ext/indisponibilidade-equipamentos")
+ @Consumes({ "application/json" })
+ @Produces({ "application/json" })
+ @ApiOperation(value = "Ocorrências de indisponibilidades de equipamentos", notes = "Transmitir um evento para cada indisponibilidade e retorno à normalidade de cada equipamento definido.
Não considerar indisponibilidades do tipo “house keeping”, casos de manutenção preventiva, rápida e, muitas vezes, diária de equipamentos (exemplo: trocas de óleo em Portêiner que é executada diariamente).", tags={ "Grupo 1 - Controle de Áreas e Equipamentos" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 201, message = "Recurso criado com sucesso", response = RespostaParaSucessoNaRecepoDeEventoAduaneiro.class),
+ @ApiResponse(code = 400, message = "Requisição mal formatada"),
+ @ApiResponse(code = 401, message = "Usuário não autenticado ou autenticação inválida", response = ExceptionCoverDocumentacao.class),
+ @ApiResponse(code = 403, message = "Usuário não tem permissão de acesso ao recurso"),
+ @ApiResponse(code = 422, message = "Erro(s) de validação da camada de negócio", response = ExceptionCoverDocumentacao.class),
+ @ApiResponse(code = 500, message = "Erro interno no servidor"),
+ @ApiResponse(code = 503, message = "Serviço indisponível") })
+ public Response incluirUsingPOST17(@ApiParam(value = "JSON do evento Ocorrências Indisponibilidades Equipamentos" ,required=true)@Valid DadosIndisponibilidadeEquipamento body, @ApiParam(value = "JSON Web Token (JWT) contendo as informações do usuário. Este token deve ser preenchido com o conteúdo do header Set-Token, retornado no response headers da chamada ao serviço de autenticação." ,required=true)@HeaderParam("Authorization") String authorization, @ApiParam(value = "Token de prevenção contra ataques CSRF (Cross-Site Request Forgery). Este token deve ser preenchido com o conteúdo do header X-CSRF-Token, retornado no response headers da chamada ao serviço de autenticação." ,required=true)@HeaderParam("X-CSRF-Token") String xCSRFToken);
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/rcnt/api/Grupo2ControleDePessoasApi.java b/src/main/java/br/gov/siscomex/portalunico/rcnt/api/Grupo2ControleDePessoasApi.java
new file mode 100644
index 0000000..2b7062f
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/rcnt/api/Grupo2ControleDePessoasApi.java
@@ -0,0 +1,95 @@
+package br.gov.siscomex.portalunico.rcnt.api;
+
+import br.gov.siscomex.portalunico.rcnt.model.DadosAcessoPessoa;
+import br.gov.siscomex.portalunico.rcnt.model.DadosCredenciamentoPessoa;
+import br.gov.siscomex.portalunico.rcnt.model.DadosRepresentante;
+import br.gov.siscomex.portalunico.rcnt.model.ExceptionCoverDocumentacao;
+import br.gov.siscomex.portalunico.rcnt.model.RespostaParaSucessoNaRecepoDeEventoAduaneiro;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+
+import javax.validation.Valid;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.Response;
+
+/**
+ * Recintos Aduaneiros
+ *
+ * Introdução
II - interveniente: a administradora de local ou recinto alfandegado ou autorizado a operar com mercadorias sob controle aduaneiro, o depositário e o operador portuário habilitado ou autorizado a operar nestes locais ou recintos;
III - informações: aquelas relativas às operações de entrada e saída de pessoas e veículos, movimentação de carga e armazenamento de mercadorias, inclusive imagens;
IV - registro: a inserção e a retificação de informações no SICA;
V - eventos: o conjunto de informações previstas no Anexo III desta Portaria que devem ser enviadas à API-Recintos simultaneamente ao seu registro no SICA; e
VI - envio de eventos à API-Recintos: transmissão eletrônica de conjunto de informações, inclusive imagens, registradas no SICA à API-Recintos, por meio da integração entre estes.
2) Cada envio deve conter um único evento por vez, seguindo o model previsto para cada qual, sendo comum a todos os eventos os dados referentes ao Cabeçalho do Evento (model: Cabeçalho Envio Evento Aduaneiro);
3) O processo de recepção, por parte da API-Recintos, é composta por etapa de validação, armazenamento e, por fim, retorna-se o protocolo de recepção. Dessa maneira, somente será atribuído e retornado o protocolo de recepção para os eventos processados com sucesso. Qualquer erro de validação ou no processamento ocasiona a interrupção da recepção, sendo retornado detalhamento do erro;
4) Para Operações de Retificação e Exclusão é obrigatório informar valor para o atributo protocoloEventoRetificadoOuExcluido que deve apontar para o evento alvo da ação de Retificação ou Exclusão;
5) Para Operações de Exclusão orientamos preencherem apenas o cabeçalho dos eventos.
6) Listas: cada atributo de lista deverá conter um atributo idElemento que identifique unicamente cada item da lista. No caso de eventos retificadores, que referenciam um evento transmitido anteriormente, o recinto deve ser capaz de 'repetir' o mesmo 'idElemento' utilizado no evento retificado;
7) Atributos duplicados: a API não critica atributos duplicados e, caso existam, o conteúdo da segunda ocorrência irá sobrepor o conteúdo da primeira;
8) Domínios: os domínios são sensíveis a maiúsculas e minúsculas;
9) Atributos de data/hora com fuso: deve-se enviar o fuso horário no qual tal data/hora foi gerada considerando, inclusive, o horário de verão.
10) Os perfis de autenticação que devem ser utilizados pelas empresas são: a) Depositário (DEPOSIT) ou b) Operador Portuário (OPERPORT).
11) O campo \"codigoRecinto\" deve ser informado obrigatoriamente em todos os eventos transmitidos na API Recintos.
12) Os campos que representam informações de CPF e CNPJ em eventos deve ser informados somente com números, sem caracteres de formatação.
13) Para todos os eventos, o tamanho máximo da mensagem em formato JSON deve ser 500KB.
14) Na recepção de eventos de inclusão, será rejeitado o evento para o qual for verificado que já existe evento com o mesmo ID, CNPJ, código do recinto e tipo de evento, recebido nos últimos 60 minutos, considerando a data de transmissão.URLs de Acesso
Nome do Ambiente URL de acesso Ambiente de Validação de Empresas https://val.portalunico.siscomex.gov.br/recintos-ext/api/{serviço} Ambiente de Produção https://portalunico.siscomex.gov.br/recintos-ext/api/{serviço} Organização por Tópicos dos Eventos
Os endpoints relativos aos 22 eventos estão distribuídos em 6 grupos, conforme abaixo:
+ *
+ */
+@Path("/")
+@Api(value = "/", description = "")
+public interface Grupo2ControleDePessoasApi {
+
+ /**
+ * Credenciamento de Pessoas
+ *
+ * Um evento para cada pessoa credenciada para acesso ao recinto (entrada/saída).<br/>Considerar acesso às áreas alfandegadas apenas.<br/>Transmitir logo que encerrar o ato de credenciamento.<br/>Um evento para cada CPF credenciado.<br/><br/>Obs.: Quando do credenciamento inicial informar “credenciamentoAtivo:true” e validade do credenciamento caso existir.<br/>Casos em que a validade do credenciamento seja informada, a RFB vai considerar credenciamento inativo quando do vencimento do prazo.<br/>Para os casos que não exista validade do credenciamento o evento deve ser retificado para “credenciamentoAtivo:false” quando for o caso.<br/>(por exemplo: no caso de funcionários não há validade de credenciamento logo no caso de demissão o evento de credenciamento deve ser retificado para status = inativo).
+ *
+ */
+ @POST
+ @Path("/ext/credenciamento-pessoas")
+ @Consumes({ "application/json" })
+ @Produces({ "application/json" })
+ @ApiOperation(value = "Credenciamento de Pessoas", notes = "Um evento para cada pessoa credenciada para acesso ao recinto (entrada/saída).
Considerar acesso às áreas alfandegadas apenas.
Transmitir logo que encerrar o ato de credenciamento.
Um evento para cada CPF credenciado.
Obs.: Quando do credenciamento inicial informar “credenciamentoAtivo:true” e validade do credenciamento caso existir.
Casos em que a validade do credenciamento seja informada, a RFB vai considerar credenciamento inativo quando do vencimento do prazo.
Para os casos que não exista validade do credenciamento o evento deve ser retificado para “credenciamentoAtivo:false” quando for o caso.
(por exemplo: no caso de funcionários não há validade de credenciamento logo no caso de demissão o evento de credenciamento deve ser retificado para status = inativo).", tags={ "Grupo 2 - Controle de Pessoas" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 201, message = "Recurso criado com sucesso", response = RespostaParaSucessoNaRecepoDeEventoAduaneiro.class),
+ @ApiResponse(code = 400, message = "Requisição mal formatada"),
+ @ApiResponse(code = 401, message = "Usuário não autenticado ou autenticação inválida", response = ExceptionCoverDocumentacao.class),
+ @ApiResponse(code = 403, message = "Usuário não tem permissão de acesso ao recurso"),
+ @ApiResponse(code = 422, message = "Erro(s) de validação da camada de negócio", response = ExceptionCoverDocumentacao.class),
+ @ApiResponse(code = 500, message = "Erro interno no servidor"),
+ @ApiResponse(code = 503, message = "Serviço indisponível") })
+ public Response incluirUsingPOST10(@ApiParam(value = "JSON do evento Credenciamento Pessoas" ,required=true)@Valid DadosCredenciamentoPessoa body, @ApiParam(value = "JSON Web Token (JWT) contendo as informações do usuário. Este token deve ser preenchido com o conteúdo do header Set-Token, retornado no response headers da chamada ao serviço de autenticação." ,required=true)@HeaderParam("Authorization") String authorization, @ApiParam(value = "Token de prevenção contra ataques CSRF (Cross-Site Request Forgery). Este token deve ser preenchido com o conteúdo do header X-CSRF-Token, retornado no response headers da chamada ao serviço de autenticação." ,required=true)@HeaderParam("X-CSRF-Token") String xCSRFToken);
+
+ /**
+ * Representantes
+ *
+ * Lista de pessoas que acessam o sistema do recinto em nome de cada cliente ou que possuam representação via procuração. Diferente do cadastro de representação do Siscomex. Toda representação via sistema ou papel deve ser informada. Transmitir um evento para cada representação CPF/CNPJ.
+ *
+ */
+ @POST
+ @Path("/ext/representantes")
+ @Consumes({ "application/json" })
+ @Produces({ "application/json" })
+ @ApiOperation(value = "Representantes", notes = "Lista de pessoas que acessam o sistema do recinto em nome de cada cliente ou que possuam representação via procuração. Diferente do cadastro de representação do Siscomex. Toda representação via sistema ou papel deve ser informada. Transmitir um evento para cada representação CPF/CNPJ.", tags={ "Grupo 2 - Controle de Pessoas" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 201, message = "Recurso criado com sucesso", response = RespostaParaSucessoNaRecepoDeEventoAduaneiro.class),
+ @ApiResponse(code = 400, message = "Requisição mal formatada"),
+ @ApiResponse(code = 401, message = "Usuário não autenticado ou autenticação inválida", response = ExceptionCoverDocumentacao.class),
+ @ApiResponse(code = 403, message = "Usuário não tem permissão de acesso ao recurso"),
+ @ApiResponse(code = 422, message = "Erro(s) de validação da camada de negócio", response = ExceptionCoverDocumentacao.class),
+ @ApiResponse(code = 500, message = "Erro interno no servidor"),
+ @ApiResponse(code = 503, message = "Serviço indisponível") })
+ public Response incluirUsingPOST21(@ApiParam(value = "JSON do evento Representantes" ,required=true)@Valid DadosRepresentante body, @ApiParam(value = "JSON Web Token (JWT) contendo as informações do usuário. Este token deve ser preenchido com o conteúdo do header Set-Token, retornado no response headers da chamada ao serviço de autenticação." ,required=true)@HeaderParam("Authorization") String authorization, @ApiParam(value = "Token de prevenção contra ataques CSRF (Cross-Site Request Forgery). Este token deve ser preenchido com o conteúdo do header X-CSRF-Token, retornado no response headers da chamada ao serviço de autenticação." ,required=true)@HeaderParam("X-CSRF-Token") String xCSRFToken);
+
+ /**
+ * Controle de Acesso de Pessoas
+ *
+ * Um evento para cada acesso (entrada ou saída) de pessoa ao recinto. Transmitir imediatamente ao acesso (entrada ou saída).<br/>Um evento para cada acesso de CPF;
+ *
+ */
+ @POST
+ @Path("/ext/acesso-pessoas")
+ @Consumes({ "application/json" })
+ @Produces({ "application/json" })
+ @ApiOperation(value = "Controle de Acesso de Pessoas", notes = "Um evento para cada acesso (entrada ou saída) de pessoa ao recinto. Transmitir imediatamente ao acesso (entrada ou saída).
Um evento para cada acesso de CPF;", tags={ "Grupo 2 - Controle de Pessoas" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 201, message = "Recurso criado com sucesso", response = RespostaParaSucessoNaRecepoDeEventoAduaneiro.class),
+ @ApiResponse(code = 400, message = "Requisição mal formatada"),
+ @ApiResponse(code = 401, message = "Usuário não autenticado ou autenticação inválida", response = ExceptionCoverDocumentacao.class),
+ @ApiResponse(code = 403, message = "Usuário não tem permissão de acesso ao recurso"),
+ @ApiResponse(code = 422, message = "Erro(s) de validação da camada de negócio", response = ExceptionCoverDocumentacao.class),
+ @ApiResponse(code = 500, message = "Erro interno no servidor"),
+ @ApiResponse(code = 503, message = "Serviço indisponível") })
+ public Response incluirUsingPOST7(@ApiParam(value = "JSON do evento Acesso Pessoa" ,required=true)@Valid DadosAcessoPessoa body, @ApiParam(value = "JSON Web Token (JWT) contendo as informações do usuário. Este token deve ser preenchido com o conteúdo do header Set-Token, retornado no response headers da chamada ao serviço de autenticação." ,required=true)@HeaderParam("Authorization") String authorization, @ApiParam(value = "Token de prevenção contra ataques CSRF (Cross-Site Request Forgery). Este token deve ser preenchido com o conteúdo do header X-CSRF-Token, retornado no response headers da chamada ao serviço de autenticação." ,required=true)@HeaderParam("X-CSRF-Token") String xCSRFToken);
+}
+
diff --git a/src/main/java/br/gov/siscomex/portalunico/rcnt/api/Grupo3ControleDeVeculosTerrestresApi.java b/src/main/java/br/gov/siscomex/portalunico/rcnt/api/Grupo3ControleDeVeculosTerrestresApi.java
new file mode 100644
index 0000000..9d06a4f
--- /dev/null
+++ b/src/main/java/br/gov/siscomex/portalunico/rcnt/api/Grupo3ControleDeVeculosTerrestresApi.java
@@ -0,0 +1,95 @@
+package br.gov.siscomex.portalunico.rcnt.api;
+
+import br.gov.siscomex.portalunico.rcnt.model.DadosAcessoVeculo;
+import br.gov.siscomex.portalunico.rcnt.model.DadosCredenciamentoVeculo;
+import br.gov.siscomex.portalunico.rcnt.model.DadosPosioVeculoPtio;
+import br.gov.siscomex.portalunico.rcnt.model.ExceptionCoverDocumentacao;
+import br.gov.siscomex.portalunico.rcnt.model.RespostaParaSucessoNaRecepoDeEventoAduaneiro;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+
+import javax.validation.Valid;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.Response;
+
+/**
+ * Recintos Aduaneiros
+ *
+ * Introdução
II - interveniente: a administradora de local ou recinto alfandegado ou autorizado a operar com mercadorias sob controle aduaneiro, o depositário e o operador portuário habilitado ou autorizado a operar nestes locais ou recintos;
III - informações: aquelas relativas às operações de entrada e saída de pessoas e veículos, movimentação de carga e armazenamento de mercadorias, inclusive imagens;
IV - registro: a inserção e a retificação de informações no SICA;
V - eventos: o conjunto de informações previstas no Anexo III desta Portaria que devem ser enviadas à API-Recintos simultaneamente ao seu registro no SICA; e
VI - envio de eventos à API-Recintos: transmissão eletrônica de conjunto de informações, inclusive imagens, registradas no SICA à API-Recintos, por meio da integração entre estes.
O interveniente deverá registrar no SICA e enviar para a API-Recintos, para cada operação que realizar, todas as informações de cada evento, excetuadas as informações inaplicáveis ao caso em concreto.
O envio de eventos retificadores substitui completamente as informações prestadas no evento retificado.
Todos os eventos enviados à API-Recintos devem conter o CPF do preposto que realizou o registro das informações no SICA, ressalvados os casos de informações coletadas automaticamente.
A cada envio de eventos à API-Recintos será retornado um protocolo de recepção que deve ser armazenado no SICA. Esse recibo será a identificação única de um evento dentro da API-Recintos e deve ser utilizado para solicitar a retificação ou exclusão do referido evento. Esse protocolo também deve ser utilizado na identificação de artefatos georreferenciados.
O SICA deverá funcionar de forma ininterrupta e permitir o envio de eventos à API-Recintos de forma simultânea e integrada com o registro de informações relativas às operações executadas nos locais ou recintos alfandegados ou autorizados a operar com mercadorias sob controle aduaneiro.
Nota 1: O ambiente de validação/treinamento foi projetado para possibilitar testes de integração entre o SICA e a API-Recintos. Portanto, faça uso racional do ambiente de validação/treinamento pois tentativas massivas de envios de eventos poderão ter limitação temporária de acesso.
Abaixo, foram consolidadas informações técnicas para a integração dos sistemas dos intervenientes com o Portal:
1) No Portal, todos os serviços adotam o mesmo protocolo de acesso, baseado no padrão SSL/TLS e no uso de certificado digital. A API do Portal foi desenvolvida baseada na arquitetura REST. Ela trabalhará com o formato JSON. Além disso, toda a nossa API usará o formato UTF-8;
2) Cada envio deve conter um único evento por vez, seguindo o model previsto para cada qual, sendo comum a todos os eventos os dados referentes ao Cabeçalho do Evento (model: Cabeçalho Envio Evento Aduaneiro);
3) O processo de recepção, por parte da API-Recintos, é composta por etapa de validação, armazenamento e, por fim, retorna-se o protocolo de recepção. Dessa maneira, somente será atribuído e retornado o protocolo de recepção para os eventos processados com sucesso. Qualquer erro de validação ou no processamento ocasiona a interrupção da recepção, sendo retornado detalhamento do erro;
4) Para Operações de Retificação e Exclusão é obrigatório informar valor para o atributo protocoloEventoRetificadoOuExcluido que deve apontar para o evento alvo da ação de Retificação ou Exclusão;
5) Para Operações de Exclusão orientamos preencherem apenas o cabeçalho dos eventos.
6) Listas: cada atributo de lista deverá conter um atributo idElemento que identifique unicamente cada item da lista. No caso de eventos retificadores, que referenciam um evento transmitido anteriormente, o recinto deve ser capaz de 'repetir' o mesmo 'idElemento' utilizado no evento retificado;
7) Atributos duplicados: a API não critica atributos duplicados e, caso existam, o conteúdo da segunda ocorrência irá sobrepor o conteúdo da primeira;
8) Domínios: os domínios são sensíveis a maiúsculas e minúsculas;
9) Atributos de data/hora com fuso: deve-se enviar o fuso horário no qual tal data/hora foi gerada considerando, inclusive, o horário de verão.
10) Os perfis de autenticação que devem ser utilizados pelas empresas são: a) Depositário (DEPOSIT) ou b) Operador Portuário (OPERPORT).
11) O campo \"codigoRecinto\" deve ser informado obrigatoriamente em todos os eventos transmitidos na API Recintos.
12) Os campos que representam informações de CPF e CNPJ em eventos deve ser informados somente com números, sem caracteres de formatação.
13) Para todos os eventos, o tamanho máximo da mensagem em formato JSON deve ser 500KB.
14) Na recepção de eventos de inclusão, será rejeitado o evento para o qual for verificado que já existe evento com o mesmo ID, CNPJ, código do recinto e tipo de evento, recebido nos últimos 60 minutos, considerando a data de transmissão.
O depositário, inclusive quando executar atividades de operador portuário em seu próprio recinto, pode enviar todos os eventos com a autenticação DEPOSIT. O pacote de dados a ser transmitido deve informar o seu código de recinto (codigoRecinto), ou seja, o código do recinto onde ocorreu o evento a ser transmitido.
Caso o interveniente atue exclusivamente como operador portuário, ou seja, não acumule ambas as atuações (depositário e operador portuário) no recinto de ocorrência do evento, então ele deve usar o perfil OPERPORT para autenticação. Enfatiza-se que o código de recinto (codigoRecinto), indicado no pacote de dados, deve refletir o recinto onde, de fato, ocorreu o evento a ser transmitido.
Ressaltamos que o servidor da API Recintos possui horário sincronizado com o protocolo NTP.BR. Orientamos que os recintos sincronizem os servidores envolvidos na geração e transmissão dos eventos com o mesmo protocolo.
Para utilizar os serviços disponíveis nessa API deve-se usar as seguintes de URLs:
Nome do Ambiente | URL de acesso |
---|---|
Ambiente de Validação de Empresas | https://val.portalunico.siscomex.gov.br/recintos-ext/api/{serviço} |
Ambiente de Produção | https://portalunico.siscomex.gov.br/recintos-ext/api/{serviço} |
Logo, abaixo temos um exemplo de URL completa considerando o ambiente de Validação de Empresas, consumindo o serviço de Credenciamento de Pessoas:
https://val.portalunico.siscomex.gov.br/recintos-ext/api/ext/credenciamento-pessoas
Bem-vindo à Application Programming Interface (API) de interação entre os recintos e o Portal Único de Comércio Exterior no Sistema Integrado de Comércio Exterior (Portal Siscomex), aqui chamada de API-Recintos. Trata-se de um conjunto de rotinas e padrões de programação para acesso a um aplicativo de software baseado nos padrões Web, que permitirá a recepção de eventos dentro do Portal Siscomex.
Disponibilizamos os endpoints de 22 eventos.
Para a utilização dos serviços desta API, a autenticação via certificação digital, do tipo e-CNPJ, é obrigatória. Caso seja verificado erro na autenticação ao serviço, o sistema irá retornar o erro referente à autenticação conforme especificado na seção Status Codes da API.
O processo de autenticação deve ser executado conforme descrito em Autenticação.
Definições importantes, conforme a Portaria Coana no 72, de 12 de abril de 2022:
I - Sistema Informatizado de Controle Aduaneiro (SICA): o conjunto de sistemas informatizados de controle que operem em locais ou recintos alfandegados ou autorizados a operar com mercadorias sob controle aduaneiro;
II - interveniente: a administradora de local ou recinto alfandegado ou autorizado a operar com mercadorias sob controle aduaneiro, o depositário e o operador portuário habilitado ou autorizado a operar nestes locais ou recintos;
III - informações: aquelas relativas às operações de entrada e saída de pessoas e veículos, movimentação de carga e armazenamento de mercadorias, inclusive imagens;
IV - registro: a inserção e a retificação de informações no SICA;
V - eventos: o conjunto de informações previstas no Anexo III desta Portaria que devem ser enviadas à API-Recintos simultaneamente ao seu registro no SICA; e
VI - envio de eventos à API-Recintos: transmissão eletrônica de conjunto de informações, inclusive imagens, registradas no SICA à API-Recintos, por meio da integração entre estes.
O interveniente deverá registrar no SICA e enviar para a API-Recintos, para cada operação que realizar, todas as informações de cada evento, excetuadas as informações inaplicáveis ao caso em concreto.
O envio de eventos retificadores substitui completamente as informações prestadas no evento retificado.
Todos os eventos enviados à API-Recintos devem conter o CPF do preposto que realizou o registro das informações no SICA, ressalvados os casos de informações coletadas automaticamente.
A cada envio de eventos à API-Recintos será retornado um protocolo de recepção que deve ser armazenado no SICA. Esse recibo será a identificação única de um evento dentro da API-Recintos e deve ser utilizado para solicitar a retificação ou exclusão do referido evento. Esse protocolo também deve ser utilizado na identificação de artefatos georreferenciados.
O SICA deverá funcionar de forma ininterrupta e permitir o envio de eventos à API-Recintos de forma simultânea e integrada com o registro de informações relativas às operações executadas nos locais ou recintos alfandegados ou autorizados a operar com mercadorias sob controle aduaneiro.
Nota 1: O ambiente de validação/treinamento foi projetado para possibilitar testes de integração entre o SICA e a API-Recintos. Portanto, faça uso racional do ambiente de validação/treinamento pois tentativas massivas de envios de eventos poderão ter limitação temporária de acesso.
Abaixo, foram consolidadas informações técnicas para a integração dos sistemas dos intervenientes com o Portal:
1) No Portal, todos os serviços adotam o mesmo protocolo de acesso, baseado no padrão SSL/TLS e no uso de certificado digital. A API do Portal foi desenvolvida baseada na arquitetura REST. Ela trabalhará com o formato JSON. Além disso, toda a nossa API usará o formato UTF-8;
2) Cada envio deve conter um único evento por vez, seguindo o model previsto para cada qual, sendo comum a todos os eventos os dados referentes ao Cabeçalho do Evento (model: Cabeçalho Envio Evento Aduaneiro);
3) O processo de recepção, por parte da API-Recintos, é composta por etapa de validação, armazenamento e, por fim, retorna-se o protocolo de recepção. Dessa maneira, somente será atribuído e retornado o protocolo de recepção para os eventos processados com sucesso. Qualquer erro de validação ou no processamento ocasiona a interrupção da recepção, sendo retornado detalhamento do erro;
4) Para Operações de Retificação e Exclusão é obrigatório informar valor para o atributo protocoloEventoRetificadoOuExcluido que deve apontar para o evento alvo da ação de Retificação ou Exclusão;
5) Para Operações de Exclusão orientamos preencherem apenas o cabeçalho dos eventos.
6) Listas: cada atributo de lista deverá conter um atributo idElemento que identifique unicamente cada item da lista. No caso de eventos retificadores, que referenciam um evento transmitido anteriormente, o recinto deve ser capaz de 'repetir' o mesmo 'idElemento' utilizado no evento retificado;
7) Atributos duplicados: a API não critica atributos duplicados e, caso existam, o conteúdo da segunda ocorrência irá sobrepor o conteúdo da primeira;
8) Domínios: os domínios são sensíveis a maiúsculas e minúsculas;
9) Atributos de data/hora com fuso: deve-se enviar o fuso horário no qual tal data/hora foi gerada considerando, inclusive, o horário de verão.
10) Os perfis de autenticação que devem ser utilizados pelas empresas são: a) Depositário (DEPOSIT) ou b) Operador Portuário (OPERPORT).
11) O campo \"codigoRecinto\" deve ser informado obrigatoriamente em todos os eventos transmitidos na API Recintos.
12) Os campos que representam informações de CPF e CNPJ em eventos deve ser informados somente com números, sem caracteres de formatação.
13) Para todos os eventos, o tamanho máximo da mensagem em formato JSON deve ser 500KB.
14) Na recepção de eventos de inclusão, será rejeitado o evento para o qual for verificado que já existe evento com o mesmo ID, CNPJ, código do recinto e tipo de evento, recebido nos últimos 60 minutos, considerando a data de transmissão.
O depositário, inclusive quando executar atividades de operador portuário em seu próprio recinto, pode enviar todos os eventos com a autenticação DEPOSIT. O pacote de dados a ser transmitido deve informar o seu código de recinto (codigoRecinto), ou seja, o código do recinto onde ocorreu o evento a ser transmitido.
Caso o interveniente atue exclusivamente como operador portuário, ou seja, não acumule ambas as atuações (depositário e operador portuário) no recinto de ocorrência do evento, então ele deve usar o perfil OPERPORT para autenticação. Enfatiza-se que o código de recinto (codigoRecinto), indicado no pacote de dados, deve refletir o recinto onde, de fato, ocorreu o evento a ser transmitido.
Ressaltamos que o servidor da API Recintos possui horário sincronizado com o protocolo NTP.BR. Orientamos que os recintos sincronizem os servidores envolvidos na geração e transmissão dos eventos com o mesmo protocolo.
Para utilizar os serviços disponíveis nessa API deve-se usar as seguintes de URLs:
Nome do Ambiente | URL de acesso |
---|---|
Ambiente de Validação de Empresas | https://val.portalunico.siscomex.gov.br/recintos-ext/api/{serviço} |
Ambiente de Produção | https://portalunico.siscomex.gov.br/recintos-ext/api/{serviço} |
Logo, abaixo temos um exemplo de URL completa considerando o ambiente de Validação de Empresas, consumindo o serviço de Credenciamento de Pessoas:
https://val.portalunico.siscomex.gov.br/recintos-ext/api/ext/credenciamento-pessoas
Bem-vindo à Application Programming Interface (API) de interação entre os recintos e o Portal Único de Comércio Exterior no Sistema Integrado de Comércio Exterior (Portal Siscomex), aqui chamada de API-Recintos. Trata-se de um conjunto de rotinas e padrões de programação para acesso a um aplicativo de software baseado nos padrões Web, que permitirá a recepção de eventos dentro do Portal Siscomex.
Disponibilizamos os endpoints de 22 eventos.
Para a utilização dos serviços desta API, a autenticação via certificação digital, do tipo e-CNPJ, é obrigatória. Caso seja verificado erro na autenticação ao serviço, o sistema irá retornar o erro referente à autenticação conforme especificado na seção Status Codes da API.
O processo de autenticação deve ser executado conforme descrito em Autenticação.
Definições importantes, conforme a Portaria Coana no 72, de 12 de abril de 2022:
I - Sistema Informatizado de Controle Aduaneiro (SICA): o conjunto de sistemas informatizados de controle que operem em locais ou recintos alfandegados ou autorizados a operar com mercadorias sob controle aduaneiro;
II - interveniente: a administradora de local ou recinto alfandegado ou autorizado a operar com mercadorias sob controle aduaneiro, o depositário e o operador portuário habilitado ou autorizado a operar nestes locais ou recintos;
III - informações: aquelas relativas às operações de entrada e saída de pessoas e veículos, movimentação de carga e armazenamento de mercadorias, inclusive imagens;
IV - registro: a inserção e a retificação de informações no SICA;
V - eventos: o conjunto de informações previstas no Anexo III desta Portaria que devem ser enviadas à API-Recintos simultaneamente ao seu registro no SICA; e
VI - envio de eventos à API-Recintos: transmissão eletrônica de conjunto de informações, inclusive imagens, registradas no SICA à API-Recintos, por meio da integração entre estes.
O interveniente deverá registrar no SICA e enviar para a API-Recintos, para cada operação que realizar, todas as informações de cada evento, excetuadas as informações inaplicáveis ao caso em concreto.
O envio de eventos retificadores substitui completamente as informações prestadas no evento retificado.
Todos os eventos enviados à API-Recintos devem conter o CPF do preposto que realizou o registro das informações no SICA, ressalvados os casos de informações coletadas automaticamente.
A cada envio de eventos à API-Recintos será retornado um protocolo de recepção que deve ser armazenado no SICA. Esse recibo será a identificação única de um evento dentro da API-Recintos e deve ser utilizado para solicitar a retificação ou exclusão do referido evento. Esse protocolo também deve ser utilizado na identificação de artefatos georreferenciados.
O SICA deverá funcionar de forma ininterrupta e permitir o envio de eventos à API-Recintos de forma simultânea e integrada com o registro de informações relativas às operações executadas nos locais ou recintos alfandegados ou autorizados a operar com mercadorias sob controle aduaneiro.
Nota 1: O ambiente de validação/treinamento foi projetado para possibilitar testes de integração entre o SICA e a API-Recintos. Portanto, faça uso racional do ambiente de validação/treinamento pois tentativas massivas de envios de eventos poderão ter limitação temporária de acesso.
Abaixo, foram consolidadas informações técnicas para a integração dos sistemas dos intervenientes com o Portal:
1) No Portal, todos os serviços adotam o mesmo protocolo de acesso, baseado no padrão SSL/TLS e no uso de certificado digital. A API do Portal foi desenvolvida baseada na arquitetura REST. Ela trabalhará com o formato JSON. Além disso, toda a nossa API usará o formato UTF-8;
2) Cada envio deve conter um único evento por vez, seguindo o model previsto para cada qual, sendo comum a todos os eventos os dados referentes ao Cabeçalho do Evento (model: Cabeçalho Envio Evento Aduaneiro);
3) O processo de recepção, por parte da API-Recintos, é composta por etapa de validação, armazenamento e, por fim, retorna-se o protocolo de recepção. Dessa maneira, somente será atribuído e retornado o protocolo de recepção para os eventos processados com sucesso. Qualquer erro de validação ou no processamento ocasiona a interrupção da recepção, sendo retornado detalhamento do erro;
4) Para Operações de Retificação e Exclusão é obrigatório informar valor para o atributo protocoloEventoRetificadoOuExcluido que deve apontar para o evento alvo da ação de Retificação ou Exclusão;
5) Para Operações de Exclusão orientamos preencherem apenas o cabeçalho dos eventos.
6) Listas: cada atributo de lista deverá conter um atributo idElemento que identifique unicamente cada item da lista. No caso de eventos retificadores, que referenciam um evento transmitido anteriormente, o recinto deve ser capaz de 'repetir' o mesmo 'idElemento' utilizado no evento retificado;
7) Atributos duplicados: a API não critica atributos duplicados e, caso existam, o conteúdo da segunda ocorrência irá sobrepor o conteúdo da primeira;
8) Domínios: os domínios são sensíveis a maiúsculas e minúsculas;
9) Atributos de data/hora com fuso: deve-se enviar o fuso horário no qual tal data/hora foi gerada considerando, inclusive, o horário de verão.
10) Os perfis de autenticação que devem ser utilizados pelas empresas são: a) Depositário (DEPOSIT) ou b) Operador Portuário (OPERPORT).
11) O campo \"codigoRecinto\" deve ser informado obrigatoriamente em todos os eventos transmitidos na API Recintos.
12) Os campos que representam informações de CPF e CNPJ em eventos deve ser informados somente com números, sem caracteres de formatação.
13) Para todos os eventos, o tamanho máximo da mensagem em formato JSON deve ser 500KB.
14) Na recepção de eventos de inclusão, será rejeitado o evento para o qual for verificado que já existe evento com o mesmo ID, CNPJ, código do recinto e tipo de evento, recebido nos últimos 60 minutos, considerando a data de transmissão.
O depositário, inclusive quando executar atividades de operador portuário em seu próprio recinto, pode enviar todos os eventos com a autenticação DEPOSIT. O pacote de dados a ser transmitido deve informar o seu código de recinto (codigoRecinto), ou seja, o código do recinto onde ocorreu o evento a ser transmitido.
Caso o interveniente atue exclusivamente como operador portuário, ou seja, não acumule ambas as atuações (depositário e operador portuário) no recinto de ocorrência do evento, então ele deve usar o perfil OPERPORT para autenticação. Enfatiza-se que o código de recinto (codigoRecinto), indicado no pacote de dados, deve refletir o recinto onde, de fato, ocorreu o evento a ser transmitido.
Ressaltamos que o servidor da API Recintos possui horário sincronizado com o protocolo NTP.BR. Orientamos que os recintos sincronizem os servidores envolvidos na geração e transmissão dos eventos com o mesmo protocolo.
Para utilizar os serviços disponíveis nessa API deve-se usar as seguintes de URLs:
Nome do Ambiente | URL de acesso |
---|---|
Ambiente de Validação de Empresas | https://val.portalunico.siscomex.gov.br/recintos-ext/api/{serviço} |
Ambiente de Produção | https://portalunico.siscomex.gov.br/recintos-ext/api/{serviço} |
Logo, abaixo temos um exemplo de URL completa considerando o ambiente de Validação de Empresas, consumindo o serviço de Credenciamento de Pessoas:
https://val.portalunico.siscomex.gov.br/recintos-ext/api/ext/credenciamento-pessoas
Bem-vindo à Application Programming Interface (API) de interação entre os recintos e o Portal Único de Comércio Exterior no Sistema Integrado de Comércio Exterior (Portal Siscomex), aqui chamada de API-Recintos. Trata-se de um conjunto de rotinas e padrões de programação para acesso a um aplicativo de software baseado nos padrões Web, que permitirá a recepção de eventos dentro do Portal Siscomex.
Disponibilizamos os endpoints de 22 eventos.
Para a utilização dos serviços desta API, a autenticação via certificação digital, do tipo e-CNPJ, é obrigatória. Caso seja verificado erro na autenticação ao serviço, o sistema irá retornar o erro referente à autenticação conforme especificado na seção Status Codes da API.
O processo de autenticação deve ser executado conforme descrito em Autenticação.
Definições importantes, conforme a Portaria Coana no 72, de 12 de abril de 2022:
I - Sistema Informatizado de Controle Aduaneiro (SICA): o conjunto de sistemas informatizados de controle que operem em locais ou recintos alfandegados ou autorizados a operar com mercadorias sob controle aduaneiro;
II - interveniente: a administradora de local ou recinto alfandegado ou autorizado a operar com mercadorias sob controle aduaneiro, o depositário e o operador portuário habilitado ou autorizado a operar nestes locais ou recintos;
III - informações: aquelas relativas às operações de entrada e saída de pessoas e veículos, movimentação de carga e armazenamento de mercadorias, inclusive imagens;
IV - registro: a inserção e a retificação de informações no SICA;
V - eventos: o conjunto de informações previstas no Anexo III desta Portaria que devem ser enviadas à API-Recintos simultaneamente ao seu registro no SICA; e
VI - envio de eventos à API-Recintos: transmissão eletrônica de conjunto de informações, inclusive imagens, registradas no SICA à API-Recintos, por meio da integração entre estes.
O interveniente deverá registrar no SICA e enviar para a API-Recintos, para cada operação que realizar, todas as informações de cada evento, excetuadas as informações inaplicáveis ao caso em concreto.
O envio de eventos retificadores substitui completamente as informações prestadas no evento retificado.
Todos os eventos enviados à API-Recintos devem conter o CPF do preposto que realizou o registro das informações no SICA, ressalvados os casos de informações coletadas automaticamente.
A cada envio de eventos à API-Recintos será retornado um protocolo de recepção que deve ser armazenado no SICA. Esse recibo será a identificação única de um evento dentro da API-Recintos e deve ser utilizado para solicitar a retificação ou exclusão do referido evento. Esse protocolo também deve ser utilizado na identificação de artefatos georreferenciados.
O SICA deverá funcionar de forma ininterrupta e permitir o envio de eventos à API-Recintos de forma simultânea e integrada com o registro de informações relativas às operações executadas nos locais ou recintos alfandegados ou autorizados a operar com mercadorias sob controle aduaneiro.
Nota 1: O ambiente de validação/treinamento foi projetado para possibilitar testes de integração entre o SICA e a API-Recintos. Portanto, faça uso racional do ambiente de validação/treinamento pois tentativas massivas de envios de eventos poderão ter limitação temporária de acesso.
Abaixo, foram consolidadas informações técnicas para a integração dos sistemas dos intervenientes com o Portal:
1) No Portal, todos os serviços adotam o mesmo protocolo de acesso, baseado no padrão SSL/TLS e no uso de certificado digital. A API do Portal foi desenvolvida baseada na arquitetura REST. Ela trabalhará com o formato JSON. Além disso, toda a nossa API usará o formato UTF-8;
2) Cada envio deve conter um único evento por vez, seguindo o model previsto para cada qual, sendo comum a todos os eventos os dados referentes ao Cabeçalho do Evento (model: Cabeçalho Envio Evento Aduaneiro);
3) O processo de recepção, por parte da API-Recintos, é composta por etapa de validação, armazenamento e, por fim, retorna-se o protocolo de recepção. Dessa maneira, somente será atribuído e retornado o protocolo de recepção para os eventos processados com sucesso. Qualquer erro de validação ou no processamento ocasiona a interrupção da recepção, sendo retornado detalhamento do erro;
4) Para Operações de Retificação e Exclusão é obrigatório informar valor para o atributo protocoloEventoRetificadoOuExcluido que deve apontar para o evento alvo da ação de Retificação ou Exclusão;
5) Para Operações de Exclusão orientamos preencherem apenas o cabeçalho dos eventos.
6) Listas: cada atributo de lista deverá conter um atributo idElemento que identifique unicamente cada item da lista. No caso de eventos retificadores, que referenciam um evento transmitido anteriormente, o recinto deve ser capaz de 'repetir' o mesmo 'idElemento' utilizado no evento retificado;
7) Atributos duplicados: a API não critica atributos duplicados e, caso existam, o conteúdo da segunda ocorrência irá sobrepor o conteúdo da primeira;
8) Domínios: os domínios são sensíveis a maiúsculas e minúsculas;
9) Atributos de data/hora com fuso: deve-se enviar o fuso horário no qual tal data/hora foi gerada considerando, inclusive, o horário de verão.
10) Os perfis de autenticação que devem ser utilizados pelas empresas são: a) Depositário (DEPOSIT) ou b) Operador Portuário (OPERPORT).
11) O campo \"codigoRecinto\" deve ser informado obrigatoriamente em todos os eventos transmitidos na API Recintos.
12) Os campos que representam informações de CPF e CNPJ em eventos deve ser informados somente com números, sem caracteres de formatação.
13) Para todos os eventos, o tamanho máximo da mensagem em formato JSON deve ser 500KB.
14) Na recepção de eventos de inclusão, será rejeitado o evento para o qual for verificado que já existe evento com o mesmo ID, CNPJ, código do recinto e tipo de evento, recebido nos últimos 60 minutos, considerando a data de transmissão.
O depositário, inclusive quando executar atividades de operador portuário em seu próprio recinto, pode enviar todos os eventos com a autenticação DEPOSIT. O pacote de dados a ser transmitido deve informar o seu código de recinto (codigoRecinto), ou seja, o código do recinto onde ocorreu o evento a ser transmitido.
Caso o interveniente atue exclusivamente como operador portuário, ou seja, não acumule ambas as atuações (depositário e operador portuário) no recinto de ocorrência do evento, então ele deve usar o perfil OPERPORT para autenticação. Enfatiza-se que o código de recinto (codigoRecinto), indicado no pacote de dados, deve refletir o recinto onde, de fato, ocorreu o evento a ser transmitido.
Ressaltamos que o servidor da API Recintos possui horário sincronizado com o protocolo NTP.BR. Orientamos que os recintos sincronizem os servidores envolvidos na geração e transmissão dos eventos com o mesmo protocolo.
Para utilizar os serviços disponíveis nessa API deve-se usar as seguintes de URLs:
Nome do Ambiente | URL de acesso |
---|---|
Ambiente de Validação de Empresas | https://val.portalunico.siscomex.gov.br/recintos-ext/api/{serviço} |
Ambiente de Produção | https://portalunico.siscomex.gov.br/recintos-ext/api/{serviço} |
Logo, abaixo temos um exemplo de URL completa considerando o ambiente de Validação de Empresas, consumindo o serviço de Credenciamento de Pessoas:
https://val.portalunico.siscomex.gov.br/recintos-ext/api/ext/credenciamento-pessoas
Esta documentação refere-se à API Recintos disponível em ambiente de Produção (Release Apa). A documentação da API Recintos referente às evoluções da API Recintos disponíveis em ambiente de Validação de Empresas (Release Volga) está disponível em: https://docs-proxima.portalunico.siscomex.gov.br/swagger/rcnt.html.
Bem-vindo à Application Programming Interface (API) de interação entre os recintos e o Portal Único de Comércio Exterior no Sistema Integrado de Comércio Exterior (Portal Siscomex), aqui chamada de API-Recintos. Trata-se de um conjunto de rotinas e padrões de programação para acesso a um aplicativo de software baseado nos padrões Web, que permitirá a recepção de eventos dentro do Portal Siscomex.
Disponibilizamos os endpoints de 22 eventos.
Para a utilização dos serviços desta API, a autenticação via certificação digital, do tipo e-CNPJ, é obrigatória. Caso seja verificado erro na autenticação ao serviço, o sistema irá retornar o erro referente à autenticação conforme especificado na seção Status Codes da API.
O processo de autenticação deve ser executado conforme descrito em Autenticação.
Definições importantes, conforme a Portaria Coana no 72, de 12 de abril de 2022:
I - Sistema Informatizado de Controle Aduaneiro (SICA): o conjunto de sistemas informatizados de controle que operem em locais ou recintos alfandegados ou autorizados a operar com mercadorias sob controle aduaneiro;
II - interveniente: a administradora de local ou recinto alfandegado ou autorizado a operar com mercadorias sob controle aduaneiro, o depositário e o operador portuário habilitado ou autorizado a operar nestes locais ou recintos;
III - informações: aquelas relativas às operações de entrada e saída de pessoas e veículos, movimentação de carga e armazenamento de mercadorias, inclusive imagens;
IV - registro: a inserção e a retificação de informações no SICA;
V - eventos: o conjunto de informações previstas no Anexo III desta Portaria que devem ser enviadas à API-Recintos simultaneamente ao seu registro no SICA; e
VI - envio de eventos à API-Recintos: transmissão eletrônica de conjunto de informações, inclusive imagens, registradas no SICA à API-Recintos, por meio da integração entre estes.
O interveniente deverá registrar no SICA e enviar para a API-Recintos, para cada operação que realizar, todas as informações de cada evento, excetuadas as informações inaplicáveis ao caso em concreto.
O envio de eventos retificadores substitui completamente as informações prestadas no evento retificado.
Todos os eventos enviados à API-Recintos devem conter o CPF do preposto que realizou o registro das informações no SICA, ressalvados os casos de informações coletadas automaticamente.
A cada envio de eventos à API-Recintos será retornado um protocolo de recepção que deve ser armazenado no SICA. Esse recibo será a identificação única de um evento dentro da API-Recintos e deve ser utilizado para solicitar a retificação ou exclusão do referido evento. Esse protocolo também deve ser utilizado na identificação de artefatos georreferenciados.
O SICA deverá funcionar de forma ininterrupta e permitir o envio de eventos à API-Recintos de forma simultânea e integrada com o registro de informações relativas às operações executadas nos locais ou recintos alfandegados ou autorizados a operar com mercadorias sob controle aduaneiro.
Nota 1: O ambiente de validação/treinamento foi projetado para possibilitar testes de integração entre o SICA e a API-Recintos. Portanto, faça uso racional do ambiente de validação/treinamento pois tentativas massivas de envios de eventos poderão ter limitação temporária de acesso.
Abaixo, foram consolidadas informações técnicas para a integração dos sistemas dos intervenientes com o Portal:
1) No Portal, todos os serviços adotam o mesmo protocolo de acesso, baseado no padrão SSL/TLS e no uso de certificado digital. A API do Portal foi desenvolvida baseada na arquitetura REST. Ela trabalhará com o formato JSON. Além disso, toda a nossa API usará o formato UTF-8;
2) Cada envio deve conter um único evento por vez, seguindo o model previsto para cada qual, sendo comum a todos os eventos os dados referentes ao Cabeçalho do Evento (model: Cabeçalho Envio Evento Aduaneiro);
3) O processo de recepção, por parte da API-Recintos, é composta por etapa de validação, armazenamento e, por fim, retorna-se o protocolo de recepção. Dessa maneira, somente será atribuído e retornado o protocolo de recepção para os eventos processados com sucesso. Qualquer erro de validação ou no processamento ocasiona a interrupção da recepção, sendo retornado detalhamento do erro;
4) Para Operações de Retificação e Exclusão é obrigatório informar valor para o atributo protocoloEventoRetificadoOuExcluido que deve apontar para o evento alvo da ação de Retificação ou Exclusão;
5) Para Operações de Exclusão orientamos preencherem apenas o cabeçalho dos eventos.
6) Listas: cada atributo de lista deverá conter um atributo idElemento que identifique unicamente cada item da lista. No caso de eventos retificadores, que referenciam um evento transmitido anteriormente, o recinto deve ser capaz de 'repetir' o mesmo 'idElemento' utilizado no evento retificado;
7) Atributos duplicados: a API não critica atributos duplicados e, caso existam, o conteúdo da segunda ocorrência irá sobrepor o conteúdo da primeira;
8) Domínios: os domínios são sensíveis a maiúsculas e minúsculas;
9) Atributos de data/hora com fuso: deve-se enviar o fuso horário no qual tal data/hora foi gerada considerando, inclusive, o horário de verão.
10) Os perfis de autenticação que devem ser utilizados pelas empresas são: a) Depositário (DEPOSIT) ou b) Operador Portuário (OPERPORT).
11) O campo \"codigoRecinto\" deve ser informado obrigatoriamente em todos os eventos transmitidos na API Recintos.
12) Os campos que representam informações de CPF e CNPJ em eventos deve ser informados somente com números, sem caracteres de formatação.
13) Para todos os eventos, o tamanho máximo da mensagem em formato JSON deve ser 500KB.
14) Na recepção de eventos de inclusão, será rejeitado o evento para o qual for verificado que já existe evento com o mesmo ID, CNPJ, código do recinto e tipo de evento, recebido nos últimos 60 minutos, considerando a data de transmissão.
O depositário, inclusive quando executar atividades de operador portuário em seu próprio recinto, pode enviar todos os eventos com a autenticação DEPOSIT. O pacote de dados a ser transmitido deve informar o seu código de recinto (codigoRecinto), ou seja, o código do recinto onde ocorreu o evento a ser transmitido.
Caso o interveniente atue exclusivamente como operador portuário, ou seja, não acumule ambas as atuações (depositário e operador portuário) no recinto de ocorrência do evento, então ele deve usar o perfil OPERPORT para autenticação. Enfatiza-se que o código de recinto (codigoRecinto), indicado no pacote de dados, deve refletir o recinto onde, de fato, ocorreu o evento a ser transmitido.
Ressaltamos que o servidor da API Recintos possui horário sincronizado com o protocolo NTP.BR. Orientamos que os recintos sincronizem os servidores envolvidos na geração e transmissão dos eventos com o mesmo protocolo.
Para utilizar os serviços disponíveis nessa API deve-se usar as seguintes de URLs:
Nome do Ambiente | URL de acesso |
---|---|
Ambiente de Validação de Empresas | https://val.portalunico.siscomex.gov.br/recintos-ext/api/{serviço} |
Ambiente de Produção | https://portalunico.siscomex.gov.br/recintos-ext/api/{serviço} |
Logo, abaixo temos um exemplo de URL completa considerando o ambiente de Validação de Empresas, consumindo o serviço de Credenciamento de Pessoas:
https://val.portalunico.siscomex.gov.br/recintos-ext/api/ext/credenciamento-pessoas
- * - */ -@Path("/") -@Api(value = "/", description = "") -public interface ServiosDestinadosRecepoDeEventosAduaneiros_Api { - - /** - * Agenda/Operação de Navios/Aeronaves - * - * Um evento para cada inclusão / alteração no 'line up' / 'agenda' de navios / aeronaves com atracação / pouso previstos para o recinto.<br/><br/>Transmitir a agenda (previsão), a chegada (atracação/desatracação pouso/decolagem) e a operação.<br/><br/>Evento aplicável para recintos com atracadouro ou pista aeronáutica próprios.<br/><br/><br/>Exemplo de eventos para Navio:<br/><br/>Chegada (informa a viagem e escala de chegada, dados da embarcação, dentre outros)<br/><br/>evento 1 - previsão de atracação e desatracação;<br/><br/>evento 2 - previsão + efetiva atracação<br/><br/>evento 3 - previsão + efetiva atracação + início operação <br/><br/><br/>Saída (informa a viagem e escala de partida, dados da embarcação, dentre outros)<br/><br/>evento 4 - previsão + efetiva atracação + início operação + final operação <br/><br/>evento 5 - previsão + efetiva atracação + início operação + final operação + efetiva desatracação <br/><br/><br/>Exemplo de eventos para Aeronave:<br/><br/>Chegada (informa o VOO e viagem de chegada, dados da aeronave, dentre outros)<br/><br/>evento 1 - previsão de pouso;<br/><br/>evento 2 - previsão + efetivo pouso<br/><br/>evento 3 - previsão + efetivo pouso + início operaçã<br/><br/><br/>Saída (informa o VOO e viagem de partida, dados da aeronave, dentre outros)<br/><br/>evento 4 - previsão + efetivo pouso + início operação + previsão de partida; <br/><br/>evento 5 - previsão + efetivo pouso + início operação + previsão + final operação <br/><br/>evento 6 - previsão + efetivo pouso + início operação + previsão + final operação + efetiva partida<br/><br/><strong>Transmitir imediatamente a recepção da informação.</strong><br/> - * - */ - @POST - @Path("/ext/agenda-navios-aeronaves") - @Consumes({"application/json"}) - @Produces({"application/json"}) - @ApiOperation(value = "Agenda/Operação de Navios/Aeronaves", notes = "Um evento para cada inclusão / alteração no 'line up' / 'agenda' de navios / aeronaves com atracação / pouso previstos para o recinto.