Withdrawals
Two ways to send funds out of a Go Account: USD to a linked bank account (ACH) or crypto to an external address.
Crypto Withdrawal
Send crypto from the Go Account to an external address or another Go Account.
Check Balance
Before withdrawing, check the available balance.
GET /api/prime/trading/v1/accounts/{goAccountId}/balances- Use
withdrawableBalanceto determine how much can be sent
Use withdrawableBalance for withdrawal checks. A customer can have funds visible in balance or tradableBalance that are not yet available to withdraw.
Send Crypto (sendcoins)
POST /api/v2/{coin}/wallet/{goAccountId}/sendcoinsaddress— the destination address or Go Account IDamount— the amount in the smallest unit (e.g., satoshis for BTC, where 100,000,000 satoshis = 1 BTC)walletPassphrase— the wallet passphrase set during Go Account creation- Returns a
transferobject with anidandtxidyou can use to track the withdrawal
Example payload (BTC):
{
"address": "<destination-address>",
"amount": "50000",
"walletPassphrase": "<passphrase>"
}
The {coin} path parameter determines which asset to withdraw. For example, use ofcbtc for Bitcoin or ofctbtc for testnet Bitcoin.
For BTC, the amount is in satoshis, not whole BTC. If you send "50000", that means 0.0005 BTC.
If withdrawal fees are configured for your account, the fee is automatically deducted from the withdrawal amount before the transaction is sent. See the Fees guide for details.
List Transfers
Track withdrawals (and deposits) for a wallet.
GET /api/v2/{coin}/wallet/{goAccountId}/transfer- Returns a list of transfers sorted by most recent first
- Each transfer includes status, amount, and confirmation details
Get a Single Transfer
GET /api/v2/{coin}/wallet/{goAccountId}/transfer/{transferId}- Use the
transferIdreturned from the sendcoins response
Fiat Withdrawal (USD to Bank)
Send USD from the Go Account back to a linked bank account. Requires an approved bank account.
Check for Approved Bank Account
Before initiating a fiat withdrawal, verify the customer has an approved bank account.
GET /api/v2/bankaccounts- Look for a bank account with
verificationState: "approved"
If the bank account is still pending verification, the customer is not ready for ACH withdrawal yet. Keep the bank-linking and withdrawal steps separate in your UI and backend flow.
Get Deposit Info
Retrieve the bank account information needed to initiate the withdrawal.
GET /api/v2/bankaccounts/deposit/infocurrency— the fiat currency (e.g.,tfiatusdfor sandbox,fiatusdfor production)goAccountId— the Go Account to withdraw from
Use tfiatusd in sandbox and fiatusd in production when retrieving the bank transfer details. Hardcoding the wrong one is an easy environment-specific failure.
Initiate Withdrawal
Send USD from the Go Account to the linked bank account.
Settlement takes 1-3 business days via partner banks.
Putting It Together
Next Steps
- Fees — How withdrawal fees are calculated
- Funding — Deposit funds back in
- Conversions — Buy or sell Bitcoin