Á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: WSTSSSetup

Objetivo: Realizar a configuração do TSS (TOTVS Service SOA) e obter o ID da entidade.

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 é configurar uma nova entidade no TSS (TOTVS Service SOA) ou atualizar certificado digital de uma entidade existente.

Estrutura da mensagem enviada no POST (Request):


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)

branchName

   -

1

1

String(250)

digitalCertificate

   -

1

1

Memo - Base64

password

   -

1

1

String(50)


  • 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
  • digitalCertificate - Conteúdo do certificado digital, criptografado em Base64
  • password - Senha do certificado digital
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

idCompany

-

1

1

String(8)

returnMessage

-

1

1

String





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


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",
   "branchName":"eSocial",
   "digitalCertificate":"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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®istrationNumber1&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)

branchName

   -

1

1

String(250)

digitalCertificate

   -

1

1

Memo - Base64

password

   -

1

1

String(50)

  • ticketCode – Código do TAFTICKET, Obrigatório caso registryKey não seja informado.
  • registryKey – Código do TAFKEY, Obrigatório caso ticketCode não seja informado.
  • startRecNo - Numero do RecNo Inicial a ser considerado na consulta. 
    Observação : O Tamanho máximo do Response é 850 kB ou 500 registros, quando a mensagem chega neste valor é realizado um retorno contendo os registros que já foram incrementados na resposta. O Controle dos itens restantes é feito através do lastRecNo que informa o RecNo do ultimo registro que fez parte da mensagem anterior (respeitando a chave),  caso o mesmo seja diferente de maxRecNo é por que existem itens a serem retornados, caso o contrario a consulta está completa.
  • searchMode – Modo de pesquisa, quando não informado o response retorna todos os TAFKEYs relacionados a busca, quando igual a 1 retorna a última ocorrência do TAFKEY, quando igual a 2 retorna a última ocorrência válida do TAFKEY. Este parâmetro é útil quando o mesmo TAFKEY é enviado em vários TAFTICKET diferentes.
  • sourceBranch - Código Identificador da filial do ERP emissor - *Não há uma validação de obrigatoriedade no retorno da requisição por conta do legado.
  • queryElements - Determina se o método deve retornar os erros dos registros com statusCode igual a 3 (Erros retornados pelo RET e gravados no TSS), o retorno será atribuído no grupo streamingErrors. Quando a tag não é informada os erros são retornados por Default. Valores validos: 0 - Desabilita, 1 - Habilita.

    • 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



    Bloco de código
    languagejs
    themeEclipse
    titleResponse:
    {
        "returnMessage
    lotQuantity- Limita a quantidade de registros a serem retornados na requisição. O tamanho da mensagem não poderá ultrapassar 850Kb, caso isto aconteça será realizado um retorno contendo os registros que já foram incrementados na resposta.
    Estrutura da Resposta do método GET (Response):

    Atributo

    Pai

    Nivel

    Ocorrência

    Formato

    type

    -

    1

    1

    -

    code

    -

    1

    1:N

    String(36-100)

    Items

    -

    1

    1

    -

    success

    Items

    2

    1

    boolean(true : false)

    proccessed

    Items

    2

    1

    boolean(true : false)

    description

    Items

    2

    1

    String(100)

    registryKey

    Items

    2

    0:1

    String(100)

    ticketCode

    Items

    2

    0:1

    String(36)

    errorCode

    Items

    2

    0:1

    String(6)

    errorDescription

    Items

    2

    0:1

    String(60)

    errorDetail

    Items

    2

    0:1

    String(220)

    statusCode

    Items

    2

    0:1

    String(1)

    statusDescription

    Items

    2

    0:1

    String(25)

    active

    Items

    2

    0:1

    boolean(true : false)

    registryPriorityItems20:1String(1)integrationQueueItems20:1String(1)streamingErrorsItems30:1-streamingErrorCodestreamingErrors30:1String(6)streamingErrorDetailstreamingErrors30:1String(220)lastRecNo-11Int(9999)maxRecNo-11Int(9999)
    • type – Determina o agrupamento do retorno que pode ser por ticketCode (TAFTICKET) ou registryKey (TAFKEY), o agrupamento depende dos parâmetros enviados no request, quando o registryKey é informado e o ticketCode omitido, o  retorno será por registryKey caso contrário por ticketCode.
    • code – Código do registro indicado no atributo type.
    • items – Itens do response.
    • success – informa que o envio do registro pelo método POST  foi realizado com sucesso.
    • proccessed – Informa se o registro foi processado (Job2) e integrado com sucesso no seu respectivo cadastro.
    • description – Descrição do status atual do registro.
    • registryKey – código do TAFKEY, esse atributo somente é exibido quando type for igual a ticketCode.
    • ticketCode – código do TAFTICKET, esse atributo somente é exibido quando type for igual a registryKey.
    • errorCodeCódigo do erro contido no campo TAFCODERR na tabela TAFXERP, atributo exibido somente quando proccessed for igual a false.
    • errorDescription – Descrição do errorCode, atributo exibido somente quando proccessed for igual a false.
    • errorDetail – Detalhes do erro, alguns tipos de erros possuem detalhes e são armazenados no campo TAFERR na tabela TAFXERP, atributo exibido somente quando proccessed for igual a false.
    • statusCode – Status do registro no TAF, atributo exibido somente quando proccessed for igual a true.
    • statusDescription – Descrição do status no TAF, atributo exibido somente quando proccessed for igual a true.
    • active – Informa se o registro está ativo no TAF, atributo exibido somente quando proccessed for igual a true.
    • registryPriority: Retornar a prioridade definida para o registro, atributo exibido somente quando proccessed for igual a false.
    • integrationQueue: Retorna o status de fila do registro. Retorna branco quando o registro não foi definido para integração utilizando fila de processamento (atributo integrationQueue do método POST), retorna 'F' quando o registro foi retornado para a fila de processamento ou 'R' quando o erro da integração é impeditivo e o registro foi rejeitado pelo TAF. Atributo exibido somente quando proccessed for igual a false.
    • lastRecNo - Numero do RecNo do ultimo registro retornado na requisição.
    • maxRecNo - Informa o numero do RecNo do ultimo registro relacionado a consulta, deve ser utilizado juntamente com o lastRecNo para controlar a paginação e garantir o retorno de todos os registros.
    • streamingErrors – Agrupa todos os erros de transmissão retornados do Governo para o TAF. Os erros são listados por streamingErrorCode e streamingErrorDetail.
    • streamingErrorCode – Código do erro retornado pelo Governo para o TAF, após transmissão do registro.
    • streamingErrorDetail – Descrição do erro retornado pelo Governo para o TAF, após transmissão do registro.

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

    • Consulta pelo ticketCode:

    Request:

    http://172.16.31.214:8085/rest/wstafst2?ticketCode=WIO9753123654789789363655241452363&startRecNo=0

    Bloco de código
    languagejs
    themeEclipse
    titleResponse:
    {
      "type": "ticketCode",
      "code": "WIO9753123654789789363655241452363",
      "items": [
        {
          "success": true,
          "proccessed": false,
          "description": "Aguardando Processamento.",
          "registryKey": "KEYIO7878874854545454998598525",
          "errorCode": "",
          "errorDescription": "",
          "errorDetail": ""
        },
        {
          "success": true,
          "proccessed": false,
          "description": "Aguardando Processamento.",
          "registryKey": "KEYYZE7878RE4854545454998598576",
          "errorCode": "",
          "errorDescription": "",
          "errorDetail": ""
        }
     ],
      "lastRecNo": 82,
      "maxRecNo": 82
    }
    Bloco de código
    languagejs
    themeEclipse
    titleResponse após a execução do processamento:
    {
    
      "type": "ticketCode",
      "code": "WIO9753123654789789363655241452363",
      "items": [
        {
          "success": true,
          "proccessed": false,
          "description": "Registro Inconsistente.",
          "registryKey": "KEYIO7878874854545454998598525",
          "errorCode": "000007",
          "errorDescription": "A operacao solicitada no XML esta em desacordo com o cenario do registro na base do TAF",
          "errorDetail": ""
        },
        {
          "success": true,
          "proccessed": true,
          "description": "Registro Processado.",
          "registryKey": "KEYYZE7878RE4854545454998598576",
          "statusCode": " ",
          "statusDescription": "Registro Integrado",
          "active": true
        } 
     ],
      "lastRecNo": 82,
      "maxRecNo": 82
    }

    Observação: O exemplo acima contem os 2 tipos de retorno possíveis para um TAFKEY, o atributo proccessed define se vão ser apresentados os atributos de Erro ou de Sucesso conforme descrito acima na tabela de estrutura da resposta do método GET.

    • Consulta pelo ticketCode + registryKey:

    Request:

    http://172.16.31.214:8085/rest/wstafst2?ticketCode=WIO9753123654789789363655241452363&RegistryKey=KEYYZE7878RE4854545454998598576&startRecNo=0

    Bloco de código
    languagejs
    themeEclipse
    titleResponse:
    {
      "type": "ticketCode",
      "code": "WIO9753123654789789363655241452363",
      "items": [
        {
          "success": true,
          "proccessed": false,
          "description": "Aguardando Processamento do Job2.",
          "registryKey": "KEYYZE7878RE4854545454998598576",
          "errorCode": "",
          "errorDescription": "",
          "errorDetail": ""
        }
      ],
      "lastRecNo": 81,
      "maxRecNo": 81
    }
    Aviso
    titleAtenção!

    Quando a consulta for por ticketCode + registryKey o retorno será agrupado por ticketCode.

    • Consulta pelo registryKey:

    Request:

    http://172.16.31.214:8085/rest/wstafst2?registryKey=KEYYZE7878RE4854545454998598576&startRecNo=0

    Bloco de código
    languagejs
    themeEclipse
    titleResponse:
    {
      "type": "registryKey",
      "code": "KEYYZE7878RE4854545454998598576",
      "items": [
        {
          "success": true,
          "proccessed": false,
          "description": "Aguardando Processamento do Job2.",
          "ticketCode": "WIO9753123654789789363655241452363",
          "errorCode": "",
          "errorDescription": "",
          "errorDetail": ""
        }
      ],
      "lastRecNo": 80,
      "maxRecNo": 80
    }
    Controle de Paginação:

    Quando o retorno de uma requisição ultrapassa o valor de 850 Kb a mensagem de resposta é "quebrada" e retornada com o conteúdo até então incrementado, exemplo:

    Bloco de código
    themeEclipse
    titleExemplo de Paginação
    {
      "type": "ticketCode",
      "code": "WIO9753123654789789363655241452363",
      "items": [
        {
          "success": true,
          "proccessed": false,
          "description": "Aguardando Processamento",
          "registryKey": "KEYIO7878874854545454998598525",
          "errorCode": "",
          "errorDescription": "",
          "errorDetail": ""
        },
    *
    *
    *
    {several items}
    *
    *
    *
        {
          "success": true,
          "proccessed": false,
          "description": "Aguardando Processamento",
          "registryKey": "KEYQIU7878RE4854545454998598544",
          "errorCode": "",
          "errorDescription": "",
          "errorDetail": ""
        }
      ],
      "lastRecNo": 150,
      "maxRecNo": 322
    }

    No exemplo acima a consulta retornou até o registro 150, sendo que o registro com maior RecNo pertencente a consulta é o 322, isso não quer dizer que foram retornados 150 registros e que faltam 172, o RecNo apenas informa a sequencia do registro na tabela TAFST2 porém o lastRecNo menor que o maxRecNo indica que ainda existem registro a serem retornados para a chave requisitada. Para o retorno dos demais registros deve-se realizar uma nova requisição com o startRecNo igual a lastRecNo + 1, este procedimento deve ser adotado  até que o lastRecNo seja igual ao maxRecNo conforme exemplo abaixo:

    Request:

    http://172.16.31.214:8085/rest/wstafst2?ticketCode=WIO9753123654789789363655241452363&startRecNo=151

    Bloco de código
    themeEclipse
    titleResponse
    { "type": "ticketCode", "code": "WIO9753123654789789363655241452363", "items": [ { "success": true, "proccessed": false, "description": "Aguardando Processamento", "registryKey": "KEYIO7878874854545454998598888", "errorCode": "", "errorDescription": "", "errorDetail": "" }, * * * {several items} * * * { "success": true, "proccessed": false, "description": "Aguardando Processamento", "registryKey": "KEYQIU7878RE4854545454998598987", "errorCode": "", "errorDescription
    ": "",
        
    "
    errorDetail
    idCompany": "
    " } ], "lastRecNo": 322, "maxRecNo": 322
    000008"
    }

    Códigos De Erros De Validação:


    • 800 – Campo não informado na estrutura do arquivo.
    • 801 – Campo obrigatório não enviado.
    • 802 – Campo com valor inválido.
    • 803 – TAFFIL não encontrado no complemento de empresas.

      Aviso
      titleAtenção!

      No método POST caso o primeiro item do lote não esteja com o TAFFIL cadastrado no complemento de empresas o sistema irá rejeitar o lote inteiro, caso contrario é realizado uma avaliação item a item verificando se a filial é válida e se pertence ao mesmo grupo de empresas no TAF, neste caso é rejeitado somente os registros inválidos dentro do lote.

    • 804 – Layout Inválido.
    • 805 – Código de Prioridade inválido!
    • 806 – Campo com erro na codificação ou criptografia
    • 807 – Código de Fila inválido!
    • 808 – Estrutura da tabela TAFST2 está desatualizada
    • 809 - Não há configuração de empresas na chave PrepareIn seção TAF_CFGJOB
    • 810 - Chave # de Identificação de filial não encontrada.
    • 811 - Não foi possível identificar a filial # no corpo da mensagem.
    • 812 - Código da Filial ERP # não pertence ao mesmo Grupo de Empresas no TAF considerando os registros integrados anteriormente neste lote.
    • 813 - O TAFKEY # já existe na TAFST2 e encontra-se pendente de processamento ou em processamento.

    Legenda:

    # - valor variável.

    Bloco de código
    languagejs
    titleExemplo de mensagem POST:Exemplo de Resposta do método POST com erro de validação no LOTE.
    {
        "coderr": 803,
        "description": "O valor do campo sourceBranch (TAFFIL)  não está no cadastro no complemento de empresas."
    }
    Bloco de código
    languagejs
    titleExemplo de mensagem POST:Exemplo de Resposta do método POST com erro de validação no ITEM:
    {
      "ticketCode": "WIO9753123654789789363655241452363",
      "registryKey": [
        {
          "key": "KEYIO7878874854545454998598525",
          "success": false,
          "error": [
            {
              "coderr": 801,
              "description": "Campo TAFFIL (sourceBranch)  e Obrigatorio."
            },
            {
              "coderr": 803,
              "description": "O valor do campo TAFFIL (sourceBranch)  nao esta cadastro no complemento de empresas."
            }
           {
              "coderr": 805,
              "description": "Codigo de Prioridade invalido! Codigo enviado: '8'. Codigos validos: 0 - Urgente, 1 - Prioridade Critica, 2 - Prioridade Alta, 3 - Prioridade Media, 4 - Prioridade Baixa, 5 - Nao Prioritario"
            }
          ]
        },
        {
          "key": "KEYYZE7878RE4854545454998598576",
          "success": true
        },
        {
          "key": "KEYQWE7878RE4854545454998598571",
          "success": true
        },
        {
          "key": "KEYQIU7878RE4854545454998598544",
          "success": true
        }
      ],
      "keyAmount": 4
    }


    RESTFAULT*


    • 701 - startRecno e ticketCode não informados no GET (é obrigatório que pelo menos 1 deles seja informado)
    • 702 - Erro na criação/abertura da tabela TAFST2 ou TAFXERP
    • 703 - O parâmetro searchMode deve ser preenchido com 1 ou 2.
    • 704 - Arquivo vazio (Não foi enviado uma mensagem no body do POST)
    • 705 - Erro ao realizar parser da mensagem (o arquivo enviado no Body não é um json válido)


    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.



    *Será liberado juntamente com o pacote de atualização e-Social 2.4.

    ...