Objetivo

O objetivo desse campo é centralizar as informações necessárias para que o Inquilino se comunique com  a retaguarda.

Esse campo é utilizado também no processo de Ip Dinâmico, o qual a Retaguarda envia a cada período uma requisição, para um servidor de armazenamento, com o IdInquilino que o Ip foi alterado. A retaguarda por sua vez, quando não consegue se comunicar com o Ip que está armazenado localmente no banco do PDV, solicita para o servidor de armazenamento o novo IP para aquele inquilino.

Descrição  do campo Metadata

O campo Metadata é um campo obrigatório que está presente nos servidores do POSH nos registros de inquilino. Ele é um campo do tipo Json, sendo essa sua única validação para o cadastro.

Contudo, para que a aplicação funcione de forma correta, as propriedades contidas no campo metadata devem seguir um padrão.

Caso o campo metadata esteja nulo, uma mensagem de erro será retornada quando for solicitado qualquer processo online, vide erro.

Propriedades do campo metadata

Nessa seção teremos as informações de todas as propriedades que podem ser enviadas no metadata e também o json com todas as propriedades.

{
    "creditoConsulta": "string",
    "creditoConsumo": "string",
    "estoqueConsulta": "string",
    "identificadorPdv": "string",
    "ipDinamico": false,
    "login": "string",
    "notaEntradaEnvio": "string",
    "notaSaidaEnvio": "string",
    "password": "string",
    "PortaRetaguarda": 88,
    "preVendaAtualiza": "string",
    "preVendaConsultaListaPedido": "string",
    "preVendaConsultaPedido": "string",
    "preVendaEnvio": "string",
    "ProtocoloHttpRetaguarda": "string",
    "reservaEstoqueEnvio": "string",
    "Retaguarda": "string",
    "tempoMonitoraStatus": 30,
    "token_type": "string",
    "UrlBuscaIPDinamico": "string",
    "UrlRetaguarda": "string",
    "urlToken": "string",
    "versaoApi": 0
}

PropriedadeTipoDescriçãoObservação
creditoConsultastringUtilizado para informar o endpoint da API do Processo Online Crédito Consulta
creditoConsumostringUtilizado para informar o endpoint da API do Processo Online Crédito Consumo
estoqueConsultastringUtilizado para informar o endpoint da API do Processo Online Estoque Saldo Consulta
identificadorPdvstringUtilizado para informar o endpoint da API do Processo Online Identificador de Dispositivo PDV
ipDinamicobooleanUtilizado para informar se será utilizado o IP dinâmico nas APIs do Retaguarda.
loginstringUsuário utilizado na autenticação da API do Retaguarda
notaEntradaEnviostringUtilizado para informar o endpoint da API do Processo Online Nota de Entrada
notaSaidaEnviostringUtilizado para informar o endpoint da API do Processo Online Nota de Saída Envio 
passwordstringSenha utilizada na autenticação da API do Retaguarda
PortaRetaguardaintegerUtilizado para informar a Porta utilizada para acessar a API da Retaguarda
preVendaAtualizastringUtilizado para informar o endpoint da API do Processo Online Pré Venda (Atualização de Situação)
preVendaConsultaListaPedidostringUtilizado para informar o endpoint da API do Processo Online Pedido (Consulta Lista de Pedidos)
preVendaConsultaPedidostringUtilizado para informar o endpoint da API do Processo Online Pedido (Consulta do Pedido completo)
preVendaEnviostringUtilizado para informar o endpoint da API do Processo Online Pre Venda Envio
ProtocoloHttpRetaguardastringUtilizado para informar o protocolo de comunicação utilizado na API do RetaguardaEx.(http ou https)
reservaEstoqueEnviostringUtilizado para informar o endpoint da API do Processo Online Reserva de Estoque
RetaguardastringUtilizado para informar qual Retaguarda está sendo utilizado pelo inquilino.Ex.(Winthor, Protheus, etc)
tempoMonitoraStatusintegerUtilizado para informar o tempo de monitoramento de status.Tempo em segundos
tempoMonitoraStatusVenda
Utilizado para informar o tempo de monitoramento de status de venda.
token_typestringDetermina o tipo de autenticação utilizado na API do Retaguarda.EX.(Basic,Bearer)
UrlBuscaIPDinamicostringUtilizado pra informar a URL das APIs do Retaguarda
UrlRetaguardastringUtilizado pra informar a URL das APIs do Retaguarda
urlTokenstringEndpoint responsável por gerar o Token de autenticação da API do Retaguarda
versaoApiInteiroUtilizado para indicar a versão das APIs do POSH utilizada

{
    "ativarPDVSyncClientDownIntegrado": false,
    "ativarPDVSyncClientUpIntegrado": false,
    "endpointCreditoConsulta": "string",
    "endpointCreditoConsumo": "string",
    "endpointEstoqueConsulta": "string",
    "endpointIdentificadorPdv": "string",
    "endpointNotaEntradaEnvio": "string",
    "endpointNotaSaidaEnvio": "string",

     "EndpointNotificaRetaguardaNovaLoja": "string",
    "endpointPreVendaAtualiza": "string",
    "endpointPreVendaConsultaListaPedido": "string",
    "endpointPreVendaConsultaPedido": "string",
    "endpointPreVendaEnvio": "string",
    "endpointReservaEstoqueEnvio": "string",
    "endpointToken": "string",
    "horariosExecucaoVendaConsolidada": "string",
    "ipDinamico": false,
    "login": "string",
    "maximoTentativas": 0,
    "password": "string",
    "portaRetaguarda": 0,
    "protocoloHttpRetaguarda": "string",
    "retaguarda": "string",
    "tempoMonitoraStatus": 0,
    "tempoMonitoraStatusVenda": 0,
    "tipoAutenticacao": 0,
    "urlBuscaIPDinamico": "string",
    "urlRetaguarda": "string",
    "versaoApi": 0
}

PropriedadeTipoDescriçãoObservação
ativarPDVSyncClientDownIntegradoBooleanoUtilizado para informar se será utilizado o Client DOWN integrado no PDV OmniDisponível apenas na V3. Valores = True ou False
ativarPDVSyncClientUpIntegradoBooleanoUtilizado para informar se será utilizado o Client UP integrado no PDV OmniDisponível apenas na V3. Valores = True ou False
endpointCreditoConsultaStringUtilizado para informar o endpoint da API do Processo Online Crédito Consulta
endpointCreditoConsumoStringUtilizado para informar o endpoint da API do Processo Online Crédito Consumo
endpointEstoqueConsultaStringUtilizado para informar o endpoint da API do Processo Online Estoque Saldo Consulta
endpointIdentificadorPdvStringUtilizado para informar o endpoint da API do Processo Online Identificador de Dispositivo PDV
endpointNotaEntradaEnvioStringUtilizado para informar o endpoint da API do Processo Online Nota de Entrada
endpointNotaSaidaEnvioStringUtilizado para informar o endpoint da API do Processo Online Nota de Saída Envio 
EndpointNotificaRetaguardaNovaLojaStringUtilizado para informar o endpoint da API do Processo Online Notifica Retaguarda Nova Loja
endpointPreVendaAtualizaStringUtilizado para informar o endpoint da API do Processo Online Pré Venda (Atualização de Situação)
endpointPreVendaConsultaListaPedidoStringUtilizado para informar o endpoint da API do Processo Online Pedido (Consulta Lista de Pedidos)
endpointPreVendaConsultaPedidoStringUtilizado para informar o endpoint da API do Processo Online Pedido (Consulta do Pedido completo)
endpointPreVendaEnvioStringUtilizado para informar o endpoint da API do Processo Online Pre Venda Envio
endpointReservaEstoqueEnvioStringUtilizado para informar o endpoint da API do Processo Online Reserva de Estoque
endpointTokenStringEndpoint responsável por gerar o Token de autenticação da API do Retaguarda
horariosExecucaoVendaConsolidadaStringUtilizado para informar os horários que serão enviados as Vendas Consolidadas para os servidores do POSHCada hora deve ser enviada separadas por vírgula. Ex.("12,13,14,15,16")
ipDinamicoBooleanoUtilizado para informar se será utilizado o IP dinâmico nas APIs do Retaguarda.
loginStringUsuário utilizado na autenticação da API do Retaguarda
maximoTentativasInteiroQuantidade máxima de tentativas
passwordStringSenha utilizada na autenticação da API do Retaguarda
portaRetaguardaInteiroUtilizado para informar a Porta utilizada para acessar a API da RetaguardaMaior que 0
protocoloHttpRetaguardaStringUtilizado para informar o protocolo de comunicação utilizado na API do RetaguardaEx.(http ou https)
retaguardaStringUtilizado para informar qual Retaguarda está sendo utilizado pelo inquilino.Ex.(Winthor, Protheus, etc)
tempoMonitoraStatusInteiroUtilizado para informar o tempo de monitoramento de status.Tempo em segundos
tempoMonitoraStatusVendaInteiroUtilizado para informar o tempo de monitoramento de status de venda.
tipoAutenticacaoInteiroDetermina o tipo de autenticação utilizado na API do Retaguarda.Tipos definidos na seção 'Tipos autenticações'
urlBuscaIPDinamicoStringUtilizado para informar a API responsável por recuperar dinamicamente o IP das APIs do Retaguarda
urlRetaguardaStringUtilizado pra informar a URL das APIs do Retaguarda
versaoApiInteiroUtilizado para indicar a versão das APIs do POSH utilizada
CódigoTipo
0Basic
1Bearer

Configurações de IP no metadata

Abaixo temos as definições dos fluxos de IP Fixo e IP Dinâmico

O fluxo "IP Fixo" funcionava a partir da url que era cadastrada com o inquilino no campo "ConnectionString", porém, com a implementação do fluxo do IP Dinâmico, este fluxo sofreu algumas alterações.

Com as novas implementações, o campo obrigatório para que esse fluxo funcione é o "UrlRetaguarda" presente no campo metadata do inquilino.

Aqui está um exemplo de como o metadata deve estar para que o fluxo "IP Fixo" funcione corretamente.


{
    "IpDinamico": false,
    "UrlRetaguarda": "http://{IP}:{Porta}"
}

Descrição dos campos

PropriedadeTipoDescriçãoObservação
IpDinamicoBoolIndica se utiliza o IP Dinâmico.Obrigatório
UrlRetaguardaStringURL que será feita a consulta dos dados na retaguardaObrigatório

Validações

Nesse fluxo a única validação imposta é a propriedade "UrlRetaguarda" que deve estar preenchida, caso ocorra o envio dela vázia ("") ou nula, uma mensagem de erro será retornada. Vide exemplo de retorno do erro.


Caso todas a validações estejam corretas, a requisição seguirá com seu fluxo normalmente, realizando as solicitações na URL enviada.

O fluxo "IP Dinâmico" é o fluxo responsável por verificar se o IP da retaguarda sofreu alguma alteração e realizar a busca do novo IP para as novas requisições.

Algumas propriedades são obrigatórias no metadata para que esse fluxo funcione corretamente

Segue um exemplo de como deve ser o metadata nesse fluxo e a definição de cada propriedade


{
    "ipDinamico": true,
    "urlBuscaIPDinamico": "http://{ip}/api/v1/client/ip",
    "protocoloHttpRetaguarda": "http",
    "portaRetaguarda": 0
}

Descrição dos campos

PropriedadeTipoDescriçãoObservação
IpDinamicoBoolIndica se utiliza o IP Dinâmico.Obrigatório
UrlBuscaIPDinamicoStringURL que será feita a consulta do IPObrigatório
ProtocoloHttpRetaguardaStringProtocolo utilizado para a comunicação com a retaguardaObrigatório
PortaRetaguardaIntPorta utlizada para comunicação com a retaguardaOpcional


Validações

Nesse fluxo caso ocorra o envio de alguma propriedade obrigatória como vazia ou nula, uma mensagem de erro será retornada. Vide exemplo de retorno do erro.