Close Navigation

Account Management API

Account Management Introduction

Interactive Brokers (IBKR) Account Management API is available for Registered Advisors and Introducing Brokers that would like to customize IBKR’s Registration System and Client Portal or control client experience.

Client Registration

  • Create New Account
  • View Account Status
  • View Registration Tasks
  • Complete Registration Tasks

Account Maintenance

  • Update Account Information
  • Manage Account Settings
  • Manage Trade Capabilities
  • Fee Administration

Funds and Banking

  • Cash Transfers
  • Configure Recurring Transactions
  • Manage Banking Instructions
  • Position Transfers
  • View Transactions

Reporting

  • Generate Client Statement(s)
  • Retrieve Tax Form

Authentication

  • Connect user to IBKR white branded platform.

The Account Management API can be used in parallel or as a replacement to the IBKR Portal which is our out of the box solution available to registered advisors and introducing brokers free of cost.

Audience

Service is available by request only to advisors/brokers that are registered in a FATF Country. See Setup Process for instructions on how to get started.

Connectivity

IBKR’s Web API implementation follows standard HTTP verbs for communication. It employs a range of HTTP status codes and JSON-formatted messages to convey operation status and error information. To ensure secure communication, all API requests must use HTTPS. Authorization and Authentication for IBKR’s Web API is managed using OAuth 2.0.

Authentication

IBKR only supports private_key_jwt client authentication as described in RFC 7521 and RFC 7523.

  • Client authenticates against the authorization server by presenting a signed JWT token called a client_assertion which the authorization server validates against the public key(s) provided by the client during registration.
  • This scheme is considered safer than the standard client id/client secret authentication scheme used in early OAuth 2.0 integrations given that it prevents the client from having to pass the client secret in back-end requests.

Data Transmission

User requests will be sent to IBKR in JSON format using HTTPS.

  • [POST] and [PATCH] will include JSON request that is encoded in base64.
  • Maximum request size is 20MB
  • There is no restriction on maximum response size

System Availability

Service TypeDowntime
Client Registration and Account Maintenance
/gw/api/v1/accounts*
/gw/api/v1/statements*
/gw/api/v1/tax-documents*
/gw/api/v1/enumerations*
Daily between 6pm ET-6:01pm ET.
Sundays and Tuesdays between 6pm ET to 6:30pm ET
Funds and Banking
/gw/api/v1/bank-instructions*
/gw/api/v1/client-instructions*
/gw/api/v1/instruction*
/gw/api/v1/external-asset-transfers*
/gw/api/v1/external-cash-transfers*
/gw/api/v1/internal*
Daily between 11:45pm ET-12:30am ET
Saturdays (any time), Sundays before 3PM ET

System Status: https://www.interactivebrokers.com/en/software/systemStatus.php

Rate Limiting

Interactive Brokers enforces a global request rate limit for the Account Management Web API:

  • 10 requests per second per endpoint
  • 600 requests per minute per master account (10 requests × 60 seconds)
Authentication Scope

Authentication for the Account Management API operates at the master account level, distinguishing it from the trading API’s user-level authentication structure.

Exceeding Rate Limits

If your application exceeds these established rate limits, the API will respond with a 429 HTTP status code (Too Many Requests).

Support

IBKR has a designated API team that is available for 24/5 support via email and will be primary point of contact during the integration process.

  • Account Management API: am-api@interactivebrokers.com
  • Trading API: api@interactivebrokers.com

What We Provide

Figuring out where to begin start is the hardest part. To assist with getting started, we have created guides and API references which include everything you need to program your interface for Client Registration, Account Maintenance, Trading, and Portfolio Management. Your designated integration manager will be available for weekly calls throughout the integration process and up to 3 months after going live.

Resources

To help better understand the API endpoints, we suggest installing postman and install our postman collection and environment.

Setup Process

IBKR’s account registration system and client portal are carefully engineered to meet our requirements; any request to outsource application workflow requires additional approval. We have summarized steps involved to use API for registration and funding in sequential order.

Preliminary

  1. Send an email to api-solutions@interactivebrokers.com with the following:
    • Firm Name
    • Firm Role (ie. Introducing Broker, Financial Advisor OR Third Party Service Provider)
    • API Services which you are interested in using (ie. Registration, Funding, Single Sign On, View Portfolio Data, Trading, Reporting)
    • Describe intended usage (1-2 sentences)
  2. A rep from our API team will provide link to complete an integration questionnaire (electronically).
  3. Upon completing the questionnaire, a representative from our API solutions team will reach out to schedule an introductory call to assess needs and determine services required for a successful integration.

Build and Test

Access to QA environment will be granted upon agreement of the integration requirements.

  1. To setup the QA (sandbox) environment for Registration and Funding API, provide the following to am-api@interactivebrokers.com:
    • RSA key
      • Size: 3072 or 4096
      • Format: PEM
      • IP Addresses (CIDR Format)
    • Signed Services Agreement
  2. IBKR will provide QA credential which can be used to access QA.
  3. Build interface and test IBKR’s APIS.

Go Live

  1. If all development work is complete and your team is ready to go live with the API integration, complete following:
    • Provide IBKR with RSA Key for production using the IBKR message center.
      • RSA key for production cannot be same as key that is used for QA
    • Contact your API integration manager with the following:
      • Web ticket number associated with RSA Key
      • Summary of services which will be offered within platform
        • Example: Hybrid registration, account deposits, single sign on for client portal, add trading permissions
      • Instructions to access application interface in QA
      • Screenshots of registration journey in sequential order (PDF)
      • Signed Services Agreement (if this was not done during preliminary steps).
  2. IBKR will review and test interface.
  3. IBKR will send email with approval status of interface. If approved, IBKR will provide production credentials (Client ID) to your team using the IBKR message center.
  4. Test connectivity with the production credentials. If successful, provide following to your IBKR API integration manager:
    • URL address to the application in the Production Environment.
    • Contacts for Production (operations and maintenance).
  5. Launch to Production

Client Registration

The accounts endpoint can be used to create a brokerage account with IBKR using the API. For client registration using the API, we offer two options:

  • Full Integration: Hosting firm provides all data and forms required to create IBKR brokerage account via API.
  • Hybrid: Submit partial application data to IBKR via API to create the account. User will enter remaining application data via the IBKR White Branded application. The application will be prefilled with data that was passed via the API.
    • Connect user to IBKR White Branded Registration using Single Sign On. Alternatively, provide user with login URL to access IBKR Portal. Upon accessing IBKR Portal, user will be prompted to complete registration journey.

Available registration options at IBKR including IBKR hosted solutions can be found here.

Full Integration versus Hybrid

It is important to determine which option your team will use for client registration before starting the the technical integration. If you are just getting started or development team has limited capacity, we suggest using our Hybrid option and transition to Full Integration in later phase (if desired).

The table below includes the differences between Full Integration and Hybrid for client registration.

TypeFull IntegrationHybrid
Hosting FirmCounterpartyCounterparty & IBKR
Development WorkYesMinimal
EligibilityAvailable to Registered Advisors and Introducing Brokers with approval from IBKR managementAvailable to Registered Advisors and Introducing Brokers.
CustomizationYes- design is managed by hosting firm.Partial- IBKR platform will reflect your branding (Company name, logo, and color scheme).
CostYes, the hosting firm is subject to an upfront and annual fee.
Pricing model takes into account the complexity of the integration and scope of services needed.
Yes, the hosting firm [counterparty] is subject to an upfront and annual fee. Pricing model takes into account the complexity of the integration and scope of services needed.
Supported PlatformsDetermined by hosting firm.Browser on desktop OR mobile device
Supported Customer TypesIndividual
Joint
Retirement (U.S. and Canada)
ISA (United Kingdom)
JISA (United Kingdom)
SMSF (Australia)
Individual
Joint
Retirement (U.S. and Canada)
ISA (United Kingdom)
JISA (United Kingdom)
SMSF (Australia)
Organization (Corporation, LLC, Partnership)
Trust
Minimum DataAll application data including documents (agreements, disclosures, and completed tax form) if applicable. Table here for required data based on Account Type and Customer Type.Fully-Disclosed and Advisor Clients: IBKR minimally requires Name, Email, and Country of Residence to create an account.
Non-Disclosed: All application data with exception of completed tax form is required.

Data for Client Registration

The information necessary to establish a client account through our API varies based on several key factors:

  1. Customer Type 
    • FD= Fully-Disclosed Introducing Broker
    • FA= Registered Investment Advisor
    • OWD= One Way Disclosed Introducing Broker
    • NonQI= Non-Disclosed Introducing Broker ; Non Qualified Intermediary
    • QI with Trading= Non-Disclosed Introducing Broker; Qualified Intermediary where clients have access to trading
    • QI with No Trading= Non-Disclosed Introducing Broker; Qualified Intermediary where clients do not have access to trading via IBKR system (eg. Trades will be placed via FIX).
  2. Registration Type
    • Hybrid
    • Full Integration
  3. Account Type
    • Retail = Individual, Joint, Retirement, ISA
    • Entity = SMSF, Trust, Organization
  4. IBKR Entity Driven by entity which master account is associated with. While accounts are accepted from citizens or residents of all countries except citizens or residents of those countries that are prohibited by the US Office of Foreign Assets Control, advisors/brokers may be limited from opening accounts for applicants that reside in the following countries:
    • United States: Available to U.S. based IB-LLC brokers and advisors only.
    • Canada: Available to IB-CAN brokers and advisors only.
    • Hong Kong: Available to IB-HK brokers and advisors only.
    • Australia: Available to IB-AU brokers and advisors only.
    • Japan: Available to IBLLC brokers and advisors that are FSA Registered only.
    • United Kingdom: Available to IB-UK brokers only.
    • Singapore: Available to IB-SG brokers and advisors only.
    • EEA: Available to IB-IE or IB-CE brokers and advisors only.
AustriaCyprusFinlandHungaryLativaMaltaPortugalSpain
BelgiumCzech RepublicFranceIcelandLiechtensteinNetherlandsRomaniaSweden
BulgariaDenmarkGermanyIrelandLithuaniaNorwaySlovakia 
CroatiaEstoniaGreeceItalyLuxembourgPolandSlovenia 

Expand each section to see specific data requirements by Customer Type. Refer to schema for structure of the JSON.

ObjectFDFAOWDNonQIQI With TradingQI No Trading
Account Holder(s)*
email*YYY- email address of broker OR client is accepted.Y- email address of broker OR client is accepted.Y- email address of broker OR client is accepted.Y- email address of broker OR client is accepted.
name*
first, last
YYYYYY
dateOfBirthYYYYYN
countryOfBirthYYYYYN
numDependentsYYNNNN
maritalStatusYYNNNN
identification 
ID Document, citizenship
YYYYYN
mailingAddress
country*, state, city, street1, postalCode
YYYYYN
residenceAddress
country*, state, city, street1, postalCode
YYYYYY- country only.
phones
number, type- Mobile Required
YYNNNN
employmentTypeYYYNNN
employmentDetails
If EMPLOYED or SELFEMPLOYED: employer, occupation, employerBusiness, employerAddress
YYYNNN
taxResidencies*
country and tin
YYYYNN
Tax Form
w8Ben, w9
YYYYNN
withholdingStatementNNNNYY
IBKR Agreements and DisclosuresYYNNNN
Proof of Address and Proof of ID DocumentsY (If Trulioo Verification is NoMatch)Y (If Trulioo Verification is NoMatch)Y (If Trulioo Verification is NoMatch)Y (If Trulioo Verification is NoMatch)Y (If Trulioo Verification is NoMatch)N
Account Information
financialInformation 
netWorth, liquidNetWorth, annualNetIncome
YYYNNN
sourcesOfWealthYYYNNN
investmentExperience yearsTrading, tradesPerYear, knowledgeLevelYYNNNN
regulatoryInformation account holder or immediate family member controller, employee of a publicly traded company or a registered repYYYNNN
accounts*
baseCurrency, margin
YYYYYY
tradingPermissions*YYYYYY
investmentObjectivesYYNNNN
advisorWrapFees*NYNNNN
IRA Beneficiaries
name
first, last
YY
dateOfBirthYY
relationshipYY
ownershipYY
identification 
citizenship
YY
mailingAddress
country, state, city, street1, postalCode
NN
residenceAddress
country*, state, city, street1, postalCode
YY
ObjectFDFA
Junior Contact InformationYY
name*
first, last
YY
residenceAddress
country*, state, city, street1, postalCode
YY
mailingAddress
country*, state, city, street1, postalCode
YY
dateOfBirthYY
countryOfBirthYY
identification 
ID Document, citizenship
YY
taxResidencies*
country and tin
YY
sourcesOfWealthYY
Tax Form
w8Ben
Registered Contact
email*YY
name*
first, last
YY
dateOfBirthYY
countryOfBirthYY
mailingAddress
country*, state, city, street1, postalCode
YY
residenceAddress
country*, state, city, street1, postalCode
YY
identification 
ID Document, citizenship
phones
number, type- Mobile Required
YY
employmentTypeYY
employmentDetails
If EMPLOYED or SELFEMPLOYED: employer, occupation, employerBusiness, employerAddress
YY
IBKR Agreements and DisclosuresYY
Proof of Address and Proof of ID DocumentsY (If Trulioo Verification is NoMatch)Y (If Trulioo Verification is NoMatch)
Account Information
financialInformation 
netWorth, liquidNetWorth, annualNetIncome
YY
investmentExperience yearsTrading, tradesPerYear, knowledgeLevelYY
regulatoryInformation account holder or immediate family member controller, employee of a publicly traded company or a registered repYY
accounts*
baseCurrency, margin
YY
tradingPermissions*YY
investmentObjectivesYY
advisorWrapFees*YY
title
code
YY
ObjectFDFAOWDNonQIQI with TradingQI No Trading
Trustee(s)
trustees authorizedToSignOnBehalfOfOwner, authorizedTrader, primaryTrusteeYYYYNN
email*YYY- email address of broker OR client is accepted.Y- email address of broker OR client is accepted.Y- email address of broker OR client is accepted.Y- email address of broker OR client is accepted.
name*
first, last
YYYYYY
dateOfBirthYYYYYN
countryOfBirthYYYYYN
identification 
ID Document, citizenship
YYYYYN
mailingAddress
country*, state, city, street1, postalCode
YYYYYN
residenceAddress
country*, state, city, street1, postalCode
YYYYYY- country only.
phones
number, type- Mobile Required
YYNNNN
employmentTypeYYYNNN
employmentDetails
(If EMPLOYED or SELFEMPLOYED) employer, occupation, employerBusiness, employerAddress
YYYNNN
taxResidencies*
country and tin
YYYYNN
Proof of Address and Proof of ID DocumentsY (If Trulioo Verification is NoMatch)Y (If Trulioo Verification is NoMatch)Y (If Trulioo Verification is NoMatch)Y (If Trulioo Verification is NoMatch)Y (If Trulioo Verification is NoMatch)N
Trust Information
identification
dateFormed, formationCountry, formationState, name, registrationCountry, registrationNumber, registrationType, typeOfTrust
YYYYNN
address
country*, state, city, street1, postalCode
YYYYNN
financialInformation 
netWorth, liquidNetWorth, annualNetIncome
YYYNNN
sourcesOfWealthYYYNNN
investmentExperience yearsTrading, tradesPerYear, knowledgeLevelYYNNNN
regulatoryInformationN/A- User will answer questions when completing online steps.N/A- User will answer questions when completing online steps.YNNN
accounts
baseCurrency, margin
YYYYYY
tradingPermissionsYYYYYY
investmentObjectivesYYNNNN
advisorWrapFeesNYNNNN
Grantors
name
first, last
YN
dateOfBirthYN
relationshipYY
identification 
citizenship
YY
mailingAddress
country, state, city, street1, postalCode
NN
residenceAddress
country*, state, city, street1, postalCode
NN
Beneficiaries
name
first, last
YY
ownershipPercentageYY
ObjectFDFAOWDNonQIQI with TradingQI No Trading
Associated Entities
associatedIndividual authorizedToSignOnBehalfOfOwner, authorizedTraderYYYYNN
email*YYY- email address of broker OR client is accepted.Y- email address of broker OR client is accepted.Y- email address of broker OR client is accepted.Y- email address of broker OR client is accepted.
name*
first, last
YYYYYY
dateOfBirthYYYYYN
countryOfBirthYYYYYN
identification 
ID Document, citizenship
YYYYYN
mailingAddress
country*, state, city, street1, postalCode
YYYYYN
residenceAddress
country*, state, city, street1, postalCode
YYYYYY- country only.
phones
number, type- Mobile Required
YYNNNN
employmentTypeYYYNNN
employmentDetails
(If EMPLOYED or SELFEMPLOYED) employer, occupation, employerBusiness, employerAddress
YYYNNN
taxResidencies*
country and tin
YYYYNN
Proof of Address and Proof of ID DocumentsY (If Trulioo Verification is NoMatch)Y (If Trulioo Verification is NoMatch)Y (If Trulioo Verification is NoMatch)Y (If Trulioo Verification is NoMatch)Y (If Trulioo Verification is NoMatch)N
Organization Information
organization
tradeIntentionType, type, typeOfTrading, usTaxPurposeType
YYYYYY
taxResidencies*
country and tin
YYYYNN
identification
businessDescription, formationCountry, identification, identificationCountry, name
YYYYNN
placeOfBusiness
country*, state, city, street1, postalCode
YYYYNN
financialInformation 
netWorth, liquidNetWorth, annualNetIncome
YYYNNN
sourcesOfWealthYYYNNN
investmentExperience yearsTrading, tradesPerYear, knowledgeLevelYYNNNN
regulatoryInformationN/A- User will answer questions when completing online steps.N/A- User will answer questions when completing online steps.YNNN
accounts
baseCurrency, margin
YYYYYY
tradingPermissionsYYYYYY
investmentObjectivesYYNNNN
advisorWrapFeesNYNNNN

*Required for Hybrid; otherwise optional if coordinated with the API Solutions team. If provided for Hybrid, data will be prefilled.

KYC Documents

Identity and Address Verification

Real-time Trulioo verification is processed upon account creation for selected countries. If Trulioo verification is not successful, OR Trulioo verification is not supported or the country which the applicant resides in, Identity and Address verification is required for approval.

Trulioo is supported for applicants that reside in following countries

ArgentinaChinaMalaysiaRussian FederationTurkey
AustraliaDenmarkMexicoSingaporeUnited Kingdom
AustriaFranceNetherlandsSouth AfricaUnited States
BelgiumGermanyNew ZealandSpain 
BrazilIrelandNorwaySweden 
CanadaItalyPortugalSwitzerland 

Other countries

  • Identity and Address verification will always be required for approval.

Options for Identity and Address Verification

Option 1: Traditional Verification

Collect Proof of ID and Proof of Address documents from the client and submit documents to IBKR documentSubmission.

Registration Tasks

  • 8001: Proof of Identity (POI)
  • 8002: Proof of Address (POA)

Important to note: For IB-HK Non-Disclosed (QI and NonQI) clients, we only require Proof of Identity (8001).

Processing Time

IBKR has a ‘follow the sun’ model with operators located globally and constantly reviewing and processing supporting documents for new applications. Documents typically processed within 24 hours. Meaning, accounts are approved/opened within 24 hours of the supporting documents being accepted by IBKR.
Causes for delays could be unsupported doc type is submitted or image received is blurry/too dark

Option 2: Instant Verification

Opt to allow clients to verify using Au10tix (third-party application used to verify client’s identity /geo location).

  • If Trulioo is NoMatch, IBKR will pass unique URL which can be used to connect user to Au10Tix to complete verification. The URL is valid for 24 hours. If more than 24 hours, a new URL will need to be generated using /api/v1/accounts/{{accountId}}/kyc endpoint.

Workflow:

  • Embed Au10Tix URL or provide a QR code with Au10Tix URL within application.
  • User accesses Au10Tix URL and will be prompted to complete consent message verifying they are OK for Au10Tix to capture Biometric information.
    • If user consents, they will be prompted to take photos of the front and back of their ID’s and take a selfie.
    • Au10Tix will process information and complete ID verification.
    • If Au10Tix verification fails; user will be required to complete ‘Traditional Verification) and Provide a Proof of Address and Proof of Identity Document.
  • If user declines consent, they will be prompted to complete Traditional Verification

Processing Time

Real-Time verification is completed- if Au10Tix verification passes; account will be approved/opened (Real-Time).

Registration Tasks

  • 8137: Au10Tix Identity and Address Verification
  • 8437: Au10Tix Identity

Important: While partners may implement Traditional Verification as their primary verification method, in certain risk-based scenarios determined by IBKR compliance, Au10Tix verification may be required even if Traditional Verification was initially assigned or completed. This requirement is non-negotiable and is triggered by IBKR’s internal risk assessment protocols. Failure to implement support for both verification methods may result in users being unable to complete the account opening process in certain scenarios. All partners are expected to support both verification paths either through direct API implementation or SSO fallback capability.

Agreements and Disclosures

Fully-Disclosed and Advisor clients are required to sign IBKR customer agreements and disclosures.

  • Full Integration: Hosting firm will display IBKR agreements and disclosures within interface and collect electronic signature.
  • Hybrid: End use signs IBKR agreements via the IBKR White Branded Platform

This section covers handling agreements and disclosures for clients using Full Integration.

Download IBKR Agreements and Disclosures

NameTypeDescription
getDocs requiredT
F
T= True (Documents will be pulled)
F= False (Documents will not be pulled) 
fromDate requiredYYYY-MM-DDView forms that are updated as of fromDate
toDate requiredYYYY-MM-DDView forms that are updated between fromDate and toDate
formNoStringForm Number. If provided; only single formNo is supported per request. If excluded, endpoint will return all forms that meet the given criteria.
projectionDOCS
NONE
PAYLOAD
Determine output

Submit Agreements and Disclosures

The /gw/api/v1/accounts/documents endpoint provides mechanism to submit Agreements and Disclosures to IBKR once a day instead of with each application. We store these documents on the servers and will use them for new application requests submitted that day.

  • Documents will need to be submitted once a day (before the Applications are submitted). PDFs will be displayed and submitted as is- no changes/edits will be made to the actual PDF files.
  • This end-point will not process any Tax Form Documents. Tax Form document should be submitted with every application
  • If submitted in the morning, you only need to include the Tax Form attachment for each applicant. Otherwise, you will need to include PDFs with each application (Create Account).
NameTypeDescription
fileNameStringFile name of the PDF document submitted to IBKR. fileName included within the documents request must match the fileName of the PDF file that is included within the signed request.
Acceptable formats: .jpeg, .jpg, .pdf, .png
Max size: 10 MB
fileLengthStringLength of the PDF form.
sha1ChecksumStringSHA-1 is crypto algorithm that is used to verify that a file has been unaltered. This is done by producing a checksum before the file has been transmitted, and then again once it reaches its destination.
formNumberStringUse /gw/api/v1/accounts/{accountId}/tasks to view a list of forms that are required for approval.
execTimestampYYYYMMDDHHMMSSTimestamp when agreement was submitted to IBKR.
execLoginTimestampYYYYMMDDHHMMSSTimestamp when agreement was submitted to IBKR.
mimeTypeapplication/pdf
application/pdf
image/png
image/jpeg (Includes .jpeg, .jpg)
Format of the file.
dataStringIncludes document encoded in base64.
{
        "processDocuments":
            {
                "documents": [
                    {
                        "attachedFile": {
                            "fileName": "Form3024.pdf",
                            "fileLength": 432177,
                            "sha1Checksum": "03D899BA757F617C907A1F021D7046AC1DAC8707"
                        },
                        "payload": {
                            "mimeType": "application/pdf",
                            "data": pm.collectionVariables.get('form3024')
                        },
                        "formNumber": 3024,
                        "execLoginTimestamp": 20210929123113,
                        "execTimestamp": 20210929123113
                    }
                ],
                "inputLanguage": "en",
                "translation": false
            }
    }

Processing of IBKR Agreements and Disclosures

  • Hosting firm will display IBKR agreements and disclosures within interface and collect electronic signature.
    • Collect a signature for each form OR display all forms on a single page with a single signature box at the bottom and pass that signature within the documents section for each form.
    • Example of IBKR’s Application as a reference
  • The signature, which is collected will be included in the signedBy section of the documents.
  • Hosting firm will provide copy of the IBKR agreements which were presented to user in the application payload that is submitted to IBKR for client registration.
    • No changes should be made to the PDF (We validate the forms using sha1checksum if alterations have been made, error will be triggered and the form will not be accepted.
  • If a form is updated, hosting firm has a 7-calendar day grace period to update the form.

Account Statuses

The status of an account can be one of the following:

StatusDescription
AAbandoned; deleted application. Only pending or new applications can be abandoned.  An account can be abandoned due to inactivity (after 135 days) OR if Broker OR client initiates request to abandon the application.
NPending application and no funding details have been provided.
OOpen; Account has been approved and opened by IBKR. This is considered an active account.
CClosed; Account that was once active OR opened accounts that were and then closed.
PPending application and funding instructions have been provided.
RRejected; account was never approved/opened- rejected by Compliance)
EReopen request is pending.
QBulk migration account that is not yet approved by IBKR.

The status can change from:

N > PN > RP > RA > PO > CE > O
N > ON > AP > AA > OC > OQ > R
N > PP > OA > NA > RC > EQ > O

Close Account

The accountClose can be used to close an opened account based on the accountId. Within the body of the request, include reason for account closure (closeReason).

  • Accounts eligible to be closed must have current status of O or Q and must have a cleared balance. If an account is funded at the time which the closure request is submitted, the request will be rejected.
  • If status Q account is closed, status will move to R (rejected)

Requests are processed between 8am EST to 11am EST. Requests received outside of these hours will be processed the following day.

POST /gw/api/v1/accounts/close

{
  "accountManagementRequests": {
   "accountClose": {
      "accountId": "U1233457",
      "closeReason": "time to go"
    }
  }
 

Reopen Account

The reopenAccount can be used to reopen an opened account based on the accountId.

  • The following accounts are eligible for reopening:
    • Fully-Disclosed and Advisor subs that originate using Hybrid
    • Current status of C (Closed)

Once the reopen request has been submitted, the end user must log into the IBKR Portal to review application information and sign updated agreements and disclosures. The request will not be processed until this step is completed.

PATCH /gw/api/v1/accounts

{
  "accountManagementRequests": {
   "reopenAccount": {      
   "accountId": "U1233457"
    }
  }
 

Cancel Application

The abandonAccount can be used to delete/cancel a pending application based on the accountId. Once the request is processed, the account will no longer appear in IBKR’s CRM as a PENDING account.

  • Accounts eligible to be abandoned must have current status of P or N.
PATCH /gw/api/v1/accounts

{
    "accountManagementRequests": {
        "abandonAccount": {
            "accountId": "U12345"
        }
    }
}

Reset Application

The resetAbandonedAccount can be used to reset application that was previously marked abandoned based on the accountId. Accounts eligible to be reset must have current status of A and be less than 6 months old. Once the account has been reset, user can proceed with registration process.

PATCH /gw/api/v1/accounts

{
    "accountManagementRequests": {
        "resetAbandonedAccount": {
            "accountId": "U12345"
        }
    }
}

View Status by Account

The /gw/api/v1/accounts/{accountId}/status can be used to query the status by account. In addition to the status of the account, the response will include the following information:

AttributeDescription
dateOpenedDate and time which the account was approved and opened at IBKR. If value is null- this means the account has not been opened yet.
dateStartedDate and time which the account was created with IBKR.
dateClosedDate and time which the account was closed with IBKR.
accountIdIBKR account ID.
statusStatus of the IBKR account.
descriptionDescription of the status.
A= Abandoned
N= New Account
O= Open
C= Closed
P= Pending
R= PreClose (Which means rejected)
E = Reopen requested
Q= Migrated
masterAccountIdIBKR account ID which is associated with the advisor/broker which accountId is linked to.
stateState of the application; only present if status is N (New Account) OR P (Pending).
Incomplete Application = Client Action Needed, use /gw/api/v1/accounts/{accountId}/tasks?type=pending to view pending registration tasks
Documents Required = Client Action Needed, use/gw/api/v1/accounts/{accountId}/tasks?type=pending  to view documents required for approval.
Under Review with IBKR = Application is PENDING on IBKR, no action needed.
Pending Approval = Account is in the approval queue and should be opened by the following business day.
Open = Account is opened and there are no pending tasks assigned to the account.

View Status for Group of Accounts

The /gw/api/v1/accounts/status can be used to filter custom group of accounts associated with masterAccountId based on the following criteria:

NameValueDescription
startDateyyyy-mm-ddRequired if querying list of accounts created within certain time period.
endDateyyyy-mm-ddFilter by date when account was created. If start date is provided, end date is mandatory
statusA
N
O
C
P
R
Q
E
Required if querying list of accounts that are certain status.

Queries returning more than 10,000 results will trigger a timeout error, Implement pagination using ‘limit‘ and ‘offset‘ parameter to manage large result sets.

Account Status Scenarios

The endpoint will return both a “status” and “state” that indicate where the account is in the account setup process. The below table will help you understand what these values mean and what actions need to be taken.

ScenariosResult when Querying Account StatusClient Action Needed?
Opened Account & Ready to Trade."state": "Open"
"status": "O"
No
Opened Account with Pending Tasks"state": "Documents Required", "status": "O"Yes, use /api/v1/accounts/{{accountId}}/tasks?type=registration  to view pending tasks that need to be completed and filter by “isComplete”: “false”
Application is Pending Approval."state": "Pending Approval", "status": "P"  
OR  
"state": "Pending Approval", "status": "N"
No, continue polling for status to monitor when account changes to ‘O  (Open) status.
Pending Application that is under review with IBKR."state": "Under Review with IBKR", "status": "P"  
OR  
"state": "Under Review with IBKR", "status": "N"
No, continue polling for status to monitor when account changes to ‘O  (Open) status.
Pending Application with Pending Tasks that need to be completed."state": "Documents Required", "status": "P"  
OR  
"state": "Documents Required", "status": "N"
Yes, use /api/v1/accounts/{{accountId}}/tasks?type=pending to view pending tasks required for approval.

Registration Tasks

Registration tasks represent tasks required to activate or maintain a brokerage account at IBKR.

  • Tasks include steps in the application sequence, client agreements and disclosures, tax form, supporting documents for approval, and additional verification tasks (Enhanced Due Diligence).
  • Tasks can be used to track the lifecycle of an account and identify if client action is required to proceed with approval process.

The following attributes will be returned when viewing registration tasks associated with an account:

AttributeDescription
formNumber4 digit number which IBKR associates with the registration task.
formNameName of the form. The formNumber and formName will always be 1:1 mapping.
onlineTaskTrue = IBKR form that needs to be completed/Signed by the client.
False= External document that needs to be sent to IBKR by the client.
requiredForTradingTrue = Applicant will not be able to place trades until the online task is completed.  
False = Applicant can place trades prior to the task being completed.
requiredForApprovalTrue= Account will not be approved/opened until the task has been satisfied.  
False= Task is not required for approval.
actionDescribes action associated with the task.
to be sent = External Document that needs to be sent by the client to IBKR.  
to complete = Online steps to be completed via the IBKR Client Portal  
to sign = IBKR agreements or forms requiring the applicant’s electronic signature. These may be signed through the IBKR Client Portal or submitted via API

Pending applications
1. Full Integration – Forms must be submitted to IBKR using ‘DocumentSubmission’
2. Hybrid Integration – Forms must be signed by the client within the IBKR Client Portal

Opened accounts
Signed forms may be submitted by IBKR using “DocumentSubmission” via the API or signed by the client within the IBKR Client Portal
stateCurrent state of the task –
To Be Sent – External document which needs to be submitted to IBKR.
To Be Signed
– IBKR agreement/disclosure which needs to be signed by the client.
To Be Submitted –
IBKR generated document which needs to be submitted to IBKR.
To Be Completed – Online task which needs to be completed.
Received- Being Processed – Document is being reviewed by IBKR.
Rejected .. <Rejection Reason> – External document was rejected by IBKR. Submit new document that meets IBKR’s requirements to proceed with approval process.

View Registration Tasks

IBKR will include the status of registration tasks in response file that is returned when creating an account via the API.

documents: Represents tasks that were included and processed when creating account via the API.

pendingTasks: Represents tasks that are required for account approval. Hosting firm is responsible for communicating pending tasks required for approval to the end user.

The gw/api/v1/accounts/{accountId}/tasks can be used to view registration tasks which are associated with an account after an account has been created.

IBKR segregates tasks into two types:

type=pending: View pending (incomplete) registration tasks which are required for account approval.

  • If a registration task is assigned to a pending account and the task is not required for account approval, the task will not be returned in response.
  • If registration task is assigned to an opened account and the task is required for an account upgrade, the task will not be returned in response.

type=registration :View all tasks associated with an account irrespective of the account status or state of the registration task.

  • View date/time which user completed specific registration task.
  • View registration tasks which the client needs to complete in order to trade or maintain account with IBKR.

Complete Registration Tasks

The [PATCH]/api/v1/accounts/ can be used to complete registration tasks for an existing account.

Service can be used to submit the following:

  • IBKR agreements/disclosures
  • KYC Documents including Proof of Identity, Proof of Address and Proof of Source of Wealth.
    • Only single document accepted per formNumber, if document has multiple sides or pages, consolidate into single file prior to submitting to IBKR.
NameTypeUsage based on form_noDescription
accountIdStringAllIBKR account ID of the advisor/broker client account documents are being submitted for. 
fileNameStringAllFile name of the PDF document submitted to IBKR. fileName included within the documents request must match the fileName of the PDF file that is included within the signed request.
Acceptable formats: .jpeg, .jpg, .pdf, .png
Max size: 10 MB
sha1ChecksumStringAllSHA-1 is crypto algorithm that is used to verify that a file has been unaltered. This is done by producing a checksum before the file has been transmitted, and then again once it reaches its destination.
formNumberStringAllUse /gw/api/v1/accounts/{accountId}/tasks to view a list of forms that are required for approval.
execTimestampYYYYMMDDHHMMSSAllTimestamp of the execution of the agreement by the customer (i.e. time the client signed the agreement).
execLoginTimestampYYYYMMDDHHMMSSAllLogin timestamp for the session (when the client logged in and acknowledged the agreement.
signedByStringAllsignedBy must match the submitted: name (first + middle initial (if applicable) + last).
*Data is case and space sensitive. 
proofOfIdentityTypeAll Entities Except for IB-CAN
Driver License
Passport
Alien ID Card
National ID Card
IB-CAN only
Bank Statement
Evidence of Ownership of Property
Credit Card Statement
Utility Bill
Brokerage Statement
T4 Statement
CRA Assessment 
8001
8205
8053
8057
Description of document submitted to salsify proof of identity.
proofOfAddressTypeAdditional Proof of Identity Document
Authorization to Open Account – Certification
Authorization to Open Account – Evidence
Bank Statement
Brokerage Statement
Certificate of Good Standing
Certificate of Incorporation
Certificate of Registration
Certified Proof of Address
Certified Proof of Identity
Check
Company Charter
Company Ownership
Corporate Charter|Articles of Incorporation
Court- or Govt-issued document
CRS card of Lombardy
Current Lease
Divorce Settlement
Drivers License 
Employer Confirmation
Entitlement to Payments
Evidence of Ownership of Property
Financial Statement
Formation
Government-issued Business License
Income Tax Return
Italian Electronic ID Card – CIE
Italian Health Card (Tessera Sanitaria)
Letter
National ID
Ownership
Passport
Pay Slip
Proof of Principal Place of Business and Registration
Proof of Sale
Proof of Winnings
Severance
Statement
Tax Return
Utility Bill
Will
8002
8001
8205
8053
8057
Description of document submitted to salsify proof of address.
validAddresstrue
false
8001If Driver License is provided as proofOfIdentityType AND validAddress=true, single document can be used to satisfy Proof of Identity and Proof of Address. ]
documentTypeCheck
Company Ownership
Divorce Settlement
Employer Confirmation
Entitlement to Payments
Letter
Ownership
Pay Slip
Proof of Sale
Proof of Winnings
Severance
Tax Return
Will
Bank Statement
Brokerage Statement
Current Lease
8541
8542
8543
8544
8545
8546
8547
8548
8549
Acceptable documents will vary based on the formNo.
externalIndividualIdStringIdentifier at the external entity for the individual executing the agreement. Must be an individual listed on the application. Ignored for INDIVIDUAL applications as agreements must be executed by the Account Holder. Required for JOINT accounts created via ECA for POI/POA submission. For the JOINT holder created via ECA, external id of the account holder needs to be provided for which POI/POA is being submitted.
expirationDateYYYY-MM-DDDrivers License OR PassportProvide expiration date of the ID document.
mimeTypeapplication/pdf
application/pdf
image/png
image/jpeg (Includes .jpeg, .jpg)
Format of the file.
dataStringIncludes document encoded in base64.
  • Acceptable formats: .jpeg, .jpg, .pdf, .png
  • Max upload size: 25 MB

Acceptable documentType based on formNumber

formNameformNumber
documentType
Proof of Identity and Date of Birth8001Driver License
Passport
Alien ID Card
National ID Card
Proof of Address8002Bank Statement
Brokerage Statement
Homeowner Insurance Policy Bill
Homeowner Insurance Policy Document
Renter Insurance Policy bill
Renter Insurance Policy Document
Security System Bill
Government Issued Letters
Utility Bill
Current Lease
Evidence of Ownership of Property
Driver License
Other Document
Selfie Verification8205The account holder will need to take a ‘selfie’ holding their Identity document.For ID Document we only accept National ID OR Passport.Driver’s License/Alien card is not accepted.
Hong Kong Signature Verification8043Form8043.pdf
PROOF OF SOW-IND-Allowance8541Bank Statement
Pay Slip
Employer Confirmation
Divorce Settlement
Company Ownership
PROOF OF SOW-IND-Disability8542Bank Statement
Entitlement to Payments
Severance
PROOF OF SOW-IND-Income8543Pay Slip
Bank Statement
Employer Confirmation
PROOF OF SOW-IND-Inheritance8544Letter
Bank Statement
Check
Will
Brokerage Statement
PROOF OF SOW-IND-Interest8545Brokerage
Statement
Tax Return
PROOF OF SOW-IND-MarketProfit8546Ownership
Brokerage Statement
Tax Return
PROOF OF SOW-IND-Other8547Proof of Winnings
Bank Statement
Tax Return
Brokerage Statement
PROOF OF SOW-IND-Pension8548Bank Statement
Pay Slip
PROOF OF SOW-IND-Property8549Proof of Sale
Current Lease
Proof of Existence8003Certificate of Incorporation
Formation
Certificate of Registration
Company Charter
Certificate of Good Standing
Government-issued Business License
Corporate Charter
Articles of Incorporation
Proof of Principal Place of Business Address8004Statement
Certified Proof of Identity
Certified Proof of Address
Income Tax Return
Additional Proof of Identity Document
Proof of Principal Place of Business and Registration
Utility Bill
Bank Statement
Bank Statement
Brokerage Statement
Current Lease
Evidence of Ownership of Property
Proof of Name Change8039Court- or Govt-issued document
Passport
National ID
Drivers License 
Proof of Change of Name8040Court- or Govt-issued document
Proof of Citizenship8138Passport
National ID
Proof of Authorization to Open Account – Certification Task8175Authorization to Open Account – Certification
Proof of Authorization to Open Account – Evidence Task8176Authorization to Open Account – Evidence
Proof of Tax Id8360CRS card of Lombardy
Italian Electronic ID Card – CIE
Italian Health Card (Tessera Sanitaria)
Proof of Liquid Net Worth9975Bank Statement
Brokerage Statement
Financial Statement
PATCH /api/v1/accounts/

{"accountManagementRequests": {       
"documentSubmission": 
            {
                "documents": [
                    {
                        "signedBy": [
                            "Jane Doe"
                        ],
                        "attachedFile": {
                            "fileName": "ProofOfId.pdf",
                            "fileLength": 9508,
                            "sha1Checksum": "b6e3235d3d21dc999da2fa24c7009ad0815e7330"
                        },
                        "formNumber": 8001,
                        "validAddress": true,
                        "execLoginTimestamp": 20210929123113,
                        "execTimestamp": 20210929123113,
                        "proofOfIdentityType": "Drivers License",
                        "payload": {
                         "mimeType": "application/pdf",
                         "data": "<DocumentEncodedInBase64>"         }

                    }
                ],
                "accountId":"U123456,
                "inputLanguage": "en",
                "translation": false
            }
        
    }

Service supports following questionnaires

  • Due Diligence (EDD)
  • Knowledge Assessment

The/api/v1/enumerations/edd-avt?form-number=<formNumber> can be used to retrieve list of questions associated questionnaire based on the formNumber. The endpoint indicates if processing of the task is supported using the API.

  • IF apiSupportedTask='true' this indicates the task can be completed using the API.
  • IF apiSupportedTask='false' this indicates the task will need to be completed within IBKR Portal by the master user OR end client.
NameTypeDescription
accountIdStringIBKR account ID of the advisor/broker client account documents are being requested for. 
formNumberStringForm number associated with the Questionnaire.
detailStringMaximum of 350 Characters.
PATCH /api/v1/accounts/{
{
    "accountManagementRequests": {
        "questionnaires": {
            "accountId": "U123456",
            "questionnaire": [
                {
                    "formNumber": 9943,
                    "answers": [
                        {
                            "detail": "description",
                            "id": 2396,
                            "questionId": 1620
                        }
                    ]
                }
            ]
        }
    }
}
PATCH /api/v1/accounts/
{
"accountManagementRequests": {
"quizQuestionnaires": {
"questionnaire": [
{
"answers": [
{
"id": 4,
"questionId": 1
},
{
"id": 4,
"questionId": 2
},
{
"id": 4,
"questionId": 3
},
{
"id": 4,
"questionId": 4
},
{
"id": 4,
"questionId": 5
},
{
"id": 4,
"questionId": 6
},
{
"id": 4,
"questionId": 7
},
{
"id": 4,
"questionId": 8
},
{
"id": 4,
"questionId": 9
},
{
"id": 4,
"questionId": 10
}
],
"formNumber": 2430
},
{
"answers": [
{
"id": 4,
"questionId": 1
},
{
"id": 4,
"questionId": 2
},
{
"id": 4,
"questionId": 3
},
{
"id": 4,
"questionId": 4
},
{
"id": 4,
"questionId": 5
},
{
"id": 4,
"questionId": 6
},
{
"id": 4,
"questionId": 7
},
{
"id": 4,
"questionId": 8
},
{
"id": 4,
"questionId": 9
},
{
"id": 4,
"questionId": 10
}
],
"formNumber": 2438
},
{
"answers": [
{
"id": 4,
"questionId": 1
},
{
"id": 4,
"questionId": 2
},
{
"id": 4,
"questionId": 3
},
{
"id": 4,
"questionId": 4
},
{
"id": 4,
"questionId": 5
},
{
"id": 4,
"questionId": 6
},
{
"id": 4,
"questionId": 7
},
{
"id": 4,
"questionId": 8
},
{
"id": 4,
"questionId": 9
},
{
"id": 4,
"questionId": 10
}
],
"formNumber": 2432
}
],
"accountId": "U1111111",
"task": [
{
"formNumber": 2431,
"status": false
},
{
"formNumber": 2439,
"status": false
},
{
"formNumber": 2433,
"status": false
}
]
}
}
}

  • If citizenship, citizenship2, citizenship3 or countryOfBirth is prohibited country then prohibitedCountryQuestionnaire (formNumber 3442) will be assigned to the account.
  • List of Prohibited Countries can be obtained using /api/v1/enumerations/prohibited-country endpoint.
NameTypeDescription
accountIdStringIBKR account ID of the client account which prohibitedCountryQuestionnaire is being submitted for.
codePASSPORT
CITIZENSHIP
BUSINESSDEALINGS
FINANCIALACCOUNTS
RESIDENT
MULTI
BIRTH
PASSPORT: Do you currently hold a passport from a Prohibited Country?

CITIZENSHIP: Do you currently hold a citizenship from a Prohibited Country?

BUSINESSDEALINGS: Do you currently have business dealings in a Prohibited Country?

FINANCIALACCOUNTS: Do you currently have financial accounts in a Prohibited Country?

RESIDENT: Do you currently have plans to reside in a Prohibited Country?

MULTI: Do you hold citizenship and/or residency status in multiple countries

BIRTH: Were you born in any of the following countries <Prohibited Country>
externalIdStringexternalID associated with the account holder. This should be the same externalID that was included in the  request to create the account.
statustrue
false
 
detailsstringRequired if status=”true”; provide a description.

PATCH /gw/api/v1/accounts

{
  "accountManagementRequests": {
    "prohibitedCountryQuestionnaire": {
      "accountId": "accountId",
      "entityId": "247519520",
      "prohibitedQuestionnaireDetails": [
        {
          "code": "PASSPORT",
          "details": "Do you hold passport for the following countries"
        },
        {
          "code": "BIRTH",
          "details": "Were you born in the following countries"
        },
        {
          "code": "CITIZENSHIP",
          "details": "Do you hold citizenship in the following countries"
        },
        {
          "code": "BUSINESSDEALINGS",
          "details": "Do you have business dealings in the following countries"
        },
        {
          "code": "FINANCIALACCOUNTS",
          "details": "Do you have financial accounts in the following countries"
        },
        {
          "code": "RESIDENT",
          "details": "Do you plan to reside in the following countries"
        },
        {
          "code": "MULTI",
          "details": "Do you hold citizenship and/or residency details in multiple countries"
        }
      ]
    }
  }
}

Account Information

The /api/v1/accounts/{{accountId}}/details can be used to view account information based on the accountId.

The endpoint returns same data that is returned in IBKR’s end of day Acct_Status including:

  • Application Information (Date Started, Date Approved, Date Opened, Status, Date Funded, Applicant Type, External ID )
  • Profile Information (Name, Address, Contact Information, Employment Information, Identification Document Information, Accepted Signatures)
  • Fee Configuration and Effective Date
  • Account Configuration (Base Currency, Permissions, Special Programs including SYEP and DRIP, MIFID Category, Market Data Subscriptions)
  • Trading Capabilities (Requested, Approved, Activated, Margin Type, Options Level)
  • Financial Information (Net Worth, Income, Sources of Wealth)
  • Appropriateness  (Investment Objectives, Knowledge & Experience)
  • Risk Score
  • User (Username, Last Login, Two Factor Authentication, Last Login)

Update Information

The [PATCH]/api/v1/accounts/ can be used to manage user-level and account-level settings.

  • Changes applied at the user level will be applied to all accounts associated with the user.
  • Updates are only supported for accounts that are opened.
  • Alternatively, information changes can be initiated within the IBKR Portal.

User

MIFIR data pertains to transaction reporting requirements for investment firms operating within European Economic Area (EEA) and the UK. As a client of an Investment Firm that uses the IBKR platform, you may be required to provide additional information to allow the proper transaction reports to be filed.

For more information refer to this link

NameTypeDescription
accountIdStringIBKR account ID of the advisor/broker client account which request is being submitted for.
titleACCOUNT HOLDER
FIRST HOLDER
SECOND HOLDER
Individual Account Type title will always be “ACCOUNT HOLDER” 

Joint Account Type. title will be one of:
FIRST HOLDER
SECOND HOLDER
identificationIdentificationidentification node included in XML request should match identification node that was included in Account Opening Request 
PATCH /gw/api/v1/accounts


{
    "accountManagementRequests": {
        "addMiFirData": {
            "accountId": "U12345",
            "title": "ACCOUNT HOLDER",
            "identifications": [
                {
                    "citizenship": "Liechtenstein",
                    "passport": "A11111",
                    "alienCard": "AlienCard",
                    "expire": false
                }
            ]
        }
    }
}
  • Within the body of the request, provide updated information for the individual. If the information included within the newAccountHolderDetails node does not match with what IBKR has on file, the information will be updated.
    • If multiple requests are submitted for single account; the new request will override the existing pending request.
    • When submitting request to update account information, either id OR externalId will be required.
  • For Dual Language applications, details in both Native and Translated are required.
  • changeAccountHolderDetails requests are only supported for Individual AND Joint accounts that are open OR Pending/New application IF 9974 is assigned. If request is submitted for Pending/New application and 9974 is not assigned, the request will not be accepted.
    • If account information needs to be updated for a Pending/New account, a new application with the updated information will need to be submitted.
      • To avoid duplicate accounts, please use abandonAccount to delete the existing application with incorrect data.
      • When submitting a new application, a new unique external ID will need to be included. To submit a new application using the original external ID, (updateExternalId) for the existing account.
      • Once updated, your team can resubmit the application for the applicant using the original external ID that was used to create the original account.
        • New IBKR account ID will be generated once the application has been resubmitted.
          • You cannot resubmit application for an externalid that had already been processed unless the externalId has been delinked (updateExternalId) from the original account.
NameTypeDescription
accountIdStringIBKR account ID associated with the individual. If user has multiple accounts and accountId, information will only be updated for the accountId.
referenceUserNameStringUsername associated with the individual. If user has multiple accounts and referenceUserName is provided, data will be updated across all accounts.
inputLanguage
translation
idStringThe id is a unique id which IBKR assigns to each individual that is associated with account. The id
can be used as alternative to externalId. The id
can be obtained by calling GET /api/v1/accounts/{{accountId}}/details.
externalIdStringexternalId associated with the individual. associated with the user. The externalId can be obtained from <Entities> section of response file for account creation. If there are multiple individuals on an account, each individual will have a unique externalId.
newAccountHolderDetailsArray of objects (AssociatedIndividual)Provide applicant data to be updated within the newAccountHolderDetails. node.

PATCH /gw/api/v1/accounts

{
    "accountManagementRequests": {
        "changeAccountHolderDetail": {
            "newAccountHolderDetails": [
                {
                    "id": "172032379",
                    "name": {
                        "salutation": "Ms.",
                        "first": "Jane",
                        "last": "Smith"
                    },
                    "referenceUserName": "joesm123",
                    "inputLanguage": "en",
                    "translation": false
                }
            ]
        }
    }
}
  • Market data subscriptions are terminated if you have not logged into IBKR trading platform for 60 days. 
  • More information on market data can be found here.
NameTypeDescription
referenceUserNameStringUser name associated with the account. If you do not have the IBKR user name associated with the account, use /getAccountDetail to query user name based on account ID.
serviceUse /enumerations/market-data to obtain service ID.Market data service ID the user is requesting subscription to.
actionADD
REMOVE
Set action to ADD or REMOVE the market data subscription.
PATCH /gw/api/v1/accounts

{
  "accountManagementRequests": {
    "manageMarketDataSubscriptions": {
      "service": [
        460,
        462
      ],
      "referenceUserName": "test12345"
    }
  }
}
NameTypeDescription
referenceUserNameStringUser name associated with the account. If you do not have the IBKR user name associated with the account, use /detail to query user name based on account ID.
emailStringNew email address
hasAccesstrue
false
Indicate if the user has access to the current email address. If the user does not have access to the current email address, the user cannot update the email address using DAM.
tokenStringConfirmation token sent by IBKR to applicant via email.

Processing

Non-Disclosed Clients: Email address will be updated immediately.

PATCH /gw/api/v1/accounts

"accountManagementRequests": {
    "updateCredentials": [
        {
            "referenceUserName": "ctest9751",
            "updateEmail": {
             "email": "newemail@gmail.com", 
            "access": true
            }
        }
    ]
  }
}

Fully-Disclosed and Advisor: User will need to retrieve email confirmation token.

Step 1: Send request to update Email

    PATCH /gw/api/v1/accounts
    
    "accountManagementRequests": {
        "updateCredentials": [
            {
                "referenceUserName": "ctest9751",
                "updateEmail": {
                 "email": "newemail@gmail.com", 
                "access": true
                }
            }
        ]
      }
    }
    

    Step 2: Upon submitting request to update email, confirmation token for current email address

    • IBKR will send confirmation token to users current email address.
    • Counterparty instructs user to check email for confirmation token. 
    • Counterparty sends confirmation token to IBKR
    PATCH /gw/api/v1/accounts
    
    "accountManagementRequests": {
        "updateCredentials": [
            {
                "referenceUserName": "ctest9751",
                "updateEmail": {
                 "email": "abqa@ibkr.com",
                 "token": "12345",                
                "access": true
                }
            }
        ]
      }
    }
    

    Step 3: Confirmation token for new email address

    • IBKR will send confirmation token to users new email address.
    • Counterparty instructs user to check email for confirmation token. 
    • Counterparty sends confirmation token to IBKR
    • Email address is updated successfully
      PATCH /gw/api/v1/accounts
      
      "accountManagementRequests": {
          "updateCredentials": [
              {
                  "referenceUserName": "ctest9751",
                  "updateEmail": {
                   "email": "abqa@ibkr.com",
                   "token": "12345",                
                  "access": true
                  }
              }
          ]
        }
      }
      
      • Error will be triggered if any of the following conditions are met
        • Request is submitted for ND-NonQI, FA, or FD sub account.
        • Effective date is missing or is not the current date (ie. Future or Past Date).
      NameTypeDescription
      accountIdStringIBKR account ID of the advisor/broker client account which request is being submitted for.
      effectiveDateYYYY-MM-DDeffectivedate of withholding statement. Current or future date.
      certW8Imytrue
      false
      Confirm that consistent with the IRS, Form W-8IMY you provided, you certify you are qualified intermediary and have not assumed primary withholding responsibilities under Chapter 3 and 4 and have not assumed primary 1099 reporting and backup withholding responsibility on this account.  You have assumed Form 1042 reporting to your customer This account is part of withholding statement for your Form W-8IMY. We wil request a W9 from those customers who you indicate are tax residents.
      fatcaCompliantTypeFATCA_COMPLIANT

      NON_CONSENTING_US_ACCOUNT

      NON_COOPERATIVE_ACCOUNT
      Indicate if the Account Holder is FATCA compliant account
      treatyCountry3 Digit ISO CodeIf the account holder qualifies for treaty benefits under US income tax treaty, please identify treaty.

      >N/A is acceptable if account holder does not qualify for treaty benefits.

      >Treaty Countries with United States
      usIncomeTaxtrue
      false
      Indicate if the owner of this account is a US Income Tax Resident.
      PATCH /gw/api/v1/accounts
      
      {
        "accountManagementRequests": {
          "updateWithholdingStatement": 
              {
                  "accountId": "U12345",
                  "treatyCountry": "CHN",
                  "fatcaCompliantType": "FATCA_COMPLIANT",
                  "effectiveDate": "2020-01-02",
                  "certW8Imy": true,
                  "usIncomeTax": true
              }
          
        }
      }
      •  w8Ben: US Treasury and IRS require IBKR to request new tax identification form from non-US Persons every 3 years IF tax treaty country (part29ACountry in w8Ben) is set.
        • The account holder must provide IBKR with a new tax form (Form 5001).Electronic Signature and Requirements for form submission are the same as account opening.Re-certification of this form ensures that account holder will be treated as non-US person for tax purposes.Failure to provide updated tax form by expiration date will result in account being subject to US Tax withholding at 30% on interest, dividends, payments in lieu and royalty. In addition, 28% US Tax withholding will apply to all gross proceeds from sales.
        If no tax treaty is set (part29ACountry =”N/A”), the w8Bendoes not expire.
      • Certain changeAccountHolderDetail requests require user to submit a new tax form reflecting the updated information. The tax form can be submitted via Web API or via IBKR Hosted Portal.
        • Profile changes which require user to submit a new tax form:
      NameTypeDescription
      accountIdStringIBKR account ID of the advisor/broker client account which request is being submitted for.
      externalIdStringexternalId associated with the individual.
      entityIdStringUnique ID associated with the individual. ID can be obtained from <Entities> section of response file for create.

      If there are multiple individuals on an account, each individual will have a unique id.
      <TaxForm> w8Ben (Non-US)
      localTaxForms
      OR 
      w9 (US Clients)
      Enter new tax form details. Validations for this section mimic same validations that are applied when including tax form for client registration.
      documents Include document details associated with the tax form. Validations for this section mimic same validations that are applied when including tax form for client registration
      PATCH /gw/api/v1/accounts
      
      {
          "accountManagementRequests": {
              "updateTaxForm": {
                  "accountId": "U12345",
                  "entityId": "123456",
                  "externalId": "Test12346",
                  "documents": {
                      "formNumber": "5001",
                      "execTimestamp": "20161221123500",
                      "execLoginTimestamp": "20161221123500",
                      "signedBy": "John Doe",
                      "attachedFile": {
                          "fileName": "Form5001.pdf",
                          "fileLength": "67700",
                          "sha1Checksum": "D8AA699678D12DE6AC468A864D4FAE7999AA904B"
                      },
                      "w8Ben": {
                          "name": "John Doe",
                          "explanation": "TIN_NOT_REQUIRED",
                          "part29ACountry": "CAN",
                          "cert": true,
                          "blankForm": true,
                          "taxFormFile": "Form5001.pdf",
                          "proprietaryFormNumber": "5001"
                      }
                  }
              }
          }
      }

      Account

      Currently only LITE/PRO designation is supported. Requests submitted prior to 3pm EST are processed around 5pm EST. Requests submitted after 3pm EST are processed following business day at 5pm EST.

      • Users may switch between LITE and PRO up to three times within any 90-day period. Requests exceeding this limit will be rejected and subject to a 90-day processing delay.
        • Limit Exceeded Response: Request cannot be processed. You have exceeded the limit of three subscription changes per 90-day period. Please wait 90 days from your first change request before resubmitting.
        • Important Note:
          • Declined requests must be resubmitted after the 90-day period expires
      NameTypeDescription
      accountIdStringIBKR account ID of the advisor/broker client account which request is being submitted for.
      valuetrue
      false
      true: Enable service
      false: Disable Service
      typeLiteExecutionConfiguration type
      PATCH /gw/api/v1/accounts
      
      {
          "accountManagementRequests": {
              "accountConfiguration" : 
                  {
                      "accountId" : "U12345",
                      "type" : "LiteExecution",
                      "value" : "true"
                  }   
              
          }
      }
      • Individual/Joint/IRA accounts with a net worth of at least $1,000,000 are identified as an Accredited Investor.
      • Accredited Investors can update their investor category to Qualified Purchaser or Eligible Contract Participant within IBKR Portal IF their netWorth > 5M USD or equivalent. 

      More Information

      CodeUsageDescription
      accountIdStringIBKR account ID of the advisor/broker client account which the Investor Category is being changed for.
      signedByStringSignature of the Account Holder. signedBy should be First Name + Middle Initial (If Applicable) + Last Name + Suffix (If Applicable). Data is case and case sensitive.
      statustrue
      false 
      true= Yes
      Fales = No
      accreditedInvestorRequiredThe answers you provided in your account application indicate that you are qualified as an accredited Investor (as defined in Rule 501(a) of Regulation D of the Securities Act of 1933).
      qualifiedPurchaserOptionalqualifiedPurchaser:  You may be qualified as a Qualified Purchaser (as defined in Section 2(a)(51) of the Investment Company Act of 1940), which would allow you to participate in certain special programs.

      Would you like to answer a few questions so Interactive Brokers can determine if you may qualify as an ECP? YES/NO
      investmentCompanyActRequired if qualifiedPurchaser=trueAre you a natural person who owns at least $5,000,000 in investments (as defined in Rule 2a51-1 under the Investment Company Act of 1940)?YES/NO
      discretionaryBasisRequired if qualifiedPurchaser=trueAre you a natural person who is acting for his own account or the accounts of other qualified purchasers and who in the aggregate owns and invests on a discretionaryBasis at least $25,000,000 in investments? YES/NO
      eligibleContractParticipantOptionalEligible Contract Participant United States regulations impose restrictions on customers who are not Eligible Contract Participants (ECPs) (as defined in Section 1a(12) of the Commodity Exchange Act), which may limit your trading. Click here to learn more about the benefits of being an ECP.

      The answers you provided in your account application indicate that you may qualify as an ECP. YES/NO
      discretionaryBasisRequired if EligibleContractParticipant = TrueAre you an individual, acting for your own account, who has more than $10,000,000 invested on a discretionary basis? YES/NO
      highRiskRequired if discretionaryBasis= FalseAre you an individual, acting for your own account, who has invested more than $5,000,000 on a discretionary basis and your transaction activity is intended to hedge the risk of other assets you have (or that you are reasonably likely to have)? YES/NO
      PATCH /gw/api/v1/accounts
      
      {
        "accountManagementRequests": {
          "accreditedInvestor": 
              {
                  "accountId": "U12345",
                  "status": true,
                  "signedBy": 
                      "Test Test"
                  
      "qualifiedPurchaser": {
                      "status": true,
                      "qualifiedPurchaserDetails": 
                          {
                              "code": "InvestmentCompanyAct",
                              "status": true
                          },
                          {
                              "code": "DiscretionaryBasis",
                              "status": true
                          }
                   
                  },
                  "eligibleContractParticipant": {
                      "status": true,
                      "eligibleContractParticipantDetails": [
                          {
                              "code": "HighRisk",
                              "status": true
                          },
                          {
                              "code": "DiscretionaryBasis",
                              "status": false
                          }
                      
                  }
              }
          
        }
      }
      • Add CLP (Complex Leverage Product) capabilities to an existing account.
      NameTypeDescription
      accountIdStringIBKR account ID of the advisor/broker client account which request is being submitted for.
      PATCH /gw/api/v1/accounts
      
      {
          "accountManagementRequests": {
              "addCLPCapability" : 
                  {
                      "accountId" : "U12345"
                  }   
              
          }
      }

      Validations for Fully-Disclosed and Advisor-Clients

      1. The account holder must be presented with the required form AND sign the required form before the counterparty submits the request to IBKR.
        • 4155: Risk Disclosure for Complex or Leveraged Exch-Traded Products
      2. Eligibility is validated against users age, Investment Experience, and Financial Information.
      3. For Fully-Disclosed clients; the account holder must have a minimum of two years trading experience with stocks AND either options or futures.

      Futures

      • 1 year, 1-10 Trades per year
        • This will not validate
        • Because client has less than two years trading Futures, client must take Futures Exam
      • 2 years, 1-10 Trades per year
        • This will validate if Knowledge level is Good or Extensive
        • Will not validate if Knowledge Level is Limited

      Options

      • 1 year, 1-10 Trades per year
        • This will not validate
        • Because client has less than two years trading Options, client must take Options Exam
      • 2 years, 1-10 Trades per year
        • This will validate if Knowledge level is Good or Extensive
        • Will not validate if Knowledge Level is Limited

      By default, all clients have access to currency conversion. Leveraged FX allows you to trade currency pairs with leverage. With leveraged FX, you are able to trade larger position sizes with a smaller amount of margin. Leveraged FX trading to eligible clients.

      NameTypeDescription
      accountIdStringIBKR account ID of the advisor/broker client account which request is being submitted for.
      PATCH /gw/api/v1/accounts
      
      {
          "accountManagementRequests": {
              "addLevFxCapability" : 
                  {
                      "accountId" : "U12345"
                  }   
              
          }
      }

      Add trading permissions to an opened account.

      Processing Time:

      • New Regions: Trade Permissions for new regions are effective immediately
      • New Products: New Products take 1-2 business day to be processed and reviewed by our compliance team.
      NameTypeDescription
      addTradingPermissions Array of Objects tradingPermissionsTrading permissions which are being requested.
      accountIdStringIBKR account ID of the advisor/broker client account which request is being submitted for.
      PATCH /gw/api/v1/accounts
      
      {
          "accountManagementRequests": {
              "addTradingPermissions": 
                  {
                      "tradingPermissions": [
                          {
                              "country": "BELGIUM",
                              "product": "STOCKS"
                          }
                      ],
                          "accountId": "U1234",
                  }
              
          }
      }
      PATCH /gw/api/v1/accounts
      
      {
          "accountManagementRequests": {
              "addTradingPermissions": 
                  {
                      "tradingPermissions": [
                          {
                              "country": "BELGIUM",
                              "product": "STOCKS"
                          }
                      ],
                      "documentSubmission": {
                          "documents": [],
                          "accountId": "U1234",
                          "inputLanguage": "en",
                          "translation": false
                      },
                          "accountId": "U1234",
                  }
              
          }
      }
      

      Disclaimer: For Fully-Disclosed and Advisor-Clients

      • If the exchange_group requires a form, the request to AddTradePermissions must be initiated by the client.
      • The account holder must be presented with the required form AND sign the required form before the counterparty submits the request to IBKR.
      • If the trading bundle does not require a form, you can submit to IBKR directly as the client does not need to sign a disclosure.
      • For broker clients, fee changes submitted before 17:00 ET are processed on the same day and will take effect starting from midnight on the following business day.
      • For advisor-clients, if the fee is increased or fee type is changed, the client will need to verify/acknowledge the fee increase directly in Account Management/Client Portal.
        • Fee templates acknowledged by the client prior to 5:45PM ET will be processed on the same day.
        • Fee templates acknowledged by the client after 5:45PM ET will be processed on the following business day.
        • If the fee is decreased, the fee will be automatically processed (no client acknowledgement is needed).
      NameTypeDescription
      templateNameStringName of the fee template being applied. Data is case and space sensitive. The templateName must match the name of the template which was previously created in the advisor/broker portal. Details
      accountIdStringIBKR account ID of the advisor/broker client account which request is being submitted for.
      PATCH /gw/api/v1/accounts
       {
        "accountManagementRequests": {
         "applyFeeTemplate": {
            "accountId": "U10032411",
            "templateName": "FeePerTradeUnit100"
          }
        }
      }
      
      

      Update the base currency for an opened account. Base currency requests will not be effective until the following business day.

      NameTypeDescription
      accountIdStringIBKR account ID of the advisor/broker client account which request is being submitted for.
      new_base_currencyCurrency code (3 digits). Available currencies can be found here.New base currency for the account. 
      PATCH /gw/api/v1/accounts
      
      {
          "accountManagementRequests": {
              "changeBaseCurrency": {
                  "accountId": "U12345",
                  "newBaseCurrency": "USD"
              }
          }
      }
      • Used to update and increase Investment Experience, Investment Objectives, and/or Financial Information for existing accounts.
        • The service cannot be used to downgrade the knowledge level.
      • Processing Time
        • Fully-Disclosed and Advisor Clients: Takes 1-2 business day to be processed and reviewed by our compliance team.
      NameTypeDescription
      accountIdStringIBKR account ID of the advisor/broker client account which request is being submitted for.
      newFinancialInformationArray of objects financialInformation
      investmentExperience
      investmentObjectives
      sourcesOfWealth
      Provide updated information.
      PATCH /gw/api/v1/accounts
      
      {
          "accountManagementRequests": {
          "changeFinancialInformation": [
              {
                "accountId": "U12345",
                "newFinancialInformation": {
                  "investmentExperience": [
                    {
                      "assetClass": "BILL",
                      "yearsTrading": 2,
                      "tradesPerYear": 5,
                      "knowledgeLevel": "Extensive"
                    }
                  ],
                  "investmentObjectives": [
                    "Trading",
                    "Growth",
                    "Speculation",
                    "Hedging",
                    "Preservation",
                    "Income"
                  ],
                  "additionalSourcesOfIncome": [
                      {
                          "sourceType": "CONSULTING",
                          "percentage": 4,
                          "description": "from Spouse"
                      },
                      {
                          "sourceType": "INHERITANCE",
                          "percentage": 10,
                          "description": "father property"
                      }
                  ],
                  "sourcesOfWealth": [
                      {
                          "sourceType": "SOW-IND-Allowance",
                          "percentage": 25,
                          "usedForFunds": false,
                          "description": "Allowance from spouse"
                      },
                      {
                          "sourceType": "SOW-IND-Disability",
                          "percentage": 50,
                          "usedForFunds": false,
                          "description": "Allowance from spouse"
                      },
                      {
                          "sourceType": "SOW-IND-Inheritance",
                          "percentage": 23,
                          "usedForFunds": true,
                          "description": "Allowance from spouse"
                      }
                  ],
                  "netWorth": 1700000,
                  "liquidNetWorth": 120000,
                  "annualNetIncome": 210000,
                  "totalAssets": 173000,
                  "sourceOfFunds": "string",
                  "translated": false
                }
              }
            ]
          }
      }

      Upgrade margin capabilities for an existing account.

      • Cash accounts can upgrade to a Margin account.
      • To upgrade to a Portfolio Margin account, you must be approved to trade options and your account must have at least USD 110,000 (or USD equivalent) in Net Liquidation Value.
      • Processing Time
        • Upgrade requests can take 1-2 business day to be processed and reviewed by our compliance team.
      NameTypeDescription
      accountIdStringIBKR account ID of the advisor/broker client account which request is being submitted for.
      newMarginRegT
      REGT
      PortfolioMargin
      PORTFOLIOMARGIN
      Portfolio Margin: Risk Based Model and can offer anywhere from a 6:1 leverage for a diverse portfolio; and down to a 3:1 leverage for a more concentrated portfolio.

      Minimum Equity: $100,000

      If the account falls below $100,000 the account will be in close only mode. 

      RegT: Rule based margin and offers 4:1 leverage intraday and 2:1 leverage overnight. Minimum Equity: $2,000 
      PATCH /gw/api/v1/accounts
      
      {
          "accountManagementRequests": {
              "changeMarginType": {
                  "accountId": "U12345",
                  "newMargin": "Margin"
              }
          }
      }
      PATCH /gw/api/v1/accounts
      
      {
          "accountManagementRequests": {
              "changeMarginType": {
                  "documentSubmission": {
                      "documents": [
                          "signedBy": "John Smith",
                          "validAddress": true,
                          "execTimestamp": 10,
                          "documentType": "Certified Proof of Address",
                          "expirationDate": "2033-11-22"
                      ],
                      "accountId": "U12345",
                      "inputLanguage": "en",
                      "translation": false
                  },
                  "accountId": "U12345",
                  "newMargin": "xMargin"
              }
          }
      }

      Disclaimer: For Fully-Disclosed and Advisor-Clients

      • The account holder must be presented with the required form AND sign the required form before the counterparty submits the request to IBKR.

      Dividend reinvestment (DRIP) is an option where you can elect how you wish to receive your dividends for stocks and mutual funds. Dividend Reinvestment is available to IB LLC, IB AU, IB CAN, IB HK, IB IE, IB JP, IB SG and IB UK clients only.

      Information on DRIP can be found here.

      NameTypeDescription
      accountIdStringIBKR account ID of the advisor/broker client account which request is being submitted for.
      PATCH /gw/api/v1/accounts
      
      {
          "accountManagementRequests":{
              "enrollInDrip":{
                  "accountId": "U12345",
              }
          }
      }

      Disclaimer: For Fully-Disclosed and Advisor-Clients

      • The account holder must be presented with the required form AND sign the required form before the counterparty submits the request to IBKR.
      NameTypeDescription
      accountIdStringIBKR account ID of the advisor/broker client account which request is being submitted for.
      PATCH /gw/api/v1/accounts
      
      {
          "accountManagementRequests":{
              "leaveDrip":{
                  "accountId": "U12345",
              }
          }
      }
      • Processing Time
        • Requests submitted prior to 5pm EST will be processed same day.
        • Requests submitted after 5pm EST will be processed the following business day.
        • Users must wait 90 days from previous unenrollment date before re-enrolling.
      NameTypeDescription
      accountIdStringIBKR account ID of the advisor/broker client account which request is being submitted for.
      PATCH /gw/api/v1/accounts
      
      {
          "accountManagementRequests":{
              "enrollInSyep":{
                  "accountId": "U12345",
              }
          }
      }
      • Processing Time
        • Requests submitted prior to 5pm EST will be processed same day.
        • Requests submitted after 5pm EST will be processed the following business day.
        • Users must wait 90 days from previous unenrollment date before re-enrolling.
      NameTypeDescription
      accountIdStringIBKR account ID of the advisor/broker client account which request is being submitted for.
      PATCH /gw/api/v1/accounts
      
      {
          "accountManagementRequests":{
              "leaveSyep":{
                  "accountId": "U12345",
              }
          }
      }
      • Processing Time
        • Requests submitted prior to 5pm EST will be processed same day.
        • Requests submitted after 5pm EST will be processed the following business day.
      NameTypeDescription
      tradingPermissionArray of Objects tradingPermissionsTrading permissions to be removed.
      accountIdStringIBKR account ID of the advisor/broker client account which request is being submitted for.
      PATCH /gw/api/v1/accounts
      {
          "accountManagementRequests": {
              "removeTradingPermissions": [
                  {
                      "tradingPermissions": [
                          {
                              "assetClass": "STK",
                              "exchangeGroup": "EU-IBET",
                              "country": "BELGIUM",
                              "product": "STOCKS"
                          }
                      ]
                      "accountId":"U123456"
                  }
              ]
          }
      }

      Account alias will appear on account statements, portal, and TWS.

      • Processing Time: Changes will be effective immediately. You will need to restart TWS OR Portal to view the new alias.
      NameTypeDescription
      accountIdStringIBKR account ID of the advisor/broker client account which request is being submitted for.
      accountAliasString
      Max # of characters: 80 
      Account alias or Nickname  
      PATCH /gw/api/v1/accounts
      
      {
          "accountManagementRequests": {
              "updateAccountAlias": [
                  {
                      "accountId": "U12345",
                      "accountAlias": "U111"
                  }
              ]
          }
      }
      NameTypeDescription
      accountIdStringIBKR account ID of the advisor/broker client account which request is being submitted for.
      representativeIdStringIBKR username of the account representative. User must be listed on the master account which account is associated with.
      percentageNumberTotal percentage across all representatives should add up to 100%.
      PATCH /gw/api/v1/accounts
      
      {
        "accountManagementRequests": {
          "updateAccountRepresentatives": [
              {
                  "accountId": "U12345",
                  "representativeDetails": [
                      {
                          "representativeId": "ajd0318a",
                          "percentage": 100
                      }
                  ]
              }
          ]
        }
      }

      SFC regulation requires clients under IBHK with trading permissions to SEHK stocks OR bonds to provide BCAN.

      • Only applicable for Non Disclosed (QI and NonQI) – All Customer Types.
      NameTypeDescription
      accountIdStringIBKR account ID of the advisor/broker client account which request is being submitted for.
      bcanStringBroker-to-Client-Assigned-Number (bcan).
      – It must be 10 digits or less without leading 0 and it cannot be 1-99.
      ceNumberStringCentral entity number (CE#) of broker. It must be 6 digit alphanumeric identifier.
      PATCH /gw/api/v1/accounts
      
      {
        "accountManagementRequests": {
          "updateBcan": [
              {
                  "accountId": "U12345",
                  "bcan": "1125",
                  "ceNumber": "BNO808"
              }
          ]
        }
      }
      NameTypeDescription
      accountIdStringIBKR account ID of the advisor/broker client account which request is being submitted for.
      newExternalIdStringNew external ID to be assigned to the account.
      PATCH /gw/api/v1/accounts
      
      {
          "accountManagementRequests": {
              "updateExternalId" : 
                  {
                      "accountId" : "U12345",
                      "newExternalId" : "Test1234"            }   
              
          }
      }

      Service is available by request only. To use this service, please contact am-api@interactivebrokers.com.

      NameTypeDescription
      accountIdStringIBKR account ID of the advisor/broker client account which request is being submitted for.
      propertyProfileStringName of property being assigned.
      PATCH /gw/api/v1/accounts
      
      {
          "accountManagementRequests": {
              "updatePropertyProfile" : 
                  {
                      "accountId" : "U12345",
                      "propertyProfile" : "Standard"            }   
              
          }
      }

      Manage account access to users associated with the master account.

      • Only applicable if the user is configured as ‘Specific Sub Accounts’ for the UAR
      • This service will allow advisors/brokers to add/remove account access for users at master level that have access to ‘Specific Sub Accounts’
      NameTypeDescription
      accountIdStringIBKR account ID of the advisor/broker client account which request is being submitted for.
      actionADD
      REMOVE
      ADD=User will have access to the given account.
      REMOVE= User will no longer have access to the given account.
      repIdStringUser ID which account access is being updated for. This should be user ID associated with the master account.
      PATCH /gw/api/v1/accounts
      
      {
        "accountManagementRequests": {
          "updateUserAccessRights": [
              {
                  "accountId": "U12345",
                  "repId": "potest123",
                  "action": "ADD"
              }
          ]
        }
      }

      Client Fees

      IBKR provides ability for advisors and brokers to charge fee for their services. Advisors/brokers can configure fees on an account by account basis OR manage fees using a client fee template. Client fees can be set during client registration journey and updated/ The fee schedule will be defined within accounts.

      • Advisor Managed: Fee schedule needs to be defined during client registration using advisorWrapFees OR feesTemplateName.
      • Broker Clients: feesTemplateName is optional. If no fee template is set during registration, the default client fee template will automatically apply to that account.

      Fee configurations are effective starting effective date. The effective date for client fees can be obtained by calling /api/v1/accounts/{{accountId}}/details

      • If the account opening date is after the effective date, the fee configurations are effective 1 day after the open date.
      • If the request approval date is after the effective date, the fee configurations are effective 1 day after the request approval date.
      • Fee computations will not exist until effectiveDate (based on above bullet points) & the account is funded.

      Fee Templates

      The API can be used to view and manage fee templates for existing accounts.

      • Client fee templates make it easy to maintain client fee schedule for multiple accounts. Fee templates can be created and updated directly within Portal > Administration & Tools > Fees & Invoicing > Fee Templates.

      Set Fee Template for Existing Account

      The applyFeeTemplate can be used to assign a predefined fee template to an existing account. Within the body of the request, define the accountId and the templateName. The templateName represents name of fee template to be applied, the data is case sensitive and must match exact name of template that exists in portal.

      • For broker clients, fee changes submitted before 17:00 ET are processed on the same day and will take effect starting from midnight on the following business day.
      • For advisor-clients, if the fee is increased or fee type is changed, the client will need to verify/acknowledge the fee increase directly in Account Management/Client Portal.
        • Fee templates acknowledged by the client prior to 5:45PM ET will be processed on the same day.
        • Fee templates acknowledged by the client after 5:45PM ET will be processed on the following business day.
        • If the fee is decreased, the fee will be automatically processed (no client acknowledgement is needed).
      PATCH /gw/api/v1/accounts
       {
        "accountManagementRequests": {
         "applyFeeTemplate": {
            "accountId": "U10032411",
            "templateName": "FeePerTradeUnit100"
          }
        }
      }
      
      

      Login Messages

      If client action is required post account creation, IBKR will assign a login message to the user. Once login message is assigned, user will be prompted to complete login message upon accessing IBKR Portal.

      Scenarios which IBKR will assign a login message:

      • Expired tax form
      • Update CRS form
      • Verify Account Information
      • Email Bounced

      The following login messages can be completed using the API:

      All other login messages will need to be completed within IBKR Portal (not via API).

      View Login Messages by Account

      The /gw/api/v1/accounts/{accountId}/login-messages can be used to view login messages assigned to a specific account.

      View Login Messages for Group of Accounts

      /gw/api/v1/accounts/login-messages can be used to filter list of accounts with login messages assigned.

      • Filter list of accounts with specific login message assigned.
      • Filter list of accounts created within certain time range.
      NameValueDescription
      startDateyyyy-mm-ddRequired if querying list of accounts created within certain time period.
      endDateyyyy-mm-ddFilter by date when account was created. If start date is provided, end date is mandatory
      messageTypeW8INFO
      MIFIR_INFO
      ACK_AGREEMENT_UPDATE
      LLC_AGREEMENT_UPDATE
      W8INFO (Expired Tax Form)
      MIFIR_INFO (MIFIR Data Required)

      Optional- used to filter by Login Message Type

      Queries returning more than 10,000 results will trigger a timeout error, Implement pagination using ‘limit‘ and ‘offset‘ parameter to manage large result sets.

      Funds and Banking

      When submitting a funding requests using the API, a clientInstructionId will be set within body of the request. The clientInstructionId is a unique identifier associated with the request which is set by the hosting firm; this value cannot be reused. IBKR’s preference is that the clientInstructionId is established in sequential order ie 1, 2, 3, 4  or 100, 101, 102, 103 not 777, 589, 123. The maximum value is 20 digits.

      Status of Request

      IBKR returns response within 30 seconds of funding request being submitted. The response will return one of the following status’

      • PROCESSED: Request has been processed.
      • PENDING: Pending Processing
      • REJECTED: IBKR unable to process the request.

      The /gw/api/v1/client-instructions/{clientInstructionId} endpoint can be used to poll for status of previously uploaded funding request based on the clientInstructionId associated with the request.

      Cancel Request

      Cancel transaction that is currently in a PENDING status, this includes active recurring transaction that are scheduled for future date. The /gw/api/v1/instructions/cancel can be used to cancel a transaction; within the body of the request, include the instructionId that is associated with request that needs to be canceled.

      NameTypeDescription
      instructionIdStringIB instruction ID of the request that needs to be canceled.
      reasonStringReason for canceling the request.
      clientInstructionIdNumber; max characters 20.Unique identifier associated with the request.
      – The clientInstructionId cannot be reused.
      – IBKR’s preference is that the clientInstructionId is established in sequential order ie 1, 2, 3, 4  or 100, 101, 102, 103 not 777, 589, 123.
      POST /gw/api/v1/instructions/cancel
      
      {
        "intructionType": "CANCEL_INSTRUCTION",
        "instruction": {
          "clientInstructionId": "12001810",
          "instructionId": 43085477,
          "reason": "Testing"
        }
      }

      Get Transaction History

      The /gw/api/v1/instructions/query endpoint can be used to view information about historical transactions including cash deposits, cash withdrawals, inbound and outbound position transfers and internal transfers by accountId. The daysToGoBack attribute will be used to set lookback period and can be maximum of 7 days. Optionally, include transactionType to filter for a specific transaction.

      Rate Limit: 1 request per 10 minutes.

      POST /gw/api/v1/instructions/query
      
      {
        "instructionType": "QUERY_RECENT_INSTRUCTIONS",
        "instruction": {
          "clientInstructionId": "7009001",
          "accountId": "U139838",
          "transactionHistory": {
            "daysToGoBack": 3
          }
        }
      }

      Available Cash for Withdrawal

      The /gw/api/v1/external-cash-transfers/query can be used to view the available cash for withdrawal with and without margin loan based on an accountId AND currency. For non-disclosed clients, this endpoint will return available cash to transfer between master and sub account.

      Response will return following values:

      • withdrawableAmount: Cash Amount available for withdrawal (assuming margin loan). Only applicable for Fully-Disclosed and Advisor Clients.
      • withdrawableAmountNoBorrow: Cash Amount available for withdrawal (without margin loan). Only applicable for Fully-Disclosed and Advisor Clients.
      • allowedTransferAmountToMaster: Allowed Transfer Amount to Master assuming margin loan. Only applicable for Non-Disclosed Clients.
      • allowedTransferAmountToMasterNoBorrow: Allowed Transfer Amount(no_borrow) to Master. Only applicable for Non-Disclosed Clients.
      • withdrawableBalanceWithoutOriginHold: The amount available for withdrawal without origination hold.
      POST /gw/api/v1/external-cash-transfers/query
      
      {
        "instructionType": "QUERY_WITHDRAWABLE_FUNDS",
        "instruction": {
          "clientInstructionId": "7009005",
          "accountId": "U87440",
          "currency": "USD"
        }
      }

      Bank Instructions

      In this section we will review how to create, view, and delete banking instructions using the Web API. Please be advised options available using the API are limited in comparison to methods that are supported using the IBKR Hosted Application.

      Add Bank Instructions

      The /gw/api/v1/bank-instructions endpoint can be used to add banking instructions to an existing IBKR brokerage account. The banking instructions can be used to facilitate future fund transfers.

      1. Counterparty will provide bank account information to IBKR (ach_instruction).
      2. IBKR will provide a real-time response including a unique IBKR id and PENDING status.
      3. IBKR verifies the ACH instruction using JPM’s Account Validation Service (AVS) which leverages EWS’ PaymentChek and Account Ownership Authentication services as a data source.
      4. Once verification has been completed, status will be updated to reflect one of:
        • PROCESSED: ACH Instruction was processed. The ACH instructions can be used for DEPOSIT and WITHDRAWAL using the Web API or IBKR Portal (Transfer & Pay).
        • PENDING: EWS Verification is in progress.
        • PENDING_VERIFICATION: IBKR automatically sends micro amount to the bank account provided. Counterparty will need to submit micro amounts to IBKR using "instructionType":"TRADITIONAL_BANK_INSTRUCTION_VERIFICATION"
        • Once this step has been complete, the status will be updated to PROCESSED. The banking instructions can be used to submit deposits and withdrawals using the Web API or IBKR Portal (Transfer & Pay).
        • REJECTED : Instruction cannot be verified using EWS. To proceed with ACH, client will need to log into the IBKR Portal to add instructions via IBKR hosted Portal. Optionally, the user can use different funding method will need to be used.
      NameTypeDescription
      clientInstructionIdNumber; max characters 20.Unique identifier associated with the request.
      – The clientInstructionId cannot be reused.
      – IBKR’s preference is that the clientInstructionId is established in sequential order ie 1, 2, 3, 4  or 100, 101, 102, 103 not 777, 589, 123.
      bankInstructionCodeUSACHStatic value and will always be USACH
      achTypeDEBIT_CREDIT
      DEBIT
      CREDIT
      DEBIT_CREDIT: ACH Instructions for deposits and withdrawals.
      DEBIT: ACH Instructions for deposits only.
      CREDIT: ACH instructions for withdrawals only.
      bankInstructionNameString; max 32 charactersName of the instructions. This is defined by counterparty.
      bankNameStringName of the bank.
      bankRoutingNumberNumeric value; max 9 characters.Routing number associated with the bank.
      bankAccountNumberString; max 32 charactersBank account number.
      bankAccountTypeCode1
      2
      1: Checking
      2: Savings
      If unspecified, defaults to checking.
      currencyUSDCurrency of the assets being transferred.  Only supports USD at this time.
      accountIdString; max 32 charactersIBKR account ID associated with the client account.
      POST /gw/api/v1/bank-instructions
      
      {"instructionType": "ACH_INSTRUCTION",
      "instruction": 
      
      {
      "clientInstructionId": "1012983",
      "bankInstructionCode": "USACH",
      "achType": "DEBIT_CREDIT",
      "bankInstructionName": "TestInstr",
      "currency": "USD",
      "accountId": "U223454",
      "clientAccountInfo": {
      "bankRoutingNumber": "202012983",
      "bankAccountNumber": "101267576983",
      "bankName": "JPM Chase",
      "bankAccountTypeCode": 1
      }
      }
      }
      1. We use EWS (Early Warning System) to verify ACH Instructions.
      2. Within 1-3 business days, two random credits (deposits) each less than one dollar and a corresponding debit (withdrawal) will be issued to the clients bank account.
      3. Client will need to monitor their bank account for these transactions as they will be needed to confirm this funding instruction. Note that these transactions may take place on different days.
      4. Once the client has these amounts, submit traditional_bank_instruction_verification request to verify the amounts. Once verified, the client can use ACH instructions for deposit and withdrawal requests.
      NameTypeDescription
      clientInstructionIdNumber; max characters 20.Unique identifier associated with the request.
      – The clientInstructionId cannot be reused.
      – IBKR’s preference is that the clientInstructionId is established in sequential order ie 1, 2, 3, 4  or 100, 101, 102, 103 not 777, 589, 123.
      pendingInstructionIdnumberInstruction id of the pending transaction.
      bankInstructionNameString; max 32 charactersName of the banking instructions with IBKR. This should match the bankInstructionName that was provided in the achInstruction request.
      accountIdString; max 32 charactersClient account number at IBKR.
      bankInstructionCodeACHUSStatic value and will always be ACHUS
      creditAmount1numberCash amount that IBKR credited /debited to bank account. The order which the amounts are send does not matter. 3 attempts are allowed for confirming these credit amounts.
      creditAmount2numberCash amount that IBKR credited /debited to bank account. The order which the amounts are send does not matter. 3 attempts are allowed for confirming these credit amounts.
      POST /gw/api/v1/bank-instructions
      
      {
      "instructionType": "TRADITIONAL_BANK_INSTRUCTION_VERIFICATION",
      "instruction": {
      "clientInstructionId": 7013057,
      "bankInstructionCode": "USACH",
      "bankInstructionName": "ACH-Tst1Random172",
      "accountId": "U117717",
      "pendingInstructionId": 43086786,
      "creditAmount1": 0.32,
      "creditAmount2": 0.46
      }
      }

      Electronic Direct Debit Authorization, applicable for individuals that maintain Hong Kong bank account.

      The /gw/api/v1/participating-banks endpoint can be used to view list of participating banks which support connection with Interactive Brokers for eDDA transfers and includes bankClearingCode, BIC and bank name.

      NameTypeDescription
      clientInstructionIdNumber; max characters 20.Unique identifier associated with the request.
      – The clientInstructionId cannot be reused.
      – IBKR’s preference is that the clientInstructionId is established in sequential order ie 1, 2, 3, 4  or 100, 101, 102, 103 not 777, 589, 123.
      bankInstructionNameString; max 100 charactersName of the instructions. This is defined by counterparty.
      accountIdString; max 32 charactersClient account number at IBKR.
      bankBranchCodeString; max 3 charactersBranch code associated with bank.
      bankAccountNumberString; max 32 characters
      Bank account number.
      bankClearingCodeString; max 3 charactersThe bankClearingCode can be obtained using /gw/api/v1/participating-banks endpoint.
      debtorIdentificationDocumentTypehkid
      passport
      chinaId
      hkMacaoEntryPermit
      ID document type
      POST /gw/api/v1/bank-instructions
      
      {
      "instructionType": "EDDA_INSTRUCTION",
      "instruction": {
      "clientInstructionId": 7012743,
      "bankInstructionName": "My EDDA Instructions",
      "currency": "CNH",
      "accountId": "U8072517",
      "bankBranchCode": "003",
      "bankAccountNumber": "132456",
      "bankClearingCode": "003",
      "debtorIdentificationDocumentType": "hkId"
      }
      1. Create standing wire instructions.
      2. If all clients have account at a single bank, IB will hard-code the bank on the back-end and only client’s account # will be submitted to IB.
      NameTypeDescription
      clientInstructionIdNumber; max characters 20.Unique identifier associated with the request.
      – The clientInstructionId cannot be reused.
      – IBKR’s preference is that the clientInstructionId is established in sequential order ie 1, 2, 3, 4  or 100, 101, 102, 103 not 777, 589, 123.
      bankInstructionNameString; max 100 charactersName of the instructions. This is defined by counterparty.
      accountIdStringClient account number at IBKR.
      bankInstructionMethodACH
      WIRE
      SEPA
      CPA
      Static value and will always be ACHUS
      currencyCurrency code (3 digits). Available currencies can be found here.Currency for the bank instructions.
      nameString; max 100charactersName of the financial institution.
      branchCodeString; max 32 characters
      branchCodeTypeBSB_AUD
      BANK_CODE_CAD
      NONE
      Bank state branch code.
      identifierString; max 16 characters
      identifierTypeIFSC
      BIC
      IFSC: The Indian Financial System Code (IFSC) is an 11-character alphanumeric code that identifies a bank branch in India
      BIC: Bank Identifier Code, is a unique code that identifies a financial institution and is used for international money transfers. BICs are also known as SWIFT codes or SWIFT addresses.
      clientAccountIdString; max 32 charactersAccount number at financial institution
      POST /gw/api/v1/bank-instructions
      
      {
      "instructionType": "PREDEFINED_DESTINATION_INSTRUCTION",
      "instruction": {
      "clientInstructionId": 7013053,
      "bankInstructionName": "Test Wire Instructions",
      "bankInstructionMethod": "WIRE",
      "accountId": "U123456",
      "currency": "USD",
      "financialInstitution": {
      "name": "Test Bank",
      "branchCode": "0",
      "branchCodetype": "BSB_AUD",
      "identifier": "SBIN001000",
      "identifierType": "BIC",
      "clientAccountId": "132456789"
      }
      }
      }

      View Saved Bank Instructions

      When initiating deposit or withdrawal, the user can save the banking information, also referred to as the bankInstructionName. If banking information is saved, the user can reference the bank information for future funding requests rather than re-entering the banking information. The /gw/api/v1/bank-instructions/query endpoint can be used to view list of saved banking instructions on file by accountId and bankInstructionMethod. The response will return the corresponding bankInstructionName and, bankRoutingNumber, currency last 4 digits of the bankAccountNumber (if applicable).

      POST /gw/api/v1/bank-instructions/query
      
      {
        "instructionType": "QUERY_BANK_INSTRUCTION",
          "instruction": {
          "clientInstructionId": "1012983",
          "accountId": "U46377",
          "bankInstructionMethod": "ACH"
        }
      }

      Delete Bank Instructions

      The /gw/api/v1/bank-instructions can be used to delete banking instructions (bankInstructionName) for an existing account by bankInstructionName, currency, and bankInstructionMethod. Users are limited to 6 active banking instructions at a single time.

      POST /gw/api/v1/bank-instructions
      
      {
        "instructionType": "DELETE_BANK_INSTRUCTION",
        "instruction": {
          "clientInstructionId": 7013055,
          "accountId": "U46377",
          "bankInstructionName": "Test Delete",
          "bankInstructionMethod": "WIRE",
          "currency": "USD"
        }
      }

      Cash Transfer

      With support for over 20 + currencies, IBKR provides clients the flexibility to make deposits or withdrawals in base and non-base currency balances. Specific currency restrictions may apply, this is determined based on individuals country of residence and the selected funding method. Available currencies can be found here.

      The /gw/api/v1/external-cash-transfers can be used to manage cash transfers between external bank account and the IBKR brokerage account. Transfer details including method (ACH and WIRE), transaction type (DEPOSIT or WITHDRAWAL), currency, and amount will be defined within the body of the request.

      To supplement the sample requests found in the API reference documentation, we’ve provided a details breakdown of body parameters and their usage in the section that follows.

      NameTypeDescription
      accountIdStringIBKR account ID of the advisor/broker client account which funds are being deposited to. 
      instructionTypeDEPOSIT
      WITHDRAWAL
      Type of transaction.
      clientInstructionIdNumber; max characters 20.Unique identifier associated with the request.
      – The clientInstructionId cannot be reused.
      – IBKR’s preference is that the clientInstructionId is established in sequential order ie 1, 2, 3, 4  or 100, 101, 102, 103 not 777, 589, 123.
      amountnumber > 0Amount being deposited to the clients IBKR Account.
      bankInstructionMethod
      WIRE 
      ACH
      SEPA
      WIRE: Electronic fund transfer through the fed wire system.

      ACH: Includes US Automated Clearing House, Single Euro Payment Area, Canadian Electronic Funds Transfer.
      currencyCurrency code (3 digits). Available currencies can be found here.Currency of the funds being sent to IBKR.
      bankInstructionNameString; maximum of 150characters.Name of the previously created instruction (saved bank/account number. Only required for ACH initiated by IBKR.
      identifierString; maximum of 64characters.Bank Account Number
      sendingInstitutionString; maximum of 128 characters.Bank Name
      specialInstructionString; maximum of 128 characters.Any special instructions associated with the deposit.
      iraContributionTypeROLLOVER
      LATE_ROLLOVER
      EMPLOYER_SEP_CONTRIBUTION
      DIRECT_ROLLOVER
      CONTRIBUTION
      SPOUSAL_CONTRIBUTION
      ROLLOVER: Amount is distributed from a retirement account and ‘rolled over’ to the same or other retirement account
      LATE_ROLLOVER: Late rollover
      EMPLOYER_SEP_CONTRIBUTION: Simplified employee pension – employer contribution
      DIRECT_ROLLOVER: Direct rollover from a qualified plan
      CONTRIBUTION: Regular IRA contributions
      SPOUSAL_CONTRIBUTION: Spousal IRA contributions
      iraTaxYearTypeCURRENT
      PRIOR
      Current: Current Tax Year
      Prior: Prior Tax Year
      fromIraTypeNONE
      TRADITIONAL
      ROLLOVER
      ROTH
      SEP
      EDUCATION
      TRADITIONAL_INHERITED
      ROTH_INHERITED
      SEP_INHERITED
      RETIREMENT_SAVINGS_PLAN
      SPOUSAL_RETIREMENT_SAVINGS_PLAN
      TAX_FREE_SAVINGS_ACCOUNT
       
      instructionNameStringName of the recurring transaction.
      frequencyMONTHLY
      QUARTERLY
      YEARLY
      Frequency which the transaction will take place.
      startDateYYYY-MM-DDDate which recurring transaction will start.
      endDateYYYY-MM-DDDate which the recurring transaction will end.
      fedIncomeTaxPercentageNumber > 0
      stateIncomeTaxPercentageNumber > 0
      stateCd2 digit state code.
      iraWithholdType

      DIRECT_ROLLOVER
      ROTH_DISTRIBUTION
      NORMAL
      EARLY
      DEATH
      EXCESS_CY
      EXCESS_PY
      EXCESS_SC

      Deposit Funds

      Deposit cash into the brokerage account for trading. The funding process and time for funds to arrive will vary based on the method. Please be advised that methods available via the Web API are limited in comparison to options that are supported within the IBKR Hosted Portal.

      Wire Deposit

      Wire deposit is the quickest method to fund the brokerage account. Wire deposits arrive immediately to four business days, depending on your bank. Non-U.S. banks are generally at the longer end of the range. Credit to account is immediate upon arrival.

      • Fees: Determined by your bank, generally fees do apply.
      • Trading Hold: Funds are immediately available for trading after arriving at IBKR.
      • Withdrawal Hold: Funds are available for withdrawal after three business days.

      A two-step process is used to complete a bank wire:

      Step 1: Create deposit notification so that IBKR is aware of the incoming funds. This important step helps ensure the proper routing of your funds if we do not receive your IBKR account number / account title from the wire template you setup at your bank.

      Step 2: Contact bank to request bank wire and supply the bank with IBKR’s wiring instructions.

      POST /gw/api/v1/external-cash-transfers
      {
        "instructionType": "DEPOSIT",
        "instruction": {
          "clientInstructionId": 7013045,
          "accountId": "U46377",
          "currency": "USD",
          "amount": 100,
          "bankInstructionMethod": "WIRE",
          "sendingInstitution": "Chase Bank",
          "identifier": "123456",
          "specialInstruction": "My Deposit",
          "bankInstructionName": "Instruction",
        }
      }

      ACH Deposit

      U.S. residents with linked bank account can seamlessly deposit funds to their IBKR brokerage account using ACH initiated at IBKR.

      • Fees: Free
      • Trading Hold: For initial deposit, the first deposit is available to trade four business days after initiating the deposit in Client Portal. Subsequent deposits may be available immediately (depending on tenure, deposit history and account balance). Otherwise, four business days to trade.
      • Withdrawal Hold: Funds are available for withdrawal to the originating bank account after five business days. If you wish to withdraw the funds to an account other than the originating bank account, the hold period is 44 business days.

      More information on ACH can be found here.

      POST /gw/api/v1/external-cash-transfers
      {
        "instructionType": "DEPOSIT",
        "instruction": {
          "clientInstructionId": 7013045,
          "accountId": "U46377",
          "currency": "USD",
          "amount": 100,
          "bankInstructionMethod": "ACH",
          "bankInstructionName": "My Checking Account",
        }
      }

      Withdraw Funds

      Withdrawal requests can be initiated via the Web API if standing bank instructions are on file.

      • Withdrawal limit is 100K USD. Withdrawal requests for more than 100K USD will need to be summited via the IBKR hosted portal.
      • IBKR allows one free withdrawal request per calendar month. After the first withdrawal (of any kind), IBKR will charge the fees listed below for any subsequent withdrawal.
      • Information on processing time and fees can be found here.

      Wire Withdrawal

      At the present, IBKR infrastructure only supports creation of wire withdrawal instructions within IBKR Hosted (not via API). Once instructions have been created, ongoing withdrawal requests can be submitted for standing instruction using the API.

      Add Wire Instructions via IBKR Portal
      • Advisors and brokers enrolled in Streamlined program can create manage banking instructions on behalf of client within IBKR Portal Broker.
      • End user can create banking instructions directly within IBKR Portal under Transfer & Pay > Transfer Funds. Alternatively, connect user to IBKR Portal using Single Sign On (SSO) and set deep link.
      POST /gw/api/v1/external-cash-transfers
      
      { "instructionType": "WITHDRAWAL", 
       "instruction": {    "clientInstructionId": 7013048,
          "accountId": "U46377",
          "bankInstructionName": "Test Withdrawal",
          "bankInstructionMethod": "WIRE",
          "amount": "123.45",
          "currency": "USD",
          "dateTimeToOccur": "2023-11-20T09:12:13Z"
        }

      ACH Withdrawal

      U.S. residents with linked bank account can seamlessly withdraw funds from IBKR brokerage account to bank account via ACH.

      POST /gw/api/v1/external-cash-transfers
      
      {
        "instructionType": "WITHDRAWAL",
        "instruction": {
          "clientInstructionId": 7013048,
          "accountId": "U46377",
          "bankInstructionName": "Test Withdrawal",
          "bankInstructionMethod": "ACH",
          "amount": "500.12",
          "currency": "USD",
          "dateTimeToOccur": "2023-11-20T09:12:13Z"
        }
      }

      Wire Instructions

      This /api/v1/enumerations/wire-instructions can be used to retrieve the necessary banking details and wire transfer instructions required to deposit funds into your IBKR trading account. The response will include recipient bank information, account details, and any specific reference codes needed to ensure proper crediting of your deposit.

      NameValueDescriptionUsage
      accountIdIBKR Client Account NumberRequired
      currencyCurrency code (3 digits). Available currencies can be found here.Currency which wire instructions are needed for.Required

      Important Notes:

      • Wire instructions are subject to change and will vary based on currency
      • It is recommended that you call this endpoint prior to depositing funds to IBKR to ensure you have the most current and accurate wire transfer details
      POST /api/v1/enumerations/wire-instructions?currency=USD&accountId=U123456
      {
          "enumerationsType": "wire-instructions",
          "jsonData": [
              {
                  "currency": "USD",
                  "accountNameAndBeneficiary": "Interactive Brokers LLC, One Pickwick Plaza, Greenwich, Connecticut, 06830, United States",
                  "accountNumber": "12345678(Account Number)",
                  "routingNumber": "12345678(ABA Code)",
                  "bankSWIFTCode": "CHASUS33XXX",
                  "bankTitleAndAddress": "JPMORGAN CHASE BANK, N.A., 383 Madison Avenue, New York, 10017, United States",
                  "alternateAccountInfo": "",
                  "paymentReference": "U123456/ IBLLC Test Test Account"
              }
          ]
      }

      Recurring Transactions

      When initiating a deposit or withdrawal request, include recurDetail with transaction details to configure recurring transaction.

      • instruction_name: This is the name of the saved recurring transaction and will be displayed within Client Portal under ‘Recurring Transactions’ page.
      • frequency: Schedule the transaction to recur at monthly, quarterly or annual intervals.
      • start_date: Entered in the format YYYY-MM-DD, this indicates the first date that the recurring transaction should be processed.
      • end_date: The end_date is optional and indicates the last date that the recurring transaction should be processed. If null, the transaction will recur indefinitely canceled.

      The transaction information entered will be saved and the transaction will recur at the frequency and on the start_date which was entered. In the event the transaction falls on a US non-business day under normal circumstances, we will process the request on the business day prior to the recurring transaction date. In the even this processing leads to multiple withdrawals during the same month, the account holder will be assessed withdrawal fees.

      POST /gw/api/v1/external-cash-transfers
      
      {
        "instructionType": "DEPOSIT",
        "instruction": {
          "clientInstructionId": 7013047,
          "accountId": "U46377",
          "currency": "USD",
          "amount": 100,
          "bankInstructionMethod": "WIRE",
          "sendingInstitution": "Sending Institution name",
          "recurDetail": {
            "instruction_name": "Arkansas-Test-Instr",
            "start_date": "2023-10-16",
            "frequency": "MONTHLY"
          }
        }
      }

      Cancel Recurring Transaction

      Recurring transactions that are initiated using the API can be canceled by calling /gw/api/v1/instructions/cancel endpoint. Within the body of the request, include the instructionId of the recurring transaction to be canceled. The instructionId is a unique value assigned by IBKR at creation of the recurring transaction.

      Optionally, instructions can be managed within IBKR Portal under Transfer & Pay > Saved Information.

      POST /gw/api/v1/instructions/cancel
      
      {
        "intructionType": "cancel_instruction",
        "instruction": {
          "clientInstructionId": "12001810",
          "instructionId": 43085477,
          "reason": "Testing"
        }
      }

      View Recurring Instructions

      The /gw/api/v1/bank-instructions/query endpoint can be used to view active recurring instruction details by accountId. Details include type, method, amount, currency, frequency, start date, and end date.

      POST /gw/api/v1/bank-instructions/query 
      
      {
        "instructionType": "get_bank_instruction_details",
        "instruction": {
          "clientInstructionId": "1012983",
          "accountId": "U399192"
        }
      }

      View Recurring Transactions

      View historical transactions associated with a recurring instruction. The look back period is set by numberOfTransactions. Response will include the recurring instruction details and status of the individual recurringTransactionStatus.

      POST /gw/api/v1/bank-instructions/query 
      
      {
        "instructionType": "QUERY_RECURRING_EVENTS",
        "instruction": {
          "clientInstructionId": "1012983",
          "ibReferenceId": 206603050,
          "numberOfTransactions": 100
        }
      }

      Open Banking

      Our Open Banking integration provides a streamlined way to manage bank connections and transfers between your bank account and your IBKR brokerage account. We partner with Plaid to handle secure bank authentication and connection management.

      We offer a hybrid integration approach rather than a full direct API integration:

      • Bank connection management is handled by our partner Plaid
      • Transfer execution is facilitated through our API endpoints
      • Standing instructions are managed within your IBKR account

      Add Open Banking Instructions

      Connect users to the IBKR portal using Single Sign On to add new Open Banking instructions to their account.

      plaintext

      Use Case: First-time setup or adding additional bank accounts

      Flow:

      1. Hosting firm will call the /api/v1/sso-browser-sessions and provide credential and ip of the end user.
      2. IBKR returns a response URL with SID (unique token).
        • SID is only valid for 60 seconds and can only be accessed from the IP which was included in the original request.
      3. Hosting firm appends ACTION=TransferFunds&type=DEPOSIT&method=OPEN_BANKING&currency=<GBPorEUR> to the URL
      4. Hosting firm invokes the URL into the users browser, new window opens and the user lands on IBKR funding page where they can add open banking instructions
      https://www.clientam.com/sso/resolver?ACTION=TransferFunds&type=DEPOSIT&method=OPEN_BANKING&currency=<GBPorEUR>&SID=<TokenHere> 

      Initiate Open Banking Deposit

      Initiate a deposit via Plaid when standing Open Banking instructions are already in place by calling the /gw/api/v1/external-cash-transfers endpoint.

      Prerequisites:

      • User must have existing standing Open Banking instructions in their IBKR account
      • Bank account must be previously connected
      • Hosting firm has provided the URI to IBKR API representative.

      Flow:

      • Hosting firm calls the /gw/api/v1/external-cash-transfers endpoint providing IBKR with deposit details.
      • IBKR returns unique URL address
      • Hosting firm invokes URL into users browser. User lands in Plaid interface.
      • User authenticates and confirms deposit
      • Funds transfer is initiated
      NameTypeDescription
      accountIdStringIBKR account ID of the advisor/broker client account which funds are being deposited to. 
      instructionTypeDEPOSITType of transaction.
      clientInstructionIdNumber; max characters 20.Unique identifier associated with the request.
      – The clientInstructionId cannot be reused.
      – IBKR’s preference is that the clientInstructionId is established in sequential order ie 1, 2, 3, 4  or 100, 101, 102, 103 not 777, 589, 123.
      amountnumber > 0Amount being deposited to the clients IBKR Account.
      bankInstructionMethodOPEN_BANKINGWIRE: Electronic fund transfer through the fed wire system. ACH: Includes US Automated Clearing House, Single Euro Payment Area, Canadian Electronic Funds Transfer.
      currencyCurrency code (3 digits). Available currencies can be found here.Currency of the funds being sent to IBKR.
      bankInstructionNameString; maximum of 150characters.Name of the previously created instruction (saved bank/account number. Only required for ACH initiated by IBKR.
      identifierString; maximum of 64characters.Bank Account Number
      serviceProviderPLAIDName of the service provider.
      linkDisplayNameString; maximum of 128 characters.Name of the client displayed on Plaid’s UI
      completeRedirectUriURI addressReturn URL (pre-configured in Plaid dashboard)
      {
          "instructionType": "DEPOSIT",
          "instruction": {
              "clientInstructionId": 43454545,
              "accountId": "U1234567",
              "currency": "EUR",
              "amount": 1300,
              "bankInstructionMethod": "OPEN_BANKING",
              "openBanking": {
                  "serviceProvider": "PLAID",
                  "plaidOptions": {
                      "linkDisplayName": "Test displayname",
                      "completionRedirectUri": "wonderdust://complete"
                  }
              },
              "bankInstructionName": "Test Bank"
          }
      }
      {
          "status": 202,
          "instructionSetId": 882059,
          "instructionResult": {
              "depositDetails": {
                  "openBanking": {
                      "serviceProvider": "PLAID",
                      "providerResponse": {
                          "paymentId": "payment-id-sandbox-dc9f2de9-6c6d-4c04-b09c-c7fb8314afc7",
                          "hostedlinkUrl": "https://secure.plaid.com/hl/ls16p0n6orpq489p4s37o3rr16pqq9n3p2",
                          "linkToken": "link-sandbox-61c5a1be-cd93-4c9f-82b8-ee61cdd4a8c7"
                      }
                  }
              },
              "ibReferenceId": 320905649,
              "clientInstructionId": 601361111111301,
              "instructionType": "DEPOSIT",
              "instructionStatus": "PENDING",
              "instructionId": 703819361
          }
      }

      Initiate Withdrawal

      When you add Open Banking instructions to your IBKR account, IBKR automatically creates a set of standing withdrawal instructions. This one-time setup enables seamless ongoing transfers. This means withdrawal requests can be submitted without requiring user interaction with Plaid or IBKR.

      • bankInstructionMethod will be one of the following:
        • LVP (IB-UK)
        • SEPA

      Prerequisites:

      • Standing withdrawal instructions must be set up in IBKR account
      POST /gw/api/v1/external-cash-transfers
      
      { "instructionType": "WITHDRAWAL", 
       "instruction": {    "clientInstructionId": 7013048,
          "accountId": "U46377",
          "bankInstructionName": "Test Withdrawal",
          "bankInstructionMethod": "SEPA",
          "amount": "123.45",
          "currency": "EUR",
          "dateTimeToOccur": "2023-11-20T09:12:13Z"
        }

      TIP: The /gw/api/v1/bank-instructions/query endpoint can be used to view list of saved banking instructions on file by accountId and bankInstructionMethod. The response will return the corresponding bankInstructionName and, bankRoutingNumbercurrency last 4 digits of the bankAccountNumber.

      Internal Transfer

      Internally transfer cash/positions between IBKR accounts based on eligibility.

      Processing Time: Our system does not allow internal transfers on Saturdays (any time), Sundays before 3PM EST, and on any evening between 11:45PM-12:30AM EST. Requests submitted outside of these times are processed in real-time.

      Transfer Cash Internally

      The /gw/api/v1/internal-cash-transfers can be used to transfer cash internally between IBKR accounts based on eligibility.

      • Non-Disclosed: Transfer cash between Non-Disclosed Master and Non-Disclosed Sub.
      • Fully-Disclosed: Transfer cash from Fully-Disclosed master to sub account.
      • All Accounts: Internal transfers supported between existing IBKR accounts IF both source and destination account have matching account titles, country of residence, tax ID, and are associated with the same IB Entity.

      Requests submitted outside of downtime are processed in real-time and will be immediate (max of 15 seconds), if request is unable to be processed in 15 seconds, the request will move to a PENDING status. Optionally, include dateTimeToOccur to schedule transaction for set time in the future.

      NameTypeDescription
      sourceAccountIdStringAccount which funds are being sent from.
      clientInstructionIdNumber; Max characters 20.Unique identifier associated with the request.
      – The clientInstructionId cannot be reused.
      – IBKR’s preference is that the clientInstructionId is established in sequential order ie 1, 2, 3, 4  or 100, 101, 102, 103 not 777, 589, 123.
      instructionTypeINTERNAL_CASH_TRANSFERType of Transaction.
      amountnumber > 0Amount of cash being transferred.
      targetAccountIdStringAccount which funds are being sent to.
      currencyCurrency code (3 digits). Available currencies can be found here.Currency of the funds being sent to IBKR.
      dateTimeToOccur2016-04-13T23:15:00+04:00 (UTC plus 4 hours)
      2016-04-13T23:15:00-04:00
      (UTC minus 4 hours)
      Date which the transfer should take place. *This is optional.
      clientNoteString; Maximum of 64 characters.Note associated with the internal cash transfer request. Note will be reflected on the client statement. This field is optional.
      POST /gw/api/v1/internal-cash-transfers
      
      {
        "intructionType": "INTERNAL_CASH_TRANSFER",
        "instruction": {
          "clientInstructionId": "1012983",
          "sourceAccountId": "U46377",
          "targetAccountId": "U15667",
          "amount": 123.45,
          "currency": "GBP",
          "dateTimeToOccur": "2018-03-20T09:12:13Z"
        }
      }

      Transfer Positions Internally

      The /gw/api/v1/internal-asset-transfers can be used to transfer positions internally between IBKR accounts based on eligibility.

      • All Accounts: Internal transfers supported between existing IBKR sub accounts IF both source and destination account have matching account titles, country of residence, tax ID, and are associated with the same IB Entity.
      • Non-Disclosed and Omnibus: Internal transfer supported between sub accounts that are linked to the same master account.

      Processing

      Our system processes 200 requests every 5 minutes, this is an asynchronous process. If a bulk request of 600 transfer requests submitted. This will take 15 minutes to be processed (total of 3 batches). Users may be subject to additional fee if submitting more than 1000 internal position transfer requests daily.

      NameTypeDescription
      clientInstructionIdNumber; max characters 20.Unique identifier associated with the request.
      – The clientInstructionId cannot be reused.
      – IBKR’s preference is that the clientInstructionId is established in sequential order ie 1, 2, 3, 4  or 100, 101, 102, 103 not 777, 589, 123.
      instructionTypeINTERNAL_POSITION_TRANSFERType of transaction
      securityIdStringCUSIP/ISIN number of the security being transferred.
      transferQuantityNumberNumber of shares being transferred in/out
      assetTypeSTKProduct type. Internal transfer for Non-STK products (ie. Options, Bonds) are only supported using CONID (not ISIN). We do not require asset_type to be specified when submitting internal transfer using CONID.
      securityIdTypeCUSIP
      ISIN
      CASH
      Used to determine securityId  type that was provided. Either ISIN or CUSIP.
      conIdStringUnique Contract ID assigned by Interactive Brokers.
      currencyCurrency code (3 digits). Available currencies can be found here.Currency of the assets being transferred. 
      countryAlpha-3 code (ISO)Country which the contra broker is located.
      sourceAccountIdStringAccount which funds are being sent from.
      targetAccountIdStringAccount which funds are being sent to.

      2 options for submitting request (securityId OR conId)

      Option 1: Using securityId

      POST /gw/api/v1/internal-asset-transfers
      {
        "instructionType": "INTERNAL_POSITION_TRANSFER",
        "instruction": {
          "clientInstructionId": 7013044,
          "sourceAccountId": "U399192",
          "targetAccountId": "U87440",
          "position": 106,
          "transferQuantity": 6,
          "tradingInstrument": {
            "tradingInstrumentDescription": {
              "securityIdType": "ISIN",
              "securityId": "459200101",
              "assetType": "STK"
            },
            "currency": "USD"
          }
        }
      }

      Option 2: Using conId

      POST /gw/api/v1/internal-asset-transfers
      
      {
        "instructionType": "INTERNAL_POSITION_TRANSFER",
        "instruction": {
          "clientInstructionId": 7013043,
          "sourceAccountId": "U399192",
          "targetAccountId": "U87440",
          "position": 106,
          "transferQuantity": 6,
          "tradingInstrument": {
            "conId": 21323,
            "currency": "USD"
          }
        }
      }

      Position Transfers

      Transfer positions between IBKR brokerage account and external account using the /gw/api/v1/external-asset-transfers endpoint. Transfer methods available will vary based on country of residence and currency of assets being transferred.

      Enter an FOP transfer, in which all of your assets are transferred from a third-party broker to your account (inbound), or from your IBKR account to a third-party broker. Account Name, Tax Identification Number and Client Type (i.e. individual, joint), must exactly match the third-party broker account in order for the transfer to take place.

      Inbound Transfer (Transfer positions to IBKR): Transfer is initiated by delivering broker. The API can be used to create notification so IBKR is aware of the incoming transfer. The FOP receive notification at IBKR will expire after 5 business days if securities are not received. Once the notice has expired IBKR will not accept the shares.

      Outgoing Transfer (Transfer positions out of the IBKR account): From your account to another US bank or broker that is a member of the DTC (outbound transfer).

      For more information on FOP, refer to this link.

      NameTypeDescription
      clientInstructionIdNumber; max 20 characters.Unique identifier associated with the request.
      – The clientInstructionId cannot be reused.
      – IBKR’s preference is that the clientInstructionId is established in sequential order ie 1, 2, 3, 4  or 100, 101, 102, 103 not 777, 589, 123.
      instructionTypeFOPType of transaction.
      directionIN
      OUT
      Indicate if this is an incoming our outgoing transfer.
      IN = Incoming to IBKR
      OUT= Transferring out to third party Broker.
      accountIdStringIBKR Account Number of the client account that is initiating the transfer.
      contraBrokerAccountIdStringClient account number at the third party broker. 
      contraBrokerDtcCodeUse /gw/api/v1/enumerations/{enumerationType} for the value.DTC Number of the third party  institution.
      securityIdStringCUSIP/ISIN number of the security being transferred.
      quantityNumberNumber of shares being transferred in/out
      asset_typeBILL
      BOND
      CASH
      FUND
      OPT
      STK
      WAR
      Product type. 
      securityIdTypeCUSIP
      ISIN
      CASH
      Used to determine securityId  type that was provided. Either ISIN or CUSIP.
      conIdStringUnique Contract ID assigned by Interactive Brokers.
      currencyUSDCurrency of the assets being transferred. 

      2 options for submitting request (securityId OR conId)

      Option 1: Using securityId (CUSIP or ISIN)

      POST /gw/api/v1/external-asset-transfers
      {
        "instructionType": "FOP",
        "instruction": {
          "clientInstructionId": 7013039,
          "direction": "IN",
          "accountId": "U46377",
          "contraBrokerAccountId": "12345678A",
          "contraBrokerDtcCode": "534",
          "quantity": 1000,
          "tradingInstrument": {
            "tradingInstrumentDescription": {
              "securityIdType": "ISIN",
              "securityId": "459200101",
              "assetType": "STK"
            },
            "currency": "USD"
          }
        }
      }

      Option 2: Using conId

      POST /gw/api/v1/external-asset-transfers
      
      {
        "instructionType": "fop",
        "instruction": {
          "clientInstructionId": 7013038,
          "direction": "IN",
          "accountId": "U46377",
          "contraBrokerAccountId": "12345678A",
          "contraBrokerDtcCode": "534",
          "quantity": 1000,
          "tradingInstrument": {
            "conId": 12123,
            "currency": "USD"
          }
        }
      }

      DWAC or Deposit/Withdrawal at Custodian is an electronic method for transferring securities between transfer agent and your account facilitated by the DTC (Depository Trust company).

      For more information on DWAC, refer to this link.

      NameValueDescription
      clientInstructionIdNumber; max 20 characters.Unique identifier associated with the request.
      – The clientInstructionId cannot be reused.
      – IBKR’s preference is that the clientInstructionId is established in sequential order ie 1, 2, 3, 4  or 100, 101, 102, 103 not 777, 589, 123.
      instructionTypeDWACType of transaction.
      directionIN
      OUT
      Indicate if this is an incoming our outgoing transfer.
      IN = Incoming to IBKR
      OUT= Transferring out to third party Broker.
      accountIdString; maximum 32 characters.IBKR Account Number of the client account that is initiating the transfer.
      contraBrokerAccountIdString; maximum 20 characters.Client account number at the third party broker. 
      contraBrokerTaxIdString; maximum 25 characters.Tax ID associated with Contra.
      securityIdStringCUSIP/ISIN number of the security being transferred.
      quantityNumberNumber of shares being transferred in/out
      assetTypeBILL
      BOND
      CASH
      FUND
      OPT
      STK
      WAR
      Product type. 
      securityIdTypeCUSIP
      ISIN
      CASH
      Used to determine securityId  type that was provided. Either ISIN or CUSIP.
      conIdStringUnique Contract ID assigned by Interactive Brokers.
      currencyCurrency code (3 digits). Available currencies can be found here.Currency of the assets being transferred. 
      referenceIdStringUnique Contract ID assigned by Interactive Brokers.
      accountTitleString; maximum 140 characters.Account title of the receiving account at IBKR.
      POST /gw/api/v1/external-asset-transfers
      
      {
        "instructionType": "DWAC",
        "instruction": {
          "clientInstructionId": 7013036,
          "direction": "IN",
          "accountId": "U1001095",
          "contraBrokerAccountId": "12345678A",
          "contraBrokerTaxId": "123456789",
          "quantity": 1000,
          "accountTitle": "Special Company Holding LLC",
          "referenceId": "refId",
          "tradingInstrument": {
            "conId": 12123,
            "currency": "USD"
          }
        }
      }

      The Automated Customer Account Transfer Service (ACATS) in the U.S facilitates the transfer of US stocks, warrants, options US mutual funds, US bonds and cash held at another brokerage firm to us through the National Securities Clearing Corporation’s (NSCC). The API currently only supports a FULL transfer. Partial transfer are supported within IBKR Portal.

      • Processing Time: US securities and USD Cash transfer between 4 and 8 days and can be traded immediately. See More Information for withdrawal restrictions. Non-US securities may take longer.
      • Fees: IBKR will pass through any fees that are charged by your current broker. See notes in More Information.

      For more information on ACATS, refer to this link.

      NameTypeDescription
      clientInstructionIdNumber; max 20 characters.Unique identifier associated with the request.
      – The clientInstructionId cannot be reused.
      – IBKR’s preference is that the clientInstructionId is established in sequential order ie 1, 2, 3, 4  or 100, 101, 102, 103 not 777, 589, 123.
      instructionTypeEXTERNAL_POSITION_TRANSFERType of Transaction.
      typeFULLType will always be FULL.
      subTypeACATSMethod used to initiate the transfer. Details: Overview of transfer methods.
      brokerIdUse /gw/api/v1/enumerations/{enumerationType} for the value.DTC Number of the sending institution.
      brokerNameUse /gw/api/v1/enumerations/{enumerationType} for the value.Name of the sending institution.
      accountAtBrokerStringClient account number at sending institution.
      accountIdStringIBKR Account Number of the client account that is initiating the transfer.
      signatureStringSignature should match applicants first name middle initial (if applicable) last name suffix (if applicable) *Data is case and space sensitive.
      sourceIRAType If transfer is between two IRA accounts, specify the IRA type.
      POST /gw/api/v1/external-asset-transfers
      
      {
        "instructionType": "EXTERNAL_POSITION_TRANSFER",
        "instruction": {
          "clientInstructionId": 7013060,
          "type": "FULL",
          "subType": "ACATS",
          "brokerId": "0226",
          "brokerName": "Wall Street Financial Group",
          "accountAtBroker": "SOL12345",
          "sourceIRAType": "RO",
          "accountId": "U1225448",
          "signature": "John Tester"
        }
      }

      ATON transfer lets you transfer US or Canadian stocks, options and cash held at another brokerage firm to us through Account Transfer on Notification (ATON), the Canadian equivalent of ACATS

      • Processing Time: Most assets transfer between 3 to 8 business days, but it varies depending on your broker.
      • Fees: Your current broker may charge a fee for the outgoing transfer. See notes in More Information.

      For more information on ATON, refer to this link.

      NameTypeDescription
      clientInstructionIdNumber; max 20 characters.Unique identifier associated with the request.
      – The clientInstructionId cannot be reused.
      – IBKR’s preference is that the clientInstructionId is established in sequential order ie 1, 2, 3, 4  or 100, 101, 102, 103 not 777, 589, 123.
      instructionTypeEXTERNAL_POSITION_TRANSFERType of Transaction.
      typeFULLType will always be FULL.
      subTypeACATSMethod used to initiate the transfer. Details: Overview of transfer methods.
      brokerIdUse /gw/api/v1/enumerations/{enumerationType} for the value.DTC Number of the sending institution.
      brokerNameUse /gw/api/v1/enumerations/{enumerationType} for the value.Name of the sending institution.
      accountAtBrokerStringClient account number at sending institution.
      accountIdStringIBKR Account Number of the client account that is initiating the transfer.
      signatureStringSignature should match applicants first name middle initial (if applicable) last name suffix (if applicable) *Data is case and space sensitive.
      POST /gw/api/v1/external-asset-transfers
      
      {
        "instructionType": "EXTERNAL_POSITION_TRANSFER",
        "instruction": {
          "clientInstructionId": 7013060,
          "type": "FULL",
          "subType": "ATON",
          "brokerId": "3265",
          "brokerName": "Wall Street Financial Group",
          "accountAtBroker": "SOL12345",
          "accountId": "U1225448",
          "signature": "John Tester"
        }
      }

      For a basic FOP, IBKR will coordinate with the Canadian, European, Middle East/African, Asia/Pacific financial institution on settlement instructions to transfer global equities, fixed income, structured products, and options on a free-of-payment basis.

      To expedite the transfer process, pass settlement instructions for transfer request to IBKR via the API. The settlement data will be included within nonDisclosedDetail. This service is available by request only, contact your IBKR representative if interested in using this service.

      • Inbound Transfer (Transfer positions to IBKR): Transfer is initiated by delivering broker. The API can be used to create notification so IBKR is aware of the incoming transfer.
      • Outgoing Transfer (Transfer positions out of the IBKR account): From your account to another bank or broker.
      NameTypeDescription
      clientInstructionIdNumber; max 20 characters.Unique identifier associated with the request.
      – The clientInstructionId cannot be reused.
      – IBKR’s preference is that the clientInstructionId is established in sequential order ie 1, 2, 3, 4  or 100, 101, 102, 103 not 777, 589, 123.
      instructionTypeCOMPLEX_ASSET_TRANSFERType of transaction.
      directionIN
      OUT
      Indicate if this is an incoming our outgoing transfer.
      IN = Incoming to IBKR
      OUT= Transferring out to third party Broker.
      accountIdString; maximum 32 characters.IBKR Account Number of the client account that is initiating the transfer.
      securityIdStringCUSIP/ISIN number of the security being transferred.
      quantityNumberNumber of shares being transferred in/out
      assetTypeBILL
      BOND
      CASH
      FUND
      OPT
      STK
      WAR
      Product type. 
      securityIdTypeCUSIP
      ISIN
      CASH
      Used to determine securityId  type that was provided. Either ISIN or CUSIP.
      conIdStringUnique Contract ID assigned by Interactive Brokers.
      currencyCurrency code (3 digits). Available currencies can be found here.Currency of the assets being transferred. 
      accountTypeINDIVIDUAL
      JOINT
      ORG
      TRUST
      Account Type (at Financial Institution)
      brokerNameUse /api/v1/enumerations/complex-asset-transfer to get accepted values.Name of Financial Institution
      tradeDateYYYY-MM-DDCurrent or future date. Trade date cannot exceed settleDate. Date should not be more than 30 days in advance.
      settleDateYYYY-MM-DDCannot be prior to current date.
      depositoryIdStringID at Depository.
      psetBicStringPlace of Settlement
      reagDeagBicStringID code of delivering agent.
      buyrSellBicStringID Code of Buyer or Seller.
      memberAccountIdStringAccount ID for market.
      safekeepingAccountStringSafekeeping Account
      brokerAccountIdStringClient account number at the third party broker. 
      countryAlpha-3 code (ISO)Country which the contra broker is located.
      contractNameString; max of 64 characters.Name of the contact at the contra broker.
      contactEmailString; max of 64 characters.Email of the contact at the contra broker. Note: We use REGEX to validate the email. Validations outlined here.
      contactPhoneString; max of 16 characters.Phone number of the contact at the contra broker. Note: We use Google API to validate the Phone Number. Validations outlined here.

      2 options for submitting request (securityId OR conId)

      Option 1: conID based request

      POST /gw/api/v1/external-asset-transfers
      
      {
        "instructionType": "COMPLEX_ASSET_TRANSFER",
        "instruction": {
          "clientInstructionId": 7013040,
          "direction": "IN",
          "accountId": "U399192",
          "quantity": 10,
          "contraBrokerInfo": {
            "accountType": "ORG",
            "brokerName": "JP MORGAN",
            "depositoryId": "1234",
            "brokerAccountId": "as3456567678578N",
            "country": "United States",
            "contactName": "as",
            "contactEmail": "a@gmail.com",
            "contactPhone": "2039126155"
          },
          "tradingInstrument": {
            "conId": 12123,
            "currency": "USD"
          }
        }
      }

      Option 2: securityId based request

      POST /gw/api/v1/external-asset-transfers
      
      {
        "instructionType": "COMPLEX_ASSET_TRANSFER",
        "instruction": {
          "clientInstructionId": 7013042,
          "direction": "IN",
          "accountId": "U399192",
          "quantity": 10,
          "contraBrokerInfo": {
            "accountType": "ORG",
            "brokerName": "JP MORGAN",
            "depositoryId": "1234",
            "brokerAccountId": "as3456567678578N",
            "country": "United States",
            "contactName": "as",
            "contactEmail": "a@gmail.com",
            "contactPhone": "2039126155"
          },
          "tradingInstrument": {
            "tradingInstrumentDescription": {
              "securityIdType": "ISIN",
              "securityId": "459200101",
              "assetType": "STK"
            },
            "currency": "USD"
          }
        }
      }

      2 options for submitting request (securityId OR conId)
      Option 1: conID based request

      POST /gw/api/v1/external-asset-transfers
      
      {
        "instructionType": "complex_asset_transfer",
        "instruction": {
          "clientInstructionId": 7013041,
          "direction": "IN",
          "accountId": "U399192",
          "quantity": 10,
          "contraBrokerInfo": {
            "accountType": "ORG",
            "brokerName": "JP MORGAN",
            "depositoryId": "1234",
            "brokerAccountId": "as3456567678578N",
            "country": "United States",
            "contactName": "as",
            "contactEmail": "a@gmail.com",
            "contactPhone": "2039126155"
          },
             "tradingInstrument": {
            "conId": 12123,
            "currency": "USD"
          },
          "nonDisclosedDetail": {
            "tradeDate": "2018-03-20T09:12:13Z",
            "settleDate": "2018-03-20T09:12:13Z",
            "psetBic": "OCSDATWWXXX",       
            "reagDeagBic": "TMBECH22XXX",
            "buyerSellBic": "TMBECH22XXX",
            "memberAccountId": "OCSD212100",
            "safeKeepingAccountId": "OCSD212100"
          }
        }
      }

      Option 2: Security Id based request

      POST /gw/api/v1/external-asset-transfers
      {
        "instructionType": "complex_asset_transfer",
        "instruction": {
          "clientInstructionId": 7013041,
          "direction": "IN",
          "accountId": "U399192",
          "quantity": 10,
          "contraBrokerInfo": {
            "accountType": "ORG",
            "brokerName": "JP MORGAN",
            "depositoryId": "1234",
            "brokerAccountId": "as3456567678578N",
            "country": "United States",
            "contactName": "as",
            "contactEmail": "a@gmail.com",
            "contactPhone": "2039126155"
          },
          "tradingInstrument": {
            "tradingInstrumentDescription": {
              "securityIdType": "ISIN",
              "securityId": "459200101",
              "assetType": "STK"
            },
            "currency": "USD"
          },
          "nonDisclosedDetail": {
            "tradeDate": "2018-03-20T09:12:13Z",
            "settleDate": "2018-03-20T09:12:13Z",
            "psetBic": "OCSDATWWXXX",       
            "reagDeagBic": "TMBECH22XXX",
            "buyerSellBic": "TMBECH22XXX",
            "memberAccountId": "OCSD212100",
            "safeKeepingAccountId": "OCSD212100"
          }
        }
      }

      If brokerName= 'IB' OR ‘INTERNAL‘, accountTitle AND accountIdAtCurrentBroker are required.

      There are 2 options for submitting request (securityId OR conId)
      Option 1: conID based request

      POST /gw/api/v1/external-asset-transfers
      
      {
        "instructionType": "complex_asset_transfer",
        "instruction": {
          "clientInstructionId": 7013041,
          "direction": "IN",
          "accountId": "U399192",
          "quantity": 10,
           "accountIdAtCurrentBroker": "U123456",
          "contraBrokerInfo": {
            "accountType": "ORG",
            "brokerName": "INTERNAL",
            "depositoryId": "1234",
            "brokerAccountId": "as3456567678578N",
            "country": "United States",
            "contactName": "as",
            "contactEmail": "a@gmail.com",
            "contactPhone": "2039126155"
            "accountTitle": "My Account Title"
      
          },
             "tradingInstrument": {
            "conId": 12123,
            "currency": "USD"
          },
          "nonDisclosedDetail": {
            "tradeDate": "2018-03-20T09:12:13Z",
            "settleDate": "2018-03-20T09:12:13Z",
            "psetBic": "OCSDATWWXXX",       
            "reagDeagBic": "TMBECH22XXX",
            "buyerSellBic": "TMBECH22XXX",
            "memberAccountId": "OCSD212100",
            "safeKeepingAccountId": "OCSD212100"
          }
        }
      }

      Option 2: Security Id based request

      POST /gw/api/v1/external-asset-transfers
      {
        "instructionType": "complex_asset_transfer",
        "instruction": {
          "clientInstructionId": 7013041,
          "direction": "IN",
          "accountId": "U399192",
          "quantity": 10,    
           "accountIdAtCurrentBroker": "U123456",    
            "contraBrokerInfo": {
            "accountType": "ORG",
            "brokerName": "INTERNAL",
            "depositoryId": "1234",
            "brokerAccountId": "as3456567678578N",
            "country": "United States",
            "contactName": "as",
            "contactEmail": "a@gmail.com",
            "contactPhone": "2039126155",      
             "accountTitle": "My Account Title"},
          "tradingInstrument": {
            "tradingInstrumentDescription": {
              "securityIdType": "ISIN",
              "securityId": "459200101",
              "assetType": "STK"
            },
            "currency": "USD"
          },
          "nonDisclosedDetail": {
            "tradeDate": "2018-03-20T09:12:13Z",
            "settleDate": "2018-03-20T09:12:13Z",
            "psetBic": "OCSDATWWXXX",       
            "reagDeagBic": "TMBECH22XXX",
            "buyerSellBic": "TMBECH22XXX",
            "memberAccountId": "OCSD212100",
            "safeKeepingAccountId": "OCSD212100"
          }
        }
      }
                        Error Code                                            Error Message Example:
      Upload Validity Checks
      ERROR_BROKER_NAME_NOT_FOUND                                                      Error: Broker name HSBCSCB not found. Please query for /api/v1/enumerations/complex-asset-transfer} retrieve a list of all accepted brokers.
      NON_DISCLOSED_VALIDATION_FAILED_FOR_COMPLEX_ASSET_TRANSFER       Incomplete information for non-disclosed client, null/empty value detected in some of these fields for pset BIC: CIKBBEBBXX – reagDeagBic, buyrSellBic, memberAccountId, safekeepingAccount.
      CORRUPT_DATA_INVALID_ACCT                                                         Account UXXXXX does not exist
      ERROR_ACCOUNT_CP_NOT_RELATED                                                   Account UXXXXX not related to counterparty <CounterPartyNameHere>
      UNSUPPORTED_CHARACTERS_ERROR                                                      value contains illegal character(s). Character set not supported.
      CORRUPT_DATA_DUBPLICATE_CPcounterPartyTranId 1195814 already exists for counterparty <CounterPartyNameHere>
      Processing Validity Checks
      Error Code:                                                                                                           Error Message Example:
      NOT_OPEN_ACCOUNT                                                                          Account UXXXXX is not open
      COMPLEX_ASSET _TRANSFER_NOT_ALLOWED                              isTransferAllowed is fales for acctid:UXXXXX transfer_method:FOP quantity:80 isFullTransfer:false Direction:OUT clearingBrokerID:JP MORGAN ibConId:34234

      Status of Position Transfer Request

      For fop AND complexAssetTransfer, the response returned by IBKR will include clearingState AND status. The status returns the overall status of the clearingState reflects stage in the transfer process.

      clearing_statestatusNotes
      REJECTEDREJECTEDTransfer request was rejected.
      POSTEDPROCESSEDThe asset deliveries on your transfer request are now in progress.  Market instructions have been placed and settlement will occur once matched with your recipient broker.
      SETTLEDPROCESSEDYour transfer request is complete.
      PROCESSEDPROCESSEDThe transfer request has been processed.
      PARTIALLYSETTLEDPENDINGSome of the assets on your transfer request have settled.
      APPROVEDPENDINGYour transfer request has been approved for processing. 
      SETTLEMENT_INSTRUCTIONS_TRANSMITTEDPENDINGTransfer instruction submitted to counterparty.
      FULLYENTEREDPENDINGYour transfer request has been received and is being reviewed by the Transfers Department.  If you have not already notified your receiving broker, please do so now.
      BROKER_CONTACTEDPENDINGWe have contacted your broker/bank and are awaiting their response to confirm your transfer request.  They must agree to the transfer details before we can proceed.  If you have not already instructed them, please do so now.     
      ACKNOWLEDGEDPENDINGIBKR has received the transfer request.

      Bulk Transactions

      Internal Cash Transfer (Bulk)

      The /v1/clients/{client-id}/internal-cash-transfers:bulk can be used to transfer cash internally between IBKR accounts based on eligibility.

      • Multiple transfer requests can be included within single instruction set.
      • Batch processing every 30-60 seconds unless dateTimeToOccur is specified. Transfer will be processed for dateTimeToOccur. For instant transfers, use internal_cash_transfer.
      NameTypeDescription
      sourceAccountIdStringAccount which funds are being sent from.
      clientInstructionIdNumber; Max characters 20.Unique identifier associated with the request.
      – The clientInstructionId cannot be reused.
      – IBKR’s preference is that the clientInstructionId is established in sequential order ie 1, 2, 3, 4  or 100, 101, 102, 103 not 777, 589, 123.
      instructionTypeINTERNAL_CASH_TRANSFERType of Transaction.
      amountnumber > 0Amount of cash being transferred.
      targetAccountIdStringAccount which funds are being sent to.
      currencyCurrency code (3 digits). Available currencies can be found here.Currency of the funds being sent to IBKR.
      dateTimeToOccur2016-04-13T23:15:00+04:00 (UTC plus 4 hours)
      2016-04-13T23:15:00-04:00
      (UTC minus 4 hours)
      Date which the transfer should take place. *This is optional.
      clientNoteString; Maximum of 64 characters.Note associated with the internal cash transfer request. Note will be reflected on the client statement. This field is optional.

      [POST] /v1/clients/{client-id}/internal-cash-transfers:bulk
      {
      "instructionType": "INTERNAL_CASH_TRANSFER",
      "instructions": [
      {
      "clientInstructionId": 1,
      "sourceAccountId": "U345",
      "targetAccountId": "U87440",
      "amount": 123.45,
      "currency": "GBP",
      "dateTimeToOccur": "2018-03-20T09:12:13Z"
      },
      {
      "clientInstructionId": 2,
      "sourceAccountId": "U345",
      "targetAccountId": "U87440",
      "amount": 123.45,
      "currency": "GBP",
      "dateTimeToOccur": "2018-03-20T09:12:13Z"
      },
      {
      "clientInstructionId": 3,
      "sourceAccountId": "U399192",
      "targetAccountId": "U87440",
      "amount": 123.45,
      "currency": "GBP",
      "dateTimeToOccur": "2018-03-20T09:12:13Z"
      },
      {
      "clientInstructionId": 4,
      "sourceAccountId": "U399192",
      "targetAccountId": "U87440",
      "amount": 123.45,
      "currency": "GBP",
      "dateTimeToOccur": "2018-03-20T09:12:13Z"
      }
      ]
      }

      Internal Position Transfer (Bulk)

      The/v1/clients/{client-id}/internal-asset-transfers:bulk can be used to transfer positions internally between IBKR accounts based on eligibility.

      • Multiple transfer requests can be included within single instruction set.
      • Our system processes 200 requests every 5 minutes, this is an asynchronous process. If a bulk request of 600 transfer requests submitted. This will take 15 minutes to be processed (total of 3 batches). Users may be subject to additional fee if submitting more than 1000 internal position transfer requests daily.
      NameTypeDescription
      clientInstructionIdNumber; max characters 20.Unique identifier associated with the request.
      – The clientInstructionId cannot be reused.
      – IBKR’s preference is that the clientInstructionId is established in sequential order ie 1, 2, 3, 4  or 100, 101, 102, 103 not 777, 589, 123.
      instructionTypeINTERNAL_POSITION_TRANSFERType of transaction
      securityIdStringCUSIP/ISIN number of the security being transferred.
      transferQuantityNumberNumber of shares being transferred in/out
      assetTypeSTKProduct type. Internal transfer for Non-STK products (ie. Options, Bonds) are only supported using CONID (not ISIN). We do not require asset_type to be specified when submitting internal transfer using CONID.
      securityIdTypeCUSIP
      ISIN
      CASH
      Used to determine securityId  type that was provided. Either ISIN or CUSIP.
      conIdStringUnique Contract ID assigned by Interactive Brokers.
      currencyCurrency code (3 digits). Available currencies can be found here.Currency of the assets being transferred. 
      countryAlpha-3 code (ISO)Country which the contra broker is located.
      sourceAccountIdStringAccount which funds are being sent from.
      targetAccountIdStringAccount which funds are being sent to.

      2 options for submitting request (securityId OR conId)

      Option 1: Using securityId (CUSIP or ISIN)

      POST /v1/clients/{client-id}/internal-asset-transfers:bulk
      
      {
        "instructionType": "INTERNAL_POSITION_TRANSFER",
        "instructions": [
          {
            "clientInstructionId": 7013005,
            "sourceAccountId": "U399192",
            "targetAccountId": "U87440",
            "transferQuantity": 6,
            "tradingInstrument": {
              "tradingInstrumentDescription": {
                "securityIdType": "ISIN",
                "securityId": "45229200101",
                "assetType": "STK"
              },
            }
          },
          {
            "clientInstructionId": 7013006,
            "sourceAccountId": "U399192",
            "targetAccountId": "U87440",
            "transferQuantity": 6,
            "tradingInstrument": {
              "tradingInstrumentDescription": {
                "securityIdType": "ISIN",
                "securityId": "459200101",
                "assetType": "STK"
              },
              "currency": "USD"
            }
          },
          {
            "clientInstructionId": 7013043,
            "sourceAccountId": "U399192",
            "targetAccountId": "U87440",
            "transferQuantity": 6,
            "tradingInstrument": {
              "tradingInstrumentDescription": {
                "securityIdType": "ISIN",
                "securityId": "45229200101",
                "assetType": "STK"
              },
            },
          }
        ]
      }
      

      Option 2: Using conId

      POST /v1/clients/{client-id}/internal-asset-transfers:bulk
      
      {
        "instructionType": "INTERNAL_POSITION_TRANSFER",
        "instructions": [
          {
            "clientInstructionId": 7013005,
            "sourceAccountId": "U399192",
            "targetAccountId": "U87440",
            "transferQuantity": 6,
            "tradingInstrument": {
              "conid": 21323,
              "currency": "USD"
            }
          },
          {
            "clientInstructionId": 7013006,
            "sourceAccountId": "U399192",
            "targetAccountId": "U87440",
            "transferQuantity": 6,
              "tradingInstrument": {
              "conid": 111222,
              "currency": "USD"
            }
          },
          {
            "clientInstructionId": 7013043,
            "sourceAccountId": "U399192",
            "targetAccountId": "U87440",
            "transferQuantity": 6,
            "tradingInstrument": {
              "conid": 21323,
              "currency": "USD"
            },
          }
        ]
      }

      Reporting

      IBKR offers comprehensive reporting capabilities to meet your business requirements. This section provides detailed guidance on accessing various reports through our API.

      • Activity Statements: Activity Statements reflect all account activity including cash transactions, dividends, corporate actions, and trades.
      • Tax Forms: Access tax documents for the last 5 years.
      • Trade Confirmations: Trade confirmation generated in real-time for all executions.

      Activity Statements

      Activity statements show summary of account activity for a given time period. This includes net asset value, PnL data and transaction details. The API can be used to view available statements and generate statements in PDF format.

      Available Statements

      The gw/api/v1/statements/available can be used to query list of available statements based on accountId. The endpoint will return available statements for up to 2 years and year to date for daily, monthly and annual statements.

      • Statements are available from date which account is funded.
      • The reporting window closes at 5:15PM EST for commodities and 8:20PM EST for securities. Statements will be available around midnight (EST).

      For daily, response will return first date available to last date available.

      GET gw/api/v1/statements/available?accountId=U123456
      
      {
          "data": {
              "dataType": "String",
              "value": {
                  "daily": {
                      "endDate": "20241007",
                      "startDate": "20220101"
                  },
                  "monthly": [
                      "202201",
                      "202202",
                      "202203",
                      "202204",
                      "202205",
                      "202206",
                      "202207",
                      "202208",
                      "202209",
                      "202210",
                      "202211",
                      "202212",
                      "202301",
                      "202302",
                      "202303",
                      "202304",
                      "202305",
                      "202306",
                      "202307",
                      "202308",
                      "202309",
                      "202310",
                      "202311",
                      "202312",
                      "202401",
                      "202402",
                      "202403",
                      "202404",
                      "202405",
                      "202406",
                      "202407",
                      "202408",
                      "202409"
                  ],
                  "annual": [
                      "2022",
                      "2023"
                  ]
              }
          }
      }

      Generate Statements

      The gw/api/v1/statements can be used to generate standard statements in PDF format for given time period. The startDate and endDate will be used to set the time period.

      • Maximum range is 365 days per request.
      • Statements are only available from date which account is funded.

      Additional formats (Excel, CSV, HTML) and Custom Statements are available for download within IBKR Portal.

      NameTypeDescription
      accountId
      stringThe IBKR accountId which statement is being requested for.
      accountIdsArray of stringsarray of accountId’s
      startDateYYYYMMDDFrom date
      endDateYYYYMMDDLast reporting date to be included.
      multiAccountFormatconsolidate
      concatenate
      customConsolidate
      consolidate:  A single statement with consolidated data for
      all sub accounts in a merged format.

      concatenate: Includes all sub accounts as separate sections, in a format similar to selecting multiple accounts

      customConsolidate
      :  A single statement with consolidated data for custom group of sub accounts in a merged format.
      cryptoConsolIfAvailabletrue
      false
      Default is false. If request contains any accounts with crypto segment, will turn request into Crypto Consolidated
      mimeTypeapplication/pdfOutput format of the statement.
      languageen
      tw
      cn
      fr
      de
      es
      it
      ru
      ja
      pt
      two character ISO language code
      Default: “en”

      tw= Chinese Traditional
      cn= Chinese Simplified
      fr= French
      de= German
      es= Spanish
      it= Italian
      ru= Russian
      ja= Japanese
      pt = Portuguese
      gziptrue
      false
      Default is false, If set to true, the response will be compressed (gzip).
      PeriodstartDateendDateExample
      AnnualYYYYYYYYPOST gw/api/v1/statements

      { accountId: "U12345", startDate: "2023", endDate: "2023", mimeType: "application/pdf" }
      MonthliesYYYYMMYYYYMMPOST gw/api/v1/statements

      { accountId: "U12345", startDate: "202304", endDate: "202304", mimeType: "application/pdf" }
      Custom Date RangeYYYYMMDDYYYYMMDDPOST gw/api/v1/statements

      { accountId: "U12345", startDate: "20230401", endDate: "20230425", mimeType: "application/pdf" }

      Tax Forms

      View available tax forms and generate historical or current tax forms by account ID.

      Available Tax Forms

      The gw/api/v1/tax-documents/available can be used to query list of available tax forms based on accountId.

      • Tax Form availability
        • Form 1099 (Consolidated) will be available February 15 for the immediately preceding year.
        • Form 1099-R for IRA accounts will be available by January 31 for the immediately preceding year.
        • Form 5498 for IRA accounts will be available by May 31 for the immediately preceding year.

      For more information on available tax forms, please visit our main website.

      GET gw/api/v1/tax-documents/available?accountId=U123456&year=2022
      
      {
      "data": {
      "dataType": "String",
      "value": {
      "forms": [
      {
      "isForm": true,
      "taxFormName": "1099",
      "formats": [
      "PDF"
      ]
      }
      ]
      }
      }
      }

      Generate Tax Documents

      The gw/api/v1/tax-documents can be used to generate tax documents in PDF, HTML or CSV format for given tax year.

      NameTypeDescription
      accountId
      stringThe IBKR accountId which tax form is being requested for.
      yearYYYYTax Year
      formatHTML
      CSV
      PDF
      Format of tax form
      type1099
      1099R
      1042S
      8949
      All
      Type of tax form to be generated.
      gziptrue
      false
      Default is false, If set to true, the response will be compressed (gzip).
      Example
      POST gw/api/v1/tax-documents

      {"accountId": "UXXXX",
      "year": 2023,
      "type": "ALL,1099,1099R,1042S,8949",
      "format": "HTML,CSV,PDF",
      "gzip": false
      }

      Trade Confirmations

      Real-time trade confirmations are generated for all executions.

      Available Trade Confirmations

      The gw/api/v1/trade-confimations/available can be used to view dates which trade confirmations are available for based on accountId. The endpoint will only return dates which account placed trades and will return available dates for up to 2 years.

      For daily, response will return first date available to last date available.

      GET gw/api/v1/trade-confirmations/available?accountId=U123456
      
      {
          "data": {
              "dataType": "String",
              "value":["20230428","20230731","20231031","20240102","20240430","20240731","20241031","20241231","20250411","20250430"]
          }
      }

      Generate Trade Confirmation

      The gw/api/v1/trade-confirmations can be used to generate standard trade confirmations in PDF format for given time period. The startDate and endDate will be used to set the time period.

      • Maximum range is 365 days per request.
      • Trade confirmations are only available for days which trades are placed.

      Additional formats (Excel, CSV, HTML) are available for download within IBKR Portal.

      NameTypeDescription
      accountId
      stringThe IBKR accountId which statement is being requested for.
      accountIdsArray of stringsarray of accountId’s
      startDateYYYYMMDDFrom date
      endDateYYYYMMDDLast reporting date to be included.
      multiAccountFormatconsolidate
      concatenate
      customConsolidate
      consolidate:  A single statement with consolidated data for
      all sub accounts in a merged format.

      concatenate: Includes all sub accounts as separate sections, in a format similar to selecting multiple accounts

      customConsolidate
      :  A single statement with consolidated data for custom group of sub accounts in a merged format.
      cryptoConsolIfAvailabletrue
      false
      Default is false. If request contains any accounts with crypto segment, will turn request into Crypto Consolidated
      mimeTypeapplication/pdfOutput format of the statement.
      languageen
      tw
      cn
      fr
      de
      es
      it
      ru
      ja
      pt
      two character ISO language code
      Default: “en”

      tw= Chinese Traditional
      cn= Chinese Simplified
      fr= French
      de= German
      es= Spanish
      it= Italian
      ru= Russian
      ja= Japanese
      pt = Portuguese
      gziptrue
      false
      Default is false, If set to true, the response will be compressed (gzip).
      POST gw/api/v1/trade-confirmations{ accountId: "U12345", startDate: "20230401", endDate: "20230425", mimeType: "application/pdf" }
      {
          "data": {
              "dataType": "byte[]",
              "mimeType": "application/pdf",
              "encoding": "base64",
              "value": "BaseEncoded64String"
          },
          "accept": "*/*"
      }
      startDateendDateExample
      YYYYMMDDYYYYMMDDPOST gw/api/v1/trade-confirmations

      { accountId: "U12345", startDate: "20230401", endDate: "20230425", mimeType: "application/pdf" }

      Single Sign On

      The /api/v1/sso-browser-sessions endpoint can be used to create Single Sign On (SSO) session to seamlessly connect user to the IBKR Client Portal. The IBKR Client Portal is a browser based interface where users can view portfolio information, manage account settings, manage orders, initiate funding, and access account statements. The portal will reflect hosting firms branding (logo, company name, color theme) IF white branding is configured. Parameters for target page are case and space sensitive.

      Workflow

      1. Hosting firm will call the /api/v1/sso-browser-sessions and provide credential and ip of the end user.
        • credential: IBKR username associated with the user.
        • ip: Static IP is required and must be the actual customer’s computer (their IP-REMOTE_ADDR).
        • Example
          • POST /api/v1/sso-browser-sessions
            { "ip": "206.106.137.230", "credential": "potest123"}
      2. IBKR returns a response URL with SID (unique token). Hosting firm invokes the URL with SID token into the users browser, new window opens and the user lands in IBKR White Branded Portal.
        • SID is only valid for 60 seconds and can only be accessed from the IP which was included in the original request.
        • Error will be triggered IF unique SID is accessed more than once, entered after 60 seconds, OR if IP which SID is accessed from is different from IP that was passed in the original request to create single sign on session.
        • Example of IBKR Response
          • https://www.clientam.com/sso/resolver?<SID=<asdfsadf>
      3. Optionally, set ‘Target’ page by appending ACTION to URL
        • See details here to set target page including available actions.
          • Example of URL if target page is set for Statements
            • https://www.clientam.com/sso/resolver?ACTION=Statement&SID=<asdfsadf>

      Limitations

      • SSO is only supported for browsers (Desktop or Mobile Browser). SSO is not supported for natively installed mobile applications.
      • When an account is initially created, IBKR will assign a temporary password to the account. One time setup where the user is required to reset the temporary password after the account has been created.
      • Authentication using the IBKR credential (username) and password is required when adding withdrawal instructions and initiating withdrawal requests using the IBKR hosted portal.

      Set Target Page

      By default, when you create an SSO session for an opened account, your users will land on the Client Portal home page. However, you can direct users to a specific target page by adding the ACTION parameter to your start call.

      If you set a target page, the IBKR navigation panel will be displayed by default, allowing users to access other features within the Portal beyond just the target page.

      For a more streamlined experience, we offer an “IFRAME” option that removes the IBKR navigation panel. To create IFRAME, simply include showNavBar=false in your SSO URL.

      SSO- StandardSSO with IFRAME
      ACTION=TransferFunds&method=WIRE&type=WITHDRAWAL&currency=USDACTION=TransferFunds&method=WIRE&type=WITHDRAWAL&currency=USD&showNavBar=false



      Request Parameters

      ParameterTypeUsage
      ACTIONVaries based on action, see table below.Optional- If not set OR invalid, user is directed to the Client Portal home page.
      showNavBartrue
      false
      Optional- If missing OR set to true, user will land on Client Portal home page.

      If set to false, navigation bar will not be displayed and this will create ‘IFRAME’.

      showNavBar=false is only supported for select features. IF set for unsupported feature, user will land on Client Portal home page.

      Common Target Pages

      Landing PageACTIONIFRAME Supported?
      Account SettingsACTION=AccountSettings&SID=<>Y
      Auto Select Account (for Linked Accounts) If the autoSelect parameter is passed with an account ID, portal will select that account on the landing page (if the account is available for selection).
      Example where U1234 = Account ID
      ACTION=autoSelect=U1234&noPickerClear=T

      Example if using auto select for Funding:  ACTION=TransferFunds&autoSelect=U1234&noPickerClear=T
      N
      Link Existing Account to masterforwardTo=AA_LINKAGE&masterAccountId=<InsertMasterAccountIDHere>N
      Client ProfileACTION=AccountSettings&config=Profile&SID=<>Y
      Recurring InvestmentsACTION=RecurringInvestment&SID=<>Y
      Saved Banking InstructionsACTION=FUNDING_INSTRUCTIONS&SID=<>N
      StatementsACTION=Statement&SID=<>Y
      Trading PermissionsACTION=AccountSettings&config=TradingPermissions&SID=<>Y
      Transaction HistoryFunding: ACTION=TransactionHistory&SID=<>
      All Transactions: ACTION=RpTransactionHistory&SID=<>
      Y
      Transfer FundsACTION=TransferFunds&SID=<>

      The following parameters can be set IF ACTION=TransferFunds
      type: DEPOSIT or WITHDRAWAL
      method: ACH, BPAY_NOTIFICATION, BILL_PAY_NOTIFICATION, CHECK_NOTIFICATION, DIRECT_DEPOSIT, EDDA, EFT, LVP, OPEN_BANKING, WIRE, WISE_BALANCE, WISE_BANK_NOTIFICATION,, WISE_OUTBOUND,
      currency: USD, CAD, HKD, CNH, EUR, GBP, AUD

      A few examples below:
      Deposit (Display all saved instructions): ACTION=TransferFunds&type=DEPOSIT&currency=USD&SID=<>
      ACH Deposit: ACTION=TransferFunds&method=ACH&type=DEPOSIT&currency=USD&SID=<>
      EFT Deposit: ACTION=TransferFunds&method=EFT&type=DEPOSIT&currency=CAD&SID=<>
      Open Banking Plaid Europe: ACTION=TransferFunds&type=DEPOSIT&method=OPEN_BANKING&currency=<GBPorEUR>
      Wire Deposit: ACTION=TransferFunds&method=WIRE_NOTIFICATION&type=DEPOSIT&currency=XXX
      Wise Balance: ACTION=TransferFunds&method=WISE_BALANCE&type=DEPOSIT&currency=XXX
      Wise Deposit: ACTION=TransferFunds&method=WISE_BANK_NOTIFICATION&type=DEPOSIT&currency=XXX

      Withdrawal (Display all saved instructions): ACTION=TransferFunds&type=WITHDRAWAL&currency=USD&SID=<> 
      ACH Withdrawal: ACTION=TransferFunds&method=ACH&type=WITHDRAWAL&currency=XXX
      EFT Withdrawal: ACTION=TransferFunds&method=EFT&type=WITHDRAWAL&currency=CAD&SID=<>
      Local Bank Transfer: ACTION=TransferFunds&method=LVP&type=WITHDRAWAL&currency=XXX
      SEPA Withdrawal: ACTION=TransferFunds&method=SEPA&type=WITHDRAWAL&currency=XXX
      Wire Withdrawal: ACTION=TransferFunds&method=WIRE&type=WITHDRAWAL&currency=XXX
      Wise Withdrawal: ACTION=TransferFunds&method=WISE_OUTBOUND&type=WITHDRAWAL&currency=XXX
      Y
      Transfer PositionsACTION=TransferPositions&SID=<>

      The following parameters can be set IF ACTION=TransferPositions
      type: POSITION_INBOUND, POSITION_OUTBOUND, INTERNAL
      method: ACATS, ATON, FOP, DWAC, ASSET_TRANSFER

      A few examples below:
      Incoming ACATS Transfer: ACTION=TransferPositions&type=POSITION_INBOUND&method=ACATS&SID=<>
      Incoming US FOP: ACTION=TransferPositions&type=POSITION_INBOUND&method=FOP&SID=<>
      Internal Transfer: ACTION=INTERNAL&SID=<>
      Outgoing Basic Non-US FOP: ACTION=TransferPositions&type=POSITION_OUTBOUND&method=ASSET_TRANSFER&SID=<>
      Y
      TargetACTIONLimitations
      Account AliasACTION=AccountSettings&config=AccountAlias&SID=<> 
      Account Confirmation LetterACTION=RM_ACCOUNT_CONFIRMATION_LETTER&SID=<> 
      Account InheritanceACTION=AccountSettings&config=AccountBeneficiary&SID=<> 
      Account TypeACTION=ACCOUNT_TYPE&SID=<> 
      Account TypeACTION=AccountSettings&config=AccountType&SID=<> 
      Activity NotificationsACTION=AM_NOTIFICATIONS&SID=<> 
      Add External AccountACTION=ADD_EXTERNAL_ACCOUNTS&SID=<> 
      Administrator SearchACTION=TA_VIEW_ADM_MKT_PLACE&SID=<> 
      Advertise ServicesACTION=MpApply&SID=<> 
      Advisor AuthorizationsACTION=AccountSettings&config=AdvisorAuthorizations&SID=<> 
      Advisor SearchACTION=ADVISORS_MKT_PLACE_SEARCH&SID=<> 
      Alert NotificationACTION=ALERT_NOTIFICATION&SID=<> 
      Alert NotificationACTION=UserSettings&config=AlertNotification&SID=<> 
      ASIC Short Positions ReportingACTION=AccountSettings&config=AsicShortPosition&SID=<> 
      Audit TrailACTION=AccountSettings&config=AuditTrail&SID=<> 
      Base CurrencyACTION=AccountSettings&config=BaseCurrency&SID=<> 
      Bill PayACTION=BILL_PAY&SID=<> 
      Cash ManagementACTION=CASH_MGMT&SID=<> 
      CFDs and MetalsACTION=AccountSettings&config=UklAccountCreation&SID=<> 
      Chat under SupportACTION=CS_CHAT&SID=<> 
      Close AccountACTION=CLOSE_ACCOUNT&SID=<> 
      Close AccountACTION=AccountSettings&config=CloseAccount&SID=<> 
      Commission Pricing StructureACTION=COMM_PRICE_STRUCTURE&SID=<> 
      Contact IBACTION=CS_CONTACT_IB&SID=<> 
      Contract DetailsACTION=CONTRACT_DETAILS&SID=<> 
      Contract SearchACTION=CS_CONTRACT_SEARCH&SID=<> 
      Corp ActionACTION=CS_CORP_ACTION&SID=<> 
      Debit Card Signup for ClientsACTION=AccountSettings&config=ClientDebitcardConfig&SID=<> 
      Declared Investor StatusACTION=AccountSettings&config=SingaporeInvestorCategory&SID=<> 
      Dividend ElectionACTION=AccountSettings&config=DividendReinvestment&SID=<> 
      Email AddressACTION=CHANGE_EMAIL&SID=<> 
      Email AddressACTION=UserSettings&config=EmailAddress&SID=<> 
      EMIR & LEI InformationACTION=AccountSettings&config=Emir&SID=<> 
      Excess Funds SweepACTION=AccountSettings&config=ExcessFundsSweep&SID=<> 
      Exposure FeeACTION=RM_EXPOSURE_FEE&SID=<> 
      Financial InfoACTION=FINANCIAL_INFO&SID=<> 
      Financial ProfileACTION=AccountSettings&config=FinancialInfo&SID=<> 
      Financial TransactionsACTION=FINANCIAL_TRANS_HISTORY&SID=<> 
      Find ServicesACTION=MpSearch&SID=<> 
      Flex QueriesACTION=RM_FLEX_QUERIES&SID=<> 
      Flex Queries DeliveryACTION=FLEX_QUERIES_DELIVERY&SID=<> 
      Flex Queries DeliveryACTION=UserSettings&config=FlexQueriesDelivery&SID=<> 
      Flex Web ServiceACTION=AccountSettings&config=FlexWebService&SID=<> 
      FYI NotificationsACTION=AccountSettings&config=IbfyiNotification&SID=<> 
      Goal TrackerACTION=GoalTracker&SID=<> 
      Groups & HouseholdsACTION=Groups&SID=<> 
      HFCIP SearchACTION=TA_HFCI_VIEW&SID=<> 
      IB FYIACTION=TA_FYI&SID=<> 
      IB NotesACTION=AccountSettings&config=IbNotes&SID=<> 
      IB SLB ToolsACTION=CS_SLB&SID=<> 
      IBKR Pricing PlanACTION=IBKR_LITE&SID=<> 
      IBKR Pricing PlanACTION=AccountSettings&config=ibkrLite&SID=<> 
      Institutional ServicesACTION=AccountSettings&config=InstitutionalService&SID=<> 
      Insured Bank Deposit Sweep ProgramACTION=AccountSettings&config=PROMONTORY_CONFIG&SID=<> 
      Investor CategoryACTION=AccountSettings&config=InvestorCategory&SID=<> 
      IP RestrictionsACTION=UserSettings&config=IpRestriction&SID=<> 
      IPO Subscription PermissionACTION=AccountSettings&config=IpoSubscriptionConfig&SID=<> 
      IRA ActivityACTION=AccountSettings&config=IraActivity&SID=<> 
      IRA ConversionACTION=AccountSettings&config=IraConversion&SID=<> 
      IRA RecharacterizationACTION=AccountSettings&config=IraRecharacterization&SID=<> 
      Large Trader IDACTION=AccountSettings&config=LargeTraderId&SID=<> 
      Link Account to Advisor/Broker/AdministratorACTION=LINK_ACCOUNT&SID=<> 
      Link Account to Advisor/Broker/AdministratorACTION=AccountSettings&config=Linkage&SID=<> 
      Manage AdministratorsACTION=AccountSettings&config=AdminManagement&SID=<> 
      Market Data AssistantACTION=CS_MARKET_DATA_ASSISTANT&SID=<> 
      Market Data RestrictionACTION=UserSettings&config=MarketDataRestriction&SID=<> 
      Market Data SubscriptionsACTION=UserSettings&config=MarketData&SID=<> 
      Market OverviewACTION=ACCT_MGMT_MAIN&loginType=1&clt=0&RL=1#/markets&SID=<> 
      Marketing PreferenceACTION=MKT_PREFERENCE&SID=<> 
      Marketing PreferencesACTION=UserSettings&config=MarketingPreference&SID=<> 
      Message CenterACTION=CS_WEB_TICKET&SID=<> 
      Message Center Notification SettingsACTION=UserSettings&config=MessageCenterNotification&SID=<> 
      Message Center NotificationsACTION=CS_MESSAGE_CENTER_NOTIFICATIONS&SID=<> 
      Mifid Client CategoryACTION=MIFID_CLIENT_CATEGORY&SID=<> 
      MiFID Client CategoryACTION=AccountSettings&config=MifidClientCategory&SID=<> 
      MifirACTION=AccountSettings&config=Mifir&SID=<> 
      Mobile NumberACTION=UserSettings&config=MobileNumber&SID=<> 
      Mobile Number ConfigurationACTION=MOBILE_VERIFICATION&SID=<> 
      Money Manager SearchACTION=TA_VIEW_MM_MKT_PLACE&SID=<> 
      New Features Poll (New) / Provide FeedbackACTION=FEEDBACK&SID=<> 
      New ticket creationACTION=NEW_TICKET&SID=<> 
      Non-US Dividend Tax ReliefACTION=AccountSettings&config=DividendTaxRelief&SID=<> 
      Online FeaturesACTION=UserSettings&config=VoterSubscription&SID=<> 
      Online Features (a.k.a. Voter Registration)ACTION=UM_VOTER_REGISTRATION&SID=<> 
      Open an Additional AccountACTION=AccountSettings&config=AdditionalAccount&SID=<> 
      Order TicketACTION=ACCT_MGMT_MAIN&loginType=1&clt=0&RL=1#/order-ticket/stock&SID=<>Requires a minimum of 1200px width. If smaller then we only provide side-car order ticket which doesn’t open on a new page. Meaning, this can only be used when connecting from desktop browser, not mobile.
      Other ReportsACTION=RM_MARGIN_REPORTS&SID=<> 
      Paper Trading AccountACTION=AccountSettings&config=PaperTrading&SID=<> 
      Paper Trading Account ResetACTION=AccountSettings&config=PaperTradingReset&SID=<> 
      Paper Trading ConfigurationACTION=TA_PAPER_TRADING&SID=<> 
      PasswordACTION=UserSettings&config=Password&SID=<> 
      Password ChangeACTION=PASSWORDCHG&SID=<> 
      PDT Reset under SupportACTION=PDTRESET_STATUSCHECKED&SID=<> 
      Pending ItemsACTION=DOC&SID=<> 
      PortfolioACTION=ACCT_MGMT_MAIN&loginType=1&clt=0&RL=1#/portfolio&SID=<> 
      Portfolio AnalystACTION=PA_DELIVERY&SID=<> 
      Portfolio AnalystACTION=PORTFOLIOANALYST&SID=<> 
      PortfolioAnalystACTION=RM_PORTFOLIO_ANALYST&SID=<> 
      PortfolioAnalyst DeliveryACTION=UserSettings&config=PaDelivery&SID=<> 
      PRIIPSACTION=CS_PRIIPS&SID=<> 
      Professional Advisor QualificationACTION=AccountSettings&config=ProAdvisorQualification&SID=<> 
      ProfileACTION=AccountSettings&config=Profile&SID=<> 
      PromontoryACTION=promontory&SID=<> 
      QuestionnaireACTION=QUESTIONNAIRE&SID=<> 
      Read-Only AccessACTION=UserSettings&config=TradingReadOnly&SID=<> 
      Read-only SettingACTION=TA_MOBILE_READONLY&SID=<> 
      Refer a FriendACTION=AccountSettings&config=FriendReferral&SID=<> 
      Registration InformationACTION=AccountSettings&config=JurisdictionInfo&SID=<> 
      Regulatory InformationACTION=AccountSettings&config=RegulatoryInformation&SID=<> 
      Required Minimum Distribution CalculatorACTION=Rmd&SID=<> 
      Research SubscriptionsACTION=TA_DATA_SERVICES&SID=<> 
      Research SubscriptionsACTION=UserSettings&config=ResearchSubscription&SID=<> 
      Risk Appetite QuestionnaireACTION=AccountSettings&config=BondRiskAppetite&SID=<> 
      Risk ScoresACTION=RiskScores&SID=<> 
      Risk ScoresACTION=AccountSettings&config=AdvisorQuestionnaireEdito&SID=<> 
      Section 13ACTION=AccountSettings&config=Acors&SID=<> 
      Secure Login SettingsACTION=SECURE_LOGIN&SID=<> 
      Secure Login SystemACTION=UserSettings&config=SecureLogin&SID=<> 
      Securities Class Action RecoveryACTION=AccountSettings&config=litigationRecovery&SID=<> 
      Security QuestionsACTION=UserSettings&config=SecurityQuestions&SID=<> 
      SettingsACTION=ACCOUNT_SETTINGS&SID=<> 
      SFTRACTION=AccountSettings&config=Sftr&SID=<> 
      SMS AddressACTION=UserSettings&config=SmsAddress&SID=<> 
      SMS AlertsACTION=SMS_ALERTS&SID=<> 
      SMS AlertsACTION=UserSettings&config=SmsAlerts&SID=<> 
      Soft Dollar ConfigurationACTION=AccountSettings&config=SoftDollar&SID=<> 
      Soft Dollars DisbursementACTION=AccountSettings&config=SoftDollarDisbursement&SID=<> 
      StatementsACTION=Statement&SID=<> 
      Statements DeliveryACTION=UserSettings&config=StatementsDelivery&SID=<> 
      Stock Yield Enhancement ProgramACTION=AccountSettings&config=SYEP&SID=<> 
      SupportACTION=Support&SID=<> 
      Tax ReportsACTION=RM_FIFO_COST_BASIS&SID=<> 
      Tax ReportsACTION=RM_TAX_FORMS&SID=<> 
      Third-Party ServicesACTION=AccountSettings&config=ThirdPartyServices&SID=<> 
      Tools page under supportACTION=IB_TOOLS&SID=<> 
      Trade Cancellation RequestACTION=CS_TRADE_CANCEL&SID=<> 
      Trade Execution NotificationACTION=UserSettings&config=ActivityNotification&SID=<> 
      Trade In FractionsACTION=TRADE_IN_FRACTIONS&SID=<> 
      Trade in FractionsACTION=AccountSettings&config=tradeInFrACTIONs&SID=<> 
      Trader ReferralACTION=AccountSettings&config=TraderReferral&SID=<> 
      Trading PermissionsACTION=AccountSettings&config=TradingPermissions&SID=<> 
      Trading RestrictionsACTION=AccountSettings&config=TradingRestrictions&SID=<> 
      Trusted Contact PersonACTION=AccountSettings&config=TrustedContact&SID=<> 
      VATACTION=AccountSettings&config=SalesTax&SID=<> 
      Virtual FX Tracking ACTION=AccountSettings&config=VirtualFxPortfolioTracking&SID=<> 
      White BrandingACTION=AccountSettings&config=WhiteBranding&SID=<> 
      Why is it movingACTION=ACCT_MGMT_MAIN&loginType=1&clt=0&RL=1#/markets&SID=<> 

      Pre-Trade Compliance

      The /api/v1/restrictions can be used to apply trade-related rules and restrictions to an account or user, or to an entire account family, including all client/sub-accounts. Updates to PTC restrictions, rules, and associations can be sent to IBKR using RESTful Web API. 

      • /api/v1/restrictions: Service is used to apply restrictions and manage rules or associations for Pre-Trade Compliance using the API.
      • /api/v1/restrictions/verify: Service is used to validate that the contents included in the CSV file is in good order.

      Restrictions will be sent in CSV Format and will be sent in same format that is used to upload CSV files within the IBKR Hosted Platform.

      NameValueDescription
      userName required StringIBKR user ID of the individual intiating the request.The user ID must have access rights to ‘Pre Trade Compliance’.
      requestId required Non-negative integer value.Unique identifier associated with the request. requestId will need to be unique for each requestId . If requestId was previously processed, error will be thrown.
      payload required StringCSV file encoded in base64.
      JSON Request
      const body = {
        "userName":  pm.environment.get('userName'),
        "requestId": Date.now(),
        "payload": "UkVTVFJfQURELCBBUElBVVRILTcyOCwgUlVMRV9CRUdJTiwgcnVsZV90eXBlPUNMT1NJTkdPTkxZLCB0aWY9R1RDLCBSVUxFX0VORA=="
      }
      pm.collectionVariables.set('signedRequest', utils.signRequest(body));
      NameValueDescription
      successBooleanIndicate whether the content of the file is valid or not.
      true: Indicates the file is valid.
      false: Indicates the file is not valid and cannot be processed.
      requestIdNon-Negative integer valuereqId that was processed.
      messageStringIf success=false, the message will have some information about the error.

      JSON Response

      {
        "success": "<true|false>",
        "requestId":"<String>",
          "message":"<string>"
        }
      }

      Sample

      Success
      {"success":true,"requestId":20211635375984312,"message":"OK"}

      Callback Notifications

      IBKR will send notifications via RESTful Web API when status of a request changes. The notifications provided via the callback service have the same format as polling for a status (ie. /gw/api/v1/accounts/{accountId}/status) . Notifications are available for Client Registration, Account Information Changes, and Funding Requests that originate using Account Management API and IBKR Portal.

      1. Callback service is available by request only. To configure the service, provide the following information to am-api@interactivebrokers.com:
        • URL which callback notifications should be sent to
        • Master account ID which the callback service should be configured for
      2. IBKR will register the URL and configure the callback service for your account. This can take 2-3 weeks.
        • Clients enabled for Callback Notification can still use Polling for Status without any restrictions.

      View Callback Notifications

      Callback notification is sent as a signed JWT.

      • Content-Type header: application/jwt

      The api.ibkr.com/oauth2/api/v1/jwks URL can be used to locate corresponding public key that is used to validate the signature.

      Servicerequest_typeSample Notification (Accepted)Sample Notification (Rejected)
      POST /gw/api/v1/accountsACCT_OPENING{
        "timestamp":"2021-08-18 12:07:31",
        "request_type": "ACCT_OPENING",
        "ref_acct_id":"U3519306",
        "status":"OPENED"
      }
      {
        "timestamp":"2021-08-18 12:07:31",
        "request_type": "ACCT_OPENING",
        "ref_acct_id":"U3519306",
        "status":"REJECTED"
      }
      PATCH /gw/api/v1/accounts ‘AddCLPCapability’ADD_CLP{
        "timestamp":"2021-08-18 12:07:31",
        "request_type": "ADD_CLP",
        "status": "ACCEPTED",
        "ref_acct_id":"U3519306"
      }
      {
        "timestamp":"2021-08-18 12:07:31",
        "request_type": "ADD_CLP",
         "status":"REJECTED"
        "ref_acct_id":"U3519306"
      }
      PATCH /gw/api/v1/accounts
      ‘AddLEVFXCapability’
      ADD_LEVFX{
        "timestamp":"2021-08-18 12:07:31",
        "request_type": "ADD_LEVFX",
        "status": "ACCEPTED",
        "ref_acct_id":"U3519306"
      }
      {
        "timestamp":"2021-08-18 12:07:31",
        "request_type": "ADD_LEVFX",
         "status":"REJECTED"
        "ref_acct_id":"U3519306"
      }
      PATCH /gw/api/v1/accounts
      ‘AddTradingPermissions’
      ADD_TRADING{
        "timestamp":"2021-08-18 12:07:31",
        "request_type": "ADD_TRADING",
        "ref_acct_id":"U3519306",
        "details": {
          "bundle": "US-Sec",
          "status": "ACCEPTED"
        }
      }
      {
        "timestamp":"2021-08-18 12:07:31",
        "request_type": "ADD_TRADING",
        "ref_acct_id":"U3519306",
        "details": {
          "bundle": "US-Sec",
         "status":"REJECTED"
        }
      }
      PATCH /gw/api/v1/accounts
      ‘ChangeFinancialInformation’
      CHANGE_FIN_INFO{
        "timestamp":"2021-08-18 12:07:31",
        "request_type": "CHANGE_FIN_INFO",
        "status": "ACCEPTED",
        "ref_acct_id":"U3519306"
      }
      {
        "timestamp":"2021-08-18 12:07:31",
        "request_type": "CHANGE_FIN_INFO",
         "status":"REJECTED"
        "ref_acct_id":"U3519306"
      }
      PATCH /gw/api/v1/accounts
      ‘ChangeMarginType’
      CHANGE_MARGIN {
        "timestamp":"2021-08-18 12:07:31",
        "request_type": "CHANGE_MARGIN",
        "status": "ACCEPTED",
        "ref_acct_id":"U3519306"
      }
      {
        "timestamp":"2021-08-18 12:07:31",
        "request_type": "CHANGE_MARGIN",
         "status":"REJECTED"
        "ref_acct_id":"U3519306"
      }
      PATCH /gw/api/v1/accounts
      ‘DocumentSubmission’
      DOC_SUBMISSION{
        "timestamp":"2021-08-18 12:07:31",
        "request_type": "DOC_SUBMISSION",
        "ref_acct_id":"U3519306",
        "details": {
          "form_number": "9490",
          "status": "ACCEPTED",
          "external_id": "ext_id_first_holder"
        }
      }
      {
        "timestamp":"2021-08-18 12:07:31",
        "request_type": "DOC_SUBMISSION",
        "ref_acct_id":"U3519306",
        "details": {
          "form_number": "9490",
         "status":"REJECTED"
          "external_id": "ext_id_first_holder"
        }
      }
      PATCH /gw/api/v1/accounts
      ‘RemoveTradingPermissions’
      REMOVE_TRADING{
        "timestamp":"2021-08-18 12:07:31",
        "request_type": "REMOVE_TRADING",
        "ref_acct_id":"U3519306",
        "details": {
          "bundle": "US-Sec",
          "status": "REMOVED"
        }
      }
      {
        "timestamp":"2021-08-18 12:07:31",
        "request_type": "REMOVE_TRADING",
        "ref_acct_id":"U3519306",
        "details": {
          "bundle": "US-Sec",
         "status":"REJECTED"
        }
      }
      /gw/api/v1/bank-instructions*
      /gw/api/v1/client-instructions*
      /gw/api/v1/instruction*
      /gw/api/v1/external-asset-transfers*
      /gw/api/v1/external-cash-transfers*
      /gw/api/v1/internal*
      All ‘POST’ requests{
          "status": 200,
          "instructionSetId": 7760,
          "instructionResult": {
              "clientInstructionId": 169652918901,
              "instructionType": "deposit_funds",
              "instructionStatus": "PROCESSED",
              "instructionId": 11453869
          }
      }

      Application Schema

      While fields for registration will vary based on various factors including the account type, IB entity, and permissions, the JSON should always include the following:

      • customer
      • accounts
      • users

      This section includes information on objects and attributes for client registration, validations, and supported enumerations. List of required fields for client application based on account type can be found here.

      Enumerations

      The /api/v1/enumerations/{enumerationType} can be used to obtain supported enumerations for select attributes and objects.

      Supported Types

      TypeDescriptionQuery Filters (Optional)
      acatsQuery most up to date values for brokerId and brokerName. Used if funding via US ACATS extPositionsTransfers. 
      atonQuery most up to date values for brokerId and brokerName. Used if funding via ATON Canada extPositionsTransfers. 
      business-and-occupationList of occupation AND employerBusiness for employmentDetails.   
      complex-asset-transferQuery most up to date values for brokerName. Used if submitting a ComplexAssetTransfer (Basic FOP) 
      employee-plansView EPA that are linked to master account (applicable IF offering SEP IRA accounts). 
      employee-trackQuery most up to date companyId for account. For affiliationDetails, if company has an existing IBKR Employee Track account.   
      exchange-bundlesQuery most up to date list of exchangeGroup for TradingPermissions. 
      fin-info-rangesQuery most up to date range IDs by currency  for annualNetIncome, netWorth, liquidNetWorth.currency
      ibEntity
      market-dataView list of market data subscriptions. 
      product-country-bundlesQuery most up to date list of product bundles (country and product) for TradingPermissions.
      prohibited-countryView the list of prohibited countries. An error will be triggered if a prohibited country is provided for any field except Citizenship or Country of Birth. Applicants who reside in, are employed in, maintain tax residency in, or maintain a phone number in a prohibited country are restricted from opening an account with IBKR. 
      questionnairesQuery questions associated with EDD (Enhanced Due Diligence) or AVT (Additional Verification) tasks assigned to an account.  form-number
      quiz-questionsObtain list of questions associated with IBKR knowledge assessment.  form-number
      security-questionsObtain list of questions supported for IBKR security questions. 

      AssociatedIndividual

      AssociatedIndividual represents data for individuals that are associated with the account. Required fields for the individual fill vary based on the association and account type.

      • Individual: customer > accountHolder > accountHolderDetails
      • Retirement:
        • customer > accountHolder > accountHolderDetails
        • accounts> iraBeneficiaries > primaryBeneficiaries AND contingentBeneficiaries
      • Joint: customer > jointHolder > firstHolderDetails and secondHolderDetails
      • Trust: customer > trust > grantors AND beneficiaries
      • Organization: customer > organization > associatedEntities > associatedIndividuals AND associatedEntities

      Required

      • The externalId, externalUserId, and externalIndividualId are unique identifiers which the counterparty assigns. The identifier can be used as a mapping to map the IBKR account with the account/user information within counterparty’s system.
      • externalId is present within application multiple times including:
        • customer = Represents the customer which the account is associated with
        • accountHolderDetails, firstHolderDetails, secondHolderDetails: Represents Individuals associated with the account.
        • accountHolder, jointHolder = Represents the account itself
        • users (externalUserId and externalIndividualId)= Represents users associated with the account.
      NameDescription
      externalId requiredString; max 64 characters
      Sample
      "externalId": "testapplication1234",
      Required
      FDFAOWDNonQIND-QIND-QI (NT)
      {"name": {"first": "Jane", "middle": "May", "last": "Doe" ,"salutation":"Mrs."},
      NameTypeDescription
      firstString; max characters 50Legal first name of the applicant. 
      middleString; max characters 50Middle name of the applicant.
      lastString; max characters 50Legal last name of the applicant.
      salutationMr.
      Mrs.
      Ms.
      Dr.
      Mx.
      Ind.
      Salutation of the applicant.
      • The first and last are required. If either are missing, error will be thrown.
      "email": test@ibkr.com,
      NameTypeDescription
      emailStringEmail address of the associated person.
      • Regular Expression (REGEX)
        ^[A-Z0-9][A-Z0-9._%+-]{0,63}@(?:(?=[A-Z0-9-]{1,63}[.])[A-Z0-9]+(?:-[A-Z0-9]+)*[.]){1,8}[A-Z]{2,63}$
      • Error thrown if email address is same as master account.
      {"residenceAddress": {"street1": "1 Tester Street", "city": "London", "state": "GB-ENG" ,"country":"GBR","postalCode": "SW10 9QL"},
      NameTypeDescription
      country3 Digit ISO CodeCountry which the applicant resides.
      state3166-2 ISO CodeState/Province which the applicant resides.
      cityString; Max characters 100City which the applicant resides.
      postalCodeString; Max characters 20Postal / Zip code.
      For countries that do not provide postal code, please enter “00000″
      street1String; Max characters 200Street which applicant resides
      street22String; Max characters 200Street which applicant resides
      • If the mailing address is different from the address provided in residenceAddress element, THEN you will also include mailingAddress element.
      • Post Office Box is not accepted for residentialAddress.
      • Our system validates street1 and street2 included within residenceAddress attribute to ensure Post Office Box address is not provided.
        • An error will be thrown if the below combinations are included within street1 OR street2:
          • PB
          • PO Box
          • Post Office Box
          • P.O. Box
          • In care of
          • General Delivery
        • Regular Expression to validate street_1 and street_2:
          • English: (?:P(?:ost(?:al)?)?[\.\-\s]*(?:(?:O(?:ffice)?[\.\\s]*)?B(?:ox|in|\b|\d)|o(?:ffice|\b)(?:[-\s]*\d)|code)|box[-\s]*\d)
          • Chinese Simplified: PO Box    (?i)\b((邮政信箱) [0-9]*)\bChinese Traditional: PO Box   (?i)\b((郵政信箱) [0-9]*)\b
      FDFAOWDNonQIND-QIND-QI (NT)

      Dependent on type

      "countryOfBirth": "GBR",
      NameTypeDescription
      CountryOfBirth3 Digit ISO CodeCountry which the applicant was born.
      • Accounts are accepted from citizens or residents of all countries except citizens or residents of those countries that are prohibited by the US Office of Foreign Assets Control.
      • Click here for a list of all available countries.
      • If countryOfBirth is classified as a ‘Prohibited Country’, prohibitedCountryQuestionnaire is required.
      • List of Prohibited Countries an be obtained using  /api/v1/enumerations/prohibited-country endpoint.
      "dateOfBirth": "1990-08-14"
      NameTypeDescription
      dateOfBirthYYYY-MM-DDDate of birth of the applicant. The applicant must be 18 years or older to open an account.
      • If the YYY-MM-DD < 18 years error will be triggered and the account will not be created.
      • If YYYY-MM-DD < 21 the applicant is restricted to opening a CASH account only.
      • UGMA and UTMA accounts are available for minors 18 years of age or younger. An individual or entity who manages an account for a minor until that minor reaches a specific age. Available to US residents only.
        • This application must be opened using the front-end application which is available within the IBKR Portal.
        • Assets held in a single account managed by a single Custodian user.
      • Error will be thrown if dateOfBirth is any value other than YYYY-MM-DD. The below formats will trigger errors:
      "employmentDetails": {
                    "employer": "My Test Employer",
                    "occupation": "ACCOUNTANT",
                    "employerBusiness": "ARCHITECTURE_ENGINEERING",
                    "employerAddress": {
                      "street1": "Grays Inn Road",
                      "city": "London",
                      "state": "GB-ENG",
                      "country": "GBR",
                      "postalCode": "WC1X 8PX"
                    }
      }
      NameTypeDescription
      employerString; max characters 128Name of the employer 
      employerBusinessUse /api/v1/enumerations/business-and-occupation to get accepted values. 
      occupation/api/v1/enumerations/business-and-occupation to get accepted values. 
      country3 Digit ISO CodeCountry which the employer is located. 
      state3166-2 ISO CodeState/Province which the employer is located.
      cityString; Max characters 100City which the employer is located.
      postalCodeString; Max characters 20Postal / Zip code.For countries that do not provide postal code, please enter “00000″
      street1String; Max characters 200Street which employer is located.
      emplCountryResCountryDetailsString; Max characters 200Explain why country of employment is different from country of current residence.
      descriptionString; Max characters 200Required IF business OR occupation= OTHER*Other is not case/space sensitive.
      businessDescriptionString; Max characters 256Required IF employmentType is “SELFEMPLOYED”
       
      Business description, including the industry sector you are in, which countries you operate in, the products/services you offer, and the primary source of your revenue.
      • employmentType: "EMPLOYED" OR “SELFEMPLOYED”
        • FA and FD clients with IBLLC, IB-IE, IB-CE, and IB-UK: Full employerAddress (country, state, city, street1, postalCode) is required
        • All other clients, country within employerAddress is required.
      • If employmentType:"EMPLOYED"
      • employmentType: "SELFEMPLOYED"
        • employerAddress can be the same as residenceAddress OR mailingAddress.
        • businessDescription is required.
      • EmploymentType=”EMPLOYED” OR “SELFEMPLOYED”
        • When the country included within residenceAddress node is different from the country included within employerAddress node, THEN emplCountryResCountryDetails is required within the employmentDetails node.
      "employmentType": "EMPLOYED",
      NameTypeDescription
      employmentTypeUNEMPLOYED
      EMPLOYED
      SELFEMPLOYED
      RETIRED
      STUDENT
      ATHOMETRADER
      HOMEMAKER
      Employment Status of the associated individual. 
      "gender": "MALE",
      NameTypeDescription
      genderMale
      Female
      Gender of the Applicant. 
      • Required for India and EEA applicants that are required to report MiFIR Data.
      • MiFIR Transaction Reporting applies to European Economic Area (“EEA”) Investment Firms. As a client of an investment firm that uses the platform, you may be required to provide additional information to allow the proper transaction reports to be filed. More Information

      Acceptable id document is dependent the country which associated individual resides.

      "identification": {"citizenship": "MEX", "alienCard": "989444798", "issuingCountry": "MEX"},

      "identification": {"citizenship": "AUS", "driversLicense": "989444798", "issuingCountry": "AUS", "expire": true, "expirationDate": "2029-03-22", "rta":"9999999", "issuingState":"AU-QLD"},

      "identification": {"citizenship": "MEX", "driversLicense": "989444798", "issuingCountry": "MEX", "expire": true, "expirationDate": "2029-03-22"},

      "identification": {"citizenship": "MEX", "nationalCard": "989444798", "issuingCountry": "MEX"},

      "identification": {"citizenship": "CHN", "HKTravelPermit": "HO1234567", "issuingCountry": "CHN", "expire": true, "expirationDate": "2029-03-22"},

      "identification": {"citizenship": "IND", "panNumber": "AABPK6504E", "issuingCountry": "IND"}

      "identification": {"citizenship": "MEX", "passport": "989444798", "issuingCountry": "MEX", "expire": true, "expirationDate": "2029-03-22"},

      "identification": {"citizenship": "CAN", "sin": "989444798", "issuingCountry": "CAN"},

      "identification": {"citizenship": "USA","SSN": "989444798", "issuingCountry": "USA"}

      "identification": {"citizenship": "ESP", "taxId": "989444798", "issuingCountry": "ESP"},

      NameTypeDescription
      citizenship3 Digit ISO CodeCitizenship of the applicant. If citizenship is classified as a ‘Prohibited Country’, THEN prohibitedCountryQuestionnaire is required.
      List of Prohibited Countries an be obtained using  /api/v1/enumerations/prohibited-country endpoint.
      citizenship23 Digit ISO CodeIf the applicant has multiple citizenship, provide the additional citizenship of the applicant. If citizenship2 is classified as a ‘Prohibited Country’, THEN prohibitedCountryQuestionnaire is required.
      List of Prohibited Countries an be obtained using  /api/v1/enumerations/prohibited-country endpoint.
      citizenship33 Digit ISO CodeIf the applicant has multiple citizenship, provide the additional citizenship of the applicant. If citizenship3 is classified as a ‘Prohibited Country’, THEN prohibitedCountryQuestionnaire is required.
      List of Prohibited Countries an be obtained using  /api/v1/enumerations/prohibited-country endpoint.
      issuingCountry3 Digit ISO CodeIssuing country of the ID document.
      issuingState3166-2 ISO CodeRequired if driversLicense issued in Australia is provided.
      expiretrue
      false
      Indicate IF ID document has an ExpirationDate.
      expirationDateYYYY-MM-DDProvide expiration date of the ID document. Cannot be past date.
      If driversLicense OR passport is provided AND expirationDate is missing, an error will be thrown.
      rtaStringOnly applicable IF ID_Type=DriversLicense AND IssuingCountry=AUS
      ssnStringSocial Security Number: Required for US Residents and citizens.
      REGEX:(?!123456789|219099999|078051120)(?!666|000)\d{3}(?!00)\d{2}(?!0{4})\d{4}$
      sinStringSocial Insurance Number: Required for Canada Residents and citizens.

      REGEX: ^\d{9}$
      panNumberStringIndia PanCard, required for India Residents and citizens.

      REGEX: [A-Z]{5}\d{4}[A-Z]{1}$
      driversLicenseStringDrivers License

      REGEX by Country:
      AUS: ^.{0,64}$
      NZL: ^[A-Z]{2}\d{6}$
      passportStringPassport

      REGEX by Country:
      AUS: ^([a-zA-Z0-9]{7,10})$
      CAN: ^[a-zA-Z0-9]{6,10}
      CHN: (^[A-Za-z0-9]{9})|\d{18}$
      IND: ^[a-zA-Z]{1}[0-9]{7}
      SGP: [A-Za-z0-9]{8,10}$
      USA: (^[a-zA-Z]*\d{6,9})|(\d{3}-\d{3}-\d{3})$
      nationalCardStringNational Identification Card
      REGEX by Country:
      ARG: ^\d{8}$
      FRA: ^\d{15}$
      FRA: ^([A-Za-z0-9]{9})|(\d{4}([A-Z]|\d){3}\d{5})$
      ITA: ^([A-Z]{2}\d{7}|\d{7}[A-Z]{2}|[A-Z]{2}\d{5}[A-Z]{2})$
      MEX: ^[A-Z]{4}\d{6}[A-Z]{6}\d{2}$
      MYS: ^\d{12}$
      RUS: ^\d{9}$
      RUS: ^\d{10}$
      SAU: ^1|2
      ZAF: ^\d{13}$
      taxIdStringTax ID TIN within <taxResidencies>foreignTaxId within <w8Ben>

      REGEX by Country:
      AUS: ^(\d{8}|\d{9})$
      AUT: ^\d{9}$
      BEL: ^\d{11}$
      BGR: ^\d{10}$
      BRA: ^\d{11}$
      CHE: ^756\d{10}$
      CHN: ^\d{17}(\d|X)$
      CHN: ^(?:[0-9TMHWC][0-9]{16}[0-9A-Za-z]|[0-9TMHWC][0-9]{17}|J[0-9]{14})$
      CYP: ^[069]\d{7}[A-Z]$
      CZE: ^\d{9,10}$
      DEU: ^\d{11}$
      DNK: ^\d{10}$
      ESP: ^(\d{8}[A-Z]{1})|([A-Z]{1}\d{7}[A-Z]{1})$
      EST: ^\d{11}$
      FIN: ^((\d{6}A\d{3}|\d{9})[0-9A-Z])$
      FRA: ^[0-3]\d{12}$
      GBR: ^[A-Z]{2}\d{6}[ABCD]{1}$
      GRC: ^\d{9}$
      HKG: ^[A-Z]{1,2}[0-9]{6}([0-9]|A)$
      HRV: ^\d{11}$
      HUN: ^(8\d{9})$
      IDN: ^\d{16}$
      IRL: ^\d{7}[A-Z]{1,2}$
      ISL: ^\d{10}$
      ISR: ^\d{9}$
      ITA: ^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$
      KOR: ^\d{13}$
      LTU: ^\d{11}$
      LUX: ^\d{13}$
      LVA: ^\d{11}$
      MLT: ^(\d{9}|\d{7}[A-Z])$
      MYS: ^(\d{12}|IG\d{9,11})$
      NLD: ^\d{9}$
      NOR: ^\d{11}$
      POL: ^\d{11}$
      PRT: ^[1234]\d{8}$
      ROU: ^\d{13}$
      RUS: ^\d{12}$
      SGP: ^[A-Z]\d{7}[A-Z]$
      SVK: ^\d{9,10}$
      SVN: ^[1-9]\d{7}$
      SWE: ^(\d{10}|\d{12})$
      TUR: ^\d{11}$
      UKR: ^\d{10}$
      alienCardStringAlien Card
      cardColorBLUE
      GREEN
      YELLOW
      Required if MedicareCard is provided.
      medicareCardString; 10 digits.Only applicable for Australia residents.
      mediCareReferenceString; between 1-9 digits.Required if MedicareCard is provided.
      "w8Ben": {
      "localTaxForms": [
      {
      "taxAuthority": "CANADA_TA",
      "qualified": true,
      "treatyCountry": "DEU"
      }
      NameTypeDescription
      taxAuthorityCANADA_TAAUSTRALIA_TAIRELAND_TAISRAEL_TATax Certification
      qualifyTrue
      False
      Does the account holder qualify for ‘taxAuthority’ treaty benefits
      treatyCountry3 Digit ISO CodeIf yes, provide Treaty Country. N/A is accepted for Non-Treaty Countries.

      Canada Treaty Countries: https://www.canada.ca/en/department-finance/programs/tax-policy/tax-treaties/in-force.html

      Australia Countries: https://treasury.gov.au/tax-treaties/income-tax-treaties

      Israel Countries: https://www.gov.il/en/departments/dynamiccollectors/international_agreements
      • IF sameMailAaddress: “false” THEN mailingAddress is required.
      NameType
      country required3 Digit ISO Code
      state required3166-2 ISO Code
      city requiredString; Max characters 100
      postalCode requiredString; Max characters 20

      Postal / Zip code.
      For countries that do not provide postal code, please enter “00000″
      street1 requiredString; Max characters 200
      street2String; Max characters 200
      Example
      {"mailingAddress": {"street1": "1 Tester Street", "city": "London", "state": "GB-ENG" ,"country":"GBR","postalCode": "SW10 9QL"},
      Required
      FDFAOWDNonQIND-QIND-QI (NT)
      NameType
      maritalStatus requiredS= Single
      M= Married
      W= Widowed
      D= Divorced
      C= Common law partner
      Example
      "maritalStatus": "S",
      Required
      FDFAOWDNonQIND-QIND-QI (NT)
      {"nativeName": {"first": "ון", "middle": "סמית", "last": "סמית" ,"salutation":"Mrs."},
      NameTypeDescription
      firstRequired- String; max characters 50Legal first name of the applicant. 
      middleString; max characters 50Middle name of the applicant.
      lastRequired- String; max characters 50Legal last name of the applicant.
      salutationMr.
      Mrs.
      Ms.
      Dr.
      Mx.
      Ind.
      Salutation of the applicant.
      • Required for Russia and Israel Applicants. 
        • Error will be thrown IF first OR last are missing or null value is provided.
      • Optional for other countries.
      "numDependents": 0,
      NameTypeDescription
      numDependentsNumberProvide number of Individuals the Account Holder Supports (excluding the account holder). Account holder must provide at least half of the person’s total support for the year.
      ownershipPercentage": 100,
      NameTypeDescription
      ownershipPercentagenumber
      • Set ownership percentage for each indivdual associated with the account.
        • Joint: ownershipPercentage is ignored unless type is tenants_common.
        • IRA and TRUST: ownershipPercentage across all beneficiaries must add up to 100 or else error will be triggered.
      "phones": [ {"type": "Mobile", "number": "2034228988", "country": "USA", "isVerified": true} ],
      NameTypeDescription
      typeWork
      Home
      Fax
      Mobile
      Business
      Individual / Joint/ Retirement: Mobile phone number is required. The user can provide additional phone numbers (ie. Home, Work) if desired.

      Org: Business phone is optional. 
      numberString; max characters 18Phone number.
      country3 Digit ISO CodeCountry which phone number is associated to.
      isVerifiedtrue
      false
      Indicate if mobile phone number has been verified.
      • We use Google API to validate the Phone Number. The API allows for country code to be passed along with the phone number.
      • Mobile Phone Number will be used for IBKR’s Two-Factor Authentication.
      • Interactive Brokers requires all applicants to be enrolled in two-factor authentication.
      • Account holders will be prompted to enroll in two factor authentication within 1 month of the account being opened and funded OR after the third login to the white branded Interactive Brokers Online Portal
        • We offer HandyKey (mobile application). The application will be branded with your firms Logo.
        • Two-factor authentication cannot be enabled for clients using RESTful Web API
      • Two-factor authentication cannot be enabled by the advisor/broker on behalf even if Supplemental Power of Attorney is enabled.
      • For joint accounts, error will be thrown if number is same for both account holders.
      {"residenceAddress": {"street1": "1 Tester Street", "city": "London", "state": "GB-ENG" ,"country":"GBR","postalCode": "SW10 9QL"},
      NameTypeDescription
      country3 Digit ISO CodeCountry which the applicant resides.
      state3166-2 ISO CodeState/Province which the applicant resides.
      cityString; Max characters 100City which the applicant resides.
      postalCodeString; Max characters 20Postal / Zip code.
      For countries that do not provide postal code, please enter “00000″
      street_1String; Max characters 200Street which applicant resides
      street_2String; Max characters 200Street which applicant resides

      • If the mailing address is different from the address provided in Residence element, THEN you will also include MailingAddress element.
      • Post Office Box is not accepted for Residential Address.
      • Our system validates street_1 and street_2 included within Residence attribute to ensure Post Office Box address is not provided.
        • An error will be thrown if the below combinations are included within street_1 OR street_2:
          • PB
          • PO Box
          • Post Office Box
          • P.O. Box
          • In care of
          • General Delivery
        • Regular Expression to validate street_1 and street_2:
          • English: (?:P(?:ost(?:al)?)?[\.\-\s]*(?:(?:O(?:ffice)?[\.\\s]*)?B(?:ox|in|\b|\d)|o(?:ffice|\b)(?:[-\s]*\d)|code)|box[-\s]*\d)
          • Chinese Simplified: PO Box    (?i)\b((邮政信箱) [0-9]*)\bChinese Traditional: PO Box   (?i)\b((郵政信箱) [0-9]*)\b
      "sameMailAddress": true,
      NameTypeDescription
      sameMailAddresstrue
      false
      Indicate if the mailing address is different from the residential address.
      •  IF  "sameMailAddress": false,THEN mailingAddress is required
      "taxResidencies": [
      {"country": "USA",
      "tin": "132228833",
      "tinType": "SSN"
      }
      • Provide the tax residency of the associated individual.
      • Multiple tax residencies can be provided.
      NameTypeDescription
      tinTypeSSN
      NonUS_NationalId
      EIN
      Individual / Retirement / Joint
      Type of Tax ID number that is provided.

      SSN: Required for United States citizens and residents.

      NonUS_NationalId: Required for all other countries.
      *For Non-U.S. Applicants, if the applicant does not have a Foreign Tax ID, then this can be excluded.

      Org / Trust
      EIN is required
      country3 Digit ISO Code OR Full Country NameCountry where the applicant pays taxes.
      tinStringTax Identification Number.

      United States citizens and Residents: This is required. Provide SSN of the applicant.

      All other countries: if the applicant does not have a Foreign Tax ID, then this can be excluded.
      "translated": false,
      NameTypeDescription
      translatedtrue
      false
      Indicates if the information is the translated version. It is used only when providing information in a different language and English. Default values is “false”.
      • Indicates if the information is the translated version.
      • It is used only when providing information in a different language and English.
      • Default values is “false”.
      • If hasTranslation is set to true,
      • Options for submitting tax form:
      • Option 1: Advisor/IBroker collects the tax form records on your website and attaches the corresponding blank form in the JSON.
      • Option 2:  Advisor/IBroker will display the tax form on your website and client completes and signs the tax form electronically. Advisor/IBroker attaches the electronically completed and sign tax form along with the JSON.
      "w8Ben": {
      "name": "John Smith",
      "foreignTaxId": "2555558888",
      "tinOrExplanationRequired": true,
      "part29ACountry": "N/A",
      "cert": true,
      "blankForm": true,
      "taxFormFile": "Form5001.pdf",
      "proprietaryFormNumber": 5001,
      "electronicFormat": true
      }
      NameTypeDescription
      part29ACountry3 Digit ISO CodeCertify that the beneficial owner is a resident of <part29ACountry> within the meaning of the income tax treaty between United States and that country.

      > If the account holder is resident of a non-treaty country, enter N/A

      >If the account holder qualifies for treaty benefits under US income tax treaty, please identify treaty.

      >Treaty Countries with United States  
      nameStringName listed on the W8 must = Applicants First Name + Middle Name (if Applicable) + Last Name + Suffix (if Applicable)
      *Data is case and space sensitive.
      blankFormtrue
      false
      Indicate if the Tax Form provided to IBKR is blank.
      signatureTypeElectronicSignature type recorded for the Tax Form.
      taxFormFileStringFile name of the tax form provided to IBKR in the archive file.
      foreignTaxIdStringThe foreign tax ID of the applicant. This should be the same as the TIN which was provided in the TaxResidency node.
      proprietaryFormNumberStringForm number if broker/advisor sends proprietary blank forms instead of using the form numbers provided by IBKR.
      explanationUS_TIN
      TIN_NOT_DISCLOSED
      TIN_NOT_REQUIRED
      TIN_NOT_ISSUED
      Required if client does not have a foreign taxID.Explanation for not providing either TIN or Foreign Tax Id:[US_TIN] Account holder possesses US TIN; it will be added to W8 Form. 
      [TIN_NOT_DISCLOSED] Country issues TIN; however, applicant is exempt from disclosing TIN under laws of the country. 
      [TIN_NOT_REQUIRED] Account holder is not legally required to obtain TIN. 
      [TIN_NOT_ISSUED] Country does not issue TIN. 
      certtrue
      false
      Under penalties of perjury, I declare that I have examined the information on this form and to the best of my knowledge and belief it is true, correct, and complete. By clicking each item, I further certify under penalties of perjury that:

      >I am the individual that is the beneficial owner (or am authorized to sign for the individual that is the beneficial owner) of all the income to which this form relates or am using this form to document myself as an individual that is an owner or applicant of a foreign financial institution

      >The person named on line 1 of this form is not a U.S. person,

      > The income to which this form relates is:

      >not effectively connected with the conduct of a trade or business in the United States,

      >effectively connected but is not subject to tax under an income tax treaty, or

      >the partner’s share of a partnership’s effectively connected income,

      >The person named on line 1 of this form is a resident of the treaty country listed on line 9 of the form (if any) within the meaning of the income tax treaty between the United States and that country, and

      >For broker transactions or barter exchanges, the beneficial owner is an exempt foreign person as defined in the instructions.

      >By checking this box you confirm the information on this Form W-8BEN is correct.
      submitDateYYYY-MM-DDFor existing client, if firm has existing (valid) tax form on file for the account, include submit_date. submit_date represents date which client initially signed the tax form.
      • Options for submitting tax form:
      • Option 1: Advisor/IBroker collects the tax form records on your website and attaches the corresponding blank form in the JSON.
      • Option 2:  Advisor/IBroker will display the tax form on your website and client completes and signs the tax form electronically. Advisor/IBroker attaches the electronically completed and sign tax form along with the JSON.
      "w9": {
             "name": "paulina orr M ibllc test",
      "customerType": "Individual",
      "tin": "132228833",
      "tinType": "SSN",
      "cert1": true,
      "cert2": true,
      "cert3": true,
      "blankForm": true,
      "taxFormFile": "Form5002.pdf",
      "proprietaryFormNumber": 5002
                              }
      NameTypeDescription
      cert1true
      false
      The number shown on this form is my correct taxpayer identification number (or I am waiting for a number to be issued to me)
      cert2true
      false
      I am not subject to backup withholding because: (a) I am exempt from backup withholding, or (b) I have not been notified by the Internal Revenue Service (IRS) that I am subject to backup withholding as a result of a failure to report all interest or dividends, or (c) the IRS has notified me that I am no longer subject to backup withholding
      cert3true
      false
      I am a U.S. Citizen or other U.S. Person
      customerTypeIndividual
      Joint
      Specify the account type
      nameStringName listed on the W9 must = Applicants First Name + Middle Name (if Applicable) + Last Name + Suffix (if Applicable)*Data is case and space sensitive.
      signatureTypeElectronicSignature type recorded for the Tax Form.
      taxFormFileStringFile name of the tax form provided to IBKR in the archive file.
      tinStringThe applicant’s SSN. This should be the same as the TIN which was provided in the TaxResidency node.
      tinTypeSSNWill always be SSN for U.S. citizens and Residents.
      blankFormtrue
      false
      Indicate if the Tax Form provided to IBKR is blank.
      proprietaryFormNumberStringForm number if broker/advisor sends proprietary blank forms instead of using the form numbers provided by IBKR.

      Specific to AssociatedIndividual for an Organization or Trust

      "authorizedPerson": false
      NameTypeDescription
      authorizedPersontrue
      false
      Natural person who is completing the application ad has authority to sign agreements on behalf of the entity which the account is being opened for.
      • Individual will be required to provide corporate resolution or similar document authorization opening of the account and establishing that the person identified on the page can sign on behalf of he account holder and has authority to do so.
      • Applicable for associatedIndividuals listed on an Org.
      "authorizedTrader": false,
      NameTypeDescription
      authorizedTradertrue
      false
      Indicate if employee associated with the entity can trade on behalf of the trust.
      • Required if entityTrustee is listed for Trust.
      • If only entityTrustee is provided as Trustee, at least one employee for the entityTrustee must be authorized to trade.
      • If both individual AND entityTrustee are listed as Trustees, value can be set to false and individual will be set as the authorized trader
      "authorizedToSignOnBehalfOfOwner": false,
      NameTypeDescription
      authorizedToSignOnBehalfOfOwnertrue
      false
      Indicate if employee associated with the entity can sign on behalf of the owner.
      • Required if entityTrustee is listed for Trust.
      • If only entityTrustee is provided as Trustee, at least one employee for the entityTrustee must be authorized to sign on behalf of the owner.
      • If both individual AND entityTrustee are listed as Trustees, value can be set to false and individual will be authorized signer.
      "primaryTrustee": true,
      NameTypeDescription
      primaryTrusteetrue
      false
      Indicate if primary trustee associated with the trust.
      • Applicable for Australian Trust Accounts.
        • If Non-Australia trust, this is not required.
      • Cannot be more than one primary trustee.
      • If entityTrustee is provided, primary flag should be included for the employee associated with the entityTrustee
      • If Individual Trustee, include flag for individual
      "titles": [
      {
      "code": "Account Holder"
      }
      ]
      NameTypeDescription
      codeOrg- Authorized Person
      DIRECTOR
      OTHER OFFICER
      SECRETARY

      Org- Owner
      SIGNATORY
      CEO
      OWNER

      Trust
      Grantor
      Trustee
      Beneficiary
      Title associated with the individual.
      • For Orgs and Trusts, set title for each individual that is associated with the account.
      • For ORG if “authorizedPerson": true, title code should be one of:
        • DIRECTOR
        • OTHER OFFICER
        • SECRETARY
      • For Trust, at least one trustee must be specified.

      customer

      "externalId": "tester111111",
      "type": "INDIVIDUAL",
      "prefix": "aabb",
      "email": "tester@gmail.com",
      "mdStatusNonPro": false,
      },
      NameTypeDescription
      externalIdStringThe externalId, externalUserId, and externalIndividualId are unique identifiers which the counterparty assigns. The identifier can be used as a mapping to map the IBKR account with the account/user information within counterparty’s system.
      externalId is present within application multiple times including: customer = Represents the customer which the account is associated with
      accountHolderDetails, firstHolderDetails, secondHolderDetails: Represents Individuals associated with the account.
      accountHolder, jointHolder = Represents the account itself
      users (externalUserId and externalIndividualId)= Represents users associated with the account.
      typeINDIVIDUAL
      JOINT
      IRA
      TRUST
      ORG
      Type of account.
      prefixStringPrefix will be used when creating the user ID. IBKR will assign 3-6 numbers to the end of the prefix.
      If prefix includes the following, you will receive an error:• symbols or numeric values
      – Upper case letters
      – Prefix is less than 3 letters or more than 6 letters
      emailStringPrimary email address of the applicant.
      userNameAlphanumeric

      – Letters (lower case) and numbers only.
      – Contains at least 3 letters.
      Min Characters 9; Max characters 63
      – Lower case only, no spaces, no special characters.
      By default, IBKR will generate a user ID using the prefix that is specified in the Customer and User node. If the user would like to select the exact user name, this can be done with userName. The /gw/api/v1/validations/usernames/{username} endpoint can be used to verify if usernName is available.

      This feature is available by request only, to use this service, please contact am-api@interactivebrokers.com.
      mdStatusNonProtrue
      false
      Indicate if the applicant is classified as Professional or Non-Professional user. Prices for live data will vary based on if the use is Pro  OR Non-Professional.

      mdStatusNonPro=FALSE IF any of the conditions outlined in the below link are met:
      https://ibkr.info/article/2369
      directTradingAccesstrue
      false
      Indicate if the applicant will have direct access to placing trades. Required for Non-Disclosed Clients only.
      meetAmlStandardtrue
      false
      Customer meets anti-money laundering standards. Required for Non-Disclosed Clients only.
      taxTreatyCountry3 Digit ISO CodeIf the account holder qualifies for treaty benefits under US income tax treaty, please identify treaty.

      N/A is acceptable if account holder does not qualify for treaty benefits.
      Treaty Countries with United States
      legalResidenceCountry3 Digit ISO CodeCountry of legal residence of the customer. Only relevant for Non-Disclosed Broker Clients.
      preferredPrimaryLanguageen
      de
      es
      jp
      jp
      zh_CN
      fr
      zh_TW
      he
      Specify Preferred Language for Communication sent by IBKR and for IBKR Systems including Portal and TWS.
      preferredSecondaryLanguageen
      de
      es
      jp
      jp
      zh_CN
      fr
      zh_TW
      he
      Specify Second Preferred Language for Communication sent by IBKR and for IBKR Systems including Portal and TWS.

      There are two options for providing financialInformation:

      • Option 1: Absolute Number
      • Option 2: Provide an interval range (range_id)

      Validations will vary based on each option. Expand each section below to view differences.

      • Any value over 100 is considered as absolute. Error will be triggered IF the value is less than 100.
      • If absolute number is provided:
        • System converts the data provided in the financialInformation node using the baseCurrency specified within the account node to a range ID.
        • When validating the financialInformation against the IBKR’s Financial Minimum our system uses the lower bound value for the range_id
        • Our system converts lower bound value of the range_id from baseCurrency to IB Currency to validate eligibility for requested capabilities.
          • IBLLC = USD
          • IB-UK = GBP
          • IB-CE, IB-IE = EUR
          • IB-HK = HKD
          • IB-AU = AUD
          • IB-CAN = CAD
      financialInformation": [ {"netWorth": 750000, "liquidNetWorth": 500000, "annualNetIncome": 50000}
      NameTypeDescription
      net_worthNumberThe total value of all assets you own, less what you owe (including all mortgages and debts).Your Net Worth cannot be less than your Liquid Net Worth. If absolute value is provided, minimum value accepted is 101; maximum value accepted is 50000001
      liquid_net_worthNumberThe total value of any assets you own that can be quickly converted into cash.If absolute value is provided, minimum value accepted is 101; maximum value accepted is 5000001
      annual_net_incomeNumberThe total amount of your earnings for one year minus any taxes or other deductions taken from your pay. These other deductions could include health insurance, retirement contributions, court ordered judgements or support payments.If absolute value is provided, minimum value accepted is 0; maximum value accepted is 1000001
      detailsStringMaximum of 350 Characters. Provide Description of Sources of Income.
      • Eligibility for Trading Permissions and Account Type (Cash, Margin, Portfolio Margin) is validated against Financial Information Provided. Financial Minimums
      • For Applications submitted to IBKR via API, financialInformation is collected in the currency which is associated with the IBKR entity.
      • When validating the financialInformation against the IBKR’s Financial Minimum our system uses the lower bound value for the range_id.
      • Our system converts lower bound value of the range_id from baseCurrency to IB Currency to validate eligibility for requested capabilities.
        • IBLLC = USD
        • IB-UK = GBP
        • IB-CE, IB-IE = EUR
        • IB-HK = HKD
        • IB-AU = AUD
        • IB-CAN = CAD
      • range_id can only be used for the following currencies:
      AUD GBP KRWPLNUSD
      CAD HKD MXNRUB 
      CHF ILS SEKSGD 
      EUR JPYNZDTRY 
      financialInformation": [ {"netWorth": 8, "liquidNetWorth": 5, "annualNetIncome": 7}
      NameTypeDescription
      netWorthrange_id: Pull directly using /gw/api/v1/enumerations/fin-info-ranges?currency=<CURRENCY>The total value of all assets you own, less what you owe (including all mortgages and debts).Your Net Worth cannot be less than your Liquid Net Worth.
      liquidNetWorthrange_id: Pull directly using /gw/api/v1/enumerations/fin-info-ranges?currency=<CURRENCY>The total value of any assets you own that can be quickly converted into cash.
      annualNetIncomerange_id: Pull directly using /gw/api/v1/enumerations/fin-info-ranges?currency=<CURRENCY>The total amount of your earnings for one year minus any taxes or other deductions taken from your pay. These other deductions could include health insurance, retirement contributions, court ordered judgements or support payments.  
      detailsStringMaximum of 350 Characters. Provide Description of Sources of Income.
      • yearsTrading is validated against the age of the applicant. If yearsTrading > Date – 18, you will receive an error.
      • Cannot be hard coded.
      • We only require the experience for the products the client is requesting.
      • We do not require experience for FOP, SSF, WAR, FOP, ETFs, Mutual Funds as these are subcategories.
        • i.e. If the applicant only wants to trade Stocks, Mutual Funds and ETFs, we only need the experience for STK.
      {
      "investmentExperience": [
      {
      "assetClass": "STK",
      "yearsTrading": 5,
      "tradesPerYear": 2,
      "knowledgeLevel": "Limited"
      },
      {
      "assetClass": "BOND",
      "yearsTrading": 1,
      "tradesPerYear": 1,
      "knowledgeLevel": "Limited"
      }
      ],
      NameTypeDescription
      assetClassSTK
      BOND
      OPT
      FUT
      CASH
      MRGN
      STK= Stocks (ETFs, ADRs, and Mutual Funds)

      BOND= Bonds (T-Bills, Municipal/Corporate Bonds)

      OPT= Options

      FUT= Futures (includes Single Stock Futures, Futures Options)

      CASH= Forex (includes currency conversion and leveraged forex)

      MRGN= Margin (Only applicable for IB-UK/IB-EU/IB-IE/IB-CE accounts requesting Margin).
      knowledgeLevelNone
      Limited
      Good
      Extensive
      Knowledge level the applicant has trading this product.
      tradesPerYearNon-Negative Integer ValueAverage number of trades per year placed by the applicant for the specified product.
      yearsTradingNon-Negative Integer ValueYears of experience the applicant has trading this specific product.

      For Advisor Clients:

      • Investment Experience validations are driven by the Advisor-Master.
      • If Advisor is only registered for Securities, the sub-account is only eligible for Stocks, Options, Bonds, and Mutual Funds.

      For Broker clients:

      • STK
        • yearsTrading=“1″ AND tradesPerYear < 10:
          • knowledgeLevel= Good OR Extensive: This will validate.
          • knowledgeLevel= None OR Limited: This will trigger an error and the application will not be processed.
      • OPT
        • years_trading=“1″ AND tradesPerYear < 10:
          • This will trigger an error and the application will not be processed.
          • Because client has less than two years trading Options, client must take Options Exam
        • yearsTrading=“2″ AND tradesPerYear < 10:
          • knowledgeLevel= Good OR Extensive: This will validate.
          • knowledgeLevel= None OR Limited: This will trigger an error and the application will not be processed.
      • BOND
        • yearsTrading=“1″ AND tradesPerYear < 10:
          • knowledgeLevel= Good OR Extensive: This will validate.
          • knowledgeLevel= None OR Limited: This will trigger an error and the application will not be processed.
      • FUT
        • yearsTrading=“1″ AND tradesPerYear < 10:
          • This will trigger an error and the application will not be processed.
          • Because client has less than two years trading Futures, client must take Futures Exam
        • yearsTrading=“2″ AND tradesPerYear < 10:
          • knowledgeLevel= Good OR Extensive: This will validate.
          • knowledgeLevel= None OR Limited: This will trigger an error and the application will not be processed.
        • CASH
          • yearsTrading=“1″ AND tradesPerYear < 10:
            • This will not validate
          • year yearsTrading=“2″ AND tradesPerYear < 10:
            • knowledgeLevel= Good OR Extensive: This will validate.
            • knowledgeLevel= None OR Limited: This will trigger an error and the application will not be processed.

      • If EmploymentType = EMPLOYED OR SELFEMPLOYED
        • SOW-IND-Income must be listed as sourceOfWealth but does not need to be selected as a source used to fund the account.
      • Applicant cannot specify the same source multiple times.
      • percentage is not required IF usedForFunds=”false”
      • Percentage across all sourceOfWealth must = 100%
      • Required for all Applicants (ie. EMPLOYED, SELFEMPLOYED, RETIRED, UNEMPLOYMENT, STUDENT, ATHOMETRADER, or HOMEMAKER)
      "sourcesOfWealth": [
      {
      "sourceType": "SOW-IND-Inheritance",
      "percentage": 100,
      "usedForFunds": true
      },
      NameTypeDescription
      sourceTypeIndividual/ Joint / Retirement

      SOW-IND-Allowance
      SOW-IND-Disability
      SOW-IND-Income
      SOW-IND-Inheritance
      SOW-IND-Interest
      SOW-IND-MarketProfit
      SOW-IND-Other
      SOW-IND-Pension
      SOW-IND-Property

      Orgs / Trusts

      SOW-ORG
      Business
      SOW-ORG-MarketTradingProfits
      SOW-ORG-Other
      SOW-ORG-OwnerEquity
      SOW-ORG-Property
      SOW-ORG-RetainedEarnings
      Other- Description is required.
      descriptionString; maximum of 128 characters.Describe source of funds.
      Only required if source_type=“SOW-IND-Other” or “SOW-ORG-Other”
      percentageNon-Negative IntegerOnly required IF
      1) usedForFunds = true
      AND account is
      2) Account is with IB-HK, IB-AU, IB-UK, IB-UKL, IB-IE, IB-CE  
      usedForFundstrue
      false
      Is the source used to fund the account? Yes/No

      FA/FD: Individual, Retirement, Joint (All Entities) 

      • AFFILIATION: Is the applicant or any immediate family member who resides in the same household, registered as a broker-dealer or an employee, director or owner of a securities or commodities brokerage firm? (Yes/No) affiliationDetailsis required IF true.

      FA/FD/OWD: Individual, Retirement, Joint (All Entities except for IB-AU) 

      • EmployeePubTrade: Are the owners of, or other non-owners listed on, the account Employees of a publicly traded company? (Yes/No)
      • ControlPubTraded:Do the owners of, or other non-owners listed on, the account Control a publicly traded company? (Yes/No)

      FA/FD: Individual, Retirement, Joint (IB-AU only) 

      • POLITICALMILITARYDIPLOMATIC: Is the account holder, or an immediate family member of the account holder: (i) a senior government official of any country, (ii) a senior diplomatic staff member or ambassador or high commissioner for Australia or a non-Australian embassy, or (iii) a high ranking member of any country’s armed forces, or (iv) a senior officer (CEO, CFO, or comparable position) of any State-owned enterprise of any country.  (Yes/No)
      • CONTROLLER: Is the account holder, or an immediate family member, a director or senior employee or officer of any publicly traded company (listed) or of an issuer/manager of any exchange traded financial product? (Yes/No)

      OWD: Orgs

      • STOCKCONTROL: Is the organization a publicly-held entity whose shares are traded on a regulated exchange? (Yes/No) If Yes, provide Symbol within detail.
      • FOREIGN_BANK:Is the organization a foreign bank (formed and located outside the European Union)?(Yes/No)
      • MONEY_TRANSMITTER: Is the organization a licensed money transmitter?(Yes/No)
      • HIGH_RISK_CONTRIBUTION: Does your organization generate 10% or more of its revenue by conducting business in high risk countries? (Yes/No) If yes, provide countries that apply. (Contact dam@ibkr.com for list of countries).
      NameTypeDescription
      codeAFFILIATION
      EmployeePubTrade
      ControlPubTraded
      POLITICALMILITARYDIPLOMATICCONTROLLER
      STOCKCONTROL
      FOREIGN_BANK
      MONEY_TRANSMITTER
      HIGH_RISK_CONTRIBUTION
      statustrue
      false
      Response to the above Regulatory Questions.Yes= trueNo = false
      detailStringRequired IF any of the following are true: 

      EmployeePubTrade – Enter the stock symbol(s) of the company or companies, separated by commas. Stock symbol(s) must be upper case.

      ControlPubTraded – Enter the stock symbol(s) of the company or companies, separated by commas. Stock symbol(s) must be upper case.

      STOCKCONTROL – Enter the stock symbol(s) of the company or companies, separated by commas. Stock symbol(s) must be upper case.

      HIGH_RISK_CONTRIBUTION – Enter the country(ies), separated by commas. Country must be 3 digit ISO code and all upper case.
      externalIndividualIdStringExternal_ID associated with the account holder.

      If ControlPubTraded and/or EmployeePubTrade=”false”

      "regulatoryInformation": [
      {
      "regulatoryDetail": [
      {
      "code": "ControlPubTraded",
      "status": false
      },
      {
      "code": "EmployeePubTrade",
      "status": false
      },
      {
      "code": "AFFILIATION",
      "status": false
      }
      ],
      "translated": false
      }
      ]

      If ControlPubTraded and/or EmployeePubTrade=”true”

      "regulatoryInformation": [
      {
      "regulatoryDetail": [
      {
      "code": "ControlPubTraded",
      "status": true,
      "externalIndividualId": "tester12345",
      "detail": "AAPL"},

      {
      "code": "EmployeePubTrade",
      "status": true,
      "externalIndividualId": "tester12345",
      "detail": "AAPL"},
      {
      "code": "AFFILIATION",
      "status": false
      }
      ],
      "translated": false
      }
      ]

      Option 1: Link to an existing IBKR EmployeeTrack Account

      NameTypeDescription
      isDuplicateStmtRequiredtrue
      false
      Indicates if IBKR should send duplicated statements to customers. For those included on FINRA Rule 3210 or equivalent on his/her jurisdiction, the expected answer is true, as they need to submit one copy to his/her employer compliance office.
      affiliationRelationshipOther
      Spouse
      Parent
      Child
      Self
      Relationship of the affiliated person to the applicant.
      personNameStringName of the affiliated person.
      companyIdStringIf the employer has an EmployeeTrack account with IBKR,  you can link the account to the EmployeeTrack account. The Employer will automatically receive duplicate statements for the account.

      Use /getEnumerations ‘company_id’ to query list of companies with active EmployeeTrack accounts at Interactive Brokers.

      Option 2: Provide Company Details (used if the Employer does not have an EmployeeTrack account with IBKR)

      NameTypeDescription
      is_duplicate_stmt_requiredtrue
      false
      Indicates if IBKR should send duplicated statements to customers. For those included on FINRA Rule 3210 or equivalent on his/her jurisdiction, the expected answer is true, as they need to submit one copy to his/her employer compliance office.
      affiliation_relationshipOther
      Spouse
      Parent
      Child
      Self
      Relationship of the affiliated person to the applicant.
      person_nameString; max characters 48Name of the affiliated person.
      companyString; max characters 400Name of the company where the affiliated person is employed.
      company_phoneString; max characters 18Phone number of the compliance officer at the company.We use Google API to validate the Phone Number. The API allows for country code to be passed along with the phone number.Google Phone Library to version 8.12.2https://github.com/google/libphonenumber
      company_email_addressString; max characters 80Email address of the compliance officer at the company.We validate the email address using Regular Expression (REGEX)^[A-Z0-9][A-Z0-9._%+-]{0,63}@(?:(?=[A-Z0-9-]{1,63}[.])[A-Z0-9]+(?:-[A-Z0-9]+)*[.]){1,8}[A-Z]{2,63}$
      country3 Digit ISO CodeCountry which the employer is located. 
      state3166-2 ISO CodeState/Province which the employer is located.
      cityString; Max characters 100City which the employer is located.
      postal_codeString; Max characters 20Postal / Zip code. For countries that do not provide postal code, please enter “00000″
      "withholdingStatement": { "effectiveDate": "2024-11-01", "fatcaCompliantType": "FATCA_COMPLIANT", "treatyCountry": "GBR" }
      NameTypeDescription
      effectiveDateYYYY-MM-DDEffective date of withholding statement.
      fatcaCompliantTypeFATCA_COMPLIANT
      NON_CONSENTING_US_ACCOUNT
      NON_COOPERATIVE_ACCOUNT
      Indicate if the Account Holder is FATCA compliant account
      treatyCountry3 Digit ISO CodeIf the account holder qualifies for treaty benefits under US income tax treaty, please identify treaty.

      >N/A is acceptable if account holder does not qualify for treaty benefits.
      >Treaty Countries with UnitedStates

      accounts

      Account Configurations

      "accounts": [
      "externalId": "TEST12345",
      "baseCurrency": "USD",
      "margin": "RegT",
      "alias": "My Individual Account"}
      NameTypeDescription
      external_idString; max characters 64Identifier for the account. This will be specified by the counterparty.
      baseCurrencyCurrency code (3 digits). Available currencies can be found hereBase currency for the account. 
      aliasString; Max number of characters is 80Nick name for the account. If you create an account alias, the alias will replace the IBKR Account number on account statements, portal, and TWS.
      marginCash
      Margin
      RegT
      PortfolioMargin
      Type of margin rules to be applied to the account. 
      Cash: No margin capabilities.
      Margin/RegT: Rule based margin and offers 4:1 leverage intraday and 2:1 leverage overnight.Minimum Equity: $2,000
      Portfolio Margin: Risk Based Model and can offer anywhere from a 6:1 leverage for a diverse portfolio; and down to a 3:1 leverage for a more concentrated portfolio.Minimum Equity: $100,000If the account falls below $100,000 the account will be in close only mode. Note: Margin Trading is not available for Australia Residents or accounts underneath IB-AU. For IB-AU accounts, it will always be margin=”CASH”
      NameTypeDescription
      capabilitiesCLP
      LEVFX
      CLP= Complex Leveraged Product.

      LEVFX= Leveraged Forex (Cash Forex) 
          "accounts": [
            {
              "capabilities": [
                "CLP",
                "LEVFX"
              ],
      • LEVFX allows you to trade currency pairs with leverage. With leveraged FX, you are able to trade larger position sizes with a smaller amount of margin. Leveraged FX trading to eligible clients.
      • CLP for for Fully-Disclosed clients; the account holder must have a minimum of two years trading experience with stocks AND either options or futures.
      • Futures
      • 1 year, 1-10 Trades per year
        • This will not validate
        • Because client has less than two years trading Futures, client must take Futures Exam
      • 2 years, 1-10 Trades per year
        • This will validate if Knowledge level is Good or Extensive
        • Will not validate if Knowledge Level is Limited
      • Options
      • 1 year, 1-10 Trades per year
        • This will not validate
        • Because client has less than two years trading Options, client must take Options Exam
      • 2 years, 1-10 Trades per year
      • Eligibility for TradingPermissions will vary based on the InvestmentObjectives.
      • This cannot be hardcoded.
      • To Trade All Products
        • Growth + Trading Profits + Speculation + Hedging
        • Growth + Speculation + Hedging
        • Growth + Speculation
        • Growth + Trading Profits
        • Hedging + Trading Profits
        • Speculation + Hedging
        • Speculation + Hedging + Trading Profits
      • Bonds Only
        • Preservation of Capital only
      • Income + Preservation of Capital + Growth= cannot include Options or Forex
      • Income + Preservation of Capital + Growth + Hedging= cannot include Options
      "accounts": [
      {
      "investmentObjectives": [
      "Income",
      "Growth"],
      NameTypeDescription
      objectivePreservation
      Income
      Growth
      Trading
      Speculation
      Hedging
      Preservation of Capital: Seek maximum safety and stability for your principal by focusing on securities and investments that carry a low degree of risk.

      Income: Generate dividend, interest or other income instead of, or in addition to, seeking long-term capital appreciation.

      Growth: Increase the principal value of your investments over time rather than seeking current income. Investor assumes higher degree of risk.

      Trading Profits: Increase the principal value of your investments by using shorter term trading strategies and by assuming higher risk.

      Speculation: Substantially increase the principal value of your investments by assuming substantially higher risk to your investment capital.

      Hedging: Take positions in a product in order to hedge or offset the risk in another product.

      Permissions can be requested by exchange OR by product and market.

      For exchange_group, use/api/v1/enumerations/exchange-bundles endpoint to query list of available permissions.

      • To trade Fractional Shares, include "exchangeGroup": "IB-FRAC-STK".
      {
      "tradingPermissions": [
      {
      "exchangeGroup": "US-Sec",
      }
      ],

      For bundle based, specify the country and Product. Table below includes a list of available products and countries.

      NameTypeDescription
      productBONDS
      FUTURES
      FOREX
      FUTURES OPTIONS
      MUTUAL FUNDS
      STOCKS
      SINGLE STOCK FUTURES
      OPTIONS
      STOCK OPTIONS
      Product type being requested  
      countryAll
      AUSTRALIA
      AUSTRIA
      BELGIUM
      CANADA
      FRANCE
      GERMANY
      HONG KONG
      ITALY
      JAPAN
      KOREA
      MEXICO
      NORWAY
      SINGAPORE
      SPAIN
      SWEDEN
      SWITZERLAND
      THE NETHERLANDS
      UNITED KINGDOM
      UNITED STATES
      Region which user is requesting to trade the product. If ALL is selected, this includes all available regions for the PRODUCT.
      Available products based on region can be found here.
      {"tradingPermissions": [         
      {"country": "AUSTRALIA",
      "product": "STOCKS"
      },         
      {"country": "AUSTRIA",
      "product": "STOCKS"
      },

      Optional Configurations

      Fee Management

      "advisorWrapFees": { 
      "strategy": "NO_FEE",         
      "chargeAdvisor": false,         
      "chargeOtherFeesToAdvisor": false     
      },
      • Required for advisor-clients. Optionally, set fees based on predefined template that was created in Advisor Portal using feeTemplateName.
      • Overview on advisor fees can be found here.
      NameTypeDescription
      strategyNO_FEES
      AUTOMATED 
      NO_FEES = No management fees will be applied to the account. Management fees can be added after the account is approved/opened. Please note, if fees are applied after the account is approved/opened, the client will need to sign off on the fee change.
      AUTOMATED= Only if automated_fees_detail is included. Fees will be billed to the client’s account with blanket client authorization.
      chargeAdvisortrue
      false
      Indicates whether commissions will be charged to the advisor account. By default, this is set to false.
      typeANNUALFLATFEE
      ANNUALFLATFEE_MONTHLY
      ANNUALFLATFEE_QUATERLY
      BLENDEDPERCENTOFEQUITY
      BLENDEDPERCENTOFEQUITY_EOM
      BLENDEDPERCENTOFEQUITY_EOQ
      BLENDEDPERCENTOFEQUITY_MONTHLY
      BLENDEDPERCENTOFEQUITY_QUARTERLY
      PERCENTOFEQUITY
      PERCENTOFEQUITY_EOM
      PERCENTOFEQUITY_EOQ
      PERCENTOFEQUITY_MONTHLY
      PERCENTOFEQUITY_QUARTERLY
      PERCENTOFNLV_CAP
      PERCENTOFNLV_CAP_EOPEQTY
      PERCENTOFNLV_CAP_EOPEQTY_Q
      PERCENTOFNLV_CAP_Q
      Annual Flat Fee; Entered as an annualized amount, applied on a daily, monthly or quarterly basis (apportioned by 252 days).
      ANNUALFLATFEE
      ANNUALFLATFEE_MONTHLY
      ANNUALFLATFEE_QUATERLY

      Percentage of net liquidation with ranges; Enter up to five separate net asset-value ranges, and an annualized fee percentage for each.
      BLENDEDPERCENTOFEQUITY
      BLENDEDPERCENTOFEQUITY_EOM
      BLENDEDPERCENTOFEQUITY_EOQ
      BLENDEDPERCENTOFEQUITY_MONTHLY
      BLENDEDPERCENTOFEQUITY_QUARTERLY

      Percentage of net liquidation. Entered as an annualized percentage, applied on a daily, monthly or quarterly basis.
      PERCENTOFEQUITY
      PERCENTOFEQUITY_MONTHLY
      PERCENTOFEQUITY_QUARTERLY

      Percentage of net liquidation, calculated by using the End of Month_/Quarter_ Net Liquidation Value, the rate and the number of business days in a particular month period.
      PERCENTOFEQUITY_EOM
      PERCENTOFEQUITY_EOQ

      Invoice; Specify the maximum percentage of the client’s Net Asset Value that can be deducted as advisory fees each month or quarter.

      PERCENTOFNLV_CAP
      PERCENTOFNLV_CAP_Q

      Period-End Invoice Limit; The Month End Balance and Quarter End Balance invoicing options allow advisors to invoice clients with limits calculated based on the ending value of the previous period.
      PERCENTOFNLV_CAP_EOPEQTY
      PERCENTOFNLV_CAP_EOPEQTY_Q
      maxFeeNon-Negative IntegerMaximum fee to be charged to the client account, displayed as an annualized amount. 
      NameTypeDescription
      feesTemplateNameStringName of the fee template being applied. Data is case and space sensitive. The feesTemplateName must match the name of the template which was previously created in the advisor/broker portal.
      Details
       "feesTemplateName": "MyFeeTemplate",

      Disclaimer: Fee schedule will automatically be applied once the account is opened and funded.

      Funding

      • During account opening, we support deposit notifications for Checks OR Wires. Our New Accounts team prioritizes applications that are already funded, so we encourage users to include funding instructions in the Application.
      • CHECK: The request is indicating a check deposit notification. The client still needs to send the physical check to IBKR. The deposit notification is used by IBKR to match the deposited funds to the account.
      • WIRE: The request is indicating a wire deposit notification. The client still needs to contact their bank to initiate the transfer. The deposit notification is used by IBKR to match the deposited funds to the account. For list of wire instructions by currency, please contact dam@ibkr.com.
      • Refer to Funding Limitations
      "depositNotification": {         
      "wireDetails": {           
      "bankName": "Macquarie"         
      },         
      "type": "WIRE",         
      "amount": 30000,         
      "currency": "AUD"       
      },
      NameTypeDescription
      typeCHECK
      WIRE
      Specify how fund are being sent to IBKR.
      amountNon-Negative Integer ValueAmount being deposited to IBKR. If there is a discrepancy between amount included in the request versus actual amount sent to IBKR, the funds will not be automatically credited to the account. The applicant will need to contact our Customer Service team to verify the fund transfer.
      currencyCurrency code (3 digits). Available currencies can be found here.Currency of the funds being sent to IBKR.
      bankNameStringName of the sending institution. Only required for WIRE deposits
      acctNumberStringAccount number at bank. Only required for CHECK deposits.
      routingNumberString; max characters 9The routing number listed on the check. Only required for CHECK deposits.
      checkNumberString; max characters 16The check number listed on the check sent to IBKR. Only required for CHECK deposits.
      • Initiate ACATS transfer to the IBKR Account. ACATS will automatically be initiated once the IBKR Account is approved/opened. During account opening, we support FULL OR Partial Transfers. This guide only provides information on FULL transfers. For information on PARTIAL transfers, please send an email to dam@ibkr.com.
      • Usage is optional.
      • Limitations and Time to Arrive
      "extPositionsTransfers":
      {
      "type": "FULL",
      "subType": "ACATS",
      "brokerId": "0226",
      "brokerName": "Wall Street Financial Group",

      "accountAtBroker": "SOL12345", "sourceIRAType": "RO",
      "ssn": "123232323",
      "signature": "John Tester"
      "marginLoan": true,
      "shortPos": false,
      "optionPos": false,
      "authorizeToRemoveFund": true
      }
      NameTypeDescription
      typeFULL
      PARTIAL
      Indicate if this is a Full OR Partial Transfer.
      optionPostrue
      false
      Does the account hold option positions? Yes/No
      ssnStringSSN listed on the account (This should match the SSN which was listed in Identification element AND TaxResidency element)
      brokerIdUse /api/v1/enumerations/acats to view values.DTC Number of the sending institution
      brokerNameUse /api/v1/enumerations/acats to view values.Name of the sending Broker
      signatureStringThis should match First Name + Middle Initial (If Applicable) + Last Name.
      subTypeACATSStatic- will always be ACATS for ACATS transfer
      accountAtBrokerStringAccount number at the sending institution.
      marginLoantrue
      false
      Does the account hold short positions? Yes/No

      Retirement Accounts

      "decendent": [
      {
      "name": {
      "salutation": "Mr.",
      "first": "paulina",
      "last": "ibllc test",
      "middle": "M"
      },
      "dateOfDeath": "2021-12-15",
      "relationship": "Individual",
      "inheritorType": I,
      "identification": {
      "SSN": "1231231212",
      "citizenship": "USA",
      },
      NameTypeDescription
      dateOfDeathYYYY-MM-DDDate of Death.
      SSNStringSocial security number, required for the deceased.
      citizenship3 Digit ISO CodeCitizenship of the deceased.
      inheritorTypeI
      O
      T
      S
      I=Individual
      O= Other
      T= Trust
      S= Spouse
      relationshipIndividual
      Other
      Trust
      Spouse
      "employePlan": "U1234456",
      NameTypeDescription
      employeePlanStringIBKR Account ID associate with the Employee Plan Administrator.
      • The  /api/v1/enumerations/employee-plans  can be used to view list of EPA’s that are linked to the master.
      • Error will be thrown if the Employee Plan Administrator is not associated with the master account.
      • Employer will open an Employer Plan Admin account (EPA) directly with Interactive Brokers
      • The advisor/broker master will submit a one-time linking request to the EPA
        • EPA will accept
      • The SIMPLE IRA account will be linked to the EPA and Advisor.
        • Both the advisor/broker and EPA must have an open account with Interactive Brokers
      • The EPA manages all contributions into the SIMPLE IRA account
      • The advisor/broker can the trade on behalf of the SIMPLE IRA holder
      • Advisor/broker can use all designated FA functionality, except initiating a deposit notification
      "iraBeneficiaries": {
      "primaryBeneficiaries": [
      {
      "name": {
      "salutation": "Mr.",
      "first": "Joe",
      "last": "Smith",
      "middle": "A"
      },
      "dateOfBirth": "1967-11-09",
      "countryOfBirth": "USA",
      "residenceAddress": {
      "street1": "1 Tester Way",
      "city": "Stamford",
      "state": "CT",
      "country": "United States",
      "postalCode": "94510"
      },
      "identification": {
      "citizenship": "United States",
      "ssn": "132121212",
      },
      "externalId": "100883PB1",
      "sameMailAddress": true,
      "ownershipPercentage": 100,
      "relationship": "Husband"
      }
      ],
      "successor": false
      "spousePrimaryBeneficiary": false
      },
      NameTypeDescription
      spousePrimaryBeneficiarytrue
      false
      Indicate if the spouse is the primary beneficiary.
      successortrue
      false
      Indicate if Successor. Only applicable for Canadian TSFA accounts.
      • If MaritalStatus=”M” and spouse_primary_beneficiary=”false” , the Spousal Consent Form (form_no=”4091″) will be required for approval. Spousal Consent Form can be submitted to IBKR using ‘DocumentSubmission ‘ via /update endpoint.Download Spousal Consent Form
      • Indicate if retirement account and set retirement type.
      "iraType": "SIMPLE",
      "ira": "true"
      NameTypeDescription
      iratrue
      false
      Default is false. If retirement account, set to true.
      iraTypeRI
      RO
      RT
      SP
      TH
      RH
      SH
      TFSA
      RRSP
      SRRSP
      SIMPLE
      ISA
      Required IF ira:"true"

      Applicable for United States residents only:
      RI= Traditional New
      RO = Traditional Rollover
      RT = Roth New
      SP= SEP New
      TH = Traditional- Inherited
      RH= Roth- Inherited
      SIMPLE
      Details: https://www.interactivebrokers.com/en/index.php?f=14429

      Applicable for Canadian residents only:
      TFSA= Tax Free Savings Account.
      RRSP = Registered Retirement Savings Plan.
      SRRSP= Spousal Registered Retirement Savings Plan.
      Details: https://www.interactivebrokers.ca/en/index.php?f=11792

      Applicable for UK Residents
      ISA= Individual Savings Account
      Details: https://www.interactivebrokers.co.uk/en/trading/isa-accounts.php

      Trading Configuration

      Available by request only, to use service, contact dam@ibkr.com.

      NameTypeDescription
      valuetrue
      false
      true: Enable service
      false: Disable Service
      typeLiteExecutionConfiguration type
      "accountConfiguration": { 
      "type": "LiteExecution",         
      "value": true
      },
      • Applicable for accounts facing IB-AU entity.
      "accountType":"Trading",
      NameTypeDescription
      accountTypeInvestment
      Trading
      Investment: For individual investors with 2K AUD minimum deposit and minimum liquid net worth of 20K AUD. No margin trading, limited options, unleveraged spot forex, and some low leverage derivatives trading allowed.
      Trading: Individual investors with a minimum of 10K Deposit AUD and minimum liquid net worth of 100K AUD or 20K AUD + 50K AUD minimum income. No trading on margin but limited options and unleveraged spot forex.
      • Dividend reinvestment (DRIP) is an option where you can elect how you wish to receive your dividends for stocks and mutual funds. Dividend Reinvestment is available to IB LLC, IB AU, IB CAN, IB HK, IB IE, IB JP, IB SG and IB UK clients only.
      • Information on DRIP can be found here.
      "drip": false,
      NameTypeDescription
      drip true
      false
      Flag to indicate if the account will subscribe to Dividend Reinvestment Plan.
      IBKR offers a dividend reinvestment program whereby accountholders may elect to reinvest qualifying cash dividends to purchase shares in the issuing company
      • The Stock Yield Enhancement program provides customers with the opportunity to earn additional income on securities positions which would otherwise be segregated (i.e., fully-paid and excess margin securities) by permitting IBKR to lend out those securities to third parties. Customers who participate in the program will receive cash collateral to secure the return of the stock loan at its termination as well as interest on the cash collateral provided by the borrower for any day the loan exists.
      • Information on Stock Yield Program can be found here.
      "stockYieldProgram": false,
      NameTypeDescription
      stockYieldProgramtrue
      false
      Flag to indicate if the account will enroll in IBKR’s Stock Yield Enhancement Program.
      "limitedOptions": false
      NameTypeDescription
      limitedOptionstrue
      false
      Indicate if limited options trading is elected . Default is “False”
      • Limited option trading is available with ANY Investment Objective.
      • Limited option trading lets you trade the following option strategies:
        • Long Call or Put
        • Covered Calls
        • Short Naked Put: Only if covered by cash
        • Call Spread: Only European-style cash-settled
        • Put Spread: Only European-style cash-settled
        • Long Butterfly: Only European-style cash settled
        • Iron Condor: Only European-style cash settled
        • Long Call and Puts
      • Information on option levels can be found here.
      "multiCurrency": true,
      NameTypeDescription
      multicurrencytrue
      false
      Indicate if this account is multi-currency capable.
      • By default, all accounts have access to currency conversion (eg. Multiple Currencies).

      Supplemental

      "accountRep": {        
      "repDetails": {                   
      "repId": "potest123",         
      "percentage": 50       
      },
      "repId": "w3test123",         
      "percentage": 50       
      },
      NameTypeDescription
      repIdStringUsername associated with the account rep.
      percentageNumber
      • Designate account representative for the account. The account representative represents user at master level.
      • Multiple representatives can be assigned to a single account. Percentage across all reps must add up to 100.
      • If representative is not user at master level, error will be thrown.
      "migration": false,
      NameTypeDescription
      migrationtrue
      false
      Indicate if account is a migration account.
      • Only applicable for advisors/brokers that are completing bulk migration.
      • Usage of this attribute is available by request only, contact dam@ibkr.com.
      "propertyProfile": "Standard",
      NameTypeDescription
      propertyProfileStringName of property being assigned.
      • Assign property profile to an account.
      • Available by request only. To use this, contact am-api@interactivebrokers.com.
      "sourceAccountId": "ABA123123",
      NameTypeDescription
      sourceAccountIdStringThe account ID associated with individuals account at delivering firm.
      • Only applicable for advisors/brokers that are completing bulk migration.
      • Usage of this attribute is available by request only, contact dam@ibkr.com.

      users

      "users": [{"externalUserId": "MyTestAccount123","externalIndividualId": MyTestAccount123","prefix": "johnd"}
      NameTypeDescription
      externalIndividualIdString; max 64 charactersIdentifier for the individual associated with this user. Required to create the association within the IBKR database.

      This is specified by the counterparty and must be unique for each account. If an externalIndividualId has already been used, you will receive an error. 

      *This can be the same externalId that was specified in the Customer node.
      externalUserIdString; max 64 charactersIdentifier for the individual associated with this user. Required to create the association within the IBKR database.

      This is specified by the counterparty and must be unique for each account. If an externalIndividualId has already been used, you will receive an error. 

      *This can be the same externalId that was specified in the Customer node.
      prefix3-6 lowercase letters.Prefix will be used when creating the user ID. IBKR will assign 3-6 numbers to the end of the prefix.
      If prefix includes the following, you will receive an error:

      • symbols or numeric values
      • Upper case letters
      • Prefix is less than 3 letters or more than 6 letters
      *This should be same prefix entered in the Customer node.
      "mdServices": [
      1473]
      NameTypeDescription
      idStringMarket service ID the user is requesting subscription to.
      • List market data subscriptions which user is requesting based on the id associated with service.
      • The /api/v1/enumerations/market-data?mdStatusNonPro=F can be used to view subscriptions based on id.
      • If mdStatusNonPro=F, this will include subscriptions for Non-Professional.
      • If mdStatusNonPro=T, this will include subscriptions for Professional.
      • Prices for live data will vary based on if professional or non professional.
      • Conditions for Pro vs Non Pro can be found here.

      documents

      Include forms that are required for opening a brokerage account at IBKR. This includes any agreements, disclosures, Tax Form, and supplemental documents such as Proof of ID and Proof of Address documents.

      Required forms will vary based on the account configuration and the account type.

      • NonQI / OWD
        • Tax Form
        • Proof of Identity / Proof of Address if Trulioo is NoMatch.
      • Fully-Disclosed / Advisor
        • Tax Form
        • Proof of Identity / Proof of Address if Trulioo is NoMatch.
        • Customer Type (Individual, Joint, IRA etc.)
        • Capabilities (Margin, Portfolio Margin)
        • Trade Permissions (United States Stocks, United States Options, etc.)
        • IBKR Entity the Account is associated with. (ie. IBLLC-US, IB-CAN, IB-UK, IB-IE etc.)
      NameTypeUsage based on form_noDescription
      fileNameStringAllFile name of the PDF document submitted to IBKR. fileName included within the documents request must match the fileName of the PDF file that is included within the signed request.
      Acceptable formats: .jpeg, .jpg, .pdf, .png
      Max size: 10 MB
      fileLengthStringAllFile length associated with document.
      sha1ChecksumStringAllSHA-1 is crypto algorithm that is used to verify that a file has been unaltered. This is done by producing a checksum before the file has been transmitted, and then again once it reaches its destination.
      formNumberStringAllUse /gw/api/v1/accounts/{accountId}/tasks to view a list of forms that are required for approval.
      execTimestampYYYYMMDDHHMMSSAllTimestamp of the execution of the agreement by the customer (i.e. time the client signed the agreement).
      execLoginTimestampYYYYMMDDHHMMSSAllLogin timestamp for the session (when the client logged in and acknowledged the agreement.
      signedByStringAllsignedBy must match the submitted: name (first + middle initial (if applicable) + last).
      *Data is case and space sensitive. 
      proofOfIdentityTypeAll Entities Except for IB-CAN
      Driver License
      Passport
      Alien ID Card
      National ID Card

      IB-CAN only
      Bank Statement
      Evidence of Ownership of Property
      Credit Card Statement
      Utility Bill
      Brokerage Statement
      T4 Statement
      CRA Assessment 
      8001
      8205
      8053
      8057
      Description of document submitted to salsify proof of identity.
      proofOfAddressTypeBank Statement
      Brokerage Statement
      Homeowner Insurance Policy Bill
      Homeowner Insurance Policy Document
      Renter Insurance Policy bill
      Renter Insurance Policy Document
      Security System Bill
      Government Issued Letters
      Utility Bill
      Current Lease
      Evidence of Ownership of Property
      Driver License
      Other Document
      8002
      8001
      8205
      8053
      8057 
      Description of document submitted to salsify proof of address.
      validAddresstrue
      false
      8001If Driver License is provided as proofOfIdentityType AND validAddress=true, single document can be used to satisfy Proof of Identity and Proof of Address. ]
      externalIndividualIdStringIdentifier at the external entity for the individual executing the agreement. Must be an individual listed on the application. Ignored for INDIVIDUAL applications as agreements must be executed by the Account Holder. Required for JOINT accounts created via ECA for POI/POA submission. For the JOINT holder created via ECA, external id of the account holder needs to be provided for which POI/POA is being submitted.
      expirationDateYYYY-MM-DDDrivers License OR 
      Passport
      Provide expiration date of the ID document.
      mimeTypeapplication/pdf
      application/pdf
      image/png
      image/jpeg (Includes .jpeg, .jpg)
      Format of the file.
      dataStringIncludes document encoded in base64.
      "documents": [
      {
      "signedBy": [
      "Jane M Doe"
      ],
      "attachedFile": {
      "fileName": "Form5002.pdf",
      "fileLength": 119331,
      "sha1Checksum": "06c13ef0c01e831c1b9f0c2c0550812a4c242b3a",
      "payload": {
                               "mimeType": "application/pdf",
                               "data": "<DocumentEncodedInBase64>"         }
      
                         
      },
      "formNumber": 5002,
      "isValidAddress": false,
      "execLoginTimestamp": 20240307114436,
      "execTimestamp": 20240307114436
      },
      {
      "signedBy": [
      "Jane M Doe"
      ],
      "attachedFile": {
      "fileName": "POIandPOA.pdf",
      "fileLength": 170163,
      "sha1Checksum": "76bd4f17da8c8ed0d9ff752b5ffc0a1e38c16bd1"
      },
      "formNumber": 8001,
      "proofOfIdentityType": "Drivers License",
      "isValidAddress": true,
      "execLoginTimestamp": 20240307114436,
      "execTimestamp": 20240307114436
      } ],

      Account Types

      In this section, we review in detail the various account types that are supported. Each account type is designed to meet specific user needs and comes with its own set of features, capabilities, and limitations. Understanding the differences between these account types will help you select the most appropriate option for your requirements and ensure you have access to the functionality you need.

      Please note that account types supported via API are limited compared to account types that are supported by our front end. Account types supported via the API are based on user demand. If there is an account type that you are interested in using and it is not currently supported, please contact your account representative to discuss your needs.

      Supported Customer Types for Registration using the API

      Full IntegrationHybrid
      Individual
      Joint
      Retirement (U.S. and Canada)
      ISA (United Kingdom)
      SMSF (Australia)
      Individual
      Joint
      Retirement (U.S. and Canada)
      ISA (United Kingdom)
      SMSF (Australia)
      Organization (Corporation, LLC, Partnership)
      Trust

      Individual Savings Account for UK Residents

      IBKR provides UK clients with access to tax-advantaged accounts, including Individual Savings Accounts (ISA) and Junior Individual Savings Accounts (JISA). This section provides guidance on implementing ISA and JISA account creation via the API.

      ISA (Individual Savings Account)

      Account Coupling Requirements

      IBKR enforces mandatory account coupling with ISA accounts. When an ISA application is submitted, IBKR automatically creates a General Investment Account (GIA) underneath the IB-UK master.

      Important: Agreements for both GIA and ISA must be included within the documents section of the JSON application submitted to IBKR using the /accounts endpoint.

      ISA Restrictions

      Trading Permissions

      • Stock Only – No other asset types permitted

      Margin Requirements

      • No Margin Trading – Accounts must be configured as CASH

      Identification Requirements

      • Tax Residency: Must be GBR (United Kingdom)
      • National ID: If “issuingCountry":"GBR“, nationalCard is required

      ISA and GIA Coupling Details

      Creation Method

      • ISA can only be created using new origination (submitting application using /accounts endpoint)
      • ISA cannot be added using addAdditionalAcct

      Account Linking

      • ISA and linked GIA will be associated with a single username and password
      • Credentials for the GIA account will be included within the ISASatelliteAccount section of the response file
        • Attribute: satelliteAccountId

      Multiple GIA Scenario

      If a user maintains an existing GIA and requests an ISA:

      • The user will now have two GIA accounts, each with a different username
      • The GIA associated with ISA cannot be linked to the existing GIA
      • Each GIA operates independently with separate credentials

      Account Closure Rules

      • The GIA associated with ISA cannot be closed independently of the ISA
      • To close: Submit closure request for the ISA, and the linked GIA will automatically be closed
      • If a closure request is submitted for the GIA linked to ISA, an error will be thrown

      Registration Tasks Assignment

      Registration tasks are assigned at the applicant level:

      Two Applicants Scenario

      • Applicant 1: ISA with Linked GIA
      • Applicant 2: Independent GIA

      Single Applicant Scenario

      Options include:

      • GIA + Linked GIA (created using addAdditionalAcct)
      • ISA with Linked GIA

      Technical Implementation

      ObjectFDFA
      Account Holder(s)*
      email*YY
      name*
      first, last
      YY
      dateOfBirthYY
      countryOfBirthYY
      numDependentsYY
      maritalStatusYY
      identification 
      ID Document, citizenship
      YY
      mailingAddress
      country*, state, city, street1, postalCode
      YY
      residenceAddress
      country*, state, city, street1, postalCode
      YY
      phones
      number, type- Mobile Required
      YY
      employmentTypeYY
      employmentDetails
      If EMPLOYED or SELFEMPLOYED: employer, occupation, employerBusiness, employerAddress
      YY
      taxResidencies*
      country and tin
      YY
      Tax Form
      w8Ben, w9
      YY
      IBKR Agreements and DisclosuresYY
      Proof of Address and Proof of ID DocumentsY (If Trulioo Verification is NoMatch)Y (If Trulioo Verification is NoMatch)
      Account Information
      financialInformation 
      netWorth, liquidNetWorth, annualNetIncome
      YY
      sourcesOfWealthYY
      investmentExperience yearsTrading, tradesPerYear, knowledgeLevelYY
      regulatoryInformation account holder or immediate family member controller, employee of a publicly traded company or a registered repYY
      accounts*
      baseCurrency, margin
      YY
      tradingPermissions*YY
      investmentObjectivesYY
      advisorWrapFees*NY

      Sample Applications

      {
        "application": {
          "customer": {
            "accountHolder": {
              "accountHolderDetails": [
                {
                  "name": {
                    "first": "Jane",
                    "last": "Doe"
                  },
                  "dateOfBirth": "1995-04-28",
                  "countryOfBirth": "GBR",
                  "maritalStatus": "S",
                  "numDependents": 0,
                  "residenceAddress": {
                    "street1": "1 Tester Lane",
                    "city": "London",
                    "state": "GB-ENG",
                    "country": "GBR",
                    "postalCode": "SW9 9NY"
                  },
                  "phones": [
                    {
                      "type": "Mobile",
                      "number": "+4407584089999",
                      "country": "GBR"
                    }
                  ],
                  "email": "janedoe@tester.com",
                  "identification": {
                    "citizenship": "GBR",
                    "nationalCard": "PA123456D",
                    "issuingCountry": "GBR",
                    "expire": false
                  },
                  "employmentType": "EMPLOYED",
                  "employmentDetails": {
                    "employer": "CHIPOTLE",
                    "occupation": "EXECUTIVE",
                    "employerBusiness": "FOOD AND BEVERAGE",
                    "employerAddress": {
                      "street1": "1 TESTER Square",
                      "city": "London",
                      "state": "GB-ENG",
                      "country": "GBR",
                      "postalCode": "W1G 0PW"
                    }
                  },
                  "taxResidencies": [
                    {
                      "country": "GBR",
                      "tin": "PA123456D",
                      "tinType": "NonUS_NationalId"
                    }
                  ],
                  "w8Ben": {
                    "name": "Jane Doe",
                    "foreignTaxId": "PA141807D",
                    "tinOrExplanationRequired": true,
                    "part29ACountry": "GBR",
                    "cert": true,
                    "blankForm": true,
                    "taxFormFile": "Form5001.pdf",
                    "electronicFormat": true
                  },
                  "externalId": "testapp1234",
                  "sameMailAddress": true,
                  "translated": false
                }
              ],
              "financialInformation": [
                {
                  "investmentExperience": [
                    {
                      "assetClass": "STK",
                      "yearsTrading": 5,
                      "tradesPerYear": 4,
                      "knowledgeLevel": "Extensive"
                    },
                    {
                      "assetClass": "OPT",
                      "yearsTrading": 5,
                      "tradesPerYear": 4,
                      "knowledgeLevel": "Extensive"
                    }
                  ],
                  "sourcesOfWealth": [
                    {
                      "sourceType": "SOW-IND-Income",
                      "percentage": 100,
                      "usedForFunds": true
                    }
                  ],
                  "netWorth": 500000,
                  "liquidNetWorth": 500000,
                  "annualNetIncome": 250000,
                  "translated": false
                }
              ],
              "regulatoryInformation": [
                {
                  "regulatoryDetail": [
                    {
                      "code": "ControlPubTraded",
                      "status": false
                    },
                    {
                      "code": "EmployeePubTrade",
                      "status": false
                    },
                    {
                      "code": "AFFILIATION",
                      "status": false
                    }
                  ],
                  "translated": false
                }
              ]
            },
            "externalId": "testapp1234",
            "type": "INDIVIDUAL",
            "prefix": "nvest",
            "email": "janedoe@tester.com",
            "mdStatusNonPro": true
          },
          "accounts": [
            {
              "investmentObjectives": [
                "Speculation"
              ],
              "tradingPermissions": [
                {
                  "country": "ALL",
                  "product": "STOCKS"
                }
              ],
              "advisorWrapFees": {
                "strategy": "NO_FEE"
              },
              "externalId": "testapp1234",
              "baseCurrency": "GBP",
              "multiCurrency": false,
              "margin": "Cash",
              "ira": true,
              "iraType": "ISA"
            }
          ],
          "users": [
            {
              "externalUserId": "testapp1234",
              "externalIndividualId": "testapp1234",
              "prefix": "nvest"
            }
          ],
          "documents": [
            {
              "signedBy": [
                "Jane Doe"
              ],
              "attachedFile": {
                "fileName": "Form5001.pdf",
                "fileLength": 67700,
                "sha1Checksum": "D8AA699678D12DE6AC468A864D4FAE7999AA904B"
              },
              "formNumber": 5001,
              "validAddress": false,
              "execLoginTimestamp": 1731406668576,
              "execTimestamp": 1731406668576
            },
            {
              "signedBy": [
                "Jane Doe"
              ],
              "attachedFile": {
                "fileName": "Form2109.pdf",
                "fileLength": 15697,
                "sha1Checksum": "BF01D3C5B2B7BC6CA90A4051636051A828FD735F"
              },
              "formNumber": 2109,
              "validAddress": false,
              "execLoginTimestamp": 20240117041717,
              "execTimestamp": 20240117041717
            },
            {
              "signedBy": [
                "Jane Doe"
              ],
              "attachedFile": {
                "fileName": "Form3024.pdf",
                "fileLength": 67600,
                "sha1Checksum": "274FA053D7E4080F0AD429787B9F94ABDF5498D7"
              },
              "formNumber": 3024,
              "validAddress": false,
              "execLoginTimestamp": 20150716015642,
              "execTimestamp": 20150716152843
            },
            {
              "signedBy": [
                "Jane Doe"
              ],
              "attachedFile": {
                "fileName": "Form4319.pdf",
                "fileLength": 472704,
                "sha1Checksum": "485e44e6bc1e969ee1888fbf12bc957d7d41a182"
              },
              "formNumber": 4319,
              "validAddress": false,
              "execLoginTimestamp": 1731406668576,
              "execTimestamp": 1731406668576
            },
            {
              "signedBy": [
                "Jane Doe"
              ],
              "attachedFile": {
                "fileName": "Form4376.pdf",
                "fileLength": 118429,
                "sha1Checksum": "67D8506963789C3A2DA7B68F134D8F3F2515AFBC"
              },
              "formNumber": 4376,
              "validAddress": false,
              "execLoginTimestamp": 1731406668576,
              "execTimestamp": 1731406668576
            },
            {
              "signedBy": [
                "Jane Doe"
              ],
              "attachedFile": {
                "fileName": "Form4547.pdf",
                "fileLength": 409788,
                "sha1Checksum": "C7A601FD4C746EFC8767FCE886B03782A5C89A1C"
              },
              "formNumber": 4547,
              "validAddress": false,
              "execLoginTimestamp": 1731406668576,
              "execTimestamp": 1731406668576
            },
            {
              "signedBy": [
                "Jane Doe"
              ],
              "attachedFile": {
                "fileName": "Form4548.pdf",
                "fileLength": 416100,
                "sha1Checksum": "5FFF4BFEDD2F75A63EF493BB9F6ADEA63EBAF2A6"
              },
              "formNumber": 4548,
              "validAddress": false,
              "execLoginTimestamp": 1731406668576,
              "execTimestamp": 1731406668576
            }
          ],
          "translation": false
        }
      }
      
      {
        "application": {
          "customer": {
            "accountHolder": {
              "accountHolderDetails": [
                {
                  "name": {
                    "first": "Jane",
                    "last": "Doe"
                  },
                  "dateOfBirth": "1995-04-28",
                  "countryOfBirth": "GBR",
                  "maritalStatus": "S",
                  "numDependents": 0,
                  "residenceAddress": {
                    "street1": "1 Tester Lane",
                    "city": "London",
                    "state": "GB-ENG",
                    "country": "GBR",
                    "postalCode": "SW9 9NY"
                  },
                  "phones": [
                    {
                      "type": "Mobile",
                      "number": "+4407584089999",
                      "country": "GBR"
                    }
                  ],
                  "email": "janedoe@tester.com",
                  "identification": {
                    "citizenship": "GBR",
                    "nationalCard": "PA123456D",
                    "issuingCountry": "GBR",
                    "expire": false
                  },
                  "employmentType": "EMPLOYED",
                  "employmentDetails": {
                    "employer": "CHIPOTLE",
                    "occupation": "EXECUTIVE",
                    "employerBusiness": "FOOD AND BEVERAGE",
                    "employerAddress": {
                      "street1": "1 TESTER Square",
                      "city": "London",
                      "state": "GB-ENG",
                      "country": "GBR",
                      "postalCode": "W1G 0PW"
                    }
                  },
                  "taxResidencies": [
                    {
                      "country": "GBR",
                      "tin": "PA123456D",
                      "tinType": "NonUS_NationalId"
                    }
                  ],
                  "w8Ben": {
                    "name": "Jane Doe",
                    "foreignTaxId": "PA141807D",
                    "tinOrExplanationRequired": true,
                    "part29ACountry": "GBR",
                    "cert": true,
                    "blankForm": true,
                    "taxFormFile": "Form5001.pdf",
                    "electronicFormat": true
                  },
                  "externalId": "testapp1234",
                  "sameMailAddress": true,
                  "translated": false
                }
              ],
              "financialInformation": [
                {
                  "investmentExperience": [
                    {
                      "assetClass": "STK",
                      "yearsTrading": 5,
                      "tradesPerYear": 4,
                      "knowledgeLevel": "Extensive"
                    },
                    {
                      "assetClass": "OPT",
                      "yearsTrading": 5,
                      "tradesPerYear": 4,
                      "knowledgeLevel": "Extensive"
                    }
                  ],
                  "sourcesOfWealth": [
                    {
                      "sourceType": "SOW-IND-Income",
                      "percentage": 100,
                      "usedForFunds": true
                    }
                  ],
                  "netWorth": 500000,
                  "liquidNetWorth": 500000,
                  "annualNetIncome": 250000,
                  "translated": false
                }
              ],
              "regulatoryInformation": [
                {
                  "regulatoryDetail": [
                    {
                      "code": "ControlPubTraded",
                      "status": false
                    },
                    {
                      "code": "EmployeePubTrade",
                      "status": false
                    },
                    {
                      "code": "AFFILIATION",
                      "status": false
                    }
                  ],
                  "translated": false
                }
              ]
            },
            "externalId": "testapp1234",
            "type": "INDIVIDUAL",
            "prefix": "nvest",
            "email": "janedoe@tester.com",
            "mdStatusNonPro": true
          },
          "accounts": [
            {
              "investmentObjectives": [
                "Speculation"
              ],
              "tradingPermissions": [
                {
                  "country": "ALL",
                  "product": "STOCKS"
                }
              ],
              "advisorWrapFees": {
                "strategy": "NO_FEE"
              },
              "externalId": "testapp1234",
              "baseCurrency": "GBP",
              "multiCurrency": false,
              "margin": "Cash",
              "ira": true,
              "iraType": "ISA"
            }
          ],
          "users": [
            {
              "externalUserId": "testapp1234",
              "externalIndividualId": "testapp1234",
              "prefix": "nvest"
            }
          ],
          "translation": false
        }
      }
      

      JISA (Junior Individual Savings Account)

      Unlike ISA, JISA does not enforce account coupling with a GIA. However, JISA applications require two sets of contact information:

      1. Account Holder Details

      • The accountHolderDetails section reflects the Junior Contact (minor) who owns the account

      2. Registered Contact

      • The associatedIndividual section contains information about the individual overseeing or managing the account (parent/guardian)

      Technical Implementation

      ObjectFDFA
      Junior Contact InformationYY
      name*
      first, last
      YY
      residenceAddress
      country*, state, city, street1, postalCode
      YY
      mailingAddress
      country*, state, city, street1, postalCode
      YY
      dateOfBirthYY
      countryOfBirthYY
      identification 
      ID Document, citizenship
      YY
      taxResidencies*
      country and tin
      YY
      sourcesOfWealthYY
      Tax Form
      w8Ben
      Registered Contact
      email*YY
      name*
      first, last
      YY
      dateOfBirthYY
      countryOfBirthYY
      mailingAddress
      country*, state, city, street1, postalCode
      YY
      residenceAddress
      country*, state, city, street1, postalCode
      YY
      identification 
      ID Document, citizenship
      phones
      number, type- Mobile Required
      YY
      employmentTypeYY
      employmentDetails
      If EMPLOYED or SELFEMPLOYED: employer, occupation, employerBusiness, employerAddress
      YY
      IBKR Agreements and DisclosuresYY
      Proof of Address and Proof of ID DocumentsY (If Trulioo Verification is NoMatch)Y (If Trulioo Verification is NoMatch)
      Account Information
      financialInformation 
      netWorth, liquidNetWorth, annualNetIncome
      YY
      investmentExperience yearsTrading, tradesPerYear, knowledgeLevelYY
      regulatoryInformation account holder or immediate family member controller, employee of a publicly traded company or a registered repYY
      accounts*
      baseCurrency, margin
      YY
      tradingPermissions*YY
      investmentObjectivesYY
      advisorWrapFees*YY
      title
      code
      YY

      Sample Applications

      {
        "application": {
          "customer": {
            "accountHolder": {
              "accountHolderDetails": [
                {
                  "name": {
                    "first": "Junior",
                    "last": "Contact"
                  },
                  "dateOfBirth": "2022-12-20",
                  "countryOfBirth": "GBR",
                  "residenceAddress": {
                    "street1": "24 TESTER LANE",
                    "city": "LONDON",
                    "state": "GB-LND",
                    "country": "GB",
                    "postalCode": "BR2 9FR"
                  },
                  "identification": {
                    "citizenship": "GBR",
                    "nationalCard": "NB123456C",
                    "issuingCountry": "GBR",
                    "expire": false
                  },
                  "taxResidencies": [
                    {
                      "country": "GBR",
                      "tin": "NB123456C",
                      "tinType": "NonUS_NationalId"
                    }
                  ],
                  "w8Ben": {
                    "localTaxForms": [
                      {
                        "taxAuthority": "CANADA_TA",
                        "qualified": true,
                        "treatyCountry": "GBR"
                      },
                      {
                        "taxAuthority": "AUSTRALIA_TA",
                        "qualified": true,
                        "treatyCountry": "GBR"
                      }
                    ],
                    "name": "Junior Contact",
                    "foreignTaxId": "NB400056C",
                    "tinOrExplanationRequired": true,
                    "part29ACountry": "GBR",
                    "cert": true,
                    "signatureType": "Electronic",
                    "blankForm": true,
                    "taxFormFile": "Form5001.pdf",
                    "electronicFormat": true
                  },
                  "externalId": "tester123",
                  "sameMailAddress": false,
                  "titles": [
                    {
                      "code": "Account Holder"
                    }
                  ],
                  "authorizedPerson": false
                }
              ],
              "associatedIndividual": {
                "name": {
                  "first": "Registered",
                  "last": "Contact"
                },
                "dateOfBirth": "1963-12-20",
                "countryOfBirth": "GBR",
                "residenceAddress": {
                  "street1": "24 TESTER LANE",
                  "city": "LONDON",
                  "state": "GB-LND",
                  "country": "GB",
                  "postalCode": "BR2 9FR"
                },
                "phones": [
                  {
                    "type": "Mobile",
                    "number": "447483849999",
                    "country": "GBR",
                    "verified": false
                  }
                ],
                "email": "DAM41832012@aol.com",
                "identification": {
                  "citizenship": "GBR",
                  "nationalCard": "NB400056A",
                  "issuingCountry": "GBR",
                  "expire": false
                },
                "employmentType": "EMPLOYED",
                "employmentDetails": {
                  "employer": "Crown Prosecution Service ",
                  "occupation": "Other",
                  "description": "CIVIL",
                  "employerBusiness": "Community/Social Service",
                  "employerAddress": {
                    "country": "GBR"
                  }
                },
                "externalId": "tester123_rc",
                "sameMailAddress": true,
                "titles": [
                  {
                    "code": "Registered Contact"
                  }
                ],
                "authorizedPerson": false
              },
              "financialInformation": [
                {
                  "investmentExperience": [
                    {
                      "assetClass": "STK",
                      "yearsTrading": 11,
                      "tradesPerYear": 27,
                      "knowledgeLevel": "Extensive"
                    }
                  ],
                  "sourcesOfWealth": [
                    {
                      "sourceType": "SOW-IND-Income",
                      "percentage": 10,
                      "usedForFunds": true
                    },
                    {
                      "sourceType": "SOW-IND-Pension",
                      "percentage": 90,
                      "usedForFunds": true
                    }
                  ],
                  "netWorth": 375000,
                  "liquidNetWorth": 70000,
                  "annualNetIncome": 41600,
                  "translated": false
                }
              ],
              "regulatoryInformation": [
                {
                  "regulatoryDetail": [
                    {
                      "code": "EmployeePubTrade",
                      "status": false
                    },
                    {
                      "code": "ControlPubTraded",
                      "status": false
                    },
                    {
                      "code": "AFFILIATION",
                      "status": false
                    }
                  ],
                  "translated": false
                }
              ]
            },
            "externalId": "tester123",
            "type": "INDIVIDUAL",
            "prefix": "skm",
            "email": "DAM41832012@aol.com",
            "mdStatusNonPro": false
          },
          "accounts": [
            {
              "investmentObjectives": [
                "Growth"
              ],
              "tradingPermissions": [
                {
                  "exchangeGroup": "US-SEC"
                },
                {
                  "exchangeGroup": "EURONEXT-FUND"
                }
              ],
              "externalId": "tester123",
              "baseCurrency": "GBP",
              "multiCurrency": true,
              "margin": "Cash",
              "ira": true,
              "iraType": "JISA",
              "drip": false
            }
          ],
          "users": [
            {
              "externalUserId": "tester123",
              "externalIndividualId": "tester123",
              "prefix": "skm"
            }
          ],
          "documents": [
            {
              "signedBy": [
                "Registered Contact"
              ],
              "attachedFile": {
                "fileName": "Form5001.pdf",
                "fileLength": 67700,
                "sha1Checksum": "d8aa699678d12de6ac468a864d4fae7999aa904b"
              },
              "formNumber": 5001,
              "validAddress": false,
              "execLoginTimestamp": 20250511201657
            },
            {
              "signedBy": [
                "Registered Contact"
              ],
              "attachedFile": {
                "fileName": "Form3083.pdf",
                "fileLength": 557790,
                "sha1Checksum": "9C79DB3DF0925D126541817F2BBC7418BBD3EC4E"
              },
              "formNumber": 3083,
              "validAddress": false,
              "execLoginTimestamp": 20250511201657
            },
            {
              "signedBy": [
                "Registered Contact"
              ],
              "attachedFile": {
                "fileName": "Form4070.pdf",
                "fileLength": 27117,
                "sha1Checksum": "3BF982D0D81F0F6B1BBD37E9789EE6585F46F8DC"
              },
              "formNumber": 4070,
              "validAddress": false,
              "execLoginTimestamp": 20250511201657
            },
            {
              "signedBy": [
                "Registered Contact"
              ],
              "attachedFile": {
                "fileName": "Form9130.pdf",
                "fileLength": 252630,
                "sha1Checksum": "3F6E0751854D0BB7717AB4E954D97EDF31FEE6EA"
              },
              "formNumber": 9130,
              "validAddress": false,
              "execLoginTimestamp": 20250511201657
            }
          ],
          "translation": false
        }
      }
      
      {
        "application": {
          "customer": {
            "accountHolder": {
              "accountHolderDetails": [
                {
                  "name": {
                    "first": "Junior",
                    "last": "Contact"
                  },
                  "dateOfBirth": "2022-12-20",
                  "countryOfBirth": "GBR",
                  "residenceAddress": {
                    "street1": "24 TESTER LANE",
                    "city": "LONDON",
                    "state": "GB-LND",
                    "country": "GB",
                    "postalCode": "BR2 9FR"
                  },
                  "identification": {
                    "citizenship": "GBR",
                    "nationalCard": "NB123456C",
                    "issuingCountry": "GBR",
                    "expire": false
                  },
                  "taxResidencies": [
                    {
                      "country": "GBR",
                      "tin": "NB123456C",
                      "tinType": "NonUS_NationalId"
                    }
                  ],
                  "w8Ben": {
                    "localTaxForms": [
                      {
                        "taxAuthority": "CANADA_TA",
                        "qualified": true,
                        "treatyCountry": "GBR"
                      },
                      {
                        "taxAuthority": "AUSTRALIA_TA",
                        "qualified": true,
                        "treatyCountry": "GBR"
                      }
                    ],
                    "name": "Junior Contact",
                    "foreignTaxId": "NB400056C",
                    "tinOrExplanationRequired": true,
                    "part29ACountry": "GBR",
                    "cert": true,
                    "signatureType": "Electronic",
                    "blankForm": true,
                    "taxFormFile": "Form5001.pdf",
                    "electronicFormat": true
                  },
                  "externalId": "tester123",
                  "sameMailAddress": false,
                  "titles": [
                    {
                      "code": "Account Holder"
                    }
                  ],
                  "authorizedPerson": false
                }
              ],
              "associatedIndividual": {
                "name": {
                  "first": "Registered",
                  "last": "Contact"
                },
                "dateOfBirth": "1963-12-20",
                "countryOfBirth": "GBR",
                "residenceAddress": {
                  "street1": "24 TESTER LANE",
                  "city": "LONDON",
                  "state": "GB-LND",
                  "country": "GB",
                  "postalCode": "BR2 9FR"
                },
                "phones": [
                  {
                    "type": "Mobile",
                    "number": "447483849999",
                    "country": "GBR",
                    "verified": false
                  }
                ],
                "email": "DAM41832012@aol.com",
                "identification": {
                  "citizenship": "GBR",
                  "nationalCard": "NB400056A",
                  "issuingCountry": "GBR",
                  "expire": false
                },
                "employmentType": "EMPLOYED",
                "employmentDetails": {
                  "employer": "Crown Prosecution Service ",
                  "occupation": "Other",
                  "description": "CIVIL",
                  "employerBusiness": "Community/Social Service",
                  "employerAddress": {
                    "country": "GBR"
                  }
                },
                "externalId": "tester123_rc",
                "sameMailAddress": true,
                "titles": [
                  {
                    "code": "Registered Contact"
                  }
                ],
                "authorizedPerson": false
              },
              "financialInformation": [
                {
                  "investmentExperience": [
                    {
                      "assetClass": "STK",
                      "yearsTrading": 11,
                      "tradesPerYear": 27,
                      "knowledgeLevel": "Extensive"
                    }
                  ],
                  "sourcesOfWealth": [
                    {
                      "sourceType": "SOW-IND-Income",
                      "percentage": 10,
                      "usedForFunds": true
                    },
                    {
                      "sourceType": "SOW-IND-Pension",
                      "percentage": 90,
                      "usedForFunds": true
                    }
                  ],
                  "netWorth": 375000,
                  "liquidNetWorth": 70000,
                  "annualNetIncome": 41600,
                  "translated": false
                }
              ],
              "regulatoryInformation": [
                {
                  "regulatoryDetail": [
                    {
                      "code": "EmployeePubTrade",
                      "status": false
                    },
                    {
                      "code": "ControlPubTraded",
                      "status": false
                    },
                    {
                      "code": "AFFILIATION",
                      "status": false
                    }
                  ],
                  "translated": false
                }
              ]
            },
            "externalId": "tester123",
            "type": "INDIVIDUAL",
            "prefix": "skm",
            "email": "DAM41832012@aol.com",
            "mdStatusNonPro": false
          },
          "accounts": [
            {
              "investmentObjectives": [
                "Growth"
              ],
              "tradingPermissions": [
                {
                  "exchangeGroup": "US-SEC"
                },
                {
                  "exchangeGroup": "EURONEXT-FUND"
                }
              ],
              "externalId": "tester123",
              "baseCurrency": "GBP",
              "multiCurrency": true,
              "margin": "Cash",
              "ira": true,
              "iraType": "JISA",
              "drip": false
            }
          ],
          "users": [
            {
              "externalUserId": "tester123",
              "externalIndividualId": "tester123",
              "prefix": "skm"
            }
          ],
             "translation": false
        }
      }

      Resources

      In this section, you will find resources to help you get started with the API. We’ve assembled everything you need to begin integrating with our API quickly and efficiently.

      Postman Collection

      Get hands-on experience with our API endpoints immediately using our pre-configured Postman collection. This collection includes:

      • Ready-to-use API requests
      • Pre-set authentication parameters
      • Example payloads for each endpoint
      • Environment variables for easy configuration

      Developer Tool Kit

      • Authentication and authorization methods
      • Common integration patterns

      Sample Applications

      • Endpoint documentation with request/response examples

      Sample Responses

      • Error handling best practices

      Postman

      To effectively explore and understand our API endpoints, we recommend using Postman. This industry-standard tool will help you visualize requests and responses, making your development process more efficient.

      Download our prepared resources to get started quickly:

      Setup Instructions

      1. Install Postman

      Download and install the latest version of Postman for your operating system.

      2. Import Resources

      Import our collection and environment files into your Postman workspace:

      • Open Postman
      • Click “Import” in the upper left corner
      • Upload the downloaded collection and environment files

      3. Configure Environment Variables

      For the API to function properly, update the following essential variables in your selected environment:

      VariableDescriptionYour Value
      clientPrivateKeyYour Private RSA Key[Your private key]
      clientPublicKeyYour Public RSA Key[Your public key]
      clientIdYour Client ID[Your client ID]

      Important Note

      API Credentials Required: The collection and environment will only work with valid API credentials. If you don’t have credentials yet, please contact our support team at am-api@interactivebrokers.com.

      Next Steps

      Once configured, you can explore all available endpoints, test requests, and examine responses to better understand our API functionality.

      Developer Tool Kit

      This section provides comprehensive information on how to integrate with our Account Management API and a developer toolkit to get you up and running quickly.

      Prerequisites

      • An API credential (contact our support team at am-api@interactivebrokers.com to obtain one)
      • Basic knowledge of REST API
      • A development environment capable of making HTTP requests

      The access token is required to access IBKR Web API. Request an access token using [POST]/api/v1/token. These tokens contain a scope parameter which describes what you are allowed to do with a given access token.

      For this exercise, we need the following scopes:

      • accounts.read: View Brokerage Account information
      • accounts.write: Create Brokerage Account
      • bank-instructions.write: Add Banking Instructions
      • transfers.write: Transfer Funds
      • statements.read: View Client Statement
      • instructions.read: View Fund Transfer
      • sso-browser-sessions.write: Create SSO session to IBKR Portal.
      • sso.sessions.write: Placing Trades
      {
        "url": "https://api.ibkr.com/oauth2/api/v1/token",
        "method": "POST",
        "timeout": 0,
        "headers": {
          "Content-Type": "application/x-www-form-urlencoded",
          "Cookie": "x-sess-uuid=0.46eb7068.1753288804.ce36eee"
        },
        "data": {
          "client_assertion_type": "{{clientAssertionType}}",
          "client_assertion": "{{clientAssertion}}",
          "grant_type": "client_credentials",
          "scope": "accounts.read accounts.write bank-instructions.read bank-instructions.write clients.read clients.write echo.read echo.write fee-templates.read fee-templates.write instructions.read instructions.write statements.read transfers.read transfers.write sso-sessions.write sso-browser-sessions.write enumerations.read"
        }
      }

      To establish a brokerage account for the client within the IBKR platform, submit client data to IBKR using [POST] gw/api/v1/accounts. The required data points for the request will vary based on the account type and customer type.

      Authentication & Processing

      IBKR authenticates the provided access token to verify server authorization before proceeding with the account creation request. The system typically processes the request and delivers a response within 30 seconds, though in some instances this may extend to 120 seconds.

      Response Interpretation

      Upon completion, IBKR returns a structured response that will indicate either a successful account creation or an error requiring attention.

      Successful Creation

      When account creation is successful, the response will contain:

      • IBKR Credential user
      • IBKR Account Number accounts.value
      • Password (if enabled) password
      • Pending Registration Tasks Required For Approval pendingTasks
        • If present: Account will not be approved/opened until tasks are complete.

      Note: The hosting firm is responsible for securely communicating these credentials to the account holder.

      Error Resolution

      If an error occurs, the account will not be established. The hosting firm must:

      1. Review the error details
      2. Make necessary corrections based on the Error Library documentation
      3. Resubmit the request

      Check state of the applications to see if any action is needed. Only accounts with an Open state are available for trading. TIP: Addressing all requirements promptly will help expedite your account activation. Regularly monitor your application status to ensure timely completion of the account opening process.

      [GET] /gw/api/v1/accounts/{accountId}/status

      • Incomplete Application = Connect user to IBKR Portal using Single Sign On to complete online registration journey.
      • Documents Required = Action Needed
      • Under Review with IBKR = Application is PENDING on IBKR, no action needed.
      • Pending Approval = Account is in the approval queue and should be opened by the following business day.
      • Open = Account is opened and there are no pending tasks assigned to the account.

      Task Requirements for Account Approval

      Tasks fall into two categories:

      • Required tasks ("isRequiredForApproval": true) – Must be completed for account approval
      • Optional tasks ("isRequiredForApproval": false) – Not necessary for account approval

      Completing Tasks

      Option 1: API Method

      • Use the PATCH endpoint: /api/v1/accounts/
      • Limitation: Only supports select tasks.
      • Best for programmatic completion of supported tasks

      Option 2: IBKR Portal via Single Sign On

      • Redirect users to complete tasks directly in the IBKR Portal using Single Sign On
      • Advantage: Supports all possible tasks; no development as the interface is hosted by IBKR.

      Recommended Implementation

      1. First attempt to complete tasks via API (Option 1)
      2. If any required tasks are not supported via API, fall back to the IBKR Portal (Option 2)
      3. Always have Option 2 available as a fallback mechanism for unsupported tasks

      This approach provides the most seamless experience while ensuring all required tasks can be completed.

      Once your account has been successfully opened, you can proceed with account funding. The specific funding mechanism will depend on your customer type.

      Non-Disclosed Clients

      For Non-Disclosed clients, all funds must be processed through the Non-Disclosed master account:

      • Funding is initiated by an internal transfer of cash or positions from the Non-Disclosed master account to the Non-Disclosed sub-account

      Direct Clients

      For Direct Clients, including Fully-Disclosed and Advisor, funding is initiated directly at the sub-account level using a cash or position transfer.

      Important: If a transfer method is not supported using the front end, it will not be supported using the API

      1. Request SSO Bearer Token
        • [POST]/api/v1/sso-sessions: Create a Single Sign On (SSO) session to access IBKR’s Trading Web API
        • Returns a JSON object containing a reference to the newly created SSO session (including an SSO Bearer Token).
      2. Initialize Brokerage Session
        • [POST]/iserver/auth/ssodh/init : This is essential in order to use all /iserver trading & market data endpoints.
          • Additional background regarding Trading Web API sessions noted here.
        • Receive Brokerage Accounts (Optional): Receive a list of Brokerage Accounts the user has trading access to, their respective aliases and the currently selectedAccount via [GET]/iserver/accounts.
      3. Place Order
        • [POST]/iserver/account/{accountID}/orders: Available order types include (but are not limited to): MKT, LMT, STP, STP LMT, TRAIL, MOC, LOC, VWAP (IBALGO orders), Bracket, OCA, pre-trade allocation group orders (for Financial Advisors), cashQty orders etc.
      4. Log Out
        • Log the user out of the Trading Web API session using [POST]/logout. Any further activity requires re-authentication. 

      Option 1: Query Account Information using Web API

      Option 2: Generate Statements using Web API [POST]/api/v1/statements

      • Generates PDF statements for specified date range
      • Maximum range: 365 days per request

      Option 3: Start of Day and End of Day Files

      Implementing comprehensive account maintenance capabilities is essential for effective post-approval client management. 

      Profile Changes

      • changeAccountHolderDetail: Updating client account information, ensuring data accuracy and compliance with KYC requirements.
      • updateCredentials: Allows secure updating of email addresses associated with accounts, supporting proper client communications and security protocols.
      • updateTaxForm: Facilitates timely updates to tax forms associated with accounts, ensuring accurate tax reporting and compliance with tax authorities.
      • completeLoginMessages: Allows users to address pending tasks assigned to the account post approval including acknowledgement or changes to existing IBKR agreements and Disclosures.
      • changeFinancialInformation: Allows updates to client financial profile including objectives, experience and sources of wealth.
      • changeBaseCurrency: Supports international clients and those with changing currency needs.

      Account Capabilities

      • Trading Permissions
        • addTradingPermissions: Enables clients to access additional products and markets post account approval as their needs evolve. This capability allows for appropriate risk management through controlled access to trading features.
        • removeTradingPermissions: Removal of trading capabilities when needed, supporting both client-requested changes and compliance-driven restrictions.
      • Dividend Reinvestment (DRIP)
        • enrollInDRIP: Enables participation in Dividend Reinvestment Plans, supporting long-term investment strategies and account growth. This capability promotes passive wealth accumulation and client retention.
        • leaveDRIP: Provides flexibility to exit dividend reinvestment programs when client needs or strategies change, supporting client autonomy and account management flexibility.
      • Stock Yield Enhancement Program
        • enrollInSYEP: Allows clients to participate in Stock Yield Enhancement Programs, creating opportunities for additional income through securities lending. This capability supports portfolio optimization and income generation strategies.
        • leaveSYEP: Provides clients with the flexibility to exit Stock Yield Enhancement Programs when their investment strategy changes or when they wish to regain full control over their securities. This supports client autonomy and risk management preferences.

      The access token is required to access IBKR Web API. Request an access token using [POST]/api/v1/token. These tokens contain a scope parameter which describes what you are allowed to do with a given access token.

      For this exercise, we need the following scopes:

      • bank-instructions.write: Add Banking Instructions
      • transfers.write: Transfer Funds
      • instructions.read: View Fund Transfer
      {
        "url": "https://api.ibkr.com/oauth2/api/v1/token",
        "method": "POST",
        "timeout": 0,
        "headers": {
          "Content-Type": "application/x-www-form-urlencoded",
          "Cookie": "x-sess-uuid=0.46eb7068.1753288804.ce36eee"
        },
        "data": {
          "client_assertion_type": "{{clientAssertionType}}",
          "client_assertion": "{{clientAssertion}}",
          "grant_type": "client_credentials",
          "scope": "accounts.read accounts.write bank-instructions.read bank-instructions.write clients.read clients.write echo.read echo.write fee-templates.read fee-templates.write instructions.read instructions.write statements.read transfers.read transfers.write sso-sessions.write sso-browser-sessions.write enumerations.read"
        }
      }

      Verify that banking instructions exist for the specified account before allowing fund transfer.

      1. Verify Active Banking Instructions for the account: The /gw/api/v1/bank-instructions/query endpoint can be used to view list of saved banking instructions on file by accountId and bankInstructionMethod. The response will return the corresponding bankInstructionName and, bankRoutingNumbercurrency last 4 digits of the bankAccountNumber (if applicable).
        • If instruction is returned, offer user option to use existing instruction
        • If no instruction is returned OR user does not want to use instruction on file, Hosting firm will instruct user they need to add instructions to process request.
      2. Add Banking Instructions
        • ACH: The /gw/api/v1/bank-instructions endpoint can be used to add banking instructions to an existing IBKR brokerage account. Only available to U.S. residents with linked bank account.
        • Additional payment types and currencies including Open Banking, Wise, Bill Pay, EFT, etc. will need to be added using the IBKR hosted interface. Seamlessly integrate these options into your platform by leveraging our Single Sign-On (SSO) functionality with IFRAME embedding, allowing IBKR funding screens to display natively within your application interface.

      The /gw/api/v1/external-cash-transfers/query can be used to view the available cash for withdrawal with and without margin loan based on an accountId AND currency. For non-disclosed clients, this endpoint will return available cash to transfer between master and sub account.

      Response will return following values:

      • withdrawableAmount: Cash Amount available for withdrawal (assuming margin loan). Only applicable for Fully-Disclosed and Advisor Clients.
      • withdrawableAmountNoBorrow: Cash Amount available for withdrawal (without margin loan). Only applicable for Fully-Disclosed and Advisor Clients.
      • allowedTransferAmountToMaster: Allowed Transfer Amount to Master assuming margin loan. Only applicable for Non-Disclosed Clients.
      • allowedTransferAmountToMasterNoBorrow: Allowed Transfer Amount(no_borrow) to Master. Only applicable for Non-Disclosed Clients.
      • withdrawableBalanceWithoutOriginHold: The amount available for withdrawal without origination hold.

      The /gw/api/v1/external-cash-transfers can be used to manage cash transfers between external bank account and the IBKR brokerage account. Transfer details including method (ACH and WIRE), transaction type (DEPOSIT or WITHDRAWAL), currency, and amount will be defined within the body of the request.

      POST /gw/api/v1/external-cash-transfers
      {
        "instructionType": "DEPOSIT",
        "instruction": {
          "clientInstructionId": 7013045,
          "accountId": "U46377",
          "currency": "GBP",
          "amount": 100,
          "bankInstructionMethod": "ACH",
          "bankInstructionName": "British Bank",
        }
      }
      POST /gw/api/v1/external-cash-transfers
      {
        "instructionType": "DEPOSIT",
        "instruction": {
          "clientInstructionId": 7013045,
          "accountId": "U46377",
          "currency": "USD",
          "amount": 100,
          "bankInstructionMethod": "ACH",
          "bankInstructionName": "My Checking Account",
        }
      }
      POST /gw/api/v1/external-cash-transfers
      {
        "instructionType": "WITHDRAWAL",
        "instruction": {
          "clientInstructionId": 7013045,
          "accountId": "U46377",
          "currency": "USD",
          "amount": 100,
          "bankInstructionMethod": "WIRE",
          "bankInstructionName": "CHASE Bank",
        }
      }

      Test Cases

      • General
        • meetAmlStandard is set to false
        • mdStatusNonPro is set to false
        • prefix is set to teste
        • Invalid baseCurrency is provided (Eg. USDD)
        • externalId has already been processed
      • name
        • Name includes special characters, numbers, or white spaces
        • Single letter provided for last name
        • First name is null
      • dateOfBirth
        • Applicant is less than 18 years old
      • countryOfBirth
        • Country of Birth is a prohibited country (eg. AFG)
        • Country of Birth is United States (eg. USA)
      • residenceAddress
        • Country of Residence is a prohibited country (eg. AFG)
        • Country of Residence is United States (eg. USA)
        • Country of Residence is different from Tax Residency Country and part29aCountry for W8Ben
        • State provided as full state name versus the ISO code
        • street1 exceeds 200 characters
        • Postal code is null
      • email
        • Email address is null
        • Email address is same as the master account
        • Invalid email provided (eg. tester@gmail)
      • identification
        • Country of Citizenship is a prohibited country (eg. AFG)
        • Country of Citizenship is United States (eg. USA)
        • Invalid ID Type is provided
        • expire is set to true AND expirationDate is missing
        • expirationDate is past date
        • ID Type and ID document is missing
        • SSN is provided and issuingCountry is not United States
      • employmentType and employmentDetails
        • employmentType is null
        • employmentType is EMPLOYED and
          • employmentDetails is missing
          • occupation and/or employerBusiness is null
          • occupation and/or employerBusiness = ‘Other’
          • employerAddress is missing
          • State provided as full state name versus the ISO code
          • street1 exceeds 200 characters
          • Postal code is null
          • country of employment is different from country of residence
          • occupation/employerBusiness is not an IBKR enumeration value
      • taxResidencies
        • tax residency country AND part29ACountry are different
        • TIN and w8Ben.foreignTaxId are different
        • TIN AND w8Ben.explanation are provided
        • SSN is provided as TINType and country is not United States
      • w8Ben
        • blankForm is set to FALSE AND sha1Checksum reflects sha1Checksum of a blank form.
        • part29ACountry is N/A AND explanation is missing
        • part29ACountry is null
        • name is different from the name.first  + name.middle +  name.Last
      • financialInformation
        • liquidNetWorth is greater than netWorth
        • netWorth, liquidNetWorth, annualNetIncome is between 101 to 999
        • netWorth, liquidNetWorth, annualNetIncome is a negative value
        • netWorth, liquidNetWorth, annualNetIncome is null
      • regulatoryDetail
        • status is set to true AND details is missing
        • ControlPubTraded and/or EmployeePubTrade are missing
      • documents
        • signedBy does not match name.first + name.middleInitial + name.last
        • signedBy is missing
        • sha1checksum does not match sha1checksum of the form provided
        • formNumber is 8001 AND proofOfIdentityType is missing

      Sample Applications

      Individual

      {
        "application": {
          "customer": {
            "accountHolder": {
              "accountHolderDetails": [
                {
                  "name": {
                    "salutation": "Mr.",
                    "first": "John",
                    "last": "Does",
                    "middle": "F"
                  },
                  "dateOfBirth": "1990-01-25",
                  "countryOfBirth": "USA",
                  "maritalStatus": "M",
                  "numDependents": 0,
                  "residenceAddress": {
                    "street1": "1 Tester Street",
                    "city": "Test City",
                    "state": "CT",
                    "country": "United States",
                    "postalCode": "85755"
                  },
                  "phones": [
                    {
                      "type": "Mobile",
                      "number": "2034228988",
                      "country": "United States",
                      "verified": false
                    }
                  ],
                  "email": "test@gmail.com.com",
                  "identification": {
                    "citizenship": "United States",
                    "ssn": "11223399",
                    "issuingCountry": "USA",
                    "legalResidenceCountry": "USA",
                    "legalResidenceState": "AZ",
                    "expire": false
                  },
                  "employmentType": "EMPLOYED",
                  "employmentDetails": {
                    "employer": "Test Employer Name Here",
                    "occupation": "Analyst",
                    "employerBusiness": "Computer/Information Technology",
                    "employerAddress": {
                      "street1": "22 Tester Road",
                      "city": "Test City",
                      "state": "CT",
                      "country": "USA",
                      "postalCode": "93929"
                    }
                  },
                  "taxResidencies": [
                    {
                      "country": "United States",
                      "tin": "11223399",
                      "tinType": "SSN"
                    }
                  ],
                  "w9": {
                    "name": "John F Does",
                    "customerType": "Individual",
                    "tin": "11223399",
                    "tinType": "SSN",
                    "cert1": true,
                    "cert2": true,
                    "cert3": true,
                    "cert4": true,
                    "signatureType": "Electronic",
                    "blankForm": true,
                    "taxFormFile": "Form5002.pdf",
                    "proprietaryFormNumber": 5002
                  },
                  "externalId": "testexternalId1234AH",
                  "sameMailAddress": true,
                  "ownershipPercentage": 100,
                  "titles": [
                    {
                      "code": "Account Holder"
                    }
                  ],
                  "authorizedPerson": false
                }
              ],
              "financialInformation": [
                {
                  "investmentExperience": [
                    {
                      "assetClass": "BOND",
                      "yearsTrading": 0,
                      "tradesPerYear": 0,
                      "knowledgeLevel": "Limited"
                    },
                    {
                      "assetClass": "FUND",
                      "yearsTrading": 4,
                      "tradesPerYear": 5,
                      "knowledgeLevel": "Good"
                    },
                    {
                      "assetClass": "OPT",
                      "yearsTrading": 0,
                      "tradesPerYear": 0,
                      "knowledgeLevel": "None"
                    },
                    {
                      "assetClass": "STK",
                      "yearsTrading": 7,
                      "tradesPerYear": 5,
                      "knowledgeLevel": "Good"
                    }
                  ],
                  "sourcesOfWealth": [
                    {
                      "sourceType": "SOW-IND-Income",
                      "percentage": 100,
                      "usedForFunds": true
                    }
                  ],
                  "netWorth": 750000,
                  "liquidNetWorth": 375000,
                  "annualNetIncome": 75000,
                  "translated": false
                }
              ],
              "regulatoryInformation": [
                {
                  "regulatoryDetail": [
                    {
                      "code": "ControlPubTraded",
                      "status": false
                    },
                    {
                      "code": "EmployeePubTrade",
                      "status": false
                    },
                    {
                      "code": "AFFILIATION",
                      "status": false
                    }
                  ],
                  "translated": false
                }
              ]
            },
            "externalId": "testexternalId1234",
            "type": "INDIVIDUAL",
            "prefix": "tess",
            "email": "test@gmail.com.com",
            "mdStatusNonPro": false
          },
          "accounts": [
            {
              "investmentObjectives": [
                "Growth",
                "Trading",
                "Hedging"
              ],
              "tradingPermissions": [
                {
                  "country": "UNITED STATES",
                  "product": "OPTIONS"
                },
                {
                  "country": "UNITED STATES",
                  "product": "STOCKS"
                },
                {
                  "country": "UNITED STATES",
                  "product": "MUTUAL FUNDS"
                },
                {
                  "country": "UNITED STATES",
                  "product": "BONDS"
                }
              ],
              "advisorWrapFees": {
                "strategy": "NO_FEE",
                "chargeAdvisor": false,
                "chargeOtherFeesToAdvisor": false
              },
              "externalId": "testexternalId1234",
              "baseCurrency": "USD",
              "multiCurrency": true,
              "margin": "RegT",
              "stockYieldProgram": true,
              "drip": false
            }
          ],
          "users": [
            {
              "externalUserId": "testexternalId1234USR",
              "externalIndividualId": "testexternalId1234AH",
              "prefix": "tess"
            }
          ],
          "documents": [
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form5002.pdf",
                "fileLength": 119331,
                "sha1Checksum": "06c13ef0c01e831c1b9f0c2c0550812a4c242b3a"
              },
              "formNumber": 5002,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436,
         	"payload": {
                "mimeType": "application/pdf",
                "data": pm.collectionVariables.get('form5002')
              }
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form1005.pdf",
                "fileLength": 170163,
                "sha1Checksum": "76bd4f17da8c8ed0d9ff752b5ffc0a1e38c16bd1"
              },
              "formNumber": 1005,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form2109.pdf",
                "fileLength": 15697,
                "sha1Checksum": "bf01d3c5b2b7bc6ca90a4051636051a828fd735f"
              },
              "formNumber": 2109,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form2192.pdf",
                "fileLength": 280855,
                "sha1Checksum": "53b136320042b76d0e589252c637dbd6ec88eef2"
              },
              "formNumber": 2192,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form3024.pdf",
                "fileLength": 407487,
                "sha1Checksum": "e6a7f178e9aae1fdebe469365f24c49fa6ae04cd"
              },
              "formNumber": 3024,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form3044.pdf",
                "fileLength": 564118,
                "sha1Checksum": "ccb239208b4d467ceaf79149274330497af4fb77"
              },
              "formNumber": 3044,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form3070.pdf",
                "fileLength": 58156,
                "sha1Checksum": "97346bbb84c99e367fc66cfdf15c1e597af6d07c"
              },
              "formNumber": 3070,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form3071.pdf",
                "fileLength": 71516,
                "sha1Checksum": "bea92f0a1f38607789ae6a62ff52e452d4c93a55"
              },
              "formNumber": 3071,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form3074.pdf",
                "fileLength": 73340,
                "sha1Checksum": "3ec3e989d28f650bd6db3fab01327d90636acc31"
              },
              "formNumber": 3074,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form3077.pdf",
                "fileLength": 214857,
                "sha1Checksum": "45bcf44bb66f4ef2d33d6bce1a567fd324998de6"
              },
              "formNumber": 3077,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form3094.pdf",
                "fileLength": 216002,
                "sha1Checksum": "7aedd4e80e10ccaf6224bbe77e42f59d82aa1d3f"
              },
              "formNumber": 3094,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form3230.pdf",
                "fileLength": 32483,
                "sha1Checksum": "294716d58d530fcc8da37074341b35f1850e12fa"
              },
              "formNumber": 3230,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form4009.pdf",
                "fileLength": 60572,
                "sha1Checksum": "e5cc3f40464a25125b5095e6e66d0b3ffb65cdf5"
              },
              "formNumber": 4009,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form4016.pdf",
                "fileLength": 39738,
                "sha1Checksum": "352edc6e973041c07b979819aec723d79b5fb6d1"
              },
              "formNumber": 4016,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form4035.pdf",
                "fileLength": 160290,
                "sha1Checksum": "159b6fe0857275100f126a4df441e260ea6bb7f6"
              },
              "formNumber": 4035,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form4036.pdf",
                "fileLength": 221862,
                "sha1Checksum": "6dee3536015318203ba52b63c49519c96874354d"
              },
              "formNumber": 4036,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form6112.pdf",
                "fileLength": 61662,
                "sha1Checksum": "169ce3381a61df47eb5e56a9d5a704714ee62e29"
              },
              "formNumber": 6112,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form6108.pdf",
                "fileLength": 72598,
                "sha1Checksum": "4bc30e9ff855dea9a957099507410a46f0eb6259"
              },
              "formNumber": 6108,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form9130.pdf",
                "fileLength": 163891,
                "sha1Checksum": "6636769fe45ab48908880cf29293bfb77b488767"
              },
              "formNumber": 9130,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form9490.pdf",
                "fileLength": 35089,
                "sha1Checksum": "2510e965d006011d1212f01fdf6fd7441013cd44"
              },
              "formNumber": 9490,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form3076.pdf",
                "fileLength": 159700,
                "sha1Checksum": "3dd9aeb41d4166f6869d60a82af62b9e6b6338ff"
              },
              "formNumber": 3076,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form4003.pdf",
                "fileLength": 93003,
                "sha1Checksum": "34787dd4cfbe2ba879776e6d4b4ed64c385acd91"
              },
              "formNumber": 4003,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form5013.pdf",
                "fileLength": 221029,
                "sha1Checksum": "4d695bbfc4c57fc7f4f639aa941e5aca1d32aa78"
              },
              "formNumber": 5013,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form4059.pdf",
                "fileLength": 89346,
                "sha1Checksum": "c049df38c0eeee83f9a8c0f1126dcadf67cb25d8"
              },
              "formNumber": 4059,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form4060.pdf",
                "fileLength": 111000,
                "sha1Checksum": "0f4a3cffc129fe370e803498c384a12a795bceaf"
              },
              "formNumber": 4060,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form6109.pdf",
                "fileLength": 56646,
                "sha1Checksum": "3bf0373691372865236830ff2e9dffe7600cf5e0"
              },
              "formNumber": 6109,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form3089.pdf",
                "fileLength": 96294,
                "sha1Checksum": "4277e88904d8787339f000eb51566bad50c33076"
              },
              "formNumber": 3089,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form3203.pdf",
                "fileLength": 241316,
                "sha1Checksum": "7793a2d7b990a5a3f6fd2b53f3ee7c1fc0bb359e"
              },
              "formNumber": 3203,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form4024.pdf",
                "fileLength": 413238,
                "sha1Checksum": "0e615e51d2fa872b32373e944d24efc346421870"
              },
              "formNumber": 4024,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form3081.pdf",
                "fileLength": 162236,
                "sha1Checksum": "5c9acb8e87c208df1995f0010781427ebb4f86ad"
              },
              "formNumber": 3081,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form4010.pdf",
                "fileLength": 169702,
                "sha1Checksum": "62cc5de4255b429e54670ccc51672a2ea13a5abd"
              },
              "formNumber": 4010,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form4215.pdf",
                "fileLength": 154627,
                "sha1Checksum": "82479c2070dbfaf17fe779c66bc5bf860c71a72e"
              },
              "formNumber": 4215,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form4216.pdf",
                "fileLength": 95119,
                "sha1Checksum": "4f38a83cf86f394fbf8cde70d86a4fd687427309"
              },
              "formNumber": 4216,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form4217.pdf",
                "fileLength": 93742,
                "sha1Checksum": "ecc23717af234613df14bce91703ed99ffe5b3b7"
              },
              "formNumber": 4217,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form4212.pdf",
                "fileLength": 509033,
                "sha1Checksum": "9b7d10ed4023b31139163e1cbcfa4a1b5b54df03"
              },
              "formNumber": 4212,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form4304.pdf",
                "fileLength": 391481,
                "sha1Checksum": "70a2a2806fa76aae2881da353966ace24bb8ffb2"
              },
              "formNumber": 4304,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form4404.pdf",
                "fileLength": 20547,
                "sha1Checksum": "1ce663d10512d4a85d25fad12734c36e496c5f1d"
              },
              "formNumber": 4404,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form4402.pdf",
                "fileLength": 32359,
                "sha1Checksum": "24509dd479c1b551e544d1cd24de7b15c139286e"
              },
              "formNumber": 4402,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form3354.pdf",
                "fileLength": 415582,
                "sha1Checksum": "b6d27e47b233d053115904d497577b9999d12afc"
              },
              "formNumber": 3354,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form4399.pdf",
                "fileLength": 65693,
                "sha1Checksum": "4dadfe7ac41ae2463a4d2c3164e559ee8ba1cf65"
              },
              "formNumber": 4399,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            },
            {
              "signedBy": [
                "John F Does"
              ],
              "attachedFile": {
                "fileName": "Form4587.pdf",
                "fileLength": 307426,
                "sha1Checksum": "17d109a79a3024243c6cf578d988d43cff31a51b"
              },
              "formNumber": 4587,
             
              "execLoginTimestamp": 20240307114436,
              "execTimestamp": 20240307114436
            }
          ],
          "translation": false
        }
      }
      {
        "application": {
          "customer": {
            "accountHolder": {
              "accountHolderDetails": [
                {
                  "name": {
                    "first": "John",
                    "last": "Smith",
                  },
                  "residenceAddress": {
                    "country": "United States"
                  },
                  "phones": [
                  ],
                  "email": "tester@gmail.com",
          
                  "externalId": "TestIndividual1234AH",
                  "titles": [
                    {
                      "code": "Account Holder"
                    }
                  ],
                }
              ],
             
            },
            "externalId": "TestIndividual1234",
            "type": "INDIVIDUAL",
            "prefix": "ibkrte",
            "email": "tester@gmail.com",
            "mdStatusNonPro": false
          },
          "accounts": [
            {
              "tradingPermissions": [
                {
                  "exchangeGroup": "US-Sec"
                }
              ],
      "advisorWrapFees": { 
      "strategy": "NO_FEE",         
      },    
              "externalId": "TestIndividual1234",
              "baseCurrency": "USD",
              "multiCurrency": true
            }
          ],
          "users": [
            {
              "externalUserId": "TestIndividual1234USR",
              "externalIndividualId": "TestIndividual1234AH",
              "prefix": "ibkrte"
            }
          ],
        }
      }
      
      {
        "application": {
          "customer": {
            "accountHolder": {
              "accountHolderDetails": [
                {
                  "name": {
                    "salutation": "Mr.",
                    "first": "John",
                    "last": "Smith",
                    "middle": "F"
                  },
                  "dateOfBirth": "1948-07-25",
                  "countryOfBirth": "USA",
                  "maritalStatus": "D",
                  "numDependents": 0,
                  "residenceAddress": {
                    "street1": "1 Tester Streer",
                    "city": "Tester City",
                    "state": "AZ",
                    "country": "United States",
                    "postalCode": "85755"
                  },
                  "phones": [
                    {
                      "type": "Mobile",
                      "number": "2034228988",
                      "country": "United States",
                      "verified": false
                    }
                  ],
                  "email": "tester@gmail.com",
                  "identification": {
                    "citizenship": "United States",
                    "ssn": "132112233",
                    "issuingCountry": "USA",
                    "expire": false
                  },
                  "employmentType": "RETIRED",
                  "taxResidencies": [
                    {
                      "country": "United States",
                      "tin": "132112233",
                      "tinType": "SSN"
                    }
                  ],
                  "w9": {
                    "name": "John F Smith",
                    "customerType": "Individual",
                    "tin": "132112233",
                    "tinType": "SSN",
                    "cert1": true,
                    "cert2": true,
                    "cert3": true,
                    "cert4": true
                  },
                  "externalId": "TestIndividual1234AH",
                  "sameMailAddress": true,
                  "ownershipPercentage": 100,
                  "titles": [
                    {
                      "code": "Account Holder"
                    }
                  ],
                  "authorizedPerson": false
                }
              ],
              "financialInformation": [
                {
                  "investmentExperience": [
                    {
                      "assetClass": "BOND",
                      "yearsTrading": 0,
                      "tradesPerYear": 0,
                      "knowledgeLevel": "Limited"
                    },
                    {
                      "assetClass": "FUND",
                      "yearsTrading": 4,
                      "tradesPerYear": 5,
                      "knowledgeLevel": "Good"
                    },
                    {
                      "assetClass": "OPT",
                      "yearsTrading": 0,
                      "tradesPerYear": 0,
                      "knowledgeLevel": "None"
                    },
                    {
                      "assetClass": "STK",
                      "yearsTrading": 7,
                      "tradesPerYear": 5,
                      "knowledgeLevel": "Good"
                    }
                  ],
                  "sourcesOfWealth": [
                    {
                      "sourceType": "SOW-IND-Pension",
                      "percentage": 100,
                      "usedForFunds": true,
                      "description": "None"
                    }
                  ],
                  "soiQuestionnaire": {
                    "details": "Pension"
                  },
                  "netWorth": 750000,
                  "liquidNetWorth": 375000,
                  "annualNetIncome": 75000,
                  "translated": false
                }
              ],
              "regulatoryInformation": [
                {
                  "regulatoryDetail": [
                    {
                      "code": "ControlPubTraded",
                      "status": false
                    },
                    {
                      "code": "EmployeePubTrade",
                      "status": false
                    },
                    {
                      "code": "AFFILIATION",
                      "status": false
                    }
                  ],
                  "translated": false
                }
              ]
            },
            "externalId": "TestIndividual1234",
            "type": "INDIVIDUAL",
            "prefix": "ibkrte",
            "email": "tester@gmail.com",
            "mdStatusNonPro": false
          },
          "accounts": [
            {
              "investmentObjectives": [
                "Growth",
                "Trading",
                "Hedging"
              ],
              "tradingPermissions": [
                {
                  "exchangeGroup": "US-Sec"
                },
                {
                  "exchangeGroup": "US-BOND"
                },
                {
                  "exchangeGroup": "US-MUNIES"
                },
                {
                  "exchangeGroup": "US-Funds"
                },
                {
                  "exchangeGroup": "US-Penny"
                },
                {
                  "exchangeGroup": "US-SecOpt"
                }
              ],
      "advisorWrapFees": { 
      "strategy": "NO_FEE",         
      },    
              "externalId": "TestIndividual1234",
              "baseCurrency": "USD",
              "multiCurrency": true,
              "margin": "RegT",
              "ira": false,
              "stockYieldProgram": true,
              "drip": false,
              "limitedOptions": false
            }
          ],
          "users": [
            {
              "externalUserId": "TestIndividual1234USR",
              "externalIndividualId": "TestIndividual1234AH",
              "prefix": "ibkrte"
            }
          ],
      
          "translation": false  }
      }
      {
        "application": {
          "customer": {
            "accountHolder": {
              "accountHolderDetails": [
                {
                  "name": {
                    "salutation": "Mr.",
                    "first": "Jane",
                    "last": "Tester",
                    "middle": "F"
                  },
                  "dateOfBirth": "1948-07-25",
                  "countryOfBirth": "AUS",
                  "maritalStatus": "D",
                  "numDependents": 0,
                  "residenceAddress": {
                    "street1": "1 tester Street",
                    "city": "ORO VALLEY",
                    "state": "AU-QLD",
                    "country": "AUS",
                    "postalCode": "85755"
                  },
                  "phones": [
                    {
                      "type": "Mobile",
                      "number": "+61292662000",
                      "country": "AUS",
                    }
                  ],
                  "email": "tester@gmail.com",
                  "identification": {
                  "citizenship": "AUS", 
                  "driversLicense": "989444798", 
                  "issuingCountry": "AUS", 
                  "expire": true, 
                  "expirationDate": 
                  "2029-03-22", 
                  "rta":"9999999", 
                  "issuingState":"AU-QLD"
                  },
                  "employmentType": "RETIRED",
                  "taxResidencies": [
                    {
                      "country": "AUS",
                      "tin": "132121212",
                      "tinType": "NonUS_NationalId"
                    }
                  ],
                  "externalId": "TestIndividual20250922",
                  "sameMailAddress": true,
                  "ownershipPercentage": 100,
                  "titles": [
                    {
                      "code": "Account Holder"
                    }
                  ],
                }
              ],
              "financialInformation": [
                {
                  "investmentExperience": [
                    {
                      "assetClass": "STK",
                      "yearsTrading": 7,
                      "tradesPerYear": 5,
                      "knowledgeLevel": "Good"
                    }
                  ],
                  "sourcesOfWealth": [
                    {
                      "sourceType": "SOW-IND-Pension",
                      "percentage": 100,
                      "usedForFunds": true,
                      "description": "None"
                    }
                  ],
                  "soiQuestionnaire": {
                    "details": "Pension"
                  },
                  "netWorth": 750000,
                  "liquidNetWorth": 375000,
                  "annualNetIncome": 75000
      }
              ],
              "regulatoryInformation": [
                {
                  "regulatoryDetail": [
                    {
                      "code": "CONTROLLER",
                      "status": false
                    },
                    {
                      "code": "POLITICALMILITARYDIPLOMATIC",
                      "status": false
                    },
                    {
                      "code": "AFFILIATION",
                      "status": false
                    }
                  ],
                  "translated": false
                }
              ]
            },
            "externalId": "TestIndividual20250922",
            "type": "INDIVIDUAL",
            "prefix": "lewipg",
            "email": "tester@gmail.com",
            "mdStatusNonPro": false
            },
          "accounts": [
            {
              "investmentObjectives": [
                "Growth",
                "Trading",
                "Hedging"
              ],
              "tradingPermissions": [
                {
                  "exchangeGroup": "US-Sec"
                },
              ],
              "externalId": "TestIndividual20250922",
              "baseCurrency": "AUD",
              "multiCurrency": true,
              "accountType":"Trading",
              "margin": "Cash",
              "stockYieldProgram": true,
              "drip": false,
            }
          ],
          "users": [
            {
              "externalUserId": "TestIndividual20250922",
              "externalIndividualId": "TestIndividual20250922",
              "prefix": "lewipg"
            }
          ],
          "documents": [],
          "translation": false,
          "paperAccount": false
        }
      }

      Joint

      Trust Accounts

      {
        "application": {
          "customer": {
            "trust": {
              "identification": [
                {
                  "address": {
                    "street1": "2 Pickwick Plaza",
                    "city": "Greenwich",
                    "state": "SA-08",
                    "country": "SAU",
                    "postalCode": "53072"
                  },
                  "name": "Test Truster",
                  "typeOfTrust": "REVOCABLE",
                  "dateFormed": "2020-08-19",
                  "formationCountry": "SAU",
                  "formationState": "SA-08",
                  "registrationNumber": "111555",
                  "registrationType": "EIN",
                  "registrationCountry": "SAU",
                  "sameMailAddress": true,
                  "translated": false
                }
              ],
              "financialInformation": [
                {
                  "investmentExperience": [
                    {
                      "assetClass": "STK",
                      "yearsTrading": 8,
                      "tradesPerYear": 100,
                      "knowledgeLevel": "Extensive"
                    }
                  ],
                  "sourcesOfWealth": [
                    {
                      "sourceType": "SOW-ORG-RetainedEarnings",
                      "percentage": 50,
                      "usedForFunds": true
                    },
                    {
                      "sourceType": "SOW-ORG-Other",
                      "percentage": 50,
                      "usedForFunds": true,
                      "description": "Income"
                    }
                  ],
                  "netWorth": 9,
                  "liquidNetWorth": 7,
                  "annualNetIncome": 7,
                  "translated": false
                }
              ],
              "trustees": {
                "individuals": [
                  {
                    "name": {
                      "first": "Jane",
                      "last": "Doe"
                    },
                    "dateOfBirth": "1985-03-09",
                    "residenceAddress": {
                      "street1": "2 Pickwick Plaza",
                      "city": "Greenwich",
                      "state": "SA-08",
                      "country": "SAU",
                      "postalCode": "53072"
                    },
                    "email": "dam@ibkr.com",
                    "identification": {
                      "citizenship": "SAU",
                      "nationalCard": "11122334",
                      "issuingCountry": "SAU",
                      "expire": false
                    },
                    "employmentType": "EMPLOYED",
                    "employmentDetails": {
                      "employer": "Interactive Brokers",
                      "occupation": "Engineer",
                      "employerBusiness": "Business_NonFinance",
                      "employerAddress": {
                        "country": "SAU"
                      }
                    },
                    "externalId": "TestTrust2022TASP1",
                    "sameMailAddress": true,
                    "authorizedToSignOnBehalfOfOwner": true,
                    "authorizedTrader": true,
                    "primaryTrustee": true
                  }
                ]
              },
              "beneficiaries": {
                "individual": [
                  {
                    "name": {
                      "first": "Jane",
                      "last": "Doe"
                    },
                    "externalId": "TestTrust2022TASP3",
                    "sameMailAddress": true
                  },
                  {
                    "name": {
                      "first": "John",
                      "last": "Doe"
                    },
                    "externalId": "TestTrust2022TASP4",
                    "sameMailAddress": true
                  }
                ]
              },
              "grantors": {
                "individual": [
                  {
                    "name": {
                      "first": "Jane",
                      "last": "Doe"
                    },
                    "dateOfBirth": "1985-03-09",
                    "residenceAddress": {
                      "street1": "2 Pickwick Plaza",
                      "city": "Greenwich",
                      "state": "SA-08",
                      "country": "SAU",
                      "postalCode": "53072"
                    },
                    "email": "dam@ibkr.com",
                    "identification": {
                      "citizenship": "SAU",
                      "nationalCard": "11122334",
                      "issuingCountry": "SAU",
                      "expire": false
                    },
                    "employeeTitle": "Dermatologist",
                    "externalId": "TestTrust2022TASP5",
                    "sameMailAddress": true,
                    "authorizedToSignOnBehalfOfOwner": false,
                    "authorizedTrader": false,
                    "ownershipPercentage": 50,
                    "titles": [
                      {
                        "value": "Grantor"
                      }
                    ],
                    "authorizedPerson": false
                  }
                ]
              },
              "thirdPartyManagement": false
            },
            "externalId": "TestTrust2022",
            "type": "TRUST",
            "prefix": "testr",
            "email": "dam@ibkr.com",
            "mdStatusNonPro": true
          },
          "accounts": [
            {
              "investmentObjectives": [
                "Trading",
                "Growth"
              ],
              "tradingPermissions": [
                {
                  "exchangeGroup": "US-Sec"
                }
              ],
              "advisorWrapFees": {
                "strategy": "NO_FEE",
                "chargeAdvisor": false,
                "chargeOtherFeesToAdvisor": false
              },
              "externalId": "TestTrust2022AC",
              "baseCurrency": "USD",
              "multiCurrency": true,
              "margin": "REGT",
              "stockYieldProgram": true,
              "alias": "Test Trust",
              "drip": false
            }
          ],
          "users": [
            {
              "externalUserId": "TestTrust2022USR",
              "externalIndividualId": "TestTrust2022TASP1",
              "prefix": "testr"
            }
          ],
          "translation": false
        }
      }
      
      {
        "application": {
          "customer": {
            "trust": {
              "identification": [
                {
                  "address": {
                    "street1": "2 Pickwick Plaza",
                    "city": "Greenwich",
                    "state": "SA-08",
                    "country": "SAU",
                    "postalCode": "53072"
                  },
                  "name": "Test Truster",
                  "typeOfTrust": "REVOCABLE",
                  "dateFormed": "2020-08-19",
                  "formationCountry": "SAU",
                  "formationState": "SA-08",
                  "sameMailAddress": true
                }
              ],
              "financialInformation": [
                {
                  "translated": false
                }
              ],
              "trustees": {
                "individuals": [
                  {
                    "name": {
                      "first": "Jane",
                      "last": "Doe"
                    },
                    "email": "dam@ibkr.com",
                    "identification": {
                      "citizenship": "SAU",
                      "issuingCountry": "SAU",
                      "expire": false
                    },
                    "externalId": "TestTrust2022TASP1",
                    "sameMailAddress": true,
                    "authorizedToSignOnBehalfOfOwner": true,
                    "authorizedTrader": true,
                    "usTaxResident": true,
                    "primaryTrustee": true
                  }
                ]
              },
              "thirdPartyManagement": false
            },
            "externalId": "TestTrust2022",
            "type": "TRUST",
            "prefix": "testr",
            "email": "dam@ibkr.com",
            "mdStatusNonPro": true
          },
          "accounts": [
            {
              "tradingPermissions": [
                {
                  "exchangeGroup": "US-Sec"
                }
              ],
              "advisorWrapFees": {
                "strategy": "NO_FEE",
                "chargeAdvisor": false,
                "chargeOtherFeesToAdvisor": false
              },
              "externalId": "TestTrust2022AC",
              "baseCurrency": "USD",
              "multiCurrency": true,
              "margin": "REGT",
              "ira": false,
              "alias": "Test Trust",
              "drip": false
            }
          ],
          "users": [
            {
              "externalUserId": "TestTrust2022USR",
              "externalIndividualId": "TestTrust2022TASP1",
              "prefix": "testr"
            }
          ],
          "translation": false
        }
      }

      Org Accounts

      {
        "application": {
          "customer": {
            "organization": {
              "identifications": [
                {
                  "placeOfBusinessAddress": {
                    "street1": "1 Tester Road",
                    "city": "Tester",
                    "state": "CT",
                    "country": "USA",
                    "postalCode": "29209"
                  },
                  "phones": [
                    {
                      "type": "Business",
                      "number": "2034228988",
                      "country": "USA",
                      "verified": false
                    }
                  ],
                  "name": "Test Org USA",
                  "businessDescription": "Yes",
                  "identification": "1111222",
                  "identificationCountry": "USA",
                  "formationCountry": "USA",
                  "sameMailAddress": true,
                  "translated": false
                }
              ],
              "financialInformation": [
                {
                  "investmentExperience": [
                    {
                      "assetClass": "STK",
                      "yearsTrading": 10,
                      "tradesPerYear": 60,
                      "knowledgeLevel": "Extensive"
                    }
                  ],
                  "sourcesOfWealth": [
                    {
                      "sourceType": "SOW-ORG-OwnerEquity",
                      "percentage": 100,
                      "usedForFunds": true
                    }
                  ],
                  "netWorth": 8,
                  "liquidNetWorth": 8,
                  "annualNetIncome": 4,
                  "translated": false
                }
              ],
              "associatedEntities": {
                "associatedIndividuals": [
                  {
                    "name": {
                      "first": "Joe",
                      "last": "Doe"
                    },
                    "dateOfBirth": "1940-08-09",
                    "countryOfBirth": "USA",
                    "residenceAddress": {
                      "street1": "1 Tester Road",
                      "city": "Tester",
                      "state": "CT",
                      "country": "USA",
                      "postalCode": "29209"
                    },
                    "phones": [
                      {
                        "type": "Mobile",
                        "number": "2034228988",
                        "country": "USA",
                        "verified": false
                      }
                    ],
                    "email": "tester@ibkr.com",
                    "identification": {
                      "citizenship": "USA",
                      "ssn": "111221111",
                      "issuingCountry": "USA",
                      "expire": false
                    },
                    "employmentType": "EMPLOYED",
                    "employmentDetails": {
                      "employer": "IBKR",
                      "occupation": "Financial Managers",
                      "employerBusiness": "Investment Advisory",
                      "employerAddress": {
                        "street1": "2 Pickwick Plaza",
                        "city": "Greenwich",
                        "state": "CT",
                        "country": "USA",
                        "postalCode": "06905"
                      }
                    },
                    "taxResidencies": [
                      {
                        "country": "USA",
                        "tin": "111221111",
                        "tinType": "SSN"
                      }
                    ],
                    "externalId": "OrgTesterOASP12",
                    "sameMailAddress": true,
                    "authorizedToSignOnBehalfOfOwner": false,
                    "authorizedTrader": false,
                    "titles": [
                      {
                        "code": "DIRECTOR"
                      }
                    ],
                    "authorizedPerson": true
                  },
                  {
                    "name": {
                      "first": "Jane",
                      "last": "Doe"
                    },
                    "dateOfBirth": "1972-07-27",
                    "countryOfBirth": "USA",
                    "residenceAddress": {
                      "street1": "1 Tester Road",
                      "city": "Tester",
                      "state": "CT",
                      "country": "USA",
                      "postalCode": "29209"
                    },
                    "phones": [
                      {
                        "type": "Mobile",
                        "number": "2034228988",
                        "country": "USA",
                        "verified": false
                      }
                    ],
                    "identification": {
                      "citizenship": "USA",
                      "ssn": "111221111",
                      "issuingCountry": "USA",
                      "expire": false
                    },
                    "employmentType": "RETIRED",
                    "taxResidencies": [
                      {
                        "country": "USA",
                        "tin": "1112222",
                        "tinType": "SSN"
                      }
                    ],
                    "externalId": "OrgTesterOASP1",
                    "sameMailAddress": true,
                    "authorizedToSignOnBehalfOfOwner": false,
                    "authorizedTrader": false,
                    "ownershipPercentage": 50,
                    "titles": [
                      {
                        "code": "OWNER"
                      }
                    ],
                    "authorizedPerson": false
                  }
                ]
              },
              "taxResidencies": [
                {
                  "country": "USA",
                  "tin": "1111222"
                }
              ],
              "typeOfTrading": "FIRM",
              "type": "LLC",
              "usTaxPurposeType": "C"
            },
            "externalId": "OrgTester",
            "type": "ORG",
            "prefix": "testt",
            "email": "tester@ibkr.com",
            "mdStatusNonPro": false
          },
          "accounts": [
            {
              "investmentObjectives": [
                "Income",
                "Growth"
              ],
              "tradingPermissions": [
                {
                  "country": "UNITED STATES",
                  "product": "STOCKS"
                }
              ],
              "advisorWrapFees": {
                "strategy": "NO_FEE",
                "chargeAdvisor": false,
                "chargeOtherFeesToAdvisor": false
              },
              "externalId": "OrgTesterAC",
              "baseCurrency": "USD",
              "multiCurrency": true,
              "margin": "MARGIN",
              "ira": false,
              "stockYieldProgram": true,
              "alias": "Tester Org",
              "drip": false
            }
          ],
          "users": [
            {
              "externalUserId": "OrgTesterUSR",
              "externalIndividualId": "OrgTesterAH",
              "prefix": "testt"
            }
          ],
        }
      }
      {
        "application": {
          "customer": {
            "organization": {
              "identifications": [
                {
                  "placeOfBusinessAddress": {
                    "street1": "Pickwick Plaza",
                    "city": "Greewnich City",
                    "state": "CT",
                    "country": "USA",
                    "postalCode": "06905"
                  },
                  "name": "Test Org",
                  "identification": "11122333",
                  "identificationCountry": "USA",
                  "formationCountry": "USA",
                  "sameMailAddress": true }
              ],
              "associatedEntities": {
                "associatedIndividuals": [
                  {
                    "name": {
                      "salutation": "Mrs.",
                      "first": "Tester",
                      "last": "Test"
                    },
                    "dateOfBirth": "1990-05-21",
                    "residenceAddress": {
                      "street1": "Pickwick Plaza",
                      "city": "Greewnich City",
                      "state": "CT",
                      "country": "USA",
                      "postalCode": "06905"
                    },
                    "email": "tester@gmail.com",
                    "identification": {
                      "citizenship": "USA",
                      "ssn": "11122333",
                      "issuingCountry": "USA"
                    },
                    "taxResidencies": [
                      {
                        "country": "USA",
                        "tin": "11122333",
                        "tinType": "SSN"
                      }
                    ],
                    "externalId": "OrgTester123ap",
                    "sameMailAddress": true,
                    "authorizedToSignOnBehalfOfOwner": false,
                    "authorizedTrader": false,
                    "titles": [
                      {
                        "code": "SECRETARY"
                      }
                    ],
                    "authorizedPerson": true
                  }
                ]
              },
              "taxResidencies": [
                {
                  "country": "USA",
                  "tin": "11122333"
                }
              ],
              "type": "PARTNERSHIP",
              "usTaxPurposeType": "C"
            },
            "externalId": "OrgTester123",
            "type": "ORG",
            "prefix": "teste",
            "email": "tester@gmail.com",
            "mdStatusNonPro": false
          },
          "accounts": [
            {
              "tradingPermissions": [
                {
                  "exchangeGroup": "US-Sec"
                }
              ],
              "advisorWrapFees": {
                "strategy": "NO_FEE",
                "chargeAdvisor": false,
                "chargeOtherFeesToAdvisor": false
              },
              "externalId": "OrgTester123",
              "baseCurrency": "USD",
              "multiCurrency": true,
              "margin": "Cash",
              "drip": false
            }
          ],
          "users": [
            {
              "externalUserId": "OrgTester123usr",
              "externalIndividualId": "OrgTester123ind",
              "prefix": "teste"
            }
          ],
        }
      }

      US Retirement Accounts

      Canadian Retirement Accounts

      United Kingdom Savings Plan

      {
        "application": {
          "customer": {
            "accountHolder": {
              "accountHolderDetails": [
                {
                  "name": {
                    "first": "Jane",
                    "last": "Doe"
                  },
                  "dateOfBirth": "1995-04-28",
                  "countryOfBirth": "GBR",
                  "maritalStatus": "S",
                  "numDependents": 0,
                  "residenceAddress": {
                    "street1": "1 Tester Lane",
                    "city": "London",
                    "state": "GB-ENG",
                    "country": "GBR",
                    "postalCode": "SW9 9NY"
                  },
                  "phones": [
                    {
                      "type": "Mobile",
                      "number": "+4407584089999",
                      "country": "GBR"
                    }
                  ],
                  "email": "janedoe@tester.com",
                  "identification": {
                    "citizenship": "GBR",
                    "nationalCard": "PA123456D",
                    "issuingCountry": "GBR",
                    "expire": false
                  },
                  "employmentType": "EMPLOYED",
                  "employmentDetails": {
                    "employer": "CHIPOTLE",
                    "occupation": "EXECUTIVE",
                    "employerBusiness": "FOOD AND BEVERAGE",
                    "employerAddress": {
                      "street1": "1 TESTER Square",
                      "city": "London",
                      "state": "GB-ENG",
                      "country": "GBR",
                      "postalCode": "W1G 0PW"
                    }
                  },
                  "taxResidencies": [
                    {
                      "country": "GBR",
                      "tin": "PA123456D",
                      "tinType": "NonUS_NationalId"
                    }
                  ],
                  "w8Ben": {
                    "name": "Jane Doe",
                    "foreignTaxId": "PA141807D",
                    "tinOrExplanationRequired": true,
                    "part29ACountry": "GBR",
                    "cert": true,
                    "blankForm": true,
                    "taxFormFile": "Form5001.pdf",
                    "electronicFormat": true
                  },
                  "externalId": "testapp1234",
                  "sameMailAddress": true,
                  "translated": false
                }
              ],
              "financialInformation": [
                {
                  "investmentExperience": [
                    {
                      "assetClass": "STK",
                      "yearsTrading": 5,
                      "tradesPerYear": 4,
                      "knowledgeLevel": "Extensive"
                    },
                    {
                      "assetClass": "OPT",
                      "yearsTrading": 5,
                      "tradesPerYear": 4,
                      "knowledgeLevel": "Extensive"
                    }
                  ],
                  "sourcesOfWealth": [
                    {
                      "sourceType": "SOW-IND-Income",
                      "percentage": 100,
                      "usedForFunds": true
                    }
                  ],
                  "netWorth": 500000,
                  "liquidNetWorth": 500000,
                  "annualNetIncome": 250000,
                  "translated": false
                }
              ],
              "regulatoryInformation": [
                {
                  "regulatoryDetail": [
                    {
                      "code": "ControlPubTraded",
                      "status": false
                    },
                    {
                      "code": "EmployeePubTrade",
                      "status": false
                    },
                    {
                      "code": "AFFILIATION",
                      "status": false
                    }
                  ],
                  "translated": false
                }
              ]
            },
            "externalId": "testapp1234",
            "type": "INDIVIDUAL",
            "prefix": "nvest",
            "email": "janedoe@tester.com",
            "mdStatusNonPro": true
          },
          "accounts": [
            {
              "investmentObjectives": [
                "Speculation"
              ],
              "tradingPermissions": [
                {
                  "country": "ALL",
                  "product": "STOCKS"
                }
              ],
              "advisorWrapFees": {
                "strategy": "NO_FEE"
              },
              "externalId": "testapp1234",
              "baseCurrency": "GBP",
              "multiCurrency": false,
              "margin": "Cash",
              "ira": true,
              "iraType": "ISA"
            }
          ],
          "users": [
            {
              "externalUserId": "testapp1234",
              "externalIndividualId": "testapp1234",
              "prefix": "nvest"
            }
          ],
          "documents": [
            {
              "signedBy": [
                "Jane Doe"
              ],
              "attachedFile": {
                "fileName": "Form5001.pdf",
                "fileLength": 67700,
                "sha1Checksum": "D8AA699678D12DE6AC468A864D4FAE7999AA904B"
              },
              "formNumber": 5001,
              "validAddress": false,
              "execLoginTimestamp": 1731406668576,
              "execTimestamp": 1731406668576
            },
            {
              "signedBy": [
                "Jane Doe"
              ],
              "attachedFile": {
                "fileName": "Form2109.pdf",
                "fileLength": 15697,
                "sha1Checksum": "BF01D3C5B2B7BC6CA90A4051636051A828FD735F"
              },
              "formNumber": 2109,
              "validAddress": false,
              "execLoginTimestamp": 20240117041717,
              "execTimestamp": 20240117041717
            },
            {
              "signedBy": [
                "Jane Doe"
              ],
              "attachedFile": {
                "fileName": "Form3024.pdf",
                "fileLength": 67600,
                "sha1Checksum": "274FA053D7E4080F0AD429787B9F94ABDF5498D7"
              },
              "formNumber": 3024,
              "validAddress": false,
              "execLoginTimestamp": 20150716015642,
              "execTimestamp": 20150716152843
            },
            {
              "signedBy": [
                "Jane Doe"
              ],
              "attachedFile": {
                "fileName": "Form4319.pdf",
                "fileLength": 472704,
                "sha1Checksum": "485e44e6bc1e969ee1888fbf12bc957d7d41a182"
              },
              "formNumber": 4319,
              "validAddress": false,
              "execLoginTimestamp": 1731406668576,
              "execTimestamp": 1731406668576
            },
            {
              "signedBy": [
                "Jane Doe"
              ],
              "attachedFile": {
                "fileName": "Form4376.pdf",
                "fileLength": 118429,
                "sha1Checksum": "67D8506963789C3A2DA7B68F134D8F3F2515AFBC"
              },
              "formNumber": 4376,
              "validAddress": false,
              "execLoginTimestamp": 1731406668576,
              "execTimestamp": 1731406668576
            },
            {
              "signedBy": [
                "Jane Doe"
              ],
              "attachedFile": {
                "fileName": "Form4547.pdf",
                "fileLength": 409788,
                "sha1Checksum": "C7A601FD4C746EFC8767FCE886B03782A5C89A1C"
              },
              "formNumber": 4547,
              "validAddress": false,
              "execLoginTimestamp": 1731406668576,
              "execTimestamp": 1731406668576
            },
            {
              "signedBy": [
                "Jane Doe"
              ],
              "attachedFile": {
                "fileName": "Form4548.pdf",
                "fileLength": 416100,
                "sha1Checksum": "5FFF4BFEDD2F75A63EF493BB9F6ADEA63EBAF2A6"
              },
              "formNumber": 4548,
              "validAddress": false,
              "execLoginTimestamp": 1731406668576,
              "execTimestamp": 1731406668576
            }
          ],
          "translation": false
        }
      }
      
      {
        "application": {
          "customer": {
            "accountHolder": {
              "accountHolderDetails": [
                {
                  "name": {
                    "first": "Junior",
                    "last": "Contact"
                  },
                  "dateOfBirth": "2022-12-20",
                  "countryOfBirth": "GBR",
                  "residenceAddress": {
                    "street1": "24 TESTER LANE",
                    "city": "LONDON",
                    "state": "GB-LND",
                    "country": "GB",
                    "postalCode": "BR2 9FR"
                  },
                  "identification": {
                    "citizenship": "GBR",
                    "nationalCard": "NB123456C",
                    "issuingCountry": "GBR",
                    "expire": false
                  },
                  "taxResidencies": [
                    {
                      "country": "GBR",
                      "tin": "NB123456C",
                      "tinType": "NonUS_NationalId"
                    }
                  ],
                  "w8Ben": {
                    "localTaxForms": [
                      {
                        "taxAuthority": "CANADA_TA",
                        "qualified": true,
                        "treatyCountry": "GBR"
                      },
                      {
                        "taxAuthority": "AUSTRALIA_TA",
                        "qualified": true,
                        "treatyCountry": "GBR"
                      }
                    ],
                    "name": "Junior Contact",
                    "foreignTaxId": "NB400056C",
                    "tinOrExplanationRequired": true,
                    "part29ACountry": "GBR",
                    "cert": true,
                    "signatureType": "Electronic",
                    "blankForm": true,
                    "taxFormFile": "Form5001.pdf",
                    "electronicFormat": true
                  },
                  "externalId": "tester123",
                  "sameMailAddress": false,
                  "titles": [
                    {
                      "code": "Account Holder"
                    }
                  ],
                  "authorizedPerson": false
                }
              ],
              "associatedIndividual": {
                "name": {
                  "first": "Registered",
                  "last": "Contact"
                },
                "dateOfBirth": "1963-12-20",
                "countryOfBirth": "GBR",
                "residenceAddress": {
                  "street1": "24 TESTER LANE",
                  "city": "LONDON",
                  "state": "GB-LND",
                  "country": "GB",
                  "postalCode": "BR2 9FR"
                },
                "phones": [
                  {
                    "type": "Mobile",
                    "number": "447483849999",
                    "country": "GBR",
                    "verified": false
                  }
                ],
                "email": "DAM41832012@aol.com",
                "identification": {
                  "citizenship": "GBR",
                  "nationalCard": "NB400056A",
                  "issuingCountry": "GBR",
                  "expire": false
                },
                "employmentType": "EMPLOYED",
                "employmentDetails": {
                  "employer": "Crown Prosecution Service ",
                  "occupation": "Other",
                  "description": "CIVIL",
                  "employerBusiness": "Community/Social Service",
                  "employerAddress": {
                    "country": "GBR"
                  }
                },
                "externalId": "tester123_rc",
                "sameMailAddress": true,
                "titles": [
                  {
                    "code": "Registered Contact"
                  }
                ],
                "authorizedPerson": false
              },
              "financialInformation": [
                {
                  "investmentExperience": [
                    {
                      "assetClass": "STK",
                      "yearsTrading": 11,
                      "tradesPerYear": 27,
                      "knowledgeLevel": "Extensive"
                    }
                  ],
                  "sourcesOfWealth": [
                    {
                      "sourceType": "SOW-IND-Income",
                      "percentage": 10,
                      "usedForFunds": true
                    },
                    {
                      "sourceType": "SOW-IND-Pension",
                      "percentage": 90,
                      "usedForFunds": true
                    }
                  ],
                  "netWorth": 375000,
                  "liquidNetWorth": 70000,
                  "annualNetIncome": 41600,
                  "translated": false
                }
              ],
              "regulatoryInformation": [
                {
                  "regulatoryDetail": [
                    {
                      "code": "EmployeePubTrade",
                      "status": false
                    },
                    {
                      "code": "ControlPubTraded",
                      "status": false
                    },
                    {
                      "code": "AFFILIATION",
                      "status": false
                    }
                  ],
                  "translated": false
                }
              ]
            },
            "externalId": "tester123",
            "type": "INDIVIDUAL",
            "prefix": "skm",
            "email": "DAM41832012@aol.com",
            "mdStatusNonPro": false
          },
          "accounts": [
            {
              "investmentObjectives": [
                "Growth"
              ],
              "tradingPermissions": [
                {
                  "exchangeGroup": "US-SEC"
                },
                {
                  "exchangeGroup": "EURONEXT-FUND"
                }
              ],
              "externalId": "tester123",
              "baseCurrency": "GBP",
              "multiCurrency": true,
              "margin": "Cash",
              "ira": true,
              "iraType": "JISA",
              "drip": false
            }
          ],
          "users": [
            {
              "externalUserId": "tester123",
              "externalIndividualId": "tester123",
              "prefix": "skm"
            }
          ],
          "documents": [
            {
              "signedBy": [
                "Registered Contact"
              ],
              "attachedFile": {
                "fileName": "Form5001.pdf",
                "fileLength": 67700,
                "sha1Checksum": "d8aa699678d12de6ac468a864d4fae7999aa904b"
              },
              "formNumber": 5001,
              "validAddress": false,
              "execLoginTimestamp": 20250511201657
            },
            {
              "signedBy": [
                "Registered Contact"
              ],
              "attachedFile": {
                "fileName": "Form3083.pdf",
                "fileLength": 557790,
                "sha1Checksum": "9C79DB3DF0925D126541817F2BBC7418BBD3EC4E"
              },
              "formNumber": 3083,
              "validAddress": false,
              "execLoginTimestamp": 20250511201657
            },
            {
              "signedBy": [
                "Registered Contact"
              ],
              "attachedFile": {
                "fileName": "Form4070.pdf",
                "fileLength": 27117,
                "sha1Checksum": "3BF982D0D81F0F6B1BBD37E9789EE6585F46F8DC"
              },
              "formNumber": 4070,
              "validAddress": false,
              "execLoginTimestamp": 20250511201657
            },
            {
              "signedBy": [
                "Registered Contact"
              ],
              "attachedFile": {
                "fileName": "Form9130.pdf",
                "fileLength": 252630,
                "sha1Checksum": "3F6E0751854D0BB7717AB4E954D97EDF31FEE6EA"
              },
              "formNumber": 9130,
              "validAddress": false,
              "execLoginTimestamp": 20250511201657
            }
          ],
          "translation": false
        }
      }
      
      {
        "application": {
          "customer": {
            "accountHolder": {
              "accountHolderDetails": [
                {
                  "name": {
                    "first": "Jane",
                    "last": "Doe"
                  },
                  "dateOfBirth": "1995-04-28",
                  "countryOfBirth": "GBR",
                  "maritalStatus": "S",
                  "numDependents": 0,
                  "residenceAddress": {
                    "street1": "1 Tester Lane",
                    "city": "London",
                    "state": "GB-ENG",
                    "country": "GBR",
                    "postalCode": "SW9 9NY"
                  },
                  "phones": [
                    {
                      "type": "Mobile",
                      "number": "+4407584089999",
                      "country": "GBR"
                    }
                  ],
                  "email": "janedoe@tester.com",
                  "identification": {
                    "citizenship": "GBR",
                    "nationalCard": "PA123456D",
                    "issuingCountry": "GBR",
                    "expire": false
                  },
                  "employmentType": "EMPLOYED",
                  "employmentDetails": {
                    "employer": "CHIPOTLE",
                    "occupation": "EXECUTIVE",
                    "employerBusiness": "FOOD AND BEVERAGE",
                    "employerAddress": {
                      "street1": "1 TESTER Square",
                      "city": "London",
                      "state": "GB-ENG",
                      "country": "GBR",
                      "postalCode": "W1G 0PW"
                    }
                  },
                  "taxResidencies": [
                    {
                      "country": "GBR",
                      "tin": "PA123456D",
                      "tinType": "NonUS_NationalId"
                    }
                  ],
                  "w8Ben": {
                    "name": "Jane Doe",
                    "foreignTaxId": "PA141807D",
                    "tinOrExplanationRequired": true,
                    "part29ACountry": "GBR",
                    "cert": true,
                    "blankForm": true,
                    "taxFormFile": "Form5001.pdf",
                    "electronicFormat": true
                  },
                  "externalId": "testapp1234",
                  "sameMailAddress": true,
                  "translated": false
                }
              ],
              "financialInformation": [
                {
                  "investmentExperience": [
                    {
                      "assetClass": "STK",
                      "yearsTrading": 5,
                      "tradesPerYear": 4,
                      "knowledgeLevel": "Extensive"
                    },
                    {
                      "assetClass": "OPT",
                      "yearsTrading": 5,
                      "tradesPerYear": 4,
                      "knowledgeLevel": "Extensive"
                    }
                  ],
                  "sourcesOfWealth": [
                    {
                      "sourceType": "SOW-IND-Income",
                      "percentage": 100,
                      "usedForFunds": true
                    }
                  ],
                  "netWorth": 500000,
                  "liquidNetWorth": 500000,
                  "annualNetIncome": 250000,
                  "translated": false
                }
              ],
              "regulatoryInformation": [
                {
                  "regulatoryDetail": [
                    {
                      "code": "ControlPubTraded",
                      "status": false
                    },
                    {
                      "code": "EmployeePubTrade",
                      "status": false
                    },
                    {
                      "code": "AFFILIATION",
                      "status": false
                    }
                  ],
                  "translated": false
                }
              ]
            },
            "externalId": "testapp1234",
            "type": "INDIVIDUAL",
            "prefix": "nvest",
            "email": "janedoe@tester.com",
            "mdStatusNonPro": true
          },
          "accounts": [
            {
              "investmentObjectives": [
                "Speculation"
              ],
              "tradingPermissions": [
                {
                  "country": "ALL",
                  "product": "STOCKS"
                }
              ],
              "advisorWrapFees": {
                "strategy": "NO_FEE"
              },
              "externalId": "testapp1234",
              "baseCurrency": "GBP",
              "multiCurrency": false,
              "margin": "Cash",
              "ira": true,
              "iraType": "ISA"
            }
          ],
          "users": [
            {
              "externalUserId": "testapp1234",
              "externalIndividualId": "testapp1234",
              "prefix": "nvest"
            }
          ],
          "translation": false
        }
      }
      
      {
        "application": {
          "customer": {
            "accountHolder": {
              "accountHolderDetails": [
                {
                  "name": {
                    "first": "Junior",
                    "last": "Contact"
                  },
                  "dateOfBirth": "2022-12-20",
                  "countryOfBirth": "GBR",
                  "residenceAddress": {
                    "street1": "24 TESTER LANE",
                    "city": "LONDON",
                    "state": "GB-LND",
                    "country": "GB",
                    "postalCode": "BR2 9FR"
                  },
                  "identification": {
                    "citizenship": "GBR",
                    "nationalCard": "NB123456C",
                    "issuingCountry": "GBR",
                    "expire": false
                  },
                  "taxResidencies": [
                    {
                      "country": "GBR",
                      "tin": "NB123456C",
                      "tinType": "NonUS_NationalId"
                    }
                  ],
                  "w8Ben": {
                    "localTaxForms": [
                      {
                        "taxAuthority": "CANADA_TA",
                        "qualified": true,
                        "treatyCountry": "GBR"
                      },
                      {
                        "taxAuthority": "AUSTRALIA_TA",
                        "qualified": true,
                        "treatyCountry": "GBR"
                      }
                    ],
                    "name": "Junior Contact",
                    "foreignTaxId": "NB400056C",
                    "tinOrExplanationRequired": true,
                    "part29ACountry": "GBR",
                    "cert": true,
                    "signatureType": "Electronic",
                    "blankForm": true,
                    "taxFormFile": "Form5001.pdf",
                    "electronicFormat": true
                  },
                  "externalId": "tester123",
                  "sameMailAddress": false,
                  "titles": [
                    {
                      "code": "Account Holder"
                    }
                  ],
                  "authorizedPerson": false
                }
              ],
              "associatedIndividual": {
                "name": {
                  "first": "Registered",
                  "last": "Contact"
                },
                "dateOfBirth": "1963-12-20",
                "countryOfBirth": "GBR",
                "residenceAddress": {
                  "street1": "24 TESTER LANE",
                  "city": "LONDON",
                  "state": "GB-LND",
                  "country": "GB",
                  "postalCode": "BR2 9FR"
                },
                "phones": [
                  {
                    "type": "Mobile",
                    "number": "447483849999",
                    "country": "GBR",
                    "verified": false
                  }
                ],
                "email": "DAM41832012@aol.com",
                "identification": {
                  "citizenship": "GBR",
                  "nationalCard": "NB400056A",
                  "issuingCountry": "GBR",
                  "expire": false
                },
                "employmentType": "EMPLOYED",
                "employmentDetails": {
                  "employer": "Crown Prosecution Service ",
                  "occupation": "Other",
                  "description": "CIVIL",
                  "employerBusiness": "Community/Social Service",
                  "employerAddress": {
                    "country": "GBR"
                  }
                },
                "externalId": "tester123_rc",
                "sameMailAddress": true,
                "titles": [
                  {
                    "code": "Registered Contact"
                  }
                ],
                "authorizedPerson": false
              },
              "financialInformation": [
                {
                  "investmentExperience": [
                    {
                      "assetClass": "STK",
                      "yearsTrading": 11,
                      "tradesPerYear": 27,
                      "knowledgeLevel": "Extensive"
                    }
                  ],
                  "sourcesOfWealth": [
                    {
                      "sourceType": "SOW-IND-Income",
                      "percentage": 10,
                      "usedForFunds": true
                    },
                    {
                      "sourceType": "SOW-IND-Pension",
                      "percentage": 90,
                      "usedForFunds": true
                    }
                  ],
                  "netWorth": 375000,
                  "liquidNetWorth": 70000,
                  "annualNetIncome": 41600,
                  "translated": false
                }
              ],
              "regulatoryInformation": [
                {
                  "regulatoryDetail": [
                    {
                      "code": "EmployeePubTrade",
                      "status": false
                    },
                    {
                      "code": "ControlPubTraded",
                      "status": false
                    },
                    {
                      "code": "AFFILIATION",
                      "status": false
                    }
                  ],
                  "translated": false
                }
              ]
            },
            "externalId": "tester123",
            "type": "INDIVIDUAL",
            "prefix": "skm",
            "email": "DAM41832012@aol.com",
            "mdStatusNonPro": false
          },
          "accounts": [
            {
              "investmentObjectives": [
                "Growth"
              ],
              "tradingPermissions": [
                {
                  "exchangeGroup": "US-SEC"
                },
                {
                  "exchangeGroup": "EURONEXT-FUND"
                }
              ],
              "externalId": "tester123",
              "baseCurrency": "GBP",
              "multiCurrency": true,
              "margin": "Cash",
              "ira": true,
              "iraType": "JISA",
              "drip": false
            }
          ],
          "users": [
            {
              "externalUserId": "tester123",
              "externalIndividualId": "tester123",
              "prefix": "skm"
            }
          ],
             "translation": false
        }
      }

      {
        "application": {
          "customer": {
            "accountHolder": {
              "accountHolderDetails": [
                {
                  "name": {
                    "first": "Jane",
                    "last": "Doe"
                  },
                  "dateOfBirth": "1990-01-29",
                  "countryOfBirth": "CZE",
                  "residenceAddress": {
                    "street1": "1 Test Street",
                    "city": "Praha",
                    "state": "CZ-10",
                    "country": "CZE",
                    "postalCode": "100001"
                  },
                  "email": Doe.Jane@hotmail.com,
                  "identification": {
                    "citizenship": "CZE",
                    "nationalCard": "910829/5009",
                    "issuingCountry": "CZE",
                    "expire": false
                  },
                  "taxResidencies": [
                    {
                      "country": "CZE"
                    }
                  ],
                  "w8Ben": {
                    "name": "Jane Doe",
                    "tinOrExplanationRequired": true,
                    "explanation": "TIN_NOT_DISCLOSED",
                    "part29ACountry": "CZE",
                    "cert": true,
                    "signatureType": "Electronic",
                    "blankForm": false,
                    "taxFormFile": "Form5001.pdf",
                    "electronicFormat": true,
                  },
                  "externalId": "CZE_NonQI_Indi_Nov2024",
                  "sameMailAddress": true
                }
              ]
            },
            "externalId": "CZE_NonQI_Indi_Nov2024",
            "type": "INDIVIDUAL",
            "prefix": "testr",
            "email": "Doe.Jane@hotmail.com",
            "mdStatusNonPro": false,
            "meetAmlStandard": "true",
            "directTradingAccess": true,
            "paperAccount": false
          },
          "accounts": [
            {
              "tradingPermissions": [
                {
                  "country": "UNITED STATES",
                  "product": "STOCKS"
                },
                {
                  "country": "UNITED KINGDOM",
                  "product": "STOCKS"
                },
                {
                  "country": "GERMANY",
                  "product": "STOCKS"
                }
              ],
              "externalId": "CZE_NonQI_Indi_Nov2024",
              "baseCurrency": "CZK",
              "multiCurrency": true,
              "margin": "Cash",
            }
          ],
          "users": [
            {
              "externalUserId": "CZE_NonQI_Indi_Nov2024",
              "externalIndividualId": "CZE_NonQI_Indi_Nov2024",
              "prefix": "testr"
            }
          ],
          "documents": [
            {
              "signedBy": [
                "Jane Doe"
              ],
              "attachedFile": {
                "fileName": "Form5001.pdf",
                "fileLength": 199261,
                "sha1Checksum": "bd60f461d19b9b052bb67a67f8e8a2eeaeb644f8"
              },
              "formNumber": 5001,
              "validAddress": false,
              "execLoginTimestamp": 20231108103920,
              "execTimestamp": 20231108103941
            },
            {
              "signedBy": [
                "Jane Doe"
              ],
              "attachedFile": {
                "fileName": "ProofOfAddressDocd.pdf",
                "fileLength": 329,
                "sha1Checksum": "118416bebc7373939b74d848cb072119e6c0fd5f"
              },
              "formNumber": 8002,
              "validAddress": false,
              "execLoginTimestamp": 20231108103913,
              "execTimestamp": 20231108104004,
              "proofOfAddressType": "Government Issued Letters"
            }
          ],
          "translation": false,
          "paperAccount": false
        }
      }
      {
        "application": {
          "customer": {
            "accountHolder": {
              "accountHolderDetails": [
                {
                  "name": {
                    "first": "John",
                    "last": "Doe",
                    "middle": "S"
                  },
                  "dateOfBirth": "2002-10-25",
                  "countryOfBirth": "SAU",
                  "residenceAddress": {
                    "street1": "1 Tester",
                    "city": "aleala",
                    "state": "SA-03",
                    "country": "SAU",
                    "postalCode": "93929"
                  },
                  "email": "tester@gmail.com",
                  "identification": {
                    "citizenship": "SAU",
                    "nationalCard": "11225554",
                    "issuingCountry": "SAU",
                    "expire": false
                  },
                  "employmentType": "EMPLOYED",
                  "employmentDetails": {
                    "employer": "Test Employer Name Here",
                    "occupation": "Analyst",
                    "employerBusiness": "Computer/Information Technology",
                    "employerAddress": {
                      "street1": "22 Tester Road",
                      "city": "Aleala",
                      "state": "SA-03",
                      "country": "SAU",
                      "postalCode": "93929"
                    }
                  },
                  "taxResidencies": [
                    {
                      "country": "SAU",
                      "tinType": "NonUS_NationalId"
                    }
                  ],
                  "w8Ben": {
                    "name": "John S Doe",
                    "tinOrExplanationRequired": true,
                    "explanation": "TIN_NOT_ISSUED",
                    "part29ACountry": "N/A",
                    "cert": true,
                    "signatureType": "Electronic",
                    "blankForm": false,
                    "taxFormFile": "5001.pdf",
                    "electronicFormat": true
                  },
                  "externalId": "testExternalId3",
                  "sameMailAddress": true,
                  "titles": [
                    {
                      "value": "Account Holder"
                    }
                  ],
                }
              ],
              "financialInformation": [
                {
                  "sourcesOfWealth": [
                    {
                      "sourceType": "SOW-IND-Income",
                      "percentage": 100,
                      "usedForFunds": true
                    }
                  ],
                  "netWorth": 103,
                  "liquidNetWorth": 101,
                  "annualNetIncome": 300000,
                  "translated": false
                }
              ],
              "regulatoryInformation": [
                {
                  "regulatoryDetail": [
                    {
                      "code": "ControlPubTraded",
                      "status": false
                    },
                    {
                      "code": "EmployeePubTrade",
                      "status": false
                    }
                  ],
                  "translated": false
                }
              ]
            },
            "externalId": "testExternalId3",
            "type": "INDIVIDUAL",
            "prefix": "tesss",
            "email": "tester@gmail.com",
            "mdStatusNonPro": true,
            "legalResidenceCountry": "SAU",
            "meetAmlStandard": "true",
            "meetsAmlStandard": "true",
          },
          "accounts": [
            {
              "capabilities": [
                "CLP"
              ],
              "tradingPermissions": [
                {
                  "country": "UNITED STATES",
                  "product": "OPTIONS"
                },
                {
                  "country": "UNITED STATES",
                  "product": "STOCKS"
                }
              ],
              "externalId": "testExternalId3",
              "baseCurrency": "USD",
              "multiCurrency": true,
              "margin": "Margin",
              "stockYieldProgram": true,
              "alias": "John S Doe Indvidual",
              "drip": false
            }
          ],
          "users": [
            {
              "externalUserId": "testExternalId3",
              "externalIndividualId": "testExternalId3",
              "prefix": "xneecg"
            }
          ],
          "documents": [
            {
              "signedBy": [
                "John S Doe"
              ],
              "attachedFile": {
                "fileName": "5001.pdf",
                "fileLength": 93167,
                "sha1Checksum": "3D45EBC208CB6782C4512876C4E9ECD205E6F4F0"
              },
              "formNumber": 5001,
              "validAddress": false,
              "execLoginTimestamp": 20240418000000,
              "execTimestamp": 20240418000020,
              "payload": {
                "mimeType": "application/pdf",
                 "data": pm.collectionVariables.get('form5001')
              }
            },
            {
              "signedBy": [
                "John S Doe"
              ],
              "attachedFile": {
                "fileName": "Form8001.pdf",
                "fileLength": 93167,
                "sha1Checksum": "3D45EBC208CB6782C4512876C4E9ECD205E6F4F0"
              },
              "formNumber": 8001,
              "validAddress": false,
              "execLoginTimestamp": 20240418000300,
              "execTimestamp": 20240418000315,
              "payload": {
                "mimeType": "application/pdf",
                 "data": pm.collectionVariables.get('form8001')
              },
              "proofOfIdentityType": "National ID Card"
            },
            {
              "signedBy": [
                "John S Doe"
              ],
              "attachedFile": {
                "fileName": "Form8002.pdf",
                "fileLength": 93167,
                "sha1Checksum": "3D45EBC208CB6782C4512876C4E9ECD205E6F4F0"
              },
              "formNumber": 8002,
              "validAddress": false,
              "execLoginTimestamp": 20240418000800,
              "execTimestamp": 20240418000840,
               "payload": {
                "mimeType": "application/pdf",
                 "data": pm.collectionVariables.get('form8002')
              }   ,
              "proofOfAddressType": "Other Document"
      
            }
          ],
          "translation": false,
          "paperAccount": false
        }
      }
      
      {
        "application": {
          "customer": {
            "accountHolder": {
              "accountHolderDetails": [
                {
                  "name": {
                    "first": "John",
                    "last": "Doe",
                    "middle": "S"
                  },
                  "dateOfBirth": "2002-10-25",
                  "countryOfBirth": "SAU",
                  "residenceAddress": {
                    "street1": "1 Tester",
                    "city": "aleala",
                    "state": "SA-03",
                    "country": "SAU",
                    "postalCode": "93929"
                  },
                  "email": "tester@gmail.com",
                  "identification": {
                    "citizenship": "SAU",
                    "nationalCard": "11225554",
                    "issuingCountry": "SAU",
                    "expire": false
                  },
                  "employmentType": "EMPLOYED",
                  "employmentDetails": {
                    "employer": "Test Employer Name Here",
                    "occupation": "Analyst",
                    "employerBusiness": "Computer/Information Technology",
                    "employerAddress": {
                      "street1": "22 Tester Road",
                      "city": "Aleala",
                      "state": "SA-03",
                      "country": "SAU",
                      "postalCode": "93929"
                    }
                  },
                  "taxResidencies": [
                    {
                      "country": "SAU",
                      "tinType": "NonUS_NationalId"
                    }
                  ],
                  "w8Ben": {
                    "name": "John S Doe",
                    "tinOrExplanationRequired": true,
                    "explanation": "TIN_NOT_ISSUED",
                    "part29ACountry": "N/A",
                    "cert": true
                  },
                  "externalId": "testExternalId123999",
                  "sameMailAddress": true,
                  "titles": [
                    {
                      "value": "Account Holder"
                    }
                  ],
                }
              ],
              "financialInformation": [
                {
                  "sourcesOfWealth": [
                    {
                      "sourceType": "SOW-IND-Income",
                      "percentage": 100,
                      "usedForFunds": true
                    }
                  ],
                  "netWorth": 103,
                  "liquidNetWorth": 101,
                  "annualNetIncome": 300000,
                  "translated": false
                }
              ],
              "regulatoryInformation": [
                {
                  "regulatoryDetail": [
                    {
                      "code": "ControlPubTraded",
                      "status": false
                    },
                    {
                      "code": "EmployeePubTrade",
                      "status": false
                    }
                  ],
                  "translated": false
                }
              ]
            },
            "externalId": "testExternalId123999",
            "type": "INDIVIDUAL",
            "prefix": "tesss",
            "email": "tester@gmail.com",
            "mdStatusNonPro": true,
            "legalResidenceCountry": "SAU",
            "meetAmlStandard": "true",
            "meetsAmlStandard": "true",
          },
          "accounts": [
            {
              "capabilities": [
                "CLP"
              ],
              "tradingPermissions": [
                {
                  "country": "UNITED STATES",
                  "product": "OPTIONS"
                },
                {
                  "country": "UNITED STATES",
                  "product": "STOCKS"
                }
              ],
              "externalId": "testExternalId123999",
              "baseCurrency": "USD",
              "multiCurrency": true,
              "margin": "Margin",
              "stockYieldProgram": true,
              "alias": "John S Doe Indvidual",
              "drip": false
            }
          ],
          "users": [
            {
              "externalUserId": "testExternalId123999",
              "externalIndividualId": "testExternalId123999",
              "prefix": "xneecg"
            }
          ],
          
          "translation": false,
          "paperAccount": false
        }
      }
      {
        "application": {
          "customer": {
            "accountHolder": {
              "accountHolderDetails": [
                {
                  "name": {
                    "first": "John",
                    "last": "Smith"
                  },
                  "dateOfBirth": "1973-08-14",
                  "countryOfBirth": "GBR",
                  "residenceAddress": {
                    "street1": "1 Tester Street",
                    "city": "London",
                    "state": "GB-ENG",
                    "country": "GBR",
                    "postalCode": "SW10 9QL"
                  },
                  "phones": [],
                  "email": "tester@ibkr.com",
                  "identification": {
                    "citizenship": "GBR",
                    "nationalCard": "AB123456C",
                    "issuingCountry": "GBR",
                    "expire": false
                  },
              "withholdingStatement": {
                "effectiveDate": "2024-11-01",
                "fatcaCompliantType": "FATCA_COMPLIANT",
                "treatyCountry": "GBR"
              }
            },
            "externalId": "MyExternalId1234",
            "type": "INDIVIDUAL",
            "prefix": "damtes",
            "email": "tester@ibkr.com",
            "mdStatusNonPro": true,
            "meetAmlStandard": "true",
            "directTradingAccess": true,
            "legalResidenceCountry": "GBR"
          },
          "accounts": [
            {
              "tradingPermissions": [
                {
                  "country": "UNITED KINGDOM",
                  "product": "STOCKS"
                },
                {
                  "country": "UNITED STATES",
                  "product": "OPTIONS"
                }
              ],
              "externalId": "MyExternalId1234",
              "baseCurrency": "GBP",
              "multiCurrency": true,
              "margin": "Cash",
            }
          ],
          "users": [
            {
              "externalUserId": "MyExternalId1234",
              "externalIndividualId": "MyExternalId1234",
              "prefix": "damtes"
            }
          ],
        },
      }
      {
        "application": {
          "customer": {
            "accountHolder": {
              "accountHolderDetails": [
                {
                  "name": {
                    "first": "John",
                    "last": "Smith"
                  },
                  "residenceAddress": {
                    "country": "GBR"
      
                  },
                  "phones": [],
                  "email": "tester@ibkr.com",
                  "externalId": "MyExternalId12345",
                  "sameMailAddress": true
                }
              ],
         
              "withholdingStatement": {
                "effectiveDate": "2024-11-01",
                "fatcaCompliantType": "FATCA_COMPLIANT",
                "treatyCountry": "GBR"
              }
            },
            "externalId": "MyExternalId12345",
            "type": "INDIVIDUAL",
            "prefix": "damtes",
            "email": "tester@ibkr.com",
            "mdStatusNonPro": true,
            "meetAmlStandard": "true",
            "directTradingAccess": false,
            "legalResidenceCountry": "GBR"
          },
          "accounts": [
            {
              "tradingPermissions": [
                {
                  "country": "UNITED KINGDOM",
                  "product": "STOCKS"
                },
                {
                  "country": "UNITED STATES",
                  "product": "OPTIONS"
                }
              ],
              "externalId": "MyExternalId12345",
              "baseCurrency": "GBP",
              "multiCurrency": true,
              "margin": "Cash",
            }
          ],
          "users": [
            {
              "externalUserId": "MyExternalId12345",
              "externalIndividualId": "MyExternalId12345",
              "prefix": "damtes"
            }
          ],
        },
      }
      

      Sample Responses

      Error Handling

      When making requests to our API, you will receive HTTP status codes that indicate the outcome of your request. However, it’s important to understand that a status code of 200 doesn’t always mean your request was successful.

      HTTP Status Codes

      1. 200: Your request reached the server and was processed
      2. Non-200 Codes: Your request did not pass gateway validation (e.g., 400, 401, 404, 500)

      200 OK

      A 200 status code simply means your request successfully reached our application and was processed. However, the actual outcome can be one of two types:

      Success Response (200): This indicates that your request not only reached the server but also passed all validation checks and was successfully processed.

      Error Response (200 with Error): This indicates that while your request successfully reached the application (passing gateway validation), it failed some business logic or validation check within the application itself.

      • The status within response will return ERROR
      • Error detail will be included within error.value
      {
          "requestId": 464041722,
          "dateSubmitted": "20250805143508 UTC",
          "fileData": {
              "data": {
                  "execution": {
                      "executedAt": "20250805143509 UTC",
                      "client": "Test client for account I19565014",
                      "clientMasterAccount": "I1111111",
                      "processFile": "II1111111-08-05_103508896_853839.json"
                  },
                  "application": {
                      "customer": "Jane F Tester",
                      "externalId": "testUser12345",
                      "status": "Error",
                      "error": [
                          {
                              "value": "Unable to determine client IB entity. Kindly provide valid Residence country and Legal Residence Country."
                          }
                         
                          }
                      ]
                  }
              },
              "name": "II1111111-103509392_144127.json.report"
          }
      }

      Understanding this distinction is crucial because:

      1. You cannot rely solely on the HTTP status code to determine if your operation succeeded
      2. Your code should always check the response body’s structure and status field
      3. Gateway errors (non-200) indicate problems with your request format, authentication, or server availability
      4. Application errors (200 with error status) indicate problems with the data or business logic

      Error Library

      customer

      Error MessageExplanation
      “Unsupported value. Property:’sourceType’, value:’SOW-IND-inheritance”,Enter first letter for Inheritance as capital. Refer to https://www.interactivebrokers.com/campus/ibkr-api-page/web-api-account-management/#customer-26
      “SourcesOfWealth must include SOW-IND-Income when EmploymentType is EMPLOYED”Sources Of Wealth must include Income from employment as the individual is employed.
      “Total Percentage from SourcesOfWealth used to fund the account is 10%. It MUST add to 100%.”If Sources of wealth  doesn’t constitute to 100%, this error is thrown
       “Investment Experience is missing.”If ‘investmentExperience’ is missing in payload, this error is thrown
      “Financial information is missing.”If ‘financialInformation’  is missing in payload, this error is thrown
      Source(s) of Wealth is missing.If sourcesOfWealth are missing, this error is thrown
      “Regulatory Information is missing.”If ‘regulatoryInformation’ are missing, this error is thrown
      “Investment Objectives are Mandatory.”If ‘investment objectives’ are missing, this error is thrown
       “Unrecognized property:’isUsTaxResident’”,If ‘usTaxresident’ are missing, this error is thrown
      “Unrecognized property:’hasExpirationDate’”,If ‘hasExpirationDate’ is missing in POI document
      “Unsupported value. Property:’customerType’, value:’INDIVIDUAL’”Enter customer type = ‘Individual’
      “Unsupported value. Property:’knowledgeLevel’, value:’LMT’”Enter knowledgelevel= ‘Limited’
      “Unsupported value. Property:’knowledgeLevel’, value:’NO KnowledgeEnter knowledgeLevel= ‘Limited’, ‘Good’ or ‘Extensive’
       “Unsupported value. Property:’assetClass’, value:’opt’”,Enter assetClass should be in capital ‘OPT’
       “Issuing country in Identification node for Account Holder is missing.”Enter Issuing country in Identification node (Issuing country of the ID document)
      “Valid identification is missing for Account Holder. Please provide valid identification such as SSN, SIN, Passport, National Card, Alien Card, or Driver’s License or Tax Id.”Provide valid ID. Refer to: https://www.interactivebrokers.com/campus/ibkr-api-page/web-api-account-management/#associatedindividual-25
      Invalid value for Total Assets in financialInformation node. Total Assets must be a positive value.Invalid value provided for totalAssets
      Exception for accounts Incorrect Investment Objective specified. occurred.If investmentObjectives is invalid/does not match an accepted value this error is thrown. See details here.
      Incorrect Asset Class specified.If assetClass attribute inside the investmentExperience is invalid or missing, the following is thrown.
      Asset Experience is missing.If assetClass is absent from JSON, this error is thrown
      Knowledge level is missing for asset class BOND in AssetExperience node.If knowledgeLevel in assetExperience is missing or blank the following error is thrown
      Years trading is missing for asset class BOND in AssetExperience node.If yearsTrading in assetExperience is missing or blank this error is thrown
      Trades per year is missing for asset class BOND in AssetExperience node.If tradesPerYear in assetExperience is missing or blank this error is thrown
      SourcesOfWealth must include SOW-IND-Income when employmentType is EMPLOYED.If employmentType is Employed, then one SOW type must be “Income”
      Description is missing for Source Type SOW-IND-Other.If the description is missing for the “Other” SoW type, this error is thrown
      Source Type for sourceOfWealth is either missing or is invalid.If the sourceType for the sourcesOfWealth is missing or an invalid value this error is thrown
      At least one sourceOfWealth must be used to fund the account.If there are no sourceofWealth nodes or if they are all set to false for funding the account, this error is thrown
      Percentage is required ONLY when SourceOfWealth is used to fund the account.If percentage is included (other than 0) for an SoW that is not being used to fund the account, this error is thrown
      Exception for accounts * Financial Criteria checks for Capabilities failed: {financial=Liquid Net Worth must be greater than USD 20,000.} occurred.If the liquidNetWorth value is less than 20,000 then this error is thrown
      Exception for accounts * Financial Criteria checks for Capabilities failed: {est_net_worth=Your Liquid Net Worth cannot be larger than Net Worth} occurred.If the netWorth is less than the liquid net worth this error is thrown
      Invalid values for Net Worth, Liquid Net Worth and Annual Net Income in FinancialInformation node.If netWorth, liquidNetWorth, or annualNetIncome are missing from financialInformation node this error is thrown
      NOT valid – nullIf an invalid character is entered in the attributes in financialInformation node the following is thrown (including a letter, comma, space instead of only numbers)
      Customer Type null or invalid (not INDIVIDUAL, UGMA, UTMA, JOINT, TRUST or ORG)If the type attribute in the customer node is blank or an invalid value this error is thrown
      Attribute prefix at the Customer level is missing.If the prefix value is blank or missing this error is thrown
      NullPointerException
      Code is either invalid or is missing in Regulatory Details.If the code attribute in regulatoryDetail is invalid or blank this error is thrown
      String index out of range: 0If an attribute is blank this error is thrown. Example status is blank within regulatoryDetail.
      Total Percentage from SourcesOfWealth used to fund the account is 95%. It MUST add to 100%.If SOW percentage doesnt add to exactly 100%, this error is thrown
      All usernames starting with the prefix, <insertPrefixHere> are already taken. Please use a different prefix.Indicate that all valid combinations (000 – 999) have been taken for that specific prefix. Please fix the prefix included within customer and users  node and resubmit.
      Following US Indicia checks came back positive.For Non-US Applicants, US Indicia check will come back positive IF any of the below conditions are met:
      ‘United States’ OR ‘USA’ is provided within countryOfBirth
      IssuingCountry (Identification
      Citizenship, Citizenship2, Citizenship3 (Identification
      country (mailingAddress OR Residence) 
      phone

      – Country of permanent or mailing address in AML/account opening documentation different from the country code in box 9 of the W8BEN
      – Address (permanent or mailing address) where the customer has not claimed tax residency
      – Address in Guernsey, Jersey, Gibraltar, or Isle of Man but the customer did not indicate tax residency there
      “Unsupported value. Property:’customerType’, value:’individual

      AssociatedIndividual 

      Error MessageExplanation
      Must be at least 18 to open accountIndividual must be at least 18 years old to open account.
      Marital Status Type for Individual is missingIf Marital Status is missing, then this error is thrown
      Employment Type for Individual is missing.If employmentType is missing, blank or invalid the error is thrown
      American SSN is invalid.If the ssn attribute in Identification node is blank or invalid this error is thrown
      SSN or EIN must be provided for transfersif ssn attribute is missing from extPostisionTransfer node this error is thrown
      Customer <externalID> – State code <stateCode> is not validIf the state in any node is invalid this error is thrown
      Name in Native Language is missing for Account HolderName in Native Language is missing for Account Holder.
      Details in NativeName Node must be provided in Native Language for Account Holder.Values in nativeName node provided in English
      Name of Individual is missing for Account HolderMissing Name node
      Middle Name in English Language for Account Holder is missing.Middle name is included in nativeName and missing in Name node
      Date of Birth format for Account Holder is invalid. Expected format is yyyy-mm-dd.Error will be thrown if DOB is any value other than yyyy-mm-dd.Following formats are validated for all the test cases listed below.97-12-24 (Invalid Year format)24-12-1997 (Invalid order)1997/12/24 (Invalid separator)1997-12-24T07:00:00.000Z (Time stamp included)1997-02-29 (29th in non-leap year)1997-13-24 (Invalid Month)1997-12-24a (Characters in date)1990-12-32 (Invalid day)1990-8-8 0000-00-001990-12-12
      Employer country and residence country details is mandatory for Account Holder.Country of employment is different from the country of residenceAddress and emplcountryRescountryDetail is missing from employmentDetails node.
      PO Box not accepted as residential addressWe validate street1 and street2 to ensure that PO Box is not being provided within residenceAddress. Refer to validations.
      Mobile  Number <insertNumber> is invalid.Phone Number provided is invalid. We use Google API to validate the Phone Number. The API allows for country code to be passed along with the phone number, details are outlined Phone. Google Phone Library to version 8.12.2 (https://github.com/google/libphonenumber).
      Foreign Tax Id must be atleast 6 alphanumeric characters in Formw8BEN for Account HolderforeignTaxId within w8Ben needs to be greater than 6 characters.
      part29aCountry is a Non treaty Country in Formw8BEN for Account Holderpart29aCountry within w8Ben does not have a tax treaty with the United States. N/A is acceptable for part29aCountry AND treatyCountry. United States Treaty Countries (part29aCountry): https://www.irs.gov/businesses/international-businesses/united-states-income-tax-treaties-a-to-zCanada Treaty Countries (treatyCountry): https://www.canada.ca/en/department-finance/programs/tax-policy/tax-treaties/in-force.htmlAustralia Treaty Countries (treatyCountry): https://treasury.gov.au/tax-treaties/income-tax-treaties
      Residential and Employer Address for Individual are same.If "employmentType":“EMPLOYED" or employerAddress cannot be the same as residenceAddress OR mailingAddress otherwise you will receive an error. If the applicant works remotely, please provide the Legal Address of the Employer. "employmentType": "SELFEMPLOYED" THEN  employerAddress can be the same as Residence OR mailingAddress.
      Employer country and residence country details is mandatory for Account HolderWhen the country included within residenceAddress node is different from the country included within employerAddress node, THEN emplCountryResCountryDetails is required within the <employmentDetails> node.
      Unable to determine client IB entity. Kindly provide valid Residence country and Legal Residence Country.Advisor/broker cannot open an account for the applicant due to the legalResidenceCountry or country within <residence> of the applicant.

      United States: Available to U.S. based IB-LLC advisors/brokers only.

      Canada: Available to IB-CAN advisors/brokers only.

      Hong Kong: Available to IB-HK advisors/brokers only.

      Australia: Available to IB-AU advisors/brokers only.

      Japan: Available to IBLLC advisors/brokers that are FSA Registered only.

      United Kingdom: Available to IB-UK advisors/brokers only.
      Singapore: Available to IB-SG advisors/brokers only.

      EEA: Available to IB-IE or IB-CE advisors/brokers only.

      EEA Countries: Austria, Czech Republic, Germany, Italy, Malta, Romania, Belgium, Denmark, Greece, LatviaNetherlands, Slovakia, Bulgaria, Estonia, Hungary, Liechtenstein Norway Slovenia, Croatia,Finland, Iceland, Lithuania, Poland, Spain, Cyprus
      Prohibited Country listed Residence / Employer Address / Mailing Address.[residence/employer address/ mailing Address] <countryCode> for Account Holder is prohibited.
      Description for Occupation is missing for Account Holder with externalId ..Error triggered if ‘other’ is provided as employerBusiness OR occupation AND description is missing. See employmentDetails
      Customer externalId- Country non-existent [name = States]The error was triggered because invalid country provided. For country, IBKR requires
      3 Digit ISO Code
      .
      The country of legal residence [United States] is not accepted for clients of this advisor
      Employment Type [Employed] for Account Holder is invalidEmployment type must be in Capital letters. For eg: “employmentType”: “EMPLOYED”
      “The residential country [Australia] or country of legal residence [Australia] is not accepted as clients of advisor with IB entity IBLLC-US.”Australian accounts must be created under IB-AU brokers
      “Country in Employer address Node for Account Holder is missing.”If ‘Country’ Employer address is missing, this error is thrown 
      “City in Residence Node for Account Holder is missing.”If ‘City’ in Residence node is missing, this error is thrown
      “Unrecognized property:’residence’”,If ‘residenceAddress’ is missing in payload, this error is thrown
       “Unrecognized property:’hasSameMailAddress’”,If ‘sameMailAddress’ is missing in payload, this error is thrown
       “Employment Type for Account Holder is missing.”If ’employmentType’  is missing in payload, this error is thrown
      “value”: “Mobile Number 0022960414 is invalid.”If mobile number is Invalid 
      “Date of Birth format for Account Holder is invalid. Expected format is yyyy-mm-dd.”DOB must be in yyyy-mm-dd  Format
      “Employment Type [Retired] for Account Holder is invalid.”Employment type must be in Capital letters. For eg: “employmentType”: “RETIRED”

      accounts

      Error MessageExplanation
       “Fee template called [Test template] not found for master [account ID]”FEE_TEMPLATE_NOT_FOUND response will be returned IF no fee template is applied OR if fee configuration applied is not defined by template. Eg: You can add fee template as ‘No fees’ if no fee template exists.
      Create account where “Australian Accounts are not allowed under IBLLC-US Advisors”Australian accounts must be created under IB-AU brokers
      “Canadian legal resident client cannot be client of this advisor as FA is not based in Canada”Canadian accounts must be opened under FA based in Canada
      Error “product”: “STK”Enter assetclass as  ‘Stock’
      “Unsupported value. Property:’assetClass’, value:’BONDS’”,Enter assetclass as ‘Bond’
      Account base currency is either missing or is invalid.If the baseCurrency in the account is invalid or missing this error is thrown
      Fee details type is mandatory and should be in the list of acceptable values.If type attribute is missing from the automatedFeesDetails node then this error is thrown
      Error processing advisor wrap fees: {type=required}If node automatedFeesDetails in advisorWrapFees node is missing this error is thrown
      Advisors must specify the fees scheme for the acctAdvisors may charge their clients for services rendered either through automatic billing, electronic invoice or direct billing. You determine the advisor fees at the time of the client’s registration, and may modify these at any time in Account Management. The fee will be specified within the Accounts Node using advisorWrapFees OR Fees.
      Advisors must specify the fees scheme for the account.For advisor clients, fee schema needs to be defined within advisorWrapFees OR feeTemplateName. Details can be found here.

      users

      Error MessageExplanation
      Create account where city is missing.
      Already ProcessedexternalId must be unique for each request. If the externalId has already been processed; you will receive error “Already Processed” Please resubmit the request using a new unique externalId/getResponseFile can be used to pull application details based on externalId.
       “External User Id 46781USR in User node is already in use. Please provide a different id.”If External ID has already been used, this error is thrown. Please create and update a new external ID

      documents

      Error MessageExplanation
      Unrecognized property:’isAuthorizedToSignOnBehalfOfOwnerIf inocrrect format entered. Enter “authorizedToSignOnBehalfOfOwner” as object in payload
      “Valid MIFIR Document Type for United Kingdom : National ID”If invalid MIFIR ID is submitted this error thrown. 
      “Foreign Tax Id in W8Ben node for Account Holder should match TIN in TaxResidencyForeign Tax Id and TIN number must be the same
      Prohibited Country Questionnaire is mandatory for Account HolderTriggered if countryOfBirth is a ‘Prohibited Country’and prohibitedCountryQuestionnaire is missing.
      Prohibited Country Questionnaire is mandatory for Account HolderIf citizenship, citizenship2, citizenship3 or countryOfBirth is prohibited country then prohibitedCountryQuestionnaire is required.
      Unable to process documents::java.sql.SQLIntegrityConstraintViolationException: ORA-02291: integrity constraint (IBCUST.TOSEND_FKDOCUMENTID) violated – parent key not foundfileName within Documents exceeds 20 characters.
      Proof of Identity Type (Form 8001) is either missing or is incorrectproofOfIdentityType within Documents is not valid or is missing. The data is space and case sensitive.
      Proof of Address Type (Form 8002) is either missing or is incorrectproofOfAddressType within Documents is not valid or is missing. The data is space and case sensitive.
      Signature not accepted.signedBy within Documents must match the submitted: first name middle initial (if applicable) last name suffix (if applicable). The data is case and space sensitive.
      I/O error file processingThis error is triggered when the fileName included in the documents section of the application is not submitted to IBKR. Resubmit the form to IBKR using DocumentSubmission
      File has a different SHA-1 check sum in the archived originalThis error is triggered when the sha1Checksum stored in the database is different from the sha1Checksum that is stored in the database. Error is triggered when an outdated document is submitted. Instructions to pull forms can be found here. Instructions to resubmit forms can be found here.
      Local Tax Form is missing for TaxAuthority AUSTRALIA_TA Local Tax Form is missing for TaxAuthority CANADA_TAThis error is triggered when Canada or Australia permissions are requested AND localTaxForms is missing from w8Ben.
      Expiration Date for Identification Document (Form 8001)Expiration Date for Proof of Identity document is required of proofOfIdentityType is Passport OR Drivers License
      Error MessageExplanation
      Contains non ASCII character.Only ASCII Characters are supported. Error will be thrown if Non-ASCII characters are included.
      Invalid payload for security policy: SIGNED_JWTTriggered for one of two reasons:
      1. Request includes Non-ASCII Characters.
      2. JWT is wrapped within JSON structure. We expect JWT Token directly. Meaning, it should be application/jwt instead of application/json.

      Registration Options

      The IBKR systems including Registration, Client Portal, and Emails can be customized (free of cost) to reflect your company branding including logo, company name, and theme file.

      Instructions to configure White Branding :

      Embed IBKR Hosted Application to Website

      Embed the Fully Electronic application on your website, when the client clicks on the application link, they will be redirected to the IBKR hosted Application that is White Branded. Client will complete the application (in full) through the IBKR application and submit to
      IBKR for processing.

      • Display own agreements /pre-qualification questions (if needed)
      • Available to Registered Advisors and Introducing Brokers free of cost
      • Minimal development work involved
      • Registration process 100% Electronic
      • Application hosted by IBKR

      Configure White Branding for Emails AND Client Portal, The Registration System, Statements, and PortfolioAnalyst

      1. The IBKR Portal can be customized (free of cost) to reflect your company branding including logo, company name, and theme file. Generate URL to the Application
      2. From IBKR Portal, select Settings > Client Account Template.  
      3. Select ‘Chain’ icon
      4. Copy Hyperlink
      5. Embed Hyperlink to website
      6. You can ask pre-qualification questions/display your own forms then drive the client to a specific Client Account Template based on the answers.

      Send Fully-Electronic Application to your Client

      Initiate an email invitation to your potential client, who is then required to complete the application online electrically using the Fully-Electronic application.

      • Available to Registered Advisors and Introducing Brokers free of cost
      • No development work involved
      • Registration process 100% Electronic
      • Application hosted by IBKR

      Tools available to help simplify the Fully-Electronic Application:

      • Account Templates: Client account template is used to simplify application. Use Account Template to specify Account Type, Base Currency, Trading Capabilities, Trade Permissions, Financial Information, and Fee Configuration.
      • CRM: Use the CRM Tool to Pre-Populate the Fully-Electronic Application. The client will receive an email with the prefilled application. The CRM tool and the use of a client account template would populate 90% of the application. Once completed, the client can submit the application back to Interactive Brokers electronically.
        • Add Contacts to IBKR’s CRM manually OR in bulk using import feature.
        • Initiate Invite from CRM Contact
        • Select ‘Contacts’ > Select Individual Contact > Select icon to send Application Invite > Specify Application Method (Fully-Electronic)
        • Use Template?
        • If Yes, select Template
        • Prospect will receive an email invitation to start the IBKR application.
        • When prospect clicks on hyperlink to start the application, the application will be pre-filled with data that was entered in the CRM/Template. The client can modify information if needed.
        • The user will be required to enter the following information:
          • Create username and password
          • Specify 3 security questions and answers
          • Answer regulatory information
          • Specify funding
          • Specify information for second holder (For Joint Accounts Only)
      • Once completed, the client can submit the application back to Interactive Brokers electronically.

      Complete Semi-Electronic Application for your Client

      With the Semi-Electronic, you will complete an electronic application online for your potential client. At the end of the process, you will generate a PDF application. Provide the PDF application to prospect client for review and signing (physical signature is required).

      • Available to Registered Advisors and Introducing Brokers free of cost
      • No development work involved
      • Signed Government Issued ID + Physical Signature required for the application
      • Application hosted by IBKR

      IBKR’s CRM can be used to pre-fill the Semi-Electronic Application.

      Mass Upload

      Mass upload is designed for advisors/brokers that are seeking an efficient way to move 20+ clients over to IBKR in a seamless manner. Rather than completing individual applications for each account, accounts can be opened in bulk by providing application data in Excel Workbook.

      • Available to Registered Advisors and Introducing Brokers free of cost
      • Registration process 100% Electronic
      • Application hosted by IBKR
      • Bulk  Upload for existing client base
      1. IBKR will provide FA/Broker with spreadsheets by account type.
      2. FA/BRoker will complete the spreadsheets with client information and submit to IBKR for Processing.
      3. IBKR will upload the accounts and provide the FA/Broker with the account credentials.
      4. Advisor/Broker will provide their clients with the credentials.
      5. Client will need to log into the IBKR White Branded Portal to review application information and electronically sign the IBKR agreements /disclosures.

      An existing IB account can link under the Advisor/Broker directly through Client Portal.

      • Available to Registered Advisors and Introducing Brokers free of cost
      • Registration process 100% Electronic
      1. Initiate Linkage Request
        • Option 1: Embed URL on your site where user can submit request to link to your master.
          • https://ndcdyn.interactivebrokers.com/sso/Login?forwardTo=AA_LINKAGE&masterAccountId=<InsertMasterAccountIDHere>
        • Option 2: Mutual client will initiate request to link to the advisor/broker within Client Portal > Settings > Account Settings > Create, Move, Link or Partition an Account.
      2. Confirm Linkage Request
        • An email will be sent to the Advisor/Broker to inform them of the request. The Advisor/Broker must accept the linkage request (in Pending Items) before the account is linked.

      Full Integration- Client Registration with Web API

      Available for Advisors/Brokers that would like to customize the Registration System, Portal, and Funds and Banking System. Account Management web API is used as an alternative to the IB hosted Portal.

      • Intended for advisors/brokers who have working knowledge of OAuth 2.0 and JSON.
      • Control look, feel, flow of the application
      • Registration process 100% Electronic
      • Application hosted by Counterparty
      • Management approval is required- requests are reviewed on a case by case basis.
      • Generally advisors/brokers that plan on bringing over 100 + accounts within the first quarter OR 50M USD are eligible for this service.
      • Hosting advisors and brokers are subject to both an upfront and ongoing fee intended to offset the costs incurred by IBKR for vetting the initial request and to conduct an annual review of the hosted application. This annual review is intended to ensure that the hosted application has been updated to reflect changes IBKR has implemented to its own application and that no other changes which would cause IBKR to reject the hosted arrangement have been introduced by the advisor or broker.
      1. The Advisor/IBroker builds an interface on their website to collect all required IBKR application fields + collect signature for the IBKR agreements /Disclosures
      2. The Advisor/IBroker sends all data and signed agreements and disclosures to IBKR (in JSON format) using Web API.
      3. IBKR retrieves the files and provides a response file. Response will have a status of Success or Error. Any errors will be corrected by the Advisor/IBroker and then resubmitted.
      4. Successful response files will include the IB account #, username, temporary password, and confirmation of the agreements/disclosures that were successfully processed + pending registration tasks (if any) that are required for approval.
        • If no registration tasks are included in the response file, the account will be submitted for approval.
        • If registration tasks are included, the registration tasks will need to be completed in order for the account to proceed with the approval process.
      5. The Advisor/IBroker is responsible for providing the account numbers, usernames and temporary passwords to their clients.
      6. The client will be prompted to reset his or her password and enter three security questions the first time they login to IBKR Portal after the account has been approved and opened.

      Hybrid

      Provide IBKR with partial account data via Web API. Client will complete the remaining applications steps via the IBKR hosted application (white branded).

      • Advisor/Broker can direct the client to IBKR’s login page (white branded) or create single sign on session to complete remaining application steps.
      • Intended for advisors/brokers who have working knowledge of JSON and OAuth 2.0.
      • Registration process 100% Electronic
      • Application hosted by IBKR
      • Moderate development work involved

      Workflow for Advisor and Fully-Disclosed clients

      1. Create Account with IBKR 
        • Submit partial application data to IBKR using accounts endpoint.
          • Minimally, we will require Name, Email, Country of Residence to create an account.
          • Required Fields
        • IBKR will return a real-time response with the account credentials and pending tasks.
      2. Direct user to IBKR Portal to complete remaining application steps.
        • Create single sign on session to seamlessly connect user to the IBKR Portal.
        • The IBKR Portal can be customized (free of cost) to reflect your company branding including logo, company name, and theme file. This can be configured directly within IBKR Portal.
      3. Set Password and Complete Email Verification (Optional)
        • IBKR authentication with username and password is required IF setting / changing banking instructions OR facilitating withdrawals within the IBKR Hosted Portal.
        • API supports creation of ACH instructions for U.S. Based Clients. For all other clients, banking instructions for withdrawals will need to be added within the IBKR Portal; which means password will need to be set on the account.
        • IBKR provides 2 options for setting password (if option 2, post approval, skip to step 4).
        • Option 1: Set Password During Registration (Suggested)
          • Upon accessing IBKR Portal, user will be prompted to enter temporary password (that was included in the response file) + set new password.

            IBKR will send email confirmation toke to verify the identity. Email will be branded with your company logo and return email address.

            Sample email

            Password change has been processed.
        • Option 2: Set Password Post Approval
          • Counterparty will direct user to IBKR’s Password Reset Tool to set password.
          • User enters IBKR username and date of birth.
          • IBKR will send SMS token to verify identity.
          • User will set password and complete email verification.
      4. User completes remaining application steps.
        • Application will be pre-filled with information that was included in the XML file to create the account.
        • Screen 1: About You
        • Screen 2: Configure Your Trading Account
        • Screen 3: Agreements and Disclosures
        • Screen 4: Application Status

      Flow Chart

      Under construction, check back later!

      test.html

      Legacy Documentation

      Please be advised that DAM API using XML is considered legacy and has been discontinued.

      • Information pertaining to Legacy Documentation can be found here.

      This documentation is solely provided to assist existing clients using the legacy API until their transition is complete. For any questions or assistance with this transition, please contact our API support team at am-api@interactivebrokers.com.

      IBKR Campus Newsletters

      This website uses cookies to collect usage information in order to offer a better browsing experience. By browsing this site or by clicking on the "ACCEPT COOKIES" button you accept our Cookie Policy.