Á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âmetrosEste serviço é responsável pela consulta e envio de informações ao TSS.

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_CFGJOBOnStart]
MainJOBS=TAF_CFGJOBHTTPJOB
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

RefreshRate=120


Fonte: REST com ERP Microsiga Protheus

Autenticação

A autenticação utilizada no serviço REST é a Basic, a mesma é obrigatória no header das requisições caso o ambiente esteja com a chave Security da seção HTTPREST configurada com o valor "1".

Exemplo:

Bloco de código
titleAutenticação Basic
Authentication: Basic YWRtaW46IA==

  Obs: A senha deve utilizar a criptografia base64.


O Serviço TSS também possui autenticação (JWT) a partir da versão 12.1.33, para a configuração é necessário seguir os passos deste documento: https://tdn.totvs.com/x/1RhcIw

Quando esta autenticação está em uso é necessário informar a chave TokenAuthTSS no header das requisições com o Token retornado pelo Serviço WSTSSTOKEN: https://tdn.totvs.com/x/YaYtJg

Exemplo:

Bloco de código
titleAutenticação JWT (TSS)
TokenAuthTSS: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRpZCI6IjE2ODA1NmNjLTczNTYtNDAwMC04NUI0LWZlNjhiMjZhYjJjZiIsICJjbGllbnRfaWQiOiJiZDFlMjhkNGRmYmIwZDY2YjY0MGVhOTQyOThiMmU3N2MyNDMzMzRjIiwiaXNzIjoiVE9UVlNfVFNTXzEyLjEuMDMzIiwiaWF0IjoxNjMyMTUzNjkzLCJleHAiOjE2MzIxNTU0OTR9.ZTIwMjk4NTJkZTgwYWU3N2VlMTE5OTU1ZGJjYWFlODZlYTJhZTc1OGUxYjI2YWE5MWIwMWYzOTVmMDU2YTNiNTkzZjdiM2NhOGNhZGU3ZDI3ZGNhNmI1N2QyODc1NjM3Nzg5MzNhYTAzYzNlNzQ4N2QzMThkMWU0YmE3NmEyMjU

Definição dos métodos

SEND (Post)

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

ticketCode será mantido apenas para compatibilidade a partir de 18/10/2024 

Estrutura da mensagem enviada no POST (Request):

Atributo

Pai

Nivel

Table Filter
id1571258717045_-1186532069

Atributo

Pai

Nivel

Ocorrência

Formato

ticketCode

-

1

1 (mantido por compatibilidade)

String(36) 

sourceBranch

-

1

1

String(6)

tpAmb

   -

1

1

String(2)

urlTSS

   -

1

1

-

lote

   -

1

1:

NString(02)

50

-

registryType

   1

2

1

String(6)

registryKey

   1

2

1

String(250)

branchName

   1

2

1

String(250)

integrationMessage

   1

2

1

Memo

- Base64

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.


Exemplo da URL para chamada do método "send":

http://localhost:8090/rest/wsesocial/v1/send/


Estrutura da mensagem
Estrutura da mensagem
de retorno do POST (Response):

Atributo

Pai

Nivel

Ocorrência

Formato

idCompanyticketCode

-

1

0:1

String(836)

returnMessageregistryKey

-

11

0:N

String

  • idCompany – Código da entidade
  • returnMessage – Mensagem de retorno do TSS

(250)

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

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 Send (Post)
{
    "ticketCode": "b9ce64c5-094b-4c95-9b29-c22b5cbf94f3",
    "sourceBranch": "000001
Bloco de código
languagejs
themeEclipse
titleExemplo de mensagem POST:
{  
   "registrationType":1,
   "registrationNumber":"30114268000115",
   "ie":"",
   "uf":"SP",
   "countyCode": "50308",
   "url": "localhost:9090",
   "password":"123456",
   "companyName":"eSocial",
    "branchNametpAmb": "eSocial2",
    "digitalCertificateurlTSS": "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"
}
Bloco de código
languagejs
themeEclipse
titleResponse:
{
    "returnMessage": "Certificado (PFX)- Ok\nAutoridades certificadoras convertidas para formato apache - Ok\nCertificado convertido para formato apache - Ok\nPrivateKey convertida para formato apache - Ok\nPassword - Ok\n\nRegistrado para: eSocial do Futuro\nValidade de 18/02/2019 ate 18/02/2020\n",
    "idCompany": "000008"
}

GET

Descrição do Método: O método GET retorna o ID da entidade, de acordo com parâmetros (atributos) enviados na URL.

A Consulta pode combinar parâmetros utilizando a sintaxe “Query String” conforme exemplo abaixo:

http://localhost:8080/rest/WSTSSSETUP/v1?registrationType=1&registrationNumber=30114268000115&uf=SP&url=localhost:9090&companyName=eSocial&branchName=eSocial&countyCode=50308

Atributo

Pai

Nivel

Ocorrência

Formato

url

-

1

1

150

registrationType

-

1

1

Integer(1)

registrationNumber

   -

1

1

String(14)

ie

   -

1

0:1

String(12)

uf

   -

1

1

String(02)

countyCode

   -

1

1

String(5)

companyName

   -

1

1

String(250)

http://localhost:8088",
    "lote": [
        {
            "registryType": "S-1200",
            "registryKey": "dcd5ea38-3008-4229-ae80-6688e75dcefe",
            "integrationMessage": "PGVTb2NpYWwgeG1sbnM9J2h0dHA6Ly93d3cuZXNvY2lhbC5nb3YuYnIvc2NoZW1hL2V2dC9ldnRUYWJSdWJyaWNhL3YwMl8wNV8wMCc+PGV2dFRhYlJ1YnJpY2EgSWQ9J0lEMjIwMTkwNjIxMTkxMzIzNjM5ODknPjxpZGVFdmVudG8+PHRwQW1iPjI8L3RwQW1iPjxwcm9jRW1pPjE8L3Byb2NFbWk+PHZlclByb2M+MS4wPC92ZXJQcm9jPjwvaWRlRXZlbnRvPjxpZGVFbXByZWdhZG9yPjx0cEluc2M+MjwvdHBJbnNjPjxuckluc2M+OTk5OTk5OTk5OTk5OTk5PC9uckluc2M+PC9pZGVFbXByZWdhZG9yPjxpbmZvUnVicmljYT48aW5jbHVzYW8+PGlkZVJ1YnJpY2E+PGNvZFJ1YnI+MDAwMDAxPC9jb2RSdWJyPjxpZGVUYWJSdWJyPjAwMDAwMTwvaWRlVGFiUnVicj48aW5pVmFsaWQ+MjAxOS0wMTwvaW5pVmFsaWQ+PC9pZGVSdWJyaWNhPjxkYWRvc1J1YnJpY2E+PGRzY1J1YnI+VEVTVEU8L2RzY1J1YnI+PG5hdFJ1YnI+MTAwMDwvbmF0UnVicj48dHBSdWJyPjE8L3RwUnVicj48Y29kSW5jQ1A+MDA8L2NvZEluY0NQPjxjb2RJbmNJUlJGPjAwPC9jb2RJbmNJUlJGPjxjb2RJbmNGR1RTPjAwPC9jb2RJbmNGR1RTPjxjb2RJbmNTSU5EPjAwPC9jb2RJbmNTSU5EPjwvZGFkb3NSdWJyaWNhPjwvaW5jbHVzYW8+PC9pbmZvUnVicmljYT48L2V2dFRhYlJ1YnJpY2E+PC9lU29jaWFsPg==",
            "schemaVersion": "02_05_00"
        },
        {
            "registryType": "S-1010",
            "registryKey": "57e09889-fb99-4a65-99f7-c2039041e151",
            "integrationMessage": "PGVTb2NpYWwgeG1sbnM9J2h0dHA6Ly93d3cuZXNvY2lhbC5nb3YuYnIvc2NoZW1hL2V2dC9ldnRUYWJSdWJyaWNhL3YwMl8wNV8wMCc+PGV2dFRhYlJ1YnJpY2EgSWQ9J0lEMjIwMTkwNjIxMTkxMzIzNjM5ODknPjxpZGVFdmVudG8+PHRwQW1iPjI8L3RwQW1iPjxwcm9jRW1pPjE8L3Byb2NFbWk+PHZlclByb2M+MS4wPC92ZXJQcm9jPjwvaWRlRXZlbnRvPjxpZGVFbXByZWdhZG9yPjx0cEluc2M+MjwvdHBJbnNjPjxuckluc2M+OTk5OTk5OTk5OTk5OTk5PC9uckluc2M+PC9pZGVFbXByZWdhZG9yPjxpbmZvUnVicmljYT48aW5jbHVzYW8+PGlkZVJ1YnJpY2E+PGNvZFJ1YnI+MDAwMDAxPC9jb2RSdWJyPjxpZGVUYWJSdWJyPjAwMDAwMTwvaWRlVGFiUnVicj48aW5pVmFsaWQ+MjAxOS0wMTwvaW5pVmFsaWQ+PC9pZGVSdWJyaWNhPjxkYWRvc1J1YnJpY2E+PGRzY1J1YnI+VEVTVEU8L2RzY1J1YnI+PG5hdFJ1YnI+MTAwMDwvbmF0UnVicj48dHBSdWJyPjE8L3RwUnVicj48Y29kSW5jQ1A+MDA8L2NvZEluY0NQPjxjb2RJbmNJUlJGPjAwPC9jb2RJbmNJUlJGPjxjb2RJbmNGR1RTPjAwPC9jb2RJbmNGR1RTPjxjb2RJbmNTSU5EPjAwPC9jb2RJbmNTSU5EPjwvZGFkb3NSdWJyaWNhPjwvaW5jbHVzYW8+PC9pbmZvUnVicmljYT48L2V2dFRhYlJ1YnJpY2E+PC9lU29jaWFsPg==",
            "schemaVersion": "02_05_00"
        }
    ]
}
Bloco de código
languagejs
themeEclipse
titleExemplo da mensagem de retorno do método Send (Post)
{
    "ticketCode": "b9ce64c5-094b-4c95-9b29-c22b5cbf94f3",
    "registryKey": [
        {
            "key": "dcd5ea38-3008-4229-ae80-6688e75dcefe                                                                ",
            "success": false,
            "error": [
                {
                    "coderr": "99",
                    "description": "RXJybyBkZSBzY2hlbWE6IEVsZW1lbnQgJ3todHRwOi8vd3d3LmVzb2NpYWwuZ292LmJyL3NjaGVtYS9ldnQvZXZ0VGFiUnVicmljYS92MDJfMDVfMDB9ZVNvY2lhbCc6IE5vIG1hdGNoaW5nIGdsb2JhbCBkZWNsYXJhdGlvbiBhdmFpbGFibGUgZm9yIHRoZSB2YWxpZGF0aW9uIHJvb3QuCg=="
                }
            ]
        },
        {
            "key": "57e09889-fb99-4a65-99f7-c2039041e151                                                                ",
            "success": false,
            "error": [
                {
                    "coderr": "99",
                    "description": "RXJybyBkZSBzY2hlbWE6IEVsZW1lbnQgJ3todHRwOi8vd3d3LmVzb2NpYWwuZ292LmJyL3NjaGVtYS9ldnQvZXZ0VGFiUnVicmljYS92MDJfMDVfMDB9bnJJbnNjJzogW2ZhY2V0ICdwYXR0ZXJuJ10gVGhlIHZhbHVlICc5OTk5OTk5OTk5OTk5OTknIGlzIG5vdCBhY2NlcHRlZCBieSB0aGUgcGF0dGVybiAnXGR7OCwxNH0nLgpFbGVtZW50ICd7aHR0cDovL3d3dy5lc29jaWFsLmdvdi5ici9zY2hlbWEvZXZ0L2V2dFRhYlJ1YnJpY2EvdjAyXzA1XzAwfW5ySW5zYyc6ICc5OTk5OTk5OTk5OTk5OTknIGlzIG5vdCBhIHZhbGlkIHZhbHVlIG9mIHRoZSBsb2NhbCBhdG9taWMgdHlwZS4K"
                }
            ]
        }
    ],
    "keyAmount": 2
}


GET

Descrição do Método: O método GET 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 é consultar informações relacionadas ao eSocial que foram previamente enviadas para o TSS. 

Aviso
titleAtenção!

ticketCode será mantido apenas para compatibilidade a partir de 18/10/2024 

Estrutura da mensagem enviada no GET (Request):

Atributo

Pai

Nivel

Ocorrência

Formato

sourceBranch

-

1

1

String(36)

tpAmb

-

1

1

String(6)

urlTSS

branchName

   -

1

1

String(

250

2)

  • url – URL do TSS (TOTVS Service SOA)
  • registrationType -  Tipo da Entidade a ser criada:
    • 1 - Pessoa Jurídica
    • 2 - Pessoa Física
  • registrationNumber - Número de Inscrição da Entidade a ser criada, seguindo a regra abaixo:
    • Se registrationType for 1, então deverá ser enviado o CNPJ
    • Se registrationType for 2, então deverá ser enviado o CPF
  • ie - Número da Inscrição Estadual
  • uf - Sigla da Unidade Federativa
  • countyCode - Código do município conforme tabela do IBGE
  • companyName - Nome da Pessoa/ Razão Social da Companhia
  • branchName - Nome Fantasia

Estrutura da Resposta do método GET (Response):

Atributo

Pai

Nivel

Ocorrência

Formato

idCompany

-

1

1

String(8)

returnMessage

-

1

1

String

  • idCompany – Código da entidade
  • returnMessage – Mensagem de retorno do TSS

Exemplos de requisição utilizando o método GET:

Request:

http://localhost:8080/rest/WSTSSSETUP/v1?registrationType=1registrationNumber=30114268000115&uf=SP&url=localhost:9090&companyName=eSocial&branchName=eSocial&countyCode=50308

lote

   -

1

1:50

-

registryType

   1

2

1

String(6)

ticketCode

   1

2

1 (mantido por compatibilidade)

String(36)

registryKey

   1

2

1

String(100)

returnRetResponse

   1

2

1

boolean (true : false)


sourceBranch
  - Código Identificador da entidade TSS ( retornado na configuração do certificado).

tpAmb – Tipo do Ambiente

urlTSS – URL serviço do TSS

Lote (1 – 50)

  • registryType - Tipo do Registro.
  • ticketCode – Código do TAFTICKET (Obrigatório)
  • registryKey – Código do TAFKEY (Obrigatório)
  • returnRetResponse – Define se deverá ser retornado o XML de retorno do RET


Aviso
titleAtenção!

Os atributos não obrigatórios têm que fazer parte da estrutura, somente o seu preenchimento é opcional.


Exemplo da URL para chamada do método "get":

http://localhost:8090/rest/wsesocial/v1/get/


Estrutura da mensagem de retorno (Request):

Atributo

Pai

Nivel

Ocorrência

Formato

Items

-

1

1

-

success

1

2

1

boolean(true : false)

proccessed

    1

2

1

boolean(true : false)

registryKey

    1

2

0:1

String(100)

registryType

   1

2

0:1

String(6)

ticketCode

   1

2

0:1

String(36)

statusCode

   1

2

0:1

String(1)

statusDescription

   1

2

0:1

String(25)

streamingErrors   1      2           0:1-
streamingErrorCode   2      3           0:1String(6)
streamingErrorDetail   2      3           0:1String(220)
receiptNumber   1      2           0:1String(45)
xmlRetResponse   1      2           0:1        Memo Base64


items
– Itens do response.

  • success – informa que o envio do registro pelo método POST foi realizado com sucesso. (entrou no TSS)
  • proccessed – Informa se o registro foi integrado com o Governo.
  • registryKey – código do TAFKEY
  • ticketCode – código do TAFTICKET
  • statusCode – Status do registro, atributo exibido somente quando proccessed for igual a true.
  • statusDescription – Descrição do status, atributo exibido somente quando proccessed for igual a true.
  • streamingErrors – Agrupa todos os erros de transmissão retornados do Governo.
  • streamingErrorCode – Código do erro retornado pelo Governo, após transmissão do registro.
  • streamingErrorDetail – Descrição do erro retornado pelo Governo, após transmissão do registro.
  • receiptNumber – Número do recibo retornado pelo Governo
  • xmlRetResponse – Retorno resposta do governo quando o parâmetro returnRetResponse na solicitação for = true (ex.: totalizadores)


Bloco de código
languagejs
themeEclipse
titleExemplo do request para o método Get
{
    "sourceBranch": "000001",
    "tpAmb": "2",
    "urlTSS": "http://localhost:8088",
	"lote": [
		{
			"registryType":"S-1210",
			"ticketCode": "TICKET5",
			"registryKey": "XX001",
			"returnRetResponse": true	
		},
		{
			"registryType":"S-1210",
			"ticketCode": "TICKET4",
			"registryKey": "X002",
			"returnRetResponse": true	
		},
		{
			"registryType":"S-1210",
			"ticketCode": "TICKET5",
			"registryKey": "XX003",
			"returnRetResponse": true	
		},
		{
			"registryType":"S-1010",
			"ticketCode": "TICKET5",
			"registryKey": "XX005",
			"returnRetResponse": true	
		}		
	]
}
Bloco de código
languagejs
themeEclipse
titleExemplo da mensagem de retorno do método Get
{
    "items": [
        {
            "receiptNumber": "                              ",
            "processed": false,
            "ticketCode": "TICKET5",
            "statusCode": "3",
            "xmlRetResponse": "",
            "registryKey": "XX001",
            "statusDescription": "Evento rejeitado",
            "success": true,
            "streamingErrorDetail": [
                {
                    "streamingErrorCode": "609",
                    "streamingErrorDetail": "Código inválido."
                }
            ]
        },
        {
            "receiptNumber": "",
            "processed": false,
            "ticketCode": "TICKET4",
            "statusCode": "",
            "xmlRetResponse": "",
            "registryKey": "X002",
            "statusDescription": "",
            "success": false,
            "streamingErrorDetail": []
        },
        {
            "receiptNumber": "                              ",
            "processed": false,
            "ticketCode": "TICKET5",
            "statusCode": "3",
            "xmlRetResponse": "",
            "registryKey": "XX003",
            "statusDescription": "Evento rejeitado",
            "success": true,
            "streamingErrorDetail": [
                {
                    "streamingErrorCode": "609",
                    "streamingErrorDetail": "Código inválido."
                },
                {
                    "streamingErrorCode": "609",
                    "streamingErrorDetail": "Código inválido."
                },
                {
                    "streamingErrorCode": "609",
                    "streamingErrorDetail": "Código inválido."
                }
            ]
        },
        {
            "receiptNumber": "                              ",
            "processed": false,
            "ticketCode": "TICKET5",
            "statusCode": "3",
            "xmlRetResponse": "",
            "registryKey": "XX005",
            "statusDescription": "Evento rejeitado",
            "success": true,
            "streamingErrorDetail": [
                {
                    "streamingErrorCode": "609",
                    "streamingErrorDetail": "Código inválido."
                }
            ]
        }
    ]
}
Bloco de código
languagejs
themeEclipse
titleResponse:
{
    "returnMessage": "",
    "idCompany": "000008"
}

RESTFAULT*

  • 701 - URL do TSS informada fora do ar.
  • 702 - Parâmetros enviados inválidos
Aviso
titleStatus HTTP

Apesar do código de erro iniciar com 7 o status HTTP de um request que submetido a RestFault é 500 - Erro Interno no Servidor.

Image Removed