AT&M - Averbador - GA

Analista Responsável: Gustavo Henrique Braga Fernandes

1. Comunicação GA (Login) AT&M


 Softensistemas Logo

Projeto/Sistema:
Serviço AT&M Averbação
Versão do Template:
1.1
Processo:
Comunicação com API
Versão do Documento:
1.2
Responsável(eis): 
Gustavo Fernandes

Data: 

01/10/2024

1. Introdução

Este processo visa exemplificar a comunicação com a API de serviço intermediário entre GA e AT&M para averbação de CTe.

2. Processo de comunicação entre o sistema e serviços

 

image-1727787930273.png

Processo Envolvidos Dados de entrada Dados de Saída
Envio para Web Server Sistema e Serviço Retorna dados de modo síncrono a opção escolhida /rest/Auth
Envio para Web Server Sistema e Serviço Retorna dados de modo síncrono a opção escolhida /rest/CTe
Envio para Web Server Sistema e Serviço Retorna dados de modo síncrono a opção escolhida /rest/NFe
Envio para Web Server Sistema e Serviço Retorna dados de modo síncrono a opção escolhida /rest/MDFe

O processo para averbar e/ou declarar via web service deve seguir o
procedimento abaixo:

Acionar o link (https://webserver.averba.com.br/rest/Auth) para autenticação
e recepção de Token.

Para acionar o Web Service, deve informar qual opção deseja consumir.
Links disponíveis:

o https://webserver.averba.com.br/rest/Cte
o https://webserver.averba.com.br/rest/NFe
o https://webserver.averba.com.br/rest/MDFe

Processos Relacionados


1. Protótipo tela para cadastro seguradora

Especificação Funcional


PROC001 Comunicação G.A com Serviço (Login):

Este procedimento tem por objetivo a adição da funcionalidade Averbação AT&M.
Segundo manual AT&M: MANUAL INTEGRAÇÃO AT&m.pdf

Protótipo de Tela:

image-1728568467191.png

I - Exemplo de seleção para averbadoras no cadastro de seguradora

image-1728567436867.png

II - Exemplo campos para preenchimento Login AT&M

Descrição dos Campos:
Campo Tipo Tamanho Obrigatório? Máscara Observação
Usuário String - Sim - -
Senha String - Sim "•••••••••" Ocultar a Senha em Tela
CodATM String - Sim - -
Regras de Interface:

          1. "Averbadora*" deve ter uma combo box, para seleção da averbadora, no exemplo acima foi selecionado AT&M.

                   1.2  Os campos para preenchimento devem carregar conforme a averbadora, no exemplo a cima, existem três campos, devido a necessidade do "CodATM".

Regras de Negócio:

1. Usuário e Senha deveram ser preenchidos no primeiro acesso, esses dados deveram ser armazenados, quando o usuário selecionar o botão "Login", mencionado na Imagem II,  para que o usuário não necessite realizar o preenchimento novamente.

1.1 Deve-se retornar uma mensagem de login efetuado com sucesso ao validar todos os dados:

image-1727965452091.png

1.2 Deve-se retornar uma mensange de login inválido, se os dados não forem validados:

image-1727965801491.png

Programador pode decidir se é mais viável validar cada campo separadamente, exemplo:
Exibir que o usuário apenas esta inválido, caso seja. Ou pode seguir o exemplo da imagem e se qualquer um dos três campos estiverem inválidos, retornar isto na tela.

 2. Se o usuário decidir logar na mesma seguradora com outra averbadora, deve-se salvar a úlitma que ele logou e limpar a anterior.

Questões Técnicas:

1. O botão de "login" deve realizar o envio dos dados de login para o serviço de seguros da AT&M:

1.1. Envio do Login:

Método HTTP

URL

Header

POST

webserver.averba.com.br/rest/Auth

Accept: application/json
Content-type: application/json

1.2. Body exemplo esperado:

{
 "usuario": "teste",
 "senha": "teste",
 "codigoatm": "11000000"
}

            1.3 Exemplo de retorno:

{
    "Bearer": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJkYXRhIjp7InRlcm1pbmFsIjoiMTE0MDQ5ODAiLCJ0aXBvX2F2ZXJiYSI6Ik0iLCJjb2RfY2xpIjoiMDYyMzYxIiwicmF6YW8iOiJJWkFJQVMgRlJBTkNJU0NPIENSRVNUQU5JIiwiZmFudGFzaWEiOiJJWkFJQVMgRlJBTkNJU0MiLCJjbnBqIjoiMDEzMDE1ODkwMDAwMTU3IiwiZmxhZ19jb2xldGEiOiJOIiwidXN1YXJpbyI6IldTIiwibm9tZSI6IklaQUlBUyBGUkFOQ0lTQ08gQ1JFU1RBTkkgTUUiLCJwZXJtaXNzb2VzIjoiTk5TIiwiZW1haWwiOiJJWkNSRVNUQU5JQEdNQUlMLkNPTSIsInN0YXR1cyI6IlMiLCJsaWJlcmFkbyI6IlMiLCJpbmNvdGVybXMiOm51bGwsImZsYWdfY25wal9jb21wbGV0byI6Ik4iLCJmbGFnX2NvbnNpc3RlX2NucGoiOm51bGwsImNucGpfYWRpY2lvbmFsIjpudWxsfSwiaWF0IjoxNzI3OTYyOTg2LCJleHAiOjE3Mjc5NjY1ODZ9._JvrjjDuYEOwyJh2QlujH_kWA4qhpQkxWAeJp8TjYh8"
}

           1.4 Exemplo retorno usuário inválido:

{
    "Erros": {
        "Erro": [
            {
                "Codigo": "904",
                "Descricao": "Acesso nao autorizado"
            }
        ]
    }
}

            1.4: Após o envio das informações o sistema irá retornar o Token para que utilize no
envio dos documentos. Não será mais necessário informar o usuário, senha e Código
AT&M para os envios, visto que as informações estão no Token.


 OBS: O Token utilizado possui prazo para expirar, após isso será necessário repetir
o processo de autenticação para gerar outro número. 

2. SQL para criar a tabela com as informações de login da AT&M:

2.1 Deve-se criar a tabela atmaverbadora relacionada com a tabela seguradora.

CREATE TABLE atmaverbadora (
    ID BIGINT(20) NOT NULL AUTO_INCREMENT,
  	dataToken DATE DEFAULT NULL,
  	empresaId BIGINT(20) NOT NULL,
  	login VARCHAR(255) DEFAULT NULL,
  	senha VARCHAR(30) DEFAULT NULL,
  	codAtm VARCHAR(25) DEFAULT NULL,
  	token VARCHAR(657) DEFAULT NULL,
  	seguradoraId BIGINT(20), DEFAULT NULL,
    PRIMARY KEY (ID)
  	FOREIGN KEY (empresaId) REFERENCES empresa(ID)
  	FOREING KEY (seguradoraId) REFERENCES seguradora(id)
);

 

©SOFTEN SISTEMAS 2024

 

 

2. Averbando CTe AT&M


 Softensistemas Logo

Projeto/Sistema:
Serviço AT&M Averbação
Versão do Template:
1.1
Processo:
Averbação CTe AT&M
Versão do Documento:
1.2
Responsável(eis): 
Gustavo Fernandes

Data: 

02/10/2024

1. Introdução

Este processo visa exemplificar a averbação CTe pelo serviço AT&M no GA

2. Processo averbação CTe - validações

image-1727956070126.png

I - Fluxograma Exemplo

Processo

Envolvidos

Dados de entrada

Dados de Saída

Consumo webservice

Sistema e WebService

URL: webserver.averba.com.br/rest/CTE


Cabeçalho:
Authorization: informar o Token.
Accept: Informar application/json ou application/xml


Content-Type: Deve ser application/xml
Body (Corpo): XML do documento CT-e protocolado no SEFAZ.

Retorna JSON para verificação pelo WebService

Token inválido/expirado

Sistema e WebService

Validando arquivo enviado

Retorna mensagem de erro

Token válido

Sistema e WebService

Validando arquivo enviado

Envia XML para webservice

JSON/XML com erros

Sistema e WebService

Verifica retorno JSON/XXML do WebService

Retorno dos erros em JSON/XML com códigos de erro

JSON/XML aprovado

Sistema e WebService

Verifica retorno JSON/XML do WebService

Averba Cte, retorna mensagem autorizado

Processos Relacionados


Comunicação GA (Login) AT&m

Especificação Funcional


PROC002 VALIDANDO AVERBAÇÃO AT&M:

Protótipo de Tela:

image-1728570977202.png

II - Exemplo de como deve aparecer averbadora da seguradora

Regras de Interface:

1. Deve mostrar averbadora abaixo da seguradora, antes de averbar, conforme o que esta cadastrado.

2. Retornar mensagem padrão igual da Porto Seguro, quando averbar com sucesso!

Regras de Negócio:

1. O serviço trata as informações, enviadas do GA(Usuário, Senha, CodATM, XML do CTe a ser Averbado);

       1.2 As informações tratadas devem ser do primeiro processo, especificação neste link:  Comunicação GA (Login) AT&m

        1.2.1 Além de enviar as informações anteriores, deve acionar o consumo através da URL abaixo:

URL: webserver.averba.com.br/rest/CTE
Cabeçalho:
Authorization: informar o Token.
Accept: Informar application/json ou application/xml
Content-Type: Deve ser application/xml


Body (Corpo): XML do documento CT-e protocolado no SEFAZ.


OBS: O envio do documento deve ser XML.

Exemplo de envio em cURL:

curl -X POST \

https://webserver.averba.com.br/rest/CTe\

-H 'Accept: application/json' \

-H 'Accept-Encoding: gzip, deflate' \

-H 'Authorization: Bearer TOKEN' \

-H 'Cache-Control: no-cache' \

-H 'Connection: keep-alive' \

-H 'Content-Type: application/xml' \

-H 'cache-control: no-cache' \

-d ' '<cteProc versao="3.00" xmlns="http://www.portalfiscal.infr.br/cte">

ESTRUTURA DO XML

</cteProc>'

2. Exemplo de output ou retorno em JSON:

{
 "Numero": “”,
 "Serie": “”,
 "Filial": “”,
 "CNPJCli": “”,
 "TpDoc": “”,
 "InfAdic": “”,
 "Averbado": {
 "dhAverbacao": “”,
 "Protocolo": “”,
 "DadosSeguro": [{
 "NumeroAverbacao": “”,
 "CNPJSeguradora": “”,
   "NomeSeguradora": “”,
 "NumApolice": “”,
 "TpMov": “”,
 "TpDDR": “”,
 "ValorAverbado": “”,
 "RamoAverbado": “”
 }]
 },
 "Infos": {
 "Info": [{
 "Codigo": “”,
 "Descricao": “”
 }]
 }
}

2.1 Retorno dos erros em JSON:

{
 "Numero": “”,
 "Serie": “”,
 "Filial": “”,
 "CNPJCli": “”,
 "TpDoc": “”,
 "InfAdic": “”,
 "Erros": {
 "Erro":[ {
 "Codigo": “”,
 "Descricao": “”,
 "ValorEsperado": “”,
 "ValorInformado": “”
 }]
 }
}

2.2 Exemplo de retorno output ou retorno em XML:

<Response>
     <Numero></Numero>
     <Serie></Serie>
     <Filial></Filial>
     <CNPJCli></CNPJCli>
     <TpDoc></TpDoc>
     <InfAdic></InfAdic>
     <Averbado>
             <dhAverbacao></dhAverbacao>
             <Protocolo></Protocolo>
             <DadosSeguro>
                   <NumeroAverbacao></NumeroAverbacao>
                   <CNPJSeguradora></CNPJSeguradora>
                   <NomeSeguradora></NomeSeguradora>
                   <NumApolice></NumApolice>
                   <TpMov></TpMov>
                   <TpDDR></TpDDR>
                   <ValorAverbado></ValorAverbado>
                   <RamoAverbado></RamoAverbado>
 			 </DadosSeguro>
 </Averbado>
  
 <Infos>
 	<Info>
       <Codigo></Codigo>
       <Descricao></Descricao>
    </Info>
 </Infos>
</Response>

2.3 Se enviado XML CTe protocolado no ambiente de homologação, no qual é indicado pela tag <tpAmb>2<tpAmb>, o protocolo de AT&M será TESTE.


OBS: Esta averbação pode não ser considerada pela seguradora, por se tratar de
TESTE, causando danos ao segurado em casos de sinistros. 

2.4 Exemplo output  XML ou retorno da AT&M homologação:

<Response>
    <Numero></Numero>
    <Serie></Serie>
    <Filial></Filial>
    <CNPJCli></CNPJCli>
    <TpDoc>6</TpDoc>
    <InfAdic></InfAdic>
 <Averbado>
   <dhAverbacao></dhAverbacao>
   <Protocolo>TESTE</Protocolo>
	<DadosSeguro>
         <NumeroAverbacao></NumeroAverbacao>
         <CNPJSeguradora></CNPJSeguradora>
         <NomeSeguradora></NomeSeguradora>
         <NumApolice></NumApolice>
       	 <TpMov></TpMov>
         <TpDDR></TpDDR>
         <ValorAverbado></ValorAverbado>
         <RamoAverbado></RamoAverbado>
 	</DadosSeguro>
 </Averbado>
  
 <Infos>
 	<Info>
      <Codigo></Codigo>
 <Descricao></Descricao>
 	</Info>
 </Infos>
  
</Response>

2.5 Exemplo output ou retorno documento recusado, estrutura XML:

<Response>
     <Numero></Numero>
     <Serie></Serie>
     <Filial></Filial>
     <CNPJCli></CNPJCli>
     <TpDoc></TpDoc>
     <InfAdic></InfAdic>
 	 <Erros>
 		<Erro>
             <Codigo></Codigo>
             <Descricao></Descricao>
             <ValorEsperado></ValorEsperado>
             <ValorInformado></ValorInformado>
 		</Erro>
 </Erros>
</Response>

OBS: Em casos de ocorrer mais de uma recusa por XML, a tag se repetirá e informará as demais descrições de recusa.

2.6 O output ou retorno de documento recusado por “Documento já cadastrado” se diferencia do exemplo acima.

Nele constará o protocolo e número da averbação, como também o dia e hora da averbação. A mensagem de “Documento já cadastrado” será mostrada na tag “Info”. 

<Response>
     <Numero></Numero>
     <Serie></Serie>
     <Filial></Filial>
     <CNPJCli></CNPJCli>
     <TpDoc></TpDoc>
     <InfAdic></InfAdic>
     <Averbado>
           <dhAverbacao></dhAverbacao>
           <Protocolo></Protocolo>
           <DadosSeguro>
                 <NumeroAverbacao></NumeroAverbacao>
                 <CNPJSeguradora></CNPJSeguradora>
                 <NomeSeguradora></NomeSeguradora>
                 <NumApolice></NumApolice>
                 <TpMov></TpMov>
                 <TpDDR></TpDDR>
                 <ValorAverbado></ValorAverbado>
                 <RamoAverbado></RamoAverbado>
 		   </DadosSeguro>
 	   </Averbado>
 	   <Infos>
 			<Info>
                 <Codigo>001</Codigo>
                 <Descricao>Documento já Cadastrado</Descricao>
			</Info>
 	   </Infos>
</Response>
Questões Técnicas:

1. Estrutura do arquivo retorno XML:

image-1727968359523.png

image-1727968399292.png

image-1727968444874.png

 

image-1727968477329.png

2. Estrutura do arquivo retorno homologação para testes XML:

image-1727969218214.png

image-1727968749517.png

image-1727968768696.png

2. Estrutura do arquivo recusado XML:

image-1727968826262.png

image-1727968845774.png

image-1727968867643.png

 

©SOFTEN SISTEMAS 2024