Callback Notifications

View as MarkdownOpen in Claude

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.

Enable Callback Service

  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.

Example

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 ‘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 } }