Initiate Account Migration

Start an asynchronous replacement of an eligible existing personal USD account.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
POST /bank_account/{account_id}/migration
Authorization: Bearer <live_api_key>

Use the original account ID and its organisation's live API key. Send no request body. Follow the authentication requirements, including request signing where required.

Before initiation, check eligibility. The source must be active, have autosweep enabled, have a zero balance, and settle to a USD wallet. Another active or pending USD account for the same holder can prevent initiation. Migration preserves the wallet settlement configuration.

HTTP 202 acknowledges the request; it does not mean migration is complete:

{
  "status": "success",
  "message": "Bank account migration initiated",
  "data": { "target_account_id": "replacement-account-id" },
  "meta": null
}

data.target_account_id is the required string ID of the replacement. Save it alongside the original ID. Retrieve progress using the original ID, and handle outstanding verification requests as described in the migration guide.

Repeated requests for the same original account return 202 with the same replacement ID, including after completion or failure. No Idempotency-Key is required. After a timeout, retrieve progress; if no migration is found, safely repeat initiation using the same original ID. Repeating initiation does not restart a failed migration.

The original account remains active while migration is pending. Completion activates the replacement and closes the original Graph account record. This operation does not transfer balances or close the account at the external bank; do not assume deposits to old details will be forwarded.

HTTP statusMeaning and next step
202Migration accepted, or an existing migration's replacement returned. Retrieve progress.
400Account missing, outside the key's scope, or ineligible for live migration. Check the original ID, key and prerequisites.
401Authentication failed or the organisation is not permitted to access accounts.
409Conflicting account, balance, settlement, or verification state. Resolve the conflict with Graph before retrying.
500Unexpected error. Retrieve progress to reconcile an uncertain result; retry initiation with the same original ID if needed.

Test keys cannot initiate migration. Sandbox issuance scenarios test RFI handling, not account migration.

Path Params
string
required

Original account ID, including for repeat requests and completed migrations.

Responses

Language
Credentials
Header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json