QuickBooks Online's API documentation includes a recommendation that users use webhooks instead of change-data-capture to synchronize their entity records with QuickBooks's. Why are webhooks preferable? It seems like they have several downsides:

  • Events can arrive out of sequence

  • You can miss events

  • Because you can miss events, you still have to make periodic CDC calls anyway

  • If your app experiences lengthy downside, there's a possibility Intuit will blacklist the endpoint, forcing you to reconfigure stuff from scratch.

  • You must respond very promptly, requiring employment of queues and asynchronous background workers to process the updates.