Árvore de páginas

Versões comparadas

Chave

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

...

Data alteração       Motivo O que mudou?   AprovadoresVersão
31/01/2025Padronização dos contratosContrato de retorno dos itens 4.1, 4.2, 4.5
v3


       2. O que fazer?

Desenvolver integração para consulta e utilização de limite de crédito com a retaguarda

...

draw.io Diagram
bordertrue
diagramNameJornada limite de crédito
simpleViewerfalse
width
linksauto
tbstyletop
diagramDisplayNameLimite de crédito
lboxtrue
diagramWidth3581
revision2324


Dores e necessidades

Efetuar a consulta de limite de crédito 

Negócio

No PDV e Pedido deve ser possível efetuar a consulta do saldo de crédito disponível para   exibição em tela para o usuário 

Entrega de valor

usuário poderá consultar no sistema PDV Omni o saldo de crédito disponível para o consumidor no momento da venda

...

Campo

Tipo

Descrição

Tipo Parâmetro

Obrigatório

Observação

IdInquilinostringIdentificador do InquilinoParameter/Path/Query Params*Sim

*Usado apenas pelo PDV.

Retaguarda não precisa criar API com esse parâmetro, pois o Sync já irá direcionar para o IP correto.

IdRetaguardaLojastringIdentificador da loja na retaguarda

Parameter/Path/Query Params

Sim

No H1, o idRetaguardaLoja não será validado no Winthor

cpfCnpjstringDocumento do cliente

Header

Sim


...

Campo

Tipo

Descrição

Obrigatório

Observação

successboolIndica se a consulta de limite de crédito ocorreu corretamenteSimExemplo: Se o cliente não foi encontrado, deve ser retornado "false", pois a partir disso o PDV sabe que não haverá objeto de limite de crédito para exibir e sim apenas a mensagem justificando a ausência efetiva do limite de crédito.
messagestringMensagem de retorno de errosNãoSempre que possível em caso de erro justificar o erro nesse campo.
limitesCreditodetailedmessageLista de objetosLista com dos limites de créditos retornadosNãoDeve ser enviado sempre que houver retorno de true no atributo "success".
limitesCredito.saldoDisponiveldoubleSaldo do crédito disponívelNãoDeve ser enviado sempre que houver retorno de true no atributo "success".
limitesCredito.idRetaguardaLimiteCreditostringIdentificador do limite de crédito caso existaNão

Exemplos

Sucesso:

{
  "success": true,
  "message": null,
  "limitesCredito":
  [
    {
      "saldo": 1000.00 ,
      "idRetaguardaLimiteCredito": null
    }
  ]
}

Erro:

{
  "success": false,
  "message": "Cliente com XPTO não encontrado na base de dados da retaguarda"
}

4.2 Contrato de consulta de limite de crédito detalhado online

  • Endpoint: /api/pdvsyncserver/retaguarda/v2/processoonlinelimitecreditodetalhes/{IdInquilino}/{IdRetaguardaLoja}
  • Método: Get
  • Autenticação: Bearer token
  • Permissão: Client

Dúvidas:

  •  Levantadas pelo time Sync
    • Não é importante ter a data ou o período considerado para trazer os "detalhes" do que esta compondo o limite de crédito ?
    • O nome da da API como detalhes não esta muito sugestivo a um extrato ?
      • O nome não poderia ser processoonlinelimitecreditosintetico ?

Request:

...

Campo

...

Tipo

...

Descrição

...

Tipo Parâmetro

...

Obrigatório

...

Observação

...

*Usado apenas pelo PDV.

Retaguarda não precisa criar API com esse parâmetro, pois o Sync já irá direcionar para o IP correto.

...

Parameter/Path/Query Params

...

Sim

...

Header

...

Sim

Response:

...

Campo

...

Tipo

...

Descrição

...

Obrigatório

...

Observação

...

  • Deve ser preenchido caso o atributo  "valorUtilizado" seja maior que zero.
    • Deve ser preenchido com ao menos um item no objeto.

...

stringMensagem detalhada de errosNãoEm caso de erro detalhar o erro nesse campo.
errors
Erros de execução API syncNãoUso PDVSync
numberOfRecordsdoubleNumero de registros NãoUso PDVSync
totalTimetimeTempo de processamento APINãoUso PDVSync
dataLista de objetosLista padrão Sim
data.saldoDisponiveldoubleSaldo do crédito disponívelNãoDeve ser enviado sempre que houver retorno de true no atributo "success".
data.idRetaguardaLimiteCreditostringIdentificador do limite de crédito caso existaNão

Exemplos

Sucesso:

{
    "data": [
        {
            "idRetaguardaLimiteCredito": null,
            "saldoDisponivel": 1000.0
        }
    ],
    "detailedMessage": null,
    "errors": null,
    "message": "",
    "numberOfRecords": 0,
    "success": true,
    "totalTime": 0
}


Erro:

{
    "success": false,
    "message": "Cliente com XPTO não encontrado na base de dados da retaguarda",
    "detailedmessage": "",
    "data": null,
    "errors": null,
    "totalTime": 0,
    "numberOfRecords": 0
}

4.2 Contrato de consulta de limite de crédito detalhado online

  • Endpoint: /api/pdvsyncserver/retaguarda/v2/processoonlinelimitecreditodetalhes/{IdInquilino}/{IdRetaguardaLoja}
  • Método: Get
  • Autenticação: Bearer token
  • Permissão: Client

Dúvidas:

  •  Levantadas pelo time Sync
    • Não é importante ter a data ou o período considerado para trazer os "detalhes" do que esta compondo o limite de crédito ?
    • O nome da da API como detalhes não esta muito sugestivo a um extrato ?
      • O nome não poderia ser processoonlinelimitecreditosintetico ?

Request:

Campo

Tipo

Descrição

Tipo Parâmetro

Obrigatório

Observação

IdInquilinostringIdentificador do InquilinoParameter/Path/Query Params*Sim

*Usado apenas pelo PDV.

Retaguarda não precisa criar API com esse parâmetro, pois o Sync já irá direcionar para o IP correto.

IdRetaguardaLojastringIdentificador da loja na retaguarda

Parameter/Path/Query Params

Sim


cpfCnpjstringDocumento do cliente

Header

Sim



Response:

Campo

Tipo

Descrição

Obrigatório

Observação

successboolIndica se a consulta de limite de crédito ocorreu corretamenteSimExemplo: Se o cliente não foi encontrado, deve ser retornado "false", pois a partir disso o PDV sabe que não haverá objeto de limite de crédito para exibir e sim apenas a mensagem justificando a ausência efetiva do limite de crédito.
messagestringMensagem de retorno de erros(Retaguarda)NãoSempre que possível em caso de erro justificar o erro nesse campo.
errors
Erros de execução API syncNãoUso PDVSync
numberOfRecordsdoubleNumero de registros NãoUso PDVSync
totalTimetimeTempo de processamento APINãoUso PDVSync
detailedmessagestringMensagem detalhada de erros(Retaguarda)NãoEm caso de erro detalhar o erro nesse campo.
dataLista de objetosLista padrão Sim
data.saldoDisponiveldoubleSaldo do crédito disponívelSimCaso o ERP não encontre nenhum registro de limite de crédito para o cliente, deve retornar saldo disponível igual a zero.
data.idRetaguardaLimiteCreditostringIdentificador do limite de crédito caso existaNão
data.valorUtilizadodoubleValor já consumido do limite de créditoSim
data.valorTotaldoubleValor total do limite de créditoSimEsse valor é composto pela somatória do valorUtilizado e o saldoDisponivel.
data.detalhesValorUtilizadoLista de objetosLista de detalhamento da composição do limite de crédito já utilizado.Não
  • Deve ser preenchido caso o atributo  "valorUtilizado" seja maior que zero.
    • Deve ser preenchido com ao menos um item no objeto.
data.detalhesValorUtilizado.totaldoubleValor total já utilizado.Sim
  • Obrigatoriedade do objeto detalhesValorUtilizado 
  • Deve ser preenchido caso o atributo  "valorUtilizado" seja maior que zero.
data.detalhesValorUtilizado.tipostringTipo da origem de utilização do crédito.Sim
  • Obrigatoriedade do objeto detalhesValorUtilizado 
  • Deve ser preenchido caso o atributo  "valorUtilizado" seja maior que zero.

Exemplos

Sucesso:

{
  "success": true,
  "message": "",
    "detailedMessage": null,
    "data": [
        {
            "saldoDisponivel": 800.0,
            "idRetaguardaLimiteCredito": "01PSH00000005033CR",
            "valorUtilizado": 264.0,
            "valorTotal": 372.0,
            "detalhesValorUtilizado": [
                {
                    "total": 532.0,
                    "tipo": "credito total"
                }
            ]
        }
    ],
    "errors": null,
    "totalTime": 0,
    "numberOfRecords": 0
}

Bloco de código
languagesql
idRetaguardaLimiteCredito será o codcli concatenado com o termo 'LIMCRED'

 "idRetaguardaLimiteCredito": "193489-LIMCRED", 


Erro:

{
  "success": false,
  "message": "Não foi possível encontrar limite de crédito para o cliente selecionado.",
  "detailedmessage": "",
  "data": null,
  "errors": null,
  "totalTime": 0,
  "numberOfRecords": 0
}



4.3 Contrato descida de dado forma de pagamento

  • Adicionar o atributo "utilizaLimiteCredito" na API de POST de forma de pagamento (v3.2)  - Forma de pagamento#2612513
    • O atributo novo deve ser criado direto no data do payload, conforme exemplo abaixo:
      • Image Added
        • O novo campo será opcional e booleano.
          • O default desse campo será falso
            • Caso a retaguarda/erp não envie esse campo, o mesmo será considerado false para o Sync e o PDV.

Campo

Tipo

Exemplos

Sucesso:

{
  "success": true,
  "message": null,
  "limitesCredito":
  [
    {
      "saldoDisponível": 1000.00,
      "idRetaguardaLimiteCredito": null,
      "valorUtilizado": 3000.00,
      "valorTotal": 4000.00,
      "DetalhesValorUtilizado":
      [
        {
          "":1000.00
          "tipo": "Contas a receber"
        },
        {
          "total":2000.00
          "tipo": "Pedidos a faturar"
        }
      ]
    }
  ]
}

Erro:

{
  "success": false,
  "message": "Não foi possível encontrar limite de crédito para o cliente selecionado."
}

4.3 Contrato descida de dado forma de pagamento

  • Adicionar o atributo "utilizaLimiteCredito" na API de POST de forma de pagamento (v3.2)  - Forma de pagamento#2612513
    • O atributo novo deve ser criado direto no data do payload, conforme exemplo abaixo:
      • Image Removed
        • O novo campo será opcional e booleano.
          • O default desse campo será falso
            • Caso a retaguarda/erp não envie esse campo, o mesmo será considerado false para o Sync e o PDV.

Campo

Tipo

Descrição

Obrigatório

Campo PDV

Observação

utilizaLimiteCreditoboolIndica se a forma de pagamento é elegível a utilizar limite de crédito.Não

Tabela - pagamento_forma 

campo - utiliza_limite_credito

  • O default desse campo será falso.
  • Caso a retaguarda/erp não envie esse campo, o mesmo será considerado false para o Sync e o PDV.

...

Campo

Tipo

Descrição

Tipo Parâmetro

Obrigatório

Observação

IdInquilinostringIdentificador do InquilinoParameter/Path/Query Params*Sim

*Usado apenas pelo PDV.

Retaguarda não precisa criar API com esse parâmetro, pois o Sync já irá direcionar para o IP correto.

IdRetaguardaLojastringIdentificador da loja na retaguarda

Parameter/Path/Query Params

Sim


cpfCnpjstringDocumento do cliente

Header

Sim


limitePgamentoFormalimitePagamentoFormaboolIndica se a solicitação de limite de crédito deve ser retornada por tipo de forma de pagamento ou não.

Header

Não

Caso o parâmetro não seja enviado, o default desse parâmetro será false.

Caso seja true, o retorno da retaguarda será de limite de crédito por tipo  de forma de pagamento.

...

de retorno Sempre que possível em justificar limitesCredito com dos limites de créditos retornados

Campo

Tipo

Descrição

Obrigatório

Observação

successboolIndica se a consulta de limite de crédito ocorreu corretamenteSimExemplo: Se o cliente não foi encontrado, deve ser retornado "false", pois a partir disso o PDV sabe que não haverá objeto de limite de crédito para exibir e sim apenas a mensagem justificando a ausência efetiva do limite de crédito.messagea ausência efetiva do limite de crédito.
messagestringMensagem de retorno de errosNãoSempre que possível em caso de erro justificar o erro nesse campo.
errors
Erros de execução API syncNãoUso PDVSync
numberOfRecordsdoubleNumero de registros NãoUso PDVSync
totalTimetimeTempo de processamento APINãoUso PDVSync
detailedmessagestringMensagem
detalhada de erros(Retaguarda)Não
Em caso de erro
detalhar o erro nesse campo.
dataLista de objetosLista padrão Sim
dataNãoDeve ser enviado sempre que houver retorno de true no atributo "success".limitesCredito.saldoDisponiveldoubleSaldo do crédito disponívelNãoDeve ser enviado sempre que houver retorno de true no atributo "success".
limitesCreditodata.idRetaguardaLimiteCreditostringIdentificador do limite de crédito caso existaNão
limitesCreditodata.saldoDetalhadoFormaPagamentoLista de objetosLista com os limites de créditos retornados por forma de pagamentoNãoDeve ser enviado sempre que for solicitada na requisição  no atributo o atributo "limitePgamentoForma" como true e o valor do saldo for maior que zero.
limitesCreditodata.saldoDetalhadoFormaPagamento.valordoubleValor por forma de pagamento do limite de créditoNãoSimDeve ser enviado sempre que for solicitada na requisição  no atributo o atributo "limitePgamentoForma" como true e o valor do saldo for maior que zero.
limitesCreditodata.saldoDetalhadoFormaPagamento.idRetaguardaPagamentoFormastringidRetaguarda relacionado ao tipo de forma de pagamento disponível para o limite de crédito.NãoSim
  • Deve ser enviado sempre que for solicitada na requisição  no atributo o atributo "limitePgamentoForma" como true e o valor do saldo for maior que zero.
  • O idRetaguarda enviado nesse campo deve ser o mesmo enviado na carga de pagamento forma.

Exemplos

Sucesso:

  • maior que zero.
  • O idRetaguarda enviado nesse campo deve ser o mesmo enviado na carga de pagamento forma.

Exemplos

Sucesso:

{
    "data": [
        {
            "idRetaguardaLimiteCredito": null,
            "saldoDisponivel": 1000.0,
            "saldoDetalhadoFormaPagamento": [
                {
                    "idRetaguardaPagamentoForma": "BL",
                    "valor": 500.0
                }{
  "success": true,
  "message": null,
  "limitesCredito":
  [
    {
        "saldo": 1000.00 ,
        "idRetaguardaLimiteCredito": null
        "saldoDetalhadoFormaPagamento":
{
            [
        "idRetaguardaPagamentoForma": "CH",
    {
                "valor": 500.00,0
                "idRetaguardaPagamentoForma": "BL"}
            },]
        }
    {],
            "detailedMessage": null,
    "valorerrors": 500.00null,
                "idRetaguardaPagamentoFormamessage": "CH",
            }
        ]"numberOfRecords": 0,
    }
  ]"success": true,
    "totalTime": 0
}


Erro:

{
    "success": false,
    "message": "Cliente com XPTO não encontrado na base de dados da retaguarda",
    "detailedMessage": null,
    "data": null,
    "errors": null,
    "totalTime": 0,
    "numberOfRecords": 0
}


4.6 Contrato de consumo/cancelamento de utilização de limite de crédito - INCOMPLETO - NÃO UTILIZAR

...

Campo

Tipo

Descrição

Tipo Parâmetro

Obrigatório

Observação

IdInquilinostringIdentificador do InquilinoParameter/Path/Query Params*Sim

*Usado apenas pelo PDV.

Retaguarda não precisa criar API com esse parâmetro, pois o Sync já irá direcionar para o IP correto.

IdRetaguardaLojastringIdentificador da loja na retaguarda

Parameter/Path/Query Params

Sim


cpfCnpjstringDocumento do cliente

Header

Sim


limitePgamentoFormalimitePagamentoFormaboolIndica se a solicitação de limite de crédito deve ser retornada por tipo de forma de pagamento ou não.

Header

Não

Caso o parâmetro não seja enviado, o default desse parâmetro será false.

Caso seja true, o retorno da retaguarda será de limite de crédito por tipo  de forma de pagamento.

...