1. Alteração de jornada:
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


Processo: Limite de crédito

Legenda
Cliente
PDV
Sync
Retaguarda
1
Cliente identificado no PDV OMNI
S
PDV OMNI envia a solicitação ao sync para obter o limite de credito 
N
Efetua consulta de limite de credito?
Sync recebe a solicitação e envia a retaguarda para obter o saldo atualizado de limte de crédito
Retaguarda recebe a solicitação e devolve ao Sync o valor de saldo disponivel de limite de credito do cliente
Sync recebe o dado e devolve para o PDV Omni o saldo de crédito do cliente
PDV Omni exibi em tela o saldo do cliente para fins informativos  
2
Na retaguarda será definido quais formas de pagamento devem utilizar limite de crédito
Retaguarda envia na carga de dados de forma de pagamento parametro para identificar quais formas devem utilizar limite de crédito
Sync recebe a carga de dados e atualiza os dados na base do PDV Omni
4

Consulta limite de crédito online

Carga de forma de pagamento

Utilizar saldo 


selecionar forma de pagamento que valida limite de crédito
PDV Omni envia solicitação ao Sync para obter limite de crédito disponivel
Sync recebe a solicitação e envia a retaguarda para obter o saldo atualizado de limte de crédito
Retaguarda recebe a solicitação e devolve ao Sync o valor de saldo disponivel de limite de credito do cliente
PDV deve validar se o valor obtido é igual ou menor ao valor pago na forma de pagamento selecionada
PDV Processa o dado e envia ao PDV Sync para  efetuar a baixa do saldo na retaguarda
5

No PDV Omni é efetuado cancelamento de uma venda
Sync captura o cupom cancelado e envia para a retaguarda para processar o cancelamento
Retaguarda recebe o cupom cancelado e efetua o processamento
Retaguarda atualiza o saldo do limite de crédito

Cancelamento de venda

3

Parametro para validar o valor de limite por forma de pagamento

Retaguarda envia no cadastro da filial parametro para validar o valor de  limite de credito por forma de pagamento
PDV Sync recebe os dados e grava na tabela loja do PDV o parametro para validar o limite de crédito por forma de pagamento
N
S
Comunicação estabelecida?
Sync retorna ao PDV que não conseguiu comunicação com a retaguarda
PDV Exibi mensagem ao usuario que a forma de pagamento que valida limite de credito não poderá ser utilizada 
S
N
Visualiza detalhes?
N
S
Valida limite por forma?
PDV Omni envia solicitação ao sync para obter limite de credito por forma de pagamento
Não exibi saldo de limite de crédito e detalhes no cliente de acordo com o perfil do usuario
Não exibi detalhes de titulos de acordo com o perfil de usuario 
Exibe detalhes dos títulos em aberto que compões o limite de credito
PDV OMNI envia a solicitação ao sync para obter detalhes dos títulos que compõe o limite de credito 
Sync recebe a solicitação e envia a retaguarda para obter os títulos que compõe o limite de credito 
Retaguarda recebe a solicitação e devolve ao Sync os detalhes do limite de crédito
Sync recebe o dado e devolve para o PDV Omni os detalhes do saldo de crédito do cliente
S
N
Atualização online do saldo
Sync recebe o dado e envia a retaguarda para efetuar a baixa do saldo do limite de credito utilizado
Retaguarda recebe a solicitação e efetua o processamento 
Retaguarda processa a solicitação e devolve ao PDV Sync a confirmação sobre a baixa do limite 
PDV Sync recebe o retorno da retaguarda e devolve ao PDV para que seja efetuado a finalização da venda
PDV Omni recebe o retorno e efetua o fechamento da venda e finalização do processo
4.1 Contrato de consulta de limite de crédito online 
4.2 Contrato de consulta de limite de crédito detalhado  online
4.3 Contrato descida de dado forma de pagamento
4.4 Contrato descida de dado tabela loja
4.5 Contrato de consulta de limite de crédito por forma de pagamento online
4.1 Contrato de consulta de limite de crédito online 


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

Dores e necessidades

Necessidade de exibir limite de crédito por forma de pagamento na identificação do cliente

Negócio

Ao efetuar a identificação de um cliente no PDV ou Pedido quando houver limite de crédito diferente por forma de pagamento deve ser exibido na tela de detalhes do cliente os valores de limite separados por forme.

Entrega de valor

O processo irá garantir que o vendedor tenha a visualição nos detalhes do cliente do valor de limite de crédito por forma de pagamento

Dores e necessidades

Definir quais formas de pagamento devem consumir o limite de crédito

Negócio

Na integração das formas de pagamento deve ser identificado quais delas devem consumir limite de crédito na utilização no PDV e no pedido de venda

Entrega de valor

O processo de integração irá descer as informações necessárias para que o PDV e pedido possa validar o processo de limite de crédito 

Dores e necessidades

Atualizar o saldo do limite de crédito na utilização

Negócio

Na utilização de um meio de pagamento que utilize limite de crédito, após a finalização da compra deve ser atualizado o limite de crédito do cliente 

Entrega de valor

O processo irá garantir que na utilização o saldo de limite de crédito será atualizado de acordo com o meio de pagamento que 

consuma o limite de crédito 


Dores e necessidades

cancelar uma venda atualizar o saldo de limite de crédito 

Negócio

Ao efetuar o cancelamento de uma venda com meio de pagamento que tenha consumido limite de crédito o valor do saldo deve ser atualizado de acordo com o valor da venda cancelada

Entrega de valor

O processo irá garantir que na utilização o saldo de limite de crédito será atualizado de acordo com o cancelamento de uma 

venda


Dores e necessidades

Permitir vender com mais de uma forma de pagamento e limite de crédito 

Negócio

ao efetuar uma venda com mais de um meio de pagamento onde apenas um controla limite de crédito o valor de atualização do saldo deve ocorrer referente apenas ao valor pago com o meio de pagamento que controla limite de crédito

Entrega de valor

O processo irá garantir que na utilização o saldo de limite de crédito será atualizado de acordo com o meio de pagamento que controla limite de crédito 

Dores e necessidades

Necessidade de valor excedente de liberação de limite de crédito

Negócio

Parametro no cadastro da loja com o percentual de valor excedente de limite de crédito para operação na venda, quando ultrapassar o valor do limite de crédito deve ser validado se existe percentual no cadastro da loja para validação

Entrega de valor

Permitir que uma venda possa ultrapassar o valor de limite de acordo com o percentual cadastrado na loja



3. Tabelas e campos novos - PDV Omni

3.1 Tabela: pagamento_forma

Nome do campoTipo do campoObrigatorio
utiliza_limite_creditobooleanopcional 


3.2 Tabela: loja

Nome do campoTipo do campoObrigatorio
limite_credito_forma_pagamentobooleanopcional 



4. Definição de contratos de API:


4.1 Contrato de consulta de limite de crédito 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


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.
detailedmessagestringMensagem 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
}


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:
        • 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
    • O atributo novo deve ser criado direto na data do payload, conforme exemplo abaixo:


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.
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ívelNãoDeve ser enviado sempre que houver retorno de true no atributo "success".
data.idRetaguardaLimiteCreditostringIdentificador do limite de crédito caso existaNão
data.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.
data.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.
data.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:

{
    "data": [
        {
            "idRetaguardaLimiteCredito": null,
            "saldoDisponivel": 1000.0,
            "saldoDetalhadoFormaPagamento": [
                {
                    "idRetaguardaPagamentoForma": "BL",
                    "valor": 500.0
                },
                {
                    "idRetaguardaPagamentoForma": "CH",
                    "valor": 500.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": 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

  • 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


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.

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

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 DPDVSUPER-2560 - Obtendo detalhes do item... STATUS 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




  • Sem rótulos