Skip to content
A AmunPay API PixVersion 3.38 · updated on Pages

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.