### Get Participating Banks Request Example
Source: https://api.ibkr.com/gw/api/v3/api-docs
Example of a query parameter to fetch a list of participating banks for a specific type, e.g., 'eDDA'.
```json
{
"value": "eDDA"
}
```
--------------------------------
### Get Participating Banks Response Example
Source: https://api.ibkr.com/gw/api/v3/api-docs
Example response listing participating banks with their institution name, clearing code, and BIC.
```json
{
"type": "eDDA",
"participatingBanks": [
{
"institutionName": "WELAB BANK LIMITED",
"clearingCode": "390",
"BIC": "WEDIHKHHXXX"
},
{
"institutionName": "INDUSTRIAL AND COMMERCIAL BANK OF CHINA (ASIA) LIMITED",
"clearingCode": "072",
"BIC": "UBHKHKHHXXX"
},
{
"institutionName": "FUSION BANK LIMITED",
"clearingCode": "391",
"BIC": "IFFUHKHHXXX"
},
{
"institutionName": "CITIBANK (HONG KONG) LIMITED",
"clearingCode": "250",
"BIC": "CITIHKAXXXX"
}
]
}
```
--------------------------------
### Query IRA Contributions Example
Source: https://api.ibkr.com/gw/api/v3/api-docs
Shows an example of a pending response for querying IRA contributions. The instruction status indicates that the query is being processed and requires polling.
```json
{
"status": 202,
"instructionSetId": 18640,
"instructionResult": {
"accountId": "U1032333",
"year": "2022",
"ibReferenceId": 0,
"clientInstructionId": 7013306,
"instructionType": "QUERY_IRA_CONTRIBUTIONS",
"instructionStatus": "PENDING",
"instructionId": 43134474,
"description": "Query is being processed. Please poll for status 1 minutes later using FB status endpoint. No new queries will be allowed before this one is processed "
}
}
```
--------------------------------
### Deposit Funds - Recurring Example
Source: https://api.ibkr.com/gw/api/v3/api-docs
Sets up a recurring deposit into an IBKR account, specifying the start date and monthly frequency.
```json
{
"instructionType": "DEPOSIT",
"instruction": {
"clientInstructionId": 7013047,
"accountId": "U46377",
"currency": "USD",
"amount": 100,
"bankInstructionMethod": "WIRE",
"sendingInstitution": "Sending Institution name",
"identifier": "indentifier",
"specialInstruction": "U46377",
"bankInstructionName": "Instruction",
"senderInstitutionName": "Senders Institution name",
"recurringInstructionDetail": {
"instructionName": "Arkansas-Test-Instr",
"startDate": "2023-10-16",
"frequency": "MONTHLY"
}
}
}
```
--------------------------------
### Bad Request Response Example (400)
Source: https://api.ibkr.com/gw/api/v3/api-docs
This example shows a typical response for a bad request, indicating missing or invalid parameters. Check the `invalidArguments` field for details on what needs correction.
```json
{
"type": "/invalid-argument",
"title": "Bad Request",
"status": 400,
"detail": "Input is not a JSON Object or doesn't contain all expected fields",
"invalidArguments": [
{
"field": "iraContributionType",
"description": "Invalid or Missing required parameter"
},
{
"field": "iraTaxYearType",
"description": "Invalid or Missing required parameter"
}
]
}
```
--------------------------------
### Bad Request Response Example for Participating Banks
Source: https://api.ibkr.com/gw/api/v3/api-docs
Example of a problem detail response for a bad request when fetching participating banks, indicating missing fields.
```json
{
"type": "/simple",
"title": "Bad Request",
"status": 400,
"detail": "Request path does not contain all expected fields, please consult provided documentation, escalate to IB contact if issue persists"
}
```
--------------------------------
### Internal Position Transfer Request Example
Source: https://api.ibkr.com/gw/api/v3/api-docs
Demonstrates the structure for creating a bulk internal asset transfer. Includes examples with conid and with security ID details. Note the optional trade and settle dates and transfer price.
```json
{
"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": {
"tradingInstrumentDescription": {
"securityIdType": "ISIN",
"securityId": "459200101",
"assetType": "STK"
},
"currency": "USD"
}
},
{
"clientInstructionId": 7013043,
"sourceAccountId": "U399192",
"targetAccountId": "U87440",
"transferQuantity": 6,
"tradingInstrument": {
"conid": 21323,
"currency": "USD"
},
"tradeDate": "2025-02-17",
"settleDate": "2025-02-25",
"transferPrice": 100.3456789
}
]
}
```
--------------------------------
### Asynchronous Instruction Response Example
Source: https://api.ibkr.com/gw/api/v3/api-docs
Example of an asynchronous instruction response, indicating that the request has been accepted and is being processed. The status code 202 signifies acceptance.
```json
{
"instructionResult": {
"clientInstructionId": 7008152,
"instructionType": "INTERNAL_POSITION_TRANSFER",
"instructionStatus": "PENDING",
"instructionId": 43092590
},
"instructionSetId": 2614,
"status": 202
}
```
--------------------------------
### Scanner Results Example
Source: https://api.ibkr.com/gw/api/v3/api-docs
An example response for a 'Top Trade Count' scanner request, detailing contract information such as symbol, conId, and company name.
```json
{
"contracts": [
{
"server_id": "0",
"column_name": "Trades",
"symbol": "TSLA",
"conidex": "76792991",
"con_id": 76792991,
"available_chart_periods": "#R|1",
"company_name": "TESLA INC",
"scan_data": "221.521K",
"contract_description_1": "TSLA",
"listing_exchange": "NASDAQ.NMS",
"sec_type": "STK"
},
{
"server_id": "1",
"symbol": "SPY",
"conidex": "756733",
"con_id": 756733,
"available_chart_periods": "#R|1",
"company_name": "SPDR S&P 500 ETF TRUST",
"scan_data": "123.661K",
"contract_description_1": "SPY",
"listing_exchange": "ARCA",
"sec_type": "STK"
}
],
"scan_data_column_name": "Trades"
}
```
--------------------------------
### Bad Request Response Example
Source: https://api.ibkr.com/gw/api/v3/api-docs
Example of a 400 Bad Request response, indicating issues with the input data format or missing required fields. Lists the specific invalid arguments.
```json
{
"type": "/invalid-argument",
"title": "Bad Request",
"status": 400,
"detail": "Input is not a JSON Object or doesn't contain all expected fields",
"invalidArguments": [
{
"field": "accountId",
"description": "Missing required parameter"
}
]
}
```
--------------------------------
### Query Withdrawable Funds Without Origination Hold Example
Source: https://api.ibkr.com/gw/api/v3/api-docs
This example demonstrates querying withdrawable funds, including those that might be subject to origination holds, by providing bank routing and account numbers. This is useful for specific transfer scenarios.
```json
{
"instructionType": "QUERY_WITHDRAWABLE_FUNDS",
"instruction": {
"clientInstructionId": 7009006,
"accountId": "U139838",
"currency": "USD",
"bankRoutingNumber": "122199983",
"bankAccountNumber": "9876543210"
}
}
```
--------------------------------
### Business Reject Response Example
Source: https://api.ibkr.com/gw/api/v3/api-docs
Example of a 422 Unprocessable Entity response, indicating a business-level error with the request data. Includes details about the error and instruction status.
```json
{
"type": "/simple",
"title": "Business Error",
"status": 422,
"detail": "Funds & Banking: Server cannot process your request because it contains invalid data",
"instructionSetId": 29367,
"instructionResult": {
"clientInstructionId": 7013593,
"instructionType": "INTERNAL_POSITION_TRANSFER",
"instructionStatus": "REJECTED",
"instructionId": 43147085,
"error": {
"errorCode": "CORRUPT_DATA_INVALID_ACCT",
"errorMessage": "Account U1969557 does not exist"
}
}
}
```
--------------------------------
### Deposit Funds Example
Source: https://api.ibkr.com/gw/api/v3/api-docs
Illustrates how to create multiple deposit instructions for external cash transfers. Supports various methods and includes fields for sender information.
```json
{
"instructionType": "DEPOSIT",
"instructions": [
{
"clientInstructionId": 7013002,
"accountId": "U46377",
"currency": "USD",
"amount": 100,
"bankInstructionMethod": "WIRE",
"sendingInstitution": "Sending Institution name",
"identifier": "indentifier",
"specialInstruction": "U46377",
"bankInstructionName": "Instruction",
"fromAccountNumber": "U46377",
"senderInstitutionName": "Senders Institution name"
},
{
"clientInstructionId": 7013003,
"accountId": "U399192",
"currency": "USD",
"amount": 1,
"bankInstructionMethod": "WIRE",
"sendingInstitution": "Sending Institution name",
"identifier": "indentifier",
"specialInstruction": "U399192",
"bankInstructionName": "Instruction",
"fromAccountNumber": "U399192"
}
]
}
```
--------------------------------
### Get Account Ledger
Source: https://api.ibkr.com/gw/api/v3/api-docs
Get the given account's ledger data detailing its balances by currency.
```APIDOC
## GET /portfolio/{accountId}/ledger
### Description
Get the given account's ledger data detailing its balances by currency.
### Method
GET
### Endpoint
/portfolio/{accountId}/ledger
### Parameters
#### Path Parameters
- **accountId** (string) - Required - Account ID whose ledger data is requested. Example: DU123456
### Response
#### Success Response (200)
- **currency** (object) - Object containing ledger details for a specific currency.
- **acctcode** (string) - Account code.
- **cashbalance** (number) - Cash balance in the specified currency.
- **cashbalancefxsegment** (number) - Cash balance in the FX segment.
- **commoditymarketvalue** (number) - Market value of commodities.
- **corporatebondsmarketvalue** (number) - Market value of corporate bonds.
- **cryptocurrencyvalue** (number) - Market value of cryptocurrencies.
- **currency** (string) - The currency code (e.g., AUD).
- **dividends** (number) - Dividend amounts.
- **exchangerate** (number) - Exchange rate for the currency.
- **funds** (number) - Fund balances.
- **futuremarketvalue** (number) - Market value of futures.
- **futureoptionmarketvalue** (number) - Market value of future options.
- **futuresonlypnl** (number) - Profit and loss from futures only.
- **interest** (number) - Interest amounts.
- **issueroptionsmarketvalue** (number) - Market value of issuer options.
- **key** (string) - Key identifier for the ledger list.
- **moneyfunds** (number) - Money fund balances.
- **netliquidationvalue** (number) - Net liquidation value.
- **realizedpnl** (number) - Realized profit and loss.
- **secondkey** (string) - Secondary key for the ledger.
- **sessionid** (integer) - Session ID.
### Response Example
```json
{
"AUD": {
"acctcode": "DU5240685",
"cashbalance": 223911.11,
"cashbalancefxsegment": 0.0,
"commoditymarketvalue": 0.0,
"corporatebondsmarketvalue": 0.0,
"cryptocurrencyvalue": 0.0,
"currency": "AUD",
"dividends": 0.0,
"exchangerate": 0.650378,
"funds": 0.0,
"futuremarketvalue": 0.0,
"futureoptionmarketvalue": 0.0,
"futuresonlypnl": 0.0,
"interest": 83.04,
"issueroptionsmarketvalue": 0.0,
"key": "LedgerList",
"moneyfunds": 0.0,
"netliquidationvalue": 223994.16,
"realizedpnl": 0.0,
"secondkey": "AUD",
"sessionid": 1
}
}
```
```
--------------------------------
### Account Performance Response Example
Source: https://api.ibkr.com/gw/api/v3/api-docs
Details daily and yearly performance metrics for a specified account, including Net Asset Value (NAV) and percentage changes (CPS).
```json
{
"currencyType": "base",
"rc": 0,
"view": [
"DU123456"
],
"nd": 368,
"DU123456": {
"1D": {
"cps": [
0.0072
],
"dates": [
"20240426"
],
"freq": "D",
"nav": [
1390987.0689
],
"startNAV": {
"date": "20240425",
"val": 1381022.2557
}
},
"lastSuccessfulUpdate": "2024-04-26 16:46:42",
"start": "20230426",
"YTD": {
"nav": [
1282878.735,
1276778.8381,
1266973.7093,
1269544.0876,
1275904.7178,
1286495.4108,
1278482.2701,
1287268.6865,
1284200.338,
1288214.2064,
1287819.9539,
1277639.6851,
1270827.3223,
1278725.5502,
1300324.9852,
1306323.4495,
1312781.9571,
1318531.0656,
1350033.0327,
1345384.5102,
1353633.9766,
1363482.1133,
1333156.3611,
1344519.4922,
1376661.532,
1360247.6463,
1361492.1636,
1376329.6731,
1375083.087,
1385410.1315,
1389274.5528,
1357400.3407,
1375326.833,
1401881.315,
1392768.8561,
1392637.734,
1380291.0032,
1371910.9717,
1404606.7185,
1409284.2989,
1400208.3513,
1411555.9833,
1409076.0531,
1416808.8027,
1436450.7862,
1447601.0431,
1435855.0533,
1450679.9318,
1470146.1652,
1461837.0628,
1449412.6474,
1474938.4628,
1469694.3184,
1454799.0419,
1436627.4898,
1454960.951,
1463507.2659,
1484057.3961,
1492102.1686,
1482038.2329,
1470235.8767,
1470819.2095,
1492582.8971,
1491455.1209,
1491508.085,
1482332.7129,
1474991.5595,
1483721.5119,
1464972.9299,
1484912.3583,
1487204.0587,
1492210.8925,
1458260.3853,
1462342.5595,
1431112.3911,
1407166.8369,
1391683.8539,
1392370.552,
1393526.1221,
1387801.1381,
1405559.8818,
1436989.688,
1437102.1473,
1381022.2557,
1390987.0689
],
"cps": [
0,
-0.0047,
-0.0124,
-0.0104,
-0.0054,
0.0028,
-0.0034,
0.0034,
0.0011,
0.0042,
0.0039,
-0.0041,
-0.0094,
-0.0032,
0.0136,
0.0183,
0.0233,
0.0278,
0.0524,
0.0487,
0.0552,
0.0629,
0.0392,
0.0481,
0.0731,
0.0603,
0.0613,
0.0729,
0.0719,
0.0799,
0.083,
0.0581,
0.0721,
0.0928,
0.0857,
0.0856,
0.076,
0.0694,
0.0949,
0.0986,
0.0915,
0.1003,
0.0984,
0.1044,
0.1197,
0.1284,
0.1193,
0.1308,
0.146,
0.1395,
0.1298,
0.1497,
0.1456,
0.134,
0.1199,
0.1342,
0.1408,
0.1568,
0.1631,
0.1553,
0.1461,
0.1465,
0.1635,
0.1626,
0.1627,
0.1555,
0.1498,
0.1566,
0.142,
0.1575,
0.1593,
0.1632,
0.1367,
0.1399,
0.1156,
0.0969,
0.0848,
0.0854,
0.0863,
0.0818,
0.0957,
0.1202,
0.1202,
0.0765,
0.0843
],
"freq": "D",
"dates": [
"20240101",
"20240102",
"20240103",
"20240104",
"20240105",
"20240108",
"20240109",
"20240110",
"20240111",
"20240112",
"20240115",
"20240116",
"20240117",
"20240118",
"20240119",
"20240122",
"20240123",
"20240124",
"20240125",
"20240126",
"20240129",
"20240130",
"20240131",
"20240201",
"20240202",
"20240205",
"20240206",
"20240207",
"20240208",
"20240209",
"20240212",
"20240213",
"20240214",
"20240215",
"20240216",
"20240219",
"20240220",
"20240221",
"20240222",
"20240223",
"20240226",
"20240227",
"20240228",
"20240229",
"20240301",
"20240304",
"20240305",
"20240306",
"20240307",
"20240308",
"20240311",
"20240312",
"20240313",
"20240314",
"20240315",
"20240318",
"20240319",
"20240320",
"20240321",
"20240322",
"20240325",
"20240326",
"20240327",
"20240328",
"20240329",
"20240401",
"20240402",
"20240403",
"20240404",
"20240405",
"20240408",
"20240409",
"20240410",
"20240411",
"20240412",
"20240415",
"20240416",
"20240417",
"20240418",
"20240419",
"20240422",
"20240423",
"20240424",
"20240425",
"20240426"
],
"startNAV": {
"date": "20231229",
"val": 1282850.7632
}
},
"1Y": {
"nav": [
916213.1573,
947269.6089,
957495.9273,
955827.7745,
945030.5846,
937034.669,
928754.0554,
966711.5611,
967389.5776,
958171.7378,
968999.679,
970048.1735,
963499.6734,
965791.2424,
963532.7739,
981634.443,
1005143.7157,
1002358.3303,
1000701
]
}
}
}
```
--------------------------------
### Create Bulk Banking Instructions (Traditional Verification)
Source: https://api.ibkr.com/gw/api/v3/api-docs
Use this endpoint for traditional bank instruction verification, specifying pending instruction IDs and amounts. Ensure the `pendingInstructionId` is valid.
```json
{
"instructionType": "TRADITIONAL_BANK_INSTRUCTION_VERIFICATION",
"instructions": [
{
"clientInstructionId": 7013020,
"bankInstructionCode": "USACH",
"bankInstructionName": "ACH-Tst1Random172",
"accountId": "U117717",
"pendingInstructionId": 43086786,
"creditAmount1": 0.32,
"creditAmount2": 0.46
},
{
"clientInstructionId": 7013021,
"bankInstructionCode": "USACH",
"bankInstructionName": "ACH-Tst1Random172",
"accountId": "U117717",
"pendingInstructionId": 43086786,
"creditAmount1": 0.32,
"creditAmount2": 0.46
}
]
}
```
--------------------------------
### Create User
Source: https://api.ibkr.com/gw/api/v3/api-docs
Creates a new user.
```APIDOC
## POST /users
### Description
Creates a new user.
### Method
POST
### Endpoint
/users
### Request Body
- **createUser** (object) - Required - Details for creating a new user.
```
--------------------------------
### Withdraw Funds Example
Source: https://api.ibkr.com/gw/api/v3/api-docs
Demonstrates how to initiate multiple withdrawal instructions. Includes options for IRA-specific details and recurring transfers.
```json
{
"instructionType": "WITHDRAWAL",
"instructions": [
{
"clientInstructionId": 7012999,
"accountId": "U46377",
"bankInstructionName": "Test Withdrawal",
"bankInstructionMethod": "WIRE",
"amount": 123.45,
"currency": "GBP",
"dateTimeToOccur": "2023-11-20T09:12:13Z"
},
{
"clientInstructionId": 7013000,
"accountId": "U46377",
"bankInstructionName": "Test Withdrawal",
"bankInstructionMethod": "WIRE",
"amount": 123.45,
"currency": "GBP",
"dateTimeToOccur": "2023-11-20T09:12:13Z",
"iraWithdrawalDetail": {
"fedIncomeTaxPercentage": 10,
"stateIncomeTaxPercentage": 12,
"stateCd": "TE",
"iraWithholdType": "NORMAL"
}
},
{
"clientInstructionId": 7013001,
"accountId": "U46377",
"bankInstructionName": "Test Withdrawal",
"bankInstructionMethod": "WIRE",
"amount": 123.45,
"currency": "GBP",
"dateTimeToOccur": "2023-11-20T09:12:13Z",
"iraWithdrawalDetail": {
"fedIncomeTaxPercentage": 10,
"stateIncomeTaxPercentage": 12,
"stateCd": "TE",
"iraWithholdType": "NORMAL"
},
"recurringInstructionDetail": {
"instructionName": "Arkansas-Test-Instr",
"startDate": "2023-10-16",
"frequency": "MONTHLY"
}
}
]
}
```
--------------------------------
### Bad Request Example
Source: https://api.ibkr.com/gw/api/v3/api-docs
Illustrates a 400 Bad Request error response, indicating missing required parameters in the input.
```json
{
"type": "/invalid-argument",
"title": "Bad Request",
"status": 400,
"detail": "Input is not a JSON Object or doesn't contain all expected fields",
"invalidArguments": [
{
"field": "templateName",
"description": "Missing required parameter"
}
]
}
```
--------------------------------
### Not Found Response
Source: https://api.ibkr.com/gw/api/v3/api-docs
Example of a 'Not Found' response (status 404) when a requested instruction or resource cannot be found. The detail field provides more information about the missing resource.
```json
{
"type": "/simple",
"title": "Not found",
"status": 404,
"detail": "Funds & Banking: Could not get status for clientId: qatester, transactionId : 72308156"
}
```
--------------------------------
### Create Bulk Banking Instructions (ACH)
Source: https://api.ibkr.com/gw/api/v3/api-docs
Use this endpoint to create multiple ACH banking instructions. Ensure all required fields for ACH instructions are provided.
```json
{
"instructionType": "ACH_INSTRUCTION",
"instructions": [
{
"clientInstructionId": 7011149,
"bankInstructionCode": "USACH",
"achType": "DEBIT_CREDIT",
"bankInstructionName": "TestInstr",
"currency": "USD",
"accountId": "U117717",
"clientAccountInfo": {
"bankRoutingNumber": "202012983",
"bankAccountNumber": "101267576983",
"bankName": "JPM Chase",
"bankAccountTypeCode": 1
}
},
{
"clientInstructionId": 7011150,
"bankInstructionCode": "USACH",
"achType": "DEBIT_CREDIT",
"bankInstructionName": "TestInstr",
"currency": "USD",
"accountId": "U117717",
"clientAccountInfo": {
"bankRoutingNumber": "202012983",
"bankAccountNumber": "101267576983",
"bankName": "JPM Chase",
"bankAccountTypeCode": 1
}
}
]
}
```
--------------------------------
### Bulk Instruction Set Creation
Source: https://api.ibkr.com/gw/api/v3/api-docs
This endpoint accepts a bulk request to create various financial instructions asynchronously. It supports DELETE_BANK_INSTRUCTION, ACH_INSTRUCTION, TRADITIONAL_BANK_INSTRUCTION_VERIFICATION, PREDEFINED_DESTINATION_INSTRUCTION, and EDDA_INSTRUCTION types.
```APIDOC
## POST /v3/instructionSet
### Description
Accepts all instructions in a Bulk request to create them asynchronously.
### Method
POST
### Endpoint
/v3/instructionSet
### Request Body
- **instructions** (object) - Required - A set of instructions to be processed.
- **DELETE_BANK_INSTRUCTION** (array) - Optional - Instructions for deleting bank details.
- **clientInstructionId** (integer) - Required - Unique identifier for the client's instruction.
- **bankInstructionMethod** (string) - Required - The method of the bank instruction (e.g., "WIRE", "ACH").
- **currency** (string) - Required - The currency of the instruction.
- **ACH_INSTRUCTION** (array) - Optional - Instructions for ACH payments.
- **clientInstructionId** (integer) - Required - Unique identifier for the client's instruction.
- **bankInstructionName** (string) - Required - Name of the bank instruction.
- **bankInstructionMethod** (string) - Required - The method of the bank instruction (e.g., "ACH").
- **accountId** (string) - Required - The account ID associated with the instruction.
- **currency** (string) - Required - The currency of the instruction.
- **financialInstitution** (object) - Required - Details of the financial institution.
- **name** (string) - Required - Name of the financial institution.
- **branchCode** (string) - Optional - Branch code of the financial institution.
- **identifier** (string) - Required - Identifier of the financial institution (e.g., IFSC, BSB).
- **identifierType** (string) - Required - Type of the identifier (e.g., "IFSC", "BSB_AUD").
- **clientAccountId** (string) - Required - Client's account ID at the financial institution.
- **TRADITIONAL_BANK_INSTRUCTION_VERIFICATION** (array) - Optional - Instructions for verifying traditional bank details.
- **clientInstructionId** (integer) - Required - Unique identifier for the client's instruction.
- **bankInstructionName** (string) - Required - Name of the bank instruction.
- **bankInstructionMethod** (string) - Required - The method of the bank instruction (e.g., "WIRE", "ACH").
- **accountId** (string) - Required - The account ID associated with the instruction.
- **currency** (string) - Required - The currency of the instruction.
- **PREDEFINED_DESTINATION_INSTRUCTION** (array) - Optional - Instructions for predefined destination accounts.
- **clientInstructionId** (integer) - Required - Unique identifier for the client's instruction.
- **bankInstructionName** (string) - Required - Name of the bank instruction.
- **bankInstructionMethod** (string) - Required - The method of the bank instruction (e.g., "ACH").
- **accountId** (string) - Required - The account ID associated with the instruction.
- **currency** (string) - Required - The currency of the instruction.
- **financialInstitution** (object) - Required - Details of the financial institution.
- **name** (string) - Required - Name of the financial institution.
- **branchCode** (string) - Optional - Branch code of the financial institution.
- **identifier** (string) - Required - Identifier of the financial institution (e.g., IFSC, BSB).
- **identifierType** (string) - Required - Type of the identifier (e.g., "IFSC", "BSB_AUD").
- **clientAccountId** (string) - Required - Client's account ID at the financial institution.
- **eDDA_INSTRUCTION** (array) - Optional - Instructions for eDDA (Electronic Direct Debit Authorization).
- **clientInstructionId** (integer) - Required - Unique identifier for the client's instruction.
- **bankInstructionName** (string) - Required - Name of the bank instruction.
- **currency** (string) - Required - The currency of the instruction.
- **accountId** (string) - Required - The account ID associated with the instruction.
- **bankBranchCode** (string) - Required - Bank branch code.
- **bankAccountNumber** (string) - Required - Bank account number.
- **bankClearingCode** (string) - Required - Bank clearing code.
- **debtorIdentificationDocumentType** (string) - Required - Type of debtor identification document (e.g., "hkId").
### Responses
#### Success Response (202)
- **status** (integer) - HTTP status code, typically 202 for accepted.
- **instructionSetId** (integer) - Unique identifier for the instruction set.
- **instructionResults** (array) - An array of results for each instruction.
- **status** (integer) - Status of the individual instruction.
- **instructionSetId** (integer) - The ID of the instruction set this instruction belongs to.
- **instructionResult** (object) - Details of the instruction result.
- **clientInstructionId** (integer) - The client-provided ID for the instruction.
- **instructionType** (string) - The type of instruction processed.
- **instructionStatus** (string) - The status of the instruction (e.g., "PENDING").
- **instructionId** (integer) - Unique identifier for the processed instruction.
#### Partial Success Response (207)
- **status** (integer) - HTTP status code, typically 207 for multi-status.
- **instructionSetId** (integer) - Unique identifier for the instruction set.
- **instructionResults** (array) - An array of results for each instruction, which may include errors.
- **status** (integer) - Status of the individual instruction.
- **instructionSetId** (integer) - The ID of the instruction set this instruction belongs to.
- **instructionResult** (object) - Details of the instruction result.
- **clientInstructionId** (integer) - The client-provided ID for the instruction.
- **instructionType** (string) - The type of instruction processed.
- **instructionStatus** (string) - The status of the instruction (e.g., "PENDING", "REJECTED").
- **instructionId** (integer) - Unique identifier for the processed instruction.
- **error** (object) - Error details if the instruction was rejected.
- **errorCode** (string) - A code representing the type of error.
- **errorMessage** (string) - A human-readable message describing the error.
### Request Example
```json
{
"instructions": {
"DELETE_BANK_INSTRUCTION": [
{"clientInstructionId": 12003410, "bankInstructionMethod": "WIRE", "currency": "USD"},
{"clientInstructionId": 12003411, "bankInstructionMethod": "ACH", "currency": "USD"},
{"clientInstructionId": 12003412, "bankInstructionMethod": "WIRE", "currency": "USD"}
],
"ACH_INSTRUCTION": [
{"clientInstructionId": 7011149, "bankInstructionName": "Test-ACH-Instr", "bankInstructionMethod": "ACH", "accountId": "U399192", "currency": "USD", "financialInstitution": {"name": "SBI Bank", "identifier": "SBIN001000", "identifierType": "IFSC", "clientAccountId": "132456789"}},
{"clientInstructionId": 7011150, "bankInstructionName": "Test-ACH-Instr", "bankInstructionMethod": "ACH", "accountId": "U399192", "currency": "USD", "financialInstitution": {"name": "SBI Bank", "identifier": "SBIN001000", "identifierType": "IFSC", "clientAccountId": "132456789"}}
],
"TRADITIONAL_BANK_INSTRUCTION_VERIFICATION": [
{"clientInstructionId": 7011149, "bankInstructionName": "Test Delete", "bankInstructionMethod": "WIRE", "currency": "USD"},
{"clientInstructionId": 7011150, "bankInstructionName": "Test Delete", "bankInstructionMethod": "WIRE", "currency": "USD"}
],
"PREDEFINED_DESTINATION_INSTRUCTION": [
{"clientInstructionId": 7011169, "bankInstructionName": "Test-ACH-Instr", "bankInstructionMethod": "ACH", "accountId": "U399192", "currency": "USD", "financialInstitution": {"name": "SBI Bank", "identifier": "SBIN001000", "identifierType": "IFSC", "clientAccountId": "132456789"}},
{"clientInstructionId": 7011170, "bankInstructionName": "Test-ACH-Instr", "bankInstructionMethod": "ACH", "accountId": "U399192", "currency": "USD", "financialInstitution": {"name": "SBI Bank", "identifier": "SBIN001000", "identifierType": "IFSC", "clientAccountId": "132456789"}}
],
"eDDA_INSTRUCTION": [
{"clientInstructionId": 7013034, "bankInstructionName": "Test Instruction", "currency": "CNH", "accountId": "U8072517", "bankBranchCode": "003", "bankAccountNumber": "132456", "bankClearingCode": "003", "debtorIdentificationDocumentType": "hkId"},
{"clientInstructionId": 7013035, "bankInstructionName": "Test Instruction", "currency": "CNH", "accountId": "U8072517", "bankBranchCode": "003", "bankAccountNumber": "132456", "bankClearingCode": "003", "debtorIdentificationDocumentType": "hkId"}
]
}
}
```
### Response Example (202 Accepted)
```json
{
"status": 202,
"instructionSetId": 1522,
"instructionResults": [
{
"status": 202,
"instructionSetId": 1522,
"instructionResult": {
"clientInstructionId": 12003410,
"instructionType": "DELETE_BANK_INSTRUCTION",
"instructionStatus": "PENDING",
"instructionId": 11132283
}
},
{
"status": 202,
"instructionSetId": 1522,
"instructionResult": {
"clientInstructionId": 12003411,
"instructionType": "DELETE_BANK_INSTRUCTION",
"instructionStatus": "PENDING",
"instructionId": 11132284
}
},
{
"status": 202,
"instructionSetId": 1522,
"instructionResult": {
"clientInstructionId": 12003412,
"instructionType": "DELETE_BANK_INSTRUCTION",
"instructionStatus": "PENDING",
"instructionId": 11132285
}
}
]
}
```
### Response Example (207 Multi-Status)
```json
{
"status": 207,
"instructionSetId": 1523,
"instructionResults": [
{
"status": 202,
"instructionSetId": 1523,
"instructionResult": {
"clientInstructionId": 12003414,
"instructionType": "DELETE_BANK_INSTRUCTION",
"instructionStatus": "PENDING",
"instructionId": 11132286
}
},
{
"type": "/simple",
"title": "Business Error",
"status": 422,
"instructionSetId": 1523,
"instructionResult": {
"clientInstructionId": 12003415,
"instructionType": "DELETE_BANK_INSTRUCTION",
"instructionStatus": "REJECTED",
"instructionId": 11132287,
"error": {
"errorCode": "ERROR_ACCOUNT_CP_NOT_RELATED",
"errorMessage": "Account is not related to the client."
}
}
}
]
}
```
```
--------------------------------
### Business Error Response Example (422)
Source: https://api.ibkr.com/gw/api/v3/api-docs
This example illustrates a 422 Unprocessable Entity response, typically due to invalid data in the request. The `errorMessage` field will specify the business rule violation.
```json
{
"type": "/simple",
"title": "Business Error",
"status": 422,
"detail": "Funds & Banking: Server cannot process your request because it contains invalid data",
"instructionSetId": 2591,
"instructionResult": {
"clientInstructionId": 7008150,
"instructionType": "DEPOSIT",
"instructionStatus": "REJECTED",
"instructionId": 43092565,
"error": {
"errorCode": "NOT_IRA_ACCOUNT",
"errorMessage": "Account U46377 is not IRA"
}
}
}
```
--------------------------------
### List All Notifications
Source: https://api.ibkr.com/gw/api/v3/api-docs
Get a list of available notifications.
```APIDOC
## GET /fyi/notifications
### Description
Get a list of available notifications.
### Method
GET
### Endpoint
/fyi/notifications
### Parameters
#### Query Parameters
- **max** (integer) - Required - Specify the maximum number of notifications to receive. Can request a maximum of 10 notifications.
- **include** (string) - Optional - Include only the specified typecode notifications in the request.
- **exclude** (string) - Optional - Include all subscribed notifications except the typecodes passed here.
- **id** (string) - Optional - if more required, notifcationId of last notification should be used to define next batch border
### Response
#### Success Response (200)
- **R** (integer) - Read status (0 for unread, 1 for read)
- **D** (string) - Date
- **MS** (string) - Message subject
- **MD** (string) - Message details (HTML format)
- **ID** (string) - Notification ID
- **HT** (integer) - HTML type
- **FC** (string) - Financial instrument code
### Response Example
```json
[
{
"R": 0,
"D": "1710847062.0",
"MS": "FYI: Changes in Analyst Ratings",
"MD": "Some investors use analysts ratings to stay informed about their investments. Analysts have changed their ratings for one or more companies in which you hold positions.
The following summary displays the affected companies, the current number of analysts by rating category and, in parentheses, the recent change in the number of analysts rating the company within each rating category.
- JWN@NYSE: Buy: 1(0), Outperform: 1(0), Hold: 12(-1), Underperform: 5(0), Sell: 0(0). Held in: D****000
- RF@NYSE: Buy: 4(+1), Outperform: 5(0), Hold: 17(-1), Underperform: 1(0), Sell: 0(0). Held in: D****000
Note: Current ratings are from Reuters and may not reflect all rating changes from other sources such as Street Insider and Briefing.",
"ID": "2024031947509444",
"HT": 0,
"FC": "PF"
}
]
```
```