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

# ACH

> Public error codes for ACH 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                                                                                                                 |
| ------------------------------------------ | ------ | ---------------------------------------------------------------------------------------------------------------------- |
| `ach.not_cancellable`                      | 400    | ACH is not cancellable.                                                                                                |
| `ach.rejected`                             | 400    | ACH could not be initiated.                                                                                            |
| `external_party_account.not_validated`     | 400    | ACH debits require a validated external party account.                                                                 |
| `external_party_account.validation_failed` | 400    | External party account failed bank account validation.                                                                 |
| `external_party.archived`                  | 400    | External party is archived.                                                                                            |
| `external_party.screening_not_clear`       | 400    | External party screening must be clear before ACH creation.                                                            |
| `invalid_value`                            | 400    | The information you entered isn't valid. Please check it and try again.                                                |
| `mandate.account_mismatch`                 | 400    | Mandate cannot authorize this ACH debit.                                                                               |
| `mandate.already_consumed`                 | 400    | Mandate cannot authorize this ACH debit.                                                                               |
| `mandate.amount_exceeds_terms`             | 400    | Mandate cannot authorize this ACH debit.                                                                               |
| `mandate.currency_mismatch`                | 400    | Mandate cannot authorize this ACH debit.                                                                               |
| `mandate.expired`                          | 400    | Mandate cannot authorize this ACH debit.                                                                               |
| `mandate.not_active`                       | 400    | Mandate cannot authorize this ACH debit.                                                                               |
| `mandate.not_allowed`                      | 400    | ACH credits cannot include a mandate.                                                                                  |
| `mandate.not_effective`                    | 400    | Mandate cannot authorize this ACH debit.                                                                               |
| `mandate.originator_mismatch`              | 400    | Mandate cannot authorize this ACH debit.                                                                               |
| `mandate.required`                         | 400    | ACH debits require a mandate.                                                                                          |
| `mandate.revoked`                          | 400    | Mandate cannot authorize this ACH debit.                                                                               |
| `pagination.invalid_cursor`                | 400    | Invalid pagination cursor.                                                                                             |
| `party.descriptor_name_unavailable`        | 400    | Customer party has no usable descriptor name (legal name or first and last name).                                      |
| `policy.denied`                            | 400    | ACH was denied by policy.                                                                                              |
| `wallet.insufficient_balance`              | 400    | Wallet has insufficient available balance.                                                                             |
| `wallet.required`                          | 400    | Select a wallet for this ACH.                                                                                          |
| `unauthenticated`                          | 401    | Authentication is required.                                                                                            |
| `ach.not_enabled`                          | 403    | ACH is not enabled for this program.                                                                                   |
| `forbidden`                                | 403    | You do not have permission to perform this action.                                                                     |
| `policy.forbidden`                         | 403    | ACH is not allowed by policy.                                                                                          |
| `not_found`                                | 404    | The requested resource was not found.                                                                                  |
| `already_exists`                           | 409    | The resource already exists.                                                                                           |
| `conflict`                                 | 409    | The request conflicts with the current resource state.                                                                 |
| `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.                                                                                |
| `wallet.balance_unavailable`               | 503    | Wallet balance is temporarily unavailable.                                                                             |
