Receber uma recuperação de valores
Recebimento de Solicitação de Recuperação de Valores
Quando a Celcoin atuar como instituição recebedora de uma solicitação de recuperação de valores no contexto do MED 2.0, isso significa que outra Instituição Financeira participante do arranjo Pix identificou uma possível fraude em transação cujo recebedor final dos recursos é um cliente da base Celcoin.
A partir do recebimento de uma solicitação de recuperação de valores, recebe-se um webhook de evento: pix-infraction e nele conterá o campo fundsRecoveryId que é o ID da recuperação de valores que recebeu, indicando ser fluxo do MED 2.0. O prazo regulatório é de até 7 dias corridos para realizar a análise da infração e responder à instituição solicitante, aceitando ou rejeitando a contestação, conforme resultado da apuração de fraude.
Durante esse período de análise, a Celcoin poderá realizar o bloqueio do saldo contestado na conta do cliente recebedor, de forma total ou parcial, conforme a disponibilidade de saldo e o valor bloqueado permanecerá indisponível para movimentação até a conclusão da análise.
Ao término da apuração, caso a fraude não seja confirmada, será necessário responder a solicitação de recuperação de valores rejeitando (DISAGREED) e os valores previamente bloqueados serão desbloqueados.
Agora se fraude for confirmada, os valores permanecerão bloqueados até o recebimento da solicitação formal de devolução enviada pela instituição reclamante.
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).
Exemplos de webhook que será enviado:
Entity: pix-infraction
Status ACKNOWLEDGED
{
"lastUpdateTimestamp": "2026-04-17T03:54:03.187",
"pactualId": "01000000-7058-cb1d-35af-08de9c4e1bac",
"clientRequestId": "",
"body": {
"infractionType": "REFUND_REQUEST",
"creationTime": "2026-04-17T09:03:22.697",
"reportDetails": "Golpe/Estelionato",
"responseTime": "2026-04-17T03:54:03.187",
"endToEndId": "E22896431202604170653yPMGaQXkSxK",
"reportedBy": "DEBITED_PARTICIPANT",
"infractionData": {
"taxIdNumber": "30247128000115",
"infractingAccountData": {
"accountNumber": "30053611718",
"branch": 1
},
"debitedParticipant": "22896431",
"reportedBy": "DEBITED_PARTICIPANT",
"transactionDate": "2026-04-17T03:54:03.187",
"creditedParticipant": "13935893",
"key": "eccc43f3-5210-4634-af39-86cd0e3b3528"
},
"transactionId": "E22896431202604170653yPMGaQXkSxK",
"creditedParticipant": "13935893",
"transactionType": "TRANSFER",
"id": "3e69f867-96e3-4c6a-b500-37fe930c35e3",
"debitedParticipant": "22896431",
"lastModified": "2026-04-17T09:03:32.617",
"status": "ACKNOWLEDGED"
},
"entity": "pix-infraction",
"transactionId": 202604170000113120,
"createTimestamp": "2026-04-17T03:54:03.187",
"status": "ACKNOWLEDGED"
}Como fechar uma Recuperação de valores
Fechar solicitação de recuperação de valores: [API Reference]
Campos do Request
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: APPLICATION_FRAUD, MULE_ACCOUNT, SCAMMER_ACCOUNT,
OTHER e UNKNOWN. | string |
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.
Exemplo de request
Post: https://sandbox.openfinance.celcoin.dev/baas/v2/infraction/{infractionReportId}/close
curl --request POST \
--url https://sandbox.openfinance.celcoin.dev/baas/v2/infraction/infratcionReportId/close \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '
{
"analysisResult": "DISAGREED",
"analysisDetails": "Fraude não identificada",
"fraudType": "APPLICATION_FRAUD"
}
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 que será enviado caso ocorra a Rejeição da recuperação de valores:
Entity: pix-infraction
Status CLOSED
"analysisResult": DISAGREED
{
"lastUpdateTimestamp": "0001-01-01T00:00:00",
"webhookId": "infraction-CLOSED-96f2a8e0-8ee4-40f1-806d-49a7d818afb1",
"body": {
"analysisDetails": "Em contato com o cliente, não foi identificado fraude.",
"infractionType": "REFUND_REQUEST",
"creationTime": "2026-04-17T00:31:25.908+00:00",
"reportDetails": "Usuário pagador contestou a transação via fluxo formal previsto pelo MED. Favor avaliar se há indícios de fraude e, caso confirmado, efetuar a devolução do valor.",
"responseTime": "0001-01-01T00:00:00",
"analysisResult": "DISAGREED",
"contactCreator": {
"contactEmail": "[email protected]",
"contactPhone": "+5511999935786"
},
"endToEndId": "E1057352120260416191181XDS9fTfUf",
"reportedBy": "DEBITED_PARTICIPANT",
"infractionData": {
"infractingAccountData": {
"branch": 0
},
"debitedParticipant": "10573521",
"reportedBy": "DEBITED_PARTICIPANT",
"transactionDate": "0001-01-01T00:00:00",
"creditedParticipant": "22181404"
},
"transactionId": "E1057352120260416191181XDS9fTfUf",
"creditedParticipant": "22181404",
"situationType": "ACCOUNT_TAKEOVER",
"id": "96f2a8e0-8ee4-40f1-806d-49a7d818afb1",
"debitedParticipant": "10573521",
"lastModified": "2026-04-17T12:04:46.684+00:00",
"status": "CLOSED"
},
"entity": "pix-infraction",
"transactionId": 202604160000741630,
"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.
Exemplo de request
Post: https://sandbox.openfinance.celcoin.dev/baas/v2/infraction/{infractionReportId}/close
curl --request POST \
--url https://sandbox.openfinance.celcoin.dev/baas/v2/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"
}
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"
}Exemplo de webhook que será enviado caso a recuperação de valores seja aceita:
Entity: pix-infraction
Status CLOSED
"analysisResult": AGREED
{
"lastUpdateTimestamp": "0001-01-01T00:00:00",
"webhookId": "infraction-CLOSED-96f2a8e0-8ee4-40f1-806d-49a7d818afb1",
"body": {
"analysisDetails": "Em contato com o cliente, não foi identificado fraude.",
"infractionType": "REFUND_REQUEST",
"creationTime": "2026-04-17T00:31:25.908+00:00",
"reportDetails": "Usuário pagador contestou a transação via fluxo formal previsto pelo MED. Favor avaliar se há indícios de fraude e, caso confirmado, efetuar a devolução do valor.",
"responseTime": "0001-01-01T00:00:00",
"analysisResult": "AGREED",
"contactCreator": {
"contactEmail": "[email protected]",
"contactPhone": "+5511999935786"
},
"endToEndId": "E1057352120260416191181XDS9fTfUf",
"reportedBy": "DEBITED_PARTICIPANT",
"infractionData": {
"infractingAccountData": {
"branch": 0
},
"debitedParticipant": "10573521",
"reportedBy": "DEBITED_PARTICIPANT",
"transactionDate": "0001-01-01T00:00:00",
"creditedParticipant": "22181404"
},
"transactionId": "E1057352120260416191181XDS9fTfUf",
"creditedParticipant": "22181404",
"situationType": "ACCOUNT_TAKEOVER",
"id": "96f2a8e0-8ee4-40f1-806d-49a7d818afb1",
"debitedParticipant": "10573521",
"lastModified": "2026-04-17T12:04:46.684+00:00",
"status": "CLOSED"
},
"entity": "pix-infraction",
"transactionId": 202604160000741630,
"createTimestamp": "0001-01-01T00:00:00",
"status": "CLOSED"
}Infração cancelada pela IF contestante.
Existe também a situação que a IF que abriu a solicitação de recuperação de valores cancela essa solicitação, neste cenário também será enviado um webhook informando esse cancelamento. Importante mencionar, que após esse cancelamento nenhuma outra ação será tomada, o próprio cancelamento encerrará o fluxo.
Exemplo de webhook que será enviado caso ocorra o Cancelamento da recuperação de valores:
Entity: pix-infraction
Status CANCELLED
{
"lastUpdateTimestamp": "2026-04-16T16:44:24.867",
"pactualId": "01000000-534d-774a-0353-08de9bf08f1e",
"clientRequestId": "",
"body": {
"infractionType": "REFUND_REQUEST",
"creationTime": "2026-04-16T17:16:20.637",
"reportDetails": "fizeram um pix sem meu conhecimento preciso do estorno do valor",
"responseTime": "2026-04-16T16:44:24.867",
"endToEndId": "E20855875202604161943PGGLW8G9TKD",
"reportedBy": "DEBITED_PARTICIPANT",
"infractionData": {
"taxIdNumber": "93763425187",
"infractingAccountData": {
"accountNumber": "481163665",
"branch": 1
},
"debitedParticipant": "20855875",
"reportedBy": "DEBITED_PARTICIPANT",
"transactionDate": "2026-04-16T16:44:24.867",
"creditedParticipant": "13935893",
"key": "06c224da-23a0-40ea-91dc-78d45c3c824a"
},
"transactionId": "E20855875202604161943PGGLW8G9TKD",
"creditedParticipant": "13935893",
"transactionType": "TRANSFER",
"id": "7df553a4-47ef-46f5-88d4-f70a29373ef7",
"debitedParticipant": "20855875",
"lastModified": "2026-04-17T08:16:55.41",
"status": "CANCELLED"
},
"entity": "pix-infraction ",
"transactionId": 202604160000781380,
"createTimestamp": "2026-04-16T16:44:24.867",
"status": "CANCELLED"
}Updated about 3 hours ago