@flexprice/sdk 2.0.11 → 2.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +78 -0
- package/docs/sdk/models/dto-create-customer-request.md +0 -1
- package/docs/sdk/models/dto-customer-response.md +1 -0
- package/docs/sdk/models/dto-invoice-response.md +1 -0
- package/docs/sdk/models/{dto-create-entity-integration-mapping-request.md → dto-link-integration-mapping-request.md} +4 -4
- package/docs/sdk/models/dto-link-integration-mapping-response.md +15 -0
- package/docs/sdk/models/dto-update-customer-request.md +0 -1
- package/docs/sdk/models/invoice-status.md +1 -1
- package/docs/sdk/models/schedule-draft-finalization-response.md +16 -0
- package/docs/sdk/models/scheduled-task-interval.md +1 -1
- package/docs/sdk/models/webhook-dto-alert-webhook-payload.md +1 -1
- package/docs/sdk/models/webhook-dto-communication-webhook-payload.md +1 -1
- package/docs/sdk/models/webhook-dto-credit-note-webhook-payload.md +1 -1
- package/docs/sdk/models/webhook-dto-customer-webhook-payload.md +1 -1
- package/docs/sdk/models/webhook-dto-entitlement-webhook-payload.md +1 -1
- package/docs/sdk/models/webhook-dto-feature-webhook-payload.md +1 -1
- package/docs/sdk/models/webhook-dto-invoice-webhook-payload.md +1 -1
- package/docs/sdk/models/webhook-dto-payment-webhook-payload.md +1 -1
- package/docs/sdk/models/webhook-dto-subscription-phase-webhook-payload.md +1 -1
- package/docs/sdk/models/webhook-dto-subscription-webhook-payload.md +1 -1
- package/docs/sdk/models/webhook-dto-transaction-webhook-payload.md +1 -1
- package/docs/sdk/models/webhook-dto-wallet-webhook-payload.md +1 -1
- package/docs/sdk/models/webhook-event-name.md +17 -0
- package/docs/sdks/integrations/README.md +18 -235
- package/docs/sdks/scheduledtasks/README.md +73 -2
- package/esm/funcs/coupons-create-coupon.d.ts +2 -0
- package/esm/funcs/coupons-create-coupon.d.ts.map +1 -1
- package/esm/funcs/coupons-create-coupon.js +3 -1
- package/esm/funcs/coupons-create-coupon.js.map +1 -1
- package/esm/funcs/coupons-delete-coupon.d.ts +2 -0
- package/esm/funcs/coupons-delete-coupon.d.ts.map +1 -1
- package/esm/funcs/coupons-delete-coupon.js +3 -1
- package/esm/funcs/coupons-delete-coupon.js.map +1 -1
- package/esm/funcs/coupons-update-coupon.d.ts +2 -0
- package/esm/funcs/coupons-update-coupon.d.ts.map +1 -1
- package/esm/funcs/coupons-update-coupon.js +3 -1
- package/esm/funcs/coupons-update-coupon.js.map +1 -1
- package/esm/funcs/credit-notes-create-credit-note.d.ts +2 -0
- package/esm/funcs/credit-notes-create-credit-note.d.ts.map +1 -1
- package/esm/funcs/credit-notes-create-credit-note.js +3 -1
- package/esm/funcs/credit-notes-create-credit-note.js.map +1 -1
- package/esm/funcs/credit-notes-process-credit-note.d.ts +2 -0
- package/esm/funcs/credit-notes-process-credit-note.d.ts.map +1 -1
- package/esm/funcs/credit-notes-process-credit-note.js +3 -1
- package/esm/funcs/credit-notes-process-credit-note.js.map +1 -1
- package/esm/funcs/credit-notes-void-credit-note.d.ts +2 -0
- package/esm/funcs/credit-notes-void-credit-note.d.ts.map +1 -1
- package/esm/funcs/credit-notes-void-credit-note.js +3 -1
- package/esm/funcs/credit-notes-void-credit-note.js.map +1 -1
- package/esm/funcs/{integrations-get-integration.d.ts → integrations-link-integration-mapping.d.ts} +4 -4
- package/esm/funcs/integrations-link-integration-mapping.d.ts.map +1 -0
- package/esm/funcs/{entity-integration-mappings-create-entity-integration-mapping.js → integrations-link-integration-mapping.js} +9 -9
- package/esm/funcs/integrations-link-integration-mapping.js.map +1 -0
- package/esm/funcs/scheduled-tasks-schedule-draft-finalization.d.ts +17 -0
- package/esm/funcs/scheduled-tasks-schedule-draft-finalization.d.ts.map +1 -0
- package/esm/funcs/{integrations-list-linked-integrations.js → scheduled-tasks-schedule-draft-finalization.js} +9 -9
- package/esm/funcs/scheduled-tasks-schedule-draft-finalization.js.map +1 -0
- package/esm/lib/config.d.ts +3 -3
- package/esm/lib/config.js +3 -3
- package/esm/lib/config.js.map +1 -1
- package/esm/lib/security.d.ts +1 -1
- package/esm/lib/security.d.ts.map +1 -1
- package/esm/lib/security.js +19 -8
- package/esm/lib/security.js.map +1 -1
- package/esm/sdk/integrations.d.ts +3 -24
- package/esm/sdk/integrations.d.ts.map +1 -1
- package/esm/sdk/integrations.js +5 -35
- package/esm/sdk/integrations.js.map +1 -1
- package/esm/sdk/models/dto-create-customer-request.d.ts +0 -6
- package/esm/sdk/models/dto-create-customer-request.d.ts.map +1 -1
- package/esm/sdk/models/dto-create-customer-request.js +0 -3
- package/esm/sdk/models/dto-create-customer-request.js.map +1 -1
- package/esm/sdk/models/dto-customer-response.d.ts +2 -0
- package/esm/sdk/models/dto-customer-response.d.ts.map +1 -1
- package/esm/sdk/models/dto-customer-response.js +2 -0
- package/esm/sdk/models/dto-customer-response.js.map +1 -1
- package/esm/sdk/models/dto-invoice-response.d.ts +4 -0
- package/esm/sdk/models/dto-invoice-response.d.ts.map +1 -1
- package/esm/sdk/models/dto-invoice-response.js +2 -0
- package/esm/sdk/models/dto-invoice-response.js.map +1 -1
- package/esm/sdk/models/dto-link-integration-mapping-request.d.ts +25 -0
- package/esm/sdk/models/dto-link-integration-mapping-request.d.ts.map +1 -0
- package/esm/sdk/models/{dto-create-entity-integration-mapping-request.js → dto-link-integration-mapping-request.js} +4 -4
- package/esm/sdk/models/dto-link-integration-mapping-request.js.map +1 -0
- package/esm/sdk/models/dto-link-integration-mapping-response.d.ts +11 -0
- package/esm/sdk/models/dto-link-integration-mapping-response.d.ts.map +1 -0
- package/esm/sdk/models/dto-link-integration-mapping-response.js +15 -0
- package/esm/sdk/models/dto-link-integration-mapping-response.js.map +1 -0
- package/esm/sdk/models/dto-update-customer-request.d.ts +0 -6
- package/esm/sdk/models/dto-update-customer-request.d.ts.map +1 -1
- package/esm/sdk/models/dto-update-customer-request.js +0 -3
- package/esm/sdk/models/dto-update-customer-request.js.map +1 -1
- package/esm/sdk/models/index.d.ts +4 -8
- package/esm/sdk/models/index.d.ts.map +1 -1
- package/esm/sdk/models/index.js +4 -8
- package/esm/sdk/models/index.js.map +1 -1
- package/esm/sdk/models/invoice-status.d.ts +1 -0
- package/esm/sdk/models/invoice-status.d.ts.map +1 -1
- package/esm/sdk/models/invoice-status.js +1 -0
- package/esm/sdk/models/invoice-status.js.map +1 -1
- package/esm/sdk/models/schedule-draft-finalization-op.d.ts +11 -0
- package/esm/sdk/models/schedule-draft-finalization-op.d.ts.map +1 -0
- package/esm/sdk/models/schedule-draft-finalization-op.js +11 -0
- package/esm/sdk/models/schedule-draft-finalization-op.js.map +1 -0
- package/esm/sdk/models/scheduled-task-interval.d.ts +1 -0
- package/esm/sdk/models/scheduled-task-interval.d.ts.map +1 -1
- package/esm/sdk/models/scheduled-task-interval.js +1 -0
- package/esm/sdk/models/scheduled-task-interval.js.map +1 -1
- package/esm/sdk/models/secret-provider.d.ts +0 -2
- package/esm/sdk/models/secret-provider.d.ts.map +1 -1
- package/esm/sdk/models/secret-provider.js +0 -2
- package/esm/sdk/models/secret-provider.js.map +1 -1
- package/esm/sdk/models/webhook-dto-alert-webhook-payload.d.ts +2 -1
- package/esm/sdk/models/webhook-dto-alert-webhook-payload.d.ts.map +1 -1
- package/esm/sdk/models/webhook-dto-alert-webhook-payload.js +2 -1
- package/esm/sdk/models/webhook-dto-alert-webhook-payload.js.map +1 -1
- package/esm/sdk/models/webhook-dto-communication-webhook-payload.d.ts +2 -1
- package/esm/sdk/models/webhook-dto-communication-webhook-payload.d.ts.map +1 -1
- package/esm/sdk/models/webhook-dto-communication-webhook-payload.js +2 -1
- package/esm/sdk/models/webhook-dto-communication-webhook-payload.js.map +1 -1
- package/esm/sdk/models/webhook-dto-credit-note-webhook-payload.d.ts +2 -1
- package/esm/sdk/models/webhook-dto-credit-note-webhook-payload.d.ts.map +1 -1
- package/esm/sdk/models/webhook-dto-credit-note-webhook-payload.js +2 -1
- package/esm/sdk/models/webhook-dto-credit-note-webhook-payload.js.map +1 -1
- package/esm/sdk/models/webhook-dto-customer-webhook-payload.d.ts +2 -1
- package/esm/sdk/models/webhook-dto-customer-webhook-payload.d.ts.map +1 -1
- package/esm/sdk/models/webhook-dto-customer-webhook-payload.js +2 -1
- package/esm/sdk/models/webhook-dto-customer-webhook-payload.js.map +1 -1
- package/esm/sdk/models/webhook-dto-entitlement-webhook-payload.d.ts +2 -1
- package/esm/sdk/models/webhook-dto-entitlement-webhook-payload.d.ts.map +1 -1
- package/esm/sdk/models/webhook-dto-entitlement-webhook-payload.js +2 -1
- package/esm/sdk/models/webhook-dto-entitlement-webhook-payload.js.map +1 -1
- package/esm/sdk/models/webhook-dto-feature-webhook-payload.d.ts +2 -1
- package/esm/sdk/models/webhook-dto-feature-webhook-payload.d.ts.map +1 -1
- package/esm/sdk/models/webhook-dto-feature-webhook-payload.js +2 -1
- package/esm/sdk/models/webhook-dto-feature-webhook-payload.js.map +1 -1
- package/esm/sdk/models/webhook-dto-invoice-webhook-payload.d.ts +2 -1
- package/esm/sdk/models/webhook-dto-invoice-webhook-payload.d.ts.map +1 -1
- package/esm/sdk/models/webhook-dto-invoice-webhook-payload.js +2 -1
- package/esm/sdk/models/webhook-dto-invoice-webhook-payload.js.map +1 -1
- package/esm/sdk/models/webhook-dto-payment-webhook-payload.d.ts +2 -1
- package/esm/sdk/models/webhook-dto-payment-webhook-payload.d.ts.map +1 -1
- package/esm/sdk/models/webhook-dto-payment-webhook-payload.js +2 -1
- package/esm/sdk/models/webhook-dto-payment-webhook-payload.js.map +1 -1
- package/esm/sdk/models/webhook-dto-subscription-phase-webhook-payload.d.ts +2 -1
- package/esm/sdk/models/webhook-dto-subscription-phase-webhook-payload.d.ts.map +1 -1
- package/esm/sdk/models/webhook-dto-subscription-phase-webhook-payload.js +2 -1
- package/esm/sdk/models/webhook-dto-subscription-phase-webhook-payload.js.map +1 -1
- package/esm/sdk/models/webhook-dto-subscription-webhook-payload.d.ts +2 -1
- package/esm/sdk/models/webhook-dto-subscription-webhook-payload.d.ts.map +1 -1
- package/esm/sdk/models/webhook-dto-subscription-webhook-payload.js +2 -1
- package/esm/sdk/models/webhook-dto-subscription-webhook-payload.js.map +1 -1
- package/esm/sdk/models/webhook-dto-transaction-webhook-payload.d.ts +2 -1
- package/esm/sdk/models/webhook-dto-transaction-webhook-payload.d.ts.map +1 -1
- package/esm/sdk/models/webhook-dto-transaction-webhook-payload.js +2 -1
- package/esm/sdk/models/webhook-dto-transaction-webhook-payload.js.map +1 -1
- package/esm/sdk/models/webhook-dto-wallet-webhook-payload.d.ts +2 -1
- package/esm/sdk/models/webhook-dto-wallet-webhook-payload.d.ts.map +1 -1
- package/esm/sdk/models/webhook-dto-wallet-webhook-payload.js +2 -1
- package/esm/sdk/models/webhook-dto-wallet-webhook-payload.js.map +1 -1
- package/esm/sdk/models/webhook-event-name.d.ts +51 -0
- package/esm/sdk/models/webhook-event-name.d.ts.map +1 -0
- package/esm/sdk/models/webhook-event-name.js +52 -0
- package/esm/sdk/models/webhook-event-name.js.map +1 -0
- package/esm/sdk/scheduled-tasks.d.ts +7 -0
- package/esm/sdk/scheduled-tasks.d.ts.map +1 -1
- package/esm/sdk/scheduled-tasks.js +10 -0
- package/esm/sdk/scheduled-tasks.js.map +1 -1
- package/esm/sdk/sdk.d.ts +2 -5
- package/esm/sdk/sdk.d.ts.map +1 -1
- package/esm/sdk/sdk.js +4 -9
- package/esm/sdk/sdk.js.map +1 -1
- package/jsr.json +1 -1
- package/package.json +1 -1
- package/src/funcs/coupons-create-coupon.ts +3 -1
- package/src/funcs/coupons-delete-coupon.ts +3 -1
- package/src/funcs/coupons-update-coupon.ts +3 -1
- package/src/funcs/credit-notes-create-credit-note.ts +3 -1
- package/src/funcs/credit-notes-process-credit-note.ts +3 -1
- package/src/funcs/credit-notes-void-credit-note.ts +3 -1
- package/src/funcs/{entity-integration-mappings-create-entity-integration-mapping.ts → integrations-link-integration-mapping.ts} +14 -17
- package/src/funcs/{integrations-list-linked-integrations.ts → scheduled-tasks-schedule-draft-finalization.ts} +12 -11
- package/src/lib/config.ts +3 -3
- package/src/lib/security.ts +14 -2
- package/src/sdk/integrations.ts +8 -62
- package/src/sdk/models/dto-create-customer-request.ts +0 -16
- package/src/sdk/models/dto-customer-response.ts +8 -0
- package/src/sdk/models/dto-invoice-response.ts +6 -0
- package/src/sdk/models/dto-link-integration-mapping-request.ts +59 -0
- package/src/sdk/models/dto-link-integration-mapping-response.ts +35 -0
- package/src/sdk/models/dto-update-customer-request.ts +0 -16
- package/src/sdk/models/index.ts +4 -8
- package/src/sdk/models/invoice-status.ts +1 -0
- package/src/sdk/models/schedule-draft-finalization-op.ts +29 -0
- package/src/sdk/models/scheduled-task-interval.ts +1 -0
- package/src/sdk/models/secret-provider.ts +0 -5
- package/src/sdk/models/webhook-dto-alert-webhook-payload.ts +6 -2
- package/src/sdk/models/webhook-dto-communication-webhook-payload.ts +6 -2
- package/src/sdk/models/webhook-dto-credit-note-webhook-payload.ts +6 -2
- package/src/sdk/models/webhook-dto-customer-webhook-payload.ts +6 -2
- package/src/sdk/models/webhook-dto-entitlement-webhook-payload.ts +6 -2
- package/src/sdk/models/webhook-dto-feature-webhook-payload.ts +6 -2
- package/src/sdk/models/webhook-dto-invoice-webhook-payload.ts +6 -2
- package/src/sdk/models/webhook-dto-payment-webhook-payload.ts +6 -2
- package/src/sdk/models/webhook-dto-subscription-phase-webhook-payload.ts +6 -2
- package/src/sdk/models/webhook-dto-subscription-webhook-payload.ts +6 -2
- package/src/sdk/models/webhook-dto-transaction-webhook-payload.ts +6 -2
- package/src/sdk/models/webhook-dto-wallet-webhook-payload.ts +6 -2
- package/src/sdk/models/webhook-event-name.ts +60 -0
- package/src/sdk/scheduled-tasks.ts +16 -0
- package/src/sdk/sdk.ts +5 -13
- package/docs/sdk/models/create-or-update-integration-request.md +0 -26
- package/docs/sdk/models/delete-entity-integration-mapping-request.md +0 -17
- package/docs/sdk/models/delete-integration-request.md +0 -17
- package/docs/sdk/models/dto-create-integration-request.md +0 -21
- package/docs/sdk/models/dto-integration-entity-mapping.md +0 -21
- package/docs/sdk/models/dto-linked-integrations-response.md +0 -15
- package/docs/sdk/models/get-integration-request.md +0 -17
- package/docs/sdk/models/provider.md +0 -17
- package/docs/sdks/entityintegrationmappings/README.md +0 -160
- package/esm/funcs/entity-integration-mappings-create-entity-integration-mapping.d.ts +0 -17
- package/esm/funcs/entity-integration-mappings-create-entity-integration-mapping.d.ts.map +0 -1
- package/esm/funcs/entity-integration-mappings-create-entity-integration-mapping.js.map +0 -1
- package/esm/funcs/entity-integration-mappings-delete-entity-integration-mapping.d.ts +0 -17
- package/esm/funcs/entity-integration-mappings-delete-entity-integration-mapping.d.ts.map +0 -1
- package/esm/funcs/entity-integration-mappings-delete-entity-integration-mapping.js +0 -90
- package/esm/funcs/entity-integration-mappings-delete-entity-integration-mapping.js.map +0 -1
- package/esm/funcs/integrations-create-or-update-integration.d.ts +0 -17
- package/esm/funcs/integrations-create-or-update-integration.d.ts.map +0 -1
- package/esm/funcs/integrations-create-or-update-integration.js +0 -92
- package/esm/funcs/integrations-create-or-update-integration.js.map +0 -1
- package/esm/funcs/integrations-delete-integration.d.ts +0 -17
- package/esm/funcs/integrations-delete-integration.d.ts.map +0 -1
- package/esm/funcs/integrations-delete-integration.js +0 -90
- package/esm/funcs/integrations-delete-integration.js.map +0 -1
- package/esm/funcs/integrations-get-integration.d.ts.map +0 -1
- package/esm/funcs/integrations-get-integration.js +0 -90
- package/esm/funcs/integrations-get-integration.js.map +0 -1
- package/esm/funcs/integrations-list-linked-integrations.d.ts +0 -17
- package/esm/funcs/integrations-list-linked-integrations.d.ts.map +0 -1
- package/esm/funcs/integrations-list-linked-integrations.js.map +0 -1
- package/esm/sdk/entity-integration-mappings.d.ts +0 -19
- package/esm/sdk/entity-integration-mappings.d.ts.map +0 -1
- package/esm/sdk/entity-integration-mappings.js +0 -28
- package/esm/sdk/entity-integration-mappings.js.map +0 -1
- package/esm/sdk/models/create-or-update-integration-op.d.ts +0 -21
- package/esm/sdk/models/create-or-update-integration-op.d.ts.map +0 -1
- package/esm/sdk/models/create-or-update-integration-op.js +0 -14
- package/esm/sdk/models/create-or-update-integration-op.js.map +0 -1
- package/esm/sdk/models/delete-entity-integration-mapping-op.d.ts +0 -15
- package/esm/sdk/models/delete-entity-integration-mapping-op.d.ts.map +0 -1
- package/esm/sdk/models/delete-entity-integration-mapping-op.js +0 -12
- package/esm/sdk/models/delete-entity-integration-mapping-op.js.map +0 -1
- package/esm/sdk/models/delete-integration-op.d.ts +0 -15
- package/esm/sdk/models/delete-integration-op.d.ts.map +0 -1
- package/esm/sdk/models/delete-integration-op.js +0 -12
- package/esm/sdk/models/delete-integration-op.js.map +0 -1
- package/esm/sdk/models/dto-create-entity-integration-mapping-request.d.ts +0 -25
- package/esm/sdk/models/dto-create-entity-integration-mapping-request.d.ts.map +0 -1
- package/esm/sdk/models/dto-create-entity-integration-mapping-request.js.map +0 -1
- package/esm/sdk/models/dto-create-integration-request.d.ts +0 -21
- package/esm/sdk/models/dto-create-integration-request.d.ts.map +0 -1
- package/esm/sdk/models/dto-create-integration-request.js +0 -15
- package/esm/sdk/models/dto-create-integration-request.js.map +0 -1
- package/esm/sdk/models/dto-integration-entity-mapping.d.ts +0 -38
- package/esm/sdk/models/dto-integration-entity-mapping.d.ts.map +0 -1
- package/esm/sdk/models/dto-integration-entity-mapping.js +0 -23
- package/esm/sdk/models/dto-integration-entity-mapping.js.map +0 -1
- package/esm/sdk/models/dto-linked-integrations-response.d.ts +0 -10
- package/esm/sdk/models/dto-linked-integrations-response.d.ts.map +0 -1
- package/esm/sdk/models/dto-linked-integrations-response.js +0 -14
- package/esm/sdk/models/dto-linked-integrations-response.js.map +0 -1
- package/esm/sdk/models/get-integration-op.d.ts +0 -15
- package/esm/sdk/models/get-integration-op.d.ts.map +0 -1
- package/esm/sdk/models/get-integration-op.js +0 -12
- package/esm/sdk/models/get-integration-op.js.map +0 -1
- package/src/funcs/entity-integration-mappings-delete-entity-integration-mapping.ts +0 -183
- package/src/funcs/integrations-create-or-update-integration.ts +0 -187
- package/src/funcs/integrations-delete-integration.ts +0 -179
- package/src/funcs/integrations-get-integration.ts +0 -181
- package/src/sdk/entity-integration-mappings.ts +0 -45
- package/src/sdk/models/create-or-update-integration-op.ts +0 -46
- package/src/sdk/models/delete-entity-integration-mapping-op.ts +0 -36
- package/src/sdk/models/delete-integration-op.ts +0 -33
- package/src/sdk/models/dto-create-entity-integration-mapping-request.ts +0 -61
- package/src/sdk/models/dto-create-integration-request.ts +0 -42
- package/src/sdk/models/dto-integration-entity-mapping.ts +0 -63
- package/src/sdk/models/dto-linked-integrations-response.ts +0 -31
- package/src/sdk/models/get-integration-op.ts +0 -33
package/README.md
CHANGED
|
@@ -131,6 +131,84 @@ For a full list of operations, see the [API reference](https://docs.flexprice.io
|
|
|
131
131
|
- **Validation or 4xx errors:** Confirm request body field names (snake_case vs camelCase) and required fields against the [API docs](https://docs.flexprice.io).
|
|
132
132
|
- **Parameter passing:** Pass the request object directly to methods (e.g. `ingestEvent({ ... })`), not wrapped in an extra key, unless the SDK docs say otherwise.
|
|
133
133
|
|
|
134
|
+
## Handling Webhooks
|
|
135
|
+
|
|
136
|
+
Flexprice sends webhook events to your server for async updates on payments, invoices, subscriptions, wallets, and more.
|
|
137
|
+
|
|
138
|
+
**Flow:**
|
|
139
|
+
1. Register your endpoint URL in the Flexprice dashboard
|
|
140
|
+
2. Receive `POST` with raw JSON body
|
|
141
|
+
3. Read `event_type` to route
|
|
142
|
+
4. Parse payload using SDK helpers
|
|
143
|
+
5. Handle business logic idempotently
|
|
144
|
+
6. Return `200` quickly
|
|
145
|
+
|
|
146
|
+
```typescript
|
|
147
|
+
import {
|
|
148
|
+
WebhookEventName,
|
|
149
|
+
webhookDtoPaymentWebhookPayloadFromJSON,
|
|
150
|
+
webhookDtoSubscriptionWebhookPayloadFromJSON,
|
|
151
|
+
webhookDtoInvoiceWebhookPayloadFromJSON,
|
|
152
|
+
} from "@flexprice/sdk";
|
|
153
|
+
|
|
154
|
+
function handleWebhook(rawBody: string): void {
|
|
155
|
+
const env = JSON.parse(rawBody) as { event_type: string };
|
|
156
|
+
|
|
157
|
+
switch (env.event_type as WebhookEventName) {
|
|
158
|
+
case WebhookEventName.PaymentSuccess:
|
|
159
|
+
case WebhookEventName.PaymentFailed:
|
|
160
|
+
case WebhookEventName.PaymentUpdated: {
|
|
161
|
+
const result = webhookDtoPaymentWebhookPayloadFromJSON(rawBody);
|
|
162
|
+
if (!result.ok) { console.error("parse error", result.error); break; }
|
|
163
|
+
const { payment } = result.value;
|
|
164
|
+
console.log("payment", payment?.id);
|
|
165
|
+
// TODO: update payment record
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
case WebhookEventName.SubscriptionActivated:
|
|
170
|
+
case WebhookEventName.SubscriptionCancelled:
|
|
171
|
+
case WebhookEventName.SubscriptionUpdated: {
|
|
172
|
+
const result = webhookDtoSubscriptionWebhookPayloadFromJSON(rawBody);
|
|
173
|
+
if (!result.ok) { console.error("parse error", result.error); break; }
|
|
174
|
+
console.log("subscription", result.value.subscription?.id);
|
|
175
|
+
break;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
case WebhookEventName.InvoiceUpdateFinalized:
|
|
179
|
+
case WebhookEventName.InvoicePaymentOverdue: {
|
|
180
|
+
const result = webhookDtoInvoiceWebhookPayloadFromJSON(rawBody);
|
|
181
|
+
if (!result.ok) { console.error("parse error", result.error); break; }
|
|
182
|
+
console.log("invoice", result.value.invoice?.id);
|
|
183
|
+
break;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
default:
|
|
187
|
+
console.log("unhandled event:", env.event_type);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
> Fields are auto-camelCased by the SDK: `event_type` → `eventType`, `invoice_status` → `invoiceStatus`. The `fromJSON` helpers return a `SafeParseResult<T>` — always check `.ok` before accessing `.value`.
|
|
193
|
+
|
|
194
|
+
### Event types
|
|
195
|
+
|
|
196
|
+
| Category | Events |
|
|
197
|
+
|---|---|
|
|
198
|
+
| **Payment** | `payment.created` · `payment.updated` · `payment.success` · `payment.failed` · `payment.pending` |
|
|
199
|
+
| **Invoice** | `invoice.create.drafted` · `invoice.update` · `invoice.update.finalized` · `invoice.update.payment` · `invoice.update.voided` · `invoice.payment.overdue` · `invoice.communication.triggered` |
|
|
200
|
+
| **Subscription** | `subscription.created` · `subscription.draft.created` · `subscription.activated` · `subscription.updated` · `subscription.paused` · `subscription.resumed` · `subscription.cancelled` · `subscription.renewal.due` |
|
|
201
|
+
| **Subscription Phase** | `subscription.phase.created` · `subscription.phase.updated` · `subscription.phase.deleted` |
|
|
202
|
+
| **Customer** | `customer.created` · `customer.updated` · `customer.deleted` |
|
|
203
|
+
| **Wallet** | `wallet.created` · `wallet.updated` · `wallet.terminated` · `wallet.transaction.created` · `wallet.credit_balance.dropped` · `wallet.credit_balance.recovered` · `wallet.ongoing_balance.dropped` · `wallet.ongoing_balance.recovered` |
|
|
204
|
+
| **Feature / Entitlement** | `feature.created` · `feature.updated` · `feature.deleted` · `feature.wallet_balance.alert` · `entitlement.created` · `entitlement.updated` · `entitlement.deleted` |
|
|
205
|
+
| **Credit Note** | `credit_note.created` · `credit_note.updated` |
|
|
206
|
+
|
|
207
|
+
**Production rules:**
|
|
208
|
+
- Keep handlers idempotent — Flexprice retries on non-`2xx`
|
|
209
|
+
- Return `200` for unknown event types — prevents unnecessary retries
|
|
210
|
+
- Do heavy processing async — respond fast, queue the work
|
|
211
|
+
|
|
134
212
|
## Documentation
|
|
135
213
|
|
|
136
214
|
- [FlexPrice API documentation](https://docs.flexprice.io)
|
|
@@ -24,7 +24,6 @@ let value: DtoCreateCustomerRequest = {
|
|
|
24
24
|
| `addressState` | *string* | :heavy_minus_sign: | address_state is the state, province, or region name with maximum 100 characters |
|
|
25
25
|
| `email` | *string* | :heavy_minus_sign: | email is the customer's email address and must be a valid email format if provided |
|
|
26
26
|
| `externalId` | *string* | :heavy_check_mark: | external_id is the unique identifier from your system to reference this customer (required) |
|
|
27
|
-
| `integrationEntityMapping` | [models.DtoIntegrationEntityMapping](../../sdk/models/dto-integration-entity-mapping.md)[] | :heavy_minus_sign: | integration_entity_mapping contains provider integration mappings for this customer |
|
|
28
27
|
| `metadata` | Record<string, *string*> | :heavy_minus_sign: | metadata contains additional key-value pairs for storing extra information |
|
|
29
28
|
| `name` | *string* | :heavy_minus_sign: | name is the full name or company name of the customer |
|
|
30
29
|
| `parentCustomerExternalId` | *string* | :heavy_minus_sign: | Deprecated: See ParentCustomerID.<br/>parent_customer_external_id is the external ID of the parent customer from your system.<br/>Exactly one of parent_customer_id or parent_customer_external_id may be provided. |
|
|
@@ -26,6 +26,7 @@ let value: DtoCustomerResponse = {};
|
|
|
26
26
|
| `environmentId` | *string* | :heavy_minus_sign: | EnvironmentID is the environment identifier for the customer |
|
|
27
27
|
| `externalId` | *string* | :heavy_minus_sign: | ExternalID is the external identifier for the customer |
|
|
28
28
|
| `id` | *string* | :heavy_minus_sign: | ID is the unique identifier for the customer |
|
|
29
|
+
| `integrations` | [models.DtoEntityIntegrationMappingResponse](../../sdk/models/dto-entity-integration-mapping-response.md)[] | :heavy_minus_sign: | N/A |
|
|
29
30
|
| `metadata` | Record<string, *string*> | :heavy_minus_sign: | Metadata |
|
|
30
31
|
| `name` | *string* | :heavy_minus_sign: | Name is the name of the customer |
|
|
31
32
|
| `parentCustomer` | [models.DtoCustomerResponse](../../sdk/models/dto-customer-response.md) | :heavy_minus_sign: | Customer response object containing all customer information |
|
|
@@ -44,6 +44,7 @@ let value: DtoInvoiceResponse = {
|
|
|
44
44
|
| `invoicePdfUrl` | *string* | :heavy_minus_sign: | invoice_pdf_url is the URL where customers can download the PDF version of this invoice |
|
|
45
45
|
| `invoiceStatus` | [models.InvoiceStatus](../../sdk/models/invoice-status.md) | :heavy_minus_sign: | N/A |
|
|
46
46
|
| `invoiceType` | [models.InvoiceType](../../sdk/models/invoice-type.md) | :heavy_minus_sign: | N/A |
|
|
47
|
+
| `lastComputedAt` | *string* | :heavy_minus_sign: | last_computed_at is the timestamp when this invoice was last computed by ComputeInvoice |
|
|
47
48
|
| `lineItems` | [models.DtoInvoiceLineItemResponse](../../sdk/models/dto-invoice-line-item-response.md)[] | :heavy_minus_sign: | line_items contains the individual items that make up this invoice (overrides embedded field) |
|
|
48
49
|
| `metadata` | Record<string, *string*> | :heavy_minus_sign: | N/A |
|
|
49
50
|
| `overpaidAmount` | *string* | :heavy_minus_sign: | overpaid_amount is the amount overpaid if payment_status is OVERPAID (amount_paid - total) |
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
#
|
|
1
|
+
# DtoLinkIntegrationMappingRequest
|
|
2
2
|
|
|
3
3
|
## Example Usage
|
|
4
4
|
|
|
5
5
|
```typescript
|
|
6
|
-
import {
|
|
6
|
+
import { DtoLinkIntegrationMappingRequest } from "@flexprice/sdk/sdk/models";
|
|
7
7
|
|
|
8
|
-
let value:
|
|
8
|
+
let value: DtoLinkIntegrationMappingRequest = {
|
|
9
9
|
entityId: "<id>",
|
|
10
|
-
entityType: "
|
|
10
|
+
entityType: "plan",
|
|
11
11
|
providerEntityId: "<id>",
|
|
12
12
|
providerType: "<value>",
|
|
13
13
|
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# DtoLinkIntegrationMappingResponse
|
|
2
|
+
|
|
3
|
+
## Example Usage
|
|
4
|
+
|
|
5
|
+
```typescript
|
|
6
|
+
import { DtoLinkIntegrationMappingResponse } from "@flexprice/sdk/sdk/models";
|
|
7
|
+
|
|
8
|
+
let value: DtoLinkIntegrationMappingResponse = {};
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Fields
|
|
12
|
+
|
|
13
|
+
| Field | Type | Required | Description |
|
|
14
|
+
| --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
|
|
15
|
+
| `mapping` | [models.DtoEntityIntegrationMappingResponse](../../sdk/models/dto-entity-integration-mapping-response.md) | :heavy_minus_sign: | N/A |
|
|
@@ -22,7 +22,6 @@ let value: DtoUpdateCustomerRequest = {};
|
|
|
22
22
|
| `addressState` | *string* | :heavy_minus_sign: | address_state is the updated state, province, or region name with maximum 100 characters |
|
|
23
23
|
| `email` | *string* | :heavy_minus_sign: | email is the updated email address and must be a valid email format if provided |
|
|
24
24
|
| `externalId` | *string* | :heavy_minus_sign: | external_id is the updated external identifier for the customer |
|
|
25
|
-
| `integrationEntityMapping` | [models.DtoIntegrationEntityMapping](../../sdk/models/dto-integration-entity-mapping.md)[] | :heavy_minus_sign: | integration_entity_mapping contains provider integration mappings for this customer |
|
|
26
25
|
| `metadata` | Record<string, *string*> | :heavy_minus_sign: | metadata contains updated key-value pairs that will replace existing metadata |
|
|
27
26
|
| `name` | *string* | :heavy_minus_sign: | name is the updated name or company name for the customer |
|
|
28
27
|
| `parentCustomerExternalId` | *string* | :heavy_minus_sign: | Deprecated: See ParentCustomerID.<br/>parent_customer_external_id is the external ID of the parent customer from your system.<br/>Exactly one of parent_customer_id or parent_customer_external_id may be provided.<br/>If you provide the external ID, the parent customer value will be ignored. |
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# ScheduleDraftFinalizationResponse
|
|
2
|
+
|
|
3
|
+
OK
|
|
4
|
+
|
|
5
|
+
## Example Usage
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
import { ScheduleDraftFinalizationResponse } from "@flexprice/sdk/sdk/models";
|
|
9
|
+
|
|
10
|
+
let value: ScheduleDraftFinalizationResponse = {};
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Fields
|
|
14
|
+
|
|
15
|
+
| Field | Type | Required | Description |
|
|
16
|
+
| ----------- | ----------- | ----------- | ----------- |
|
|
@@ -27,6 +27,6 @@ let value: WebhookDtoAlertWebhookPayload = {
|
|
|
27
27
|
| `alertStatus` | *string* | :heavy_minus_sign: | N/A |
|
|
28
28
|
| `alertType` | *string* | :heavy_minus_sign: | N/A |
|
|
29
29
|
| `customer` | [models.DtoCustomerResponse](../../sdk/models/dto-customer-response.md) | :heavy_minus_sign: | Customer response object containing all customer information |
|
|
30
|
-
| `eventType` |
|
|
30
|
+
| `eventType` | [models.WebhookEventName](../../sdk/models/webhook-event-name.md) | :heavy_minus_sign: | N/A |
|
|
31
31
|
| `feature` | [models.DtoFeatureResponse](../../sdk/models/dto-feature-response.md) | :heavy_minus_sign: | N/A |
|
|
32
32
|
| `wallet` | [models.DtoWalletResponse](../../sdk/models/dto-wallet-response.md) | :heavy_minus_sign: | N/A |
|
|
@@ -23,5 +23,5 @@ let value: WebhookDtoCommunicationWebhookPayload = {
|
|
|
23
23
|
|
|
24
24
|
| Field | Type | Required | Description |
|
|
25
25
|
| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |
|
|
26
|
-
| `eventType` |
|
|
26
|
+
| `eventType` | [models.WebhookEventName](../../sdk/models/webhook-event-name.md) | :heavy_minus_sign: | N/A |
|
|
27
27
|
| `invoice` | [models.DtoInvoiceResponse](../../sdk/models/dto-invoice-response.md) | :heavy_minus_sign: | N/A |
|
|
@@ -34,4 +34,4 @@ let value: WebhookDtoCreditNoteWebhookPayload = {
|
|
|
34
34
|
| Field | Type | Required | Description |
|
|
35
35
|
| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
|
|
36
36
|
| `creditNote` | [models.DtoCreditNoteResponse](../../sdk/models/dto-credit-note-response.md) | :heavy_minus_sign: | N/A |
|
|
37
|
-
| `eventType` |
|
|
37
|
+
| `eventType` | [models.WebhookEventName](../../sdk/models/webhook-event-name.md) | :heavy_minus_sign: | N/A |
|
|
@@ -13,4 +13,4 @@ let value: WebhookDtoCustomerWebhookPayload = {};
|
|
|
13
13
|
| Field | Type | Required | Description |
|
|
14
14
|
| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- |
|
|
15
15
|
| `customer` | [models.DtoCustomerResponse](../../sdk/models/dto-customer-response.md) | :heavy_minus_sign: | Customer response object containing all customer information |
|
|
16
|
-
| `eventType` |
|
|
16
|
+
| `eventType` | [models.WebhookEventName](../../sdk/models/webhook-event-name.md) | :heavy_minus_sign: | N/A |
|
|
@@ -45,4 +45,4 @@ let value: WebhookDtoEntitlementWebhookPayload = {
|
|
|
45
45
|
| Field | Type | Required | Description |
|
|
46
46
|
| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
|
|
47
47
|
| `entitlement` | [models.DtoEntitlementResponse](../../sdk/models/dto-entitlement-response.md) | :heavy_minus_sign: | N/A |
|
|
48
|
-
| `eventType` |
|
|
48
|
+
| `eventType` | [models.WebhookEventName](../../sdk/models/webhook-event-name.md) | :heavy_minus_sign: | N/A |
|
|
@@ -24,5 +24,5 @@ let value: WebhookDtoFeatureWebhookPayload = {
|
|
|
24
24
|
|
|
25
25
|
| Field | Type | Required | Description |
|
|
26
26
|
| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |
|
|
27
|
-
| `eventType` |
|
|
27
|
+
| `eventType` | [models.WebhookEventName](../../sdk/models/webhook-event-name.md) | :heavy_minus_sign: | N/A |
|
|
28
28
|
| `feature` | [models.DtoFeatureResponse](../../sdk/models/dto-feature-response.md) | :heavy_minus_sign: | N/A |
|
|
@@ -23,5 +23,5 @@ let value: WebhookDtoInvoiceWebhookPayload = {
|
|
|
23
23
|
|
|
24
24
|
| Field | Type | Required | Description |
|
|
25
25
|
| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |
|
|
26
|
-
| `eventType` |
|
|
26
|
+
| `eventType` | [models.WebhookEventName](../../sdk/models/webhook-event-name.md) | :heavy_minus_sign: | N/A |
|
|
27
27
|
| `invoice` | [models.DtoInvoiceResponse](../../sdk/models/dto-invoice-response.md) | :heavy_minus_sign: | N/A |
|
|
@@ -12,5 +12,5 @@ let value: WebhookDtoPaymentWebhookPayload = {};
|
|
|
12
12
|
|
|
13
13
|
| Field | Type | Required | Description |
|
|
14
14
|
| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |
|
|
15
|
-
| `eventType` |
|
|
15
|
+
| `eventType` | [models.WebhookEventName](../../sdk/models/webhook-event-name.md) | :heavy_minus_sign: | N/A |
|
|
16
16
|
| `payment` | [models.DtoPaymentResponse](../../sdk/models/dto-payment-response.md) | :heavy_minus_sign: | N/A |
|
|
@@ -12,5 +12,5 @@ let value: WebhookDtoSubscriptionPhaseWebhookPayload = {};
|
|
|
12
12
|
|
|
13
13
|
| Field | Type | Required | Description |
|
|
14
14
|
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
|
|
15
|
-
| `eventType` |
|
|
15
|
+
| `eventType` | [models.WebhookEventName](../../sdk/models/webhook-event-name.md) | :heavy_minus_sign: | N/A |
|
|
16
16
|
| `phase` | [models.DtoSubscriptionPhaseResponse](../../sdk/models/dto-subscription-phase-response.md) | :heavy_minus_sign: | N/A |
|
|
@@ -21,5 +21,5 @@ let value: WebhookDtoSubscriptionWebhookPayload = {
|
|
|
21
21
|
|
|
22
22
|
| Field | Type | Required | Description |
|
|
23
23
|
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
|
|
24
|
-
| `eventType` |
|
|
24
|
+
| `eventType` | [models.WebhookEventName](../../sdk/models/webhook-event-name.md) | :heavy_minus_sign: | N/A |
|
|
25
25
|
| `subscription` | [models.DtoSubscriptionResponse](../../sdk/models/dto-subscription-response.md) | :heavy_minus_sign: | N/A |
|
|
@@ -12,6 +12,6 @@ let value: WebhookDtoTransactionWebhookPayload = {};
|
|
|
12
12
|
|
|
13
13
|
| Field | Type | Required | Description |
|
|
14
14
|
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
|
|
15
|
-
| `eventType` |
|
|
15
|
+
| `eventType` | [models.WebhookEventName](../../sdk/models/webhook-event-name.md) | :heavy_minus_sign: | N/A |
|
|
16
16
|
| `transaction` | [models.DtoWalletTransactionResponse](../../sdk/models/dto-wallet-transaction-response.md) | :heavy_minus_sign: | N/A |
|
|
17
17
|
| `wallet` | [models.DtoWalletResponse](../../sdk/models/dto-wallet-response.md) | :heavy_minus_sign: | N/A |
|
|
@@ -14,5 +14,5 @@ let value: WebhookDtoWalletWebhookPayload = {};
|
|
|
14
14
|
| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
|
|
15
15
|
| `alert` | [models.WebhookDtoWalletAlertInfo](../../sdk/models/webhook-dto-wallet-alert-info.md) | :heavy_minus_sign: | N/A |
|
|
16
16
|
| `customer` | [models.DtoCustomerResponse](../../sdk/models/dto-customer-response.md) | :heavy_minus_sign: | Customer response object containing all customer information |
|
|
17
|
-
| `eventType` |
|
|
17
|
+
| `eventType` | [models.WebhookEventName](../../sdk/models/webhook-event-name.md) | :heavy_minus_sign: | N/A |
|
|
18
18
|
| `wallet` | [models.DtoWalletResponse](../../sdk/models/dto-wallet-response.md) | :heavy_minus_sign: | N/A |
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# WebhookEventName
|
|
2
|
+
|
|
3
|
+
## Example Usage
|
|
4
|
+
|
|
5
|
+
```typescript
|
|
6
|
+
import { WebhookEventName } from "@flexprice/sdk/sdk/models";
|
|
7
|
+
|
|
8
|
+
let value: WebhookEventName = "invoice.create.drafted";
|
|
9
|
+
|
|
10
|
+
// Open enum: unrecognized values are captured as Unrecognized<string>
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Values
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
"invoice.create.drafted" | "subscription.created" | "subscription.draft.created" | "subscription.activated" | "subscription.updated" | "subscription.paused" | "subscription.cancelled" | "subscription.resumed" | "subscription.phase.created" | "subscription.phase.updated" | "subscription.phase.deleted" | "feature.created" | "feature.updated" | "feature.deleted" | "feature.wallet_balance.alert" | "entitlement.created" | "entitlement.updated" | "entitlement.deleted" | "wallet.created" | "wallet.updated" | "wallet.terminated" | "wallet.transaction.created" | "payment.created" | "payment.updated" | "payment.failed" | "payment.success" | "payment.pending" | "customer.created" | "customer.updated" | "customer.deleted" | "invoice.update.finalized" | "invoice.update.payment" | "invoice.update.voided" | "invoice.update" | "invoice.payment.overdue" | "wallet.credit_balance.dropped" | "wallet.credit_balance.recovered" | "wallet.ongoing_balance.dropped" | "wallet.ongoing_balance.recovered" | "subscription.renewal.due" | "invoice.communication.triggered" | "credit_note.created" | "credit_note.updated" | Unrecognized<string>
|
|
17
|
+
```
|