add the option to send a idempotency key with requests to update or change resources
For example any network, process issues etc may cause a request to create an invoice (or other resource) to occur, but the response to never be recorded. Potentially causing the process to retry this action.
One way is to add a idempotency key which Stripe for example does nicely here: https://stripe.com/docs/api/idempotent_requests
Another way would be to have a non consumer facing external ID, for both the resource and lineitems that can be set by the application and then check for its existence later. Or allow the application to set the UUIDs for these resources
For something as accurate as accounting, this seems critical to ensure no extra resources are created?
Thanks!