# Consultar infração (/docs/pix-processamento/endpoints/infractions/get_infractions_by_id)

## GET /user/infractions/{id}

`GET https://api.payzu.processamento.com/v1/user/infractions/{id}`

Obtém uma infração específica por ID.

Guia: Infrações (MED) (/docs/pix-processamento/tutoriais/infractions)

### Path params

| Field | Type | Required | Details |
| --- | --- | --- | --- |
| `id` | string | yes | ID da infração |

### Responses

**200** Detalhes da infração

| Field | Type | Required | Details |
| --- | --- | --- | --- |
| `id` | string | no | Identificador da contestação dentro da PayZu, usado nas rotas de consulta e no envio da defesa. |
| `protocol` | string | no | Código da contestação no Bacen. |
| `status` | string | no | Situação atual da contestação. — `WAITING_PSP`, `CLOSED`, `OPEN`, `CANCELLED`, `ACKNOWLEDGED`, `DEFENDED`, `ANSWERED`, `WAITING_ADJUSTMENTS` |
| `type` | string | no | Tipo da contestação: REFUND_REQUEST, FRAUD ou REFUND_CANCELLED. — `REFUND_REQUEST`, `FRAUD`, `REFUND_CANCELLED` |
| `reportedBy` | string | no | Lado que abriu a contestação: DEBITED_PARTICIPANT ou CREDITED_PARTICIPANT. — `DEBITED_PARTICIPANT`, `CREDITED_PARTICIPANT` |
| `reportDetails` | string | null | no | Motivo informado por quem abriu a contestação, no texto enviado pelo banco parceiro. |
| `analysisResult` | string | null | no | Desfecho da análise: AGREED ou DISAGREED. — `AGREED`, `DISAGREED`, `null` |
| `analysisDetails` | string | null | no | Texto complementar sobre a decisão da análise, quando o banco parceiro envia essa informação. |
| `reportedAt` | string | no | Momento em que a contestação foi aberta. — format: date-time |
| `expiresAt` | string | null | no | Prazo final para enviar a defesa desta contestação. — format: date-time |
| `transaction` | object | no | Resumo do Pix contestado. |
| `transaction.id` | string | no |  |
| `transaction.amount` | number | no | Valor da transação contestada, em reais com casas decimais. |
| `transaction.payerName` | string | null | no | Nome do pagador do Pix, conforme informado pelo provedor. |
| `transaction.payerDocument` | string | null | no | CPF ou CNPJ do pagador do Pix, conforme informado pelo provedor. |
| `transaction.receiverName` | string | null | no | Nome do recebedor do Pix, conforme informado pelo provedor. |
| `transaction.receiverDocument` | string | null | no | CPF ou CNPJ do recebedor do Pix, conforme informado pelo provedor. |
| `transaction.endToEndId` | string | null | no | Identificador fim a fim do Pix, informado pelo provedor na liquidação. |
| `defenseHistory` | object[] | no | Defesas já enviadas para esta contestação, com texto, status e anexos de cada uma. |
| `defenseHistory.id` | string | no | Identificador da defesa. |
| `defenseHistory.defense` | string | no | Texto da defesa |
| `defenseHistory.status` | string | no | Status da defesa — `PENDING`, `DEFENDED` |
| `defenseHistory.createdAt` | string | no | Momento em que a defesa foi registrada na PayZu, gravado junto com o envio dos anexos. — format: date-time |
| `defenseHistory.updatedAt` | string | no | Momento da última alteração da defesa. — format: date-time |
| `defenseHistory.files` | object[] | no | Anexos enviados junto com a defesa, com nome, tipo e tamanho em bytes. |
| `defenseHistory.files.name` | string | no | Nome do arquivo enviado como anexo da defesa. |
| `defenseHistory.files.mimeType` | string | no | Tipo MIME do anexo, informado no upload, por exemplo application/pdf ou image/png. |
| `defenseHistory.files.size` | integer | no | Tamanho do anexo em bytes. — format: int32 |
| `defenseHistory.files.url` | string | null | no | URL assinada para download (expira em 9 minutos). |

**401** Falha de autenticação

| Field | Type | Required | Details |
| --- | --- | --- | --- |
| `status` | string | yes | Marcador fixo de resposta de erro. |
| `error` | string | yes | Nome do status HTTP correspondente. |
| `errorCode` | string | yes | Código de erro estável e legível por máquina, quando disponível. |
| `message` | string | yes | Mensagem de erro legível. |
| `statusCode` | integer | yes | Código de status HTTP. |
| `requestId` | string | yes | ID único de correlação da requisição (cuid). |
| `details` | object[] | no | Erros de validação por campo, quando aplicável. |
| `details.field` | string | yes | Caminho do campo rejeitado na validação, sem a barra inicial. |
| `details.message` | string | yes | Motivo da rejeição daquele campo, em português. |
| `retryAfterSeconds` | integer | no | Segundos a aguardar antes de tentar novamente. |

**404** Infração não encontrada

| Field | Type | Required | Details |
| --- | --- | --- | --- |
| `status` | string | yes | Marcador fixo de resposta de erro. |
| `error` | string | yes | Nome do status HTTP correspondente. |
| `errorCode` | string | yes | Código de erro estável e legível por máquina, quando disponível. |
| `message` | string | yes | Mensagem de erro legível. |
| `statusCode` | integer | yes | Código de status HTTP. |
| `requestId` | string | yes | ID único de correlação da requisição (cuid). |
| `details` | object[] | no | Erros de validação por campo, quando aplicável. |
| `details.field` | string | yes | Caminho do campo rejeitado na validação, sem a barra inicial. |
| `details.message` | string | yes | Motivo da rejeição daquele campo, em português. |
| `retryAfterSeconds` | integer | no | Segundos a aguardar antes de tentar novamente. |