> ## 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.

# Transfers

> Public error codes for Transfers 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_pagination_cursor` | 400 | The page cursor is not valid. Start the list again. |
| `invalid_value` | 400 | The information you entered isn't valid. Please check it and try again. |
| `unauthenticated` | 401 | Authentication is required. |
| `forbidden` | 403 | You do not have permission to perform this action. |
| `instant_withdrawals_not_enabled` | 403 | Instant withdrawals are not enabled for this account. |
| `wire_withdrawals_not_enabled` | 403 | Wire withdrawals are not enabled for this account. |
| `external_account_not_found` | 404 | External account not found. |
| `multiwallet_not_enabled` | 404 | Multiwallet is not enabled. |
| `transfer_not_found` | 404 | Transfer not found. |
| `wallet_not_found` | 404 | Wallet not found. |
| `already_exists` | 409 | The resource already exists. |
| `conflict` | 409 | The request conflicts with the current resource state. |
| `external_account_connection_disconnected` | 409 | External account connection is disconnected. |
| `external_account_connection_login_required` | 409 | External account connection requires reauthentication. |
| `external_account_not_verified` | 409 | External account must be verified before it can be used. |
| `insufficient_funds` | 409 | The wallet does not have enough available funds. |
| `insufficient_funds` | 409 | The linked bank account has insufficient funds for this transfer. |
| `transfer_failed` | 409 | The transfer could not be completed. |
| `deposit_balance_unverified_limit_exceeded` | 422 | Deposits are limited to \$1,000 per day until your bank account balance can be verified. Reconnect your bank account to restore your full limit. |
| `deposit_tier_daily_pull_limit_exceeded` | 422 | This deposit exceeds the remaining daily bank-pull limit. Send a wire directly to your wallet to move the full amount today. |
| `instant_withdrawal_destination_not_eligible` | 422 | This bank account is not eligible for instant withdrawals. Choose standard delivery instead. |
| `transfer_limit_exceeded` | 422 | This transfer exceeds a limit on your account. |
| `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. |
| `bad_gateway` | 502 | Natural could not complete the request because one of its services returned an unexpected response. Try again. |
| `service_unavailable` | 503 | The service is temporarily unavailable. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.