RESTWeb Service REST

Produto:

TOTVS Automação Fiscal

Versões:

12.1.2310+

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

Objetivo: Consultar 

Descrição: Este serviço é responsável pela consulta e envio de informações ao TSS.

Métodos: GET.

EndPoints:

  •  /api/rh/esocial/v1/wstafcredtrab/tafFull 
  •  /api/rh/esocial/v1/wstafcredtrab/middleware

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"

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

[OnStart]
JOBS=HTTPJOB
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:

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:

TokenAuthTSS: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRpZCI6IjE2ODA1NmNjLTczNTYtNDAwMC04NUI0LWZlNjhiMjZhYjJjZiIsICJjbGllbnRfaWQiOiJiZDFlMjhkNGRmYmIwZDY2YjY0MGVhOTQyOThiMmU3N2MyNDMzMzRjIiwiaXNzIjoiVE9UVlNfVFNTXzEyLjEuMDMzIiwiaWF0IjoxNjMyMTUzNjkzLCJleHAiOjE2MzIxNTU0OTR9.ZTIwMjk4NTJkZTgwYWU3N2VlMTE5OTU1ZGJjYWFlODZlYTJhZTc1OGUxYjI2YWE5MWIwMWYzOTVmMDU2YTNiNTkzZjdiM2NhOGNhZGU3ZDI3ZGNhNmI1N2QyODc1NjM3Nzg5MzNhYTAzYzNlNzQ4N2QzMThkMWU0YmE3NmEyMjU

Definição dos EndPoints

GET(Middleware)

Descrição do Método: O método GET segue o padrão REST, recebendo os parâmetros através da query string da requisição. Os dados enviados na URL são utilizados para consultar o serviço TSS e retornar o resultado em formato JSON.


Estrutura de parâmetros que podem ser passados na requisição (GET):

Atributo

Ocorrência

Formato

sourceBranch

1

string 

period

1

string

forceRequest

1

boolean/string

urlTSS

1

string

environment

1

string


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

period - Competência dos dados consultados (Ex.: 202501)

forceRequest – 

urlTSS – URL serviço do TSS

environment - Tipo do Ambiente ( 1= Produção ; 2- Homologação)



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

{{baseUrl}}/api/rh/esocial/v1/wstafcredtrab/middleware?sourceBranch=string&period=202509&forceRequest=true&urlTSS=http://tss-server:8080/&environment=2

GET (TAFFUL)

Descrição do Método: O método GET segue o padrão REST, recebendo os parâmetros através da query string da requisição. Os dados enviados na URL são utilizados para consultar o serviço TSS e retornar o resultado em formato JSON.


Estrutura de parâmetros que podem ser passados na requisição (GET):

Atributo

Ocorrência

Formato

sourceBranch

1

string 

period

1

string

forceRequest

1

boolean/string

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

period - Competência dos dados consultados (Ex.: 202501)

forceRequest – 



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

{{baseUrl}}/api/rh/esocial/v1/wstafcredtrab/tafFull?sourceBranch=string&period=202509&forceRequest=true





{
    "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	
		}		
	]
}
{
    "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."
                }
            ]
        }
    ]
}