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

# List ACH transfers

> Retrieve a list of all ACH transfers.

GET/banktransfers/ach

Retrieve a list of all ACH transfers.

## URL query parameters

| Fields | Description |
| - | - |
| count integer  Optional | Number of resources to retrieve. **Allowable Values:**  1-10 |
| start\_index integer  Optional | Sort order index of the first resource in the returned array. **Allowable Values:**  Any integer |
| user\_token string  Optional | Unique identifier of the user resource. **Allowable Values:**  Existing user token |
| business\_token string  Optional | Unique identifier of the business resource. **Allowable Values:**  Existing business token |
| funding\_source\_token string  Optional | Unique identifier of the funding source. **Allowable Values:**  Existing `funding_source` token |
| statuses string  Optional | Comma-delimited list of bank transfer statuses. **Allowable Values:**  `PENDING`, `PROCESSING`, `SUBMITTED`, `RETURNED`, `COMPLETED`, `CANCELLED` |
| sort\_by string  Optional | Field on which to sort. Use any field in the resource model, or one of the system fields `lastModifiedTime` or `createdTime`. Prefix the field name with a hyphen (`-`) to sort in descending order. Omit the hyphen to sort in ascending order. **Allowable Values:**  `createdTime`, `lastModifiedTime`, or any field in the resource model **Default value:** `-lastModifiedTime` |
| expand string  Optional | Returns the full funding source object when `fundingsource` is passed. Otherwise, returns the funding source token. **Allowable Values:**  `fundingsource` or blank |
| funding\_source\_type string  Optional | Funding source type to filter. **Allowable Values:**  `USER`, `PROGRAM` |

## Response body

| Fields | Description |
| - | - |
| count integer  Conditionally returned | Number of resources retrieved. This field is returned if there are resources in your returned array. **Allowable Values:**  1-10 |
| data array of objects  Conditionally returned | Array of ACH transfer objects. Objects are returned as appropriate to your query. **Allowable Values:**  Valid array of one or more ACH transfer transition objects |
| data\[].**amount** decimal  Returned | Amount to push or pull. **Allowable Values:**  0.01 min |
| data\[].**batch\_number** string  Conditionally returned | Field required in older versions of the API, but no longer used. **Allowable Values:**  Any integer |
| data\[].**created\_time** datetime  Conditionally returned | Date and time when the ACH transfer was created, in UTC. **Allowable Values:**  datetime **Format:** yyyy-MM-ddThh:mm:ssZ |
| data\[].**currency\_code** string  Conditionally returned | Valid alpha-3 [ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html) **Allowable Values:**  Valid alpha-3 [ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html) |
| data\[].**funding\_source\_token** string  Returned | ACH funding source token for the external account. **Allowable Values:**  36 char max |
| data\[].**last\_modified\_time** datetime  Conditionally returned | Date and time when the ACH transfer was last modified, in UTC. **Allowable Values:**  datetime **Format:** yyyy-MM-ddThh:mm:ssZ |
| data\[].**memo** string  Conditionally returned | Additional text describing the ACH transfer. **Allowable Values:**  99 char max |
| data\[].**return\_code** string  Conditionally returned | Standardized ACH return code for a returned transaction, generally sent by the RDFI. Transactions can be returned for any of the reasons listed in the [NACHA ACH return codes table](https://www.marqeta.com/docs/developer-guides/ach-origination.md#_nacha_ach_return_codes) of the ACH Origination Guide. **Allowable Values:**  `R01`, `R02`, `R03`, `R04`, `R05`, `R06`, `R07`, `R08`, `R09`, `R10`, `R11`, `R12`, `R13`, `R14`, `R15`, `R16`, `R17`, `R18`, `R19`, `R20`, `R21`, `R22`, `R23`, `R24`, `R25`, `R26`, `R27`, `R28`, `R29`, `R30`, `R31`, `R32`, `R33`, `R34`, `R35`, `R37`, `R38`, `R39`, `R40`, `R41`, `R42`, `R43`, `R44`, `R45`, `R46`, `R47`, `R50`, `R51`, `R52`, `R53`, `R61`, `R67`, `R68`, `R69`, `R70`, `R71`, `R72`, `R73`, `R74`, `R75`, `R76`, `R80`, `R81`, `R82`, `R83`, `R84`, `R85` |
| data\[].**return\_reason** string  Conditionally returned | Human-readable description correlating to the `return_code`, such as `Insufficient funds`, if a return code is present in the response. **Allowable Values:**  255 char max |
| data\[].**standard\_entry\_class\_code** string  Conditionally returned | Three-letter code identifying the type of entry. - **WEB** — An internet-initiated entry - **PPD** — Prearranged Payment and Deposit - **CCD** — Corporate Credit or Debit Entry **Allowable Values:**  `WEB`, `PPD`, `CCD` |
| data\[].**statement\_descriptor** string  Conditionally returned | Description of the transaction, as it will appear on the receiver's bank statement. **Allowable Values:**  10 char max |
| data\[].**status** string  Conditionally returned | New state of the ACH transfer. **Allowable Values:**  `INITIATED`, `PENDING`, `PROCESSING`, `SUBMITTED`, `RETURNED`, `COMPLETED`, `ERROR`, `CANCELLED` |
| data\[].**token** string  Conditionally returned | Unique identifier of the ACH transfer to retrieve. **Allowable Values:**  36 char max |
| data\[].**transfer\_speed** string  Conditionally returned | Specifies how quickly to initiate the ACH transfer. **NOTE:** Same-day transfers are limited to a maximum amount of \$100,000. **Allowable Values:**  `STANDARD`, `SAME_DAY` |
| data\[].**transitions** array of objects  Conditionally returned | Array of ACH transfer transition objects. **Allowable Values:**  Valid array of one or more `transitions` objects |
| data\[].transitions\[].**bank\_transfer\_token** string  Returned | Unique identifier of the ACH transfer being transitioned. **Allowable Values:**  36 char max |
| data\[].transitions\[].**batch\_number** string  Conditionally returned | Field required in older versions of the API, but no longer used. **Allowable Values:**  Any integer |
| data\[].transitions\[].**channel** string  Returned | Mechanism by which the transaction was initiated. **Allowable Values:**  `API`, `SYSTEM` |
| data\[].transitions\[].**created\_time** datetime  Conditionally returned | Date and time when the ACH transfer was created, in UTC. **Allowable Values:**  datetime **Format:** yyyy-MM-ddThh:mm:ssZ |
| data\[].transitions\[].**last\_modified\_time** datetime  Conditionally returned | Date and time when the ACH transfer was last modified. **Allowable Values:**  datetime **Format:** yyyy-MM-ddThh:mm:ssZ |
| data\[].transitions\[].**program\_reserve\_token** string  Conditionally returned | Not currently used. **Allowable Values:**  36 char max |
| data\[].transitions\[].**reason** string  Conditionally returned | Explanation of why the transition is being made, for example "Created by POST call on API". Returned if this information was supplied when the transition was originally created. **Allowable Values:**  255 char max |
| data\[].transitions\[].**return\_code** string  Conditionally returned | Standardized ACH return code for a returned transaction, generally sent by the RDFI. Transactions can be returned for any of the reasons listed in the [NACHA ACH return codes table](https://www.marqeta.com/docs/developer-guides/ach-origination.md#_nacha_ach_return_codes) of the ACH Origination Guide. **Allowable Values:**  `R01`, `R02`, `R03`, `R04`, `R05`, `R06`, `R07`, `R08`, `R09`, `R10`, `R11`, `R12`, `R13`, `R14`, `R15`, `R16`, `R17`, `R18`, `R19`, `R20`, `R21`, `R22`, `R23`, `R24`, `R25`, `R26`, `R27`, `R28`, `R29`, `R30`, `R31`, `R32`, `R33`, `R34`, `R35`, `R37`, `R38`, `R39`, `R40`, `R41`, `R42`, `R43`, `R44`, `R45`, `R46`, `R47`, `R50`, `R51`, `R52`, `R53`, `R61`, `R67`, `R68`, `R69`, `R70`, `R71`, `R72`, `R73`, `R74`, `R75`, `R76`, `R80`, `R81`, `R82`, `R83`, `R84`, `R85` |
| data\[].transitions\[].**return\_reason** string  Conditionally returned | Human-readable description correlating to the `return_code`, such as `Insufficient funds`, if a return code is present in the response. **Allowable Values:**  255 char max |
| data\[].transitions\[].**status** string  Returned | New state of the ACH transfer. **Allowable Values:**  `PENDING`, `PROCESSING`, `SUBMITTED`, `RETURNED`, `COMPLETED`, `CANCELLED` |
| data\[].transitions\[].**token** string  Conditionally returned | Unique identifier of the bank transfer transition. **Allowable Values:**  36 char max |
| data\[].transitions\[].**transaction\_jit\_token** string  Conditionally returned | Transaction token for JIT-related ledger entries for the ACH transfer. **Allowable Values:**  Existing JIT Funding transaction token |
| data\[].transitions\[].**transaction\_token** string  Conditionally returned | Transaction token for **non**-JIT-related ledger entries for the ACH transfer. **Allowable Values:**  Existing transaction token |
| data\[].**type** string  Conditionally returned | Specifies whether the ACH transfer is a push (credit) or pull (debit). **Allowable Values:**  `PUSH`, `PULL` |
| end\_index integer  Conditionally returned | Sort order index of the last resource in the returned array. This field is returned if there are resources in your returned array. **Allowable Values:**  Any integer |
| is\_more boolean  Conditionally returned | A value of `true` indicates that more unreturned resources exist. A value of `false` indicates that no more unreturned resources exist. This field is returned if there are resources in your returned array. **Allowable Values:**  `true`, `false` |
| start\_index integer  Conditionally returned | Sort order index of the first resource in the returned array. This field is returned if there are resources in your returned array. **Allowable Values:**  Any integer |

## Sample response body

```json JSON expandable lines wrap theme={null}
{
  "count": 2,
  "start_index": 0,
  "end_index": 1,
  "is_more": false,
  "data": [
    {
      "token": "cf3b49d8-bd68-4fb1-8da5-c170cff3d788",
      "amount": 10.49,
      "memo": "Bank transfer",
      "funding_source_token": "d331b4b2-cef5-49a3-9c41-75d8f4e15cfz",
      "type": "PUSH",
      "currency_code": "USD",
      "transfer_speed": "STANDARD",
      "statement_descriptor": "ACHTRNSFR",
      "standard_entry_class_code": "WEB",
      "status": "PENDING",
      "transitions": [
        {
          "token": "0565329e-405d-45ca-9ab4-ca0cd07eca4c",
          "bank_transfer_token": "cf3b49d8-bd68-4fb1-8da5-c170cff3d788",
          "status": "PENDING",
          "reason": "Created by `POST` call on API",
          "channel": "API",
          "created_time": "2024-03-20T18:32:32Z",
          "last_modified_time": "2024-03-20T18:33:32Z"
        }
      ],
      "created_time": "2024-03-20T18:32:32Z",
      "last_modified_time": "2024-03-20T18:33:32Z"
    },
    {
      "token": "f8b8245f-fc36-49f3-9f9f-f63b159501b7",
      "amount": 100.11,
      "funding_source_token": "bbaefe8f-f5d0-43f6-8576-16f562d23f3f",
      "type": "PUSH",
      "currency_code": "USD",
      "transfer_speed": "STANDARD",
      "statement_descriptor": "ACHTRNSFR",
      "standard_entry_class_code": "WEB",
      "status": "PROCESSING",
      "transitions": [
        {
          "token": "1d208bf9-8439-4b35-9c43-6d5bc74995c7",
          "bank_transfer_token": "f8b8245f-fc36-49f3-9f9f-f63b159501b7",
          "status": "PENDING",
          "reason": "Created by `POST` call on API",
          "channel": "API",
          "created_time": "2024-03-22T18:01:00Z",
          "last_modified_time": "2024-03-22T18:02:00Z"
        },
        {
          "token": "55f5b1ac-39f6-484d-8284-116046a2efaa",
          "bank_transfer_token": "f8b8245f-fc36-49f3-9f9f-f63b159501b7",
          "status": "PROCESSING",
          "reason": "Created by `POST` call on API",
          "channel": "API",
          "created_time": "2024-03-22T18:01:17Z",
          "last_modified_time": "2024-03-22T18:01:27Z"
        }
      ]
    }
  ],
  "created_time": "2024-03-22T18:01:00Z",
  "last_modified_time": "2024-03-22T18:02:17Z"
}
```


## Related topics

- [List ACH transfer transitions](https://www.marqeta.com/docs/core-api/funding-via-ach/list-transfer-transitions.md)
- [Funding via ACH Overview](https://www.marqeta.com/docs/core-api/funding-via-ach.md)
- [Create ACH transfer](https://www.marqeta.com/docs/core-api/funding-via-ach/create-ach-transfer.md)
- [Retrieve ACH transfer](https://www.marqeta.com/docs/core-api/funding-via-ach/retrieve-ach-transfer.md)
- [Create ACH transfer transition](https://www.marqeta.com/docs/core-api/funding-via-ach/create-transfer-transition.md)
