Infraction reports [beta]

Infraction reports are used to tag transactions that a Pix user believes are fraudulent or otherwise invalid. In this situation, they can tag an infraction (report it to their bank or PSP), which then shares relevant transaction details with the other party’s bank or PSP. An infraction report can be made by either the payer or the payee.

Reasons for infraction

  • FRAUD – (Initiated by either the payer or the payee) Used in cases where the payer's or payee's PSP has the sole purpose of tagging the Pix key, the tax ID, or the account so that this information is linked to the Pix keys involved in the transaction for security purposes.
  • REFUND_REQUEST – (Initiated by the payer's PSP only) Used in cases where the payer's PSP, in addition to tagging the key, intends to initiate a refund request process.
  • REFUND_CANCELLED – (Initiated by the payee's PSP only) Used in cases where the funds of a transaction have already been returned, but the PSP of the recipient wants to revoke this refund.

Infraction status

An infraction can have the following statuses:

  • OPEN – Infraction notification was made by the originating PSP.
  • RECEIVED – Infraction notification was received by the receiving PSP.
  • REVIEWED / COMPLETED / CLOSED – Infraction notification was reviewed by the receiving PSP and the result of this review is pending or available.
  • CANCELLED – Originating PSP has cancelled the report. An originator can cancel a report at any time, including after it has been completed.

Notification of new violation

POST /v1/pix/infraction-report

Header:

{
    “x-tenant”: “TN-ca76bfed-e987-47d0-b9df-817626cddc89”,
    “x-cid”: “E9999901012341234123412345678900”,
    “account_id”: “123456” 
}

Request

{
   “infraction_type”: “FRAUD”, ("FRAUD" "REFUND_REQUEST" "REFUND_CANCELLED"),
   “transaction_id”: “E9999901012341234123412345678900",
   "report_details": "Details that can help the receiving participant to analyze the suspected violation
}

New body to be sent to BTG:

{
   "transaction_id":"some text",
   "infraction_type":"FRAUD",
   "reportDetails":"some text",
   "transactionResult":"SETTLED",
   "InfractionData":{
      "creditedParticipant":"some text",
      "reportedBy":"DEBITED_PARTICIPANT",
      "debitedParticipant":"some text",
      "transactionDate":"some text",
      "infractingAccountData":{
         "branch":"some text",
         "accountNumber":"some text"
      },
      "key":"some text",
      "taxIdNumber":"some text"
   }
}

Response

{
    “status”: “OPEN”,
    “credited_participant”: “99999011”,
    “infraction_type”: “FRAUD”,
    “reported_by”: “DEBITED_PARTICIPANT”,
    “last_modified”: “2020-01-17T10:01:00Z”,
    “debited_participant”: “99999010”,
    “creation_time”: “2020-01-17T10:00:00Z”,
    “transaction_id”: “E9999901012341234123412345678900”,
    “report_details”: “Details that can help the receiving participant to analyze the suspected violation”,
    “response_time”: “2020-12-04T20:00:26.445Z”,
    “id”: “91d65e98-97c0-4b0f-b577-73625da1f9fc”,
    “correlation_id”: “f5559d53517947c7a7047515e6337b19”,
    “analysis_details”: “Details of the infraction analysis, which can guide the payer of the next steps”
}

Send receipt of infraction report

Notifies receipt by the participant. The operation is idempotent. If the report has already been received and still has the status RECOGNIZED, the equivalent response to the first request will be returned.

Request
POST /v1/pix/infraction-report/{infractionReportId}/acknowledge

Header:

{
    “x-tenant”: “TN-ca76bfed-e987-47d0-b9df-817626cddc89”,
    “x-cid”: “E9999901012341234123412345678900”
     “account-id”: “123456” 
}

Response

{
    “status”: “OPEN”,
    “credited_participant”: “99999011”,
    “infraction_type”: “FRAUD”,
    “reported_by”: “DEBITED_PARTICIPANT”,
    “last_modified”: “2020-01-17T10:01:00Z”,
    “debited_participant”: “99999010”,
    “creation_time”: “2020-01-17T10:00:00Z”,
    “end_to_end_id”: “E9999901012341234123412345678900”,
    “report_details”: “Details that can help the receiving participant to analyze the suspected violation”,
    “response_time”: “2020-12-04T20:00:26.445Z”,
    “id”: “91d65e98-97c0-4b0f-b577-73625da1f9fc”,
    “correlation_id”: “f5559d53517947c7a7047515e6337b19”,
    “analysis_details”: “Details of the infraction analysis, which can guide the payer of the next steps”
}

Cancelling an infraction

Only the reporting PSP can cancel an infraction. A cancellation can occur at any time, even after review.

Request
POST /v1/pix/infraction-report/{infractionReportId}/cancel

Header:

{
    “x-tenant”: “TN-ca76bfed-e987-47d0-b9df-817626cddc89”,
    “x-cid”: “E9999901012341234123412345678900”
    “x-account-id”: “123456” 
}

Response

{
    “status”: “OPEN”,
    “credited_participant”: “99999011”,
    “infraction_type”: “FRAUD”,
    “reported_by”: “DEBITED_PARTICIPANT”,
    “last_modified”: “2020-01-17T10:01:00Z”,
    “debited_participant”: “99999010”,
    “creation_time”: “2020-01-17T10:00:00Z”,
    “end_to_end_id”: “E9999901012341234123412345678900”,
    “report_details”: “Details that can help the receiving participant to analyze the suspected violation”,
    “response_time”: “2020-12-04T20:00:26.445Z”,
    “id”: “91d65e98-97c0-4b0f-b577-73625da1f9fc”,
    “correlation_id”: “f5559d53517947c7a7047515e6337b19”,
    “analysis_details”: “Details of the infraction analysis, which can guide the payer of the next steps”
}

Close infraction report

An infraction report must be closed by the PSP receiving the infraction report. The report is reviewed by the receiving PSP and closed by their accepting or rejecting the report.

Header:

{
    “x-tenant”: “TN-ca76bfed-e987-47d0-b9df-817626cddc89”,
    “x-cid”: “E9999901012341234123412345678900”
}

Request

{
   “analysis_details": "Details of the infraction's analysis, which can guide the payer of the next steps”,
   “analysis_result”: “AGREED”
}

Response

{
    “acknowledge_datetime”: “2020-12-04T17:52:09.563Z”,    
    “participant”: “12345678”,
    “status”: “OPEN”,
    “credited_participant”: “99999011”,
    “infraction_type”: “FRAUD”,
    “reported_by”: “DEBITED_PARTICIPANT”,
    “last_modified”: “2020-01-17T10:01:00Z”,
    “debited_participant”: “99999010”,
    “creation_time”: “2020-01-17T10:00:00Z”,
    “end_to_end_id”: “E9999901012341234123412345678900”,
    “report_details”: “Details that can help the receiving participant to analyze the suspected violation”,
    “response_time”: “2020-12-04T20:00:26.445Z”,
    “analysis_result”: “AGREED”,
    “id”: “91d65e98-97c0-4b0f-b577-73625da1f9fc”,
    “correlation_id”: “f5559d53517947c7a7047515e6337b19”,
    “analysis_details”: “Details of the infraction analysis, which can guide the payer of the next steps”
}

View an infraction

Get details of an infraction report.

Request
GET /v1/pix/infraction-report/{infractionReportId}

Header:

{
    “x-tenant”: “TN-ca76bfed-e987-47d0-b9df-817626cddc89”,
    “x-cid”: “E9999901012341234123412345678900”
}

Response

{
    “status”: “OPEN”,
    “credited_participant”: “99999011”,
    “infraction_type”: “FRAUD”,
    “reported_by”: “DEBITED_PARTICIPANT”,
    “last_modified”: “2020-01-17T10:01:00Z”,
    “debited_participant”: “99999010”,
    “creation_time”: “2020-01-17T10:00:00Z”,
    “end_to_end_id”: “E9999901012341234123412345678900”,
    “report_details”: “Details that can help the receiving participant to analyze the suspected violation”,
    “response_time”: “2020-12-04T20:00:26.445Z”,
    “analysis_result”: “AGREED”,
    “id”: “91d65e98-97c0-4b0f-b577-73625da1f9fc”,
    “correlation_id”: “f5559d53517947c7a7047515e6337b19”,
    “analysis_details”: “Details of the infraction analysis, which can guide the payer of the next steps”
}

List infractions

Query the list of infraction reports to which the participant is a party, either as reporter or recipient.

GET /v1/pix/infraction-report/search

Header:

{
    “x-tenant”: “TN-ca76bfed-e987-47d0-b9df-817626cddc89”,
    “x-cid”: “E9999901012341234123412345678900”
}

Response

{
    “items”: [
        {
            “status”: “OPEN”,
            “credited_participant”: “99999011”,
            “infraction_type”: “FRAUD”,
            “reported_by”: “DEBITED_PARTICIPANT”,
            “last_modified”: “2020-01-17T10:01:00Z”,
            “debited_participant”: “99999010”,
            “creation_time”: “2020-01-17T10:00:00Z”,
            “end_to_end_id”: “E9999901012341234123412345678900”,
            “report_details”: “Details that can help the receiving participant to analyze the suspected violation”,
            “response_time”: “2020-12-04T20:00:26.445Z”,
            “analysis_result”: “AGREED”,
            “id”: “91d65e98-97c0-4b0f-b577-73625da1f9fc”,
            “correlation_id”: “f5559d53517947c7a7047515e6337b19”,
            “analysis_details”: “Details of the infraction analysis, which can guide the payer of the next steps”
        }
    ]
}

SPI-Gateway Communication - Clients

Webhook to receive new infraction notification updated URI: /v1/btg/webhooks/pix/dict/infraction-report

{
   "pactualId":"3d48532f-XXXX-4422-81c3-b7dc852e262b",
   "clientRequestId":"3d48532f-XXXX-4422-81c3-b7dc852e262b",
   "createTimestamp":"2021-10-25T00:47:35.0273307+00:00",
   "lastUpdateTimestamp":"2021-10-25T01:12:36.5169126+00:00",
   "entity":"InfractionReport",
   "status":"CANCELLED",
   "body":{
      "transactionId":"E9999901012341234123412345678900",
      "endToEndId":"E9999901012341234123412345678900",
      "transactionType":"string",
      "transactionResult":"string",
      "infractionType":"FRAUD",
      "reportedBy":"DEBITED_PARTICIPANT",
      "reportDetails":"Details that can help the receiving participant to analyze the suspected violation",
      "id":"91d65e98-97c0-4b0f-b577-73625da1f9fc",
      "status":"CANCELLED",
      "debitedParticipant":"99999010",
      "creditedParticipant":"99999011",
      "creationTime":"2020-01-17T10:00:00Z",
      "lastModified":"2020-01-17T10:01:00Z",
      "analysisResult":"AGREED",
      "analysisDetails":"Details of the infraction analysis, which can guide the payer of the next steps",
      "infractionData":{
         "taxIdNumber":"44455566677",
         "key":"",
         "debitedParticipant":"99999010",
         "creditedParticipant":"99999011",
         "reportedBy":"DEBITED_PARTICIPANT",
         "transactionDate":"2020-01-17T10:01:00Z",
         "infractingAccountData":{
            "branch":"",
            "accountNumber":"00000999"
         }
      }
   },
   "tags":[   
   ]
}