Fechar uma Recuperação de valores
Recebendo uma Recuperação de valores.
Quando você for a empresa da ponta recebedora de uma solicitação de recuperação de valores, receberá um webhook de evento: pix-infraction e nele conterá o campo fundsRecoveryId que é o ID da recuperação de valores que recebeu e indicando ser fluxo do MED 2.0. Como prazo são 7 dias corridos para realizar a análise e responder aceitando ou rejeitando essa solicitação mediante a uma fraude.
Assim que receber uma solicitação de recuperação de valores, deverá bloquear o saldo contestado cautelarmente da conta do usuário, para que esse saldo fique bloqueado enquanto a análise seja feita em até 7 dias. Caso constate que não se trata de uma fraude, deve debloquear o saldo, seja ele total ou parcial, caso contrário o saldo continua bloqueado e aguardando a solicitação de devolução enviada pela outra IF. Mais abaixo haverá detalhes de como responder uma análise de solicitação de recuperação de valores.
Observação: este fluxo inteiro (endpoints e webhooks) será o mesmo para as notificações do MED 1.0 (infractions) quanto do MED 2.0 (recuperação de valores).
Exemplo de webhook que será enviado
Entity: pix-infraction
Status ACKNOWLEDGED
{
"lastUpdateTimestamp": "0001-01-01T00:00:00",
"body": {
"infractionType": "REFUND_REQUEST",
"creationTime": "2026-03-03T02:19:39.545+00:00",
"reportDetails": "Notificamos que a Conta de destino pode estar associada a atividades fraudulentas. Por favor, confirme se há saldo disponível para que possamos proceder com a Solicitação de Devolução.",
"responseTime": "0001-01-01T00:00:00",
"contactCreator": {
"contactEmail": "[email protected]",
"contactPhone": "+55110000000"
},
"endToEndId": "E0856170120260302220479BDNRKR",
"reportedBy": "DEBITED_PARTICIPANT",
"infractionData": {
"infractingAccountData": {
"branch": 0
},
"debitedParticipant": "12345678",
"reportedBy": "DEBITED_PARTICIPANT",
"transactionDate": "0001-01-01T00:00:00",
"creditedParticipant": "87654321"
},
"transactionId": "E0856170120260302220479BDNRK",
"creditedParticipant": "87654321",
"situationType": "SCAM",
"fundsRecoveryId": "4464ad02-e0c0-4fb0-ad97-fca2b7841a83",
"id": "faa2c47e-b5e8-4764-89cf-7dd93bf88",
"debitedParticipant": "12345678",
"lastModified": "2026-03-03T02:19:56.94+00:00",
"status": "ACKNOWLEDGED"
},
"entity": "InfractionReport",
"transactionId": 202603020000831840,
"createTimestamp": "0001-01-01T00:00:00",
"status": "ACKNOWLEDGED"
}Rejeitando uma recuperação de valores como fraude
O próximo passo será responder a infração se será aceita ou recusada.
Caso a análise seja por rejeitar (DISAGREED) e entendendo que não se trata de uma fraude, deverá responder via API informando o id da infração que será recebido via webhook de evento pix-infraction.
Fechar/responder uma recuperação de valores
Post: https://sandbox.openfinance.celcoin.dev/pix-indirect/v1/infraction/{infratcionReportId}/close
curl --request POST \
--url https://sandbox.openfinance.celcoin.dev/pix-indirect/v1/infraction/infratcionReportId/close \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '
{
"analysisResult": "DISAGREED",
"analysisDetails": "Fraude não identificada",
"fraudType": "APPLICATION_FRAUD"
}
'Response de sucesso 200
{
"status": "CLOSED",
"creditedParticipant": "99999011",
"debitedParticipant": "13935893",
"infractionType": "APPLICATION_FRAUD",
"reportedBy": "DEBITED_PARTICIPANT",
"lastModified": "2023-05-22T14:02:00.426Z",
"creationTime": "2023-05-22T14:02:00.426Z",
"responseTime": "2023-05-22T14:02:00.426Z",
"reportDetails": "Transação feita através de QR Code falso em boleto",
"analysisResult": "DISAGREED",
"correlationId": "A20210825095209b98f156a05d47f579",
"analysisDetails": "Fraude não identificada",
"id": "91d65e98-97c0-4b0f-b577-73625da1f9fc",
"endToEndId": "E3030629420200808185300887639654"
}Após responder o fechamento da recuperação de valores, será enviado webhook informando que foi fechado.
Exemplo de webhook status CLOSED
entity: pix-infraction
{
"lastUpdateTimestamp": "0001-01-01T00:00:00",
"webhookId": "infraction-CLOSED-9eedec74-dcb5-42e3-b9b4-55536f589334",
"body": {
"analysisDetails": "Informamos que não há saldo disponível na conta, e o vínculo com o cliente foi encerrado.",
"infractionType": "REFUND_REQUEST",
"creationTime": "2026-03-02T12:57:36.99+00:00",
"reportDetails": "Encaminhamos notificacao de infracao por motivo de fraude da transacao contestada pelo cliente.",
"responseTime": "0001-01-01T00:00:00",
"analysisResult": "DISAGREED",
"contactCreator": {
"contactEmail": "[email protected]",
"contactPhone": "+5511000000"
},
"endToEndId": "E60746948202602091451C0572800000",
"reportedBy": "DEBITED_PARTICIPANT",
"infractionData": {
"infractingAccountData": {
"branch": 0
},
"debitedParticipant": "12345678",
"reportedBy": "DEBITED_PARTICIPANT",
"transactionDate": "0001-01-01T00:00:00",
"creditedParticipant": "87654321"
},
"transactionId": "E60746948202602091451C05728E",
"creditedParticipant": "87654321",
"situationType": "FRAUDULENT_ACCESS",
"fundsRecoveryId": "4464ad02-e0c0-4fb0-ad97-fca2b7841a83",
"id": "9eedec74-dcb5-42e3-b9b4-55536f589334",
"debitedParticipant": "12345678",
"lastModified": "2026-03-02T13:41:38.644+00:00",
"status": "CLOSED"
},
"entity": "InfractionReport",
"transactionId": 4986399242,
"createTimestamp": "0001-01-01T00:00:00",
"status": "CLOSED"
}Aceitando a recuperação de valores como fraude
Quando a análise de uma recuperação de valor for aceita como fraude, o fluxo continua o mesmo, sendo necessário responder via API com o analysisResult =AGREED.
Fechar/responder uma recuperação de valores
Post: https://sandbox.openfinance.celcoin.dev/pix-indirect/v1/infraction/{infratcionReportId}/close
curl --request POST \
--url https://sandbox.openfinance.celcoin.dev/pix-indirect/v1/infraction/infratcionReportId/close \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '
{
"analysisResult": "AGREED",
"analysisDetails": "Após analise, realizamos o bloqueio definitivo do cadastro porem não possui saldo para devolução",
"fraudType": "APPLICATION_FRAUD"
}
'Response de sucesso 200
{
"status": "OPEN",
"creditedParticipant": "99999011",
"debitedParticipant": "13935893",
"infractionType": "FRAUD",
"reportedBy": "DEBITED_PARTICIPANT",
"lastModified": "2023-05-22T14:02:00.426Z",
"creationTime": "2023-05-22T14:02:00.426Z",
"responseTime": "2023-05-22T14:02:00.426Z",
"reportDetails": "Transação feita através de QR Code falso em boleto",
"analysisResult": "AGREED",
"correlationId": "A20210825095209b98f156a05d47f579",
"analysisDetails": "Após analise, realizamos o bloqueio definitivo do cadastro porem não possui saldo para devolução",
"id": "91d65e98-97c0-4b0f-b577-73625da1f9fc",
"endToEndId": "E3030629420200808185300887639654"
}Após responder o fechamento da recuperação de valores, será enviado webhook informando que foi fechado.
Exemplo de webhook status CLOSED
entity: pix-infraction
{
"lastUpdateTimestamp": "0001-01-01T00:00:00",
"webhookId": "infraction-CLOSED-9eedec74-dcb5-42e3-b9b4-55536f589334",
"body": {
"analysisDetails": "Informamos que não há saldo disponível na conta, e o vínculo com o cliente foi encerrado.",
"infractionType": "REFUND_REQUEST",
"creationTime": "2026-03-02T12:57:36.99+00:00",
"reportDetails": "Encaminhamos notificacao de infracao por motivo de fraude da transacao contestada pelo cliente.",
"responseTime": "0001-01-01T00:00:00",
"analysisResult": "AGRRED",
"contactCreator": {
"contactEmail": "[email protected]",
"contactPhone": "+5511000000"
},
"endToEndId": "E60746948202602091451C0572800000",
"reportedBy": "DEBITED_PARTICIPANT",
"infractionData": {
"infractingAccountData": {
"branch": 0
},
"debitedParticipant": "12345678",
"reportedBy": "DEBITED_PARTICIPANT",
"transactionDate": "0001-01-01T00:00:00",
"creditedParticipant": "87654321"
},
"transactionId": "E60746948202602091451C05728E",
"creditedParticipant": "87654321",
"situationType": "FRAUDULENT_ACCESS",
"fundsRecoveryId": "4464ad02-e0c0-4fb0-ad97-fca2b7841a83",
"id": "9eedec74-dcb5-42e3-b9b4-55536f589334",
"debitedParticipant": "12345678",
"lastModified": "2026-03-02T13:41:38.644+00:00",
"status": "CLOSED"
},
"entity": "InfractionReport",
"transactionId": 4986399242,
"createTimestamp": "0001-01-01T00:00:00",
"status": "CLOSED"
}Para casos onde a infração ou recuperação de valores foi aceita, seguir a documentação de "Fechar devolução em recuperação de valores".
Infração cancelada pela IF contestante.
Quando a IF que abriu a solicitação de recuperação de valores cancelar essa solicitação, será enviado um webhook informando esse cancelamento. Nesse cenário não é necessário tomar nenhuma ação, o próprio cancelamento encerrará o fluxo.
Exemplo de webhook CANCELLED
entity: pix-infraction
{
"lastUpdateTimestamp": "0001-01-01T00:00:00",
"webhookId": "infraction-CANCELLED-631302f0-9c17-4ba8-865a-a74cae6d49cf",
"body": {
"infractionType": "REFUND_REQUEST",
"creationTime": "2026-02-27T23:09:40.332+00:00",
"reportDetails": "Acreditei que estava fazendo um investimento",
"responseTime": "0001-01-01T00:00:00",
"contactCreator": {
"contactEmail": "[email protected]",
"contactPhone": "+5511000000"
},
"endToEndId": "E60701190202602272302DY59HS",
"reportedBy": "DEBITED_PARTICIPANT",
"infractionData": {
"infractingAccountData": {
"branch": 0
},
"debitedParticipant": "12345678",
"reportedBy": "DEBITED_PARTICIPANT",
"transactionDate": "0001-01-01T00:00:00",
"creditedParticipant": "87654321"
},
"transactionId": "E60701190202602272302DY59HSIW8TU",
"creditedParticipant": "87654321",
"situationType": "SCAM",
"id": "631302f0-9c17-4ba8-865a-a74cae6d49cf",
"fundsRecoveryId": "4464ad02-e0c0-4fb0-ad97-fca2b7841a83",
"debitedParticipant": "12345678",
"lastModified": "2026-03-02T12:10:00.839+00:00",
"status": "CANCELLED"
},
"entity": "InfractionReport",
"transactionId": 2026022700008691,
"createTimestamp": "0001-01-01T00:00:00",
"status": "CANCELLED"
}Tabela de apoio para fechar/responder recuperação de valores
Campo | Descrição | Tipo do Campo |
|---|---|---|
infractionReportId | ID da Infração a ser consultada | string |
analysisResult | Esse campo deve ser preenchido como:
| string |
analysisDetails | Detalhes da análise da infração, que possam orientar o pagador dos próximos passos (exemplo: O valor da transação será estornado em até 5 dias úteis) | string |
fraudType | Tipo da fraude: | string |
Updated about 5 hours ago