diff --git a/packages/orb-sync-lib/src/orb-sync.ts b/packages/orb-sync-lib/src/orb-sync.ts index ed27121..375e09c 100644 --- a/packages/orb-sync-lib/src/orb-sync.ts +++ b/packages/orb-sync-lib/src/orb-sync.ts @@ -110,9 +110,19 @@ export class OrbSync { case 'data_exports.transfer_error': { break; } + // Ignore accounting sync webhooks for now in the sync engine, given they just add unnecessary writes/load + case 'customer.accounting_sync_failed': + case 'customer.accounting_sync_succeeded': + case 'credit_note.accounting_sync_failed': + case 'credit_note.accounting_sync_succeeded': + case 'invoice.accounting_sync_failed': + case 'invoice.accounting_sync_succeeded': { + break; + } case 'customer.created': case 'customer.edited': case 'customer.credit_balance_depleted': + case 'customer.credit_balance_recovered': case 'customer.credit_balance_dropped': { const webhook = parsedData as CustomerWebhook; @@ -131,7 +141,9 @@ export class OrbSync { await syncCustomers(this.postgresClient, [customer], new Date().toISOString()); break; } - + case 'subscription.cancellation_scheduled': + case 'subscription.cancellation_unscheduled': + case 'subscription.plan_change_scheduled': case 'subscription.created': case 'subscription.ended': case 'subscription.plan_changed': diff --git a/packages/orb-sync-lib/src/types.ts b/packages/orb-sync-lib/src/types.ts index a13f82e..ae37ab8 100644 --- a/packages/orb-sync-lib/src/types.ts +++ b/packages/orb-sync-lib/src/types.ts @@ -1,41 +1,51 @@ import type { CreditNote, Customer, Invoice, Subscription } from 'orb-billing/resources'; export type OrbWebhookType = + | 'billable_metric.edited' + | 'credit_note.accounting_sync_failed' + | 'credit_note.accounting_sync_succeeded' + | 'credit_note.issued' + | 'credit_note.marked_as_void' + | 'customer.accounting_sync_failed' + | 'customer.accounting_sync_succeeded' + | 'customer.balance_transaction_created' | 'customer.created' | 'customer.credit_balance_depleted' | 'customer.credit_balance_dropped' + | 'customer.credit_balance_recovered' | 'customer.edited' - | 'subscription.created' - | 'subscription.started' - | 'subscription.edited' - | 'subscription.fixed_fee_quantity_updated' - | 'subscription.ended' - | 'subscription.plan_changed' - | 'subscription.usage_exceeded' - | 'subscription.cost_exceeded' - | 'subscription.plan_version_change_scheduled' - | 'subscription.plan_version_changed' + | 'data_exports.transfer_error' + | 'data_exports.transfer_success' + | 'invoice.accounting_sync_failed' + | 'invoice.accounting_sync_succeeded' + | 'invoice.edited' | 'invoice.invoice_date_elapsed' | 'invoice.issue_failed' | 'invoice.issued' + | 'invoice.manually_marked_as_paid' + | 'invoice.manually_marked_as_void' | 'invoice.payment_failed' | 'invoice.payment_processing' | 'invoice.payment_succeeded' - | 'invoice.edited' - | 'invoice.manually_marked_as_void' - | 'invoice.manually_marked_as_paid' - | 'invoice.undo_mark_as_paid' - | 'invoice.sync_succeded' | 'invoice.sync_failed' - | 'credit_note.issued' - | 'credit_note.marked_as_void' + | 'invoice.sync_succeded' + | 'invoice.undo_mark_as_paid' | 'resource_event.test' - | 'subscription.usage_exceeded' + | 'subscription.cancellation_scheduled' + | 'subscription.cancellation_unscheduled' | 'subscription.cost_exceeded' - | 'data_exports.transfer_success' - | 'data_exports.transfer_error' - | 'customer.balance_transaction_created' - | 'billable_metric.edited'; + | 'subscription.cost_exceeded' + | 'subscription.created' + | 'subscription.edited' + | 'subscription.ended' + | 'subscription.fixed_fee_quantity_updated' + | 'subscription.plan_change_scheduled' + | 'subscription.plan_changed' + | 'subscription.plan_version_change_scheduled' + | 'subscription.plan_version_changed' + | 'subscription.started' + | 'subscription.usage_exceeded' + | 'subscription.usage_exceeded'; export type OrbWebhook = { // Unique to this WebhookEvent resource, and can be used for idempotency (process-once) purposes