> ## Documentation Index
> Fetch the complete documentation index at: https://developer.pagou.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Pix Refunds

> Issue full or partial refunds for eligible transactions and align your product and finance state to the resulting statuses.

Use refunds for paid transactions that need full or partial reversal.

## Refund operation

`PUT /v2/transactions/{id}/refund`

## Example request

```bash theme={null}
curl --request PUT \
  --url https://api.pagou.ai/v2/transactions/018f1f2e-7b42-7c9a-8d3e-1a2b3c4d5e6f/refund \
  --header "Authorization: Bearer YOUR_TOKEN" \
  --header "Content-Type: application/json" \
  --data '{
    "amount": 500,
    "reason": "requested_by_customer"
  }'
```

## Example response

```json theme={null}
{
  "success": true,
  "requestId": "0190a2b4-18a7-7de0-9a43-69b7cf261201",
  "data": {
    "message": "Partial refund processed successfully",
    "amount_refunded": 500,
    "remaining_balance": 1000,
    "is_full_refund": false
  }
}
```

## Common error

Status `409`

```json theme={null}
{
  "type": "https://api.pagou.ai/problems/conflict",
  "title": "Conflict",
  "status": 409,
  "detail": "The transaction cannot be refunded in its current state."
}
```

Fix: reconcile the transaction first and allow refunds only from eligible paid states in your own product and operator tooling.

## Operational rules

* Use your own refund request ID or ticket ID to prevent duplicate actions.
* Persist the refund request, the transaction ID, and the resulting transaction status.
* Update customer-visible finance state only after webhook confirmation or reconciliation.

## Next steps

* [Transaction Statuses](/payments/transaction-statuses)
* [Payment Events](/webhooks/payment-events)
