Transfer funds
Move money between a Passport Account and an external bank account you own — fund it from your own bank, or sweep funds out to it.
This is a transfer of your own money, not a payment to or collection from someone else. If you're paying a third party, see Pay via ACH; if you're collecting from a customer, see Collect via ACH. For the ACH field reference, both directions use the transaction API on those pages.
Common use cases
- Fund a Passport Account from your own external bank account
- Sweep balances from a Passport Account to your operating account
- Move balances to an account you hold at another bank
- Fund or withdraw on a schedule
Choose how to move the money
You can move your own funds over different rails. Pick based on how fast you need it and how much it costs.
| Rail | Best for | Speed | Notes |
|---|---|---|---|
| ACH | Routine, cost-effective transfers | Next business day, or same day before cutoff | Lowest cost. Most funding and sweeps use this. |
| Domestic wire | Time-sensitive or higher-value transfers | Same day | Higher cost; settles faster and is final. |
| International wire | Moving funds to or from your account abroad | Varies by destination | Use when the other account is outside the US. |
| BOOK | Between two of your own Passport Accounts | Instant | Internal; no external rail. See below. |
How a transfer works
Both directions follow the transaction lifecycle — submit, validate, process, settle. The only difference is which side is your Passport Account and which is your external bank.
Before you begin
- The external bank account is linked and saved — see External Accounts.
- For a sweep out, the Passport Account has enough balance to cover the amount.
UseexternalIdfor safe retriesFor Treasury, PCE treats the
externalIdin the request body as the idempotency key — there's no separate header. Send a uniqueexternalIdper transfer; retrying with the same value creates it only once.
Fund from your own bank (ACH)
Pull money from your own external bank account into your Passport Account. The source is your linked External Account; the destination is the Passport Account.
POST /v1/customer/id/{id}/transaction
{
"externalId": "transfer-fund-ach-8a12",
"method": "ACH",
"amount": "2500.00",
"source": { "externalAccount": { "externalId": "own-bank-001" } },
"destination": { "account": { "externalId": "passport-account-001" } },
"processingDetail": { "processingMode": "SAME_DAY" }
}Funds credit to your Passport Account after the good-funds period (see transaction lifecycle). This uses the same debit mechanics as Collect via ACH — see its Request reference for all fields.
Sweep to your own bank (ACH)
Send money from your Passport Account out to your own external bank account. The source is the Passport Account; the destination is your linked External Account.
POST /v1/customer/id/{id}/transaction
{
"externalId": "transfer-sweep-ach-7f3a",
"method": "ACH",
"amount": "2500.00",
"source": { "account": { "externalId": "passport-account-001" } },
"destination": { "externalAccount": { "externalId": "own-bank-001" } },
"processingDetail": { "processingMode": "SAME_DAY" }
}This uses the same payout mechanics as Pay via ACH — see its Request reference for all fields. For statuses and tracking, see transaction lifecycle.
Settlement timing
processingMode: FORWARDsettles the next business day.SAME_DAYsettles the same day if submitted before cutoff, otherwise the next business day.
Move by wire
When you need funds to move the same day, use a wire. The request shape and full field reference live on the wire pages:
- Fund in: Pull Funds via Wire
- Sweep out: Pay via WIRE (Domestic), or Pay via International WIRE for an account outside the US
The account you own is the same linked External Account; only the method and rail-specific fields change.
Move between your own Passport Accounts (BOOK)
To move funds between two of your own Passport Accounts, use a BOOK transfer — it's internal to the system, instant, and uses no external rail. Both source and destination are Passport Accounts.
POST /v1/customer/id/{id}/transaction
{
"externalId": "transfer-book-3c90",
"method": "BOOK",
"type": "REGULAR",
"amount": "500.00",
"purpose": "Internal Transfer",
"source": { "account": { "id": "source-account-001" } },
"destination": { "account": { "id": "destination-account-001" } }
}A BOOK transfer completes instantly — SCHEDULED straight to COMPLETED, with no good-funds hold. For the full BOOK field list, see Pay via BOOK.
Paying someone else who has a Passport Account?That's a payment to a third party, not a transfer of your own money — see Pay via BOOK.
Best practices
| Practice | Description |
|---|---|
Set a unique externalId | For Treasury, PCE uses the request-body externalId as the idempotency key, so retrying with the same value never creates a duplicate transfer. |
| Pick the rail by need | Use ACH for routine funding and sweeps; reach for a wire only when same-day or finality justifies the cost. |
| Confirm the linked account once | Verify the external account is correct when you link it, so every transfer afterward is safe to automate. |
| Use webhooks for tracking | Subscribe to transaction webhooks for real-time status updates instead of polling. |
| Test in sandbox | Validate both directions, including failures and returns, before going live. |
Next steps
See also
- Pay via ACH — pay a third party (the sweep-out mechanics)
- Collect via ACH — collect from a customer (the fund-in mechanics)
- Pay via BOOK — pay another party who has a Passport Account
- Transaction lifecycle — statuses and tracking
- Error Codes and Messages — resolve a failed transfer