fix: sync invoices created from draft state to QuickBooks#205
Draft
aschwartz91 wants to merge 1 commit intomasterfrom
Draft
fix: sync invoices created from draft state to QuickBooks#205aschwartz91 wants to merge 1 commit intomasterfrom
aschwartz91 wants to merge 1 commit intomasterfrom
Conversation
Handle invoice.sent webhook event so invoices that are first saved as drafts and later finalized/sent are synced to QuickBooks. Previously the event hit the default case and was silently ignored. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
INVOICE_SENT = 'invoice.sent'to theWebhookEventsenumcase WebhookEvents.INVOICE_SENTto the webhook switch statementhandleInvoiceSentprivate method that parses withInvoiceCreatedResponseSchemaand delegates toinvoiceService.webhookInvoiceCreated()Context
When a user duplicates an invoice in Assembly, it's saved as a draft first, then finalized/sent. The backend fires
invoice.createdwithstatus: draft— which is correctly skipped. When finalized, the backend firesinvoice.sent, but there was no handler for it, so it hit thedefaultcase and was silently ignored. The invoice was never synced to QuickBooks.The
webhookInvoiceCreatedmethod is safe to reuse here because it already has duplicate detection (getInvoiceByNumber()returns early if the invoice exists inqb_invoice_sync).Test plan
qb_invoice_synctable)