How to import from Interactive Brokers

Hello @VVarbanov
If everything is ok, this should be included in the next release.

Regards
Alex

Thank you so much Alex!

Have a great one!

I handle it the same way, but it does not track currency exchanges. How did you solve this for you?

I insert the exchange manually into PP

Hi, thank you everyone for this super helpful thread! I imported most of my transactions from IB to PP. only getting error (“java.lang.IllegalArgumentException”) on pursing data from the following:

CashTransaction accountId="U61*****" acctAlias="" model="" currency="USD" fxRateToBase="1" assetCategory="OPT" subCategory="" symbol="SPXW 221202C04140000" description="COMMISS COMPUTED AFTER TRADE REPORTED (SPXW 221202C04140000)" conid="597111688" securityID="" securityIDType="" cusip="" isin="" listingExchange="CBOE" underlyingConid="416904" underlyingSymbol="SPX" underlyingSecurityID="" underlyingListingExchange="" issuer="" multiplier="100" strike="0" expiry="20221202" putCall="C" principalAdjustFactor="" dateTime="20221201;132536" settleDate="20221201" amount="1.84065" type="Commission Adjustments" tradeID="5135991921" code="" transactionID="22509304863" reportDate="20221219" clientReference="" actionID="" levelOfDetail="DETAIL" serialNumber="" deliveryType="" commodityType="" fineness="0.0" weight="0.0 ()"

Can anyone please let me know which parameter is causing this error?

Thank you in advance.

//Nazmul

Hello @Nazmul_Hassan
it would be quite cool if you provide us more than just one line from the *.xml.
So a complete one, with please with some transactions and all existing elements.
(FlexQueryResponse , FlexStatements , CashReport, Trades, CashTransactions, InterestAccruals etc).

Also it would be interesting for me to know what should be the result in the transaction.

Regards
Alex

Does it still work for you like this? My case currency of IBKR is EUR and I have both USD/EUR activity. I’m trying to import the Activity Flex Query via the IBKR XML importer but all the USD activity (deposit/trades) seem to be converted to EUR in the importer. Selecting USD cash account + securities account in the importer results in the error “Transaction currency EUR does not match account currency USD”

Wondering what your current way of working is.

Hello good afternoon, could you help me by telling me how to import the currency conversions made in FXCONV with Interactive Brokers? When importing the transactions, they do not appear to me.
The deposits of other currencies appear to me with negative balance, because I do not import the currency exchange transactions made with FXCONV from the IB app.

Hi there,
I am trying to import Activity Flex from IBKR and it gives me:
"The transaction currency USD does not match the account currency EUR: Sell USD "

I was buying and selling stocks in USD and did not have this error before.
Now I’ve moved from IBCE to Interactive Brokers Ireland.

I have set up AFQ according to these instructions Portfolio Performance - Interactive Brokers

Can you help me?

Has there been any change in Activity Flex Query import? Here I have done last import of sell stock in USD on EUR account and it was no problem.

I have the same. Since the new upload i get this error:

Command ‘name.abuchen.portfolio.ui.command.import.ib’ failed

This is the error log:

org.eclipse.core.commands.ExecutionException: Error executing ‘name.abuchen.portfolio.ui.command.import.ib’: java.lang.NullPointerException: Cannot invoke “java.time.LocalDateTime.toLocalDate()” because the return value of “name.abuchen.portfolio.datatransfer.Extractor$Item.getDate()” is null
at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:179)
at org.eclipse.core.commands.Command.executeWithChecks(Command.java:488)
at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:484)
at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:204)
at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.executeItem(HandledContributionItem.java:446)
at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem.handleWidgetSelection(AbstractContributionItem.java:471)
at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem.lambda$2(AbstractContributionItem.java:493)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:91)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4364)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1217)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4162)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3750)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1147)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1038)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.start(E4Application.java:166)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:219)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:149)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:115)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:467)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:298)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:615)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:563)
at org.eclipse.equinox.launcher.Main.run(Main.java:1415)
Caused by: org.eclipse.e4.core.di.InjectionException: java.lang.NullPointerException: Cannot invoke “java.time.LocalDateTime.toLocalDate()” because the return value of “name.abuchen.portfolio.datatransfer.Extractor$Item.getDate()” is null
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:68)
at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:305)
at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:237)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:174)
at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:165)

 26 more
Caused by: java.lang.NullPointerException: Cannot invoke “java.time.LocalDateTime.toLocalDate()” because the return value of “name.abuchen.portfolio.datatransfer.Extractor$Item.getDate()” is null
at name.abuchen.portfolio.datatransfer.ibflex.IBFlexStatementExtractor.lambda$6(IBFlexStatementExtractor.java:1238)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at name.abuchen.portfolio.datatransfer.ibflex.IBFlexStatementExtractor.matchTransactionPair(IBFlexStatementExtractor.java:1236)
at name.abuchen.portfolio.datatransfer.ibflex.IBFlexStatementExtractor.postProcessing(IBFlexStatementExtractor.java:1184)
at name.abuchen.portfolio.datatransfer.Extractor.extract(Extractor.java:718)
at name.abuchen.portfolio.ui.handlers.ImportIBHandler.runImport(ImportIBHandler.java:89)
at name.abuchen.portfolio.ui.handlers.ImportIBHandler.lambda$0(ImportIBHandler.java:47)
at java.base/java.util.Optional.ifPresent(Unknown Source)
at name.abuchen.portfolio.ui.handlers.ImportIBHandler.execute(ImportIBHandler.java:47)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)

 30 more

Hello.
I am trying to import my last Interactive Brokers statement at it does not do anything.
Until now it worked like a charm, but today is not working.
I checked that there is a bunch of dividends in tht statement but after I select the xml to import, and then nothing happens, no message, nothing.
Tried to restart the computer.
I tried to increase my report to include longer period of time, with a whole month, even with transaccions that I already imported in the past, but nothing happens.
Just to check if anyone else have the same problem..
Thanks

This has happened to me too. Looking carefully at import message it says that the dividend currency (USD) is not comparable with account currency (EUR)
even though the share is actuals USD
it used to work fine

There were recently a change with the following remark:

IBFlex:

  • allow importing multiple accounts at once
  • Use accountId and acctAlias in the XML export to find a matching portfolio.
  • Use that so set portfolio and account on imported items if possible.

This allows importing multiple IB accounts from a single XML file because the import wizard will now pre-populate portfolios and accounts.

Allow specifying reference accounts in currencies other than the base currency by matching the reference account name against the start of other account names. For example, a reference account named “IB” will match “IB1”, “IB EUR”, “IB GBP”, etc. deposit accounts.

Maybe tthe discussion below will help, it seems some solution was found :

Ok I tried changing the flex query date format in IBKR from dd/MM/yyy to YYYMMDD and now it
appears to work ok and impor succesfully

Initially It gave me an error message in a dividend in USD
Something like
”Change rate of gross value is missing (Currency of USD and Currency of EUR value)” or something like that ( I traslated it )

But now it looks like it’s working.

I can confirm this works for me. Thanks. The error occured after the most recent update.

Wanted to report an issue, with the import of flex queries from IBKR.

Specifically i have an issue with a specific type of product “TBILL” where the transactions are no well recorded.

Specifically i have a buy transaction that for some reason is not imported.

I am attaching the XML file , i removed most transaction and details just left some so you could test.

Specifically only the sell transaction is recorded as seen below:

As you can see the buy transaction is recorded as a trade while the sell is recorded as a corporate action, but only the sell is recognized.

Version i am using:

Many thanks for the support

Sorry for causing troubles when importing existing flex queries. I changed the importer to behave more reasonably when dealing with transactions in non-base currency. As a result it needs more information than before to do it’s job. I documented what is required here: Importing Interactive Brokers Flex Queries - Portfolio Performance Manual

Having to change the report date was not intended and is a real bug. If someone could open an issue with a minimal XML I can take a look. Please tag me using @lmb on Github.