Definir o universo antes da soma
O lote fictício contém A=100, B=200, C=300 e D=400 euros. A e B têm créditos observados; C foi rejeitada e D tem apenas submissão. Depois chega uma devolução debitada de A e um pedido de reembolso de B. O líquido observado é 200 euros: 100+200−100. O pedido pendente não é ainda débito. Esta projeção didática olha para observações do credor, não implementa contabilidade de partidas dobradas nem valida um extrato bancário. Manter cada identidade no resultado permite ver que um saldo correto pode coexistir com D ainda por esclarecer.
Preservar movimentos e estados
Apagar o crédito quando chega um pedido de reembolso perde a sequência necessária à explicação. O modelo conserva crédito, débito e estado separadamente. REFUND_REQUEST deixa B em REFUND_PENDING com débito zero. Só REFUND_DEBIT acrescenta o movimento correspondente na fixture. RETURN_DEBIT conserva o crédito original de A e regista o débito posterior. Os nomes são locais da DR, não códigos de mensagens ISO 20022. O laboratório admite apenas um débito integral após crédito. Processos parciais, taxas, juros, calendários, janelas legais e outros encadeamentos exigem desenho adicional; não inferir que todos os casos reais cabem nesta máquina de estados.
Deduplicar em duas dimensões
Receber E1 duas vezes com conteúdo igual conserva uma observação. Receber E1 com montante diferente gera conflito. Contudo, o mesmo efeito também pode chegar sob E7: uma chave de evento nova não prova uma cobrança nova. O modelo recusa um segundo crédito para B, mesmo com envelope distinto. Comparar identidade, montante, moeda e estado por cobrança evita que diferenças se compensem num total global. Os valores usam cêntimos inteiros nas fixtures EUR; a documentação Decimal ajuda a compreender por que não se deve depender de aproximações binárias para igualdade monetária. O código não faz câmbio, arredondamentos contratuais ou validação genérica de moedas.
Tratar lacunas sem inventar resultados
Se uma devolução chegar antes da evidência do crédito original, o candidato local é recusado por falta de contexto. Isto não prova que a devolução seja inválida no sistema de origem. Investigar a sequência e obter a observação em falta, sem gerar um crédito artificial. Do mesmo modo, um timeout não autoriza reenviar D com nova referência. O resultado pode ter ocorrido sem ter sido observado localmente. A função prepara um candidato separado e não devolve resultado completo perante erro. Esta preservação em memória é útil para aprender, mas não demonstra transações distribuídas, armazenamento durável ou execução financeira única.
Encaminhar a exceção para a camada certa
Uma causa mal atribuída pode prolongar o incidente. ED05 orienta a investigação para falha de liquidação; não é prova de saldo insuficiente na conta do devedor. MS03 não deve ser transformado numa causa específica só para simplificar gráficos. O tipo de R-transaction, o momento, o participante e o código devem acompanhar o caso. A orientação consultada também liga, por regra, rejeições, devoluções e reembolsos ao CSM original, salvo acordo entre participantes. O PM deve confirmar o percurso operacional e os responsáveis antes do ensaio. O laboratório não implementa encaminhamento CSM nem reproduz todas as combinações permitidas.
Preparar a recuperação e a comunicação
Na oficina de 45 minutos, calcular o líquido, identificar D como pendente, repetir um evento e introduzir uma identidade em conflito. Depois escrever em inglês uma nota com âmbito recuperado, itens por esclarecer, responsável, próxima atualização e evidência esperada. O sponsor pode discutir um fecho parcial explícito; não deve receber uma declaração de recuperação integral baseada apenas no saldo ou no health check. Guardar o relatório das 40 verificações e as limitações. Um participante pode repetir o laboratório e explicar os resultados. Se a prática for individual, registar autoavaliação, sem alegar revisão independente ou aceitação operacional de um banco.
DR original workshop / Oficina original DR: 45 minutes
Synthetic collection observations only; no actual accounts or payment execution.
Apenas observações sintéticas de cobranças; sem contas reais ou execução financeira.
0-10 min: Predict / Prever
A=100 EUR settled then returned; B=200 EUR settled then refund requested.
A=100 EUR com crédito e devolução; B=200 EUR com crédito e pedido de reembolso.
C=300 EUR rejected; D=400 EUR submitted with no financial result observed.
C=300 EUR rejeitada; D=400 EUR enviada sem resultado financeiro observado.
Expected net: 100+200-100=200 EUR. B pending refund; D pending outcome.
Líquido esperado: 100+200-100=200 EUR. B aguarda reembolso; D aguarda resultado.
10-20 min: Inject faults / Introduzir falhas
Replay E1 unchanged: no extra effect. Change its amount: identity conflict.
Repetir E1 sem alterações: sem efeito extra. Alterar montante: conflito de identidade.
Send a second B settlement under a new ID: duplicate economic effect.
Enviar segundo crédito de B com novo ID: efeito económico duplicado.
Return before original credit evidence: investigate missing context.
Devolução antes da evidência de crédito: investigar contexto em falta.
20-35 min: English recovery note / Nota de recuperação em inglês
Observed: the local batch projection reconciles to 200 EUR.
Open items: B has no refund debit observed; D has no financial outcome observed.
Action: nominate reconciliation owners and request evidence from authorized systems.
Next update: agree a specific time, impact and escalation trigger.
Boundary: synthetic observations; no claim of actual settlement or failover acceptance.
Limite: observações sintéticas; sem alegar liquidação ou aceitação de failover real.
35-45 min: Handover / Passagem à operação
Another participant reruns the model and explains each unknown and duplicate check.
Outro participante repete o modelo e explica os desconhecidos e controlos de duplicação.
Deliver code hash, input set, predictions, actual results and unresolved dependencies.
Entregar hash, entradas, previsões, resultados e dependências não resolvidas.
Solo execution records self-review, not independent acceptance.
Execução individual regista autoavaliação, não aceitação independente.
Caso: todos os montantes agregados coincidem, mas D só tem submissão e B aguarda o débito do reembolso. O relatório conserva ambas as pendências e os movimentos já observados.
Armadilhas comuns
Pedido como movimento; ID técnico novo como obrigação nova; soma correta como fecho integral; reenviar após timeout; rejeição local como prova de impossibilidade externa.
Tópicos relacionados: Mandatos, Core e B2B · Dados e verificação do beneficiário · Alterações e prontidão operacional
A recuperação precisa de identidades, movimentos e pendências reconciliados; os totais ajudam a controlar, mas não substituem a explicação de cada resultado.
Referência: Guidance on reason codes for SDD R-transactions · DR Payments and SEPA professional assessment2026.10