Disputes
The bank of the payer can dispute a received Pix. The disputed amount is held from your balance while the dispute runs. Without enough balance, the hold starts partial and grows with the next credits up to the disputed amount. If the Pix did not become balance, because it is already going back to the payer, nothing is held. If another dispute on the same Pix already holds its amount, nothing more is held. In these cases semBloqueio says why. You receive med.infracao.criada when it opens and med.infracao.atualizada when it changes.
List #
GET /v2/ex/infracoes
Scope: ex.med.read.
GET /v2/ex/infracoes
→ 200
{
"infracoes": [
{
"idInfracao": "01J1ZK7M9QW3ERT5TY6UI8OPQR",
"endToEndId": "E12345678202609181200000000000001",
"tipo": "FRAUDE",
"valor": "100.00",
"situacao": "ABERTA",
"relato": "pagador alega nao reconhecer o pagamento",
"prazoFinalizacao": "2026-09-25T12:00:00Z",
"bloqueioId": "med:01J1ZK7M9QW3ERT5TY6UI8OPQR",
"criadoEm": "2026-09-18T12:00:00Z"
}
]
}
| Parameter | Type | Description |
|---|---|---|
situacao |
string | Filters by ABERTA, EM_DEFESA, ACATADA or REJEITADA. Accepts several, separated by commas. |
limite, cursor |
integer, string | With either one, the list comes by page, from the most recent to the oldest, with cursor. Without them, it comes whole, the open ones first. |
de, ate |
string | AAAA-MM-DD dates, inclusive, by when the dispute opened, in Brasília time. Either one alone also works. |
origem |
string | PIX or CARTAO. |
busca |
string | The endToEndId, the sale reference or the idInfracao, exact. |
When the same Pix has more than one dispute, the one rejected without holding anything is a repeated notice: it does not appear in the list or in the summary, and it remains available by its idInfracao.
GET /v2/ex/infracoes/{id} returns a dispute.
| Field | Type | Description |
|---|---|---|
situacao |
string | ABERTA, EM_DEFESA, ACATADA when the payer won and the amount goes back to the payer, REJEITADA when you won and the amount goes back to your available balance. |
valor |
string | The disputed amount. |
bloqueioId |
string | The corresponding hold, in GET /v2/ex/bloqueios. Not present when nothing is held. |
semBloqueio |
string | Why the hold did not happen or is partial. Only present in those cases. |
valorADescoberto |
string | Only appears when the hold did not cover the disputed amount: the difference, which you then owe us and which adds to aRecuperar in the balance. |
prazoFinalizacao |
string | Deadline of the dispute. When capacidades.med is false, the outcome may arrive after it, in med.infracao.atualizada. |
The defense depends on the account. Read capacidades.med in GET /v2/ex/config: when it is false, the defense is made by the institution with the provider of the account, and you follow it here. When it is true, see the internal reference.
Summary #
GET /v2/ex/infracoes/resumo
Scope: ex.med.read. Accepts de, ate, origem and busca, like the list.
GET /v2/ex/infracoes/resumo?de=2026-10-01&ate=2026-10-15
→ 200
{
"abertas": { "quantidade": 3, "valor": "45.00" },
"acatadas": { "quantidade": 1, "valor": "20.00" },
"rejeitadas": { "quantidade": 2, "valor": "30.00" },
"total": { "quantidade": 6, "valor": "95.00" },
"retidoAgora": "45.00"
}
| Field | Type | Description |
|---|---|---|
abertas |
object | Disputes in ABERTA or EM_DEFESA: quantidade and the disputed valor. |
acatadas |
object | The ones that went back to the payer. |
rejeitadas |
object | The ones that went back to your available balance. |
total |
object | All in the selection. |
retidoAgora |
string | What is held by disputes right now, regardless of the selection. |
The valor of each group counts each Pix once, up to the amount of the Pix. The quantidade counts the disputes.
Errors #
| Status | title |
When |
|---|---|---|
| 400 | situacao_invalida |
Status filter outside the list. |
| 400 | limite_invalido |
limite outside 1 to 200. |
| 400 | cursor_invalido |
Malformed cursor. |
| 400 | periodo_invalido |
de or ate not in AAAA-MM-DD, or de after ate. |
| 400 | filtro_invalido |
origem other than PIX and CARTAO. |
| 404 | nao_encontrado |
The dispute does not exist in this account. |