Skip to main content
Walk through a basic integration flow: confirm your account, link a bank account, get wire instructions, simulate a deposit, and verify the balance.
The Digital Asset Accounts API base URL is https://api-sandbox.circle.com for sandbox and https://api.circle.com for production. Set your API key in the Authorization header using the format Bearer YOUR_API_KEY. See Sandbox environment and Going to production for environment details.

Prerequisites

Before you begin, ensure that you’ve:
  • Obtained an API key for Digital Asset Accounts from your Circle representative.
  • Onboarded a business end user and recorded its clientEntityId and active accountId. See Onboard customers.
  • Run a device check for the end user and kept the deviceId it returned. The link-bank-account request in Step 2 requires the deviceId in riskSignals. See Collect device risk signals.
  • (Recommended) Configured a webhook subscription for tracking asynchronous events.
  • Checked whether Strong Customer Authentication (SCA) applies to your end users. Circle requires SCA for end users in the European Economic Area (EEA). See Implement SCA.
  • Set up mutual TLS (mTLS) for your entity’s API traffic before going to production, if your entity operates in the EEA under the Markets in Crypto-Assets (MiCA) regulation.

Step 1: Check your account balance

Confirm the account exists and check the starting balance:
Replace ACCOUNT_ID with your account ID and YOUR_API_KEY with your Bearer token.
Link the end user’s bank account. Circle uses it to match incoming wires and as the destination for withdrawals.
Response
The response is trimmed to the fields this quickstart uses. Save the id: it’s the WIRE_ID you use in the next step. For end users in the EEA, this request also needs SCA headers, and you can link an IBAN instead. See Wire deposits and withdrawals.

Step 3: Get wire instructions

Retrieve the wire instructions for the linked bank account. Wire instructions are the bank routing details your customer uses to send a wire transfer.
The response includes a trackingRef that must be included in the wire transfer:

Step 4: Simulate a wire deposit

In sandbox, simulate a wire deposit using the mock payments endpoint. In production, your customer sends a real wire transfer using the instructions from step 3.
The deposit starts in pending status (see Transaction states) and settles instantly in sandbox:

Step 5: Verify the balance

After the deposit settles, check that the funds appear in your account:
The balance now reflects the deposited amount:
You now have a funded account in sandbox. See Account structure to understand how programs, accounts, and subaccounts relate.