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

# Overview

> Move money between your wallets and your linked bank accounts

A transfer (`trf_*`) moves money within one party: between your [Wallets](/guides/concepts/wallets), or between a wallet and a linked [External account](/guides/concepts/external-accounts). See [Deposit and withdraw](/guides/transfers/deposit-and-withdraw) and [Transfer between wallets](/guides/transfers/transfer-between-wallets).

## Kinds

* **Deposits** pull funds from a linked bank account into a wallet with [`POST /transfers/deposit`](/api-reference/transfers/initiate-deposit).
* **Withdrawals** push funds from a wallet back out to a linked bank account with [`POST /transfers/withdraw`](/api-reference/transfers/initiate-withdrawal).
* **Internal transfers** move funds between two of your own wallets with [`POST /transfers/internal`](/api-reference/transfers/initiate-internal-transfer).

## Lifecycle

A transfer starts `CREATED`, moves to `PROCESSING`, and ends `COMPLETED`. It can pause at `IN_REVIEW`. It ends `APPROVAL_DENIED`, `FAILED`, `RETURNED`, or `CANCELED`.

## Settlement

Deposits run over ACH. Withdrawals run over ACH by default; pass `method: "instant"` for RTP or `method: "wire"` where your account has access. Both settle asynchronously. Internal transfers move between two of your wallets and settle in the same call; read `status` on the response.

## Moving money for customers

Transfers move money within one party. To run a deposit, withdrawal, or internal transfer for a [customer](/guides/concepts/customers), pass the customer's `customerPartyId`. See [Move money for a customer](/guides/connect/move-money-for-customer).


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