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

> ## Agent Instructions
> When building application code, use `@naturalpay/sdk` for TypeScript or `naturalpay` for Python.
> When operating Natural directly for a user, use the payments MCP at `https://mcp.natural.com`.
> When searching Natural documentation, use the docs MCP at `https://docs.natural.com/mcp`.
> Use the Natural CLI for terminal and CI automation.
> Use REST only for unsupported languages or when the user explicitly requests raw HTTP.
> Start integration development and testing in the sandbox. Do not use production unless the user explicitly requests it.
> For sandbox requests that require `customerPartyId`, list customers first. Reuse only the intended fixture; otherwise create a customer.
> REST and SDK amounts use integer minor units. Payments MCP amounts use decimal strings with a required currency code.

# Refunds

> Public error codes for Refunds API endpoints

All error responses follow the standard [error format](/api-reference/errors/error-handling).
Validation errors (422) and rate limit errors (429) apply to all endpoints and are documented in the [Error Handling guide](/api-reference/errors/error-handling).

| Code                               | Status | Detail                                                                                                                 |
| ---------------------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------- |
| `invalid_value`                    | 400    | The information you entered isn't valid. Please check it and try again.                                                |
| `pagination_invalid_cursor`        | 400    | The page cursor is not valid. Start the list again.                                                                    |
| `refund_already_fully_refunded`    | 400    | This payment has already been fully refunded.                                                                          |
| `refund_amount_exceeds_refundable` | 400    | The refund amount is more than what remains refundable on this payment.                                                |
| `refund_capture_not_accepted`      | 400    | The original card payment was not accepted by the processor.                                                           |
| `refund_capture_not_reversible`    | 400    | The original card payment cannot be reversed by the processor.                                                         |
| `refund_funds_unavailable`         | 400    | Your wallet balance is too low to fund this refund.                                                                    |
| `refund_invalid_amount`            | 400    | The refund amount must be positive and in the payment's currency.                                                      |
| `refund_payment_not_refundable`    | 400    | This payment intent has no successful card payment to refund.                                                          |
| `unauthenticated`                  | 401    | Authentication is required.                                                                                            |
| `forbidden`                        | 403    | You do not have permission to perform this action.                                                                     |
| `party_mismatch`                   | 403    | You can only act for your own party or a party that has authorized you.                                                |
| `refund_not_found`                 | 404    | Refund not found.                                                                                                      |
| `already_exists`                   | 409    | The resource already exists.                                                                                           |
| `conflict`                         | 409    | The request conflicts with the current resource state.                                                                 |
| `refund_chargeback_open`           | 409    | This payment is disputed and cannot be refunded.                                                                       |
| `refund_in_flight`                 | 409    | The processor is still working on another refund for this payment.                                                     |
| `refund_in_progress`               | 409    | Another refund for this payment is still in progress.                                                                  |
| `rate_limited`                     | 429    | Too many requests. Please try again later.                                                                             |
| `server_error`                     | 500    | Something went wrong.                                                                                                  |
| `bad_gateway`                      | 502    | We couldn't complete that request because one of Natural's services returned an unexpected response. Please try again. |
| `service_unavailable`              | 503    | The service is temporarily unavailable.                                                                                |
