Disputas
El banco del pagador puede disputar un Pix recibido. El valor disputado queda retenido de su saldo mientras la disputa está en curso. Sin saldo suficiente, la retención comienza parcial y crece con los siguientes créditos hasta el valor disputado. Si el Pix no se convirtió en saldo, porque ya está volviendo al pagador, no se retiene nada. Si otra disputa del mismo Pix ya retiene su valor, no se retiene nada más. En estos casos semBloqueio dice el motivo. Usted recibe med.infracao.criada cuando se abre y med.infracao.atualizada cuando cambia.
Listar #
GET /v2/ex/infracoes
Alcance: 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"
}
]
}
| Parámetro | Tipo | Descripción |
|---|---|---|
situacao |
string | Filtra por ABERTA, EM_DEFESA, ACATADA o REJEITADA. Acepta varias, separadas por comas. |
limite, cursor |
entero, string | Con uno de los dos, la lista viene por página, de la más reciente a la más antigua, con cursor. Sin ellos, viene completa, las abiertas primero. |
de, ate |
string | Fechas AAAA-MM-DD, inclusivas, por la apertura de la disputa en horario de Brasilia. Una de las dos sola también vale. |
origem |
string | PIX o CARTAO. |
busca |
string | El endToEndId, la referencia de la venta o el idInfracao, exacto. |
Cuando el mismo Pix tiene más de una disputa, la que fue rechazada sin retener nada es un aviso repetido: no aparece en la lista ni en el resumen, y sigue disponible por su idInfracao.
GET /v2/ex/infracoes/{id} devuelve una disputa.
| Campo | Tipo | Descripción |
|---|---|---|
situacao |
string | ABERTA, EM_DEFESA, ACATADA cuando el pagador ganó y el valor vuelve a él, REJEITADA cuando usted ganó y el valor vuelve a su disponible. |
valor |
string | El valor disputado. |
bloqueioId |
string | La retención correspondiente, en GET /v2/ex/bloqueios. No viene cuando no se retiene nada. |
semBloqueio |
string | Por qué no hubo retención o es parcial. Solo viene en esos casos. |
valorADescoberto |
string | Solo aparece cuando la retención no cubrió el valor disputado: la diferencia, que usted pasa a debernos y que se suma en aRecuperar del saldo. |
prazoFinalizacao |
string | Plazo de la disputa. Cuando capacidades.med es false, el desenlace puede llegar después de él, en med.infracao.atualizada. |
La defensa depende de la cuenta. Lea capacidades.med en GET /v2/ex/config: cuando es false, la defensa la hace la institución ante el proveedor de la cuenta, y usted la sigue por aquí. Cuando es true, consulte la referencia interna.
Resumen #
GET /v2/ex/infracoes/resumo
Alcance: ex.med.read. Acepta de, ate, origem y busca, como la lista.
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"
}
| Campo | Tipo | Descripción |
|---|---|---|
abertas |
objeto | Las disputas en ABERTA o EM_DEFESA: quantidade y el valor disputado. |
acatadas |
objeto | Las que volvieron al pagador. |
rejeitadas |
objeto | Las que volvieron a su disponible. |
total |
objeto | Todas las de la selección. |
retidoAgora |
string | Lo que está retenido por disputas ahora, fuera de la selección. |
El valor de cada grupo cuenta cada Pix una vez, hasta el valor del Pix. La quantidade cuenta las disputas.
La disputa en su saldo #
El disponible se debita una vez, cuando el valor se retiene. El desenlace solo decide adónde va lo retenido. Para no debitar dos veces, siga el total retenido así:
| Evento | Qué pasa | En su control |
|---|---|---|
saldo.bloqueado con tipo MED |
valor sale del disponible y queda retenido. |
Disponible menos valor, retenido más valor. |
saldo.bloqueio_ampliado |
Una parte más, valor, sale del disponible, o de la garantía cuando viene daGarantia. |
Disponible menos (valor menos daGarantia), retenido más valor. |
saldo.desbloqueado con desfecho LIBERADO |
Usted ganó: lo retenido vuelve al disponible. | Retenido menos valor, disponible más valor. |
devolucao.concluida con tipo MED y desfecho DEVOLVIDO |
El pagador ganó: valor salió de lo retenido hacia él, y liberado, cuando viene, volvió al disponible. |
Retenido menos valor menos liberado, disponible más liberado. |
med.infracao.criada, med.infracao.atualizada |
No se mueve dinero: describen la disputa y su situación. | Nada. |
El devolucao.concluida de la disputa trae id (el de la retención, el mismo del saldo.bloqueado), tipo, valor, desfecho, endToEndId del Pix disputado e idInfracao. No trae natureza: identifique la disputa por el tipo MED, por el id de la retención o por el idInfracao.
Controle lo retenido por el total, y no retención por retención: cuando el mismo Pix tiene más de una disputa, el valor retenido pasa de una a otra sin tocar su disponible. El extracto muestra cada retención como BLOQUEIO y cada vuelta al disponible como DESBLOQUEIO, y GET /v2/ex/bloqueios muestra lo que cada una retiene ahora.
Si el pagador recibió de vuelta más de lo que estaba retenido, la diferencia se suma en aRecuperar del saldo y no sale del disponible por sí sola.
Disputar uno de sus retiros #
Si uno de sus retiros fue a un estafador, por estafa, toma de cuenta, coacción o acceso fraudulento, pida su disputa. Quien la abre es la institución, en la institución de donde salió el Pix. El pedido no mueve dinero: lo que vuelva entra como la devolución del retiro, en payout.devolucao_recebida.
PUT /v2/ex/pedidos-de-med/{id}
Alcance: ex.med.write. El id es suyo, de 26 a 35 letras o dígitos.
PUT /v2/ex/pedidos-de-med/MED01J1ZK7M9QW3ERT5TY6UI8O
{
"idEnvio": "SAQ04J1ZK7M9QW3ERT5TY6UI8O",
"motivo": "GOLPE",
"descricao": "Ligaram dizendo ser do banco e pediram a transferência."
}
→ 201
{
"id": "MED01J1ZK7M9QW3ERT5TY6UI8O",
"idEnvio": "SAQ04J1ZK7M9QW3ERT5TY6UI8O",
"endToEndId": "E12345678202609181200000000000004",
"motivo": "GOLPE",
"descricao": "Ligaram dizendo ser do banco e pediram a transferência.",
"situacao": "PEDIDO",
"valor": "30.00",
"valorRecuperado": "0.00",
"prazoEm": "2026-12-07T12:00:00Z",
"criadoEm": "2026-09-18T12:00:00Z"
}
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
idEnvio |
string | sí | El retiro, ya realizado, que salió hace hasta 80 días. |
motivo |
string | sí | GOLPE, INVASAO_DE_CONTA, COERCAO, ACESSO_FRAUDULENTO o OUTRA_FRAUDE. |
descricao |
string | sí | Lo que pasó, en hasta 2000 caracteres. |
Un desacuerdo comercial, como el producto que no llegó o no gustó, y la clave escrita mal no son caso de disputa, y la institución rechaza el pedido. La repetición con el mismo cuerpo responde 200. Cada retiro tiene un pedido en curso a la vez.
| Campo | Tipo | Descripción |
|---|---|---|
situacao |
string | PEDIDO, ABERTO_NA_NOMINAL cuando la institución la abrió, RECUSADO con el motivo en resposta, DEVOLVIDO o NAO_DEVOLVIDO. Después de RECUSADO puede pedir de nuevo, con otro id. |
protocolo |
string | El número de la disputa en la institución de donde salió el Pix. Viene después de abierta. |
valorRecuperado |
string | Lo que volvió del retiro después del pedido. |
prazoEm |
string | Hasta cuándo la disputa todavía se puede abrir. |
GET /v2/ex/pedidos-de-med/{id} devuelve un pedido, y GET /v2/ex/pedidos-de-med lista desde el más nuevo, por página, con idEnvio, situacao, limite y cursor. Alcance: ex.med.read. Usted recibe payout.med_pedido, payout.med_aberto, payout.med_recusado y payout.med_encerrado, con las claves del pedido.
Errores #
| Estado | title |
Cuándo |
|---|---|---|
| 400 | situacao_invalida |
Filtro de situación fuera de la lista. |
| 400 | limite_invalido |
limite fuera de 1 a 200. |
| 400 | cursor_invalido |
Cursor mal formado. |
| 400 | periodo_invalido |
de o ate fuera de AAAA-MM-DD, o de después de ate. |
| 400 | filtro_invalido |
origem distinto de PIX y CARTAO. |
| 400 | motivo_do_med_invalido |
motivo fuera de la lista, en el pedido sobre un retiro. |
| 400 | descricao_obrigatoria |
Pedido sobre un retiro sin descricao. |
| 400 | campo_desconhecido |
Pedido sobre un retiro con un campo fuera de idEnvio, motivo y descricao. |
| 404 | nao_encontrado |
La disputa, el pedido o el retiro no existe en esta cuenta. |
| 409 | med_ja_pedido |
El retiro ya tiene un pedido en curso. Su id viene en pedidoDoSaque. |
| 409 | id_duplicado |
El mismo id con otro cuerpo. |
| 422 | saque_nao_liquidado |
El retiro todavía no fue realizado. |
| 422 | prazo_do_med_vencido |
El retiro salió hace más de 80 días. |
| 422 | saque_ja_devolvido |
El valor del retiro ya volvió entero. |