Reconcile via the API
Be able to reconcile bank statement lines via the API.

Hi everyone,
Firstly, apologies – it’s obvious from the continuing comments that we declined this request too hastily and without the explanation it deserved.
We know that reconciling would be a valuable API feature, but reconciling requires fine grained access to bank statement data and unfortunately we’re not able to share that data via the API for commercial reasons.
At Xero we’re passionate about having an open API and providing small businesses with open access to their data. Unfortunately, many of the partners we rely on for statement data don’t share the same ideals.
Hopefully change is coming in the form of open banking. However, it will be a long time before we can openly share statement data via the API and provide a decent reconciliation experience to third-party apps. For that reason we will unfortunately leave this request as ‘declined’.
For the immediate future, we’re busy doing some really cool stuff to improve the in-product experience and automating bank rec as much as we can. We already have bank rules, auto-match, suggestions and cash coding but there’s lots more coming this year.
Again, we apologies for our lack of transparency on this thread. We do value the feedback on UserVoice and have shipped features with over 3000 votes in the last 12 months. We definitely dropped the ball on this one though.
Cheers,
Adam
-
August Stoyanov commented
There are no commercial reasons stopping you from providing data to custom connection apps. This is not sharing. We own the data and can do whatever we like with it. The bank provides us with the statement for free.
-
Greg Elliott commented
It looks like voting is closed so please add my vote to this.
One of my first tasks for the new year was to investigate and establish an API for the bank rec. We have a customer who pays each invoice individually (approx 500/mth and growing) and uses their own internally generated number as the bank ref. We built an automated process which extracts the invoice number matching the customer's payment ref. The final step was to automate matching on the bank rec via an API. Sadly it looks that won't be happening with Xero ☹️ -
August Stoyanov commented
Why is the documentation pointing to this issue here and then voting is closed? It is crazy not to have this feature, and even crazier to suggest that to provide it you need to give us access to "their data". It is our data, not theirs! We only need the data you are showing on the statement line anyway. Please reconsider! Or give us a believable explanation.
-
William B commented
what is the point of a 'bank feed' service that has an API, but you can't use the API to access the bank feed?!!!! this is totally pointless. I wasted a week trying to understand what the hell I am meant to use this for.
-
Joel Kallman commented
It's been almost a year since my last request and it looks like many others want this functionality. This is extremely valuable functionality for businesses and addon integrations.
Please provide a mechanism to read bank statements and reconcile over the API. If your agreements with certain banks are restricting your ability to offer this functionality, please offer it only for those banks that allow it. I'd gladly switch all of my businesses to those institutions if it meant we could automate this functionality.
-
Khayam Ezzat commented
This feature is available on FreeAgent. It is a mystery as to why this not included in a product as mature as Xero. If it were built that means I can allow someone who I don't want to give unfettered access to the accounting system or necessarily understand accounting deeply, a screen to match payments to clients which the system can allocate to invoices on the API. The lack of this feature means I cannot migrate my nursery business to Xero.
-
Anonymous commented
Can we at least have the transactions exposed? I personally dont need the reconciliation feature, but having the transactions available would go a long way for my situation. (Like they used to be in the report API then stopped in late 2021)
-
Lola Chang commented
We're working with NZ & AU banks to improve their bank app offerings. Enabling their SMB customers to do reconciliation straight in their bank apps soon after transactions happen would be a win-win for everyone - the banks, Xero, their customers, accountants and advisors. Right now the infrequency of SMBs logging into Xero to do reconciliation causes problems for everyone needing up to date data to help SMBs stay viable and thrive. Perhaps this could be a restricted access feature instead of being unavailable to all?
-
Emily Spence Thomas commented
I'm adding another vote for access to reconcile bank statements via the API, this would improve productivity for so many people, PLEASE reconsider this.
-
Galinos Giaglis commented
Hello,
In Europe we are currently working with PSD2 Open Banking for ALL banks. All CRM and ERP vendors have to ingest open banking data with direct connections. We are not even asking you to do this.
We are asking you to open the API and let us do the work by just submitting what we get from the bank.
This is completely preposterous ok your end to INCREASE prices while you continue offering a lesser product or adding features that in most cases are not useful to the majority of your audience
-
jason orrock commented
Another voice added the request to this obvious feature.
You have the API why not extend it to cover this function and keep a log of this tagged API based state change or something?
We have a lot of automation we work on with e-commerce and this causes a lot of issues especially with high volumn sales.
Jason -
Joel Kallman commented
We would be able to automatically reconcile about ~90% our transactions if we had the ability to utilize the Bank Statements API. This would be **extremely** valuable for us and our business.
Please provide a mechanism to read bank statements and reconcile over the API.
-
Owen Conti commented
Adding a comment to keep track of updates to this saga. It seems very short-sighted to not even allow read/GET access to the incoming unreconciled bank data.
At this point, I'd be happy with just an email notification of when an unreconciled incoming payment was sat waiting to be reconciled in Xero.
-
Richard King commented
For those that are also stuck.. we are considering using the following solution to help reconcile transactions from our bank feeds.
https://www.akahu.io/
https://www.saltedge.com/
https://nordigen.com/en/ -
Richard King commented
Hi there,
We would really like access to this feature. It's not fair that we can't actually vote on this feature since it was declined in 2018. You're own API documentation says you can vote on this but it's not possible. https://developer.xero.com/documentation/api/accounting/bankstatements/#bank-statements
Our use case would be to automate the reconciliation of our own customers payments since we have a large number of these. Having someone have to do this by manually clicking OK in Xero is not really maintainable.
Other providers like Chargebee have built their own Chrome plugin to help automate this.. how crazy is that! https://www.chargebee.com/docs/2.0/xero-reconciliation.html
It would also be a great feature to offer to ecommerce stores to be able to auto reconcile their online orders via an api..
Seriously enabling this end point would unlock so much productivity, please consider it!
-
Dean Outlaw commented
OK so we are now in the era of open banking, where the customer has the right to be able to access and use their banking data. This request needs to once again be looked at and responded to by Xero.
I have some clients who pay their full invoice when due and some that pay weekly instalments.
My app now has the ability to enter the total amount received and then assign an amount to any number of the clients invoices or part there of.
Example:
Receive $100
Have invoice 1 with $45 outstanding assigned with $45
Have invoice 2 with $250 outstanding assigned with $55
I can do the assigning using payments
But I can't then reconcile those assigned payments to the $100 entry in my bank statement.
so for now I have to jump back and forth between my app and Xero which adds so much time it's crazy. -
Akshay K R commented
i cant use the finacial APIs, why?
-
Streem Connect commented
Can somebody please explain what the point of this API actually is? Not being able to access bank statement lines or import from alternative feeds makes the whole thing redundant. End of
-
Henry Arnold commented
Given the bank transaction feed is available through the API, it does not seem that the banks can be blamed for blocking this
-
Adam Terrey commented
"We know that reconciling would be a valuable API feature, but reconciling requires fine grained access to bank statement data and unfortunately we’re not able to share that data via the API for commercial reasons."
Really? A timestamp, a description, a credit/debit is hardly fine grain transaction data and is all viewable for the user through the web interfaces - there is nothing sacred about an API that should limit you from exposing this. Additionally, commercially, I would think a bank would not be granted ownership over that data because they are not the author of transactions and the records generally belong to the user.Additionally 2018 is some time ago, can you re-investigate this as a possibility?