Prévia de documentação apenas para visualização
Esta é uma prévia da documentação do Portal, gerada a partir do branch r67-negro , e o propósito desta pÔgina é simples conferências e revisão pelos departamentos responsÔveis da Decex e RFB. Não é a documentação definitiva e qualquer coisa aqui pode mudar a qualquer momento. A documentação da release atual pode ser sempre acessada em https://docs.portalunico.siscomex.gov.br/ .
Introdução
No PUCOMEX, todos os serviços seguem 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. Serão utilizados os formatos XML e JSON, sendo que alguns serviços serão disponibilizados exclusivamente no formato XML, tendo sua estrutura especificada na sintaxe XSD (XML Schema Definition). Estes schemas serão disponibilizados para facilitar a validação e construção dos clientes consumidores dos serviços. Além disso, toda a nossa API usarÔ o formato UTF-8.
Destacamos que o sistema foi implementado recentemente para as empresas privadas prepararem as adaptaƧƵes necessĆ”rias em seus sistemas, podendo ainda ocorrer instabilidades pontuais. Caso haja dĆŗvidas relacionadas ao Novo Processo de ExportaƧƵes, envie-as ao Comex Responde (campo "Assunto Geral" opção "Sistemas e ferramentas de apoio" e campo "Assunto EspecĆfico" opção "Portal Ćnico Siscomex").
Para problemas relacionados Ć TI entre em contato com a Central Serpro de Atendimento (no campo de "ServiƧo" escolher a opção "PORTAL ĆNICO SISCOMEX - PUCOMEX").
Esperamos que o PUCOMEX melhore os processos de negócios das empresas e dos intervenientes públicos, aumentando a competitividade, aumentando a qualidade e tempo de atendimento a sociedade e diminuindo os custos acessórios envolvidos.
Observação: Favor atentar que alguns serviƧos marcados com o texto: "Funcionalidade ainda nĆ£o disponĆvel nos ambientes de Validação das Empresas e Produção" ainda estĆ£o em processo de construção. Assim que os mesmos estiverem disponĆveis em ambiente de validação e produção, os interessados serĆ£o informados e os textos excluĆdos das funcionalidades.
URLs de acesso
Abaixo estão descritas as URLs base da API por ambiente (usaremos a tag <url>
para referenciĆ”-las).
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
Autenticação
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.
As plataformas de desenvolvimento atuais jƔ implementam o fluxo de Handshake SSL/TLS. Em geral, basta configurar algumas variƔveis de ambiente e a API se encarrega de executar o protocolo. Em resumo, o processo acontece da seguinte forma:
1. O cliente inicia o pedido de conexão com o serviço;
2. O serviƧo retorna o seu certificado assinado para que seja verificado pelo cliente;
3. O cliente verifica a sequĆŖncia de cadeias de autoridades certificadoras presentes no certificado e compara com as cadeias presentes na TrustStore local;
4. O cliente envia o seu certificado encapsulado em uma Keystore para que seja reconhecido pelo servidor;
5. O servidor valida o certificado do cliente;
6. O processo de handshake é finalizado e o cliente pode realizar a requisição ao serviço.
Fluxo de acionamento do serviço de autenticação:
Endpoint (certificado digital de pessoa fĆsica ou jurĆdica):
POST https://<url>/portal/api/autenticar
Endpoint (certificado digital de equipamento) disponĆvel apenas para intervenientes pĆŗblicos :
POST https://<url>/portal/api/autenticar/sistema
Atributos:
Nome | Descrição | Tipo do dado | Tipo do Parâmetro |
---|---|---|---|
Role-Type | Perfil para o qual se deseja efetuar a autenticação. | string, obrigatório para intervenientes privados | header |
System-Code | Chave de acesso do sistema. | string, obrigatório para intervenientes públicos usando certificado de equipamento | header |
Lista de perfis :
Na seguinte tabela estĆ£o listados os valores possĆveis para o cabeƧalho "Role-Type" indicando o perfil de atuação do usuĆ”rio. Para cada perfil, a tabela tambĆ©m informa se a autenticação admite certificado digital de pessoa fĆsica (e-CPF), de pessoa jurĆdia (e-CNPJ) ou ambos.
Nome | Descrição | e-CPF | e-CNPJ |
---|---|---|---|
IMPEXP | Declarante importador/exportador | X | |
DEPOSIT | DepositƔrio | X | X |
OPERPORT | Operador PortuƔrio | X | X |
TRANSPORT | Transportador | X | X |
TRANSPEST | PF ā Representante de TETI | X | |
AGECARGA | Agente de Carga | X | |
AGEREMESS | Remessa Expressa/Correio | X | X |
AJUDESPAC | Ajudante de Despachante | X | |
INSTFINANC | Instituição Financeira | X | |
CONTATOOEA | Ponto de Contato OEA | X | |
RESPLEGAL | ResponsƔvel Legal OE | X | |
HABILITAD | Habilitador | X | |
TERCEIROS | Terceiros (Outros Intervenientes) | X |
Atributos do retorno:
Os seguintes atributos serão retornados no cabeçalho da resposta:
Nome | Descrição | Tipo |
---|---|---|
Set-Token | JSON Web Token (JWT) contendo as informações do usuÔrio. Conforme o padrão JWT, esse token poderÔ ser decodificado (Base64) a fim de se extrair as informações do usuÔrio para que as mesmas sejam utilizadas na aplicação cliente. O token é assinado digitalmente pelo servidor e verificado a cada requisição, garantindo a sua inviolabilidade. | string |
X-CSRF-Token | Token de prevenção contra ataques CSRF (Cross-Site Request Forgery). Ao contrÔrio do JWT, esse token é criptografado e pode ser decodificado apenas no servidor. O token possui um tempo de vida de 60 minutos. A cada nova requisição, para qualquer endpoint do Portal, o token é gerado novamente pelo servidor e devolvido no header do response com o tempo de expiração renovado. Dessa forma, a cada nova requisição, dentro do prazo de 60 minutos, utilize o token renovado que foi recebido na requisição anterior, sem precisar chamar novamente o endpoint de autenticação. | string |
X-CSRF-Expiration | Data de expiração do X-CSRF-Token, em milisegundos. Após essa data, o token não serÔ mais aceito no servidor. | string |
Erros da Autenticação:
Código | Mensagem | Observações |
---|---|---|
PUCX-ER0101 | O cabeçalho 'Role-Type' não estÔ na requisição | |
PUCX-ER0102 | O cabeƧalho 'Role-Type' Ć© invĆ”lido. Verifique a tabela de domĆnio no manual de integração. | |
PLAT-ER2001 | NĆ£o foi possĆvel identificar um certificado digital vĆ”lido. | A autenticação SSL/TLS nĆ£o foi efetuada com sucesso. |
PLAT-ER2004 | NĆ£o foi possĆvel efetuar a consulta de representaƧƵes do usuĆ”rio. | 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. |
PLAT-ER2002 | Ocorreu um erro na autenticação do usuÔrio. Entre em contato com o administrador do sistema. Mensagem de retorno: |
Mensagem de erro retornada pelo ServiƧo Ćnico (SUCE). Em caso de dĆŗvida, entre em contato com o administrador do sistema. |
PLAT-ER8001 | NĆ£o foi possĆvel identificar um certificado digital de equipamento vĆ”lido. | |
PLAT-ER8002 | O certificado digital nĆ£o estĆ” habilitado no Portal Ćnico do ComĆ©rcio Exterior. | |
PLAT-ER8003 | A chave de acesso enviada não é vÔlida. | |
PLAT-ER8004 | A integração estÔ desaabilitada temporariamente. |
Atributos da resposta quando o resultado for 4xx ou 5xx:
Exemplo da estrutura de resposta de erro no formato JSON
{
"message":"O cabeçalho 'Role-Type' não estÔ na requisição.",
"code":"PUCX-ER0101",
"tag":"[081454RXF]",
"status":422,
"severity":"ERROR"
}
Nome | Descrição | Tipo |
---|---|---|
message | Mensagem de erro | string |
code | Código que identifica o erro | string |
tag | Tag do registro de log (para ser informado na abertura de chamado Ć central de suporte) | string |
status | Código do status HTTP. Mesmo código retornado no HTTP Status Code da resposta. | string |
Atributos obrigatórios em todas as requisições após autenticação:
Nome | Descrição | Tipo | Local |
---|---|---|---|
Authorization | 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 da chamada ao serviço de autenticação. |
string | header |
X-CSRF-Token | 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 da chamada ao serviço de autenticação. |
string | header |
Status Codes
A API do Portal retornarÔ sempre um HTTP status code para indicar sucesso ou falha de uma requisição.
Código | Descrição |
---|---|
200 | Operação realizada com sucesso |
201 | Recurso criado com sucesso |
204 | Operação realizada com sucesso. Nenhum conteúdo retornado |
400 | Requisição mal formatada |
400 | XML não atende as especificações definidas no XSD (requisições com envio de arquivo XML) |
401 | UsuÔrio não autenticado ou autenticação invÔlida |
403 | UsuÔrio não tem permissão de acesso ao recurso |
404 | Recurso não encontrado |
422 | Erro(s) de validação da camada de negócio |
500 | Erro interno no servidor |
503 | ServiƧo indisponĆvel |