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

# Perform faster funds ACH transfer

> Use this endpoint to post funds from an existing bank transfer more quickly to the cardholder's account.

POST/banktransfers/ach/earlyfunds

Use this endpoint to post funds from an existing bank transfer more quickly to the cardholder's account.

## Request body

| Fields | Description |
| - | - |
| bank\_transfer\_token string  Required | Unique identifier of the ACH transfer whose funds you want to post more quickly to the cardholder's account. **Allowable Values:**  36 char max  Existing ACH transfer token |

## Sample request body

```json JSON lines wrap theme={null}
{
  "bank_transfer_token": "cf3b49d8-bd68-4fb1-8da5-c170cff3d788"
}
```

## Response body

| Fields | Description |
| - | - |
| amount decimal  Returned | Amount to push or pull. **Allowable Values:**  0.01 min |
| batch\_number string  Conditionally returned | Field required in older versions of the API, but no longer used. **Allowable Values:**  Any integer |
| 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 |
| 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) |
| funding\_source\_token string  Returned | ACH funding source token for the external account. **Allowable Values:**  36 char max |
| 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 |
| memo string  Conditionally returned | Additional text describing the ACH transfer. **Allowable Values:**  99 char max |
| 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` |
| 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 |
| 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` |
| statement\_descriptor string  Conditionally returned | Description of the transaction, as it will appear on the receiver's bank statement. **Allowable Values:**  10 char max |
| status string  Conditionally returned | New state of the ACH transfer. **Allowable Values:**  `INITIATED`, `PENDING`, `PROCESSING`, `SUBMITTED`, `RETURNED`, `COMPLETED`, `ERROR`, `CANCELLED` |
| token string  Conditionally returned | Unique identifier of the ACH transfer to retrieve. **Allowable Values:**  36 char max |
| 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` |
| transitions array of objects  Conditionally returned | Array of ACH transfer transition objects. **Allowable Values:**  Valid array of one or more `transitions` objects |
| transitions\[].**bank\_transfer\_token** string  Returned | Unique identifier of the ACH transfer being transitioned. **Allowable Values:**  36 char max |
| transitions\[].**batch\_number** string  Conditionally returned | Field required in older versions of the API, but no longer used. **Allowable Values:**  Any integer |
| transitions\[].**channel** string  Returned | Mechanism by which the transaction was initiated. **Allowable Values:**  `API`, `SYSTEM` |
| 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 |
| 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 |
| transitions\[].**program\_reserve\_token** string  Conditionally returned | Not currently used. **Allowable Values:**  36 char max |
| 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 |
| 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` |
| 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 |
| transitions\[].**status** string  Returned | New state of the ACH transfer. **Allowable Values:**  `PENDING`, `PROCESSING`, `SUBMITTED`, `RETURNED`, `COMPLETED`, `CANCELLED` |
| transitions\[].**token** string  Conditionally returned | Unique identifier of the bank transfer transition. **Allowable Values:**  36 char max |
| 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 |
| transitions\[].**transaction\_token** string  Conditionally returned | Transaction token for **non**-JIT-related ledger entries for the ACH transfer. **Allowable Values:**  Existing transaction token |
| type string  Conditionally returned | Specifies whether the ACH transfer is a push (credit) or pull (debit). **Allowable Values:**  `PUSH`, `PULL` |

## Sample response body

```json JSON expandable lines wrap theme={null}
{
  "token": "cf3b49d8-bd68-4fb1-8da5-c170cff3d788",
  "amount": 10.49,
  "memo": "Bank transfer",
  "funding_source_token": "d331b4b2-cef5-49a3-9c41-75d8f4e15cfz",
  "type": "PULL",
  "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:32:32Z"
    }
  ],
  "created_time": "2024-03-20T18:32:32Z",
  "last_modified_time": "2024-03-20T18:32:32Z"
}
```


## Related topics

- [ACH Origination](https://www.marqeta.com/docs/developer-guides/ach-origination.md)
- [Funding via ACH Overview](https://www.marqeta.com/docs/core-api/funding-via-ach.md)
- [Instant Card Transfers](https://www.marqeta.com/docs/developer-guides/instant-card-transfers.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)
