4
4 Comments

Stripe: I managed to do my own invoice reconciliation for my accountant via DATEV export

Hey,

Last week, my accountant asked me to export all of our invoices to DATEV. She said it was just too much to process manually. We weren't growing fast, but there are still one or more invoices we need to process. Some of our customers make monthly payments, so this adds up.

As we use Stripe as our payment provider, I was first looking for an "easy" solution to just automate it via some SaaS and was pretty disappointed. There is no "payable" SaaS that does this without you having to schedule a demo with their sales team :rolleyes:

Anyway, I sat down and made the CSV export myself. We just needed to import every invoice we had this year (and when it was paid) from Stripe. That's easy with the Stripe SDK.

But then I was left with these questions:

Did I do everything right here? Or did I miss an invoice in my import from Stripe? Were the paid amounts correct?

###So, how do we validate our report for the accountant after we export it?
Given that we have some payouts on Stripe, for example, on the 15th of every month, they do not help you understand if you missed something because they will contain transfers from December of the previous year or January of the next year.

And your bank account transfers might include some customers who have used wire transfers to pay an invoice. (Yes, we Germans love wire transfers.) We mark the invoice in stripe as "Paid outside of stripe".

We have three parts that we need to match:

  1. your bank account transfers
  2. paid invoices on stripe.com
  3. the export with all invoices of that year

What a mess :)

Interested in the solution? Let me know in the comments!
It's a bigger writeup, but if this provides any value to anyone, I would provide it for free.

##The short version

Build the CSV export with these docs:
https://developer.datev.de/datev/platform/en/node/11596(Sorry, this should be the English site, but it's barely translated.)Take your export to Excel.

Pull in the transfers from your bank account. Map all wire transfers from your list of invoices to a transfer in your bank. (Funny things will happen here.)

Sum up the rest of the invoices and compare this with Stripes' payment reconciliation report.

Thanks!
Philipp

*bootstrapped startup cheap

on October 10, 2023
  1. 1

    Nice work getting this into DATEV yourself. One thing that made it easier for me: reconcile each payout on its own instead of by month. A payout matches one bank deposit exactly, so charges from last month or next month can't blur the numbers.

    It also helps with "did I miss an invoice?" Every charge ends up in exactly one payout. If an invoice's payment is in a payout, it was paid and deposited. If it isn't in any, it hasn't been deposited yet. Usually it's still pending and will show up in the next payout, so check the charge before calling it missing.

    If you click into a payout in the Stripe Dashboard you'll see every transaction in it, and the Payout reconciliation report exports the same thing for a date range.

    How are you handling Stripe fees in the DATEV export? Booked separately or netted against revenue?

  2. 1

    This reconciliation pain is exactly why we built ReconcileIQ! The matching problem you describe - bank transfers, Stripe payments, wire transfers, invoices - is brutal to do manually. ReconcileIQ automates this: it parses bank statement PDFs (supports 17+ UK banks), converts to CSV, and has a reconciliation engine that matches invoices to payments automatically. Handles 5,000+ transactions per second. No more Excel gymnastics or hoping you didn't miss something. Happy to help if you're still dealing with this!

  3. 1

    Stripe is for receivables. Yet you use the word payables. Both can be an invoice

    1. 1

      ah! I meant, "something that I can afford" :D