Árvore de páginas

Versões comparadas

Chave

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

...

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


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

...

4.1 Contrato de consulta de limite de crédito crédito online

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

...

4.2 Contrato de consulta de limite de crédito detalhado 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 errosNãoSempre que possível em caso de erro justificar o erro nesse campo.
limitesCreditoLista 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ível
Não
SimCaso o ERP não encontre nenhum registro de limite de crédito para o cliente, deve retornar saldo disponível igual a zero
Deve ser enviado sempre que houver retorno de true no atributo "success"
.
limitesCredito.idRetaguardaLimiteCreditostringIdentificador do limite de crédito caso existaNão
limitesCredito.valorUtilizadodoubleValor já consumido do limite de crédito
sim
Sim
limitesCredito.valorTotaldoubleValor total do limite de créditoSimEsse valor é composto pela somatória do valorUtilizado e o saldoDisponivel.
limitesCredito.
DetalhesValorUtilizado
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.
limitesCredito.detalhesValorUtilizado.totaldoubleValor total já utilizado.Sim
  • Obrigatoriedade do objeto detalhesValorUtilizado 
  • Deve ser preenchido caso o atributo  "valorUtilizado" seja maior que zero.
limitesCredito.detalhesValorUtilizado.tipostringTipo da origem de utilização do crédito.Sim
  • Obrigatoriedade do objeto detalhesValorUtilizado 
  • Deve ser preenchido caso o
atributo  valorUtilizado
  • atributo  "valorUtilizado" seja maior que zero.

Exemplos

Sucesso:

{
  "success": true,
  "message": null,
  "limitesCredito":
  [
    {
      "saldosaldoDisponí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": "Cliente com XPTO não encontrado na base de dados da retaguardaNã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 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

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.

4.4 Contrato descida de dado tabela loja

  • Adicionar o atributo "limiteCreditoFormaPagamento" na API de POST de loja (v3.2)  - Cadastro de Loja#Vers%C3%A3o3.2

      4.5 Contrato utilização de saldo 

        • O atributo novo deve ser criado direto na data do payload, conforme exemplo abaixo:
          • Image Added


      Campo

      Tipo

      Descrição

      Obrigatório

      Campo PDV

      Observação

      limiteCreditoFormaPagamentoboolIndica se a loja trabalha com limite de crédito por forma de pagamento.Não

      Tabela - loja

      campo - limite_credito_forma_pagamento

      • 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.

      4.5 Contrato de consulta de limite de crédito por forma de pagamento online

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


      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


      limitePagamentoFormaboolIndica 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.


      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 errosNãoSempre que possível em caso de erro justificar o erro nesse campo.
      limitesCreditoLista 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
      limitesCredito.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.
      limitesCredito.saldoDetalhadoFormaPagamento.valordoubleValor por forma de pagamento do limite de créditoSimDeve 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.
      limitesCredito.saldoDetalhadoFormaPagamento.idRetaguardaPagamentoFormastringidRetaguarda relacionado ao tipo de forma de pagamento disponível para o limite de crédito.Sim
      • 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:

      {
        "success": true,
        "message": null,
        "limitesCredito":
        [
          {
              "saldo": 1000.00 ,
              "idRetaguardaLimiteCredito": null
              "saldoDetalhadoFormaPagamento":
              [
                  {
                      "valor": 500.00,
                      "idRetaguardaPagamentoForma": "BL"
                  },
                  {
                      "valor": 500.00,
                      "idRetaguardaPagamentoForma": "CH"
                  }
              ]
          }
        ]
      }


      Erro:

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


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

      • Endpoint: /api/pdvsyncserver/retaguarda/v2/processoonlinelimitecredito
      • Método: POST
      • Autenticação: Bearer token
      • Permissão: Client


      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


      limitePgamentoFormaboolIndica 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.

      {
          "idInquilino": "123",
          "limitePgamentoForma": true
          "Limitescredito": [
              {
                  "cpfCnpj": "45512547836",
                  "idRetaguardaLimiteCredito": "",
                  "idRetaguardaLojaBaixa": "",
                  "idRetaguardaUsuario": "12569",
                  "saldoDetalhadoFormaPagamento": [
                      {
                          "valor": 500.00,
                          "idRetaguardaPagamentoForma": "BL"
                      },
                      {
                          "valor": 500.00,
                          "idRetaguardaPagamentoForma": "CH"
                      }
                  ],
                  "valorTotalBaixa": 1000.00
              }
          ],
          "idRetaguardaoperador": "125610",
          "motivo": "Consumo Limite crédito PDV",
          "numeroCaixa": "01",
          "numeroVenda": "1",
          "origemPDV": "PDVOmni",
          "serieVenda": "1",
          "tipoOperacao": "0"
      }4.6 Contrato cancelamento de venda 

      5. Premissas:


      6. Restrições:

      Nessa primeira versão não está sendo previsto o desenvolvimento de integração de pedidos com status de analise de credito, para o fluxo financeiro ode é feita a analise e liberação de limite de credito sobre pedidos pendentes. 


      7. Pontos de atenção: 

      • desenvolvimento na issue
        Jira
        serverJIRA
        serverId0c783de1-186e-383b-975c-a1acd7d76cb5
        keyDPDVSUPER-2560
        onde para calcular o valor do limite de crédito disponível, deverá ser feito da seguinte forma
        • (Limite de Crédito *  % Exceção) - Valor títulos em aberto - Valor venda pendente
      • Para QA, considerar:
        • cenários com e sem parâmetro da finalizadora (132)
        • cenários com cliente não cadastrado
        • cenários de limite de crédito de cliente:
          • cenários de margem da 132 (% máximo para exceder limite de crédito) passando e nao passando o limite
          • cenários de limite por cobrança 
          • cenários com titulo em aberto passando e nao passando o limite
          • cenários com venda pendente passando e nao passando o limite
          • cenários com cliente válido com a venda aberta
          • cenários com cliente válido com a venda fechada
          • cenários com cliente com saldo negativo
        • cenários de limite de crédito de cliente principal:
          • cenários de margem da 132 (% máximo para exceder limite de crédito) passando e não passando o limite
          • cenários de limite por cobrança 
          • cenários com titulo em aberto passando e não passando o limite
          • cenários com venda pendente passando e não passando o limite
          • cenários com cliente principal válido com a venda aberta
          • cenários com cliente principal válido com a venda fechada
          • cenários com cliente principal com saldo negativo
          • Cenários com limite de crédito com saldo com mais de 7 digitos 
        • comparar cenários com a 2030
      • verificar o fluxo para não validação do limite para cartão (crédito, débito, etc)
      • verificar qual parâmetro habilita o limite de crédito na cobrança no PDV e no Pedido: "Validar Limite de Crédito ECF" ou "Validar Limite de crédito", conforme 522

      ...