Closed llatsch closed 3 years ago
A cobrança não pode ser paga segunda-feira, certo?
Correto. Validade após vencimento é sempre utilizando dias corridos.
E no caso da data de vencimento cair num sábado e o prazo de validade for de 1 dia? Como proceder nesse caso, já que a validade seria até domingo, mas é possível pagar na segunda por causa da data de vencimento?
@latrevisani, boa noite.
E no caso da data de vencimento cair num sábado e o prazo de validade for de 1 dia? Como proceder nesse caso, já que a validade seria até domingo, mas é possível pagar na segunda por causa da data de vencimento?
Procederia não atribuindo uma validadeAposVencimento
tão curta.
@ninrod , eu entendo que há alternativas para evitar tais problemas. Mas como é o cliente que manda esses atributos, isso pode acontecer. Por exemplo, a situação abaixo: Um vendedor parcela vendas em 12 parcelas mensais a serem pagas no dia 1 de cada mês. Ele não define juros nem multa, pois, caso a parcela vença, será preciso o devedor entrar em contato para renegociar o restante. Com isso a validadeAposVencimento será zero, pois a API permite esse valor. É a prática do vendedor. O pagador paga religiosamente todo dia 1, mas em um deles, que caiu num sábado, ele esqueceu e foi pagar na segunda. Nesse caso, o PSP não aceitaria receber o pagamento pq está vencido tanto a data quanto a validadeAposVencimento. Porem, a legislação permitiria que ele pagasse na segunda sem multa. Como proceder nesse caso?
@latrevisani , eu acho que o @ninrod se confundiu na última resposta.
Se o vencimento cair no sábado, seja o validadeAposVencimento 0 ou 1, o QR Code dinâmico relativo a essa cobrança deve ser pagável na segunda-feira de qualquer forma, por força de lei (Art. 1º Lei 7.089/1983), que obriga que o título com vencimento em dia não útil seja acatado no primeiro dia útil subsequente (sem multa ou juros, inclusive).
@latrevisani , eu acho que o @ninrod se confundiu na última resposta.
Não, é isso mesmo que eu disse. Ele não fica pagável, mesmo. A única solução que entendo que haveria para não cairmos nesse corner case seria forçar um validadeApósVencimento
mínimo. 3 dias, por exemplo, já evitaria esse corner case.
O pagador paga religiosamente todo dia 1, mas em um deles, que caiu num sábado, ele esqueceu e foi pagar na segunda. Nesse caso, o PSP não aceitaria receber o pagamento pq está vencido tanto a data quanto a validadeAposVencimento. Porem, a legislação permitiria que ele pagasse na segunda sem multa. Como proceder nesse caso?
Concordo. Vou falar com o DECEM para ver se podemos incluir esse valor mínimo na 2.2.1.
@latrevisani , eu acho que o @ninrod se confundiu na última resposta.
Não, é isso mesmo que eu disse. Ele não fica pagável, mesmo. A única solução que entendo que haveria para não cairmos nesse corner case seria forçar um
validadeApósVencimento
mínimo. 3 dias, por exemplo, já evitaria esse corner case.O pagador paga religiosamente todo dia 1, mas em um deles, que caiu num sábado, ele esqueceu e foi pagar na segunda. Nesse caso, o PSP não aceitaria receber o pagamento pq está vencido tanto a data quanto a validadeAposVencimento. Porem, a legislação permitiria que ele pagasse na segunda sem multa. Como proceder nesse caso?
Concordo. Vou falar com o DECEM para ver se podemos incluir esse valor mínimo na 2.2.1.
Não evitaria se o vencimento fosse no sábado que antecede o carnaval (já que a segunda-feira subsequente é feriado bancário, sendo o primeiro dia útil apenas a quarta-feira) ou uma quinta-feira feriado de ano novo (onde normalmente seria decretado feriado bancário na sexta-feira, sendo segunda-feira o primeiro dia útil subsequente), casos onde seriam necessários 4 dias.
No meu ponto de vista, a solução é simples:
dataLimite = [ max ( (vencimento + validadeAposVencimento), vencimentoEfetivo + validadeAposVencimento ) ]
onde "vencimentoEfetivo" = o próprio vencimento quando dia útil ou o primeiro dia útil subsequente.
Não evitaria se o vencimento fosse no sábado que antecede o carnaval (já que a segunda-feira subsequente é feriado bancário, sendo o primeiro dia útil apenas a quarta-feira) ou uma quinta-feira feriado de ano novo (onde normalmente seria decretado feriado bancário na sexta-feira, sendo segunda-feira o primeiro dia útil subsequente), casos onde seriam necessários 4 dias
Isso mesmo, talvez 5 dias de seja um bom limite mínimo.
Bom mesmo seria corrigir esse gap e permitir o valor zero para o validadeAposVencimento com a aplicação da fórmula sugerida acima (que eu entendo ser como funciona nos boletos).
A gente usa na nossa emissão de boletos 5 dias, mas para compensar tanto feriados quanto a recepção via agentes lotéricos.
Bom mesmo seria corrigir esse gap e permitir o valor zero para o validadeAposVencimento com a aplicação da fórmula sugerida acima (que eu entendo ser como funciona nos boletos).
Usaremos essa semântica. ValidadeAposVencimento
aplica-se sempre à data de vencimento ajustada por feriados e finais de semana.
Exemplo:
dataDeVencimento: 2020-12-25 (sexta-feira)
ValidadeAposVencimento: 0
consequência: QR pode ser pago até dia 2020-12-28 (segunda-feira)
Bom mesmo seria corrigir esse gap e permitir o valor zero para o validadeAposVencimento com a aplicação da fórmula sugerida acima (que eu entendo ser como funciona nos boletos).
Usaremos essa semântica.
ValidadeAposVencimento
aplica-se sempre à data de vencimento ajustada por feriados e finais de semana.Exemplo:
dataDeVencimento: 2020-12-25 (sexta-feira) ValidadeAposVencimento: 0 consequência: QR pode ser pago até dia 2020-12-28 (segunda-feira)
Certo. Então, nesse caso, se validadeAposVencimento for 1 e o vencimento 2020-12-25 (sexta-feira, feriado) será pagável até terça-feira, 2020-12-29.
Há alguma razão em particular para não se dar a possibilidade de validadeAposVencimento ser calculada a partir do vencimento original e o fato de o vencimento ser um dia não útil permitir o pagamento no primeiro dia útil subsequente como caráter de exceção e independente do valor de validadeAposVencimento?
Pergunto isso pois seria justamente uma forma de garantir que o pagamento será recebido dentro do intervalo "data de vencimento + X dias", tal qual o nome do campo se propõe, enquanto a forma sugerida acaba dando margem para um pagamento acatado 4 dias depois do vencimento (e sendo o segundo dia útil subsequente, não o primeiro) enquanto o valor do campo é 1.
A semântica, no meu ponto de vista, ficaria até bastante simples:
"O campo validadeAposVencimento
aplica-se sobre o vencimento original do boleto e determina o número de dias corridos, úteis ou não, pelos quais a cobrança ainda poderá ser paga, após vencida".
Não há sequer necessidade de informar o caráter de exceção, pois ele é dado por força de lei e não pelo regulamento do próprio Pix (e na eventual mudança da lei, não seria necessário atualizar documentação nenhuma e o caráter de exceção deixaria de existir). Ou, se preferirem forçar a padronização (por segurança), inclui-se a exceção criada pela lei do dia útil na própria documentação:
"O campo validadeAposVencimento
aplica-se sobre o vencimento original do boleto e determina o número de dias corridos, úteis ou não, pelos quais a cobrança ainda poderá ser paga, após vencida. Este valor não se sobrepõe à possibilidade de pagamento em data posterior ao vencimento original por força de lei como, por exemplo, um vencimento determinado para um dia não útil, que deverá ser acatado no primeiro dia útil subsequente mesmo que exceda o número de dias definido neste campo".
Certo. Então, nesse caso, se validadeAposVencimento for 1 e o vencimento 2020-12-25 (sexta-feira, feriado) será pagável até terça-feira, 2020-12-29.
Exatamente.
Há alguma razão em particular para não se dar a possibilidade de validadeAposVencimento ser calculada a partir do vencimento original e o fato de o vencimento ser um dia não útil permitir o pagamento no primeiro dia útil subsequente como caráter de exceção e independente do valor de validadeAposVencimento?
Pergunto isso pois seria justamente uma forma de garantir que o pagamento será recebido dentro do intervalo "data de vencimento + X dias", tal qual o nome do campo se propõe, enquanto a forma sugerida acaba dando margem para um pagamento acatado 4 dias depois do vencimento (e sendo o segundo dia útil subsequente, não o primeiro) enquanto o valor do campo é 1.
A semântica, no meu ponto de vista, ficaria até bastante simples:
"O campo validadeAposVencimento aplica-se sobre o vencimento original do boleto e determina o número de dias corridos, úteis ou não, pelos quais a cobrança ainda poderá ser paga, após vencida".
Não há sequer necessidade de informar o caráter de exceção, pois ele é dado por força de lei e não pelo regulamento do próprio Pix (e na eventual mudança da lei, não seria necessário atualizar documentação nenhuma e o caráter de exceção deixaria de existir). Ou, se preferirem forçar a padronização (por segurança), inclui-se a exceção criada pela lei do dia útil na própria documentação:
"O campo validadeAposVencimento aplica-se sobre o vencimento original do boleto e determina o número de dias corridos, úteis ou não, pelos quais a cobrança ainda poderá ser paga, após vencida. Este valor não se sobrepõe à possibilidade de pagamento em data posterior ao vencimento original por força de lei como, por exemplo, um vencimento determinado para um dia não útil, que deverá ser acatado no primeiro dia útil subsequente mesmo que exceda o número de dias definido neste campo".
@renatofrota , não entendi se há alguma diferença entre o que eu e você estamos falando. Entendi que o efeito é o mesmo. Melhor explicar com exemplos.
Estamos usando exatamente a mesma semântica da fórmula dataLimite = [ max ( (vencimento + validadeAposVencimento), vencimentoEfetivo + validadeAposVencimento ) ]
. Só não vamos explicar em "modo fórmula".
@ninrod
Situação:
Cobrança com vencimento: 2020-12-25 (sexta-feira, feriado).
A semântica que você propôs:
"validadeAposVencimento
aplica-se sempre à data de vencimento ajustada por feriados e finais de semana."
Resultados:
validadeAposVencimento
= 0
Pagamento na sexta-feira: aceito Pagamento no sábado: aceito Pagamento no domingo: aceito Pagamento na segunda-feira: aceito Pagamento na terça-feira: recusado
validadeAposVencimento
= 1
Pagamento na sexta-feira: aceito Pagamento no sábado: aceito Pagamento no domingo: aceito Pagamento na segunda-feira: aceito Pagamento na terça-feira: aceito <- esse é meu questionamento...
São 4 dias corridos e DOIS dias úteis após vencimento apesar do valor estar definido como 1
. Muito fora da intenção. O cliente já tem o direito a pagar na segunda-feira, 3 dias após o vencimento, por que essa "tolerância" de 1 dia para pagamento após vencimento em situações mais corriqueiras deve interferir aqui e abrir espaço para um pagamento QUATRO DIAS após vencimento?
E essa semântica não atende a fórmula dataLimite = [ max ( (vencimento + validadeAposVencimento), vencimentoEfetivo + validadeAposVencimento ) ]
A semântica que eu proponho (e que atende à formula):
"O campo validadeAposVencimento
aplica-se sobre o vencimento original do boleto e determina o número de dias corridos, úteis ou não, pelos quais a cobrança ainda poderá ser paga, após vencida". (opcionalmente com o adendo: "Este valor não se sobrepõe à possibilidade de pagamento em data posterior ao vencimento original por força de lei como, por exemplo, um vencimento determinado para um dia não útil, que deverá ser acatado no primeiro dia útil subsequente mesmo que exceda o número de dias definido neste campo").
Resultados:
validadeAposVencimento
= 0
Pagamento na sexta-feira: aceito Pagamento no sábado: aceito Pagamento no domingo: aceito Pagamento na segunda-feira: aceito Pagamento na terça-feira: recusado
validadeAposVencimento
= 1
Pagamento na sexta-feira: aceito Pagamento no sábado: aceito Pagamento no domingo: aceito Pagamento na segunda-feira: aceito Pagamento na terça-feira: recusado <- continua recusado
Aqui, a terça-feira excede sexta-feira + 1 = sábado
e, ao mesmo tempo, excede a segunda-feira, que é a data limite determinada por força de lei, devido à sexta-feira ser feriado. Assim, o campo validadeAposVencimento
se torna muito mais útil. Do contrário (sua semântica proposta - e que precisa de outra fórmula), o efeito prático do campo é tão inesperado (sem querer ofender, quase inútil) que praticamente força o uso de valor para validadeAposVencimento
em 0
e um ajuste manual muito mais criterioso e trabalhoso para o EC na hora de definir as datas de vencimento mês a mês para serviços com recorrência, carnês, etc.
Ok, @renatofrota, ficaram claras as diferenças.
Aqui, a terça-feira excede sexta-feira + 1 = sábado e, ao mesmo tempo, excede a segunda-feira, que é a data limite determinada por força de lei, devido à sexta-feira ser feriado. Assim, o campo validadeAposVencimento se torna muito mais útil. Do contrário (sua semântica proposta - e que precisa de outra fórmula), o efeito prático do campo é tão inesperado (sem querer ofender, quase inútil) que praticamente força o uso de valor para validadeAposVencimento em 0 e um ajuste manual muito mais criterioso e trabalhoso para o EC na hora de definir as datas de vencimento mês a mês para serviços com recorrência, carnês, etc.
Particularmente acho os dois modelos válidos e não tenho uma preferência, mas agradeço por indicar essa nuance, ajuda a tomar uma decisão mais informada. De qualquer maneira, a decisão caberá ao DECEM. Apresentarei os dois modelos, obrigado.
edit: devemos utilizar o segundo modelo:
Caso: Cobrança com vencimento: 2020-12-25 (sexta-feira, feriado).
Resultados:
validadeAposVencimento = 0
Pagamento na sexta-feira: aceito
Pagamento no sábado: aceito
Pagamento no domingo: aceito
Pagamento na segunda-feira: aceito
Pagamento na terça-feira: recusado
validadeAposVencimento = 1
Pagamento na sexta-feira: aceito
Pagamento no sábado: aceito
Pagamento no domingo: aceito
Pagamento na segunda-feira: aceito
Pagamento na terça-feira: recusado <- continua recusado
@ninrod
Obrigado pela atenção. Só uma correção a respeito do que eu falei antes. Eu usei "max" onde deveria ser "min" na fórmula. Corrigindo:
dataLimite = [ min ( (vencimento + validadeAposVencimento), vencimentoEfetivo + validadeAposVencimento ) ]
De qualquer forma, talvez haja uma fórmula mais simples de explicar. Mas fico feliz que minha sugestão tenha sido aceita. 😃
Obrigado pelas contribuições.
Acho que vou complementar a explicação com os exemplos mesmo. Fica mais didático.
Prezados,
já está no master.
Caso um pagamento tenha a data de validade finalizando em um sábado, não pode ser pago na segunda? Por exemplo:
Vencimento: 01/02 Validade após vencimento: 5 --> 06/02 (sábado)
A cobrança não pode ser paga segunda-feira, certo?