Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

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

Índice
indent30px
absoluteUrltrue

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
titleImportante

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]
SOCKETS=HTTPREST
ENABLE=1

[HTTPREST]
Port=8080
URIs=HTTPURI
Security=0

[HTTPURI]
URL=/rest
;PrepareIn=
Instances=1,1
CORSEnable=1
AllowOrigin=*

[HTTPJOB]
MAIN=HTTP_START
ENVIRONMENT=P12

[TAF_CFGJOB]
Main=TAF_CFGJOB
Instances=1,1 **
PrepareIn=T1 *
nRefreshRate=50
ENVIRONMENT=P12


[OnStart]
JOBS=HTTPJOB,TAF_CFGJOB
RefreshRate=120


*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:

  • Utilizando o código do grupo; Ex: PrepareIn=01
  • Utilizando diversos códigos de grupos; Ex: PrepareIn=01,02,99 .
  • Utilizando a palavra ALL, neste caso o server vai considerar todos os grupos contidos no arquivo de empresas do Protheus/TAF; Ex PrepareIn=ALL

** 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.


Fonte: REST com ERP Microsiga Protheus

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
titleAtenção!

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
languagejs
themeEclipse
titleExemplo do request para o método Post
{
"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
languagejs
themeEclipse
titleExemplo da mensagem de retorno do método Post
{
"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
}

...