Processo de integração com o Portal do Cliente
Os processos para a integração são :
TMS Senior:
Primeiro realize a Instalação do RBT seguindo passo a passo completo de Instalação do RBT.
Após instalação, acesse os registros do Windows e localize a pasta ‘HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\SOFtran\RBT\INTEGRACAO_SENIOR_G7’.
Opções:
- DOCUMENTOG7QTDPROCESSAINTEG: Quantidade de documentos que serão integrados a cada envio para a Senior X. Padrão é de 100 registros.
- FGINTEGDOCUMENTOG7: Caso o valor seja TRUE, a integração das informações dos documentos será ativada.
- FGINTEGRACAOARQUIVODOCUMENTOG7: Caso o valor seja TRUE, a integração dos arquivos dos documentos será ativada.
- TIPOINTEGRACAOARQUIVODOCUMENTOG7: Define quais arquivos serão enviados, conforme os seguintes valores: 0 = Todos os arquivos; 1 = XML e DACTE do conhecimento; 2 = PDF da fatura; 3 = Comprovante de entrega via TMS; 4 = Comprovante de entrega via GED;
- No módulo de configurações CFG (versão 3.20.00 ou superior), acesse o menu Cadastros > Cadastro integração plataforma G7, afim de cadastrar os dados para efetuar a integração com a Senior X.
- Informar os seguintes campos para integrar com a plataforma Senior X.
- Usuário = {login da plataforma Senior X}
- Senha = {senha da plataforma Senior X}
- URL = https://platform.senior.com.br/t/senior.com.br/bridge/1.0/rest/
- Adicionar as empresas que integraram os registros.
- Vincular o serviço 11-Portal do Cliente ao cadastro.
Sistema Próprio
Processo de integração entre o Sistema próprio e o Portal do Cliente. Para realizar as chamadas no ambiente de produção, use a url: https://platform.senior.com.br/t/senior.com.br/bridge/1.0/rest/tms
- Função: Simular os valores, taxas e percursos do frete.
- Endpoint: /documentos/actions/simulaCotacaoFrete
Input | |||
Campo | Tipo | Descrição | Obrigatório |
codigoFilialEmitente | Integer | Código da empresa emitente | Não |
cnpjRemetente | String | CNPJ do remetente | Sim |
cnpjDestinatario | String | CNPJ do destinatário | Sim |
cnpjConsignatario | String | CNPJ do consignatário | Não |
numeroCepColeta | String | CEP da coleta | Sim |
numeroCepEntrega | String | CEP de entrega | Sim |
codigoNaturezaOperacao | Integer | Código da natureza de operação | Não |
codigoTipoTransporte | Integer | Código do tipo de transporte | Não |
codigoTipoVeiculo | Integer | Código do tipo de veículo | Não |
icmsIncluso | String | Define se o ICMS será incluso. Opções: NAO_INCLUSO, INCLUSO, NEGOCIACAO_CLIENTE | Sim |
tipoFrete | String | Tipo do frete. Opções: A_PAGAR, PAGO | Sim |
quantidadePeso | Number | Quantidade do peso da carga | Não |
quantidadePesoCubado | Number | Quantidade do peso cubado da carga | Não |
quantidadeVolumes | Number | Quantidade de volumes | Não |
quantidadePares | Integer | Quantidade de pares | Não |
quantidadeMetrosCubicos | Number | Quantidade de metros cúbicos | Não |
valorMercadoria | Number | Valor da mercadoria | Não |
Identificador | Integer | Código único da simulação | Não |
Exemplo JSON:
Output | ||
Campo | Tipo | Descrição |
cotacaoFrete | Entity CotacaoFrete | Informações sobre a simulação da cotação de frete |
Entity CotacaoFrete | ||
Campo | Tipo | Descrição |
Id | String | Identificador da cotação de frete |
Identificador | Integer | Código único da simulação |
filialEmitente | Entity Filial | Informações sobre a filal emitente |
dataValidade | DateTime | Data da validade para aprovação |
percursoComercial | Entity Percurso | Informações sobre o percurso comercial |
percursoOperacional | Entity PercursoOperacional | Informações sobre o percurso operacional |
tipoIcms | String | Tipo do ICMS. Opções: ICMS_NORMAL, SUBST_TRIB, DIFERIDO, OUTROS, ISENTO, SUB_CONTRATACAO, NAO_TRIBUTADO |
codigoTarifa | Integer | Código da tarifa |
descricaoTarifa | String | Descrição da tarifa |
codigoEmpresaTablea | Integer | Código da empresa da tabela de frete |
codigoTabelaPreco | Integer | Código da tabela de frete |
valorPeso | Number | Valor total por peso |
valorPesoUnitario | Number | Valor unitário por peso |
valorBaseCalculo | Number | Base de cálculo |
valorPercIcms | Number | % ICMS |
valorIcms | Number | Valor do ICMS |
valorPercIss | Number | % ISS |
valorIss | Number | Valor do ISS |
valorFretePeso | Number | Taxa de frete peso |
valorFreteValor | Number | Taxa de frete valor |
valorSeccat | Number | Taxa de SEC / CAT |
valorDespacho | Number | Taxa de despacho |
valorPedagio | Number | Taxa de pedágio |
valorAdeme | Number | Taxa de ADEME |
valorGris | Number | Taxa de GRIS |
valorItr | Number | Taxa de ITR |
valorSuframa | Number | Taxa de SUFRAMA |
valorBalsa | Number | Taxa de balsa |
valorSeguro | Number | Taxa de seguro |
valorCap | Number | Taxa de CAP |
valorCad | Number | Taxa de CAD |
valorTep | Number | Taxa de TEP |
valorTfb | Number | Taxa de TFB |
valorTas | Number | Taxa de TAS |
valorTce | Number | Taxa de TCE |
valorTdc | Number | Taxa de TDC |
valorTda | Number | Taxa de TDA |
valorTde | Number | Taxa de TDE |
valorTrt | Number | Taxa de TRT |
valorDesc | Number | Desconto |
valorOutros | Number | Outros valores |
valorTag | Number | Taxa de TAG |
valorFrete | Number | Valor total do frete |
valorLiquido | Number | Valor líquido |
situacao | String | Situação da simulação do frete. Opções: PROCESSANDO_SIMULACAO, SIMULADO, ERRO_SIMULACAO |
erroProcesso | String | Mensagem de erro caso ocorra durante o processo |
Exemplo JSON:
- Função: Aprovação da cotação de frete que foi simulada.
- Endpoint: /documentos/actions/aprovaCotacaoFrete
Input | |||
Campo | Tipo | Descrição | Obrigatório |
idCotacaoFrete | String | Identificador da cotação de frete | Sim |
String | Email para envio da cotação de frete | Não |
Exemplo JSON:
Output | ||
Campo | Tipo | Descrição |
retorno | Record Retorno | Informações sobre a aprovações da cotação de frete |
Record Retorno | ||
Campo | Tipo | Descrição |
codigoCotacao | Integer | Código da cotação de frete |
codigoColeta | Integer | Código da coleta |
situacao | String | Situação da aprovação da cotação de frete. Opções: PROCESSANDO_APROVACAO, APROVADO, ERRO_APROVACAO |
erroProcesso | String | Mensagem de erro caso ocorra durante o processo |
Exemplo JSON:
- Função: Movimentar as informações de ocorrência dos conhecimentos
- Endpoint: /documentos/actions/movimentaOcorrenciaLoteNotificacao
Nota
Só é possível solicitar a movimentação de um lote de ocorrências por vez.
Input | |||
Campo | Tipo | Descrição | Obrigatório |
movimentacoes | List<recOcorrenciaConhecimento> | Dados da ocorrência do conhecimento e suas vinculações | Sim |
chaveAcesso | String | Chave de acesso do conhecimento | Sim |
ocorrenciaCodigo | String | Código da ocorrência | Não |
sequencia | Integer | Sequência da ocorrência do conhecimento | Sim |
dataMovimento | Date Time | Data de movimento | Não |
dataAgendamento | Date Time | Data de previsão de entrega | Não |
observacao | String | Observação | Não |
contatoNome | String | Nome do Contato | Não |
contatoRg | String | RG do Contato | Não |
contatoTelefone | String | Telefone do Contato | Não |
quantidadePallets | Integer | Quantidade de pallets | Não |
codigoExterno | Integer | Código do sistema externo para integração | Não |
Exemplo de JSON:
movimentacoes": [
{
"chaveAcesso": "52210303708458000198570020003276581803099655",
"ocorrenciaCodigo": 112 ,
"dataMovimento": "2021-12-10T14:29:45.754Z",
"codigoExterno": 1639146649422,
“contatoNome”: "Nome do contato",
“contatoRg”: "6895607",
“contatoTelefone”: "4799999999",
“dataAgendamento”: "2021-12-11T03:00:00.000Z"
“observacao”: "Obervação aqui"
“quantidadePallets”: 1
},
{
"chaveAcesso": "25210303708458000198570020003276581803099652",
"ocorrenciaCodigo": 25 ,
"dataMovimento": "2021-12-10T14:29:45.754Z",
"codigoExterno": 5639146649425,
“contatoNome”: "Nome do contato",
“contatoRg”: "6895607",
“contatoTelefone”: "4799999999",
“dataAgendamento”: "2021-12-11T03:00:00.000Z"
“observacao”: "Obervação aqui"
“quantidadePallets”: 1
},
}
Esta primitiva não possui retorno, para verifica o status do processamento é necessário utilizar a primitiva Verificação de processamento de movimento de entrega.
- Função: Verifica o status do processamento de algum serviço solicitado anteriormente pelo usuário.
- Endpoint: /documentos/actions/verificaProcessamento
Input | ||
Campo | Tipo | Descrição |
processo | enumServicosProcessamento | Processo |
chaveAcesso | String | Chave de acesso do conhecimento |
Exemplo JSON:
{
"processo": "MOVIMENTA_OCORRENCIA"
}
Output | ||||||||||
Campo | Tipo | Descrição | ||||||||
statusProcessamento | enumStatusProcessamento
|
Status do processamento | ||||||||
entradaProcessamento | Json | Json de entrada do processamento | ||||||||
retornoProcessamento | Json | Json de retorno do processamento |
- ¹ Quando o processamento com erro é retornado apenas entradaProcessamento com as informações enviadas na primitiva movimentaOcorrenciaLoteNotificacao do último processamento e a movimentação deve ser reenviada.
- ² Quando em processamento é retornado apenas entradaProcessamento com as informações enviadas na primitiva movimentaOcorrenciaLoteNotificacao do último processamento.
- ³ Quando o processamento finalizado é retornado apenas retornoProcessamento e caso alguma movimentação contenha inconsistência e não foi processado, é adicionado um atributo chamado “inconsistencia” no objeto, que informa o motivo de não ter sido realizada a movimentação.
Exemplo JSON:
"retornoProcessamento":
{
"inconsistencia":null,
"chaveAcesso": "52210303708458000198570020003276581803099655",
"ocorrenciaCodigo": 112 ,
"dataMovimento": "2021-12-10T14:29:45.754Z",
"codigoExterno": 1639146649422,
“contatoNome”: "Nome do contato",
“contatoRg”: "6895607",
“contatoTelefone”: "4799999999",
“dataAgendamento”: "2021-12-11T03:00:00.000Z"
“observacao”: "Obervação aqui"
“quantidadePallets”: 1
},
{
"inconsistencia":”Conhecimento já entregue”,
"chaveAcesso": "25210303708458000198570020003276581803099652",
"ocorrenciaCodigo": 25 ,
"dataMovimento": "2021-12-10T14:29:45.754Z",
"codigoExterno": 5639146649425,
“contatoNome”: "Nome do contato",
“contatoRg”: "6895607",
“contatoTelefone”: "4799999999",
“dataAgendamento”: "2021-12-11T03:00:00.000Z"
“observacao”: "Obervação aqui"
“quantidadePallets”: 1
},
}
Para mais detalhes sobre APIs e Layouts, clique aqui.