O conjunto de endpoints a seguir é responsável pela gestão de Notificação de infração
Criar notificação de infração
Endpoint para criar uma notificação de infração para reportar situações fraudulentas ou irregulares relacionadas a transações Pix.
Responsabilidades do PSP Indireto:- O PSP Indireto atua como intermediário, redirecionando a requisição para o DICT - A notificação é processada pelo DICT e comunicada aos PSPs envolvidos - O PSP Indireto deve garantir a autenticação e autorização adequadas
Casos de Uso:- Solicitação de Devolução: Quando o objetivo da notificação de infração for solicitação de devolução, quem deve criar a notificação é o PSP do pagador da transação original.
- Cancelamento de Devolução: Para o cancelamento de devolução, quem deve criar é o PSP do recebedor da transação original.
- Fraude: Reportar transações fraudulentas identificadas pelo PSP - Scam: Reportar tentativas de golpe ou engano - Outros: Outras situações irregulares que necessitam de investigação
Integração com DICT: Este endpoint redireciona automaticamente para o DICT, seguindo os padrões estabelecidos pelo Banco Central para notificações de infração em chaves Pix.
POST /dict/infraction-reports
Requer autorização para o escopo: infraction.ind.write
Requisição
{
"infractionReport": {
"contactInformation": {
"email": "[email protected]",
"phone": "+5561988887777"
},
"reason": "REFUND_REQUEST",
"reportDetails": "Transação feita através de QR Code falso em boleto",
"situationType": "SCAM",
"transactionId": "E9999901012341234123412345678900"
}
}
Respostas As respostas abaixo representam Sucesso(200) e Falhas/erros do consumo.
- 🟢 201
- 🔴 400
- 🔴 401
- 🔴 403
- 🔴 500
- 🔴 503
{
"responseTime": 0,
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"infractionReport": {
"transactionId": "E9999901012341234123412345678900",
"reason": "REFUND_REQUEST",
"situationType": "SCAM",
"contactInformation": {
"email": "[email protected]",
"phone": "+5561988887777"
},
"reportDetails": "Transação feita através de QR Code falso em boleto",
"id": "91d65e98-97c0-4b0f-b577-73625da1f9fc",
"status": "OPEN",
"reporterParticipant": "99999010",
"counterpartyParticipant": "99999011",
"creationTime": "2020-01-17T10:00:00.000Z",
"lastModified": "2020-01-17T10:00:00.000Z"
}
}
{
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"error": {
"detail": "Could not parse request body",
"status": 400,
"title": "Bad Request",
"type": "https://dict.pi.rsfn.net.br/api/v2/error/BadRequest"
},
"responseTime": 0
}
{
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"error": {
"detail": "Participant is not authenticated",
"status": 401,
"title": "Unauthorized"
},
"responseTime": 0
}
{
"responseTime": 0,
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"error": {
"detail": "Participant is not allowed to access this resource",
"status": 403,
"title": "Forbidden"
}
}
{
"responseTime": 0,
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"error": {
"detail": "Our service is currently experiencing an issue. We apologize for the inconvenience and are working to resolve it as soon as possible.",
"status": 500,
"title": "Internal Server Error"
}
}
{
"responseTime": 0,
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"error": {
"detail": "Service is under scheduled maintenance",
"status": 503,
"title": "Service Unavailable",
"type": "https://dict.pi.rsfn.net.br/api/v2/error/ServiceUnavailable"
}
}
Listar notificações de infração
Endpoint para obter a lista de notificações de infração em que o participante é parte.
Responsabilidades do PSP Indireto:- O PSP Indireto redireciona a consulta para o DICT - A listagem retorna apenas notificações relacionadas ao participante - Filtros e paginação são aplicados pelo DICT
Ordenação: Lista de notificações é ordenada de forma crescente pelo campo
LastModified.
Filtros Disponíveis:- Status: Filtra por status da notificação (open, waiting_resolution, confirmed, cancelled, completed).
- Período: Filtra por data de modificação (modifiedAfter, modifiedBefore).
- Tipo: Filtra por tipo de notificação.
- Participação: Filtra por papel do participante (isReporter, isClaimer).
Integração com DICT: Este endpoint redireciona automaticamente para o DICT, seguindo os padrões estabelecidos pelo Banco Central para consulta de notificações de infração.
GET /dict/infraction-reports
Requer autorização para o escopo: infraction.ind.read
Requisição
Este endpoint permite o uso de query params em sua execução. O exemplo de código abaixo ilustra como consumir o endpoint com alguns dos parâmetros disponíveis, que são opcionais.
/dict/infraction-reports?isReporter=false&status=OPENRespostas As respostas abaixo representam Sucesso(200) e Falhas/erros do consumo.
- 🟢 200
- 🔴 400
- 🔴 401
- 🔴 403
- 🔴 500
- 🔴 503
{
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"hasMoreELements": true,
"infractionReports": [
{
"analysisDetails": "Valor bloqueado. Para mais informações, contactar central antifraude em 11 3000-00000, informando ID 9999.",
"analysisResult": "AGREED",
"contactInformation": {
"email": "[email protected]",
"phone": "+5561988887777"
},
"counterpartyParticipant": "99999011",
"creationTime": "2020-01-17T10:00:00.000Z",
"fraudMarkerId": "91d65e98-97c0-4b0f-b577-73625da1f9fc",
"id": "91d65e98-97c0-4b0f-b577-73625da1f9fc",
"lastModified": "2020-01-17T10:00:00.000Z",
"reason": "REFUND_REQUEST",
"reportDetails": "Transação feita através de QR Code falso em boleto",
"reporterParticipant": "99999010",
"situationType": "SCAM",
"status": "CLOSED",
"transactionId": "E9999901012341234123412345678900"
}
],
"responseTime": 0
}
{
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"error": {
"detail": "Could not parse request body",
"status": 400,
"title": "Bad Request",
"type": "https://dict.pi.rsfn.net.br/api/v2/error/BadRequest"
},
"responseTime": 0
}
{
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"error": {
"detail": "Participant is not authenticated",
"status": 401,
"title": "Unauthorized"
},
"responseTime": 0
}
{
"responseTime": 0,
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"error": {
"detail": "Participant is not allowed to access this resource",
"status": 403,
"title": "Forbidden"
}
}
{
"responseTime": 0,
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"error": {
"detail": "Our service is currently experiencing an issue. We apologize for the inconvenience and are working to resolve it as soon as possible.",
"status": 500,
"title": "Internal Server Error"
}
}
{
"responseTime": 0,
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"error": {
"detail": "Service is under scheduled maintenance",
"status": 503,
"title": "Service Unavailable",
"type": "https://dict.pi.rsfn.net.br/api/v2/error/ServiceUnavailable"
}
}
Consultar notificação de Infração
Endpoint para obter detalhes de uma notificação de infração específica.
Responsabilidades do PSP Indireto:- O PSP Indireto redireciona a consulta para o DICT - A consulta retorna apenas notificações relacionadas ao participante - Detalhes completos da notificação são fornecidos pelo DICT
Informações Retornadas:- Dados da notificação (ID, status, motivo, detalhes)
- Informações de contato do reportador
- Participantes envolvidos (reportador e contraparte)
- Timestamps de criação e modificação
- ID da transação relacionada
Integração com DICT: Este endpoint redireciona automaticamente para o DICT, seguindo os padrões estabelecidos pelo Banco Central para consulta de notificações de infração.
GET /dict/infraction-reports/:infractionReportId
Requer autorização para o escopo: infraction.ind.read
Requisição
A requisição enviada para esse endpoint não precisa de um body, apenas os cabeçalhos de autorização OAuth, parâmetros e o certificado da conta.
Respostas As respostas abaixo representam Sucesso(200) e Falhas/erros do consumo.
- 🟢 200
- 🔴 401
- 🔴 403
- 🔴 404
- 🔴 500
{
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"infractionReport": {
"contactInformation": {
"email": "[email protected]",
"phone": "+5561988887777"
},
"counterpartyParticipant": "99999011",
"creationTime": "2020-01-17T10:00:00.000Z",
"id": "91d65e98-97c0-4b0f-b577-73625da1f9fc",
"lastModified": "2020-01-17T10:00:00.000Z",
"reason": "REFUND_REQUEST",
"reportDetails": "Transação feita através de QR Code falso em boleto",
"reporterParticipant": "99999010",
"situationType": "SCAM",
"status": "ACKNOWLEDGED",
"transactionId": "E9999901012341234123412345678900"
},
"responseTime": 0
}
{
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"error": {
"detail": "Participant is not authenticated",
"status": 401,
"title": "Unauthorized"
},
"responseTime": 0
}
{
"responseTime": 0,
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"error": {
"detail": "Participant is not allowed to access this resource",
"status": 403,
"title": "Forbidden"
}
}
{
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"error": {
"detail": "Entry associated with given key does not exist",
"status": 404,
"title": "Not found",
"type": "https://dict.pi.rsfn.net.br/api/v2/error/NotFound"
},
"responseTime": 0
}
{
"responseTime": 0,
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"error": {
"detail": "Our service is currently experiencing an issue. We apologize for the inconvenience and are working to resolve it as soon as possible.",
"status": 500,
"title": "Internal Server Error"
}
}
Receber notificação de infração
Endpoint para notificar recebimento da notificação pelo participante contraparte.
IdempotênciaA operação é idempotente. Caso a notificação já tenha sido recebida e esteja ainda com status ACKNOWLEDGED, será retornada resposta equivalente à primeira requisição.
POST /dict/infraction-reports/:infractionReportId/acknowledge
Requer autorização para o escopo: infraction.ind.write
Requisição
A requisição enviada para esse endpoint não precisa de um body, apenas os cabeçalhos de autorização OAuth, parâmetros e o certificado da conta.
Respostas As respostas abaixo representam Sucesso(200) e Falhas/erros do consumo.
- 🟢 200
- 🔴 401
- 🔴 403
- 🔴 404
- 🔴 500
- 🔴 503
{
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"infractionReport": {
"contactInformation": {
"email": "[email protected]",
"phone": "+5561988887777"
},
"counterpartyParticipant": "99999011",
"creationTime": "2020-01-17T10:00:00.000Z",
"id": "91d65e98-97c0-4b0f-b577-73625da1f9fc",
"lastModified": "2020-01-17T10:00:00.000Z",
"reason": "REFUND_REQUEST",
"reportDetails": "Transação feita através de QR Code falso em boleto",
"reporterParticipant": "99999010",
"situationType": "SCAM",
"status": "CLOSED",
"transactionId": "E9999901012341234123412345678900"
},
"responseTime": 0
}
{
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"error": {
"detail": "Participant is not authenticated",
"status": 401,
"title": "Unauthorized"
},
"responseTime": 0
}
{
"responseTime": 0,
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"error": {
"detail": "Participant is not allowed to access this resource",
"status": 403,
"title": "Forbidden"
}
}
{
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"error": {
"detail": "Entry associated with given key does not exist",
"status": 404,
"title": "Not found",
"type": "https://dict.pi.rsfn.net.br/api/v2/error/NotFound"
},
"responseTime": 0
}
{
"responseTime": 0,
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"error": {
"detail": "Our service is currently experiencing an issue. We apologize for the inconvenience and are working to resolve it as soon as possible.",
"status": 500,
"title": "Internal Server Error"
}
}
{
"responseTime": 0,
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"error": {
"detail": "Service is under scheduled maintenance",
"status": 503,
"title": "Service Unavailable",
"type": "https://dict.pi.rsfn.net.br/api/v2/error/ServiceUnavailable"
}
}
Cancelar notificação de Infração
Endpoint para cancelar a notificação de infração. Só pode ser realizada pelo participante que criou a notificação.
O cancelamento de uma notificação de infração fechada com concordância cancelará também a marcação de fraude associada.
IdempotênciaA operação é idempotente. Caso a notificação já tenha sido cancelada com os mesmos parâmetros, será retornada resposta equivalente à primeira requisição.
POST /dict/infraction-reports/:infractionReportId/cancel
Requer autorização para o escopo: infraction.ind.write
Requisição
A requisição enviada para esse endpoint não precisa de um body, apenas os cabeçalhos de autorização OAuth, parâmetros e o certificado da conta.
Respostas As respostas abaixo representam Sucesso(200) e Falhas/erros do consumo.
- 🟢 200
- 🔴 401
- 🔴 403
- 🔴 404
- 🔴 500
- 🔴 503
{
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"infractionReport": {
"contactInformation": {
"email": "[email protected]",
"phone": "+5561988887777"
},
"counterpartyParticipant": "99999011",
"creationTime": "2020-01-17T10:00:00.000Z",
"id": "91d65e98-97c0-4b0f-b577-73625da1f9fc",
"lastModified": "2020-01-17T10:00:00.000Z",
"reason": "REFUND_REQUEST",
"reportDetails": "Transação feita através de QR Code falso em boleto",
"reporterParticipant": "99999010",
"situationType": "SCAM",
"status": "CANCELLED",
"transactionId": "E9999901012341234123412345678900"
},
"responseTime": 0
}
{
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"error": {
"detail": "Participant is not authenticated",
"status": 401,
"title": "Unauthorized"
},
"responseTime": 0
}
{
"responseTime": 0,
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"error": {
"detail": "Participant is not allowed to access this resource",
"status": 403,
"title": "Forbidden"
}
}
{
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"error": {
"detail": "Entry associated with given key does not exist",
"status": 404,
"title": "Not found",
"type": "https://dict.pi.rsfn.net.br/api/v2/error/NotFound"
},
"responseTime": 0
}
{
"responseTime": 0,
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"error": {
"detail": "Our service is currently experiencing an issue. We apologize for the inconvenience and are working to resolve it as soon as possible.",
"status": 500,
"title": "Internal Server Error"
}
}
{
"responseTime": 0,
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"error": {
"detail": "Service is under scheduled maintenance",
"status": 503,
"title": "Service Unavailable",
"type": "https://dict.pi.rsfn.net.br/api/v2/error/ServiceUnavailable"
}
}
Fechar notificação de Infração
Endpoint para fechar a notificação de infração.
A notificação deve ser fechada pelo participante contraparte. Para fechamento, o status deve ser ACKNOWLEDGED.
Caso o fechamento seja com o resultado de análise AGREED, será gerada automaticamente uma marcação de fraude. O id da marcação constará no campo FraudMarkerId da resposta. Nestes casos, o participante deve obrigatoriamente informar o campo 'FraudType'. Os valores válidos são APPLICATION_FRAUD, MULE_ACCOUNT, SCAMMER_ACCOUNT e OTHER.
ATENÇÃO: o tipo
UNKNOWN não é válido para a API v2. Ele é usado apenas como valor descritivo nas notificações de infração criadas ainda na API v1, quando o tipo de fraude não fazia parte dos dados na notificação.
A marcação de fraude gerada pode ser cancelada pelo participante contraparte, responsável pelo fechamento da notificação de infração.
IdempotênciaA operação é idempotente. Caso a notificação já tenha sido fechado com os mesmos parâmetros, será retornada resposta equivalente à primeira requisição.
POST /dict/infraction-reports/:infractionReportId/close
Requer autorização para o escopo: infraction.ind.write
Requisição
{
"analysisDetails": "Valor bloqueado. Para mais informações, contactar central antifraude em 11 3000-00000, informando ID 9999.",
"analysisResult": "AGREED",
"fraudType": "SCAMMER_ACCOUNT",
"infractionReportId": "91d65e98-97c0-4b0f-b577-73625da1f9fc",
"participant": "12345678"
}
Respostas As respostas abaixo representam Sucesso(200) e Falhas/erros do consumo.
- 🟢 200
- 🔴 401
- 🔴 403
- 🔴 404
- 🔴 500
- 🔴 503
{
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"infractionReport": {
"analysisDetails": "Valor bloqueado. Para mais informações, contactar central antifraude em 11 3000-00000, informando ID 9999.",
"analysisResult": "AGREED",
"contactInformation": {
"email": "[email protected]",
"phone": "+5561988887777"
},
"counterpartyParticipant": "99999011",
"creationTime": "2020-01-17T10:00:00.000Z",
"fraudMarkerId": "91d65e98-97c0-4b0f-b577-73625da1f9fc",
"id": "91d65e98-97c0-4b0f-b577-73625da1f9fc",
"lastModified": "2020-01-17T10:00:00.000Z",
"reason": "REFUND_REQUEST",
"reportDetails": "Transação feita através de QR Code falso em boleto",
"reporterParticipant": "99999010",
"situationType": "SCAM",
"status": "CLOSED",
"transactionId": "E9999901012341234123412345678900"
},
"responseTime": 0
}
{
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"error": {
"detail": "Participant is not authenticated",
"status": 401,
"title": "Unauthorized"
},
"responseTime": 0
}
{
"responseTime": 0,
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"error": {
"detail": "Participant is not allowed to access this resource",
"status": 403,
"title": "Forbidden"
}
}
{
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"error": {
"detail": "Entry associated with given key does not exist",
"status": 404,
"title": "Not found",
"type": "https://dict.pi.rsfn.net.br/api/v2/error/NotFound"
},
"responseTime": 0
}
{
"responseTime": 0,
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"error": {
"detail": "Our service is currently experiencing an issue. We apologize for the inconvenience and are working to resolve it as soon as possible.",
"status": 500,
"title": "Internal Server Error"
}
}
{
"responseTime": 0,
"correlationId": "abcdef01-2345-6789-0123-456789012345",
"error": {
"detail": "Service is under scheduled maintenance",
"status": 503,
"title": "Service Unavailable",
"type": "https://dict.pi.rsfn.net.br/api/v2/error/ServiceUnavailable"
}
}