https://blog.probooks.com/posts/minimizing-errors-high-volume-invoicing/