Registering Your Bank Account

To complete wire transfers in USD from your Bitso account, you must first register the bank account in Bitso's systems, which creates and links an internal wire account. Only registered bank accounts can receive payouts (withdrawals). You can register multiple bank accounts, which can be your or a third party's personal or company account.

When registering a bank account for bank wire transfer payouts, the service only supports bank accounts located in the U.S., continental U.S. and its territories. Then, in addition to the account number, you need to identify your account with an ABA number, also named routing number. SWIFT codes or IBANs are not valid.

To register your bank account, make the following HTTP request using the required body parameters:

POST https://api-stage.bitso.com/v3/payments/usd/bridge/external-accounts

Body Parameters

Parameter NameDescriptionTypeRequired / Optional
account_numberID of the bank account you want to register.StringRequired
account_owner_nameThe full name of the person or company who owns the account you want to register. Ensure the name matches exactly the name of the account holder. Otherwise, the transfer might be rejected.StringRequired
addressContains the account owner’s address. See the table below for its description.ObjectRequired
bank_nameThe name of the bank that handles the account you want to register.StringRequired
routing_numberAn ABA number, also named bank routing number, a nine-digit code that identifies banking institutions in the U.S. Ensure you enter the one of the bank that handles your account. Small banks generally possess just one routing number, while large multinational banks can have several different ones, usually based on the state in which you hold the account.StringRequired
typeThe method used to transfer the funds. Valid values: wireStringRequired

The address object includes the following parameters:

Parameter NameDescriptionTypeRequired / Optional
citySpecifies the city portion of the address.StringRequired
countryIdentifies the country using an ISO 3166-1 alpha-3 code.StringRequired
postal_codeSpecifies the ZIP code of the address.StringRequired
stateSpecifies the state portion of the address using an ISO 3166 two-letter code, which is the postal abbreviation of the state.StringRequired
street_line_1First line of the street address.StringRequired
street_line_2Second line of the street address.StringOptional

The following JSON object exemplifies the request body for account registration:

{
   "bank_name":"Bank of America",
   "account_owner_name":"Crypto Technology",
   "account_number":"1283712372123255",
   "routing_number":"026009593",
   "type":"wire",
   "address":{
      "street_line_1":"Boulevard Avenue",
      "street_line_2":"Suite 373",
      "city":"La Jolla",
      "state":"CA",
      "postal_code":"92037",
      "country":"USA"
   }
}

A successful account registration creates an internal wire account and links it to your Bitso and bank accounts. The call returns the internal wire account data, as shown below:

{
    "success": true,
    "payload": {
        "id": "d8d7e471-efa2-4c1b-80b2-bdf05fbb949e",
        "bank_name": "Bank of America",
        "last_4": "3255",
        "account_owner_name": "Crypto Technology"
    }
}
🚧

Use the correct account ID.

When executing a withdrawal or retrieving information about the wire account, use the identifier (UUID) specified in the id variable to define your account. This is the identifier of the internal wire account created and linked to your bank account.

The variable last_4 stores the last four digits of your bank account number.

Fixing Possible Terms-and-Conditions Error Message

Because in the testing environment is possible to omit the KYC procedure, you might get the following error message when registering an account:

{
    "code": "bridge.terms_and_conditions_not_accepted",
    "defaultMessage": "Terms and Conditions not accepted",
    "arguments": []
}

Fix it by making the following HTTP request using the indicated body parameter, which sets the flag needed for wiring funds:

POST https://api-stage.bitso.com/v3/settings/flags

{
    "bridge_terms_and_conditions_accepted": true
}

It returns your settings, as exemplified below. Ensure the Terms and Conditions flag is set to true:

{
    "success": true,
    "payload": {
        "risk_warning_crypto_accepted": true,
        "risk_warning_trading_accepted": false,
        "user_intention_trader": false,
        "user_intention_sender": false,
        "user_intention_holder": false,
        "user_intention_buyer": false,
        "stop_loss_warning_accepted": false,
        "stop_limit_warning_accepted": false,
        "user_wallet_shift": false,
        "shift_conversion_disclaimer_accepted": false,
        "shift_terms_and_conditions_accepted": false,
        "shift_new_product_notification_read": false,
        "loyalty_referral_program_read": false,
        "hide_circle_first_deposit_modal": false,
        "domestic_wires_br_terms_and_conditions": false,
        "bridge_terms_and_conditions_accepted": true,
        "has_balance_debt": false
    }
}

Listing Your Registered Accounts

You can list the internal wire accounts linked to your bank accounts by making the following HTTP call, which returns a list of all the accounts you have registered. Currently, no endpoint exists to retrieve the information of a specific account:

GET https://api-stage.bitso.com/v3/payments/usd/bridge/external-accounts

The following response object exemplifies the output obtained:

{
    "success": true,
    "payload": [
        {
            "id": "e5d07266-e457-4038-9537-b4b4c9779b85",
            "bank_name": "Chase Bank",
            "last_4": "7922",
            "account_owner_name": "Jane Doe"
        },
        {
            "id": "d8d7e471-efa2-4c1b-80b2-bdf05fbb949e",
            "bank_name": "Bank of America",
            "last_4": "3255",
            "account_owner_name": "Crypto Technology"
        }
    ]
}

Did this page help you?