As rotas de callback de cash-in e cash-out são exclusivas do adaptador. Nesta release, o provedor simulado fornecido é a forma compatível de exercê-las. Uma aplicação cliente não deve enviar um callback nem declarar um resultado de liquidação do provedor.
Enviar um cash-out em duas etapas
Um cash-out é intencionalmente dividido entre iniciação e processamento.- Chame Iniciar transferência com um novo valor de
X-Idempotency. O plugin valida a requisição e cria uma iniciação de transferência. - Chame Processar transferência para essa iniciação. O plugin executa o débito necessário no Midaz e envia o trabalho ao provedor simulado.
- Leia a transferência com Obter transferência. A aceitação do processamento não é um resultado final de pagamento.
- Deixe o provedor simulado entregar o callback terminal. Leia novamente até a transferência ser concluída, rejeitada ou chegar a outro estado terminal conforme o contrato da resposta.
Receber um cash-in pelo limite do adaptador
O adaptador recebe o evento do lado externo, chama os callbacks internos de aprovação e liquidação do plugin, e o plugin valida e credita o destino por meio do Midaz. Sua aplicação observa esse fluxo pelas leituras públicas da transferência; ela não chama os callbacks de aprovação ou liquidação. Um cash-in que não pode ser aprovado ou liquidado não é uma decisão de retry do lado do cliente. Inspecione o estado público da operação e as evidências do teste com mock antes de tomar outra ação.Criar e observar uma devolução
Use Criar devolução para uma transferência elegível e leia-a por meio de Obter devolução. Uma devolução segue seu próprio ciclo de vida assíncrono. Não a marque como concluída até que o plugin registre o resultado terminal do provedor e o efeito correspondente no Midaz.Usar o Block Balancer do MED 2.0
O Block Balancer retém fundos de uma transação contestada antes de uma decisão de devolução. Esse é um fluxo operacional controlado, não um atalho para transferências comuns.- Crie uma retenção para a transação contestada. O plugin coloca uma retenção pendente do Midaz do saldo disponível na conta de bloqueio configurada. Um replay do mesmo
request_refretorna a retenção existente. - Se o caso terminar antes da liquidação, libere uma retenção
PENDING. Uma retenção que já está em liquidação não pode ser liberada. - Inicie a liquidação da Fase 1 para uma retenção ou um grupo elegível. A retenção se torna
SETTLING; o ramo retorna a retenção pendente e envia uma devolução ou confirma a retenção, trata qualquer excedente e envia o pagamento necessário. - Conclua a Fase 2 somente a partir do resultado observado da operação vinculada. Um sucesso torna a retenção
SETTLED; uma falha a compensa paraPENDING. - Use o fechamento manual, a devolução de excedente e as funções de auditoria somente pelos controles operacionais autorizados. Elas não são endpoints normais da aplicação.

