Histórico da Página
RESTWeb Service REST
Produto: | TOTVS Automação Fiscal |
Versões: | 12.1.23+ |
Este documento tem o objetivo de fornecer informações para utilização do Web Service REST de integração com o TOTVS Automação Fiscal.
Para mais detalhes sobre o conceito de um serviços REST clique aqui.
Para mais detalhes sobre serviços REST na arquitetura Protheus clique aqui.
Índice
|
---|
Definição do Serviço
Nome: WSEsocial
Objetivo: Realizar o envio de informações relacionadas ao eSocial.
Descrição: Essa interface de integração irá realizar a criação de entidade, configuração do certificado digital e também disponibilizará método para consultar o ID da entidade, de acordo com parâmetros.
Métodos: POST e GET.
Configurações do Serviço
A Configuração do serviço REST está documentada no link Configuração REST SERVER - Protheus.
Estas parametrizações estão localizadas fisicamente no arquivo appserver.ini da pasta de instalação "[...]\BIN\APP"
Nota | ||
---|---|---|
| ||
Na seção HTTPURI, a chave PrepareIn deve ser comentada. Segue exemplo de configuração do WS REST para utilização no modulo TAF: [HTTPV11] [HTTPREST] [HTTPURI] [HTTPJOB] [TAF_CFGJOB]
*A chave PrepareIn deve conter o código do Grupo de Empresas(sigamat.emp/syscompany) utilizado no modulo TAF, abaixo exemplos configurações possíveis para as mesmas:
** A chave Instances na seção TAF_CFGJOB é opcional, se a mesma não existir o sistema ira considerar a quantidade de threads declarada na chave instances da seção HTTPURI. Obs: O servidor cria Threads especificas para cada grupo de empresas de acordo com a configuração da chave Instances, por isso essa configuração deve ser realizada considerando a capacidade computacional do servidor. |
Definição dos métodos
POST
Descrição do Método: O método POST segue o conceito do próprio método em qualquer outro tipo de serviço REST, devendo seu conteúdo ser enviado no corpo da mensagem (body) no formato json.
O objetivo do método é enviar informações relacionadas ao eSocial para o TSS.
Estrutura da mensagem enviada no POST (Request):
Atributo | Pai | Nivel | Ocorrência | Formato |
---|---|---|---|---|
ticketCode | - | 1 | 1 | String(36) |
sourceBranch | - | 1 | 1 | String(6) |
tpAmb | - | 1 | 1 | String(2) |
urlTSS | - | 1 | 1 | - |
lote | - | 1 | 1:N | - |
registryType | 1 | 2 | 1 | String(6) |
registryKey | 1 | 2 | 1 | String(250) |
branchName | 1 | 2 | 1 | String(250) |
integrationMessage | 1 | 2 | 1 | Memo |
schemaVersion | - | 1 | 1 | String(8) |
- ticketCode – atributo raiz (string(36))
- sourceBranch - Código Identificador da entidade TSS ( retornado na configuração do certificado)
- tpAmb – Tipo do Ambiente
- urlTSS – URL serviço do TSS
- lote - estrutura dos itens.
registryType - Tipo do Registro
registryKey – Chave do Registro (string(64))
integrationMessage - Arquivo/Evento a ser integrado, a mensagem deve ser enviada com criptografia BASE64. Obs: O XML pode ser enviado com a codificação UTF-8, neste caso é obrigatório o uso da declaração <?xml version="1.0" encoding="utf-8"?> no inicio do Xml
schemaVersion – XX_XX_XX
Aviso | ||
---|---|---|
| ||
Os atributos não obrigatórios têm que fazer parte da estrutura, somente o seu preenchimento é opcional. |
Estrutura da mensagem de retorno do POST (Response):
Atributo | Pai | Nivel | Ocorrência | Formato |
---|---|---|---|---|
ticketCode | - | 1 | 0:1 | String(36) |
registryKey | - | 1 | 0:N | String(250) |
coderr | - | 1 | 0:1 | String(3) |
description | - | 1 | 1 | Memo Base64 |
key | 1 | 2 | 1 | String(100) |
success | 1 | 2 | 1 | boolean (true : false) |
error | 1 | 2 | 0:N | - |
coderr | 2 | 3 | 1 | Int(3) |
description | 2 | 3 | 1 | Memo Base64 |
keyAmount | - | 1 | 0:1 | Int(9999) |
ticketCode: Atributo raiz
coderr: Código do erro
description: Descrição do erro
registryKey
- key: Chave do registro
- success: Status do processamento do registro (True / False)
error
- coderr: Código do erro
- description: Descrição do erro
keyAmount: Quantidade de registros processados na requisição
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "ticketCode": "TICKETABC1234", "sourceBranch": "000004", "tpAmb":"2", "urlTSS":"http://localhost:8088", "lote":[{ "registryType": "S-1010", "registryKey": "CHAVEDORERISTRO123", "integrationMessage": "<eSocial xmlns='<evttabrubrica'>http://www.esocial.gov.br/schema/evt/evtTabRubrica/v02_05_00'><evtTabRubrica</evttabrubrica'> Id='ID1024973980000002019061817343887589'><ideEvento><tpAmb>2</tpAmb><procEmi>1</procEmi><verProc>1.0</verProc></ideEvento><ideEmpregador><tpInsc>1</tpInsc><nrInsc>02497398</nrInsc></ideEmpregador></evtTabRubrica></eSocial>", "schemaVersion":"02_05_00" }, { "registryType": "S-1020", "registryKey": "CHAVEDORERISTRO124", "integrationMessage": "<eSocial xmlns='<evttablotacao'>http://www.esocial.gov.br/schema/evt/evtTabLotacao/v02_05_00'><evtTabLotacao</evttablotacao'> Id='ID1024973980000002019031317110011792'><ideEvento><tpAmb>2</tpAmb><procEmi>1</procEmi><verProc>1.0</verProc></ideEvento><ideEmpregador><tpInsc>1</tpInsc><nrInsc>02497398</nrInsc></ideEmpregador><infoLotacao><inclusao><ideLotacao><codLotacao>LOT001001</codLotacao><iniValid>2018-01</iniValid></ideLotacao><dadosLotacao><tpLotacao>01</tpLotacao><tpInsc>1</tpInsc><nrInsc>02497398000149</nrInsc><fpasLotacao><fpas>507</fpas><codTercs>0079</codTercs></fpasLotacao></dadosLotacao></inclusao></infoLotacao></evtTabLotacao></eSocial>", "schemaVersion":"02_05_00" }, { "registryType": "S-1005", "registryKey": "CHAVEDORERISTRO126", "integrationMessage": "<eSocial xmlns='<evttabestab'>http://www.esocial.gov.br/schema/evt/evtTabEstab/v02_05_00'><evtTabEstab</evttabestab'> Id='ID1024973980000002019061817341123822'><ideEvento><tpAmb>2</tpAmb><procEmi>1</procEmi><verProc>1.0</verProc></ideEvento><ideEmpregador><tpInsc>1</tpInsc><nrInsc>02497398</nrInsc></ideEmpregador><infoEstab><inclusao><ideEstab><tpInsc>2</tpInsc><nrInsc>22573711005</nrInsc><iniValid>2019-01</iniValid></ideEstab><dadosEstab><cnaePrep></cnaePrep><aliqGilrat><aliqRat>0</aliqRat></aliqGilrat><infoTrab><regPt>0</regPt><infoApr><contApr>0</contApr></infoApr></infoTrab></dadosEstab></inclusao></infoEstab></evtTabEstab></eSocial>", "schemaVersion":"02_05_00" }] } |
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "ticketCode": "TICKETABC1234", "coderr": "", "description": "", "registryKey": [ { "key": "CHAVEDORERISTRO123 ", "success": false, "error": [ { "coderr": "99", "description": "RXJybyBkZSBzY2hlbWE6IEVsZW1lbnQgJ3todHRwOi8vd3d3LmVzb2NpYWwuZ292LmJyL3NjaGVtYS9ldnQvZXZ0VGFiUnVicmljYS92MDJfMDVfMDB9ZXZ0VGFiUnVicmljYSc6IE1pc3NpbmcgY2hpbGQgZWxlbWVudChzKS4gRXhwZWN0ZWQgaXMgKCB7aHR0cDovL3d3dy5lc29jaWFsLmdvdi5ici9zY2hlbWEvZXZ0L2V2dFRhYlJ1YnJpY2EvdjAyXzA1XzAwfWluZm9SdWJyaWNhICkuCg==" } ] }, { "key": "CHAVEDORERISTRO124 ", "success": true }, { "key": "CHAVEDORERISTRO126 ", "success": false, "error": [ { "coderr": "99", "description": "RXJybyBkZSBzY2hlbWE6IEVsZW1lbnQgJ3todHRwOi8vd3d3LmVzb2NpYWwuZ292LmJyL3NjaGVtYS9ldnQvZXZ0VGFiRXN0YWIvdjAyXzA1XzAwfWNuYWVQcmVwJzogJycgaXMgbm90IGEgdmFsaWQgdmFsdWUgb2YgdGhlIGxvY2FsIGF0b21pYyB0eXBlLgo=" } ] } ], "keyAmount": 3 } |
...