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

# ACH credit withdrawal

> Push USD by ACH from your USD wallet to a bank trusted destination with quorum approval on every request.

<Note>
  ACH is in development. The API endpoints and webhooks on this page are provided for reference and are subject to change. Reach out to your relationship manager for beta access. See [USD rails](/knowledge-base/platform/users/usd-banking#usd-rails).
</Note>

An ACH credit withdrawal, also called an **originated credit** or **push**, sends USD from your [USD wallet](/knowledge-base/platform/users/usd-banking) to a US bank account saved as a trusted destination, over the Automated Clearing House (ACH) network. You start the payment, and every request needs quorum approval. To let an outside party pull funds from your wallet instead, see [ACH debit withdrawal](/knowledge-base/platform/developers/move-money/withdraw/usd/ach/debit).

`POST /v2/transactions/withdrawal` requires the `Initiate withdrawals` permission and an Ed25519 request signature.

## Set up a trusted destination

As with a [domestic wire withdrawal](/knowledge-base/platform/developers/move-money/withdraw/usd/wire/domestic), an ACH credit can only go to a bank trusted destination. Create one with `POST /v2/trusted_destinations`, setting `type` to `fiat` and `fiat.beneficiaryBank.code` to `ABA`. See [Create a USD trusted destination via API](/knowledge-base/platform/developers/move-money/setup/trusted-destinations#create-a-usd-trusted-destination-via-api).

## Send an ACH credit withdrawal

Set `destination.type` to `TRUSTED_DESTINATION` and `destination.id` to the fiat trusted destination ID, and include `assetParametersFiatTrustedDestination`. To find the destination ID, call `GET /v2/trusted_destinations` and filter on `type == "fiat"`.

```json theme={null}
{
  "amount": "{quantity}",
  "assetType": "USD_R",
  "source": {
    "id": "{source wallet ID}",
    "type": "WALLET"
  },
  "destination": {
    "id": "{fiat trusted destination ID}",
    "type": "TRUSTED_DESTINATION"
  },
  "assetParametersFiatTrustedDestination": {
    "purpose": "{purpose}",
    "memo": "{note to beneficiary}"
  }
}
```

Staging uses the `USD_R` asset type and production uses `USD`. The fields, `purpose` values, and response match a domestic wire withdrawal. See [Domestic wire withdrawal](/knowledge-base/platform/developers/move-money/withdraw/usd/wire/domestic#fields).


## Related topics

- [ACH debit withdrawal](/knowledge-base/platform/developers/move-money/withdraw/usd/ach/debit.md)
- [ACH credit transfer](/knowledge-base/platform/developers/move-money/transfer/usd/ach/credit.md)
- [Webhooks](/knowledge-base/porto/api-reference/v3/webhooks.md)
- [ACH debit transfer](/knowledge-base/platform/developers/move-money/transfer/usd/ach/debit.md)
- [Invoices](/knowledge-base/platform/users/web-dashboard/invoices.md)
