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

# wire or ach_debit to custodial wallet

> Fund stablecoins in custodial wallets via wire or ACH debit transfers, or set up automations for automatic minting.

Brale makes it easy for you to fund stablecoins in custodial wallets via offchain transfer types like ach\_credit, or wire. There are three common ways of funding a custodial wallet at brale (Type=Internal) using offchain transfers:

* Submit a [Transfer](/key-concepts/transfers) request with a source value\_type of `wire`
* Submit a [Transfer](/key-concepts/transfers) request with a source value\_type of `ach_debit`
* Create an [Automation](/key-concepts/automations), which automatically mints stablecoins to a pre-configured destination wallet when funds are received via ach or wire.

## Submitting a Transfer request with a source value\_type of `wire`

Here is an example of onramping to your own stablecoin (SBC) via wire transfer by calling the Transfers endpoint with the source `transfer_type` of `wire`.

**POST** `https://api.brale.xyz/accounts/account_id/transfers`

```json Request theme={null}
{
  "amount": {
    "value": "100",
    "currency": "USD"
  },
  "source": {
    "value_type": "USD",
    "transfer_type": "wire"
  },
  "destination": {
    "address_id": "2VcUIonJeVQzFoBuC7LdFT0dRe4",
    "value_type": "SBC",
    "transfer_type": "solana"
  }
}
```

```json Response theme={null}
{
  "id": "transfer_123",
  "status": "pending",
  "amount": {
    "value": "100",
    "currency": "USD"
  },
  "source": {
    "transfer_type": "wire",
    "value_type": "USD"
  },
  "destination": {
    "transfer_type": "polygon",
    "value_type": "SBC",
    "address_id": "2VcUIonJeVQzFoBuC7LdFT0dRe4"
  },
  "wire_instructions": {
    // ...Brale bank details
  }
}
```

Initially, the status of the transfer will be `pending`. Once Brale receives the funds at the bank account provided in `source_deposit_instructions` the stablecoins will immediately be minted to the destination wallet.

## Submitting a Transfer request with a source value\_type of `ach_debit`

You can initiate ACH debits from Plaid-linked addresses. See [Addresses](https://docs.brale.xyz/key-concepts/addresses) for the full flow of linking Plaid accounts as addresses you can pull from. This guide is specifically designed for first party funding of stablecoin mints, into a Brale custodial wallet.

**POST** `https://api.brale.xyz/accounts/account_id/transfers`

```json Request theme={null}
{
  "amount": {
    "value": "100",
    "currency": "USD"
  },
  "source": {
    "address_id": "2VcUIonJeVQzFoBuC7LdFT0dRe4",
    "value_type": "USD",
    "transfer_type": "ach_debit"
  },
  "destination": {
    "address_id": "2VcUIonJeVQzFoBuC7LdFT0dRe4",
    "value_type": "SBC",
    "transfer_type": "canton"
  }
}
```

```json Response theme={null}
{
  "id": "transfer_123",
  "status": "pending",
  "amount": {
    "value": "100",
    "currency": "USD"
  },
  "source": {
    "address_id": "2VcUIonJeVQzFoBuC7LdFT0dRe4",
    "value_type": "USD"
    "transfer_type": "ach_debit",
  },
  "destination": {
    "address_id": "2VcUIonJeVQzFoBuC7LdFT0dRe4"
    "value_type": "SBC"
    "transfer_type": "canton"
  }
}
```

## Fetching Transfers

Query a transfer that has been created.

**GET** `https://api.brale.xyz/accounts/account_id/transfers/:id`

```json Response theme={null}
{
  "id": "3C0QcbwVywOGyU2HBSenljm5dhU",
  "status": "complete",
  "failure": null,
  "amount": {
    "value": "102.0",
    "currency": "USD"
  },
  "created_at": "2026-04-07T00:01:27.756775Z",
  "updated_at": "2026-04-07T00:01:44.824834Z",
  "source": {
    "transfer_type": "wire",
    "financial_institution_id": "3AjRnbvj9Mq6crkviJv08d0KLB2",
    "value_type": "USD",
    "payment_details": {
      "received_at": "2026-04-07T00:01:24.514000Z",
      "sender_name": "Originator Name",
      "sender_bank_name": "JPMorgan Chase Bank",
      "sender_bank_routing_number": "000000123",
      "payment_reference": "Simulated Wire",
      "imad": "20260406XOIZJDPP953495"
    }
  },
  "destination": {
    "transaction_id": "0x41c66f1d059dad7a55a854e157a1b5b938780c77ba5296e434a02dfb1727fe5e",
    "transfer_type": "base",
    "address_id": "3ARaM0I93ObWOIFDIztsTx4TAsp",
    "value_type": "ARB"
  },
  "note": null,
  "automation_id": "3AjRnDClEzwuCKlRioG3OXMS4pH"
}
```

<Note>
  `source.payment_details` appears when Brale has underlying payment metadata to expose for the source leg of a transfer. Wire transfers typically include the full set of fields (`sender_name`, `sender_bank_name`, `imad`, etc.). ACH transfers may include only a subset — fields may be `null` or omitted depending on available rail metadata, and may include `trace_number` as the ACH trace identifier. See [Transfers — `source.payment_details`](/key-concepts/transfers#sourcepayment_details) for the full field reference.
</Note>

## Fiat to Stablecoin Automation (Automatic Onramp)

<div className="mt-8">
  Automations provide a unique account number and routing number that accepts wire transfers and ACH deposits, and automatically reconcials funds received and mints them to a bound wallet address.
</div>

Here is an example of onramping to your own stablecoin (SBC) via wire transfer by creating a fiat-to-stablecoin automation.

**POST** `https://api.brale.xyz/accounts/account_id/automations`

```json Request theme={null}
{
  "name": "XYZ Onramp",
  "source": {
    "value_type": "USD"
  },
  "destination": {
    "address_id": "2MhCCIHulVdXrHiEuQDJvnKbSkl",
    "value_type": "SBC",
    "transfer_type": "Solana"
  }
}
```

Automations are opened in a pending state and automatically transition into processing.

When an automation becomes active, the source.funding\_instructions object is populated with the virtual account’s bank details (routing number, account number, beneficiary name, etc.). These are the coordinates you share with your customer to fund the automation.

**GET** `https://api.brale.xyz/accounts/{account_id}/automations/{automation_id}`

```json Response theme={null}
{
  "id": "35kVg1llbsOBYvx9XKr9eOtsD9z",
  "name": "Customer XYZ Automation",
  "status": "active",
  "source": {
    "transfer_type": null,
    "value_type": "USD",
    "funding_instructions": {
      "bank_address": "123 Example St, Example City, NY 10001",
      "beneficiary_address": "25 Main Ave, Suite 100, Example City, IA 50000",
      "beneficiary_name": "Company ABC",
      "routing_number": "000111222",
      "account_number": "000123456789",
      "bank_name": "Example Bank",
      "memo": null
    }
  },
  "destination": {
    "transfer_type": "solana",
    "address_id": "35LWXNTO2jem13nXCLyciFdi162",
    "value_type": "SBC"
  },
  "updated_at": "2025-11-20T15:56:05.017508Z",
  "created_at": "2025-11-20T15:56:03.531196Z"
}
```
