Reconcile via the API
Be able to reconcile bank statement lines via the API.
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.
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.
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
Richard King commented
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.
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?
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?
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.
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.
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.
Can we not just have access to the number of transactions that have been imported and that have yet to be reconciled?
Doug Logan commented
If the suggestion I just posted below would meet the majority of your needs with this requested feature, I would suggest you to vote for the following user-voice entry which has not been declined:
Doug Logan commented
@Adam If we can't reconcile via the API due to partner limitations, can we at least create reconciliation rules based on the API, and perhaps have a way to have some of those reconciliation rules automatically applied without user intervention?
I think this would provide the desired functionality without ever letting us read your "partner's data", and thereby be within your agreements with the partners.
At the end-of-the day to have an API automatically reconcile something in general requires that you know specific details about the transaction in order for your program to work. These details could easily become very specific rules, as long as those rules were automatically applied.
To avoid the build-up of rules you could have another setting that makes a rule "one-time". I think this would cover the majority of the use-cases that someone might have for this feature.
For example, we can query the API of our payroll provider and we'd like to have that all hit the appropriate accounts in Xero and have it auto-reconciled.
To handle this we could do the following:
1) Create a bill that represents the Accounting Transactions.
2) Create a one-time rule that looks for the exact charge amount expected in our bank account, from our payroll provider, and reconciles it with the bill automatically.
I would think that most if not all use-cases for this could follow a similar model.
In general I also think that "auto-reconciliation" would be something very helpful across the application features. Yes, there are many bank rules I'd want the rule to suggest a reconciliation rather than be automatic; but for at least half of even my existing bank rules it would be fine for them to be automatic.
+1 needed to complete the automation of receipts based on third party billing software.
Geoff Hughes commented
You can begin with a simple notification to state that funds have been debited (credited) to the Bank Accont. At least that way we can action it.
At the moment after a successful automated bank feed, the data sits there waiting for a human to log in.
You are currently blocking the flow of a key business workflow!!!