diff --git a/packages/sync-engine/src/resourceRegistry.ts b/packages/sync-engine/src/resourceRegistry.ts index 65bee273..6acfc4dd 100644 --- a/packages/sync-engine/src/resourceRegistry.ts +++ b/packages/sync-engine/src/resourceRegistry.ts @@ -225,6 +225,16 @@ const RESOURCE_MAP: Record = { supportsCreatedFilter: true, sync: false, }, + payout: { + order: 20, + tableName: 'payouts', + list: (s) => (p) => s.payouts.list(p), + retrieve: (s) => (id) => s.payouts.retrieve(id), + supportsCreatedFilter: true, + sync: true, + isFinalState: (p: Stripe.Payout) => + p.status === 'paid' || p.status === 'failed' || p.status === 'canceled', + }, } satisfies Record // Union of all object keys defined in RESOURCE_MAP. Used as the canonical object-name type across sync and registry helpers. @@ -349,6 +359,7 @@ export const PREFIX_RESOURCE_MAP: Record = { re_: 'refund', feat_: 'active_entitlements', cs_: 'checkout_sessions', + po_: 'payout', } // Prefixes sorted longest-first to avoid partial-prefix collisions. diff --git a/packages/sync-engine/src/types.ts b/packages/sync-engine/src/types.ts index b5f3945a..39a1575b 100644 --- a/packages/sync-engine/src/types.ts +++ b/packages/sync-engine/src/types.ts @@ -192,6 +192,12 @@ export const SUPPORTED_WEBHOOK_EVENTS: Stripe.WebhookEndpointCreateParams.Enable 'review.closed', 'review.opened', 'entitlements.active_entitlement_summary.updated', + 'payout.canceled', + 'payout.created', + 'payout.failed', + 'payout.paid', + 'payout.reconciliation_completed', + 'payout.updated', ] export interface Sync {