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
-
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?
-
Anonymous commented
In my previous life, I use to own an accounting practice, client's demand automation. One of the flaws in xero since day one, most clients utilise a payment service like Stripe, transaction/payments is then posted to Xero, all fine in a perfect world, but then life happens, user deletes invoices, remove and redo payments to edit an invoice, reconciliations a complete mess. Most accountants do not even know how to fix this…
Surely as an Xero add-on Partner, if my application is the one pushing the bank transactions the app should also be allowed to recon it? -
Anonymous commented
All though it isn't a blocker, it is really annoying for our customers as they still have to do this and unfortunately it is now done manually by them. I disagree with this statement
"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."
As you could use a linking ID per line, which would significantly cut down the manual work - in the long term you could even use "keys" to pass the information over the API via a Pull request. -
Philipp commented
FYI: This is a hard blocker for us to implement Xero. We were interested in implementing Xero, but I am unwilling to manually reconcilce hundreds of invoices per month when I have the data and skills to automate it through the API readily available.
-
[Deleted User] commented
Please create an API to allow for Reconciling - This would help tailor the functions of Xero to the personal needs of our business. There's some features that would be specific to our use of Xero therefore having this API would allow us to continue using Xero and maximise productivity.
Thanks :)
Doug Logan has made some valid points, all of these would also be beneficial to our use
-
James T commented
Reconciling has become such a hassle for us as a business, that we feel we've now outgrown Xero. We use it for 3 businesses and one of them has hundreds of lines per day which require reconciling. The matching system is absolutely useless - even when reconciling with directly imported Stripe feeds it's 50/50 if it will incorrectly match. As a last resort I was looking at the option for an API where we could build something to allow us to A) bulk reconcile (we pay suppliers in batches of potentially 100 individual bills at a time) and B) auto OK rules which is such a pointless exercise having to click OK everytime.