# 1. Autenticação

<table border="1" id="bkmrk-%C2%A0-projeto%2Fsistema%3Age" style="border-collapse: collapse; width: 100.123%; height: 68px;"><tbody><tr style="border-style: solid;"><td rowspan="3" style="width: 26.6667%; height: 68px; border-color: black; border-top-style: hidden; border-left-style: hidden; border-bottom-style: hidden;">  
 ![Softensistemas Logo](https://www.softensistemas.com.br/assets/img/logo.webp)

</td><td style="width: 49.9999%; height: 10px; border-color: black; border-style: solid;"><span style="color: #000000;">**Projeto/Sistema:**</span>  
<span style="color: #000000;">Integração API DUIMP</span></td><td class="align-center" style="width: 23.3333%; height: 10px; border-color: black; border-style: solid;"><span style="color: #000000;">**Versão do *Template:***</span>  
<span style="color: #000000;">1.1</span></td></tr><tr style="border-style: solid;"><td style="width: 49.9999%; height: 29px; border-color: black; border-style: solid;"><span style="color: #000000;">**Processo:**</span>  
<span style="color: #000000;">Autenticação DUIMP</span></td><td class="align-center" style="width: 23.3333%; height: 29px; border-color: black; border-style: solid;"><span style="color: #000000;">**Versão do Documento:**</span>  
<span style="color: #000000;">1.0</span></td></tr><tr style="border-style: solid;"><td style="width: 49.9999%; height: 29px; border-color: black; border-style: solid;"><span style="color: #000000;">**Responsável(eis):** </span>  
<span style="color: #000000;">Luís Leite</span></td><td class="align-center" style="width: 23.3333%; height: 29px; border-color: black; border-style: solid;"><span style="color: #000000;">**Data:** </span>

<span style="color: #000000;">18/12/2024</span>

</td></tr></tbody></table>

##### <span style="color: #000000;">**1. Introdução**</span>

<span style="color: #000000;">**Este processo tem por objetivo descrever a integração com a API do portal Siscomex para busca das informações da DI (Declaração de Importação)**</span>

##### <span style="color: #000000;">**2. Processo**</span>

[![image-1734698194164.png](https://docs.softensistemas.com.br/uploads/images/gallery/2024-12/scaled-1680-/image-1734698194164.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2024-12/image-1734698194164.png)

I - Fluxograma Exemplo

<table cellpadding="9" cellspacing="0" id="bkmrk-processo-envolvidos-" width="100%"><tbody><tr valign="top"><td bgcolor="#acb9ca" style="border-style: solid; border-color: black;" width="27%"><span style="font-size: small; color: #000000;">**Processo**</span>

</td><td bgcolor="#acb9ca" style="border-style: solid; border-color: black;" width="19%"><span style="font-size: small; color: #000000;">**Envolvidos**</span>

</td><td bgcolor="#acb9ca" style="border-style: solid; border-color: black;" width="27%"><span style="font-size: small; color: #000000;">**Dados de Entrada**</span>

</td><td bgcolor="#acb9ca" style="border-style: solid; border-color: black;" width="27%"><span style="font-size: small; color: #000000;">**Dados de Saída**</span>

</td></tr><tr valign="top"><td style="border-style: solid; border-color: black;" width="27%"><span style="font-size: small; color: #000000;">1. Autenticação</span>

</td><td style="border-style: solid; border-color: black;" width="19%">Sistema e API GOV

</td><td style="border-style: solid; border-color: black;" width="27%"><span style="color: #000000; font-size: small;">Certificado digital Role-Type</span>

</td><td style="border-style: solid; border-color: black;" width="27%"><span style="font-size: small; color: #000000;">Token, X-CSRF-Token e X-CSRF-Expiration</span>

</td></tr></tbody></table>

#### **Especificação Funcional**

- - - - - -

#### **PROC001 Autenticação:**

##### ***Regras de Negócio:***

***1. Ambientes da API:***

*Ambiente de Validação das Empresas:*

- Intervenientes privados e públicos: `https://val.portalunico.siscomex.gov.br`

*Ambiente de Produção:*

- Intervenientes privados e públicos: `https://portalunico.siscomex.gov.br`

A segurança do portal é baseada em SSL/TLS, sendo obrigatória a utilização de certificados digitais. Ao acionar o serviço de autenticação, será preciso realizar o processo de handshake SSL entre a aplicação cliente e o portal, apresentando um certificado digital válido e reconhecido pelo SERPRO. Após a validação do certificado, o portal consultará a base autorizativa a fim de identificar o perfil do usuário proprietário do certificado digital. O serviço suporta certificados A1 e A3, do padrão ICP-Brasil.

<table border="1" class="align-center" id="bkmrk-m%C3%A9todo-url-post-%2Fpor" style="border-collapse: collapse; width: 45.8023%; height: 35px;"><tbody><tr><td style="width: 50%; border-style: solid; border-color: black; background-color: lightgray;"><span style="color: #000000;">**Método**</span></td><td style="width: 50%; border-style: solid; border-color: black; background-color: lightgray;"><span style="color: #000000;">**URL**</span></td></tr><tr><td style="width: 50%; border-style: solid; border-color: black;">POST</td><td style="width: 50%; border-style: solid; border-color: black;">/portal/api/autenticar</td></tr></tbody></table>

***2.*** Deve ser informado no Header o tipo de perfil (**Role-Type**) como **TERCEIROS.**

##### ***Questões Técnicas:***

***1. Não serão armazenadas informações sobre o login, sempre que for utilizada alguma função, deve ser refeito o login da empresa.***

***2. Possíveis retornos da API:***

<table border="1" class="align-center" id="bkmrk-http-observa%C3%A7%C3%A3o-200-" style="border-collapse: collapse; width: 64.321%; height: 392px;"><tbody><tr style="height: 29px;"><td style="width: 50%; height: 29px;"><span style="color: #000000;">**HTTP**</span></td><td style="width: 50%; height: 29px;"><span style="color: #000000;">**Observação**</span></td></tr><tr style="height: 29px;"><td style="width: 50%; height: 29px;"><span style="color: #000000;">**200**</span></td><td style="width: 50%; height: 29px;"><span style="color: #000000;">Operação realizada com sucesso</span></td></tr><tr style="height: 29px;"><td style="width: 50%; height: 29px;"><span style="color: #000000;">**201**</span></td><td style="width: 50%; height: 29px;"><span style="color: #000000;">Recurso criado com sucesso</span></td></tr><tr style="height: 46px;"><td style="width: 50%; height: 46px;"><span style="color: #000000;">**204**</span></td><td style="width: 50%; height: 46px;"><span style="color: #000000;">Operação realizada com sucesso. Nenhum conteúdo retornado</span></td></tr><tr style="height: 29px;"><td style="width: 50%; height: 29px;"><span style="color: #000000;">**400**</span></td><td style="width: 50%; height: 29px;"><span style="color: #000000;">Requisição mal formatada</span></td></tr><tr style="height: 46px;"><td style="width: 50%; height: 46px;"><span style="color: #000000;">**400**</span></td><td style="width: 50%; height: 46px;"><span style="color: #000000;">XML não atende as especificações definidas no XSD *(requisições com envio de arquivo XML)*</span></td></tr><tr style="height: 29px;"><td style="width: 50%; height: 29px;"><span style="color: #000000;">**401**</span></td><td style="width: 50%; height: 29px;"><span style="color: #000000;">Usuário não autenticado ou autenticação inválida</span></td></tr><tr style="height: 29px;"><td style="width: 50%; height: 29px;"><span style="color: #000000;">**403**</span></td><td style="width: 50%; height: 29px;"><span style="color: #000000;">Usuário não tem permissão de acesso ao recurso</span></td></tr><tr style="height: 29px;"><td style="width: 50%; height: 29px;"><span style="color: #000000;">**404**</span></td><td style="width: 50%; height: 29px;"><span style="color: #000000;">Recurso não encontrado</span></td></tr><tr style="height: 29px;"><td style="width: 50%; height: 29px;"><span style="color: #000000;">**422**</span></td><td style="width: 50%; height: 29px;"><span style="color: #000000;">Erro(s) de validação da camada de negócio</span></td></tr><tr style="height: 29px;"><td style="width: 50%; height: 29px;"><span style="color: #000000;">**500**</span></td><td style="width: 50%; height: 29px;"><span style="color: #000000;">Erro interno no servidor</span></td></tr><tr style="height: 29px;"><td style="width: 50%; height: 29px;"><span style="color: #000000;">**503**</span></td><td style="width: 50%; height: 29px;"><span style="color: #000000;">Serviço indisponível</span></td></tr></tbody></table>

***2. Nos retornos 4xx ou 5xx uma mensagem pode ser retornada especificando a natureza do erro:***

<table border="1" id="bkmrk-c%C3%B3digo-mensagem-obse" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 33.3333%;">Código</td><td style="width: 33.3333%;">Mensagem</td><td style="width: 33.3333%;">Observação</td></tr><tr><td style="width: 33.3333%;">PUCX-ER0101</td><td style="width: 33.3333%;">O cabeçalho 'Role-Type' não está na requisição</td><td style="width: 33.3333%;"> </td></tr><tr><td style="width: 33.3333%;">PUCX-ER0102</td><td style="width: 33.3333%;">O cabeçalho 'Role-Type' é inválido. Verifique a tabela de domínio no manual de integração.</td><td style="width: 33.3333%;"> </td></tr><tr><td style="width: 33.3333%;">PLAT-ER2001</td><td style="width: 33.3333%;">Não foi possível identificar um certificado digital válido.</td><td style="width: 33.3333%;">A autenticação SSL/TLS não foi efetuada com sucesso.</td></tr><tr><td style="width: 33.3333%;">PLAT-ER2004</td><td style="width: 33.3333%;">Não foi possível efetuar a consulta de representações do usuário.</td><td style="width: 33.3333%;">Instabilidade no Serviço Único (SUCE). Se possível aguarde alguns instantes e repita a operação. Se o problema persistir entre em contato com o administrador do sistema.</td></tr><tr><td style="width: 33.3333%;">PLAT-ER2002</td><td style="width: 33.3333%;">Ocorreu um erro na autenticação do usuário. Entre em contato com o administrador do sistema. Mensagem de retorno:</td><td style="width: 33.3333%;">Mensagem de erro retornada pelo Serviço Único (SUCE). Em caso de dúvida, entre em contato com o administrador do sistema.</td></tr><tr><td style="width: 33.3333%;">PLAT-ER8001</td><td style="width: 33.3333%;">Não foi possível identificar um certificado digital de equipamento válido.</td><td style="width: 33.3333%;"> </td></tr><tr><td style="width: 33.3333%;">PLAT-ER8002</td><td style="width: 33.3333%;">O certificado digital não está habilitado no Portal Único do Comércio Exterior.</td><td style="width: 33.3333%;"> </td></tr><tr><td style="width: 33.3333%;">PLAT-ER8003</td><td style="width: 33.3333%;">A chave de acesso enviada não é válida.</td><td style="width: 33.3333%;"> </td></tr><tr><td style="width: 33.3333%;">PLAT-ER8004</td><td style="width: 33.3333%;">A integração está desaabilitada temporariamente.</td><td style="width: 33.3333%;"> </td></tr></tbody></table>

***3. Estrutura JSON do retorno com erro:***

```JSON
{
   "message":"O cabeçalho 'Role-Type' não está na requisição.",
   "code":"PUCX-ER0101",
   "tag":"[081454RXF]",
   "status":422,
   "severity":"ERROR"
}
```

©SOFTEN SISTEMAS 2024