Integration reference
Stripe Trigger and Action reference
Start from the Stripe event catalog and automate customers, payment links, and refunds.
Authentication
Connect the Stripe account through Stripe Connect and keep test and live behavior explicit.
- Trigger account type:
oauth2; reconnect byoauth. - Action connection type:
oauth2; available modes: Connected Stripe account.
Create or reuse the account from a Trigger or Action dialog, or manage it under Settings → Connected accounts. See Authentication and permissions for scopes and access diagnostics, or Connected accounts for reuse, reconnect, revocation, and credential rotation.
Scopes and permissions
The Trigger manifest does not declare a fixed base OAuth scope list. Installation access, API credentials, or the selected event configuration can still control available resources.
View 1 OAuth scopes used by current Actions
read_write
View 1 provider permissions or credential requirements
read_write
Operation-specific requirements appear in the tables below. Custom event selections can add scopes dynamically, so the current Trigger or Action dialog remains authoritative for the exact consent request.
Use Stripe as a Trigger
The current provider manifest contains 238 available Trigger definitions. Representative definitions include:
- Any Stripe Event
- Custom Webhook Events
- Payment Intent Succeeded
- Invoice Payment Failed
- Checkout Session Completed
- Charge Dispute Created
View all 238 available Trigger definitions
| Trigger | Manifest key | Delivery | Additional scopes |
|---|---|---|---|
| Any Stripe Event | stripe.any_event.instant | instant | None declared |
| Custom Webhook Events | stripe.custom_webhook_events.instant | instant | None declared |
| Account Application Authorized | stripe.account.application.authorized.instant | instant | None declared |
| Account Application Deauthorized | stripe.account.application.deauthorized.instant | instant | None declared |
| Account External Account Created | stripe.account.external_account.created.instant | instant | None declared |
| Account External Account Deleted | stripe.account.external_account.deleted.instant | instant | None declared |
| Account External Account Updated | stripe.account.external_account.updated.instant | instant | None declared |
| Account Updated | stripe.account.updated.instant | instant | None declared |
| Application Fee Created | stripe.application_fee.created.instant | instant | None declared |
| Application Fee Refund Updated | stripe.application_fee.refund.updated.instant | instant | None declared |
| Application Fee Refunded | stripe.application_fee.refunded.instant | instant | None declared |
| Balance Settings Updated | stripe.balance_settings.updated.instant | instant | None declared |
| Balance Available | stripe.balance.available.instant | instant | None declared |
| Billing Portal Configuration Created | stripe.billing_portal.configuration.created.instant | instant | None declared |
| Billing Portal Configuration Updated | stripe.billing_portal.configuration.updated.instant | instant | None declared |
| Billing Portal Session Created | stripe.billing_portal.session.created.instant | instant | None declared |
| Billing Alert Triggered | stripe.billing.alert.triggered.instant | instant | None declared |
| Billing Credit Balance Transaction Created | stripe.billing.credit_balance_transaction.created.instant | instant | None declared |
| Billing Credit Grant Created | stripe.billing.credit_grant.created.instant | instant | None declared |
| Billing Credit Grant Updated | stripe.billing.credit_grant.updated.instant | instant | None declared |
| Billing Meter Created | stripe.billing.meter.created.instant | instant | None declared |
| Billing Meter Deactivated | stripe.billing.meter.deactivated.instant | instant | None declared |
| Billing Meter Reactivated | stripe.billing.meter.reactivated.instant | instant | None declared |
| Billing Meter Updated | stripe.billing.meter.updated.instant | instant | None declared |
| Capability Updated | stripe.capability.updated.instant | instant | None declared |
| Cash Balance Funds Available | stripe.cash_balance.funds_available.instant | instant | None declared |
| Charge Captured | stripe.charge.captured.instant | instant | None declared |
| Charge Dispute Closed | stripe.charge.dispute.closed.instant | instant | None declared |
| Charge Dispute Created | stripe.charge.dispute.created.instant | instant | None declared |
| Charge Dispute Funds Reinstated | stripe.charge.dispute.funds_reinstated.instant | instant | None declared |
| Charge Dispute Funds Withdrawn | stripe.charge.dispute.funds_withdrawn.instant | instant | None declared |
| Charge Dispute Updated | stripe.charge.dispute.updated.instant | instant | None declared |
| Charge Expired | stripe.charge.expired.instant | instant | None declared |
| Charge Failed | stripe.charge.failed.instant | instant | None declared |
| Charge Pending | stripe.charge.pending.instant | instant | None declared |
| Charge Refund Updated | stripe.charge.refund.updated.instant | instant | None declared |
| Charge Refunded | stripe.charge.refunded.instant | instant | None declared |
| Charge Succeeded | stripe.charge.succeeded.instant | instant | None declared |
| Charge Updated | stripe.charge.updated.instant | instant | None declared |
| Checkout Session Async Payment Failed | stripe.checkout.session.async_payment_failed.instant | instant | None declared |
| Checkout Session Async Payment Succeeded | stripe.checkout.session.async_payment_succeeded.instant | instant | None declared |
| Checkout Session Completed | stripe.checkout.session.completed.instant | instant | None declared |
| Checkout Session Expired | stripe.checkout.session.expired.instant | instant | None declared |
| Climate Order Canceled | stripe.climate.order.canceled.instant | instant | None declared |
| Climate Order Created | stripe.climate.order.created.instant | instant | None declared |
| Climate Order Delayed | stripe.climate.order.delayed.instant | instant | None declared |
| Climate Order Delivered | stripe.climate.order.delivered.instant | instant | None declared |
| Climate Order Product Substituted | stripe.climate.order.product_substituted.instant | instant | None declared |
| Climate Product Created | stripe.climate.product.created.instant | instant | None declared |
| Climate Product Pricing Updated | stripe.climate.product.pricing_updated.instant | instant | None declared |
| Coupon Created | stripe.coupon.created.instant | instant | None declared |
| Coupon Deleted | stripe.coupon.deleted.instant | instant | None declared |
| Coupon Updated | stripe.coupon.updated.instant | instant | None declared |
| Credit Note Created | stripe.credit_note.created.instant | instant | None declared |
| Credit Note Updated | stripe.credit_note.updated.instant | instant | None declared |
| Credit Note Voided | stripe.credit_note.voided.instant | instant | None declared |
| Customer Cash Balance Transaction Created | stripe.customer_cash_balance_transaction.created.instant | instant | None declared |
| Customer Created | stripe.customer.created.instant | instant | None declared |
| Customer Deleted | stripe.customer.deleted.instant | instant | None declared |
| Customer Discount Created | stripe.customer.discount.created.instant | instant | None declared |
| Customer Discount Deleted | stripe.customer.discount.deleted.instant | instant | None declared |
| Customer Discount Updated | stripe.customer.discount.updated.instant | instant | None declared |
| Customer Source Created | stripe.customer.source.created.instant | instant | None declared |
| Customer Source Deleted | stripe.customer.source.deleted.instant | instant | None declared |
| Customer Source Expiring | stripe.customer.source.expiring.instant | instant | None declared |
| Customer Source Updated | stripe.customer.source.updated.instant | instant | None declared |
| Customer Subscription Created | stripe.customer.subscription.created.instant | instant | None declared |
| Customer Subscription Deleted | stripe.customer.subscription.deleted.instant | instant | None declared |
| Customer Subscription Paused | stripe.customer.subscription.paused.instant | instant | None declared |
| Customer Subscription Pending Update Applied | stripe.customer.subscription.pending_update_applied.instant | instant | None declared |
| Customer Subscription Pending Update Expired | stripe.customer.subscription.pending_update_expired.instant | instant | None declared |
| Customer Subscription Resumed | stripe.customer.subscription.resumed.instant | instant | None declared |
| Customer Subscription Trial Will End | stripe.customer.subscription.trial_will_end.instant | instant | None declared |
| Customer Subscription Updated | stripe.customer.subscription.updated.instant | instant | None declared |
| Customer Tax Id Created | stripe.customer.tax_id.created.instant | instant | None declared |
| Customer Tax Id Deleted | stripe.customer.tax_id.deleted.instant | instant | None declared |
| Customer Tax Id Updated | stripe.customer.tax_id.updated.instant | instant | None declared |
| Customer Updated | stripe.customer.updated.instant | instant | None declared |
| Entitlements Active Entitlement Summary Updated | stripe.entitlements.active_entitlement_summary.updated.instant | instant | None declared |
| File Created | stripe.file.created.instant | instant | None declared |
| Financial Connections Account Account Numbers Updated | stripe.financial_connections.account.account_numbers_updated.instant | instant | None declared |
| Financial Connections Account Created | stripe.financial_connections.account.created.instant | instant | None declared |
| Financial Connections Account Deactivated | stripe.financial_connections.account.deactivated.instant | instant | None declared |
| Financial Connections Account Disconnected | stripe.financial_connections.account.disconnected.instant | instant | None declared |
| Financial Connections Account Expected Deactivation Date Updated | stripe.financial_connections.account.expected_deactivation_date_updated.instant | instant | None declared |
| Financial Connections Account Reactivated | stripe.financial_connections.account.reactivated.instant | instant | None declared |
| Financial Connections Account Refreshed Balance | stripe.financial_connections.account.refreshed_balance.instant | instant | None declared |
| Financial Connections Account Refreshed Ownership | stripe.financial_connections.account.refreshed_ownership.instant | instant | None declared |
| Financial Connections Account Refreshed Transactions | stripe.financial_connections.account.refreshed_transactions.instant | instant | None declared |
| Financial Connections Account Supported Payment Method Types Updated | stripe.financial_connections.account.supported_payment_method_types_updated.instant | instant | None declared |
| Financial Connections Account Upcoming Account Number Expiry | stripe.financial_connections.account.upcoming_account_number_expiry.instant | instant | None declared |
| Financial Connections Account Upcoming Deactivation | stripe.financial_connections.account.upcoming_deactivation.instant | instant | None declared |
| Financial Connections Authorization Expected Deactivation Date Updated | stripe.financial_connections.authorization.expected_deactivation_date_updated.instant | instant | None declared |
| Financial Connections Authorization Upcoming Deactivation | stripe.financial_connections.authorization.upcoming_deactivation.instant | instant | None declared |
| Identity Verification Session Canceled | stripe.identity.verification_session.canceled.instant | instant | None declared |
| Identity Verification Session Created | stripe.identity.verification_session.created.instant | instant | None declared |
| Identity Verification Session Processing | stripe.identity.verification_session.processing.instant | instant | None declared |
| Identity Verification Session Redacted | stripe.identity.verification_session.redacted.instant | instant | None declared |
| Identity Verification Session Requires Input | stripe.identity.verification_session.requires_input.instant | instant | None declared |
| Identity Verification Session Verified | stripe.identity.verification_session.verified.instant | instant | None declared |
| Invoice Payment Paid | stripe.invoice_payment.paid.instant | instant | None declared |
| Invoice Created | stripe.invoice.created.instant | instant | None declared |
| Invoice Deleted | stripe.invoice.deleted.instant | instant | None declared |
| Invoice Finalization Failed | stripe.invoice.finalization_failed.instant | instant | None declared |
| Invoice Finalized | stripe.invoice.finalized.instant | instant | None declared |
| Invoice Marked Uncollectible | stripe.invoice.marked_uncollectible.instant | instant | None declared |
| Invoice Overdue | stripe.invoice.overdue.instant | instant | None declared |
| Invoice Overpaid | stripe.invoice.overpaid.instant | instant | None declared |
| Invoice Paid | stripe.invoice.paid.instant | instant | None declared |
| Invoice Payment Action Required | stripe.invoice.payment_action_required.instant | instant | None declared |
| Invoice Payment Attempt Required | stripe.invoice.payment_attempt_required.instant | instant | None declared |
| Invoice Payment Failed | stripe.invoice.payment_failed.instant | instant | None declared |
| Invoice Payment Succeeded | stripe.invoice.payment_succeeded.instant | instant | None declared |
| Invoice Sent | stripe.invoice.sent.instant | instant | None declared |
| Invoice Upcoming | stripe.invoice.upcoming.instant | instant | None declared |
| Invoice Updated | stripe.invoice.updated.instant | instant | None declared |
| Invoice Voided | stripe.invoice.voided.instant | instant | None declared |
| Invoice Will Be Due | stripe.invoice.will_be_due.instant | instant | None declared |
| Invoiceitem Created | stripe.invoiceitem.created.instant | instant | None declared |
| Invoiceitem Deleted | stripe.invoiceitem.deleted.instant | instant | None declared |
| Issuing Authorization Created | stripe.issuing_authorization.created.instant | instant | None declared |
| Issuing Authorization Request | stripe.issuing_authorization.request.instant | instant | None declared |
| Issuing Authorization Updated | stripe.issuing_authorization.updated.instant | instant | None declared |
| Issuing Card Created | stripe.issuing_card.created.instant | instant | None declared |
| Issuing Card Updated | stripe.issuing_card.updated.instant | instant | None declared |
| Issuing Cardholder Created | stripe.issuing_cardholder.created.instant | instant | None declared |
| Issuing Cardholder Updated | stripe.issuing_cardholder.updated.instant | instant | None declared |
| Issuing Dispute Closed | stripe.issuing_dispute.closed.instant | instant | None declared |
| Issuing Dispute Created | stripe.issuing_dispute.created.instant | instant | None declared |
| Issuing Dispute Funds Reinstated | stripe.issuing_dispute.funds_reinstated.instant | instant | None declared |
| Issuing Dispute Funds Rescinded | stripe.issuing_dispute.funds_rescinded.instant | instant | None declared |
| Issuing Dispute Submitted | stripe.issuing_dispute.submitted.instant | instant | None declared |
| Issuing Dispute Updated | stripe.issuing_dispute.updated.instant | instant | None declared |
| Issuing Personalization Design Activated | stripe.issuing_personalization_design.activated.instant | instant | None declared |
| Issuing Personalization Design Deactivated | stripe.issuing_personalization_design.deactivated.instant | instant | None declared |
| Issuing Personalization Design Rejected | stripe.issuing_personalization_design.rejected.instant | instant | None declared |
| Issuing Personalization Design Updated | stripe.issuing_personalization_design.updated.instant | instant | None declared |
| Issuing Token Created | stripe.issuing_token.created.instant | instant | None declared |
| Issuing Token Updated | stripe.issuing_token.updated.instant | instant | None declared |
| Issuing Transaction Created | stripe.issuing_transaction.created.instant | instant | None declared |
| Issuing Transaction Purchase Details Receipt Updated | stripe.issuing_transaction.purchase_details_receipt_updated.instant | instant | None declared |
| Issuing Transaction Updated | stripe.issuing_transaction.updated.instant | instant | None declared |
| Mandate Updated | stripe.mandate.updated.instant | instant | None declared |
| Payment Intent Amount Capturable Updated | stripe.payment_intent.amount_capturable_updated.instant | instant | None declared |
| Payment Intent Canceled | stripe.payment_intent.canceled.instant | instant | None declared |
| Payment Intent Created | stripe.payment_intent.created.instant | instant | None declared |
| Payment Intent Partially Funded | stripe.payment_intent.partially_funded.instant | instant | None declared |
| Payment Intent Payment Failed | stripe.payment_intent.payment_failed.instant | instant | None declared |
| Payment Intent Processing | stripe.payment_intent.processing.instant | instant | None declared |
| Payment Intent Requires Action | stripe.payment_intent.requires_action.instant | instant | None declared |
| Payment Intent Succeeded | stripe.payment_intent.succeeded.instant | instant | None declared |
| Payment Link Created | stripe.payment_link.created.instant | instant | None declared |
| Payment Link Updated | stripe.payment_link.updated.instant | instant | None declared |
| Payment Method Attached | stripe.payment_method.attached.instant | instant | None declared |
| Payment Method Automatically Updated | stripe.payment_method.automatically_updated.instant | instant | None declared |
| Payment Method Detached | stripe.payment_method.detached.instant | instant | None declared |
| Payment Method Updated | stripe.payment_method.updated.instant | instant | None declared |
| Payout Canceled | stripe.payout.canceled.instant | instant | None declared |
| Payout Created | stripe.payout.created.instant | instant | None declared |
| Payout Failed | stripe.payout.failed.instant | instant | None declared |
| Payout Paid | stripe.payout.paid.instant | instant | None declared |
| Payout Reconciliation Completed | stripe.payout.reconciliation_completed.instant | instant | None declared |
| Payout Updated | stripe.payout.updated.instant | instant | None declared |
| Person Created | stripe.person.created.instant | instant | None declared |
| Person Deleted | stripe.person.deleted.instant | instant | None declared |
| Person Updated | stripe.person.updated.instant | instant | None declared |
| Plan Created | stripe.plan.created.instant | instant | None declared |
| Plan Deleted | stripe.plan.deleted.instant | instant | None declared |
| Plan Updated | stripe.plan.updated.instant | instant | None declared |
| Price Created | stripe.price.created.instant | instant | None declared |
| Price Deleted | stripe.price.deleted.instant | instant | None declared |
| Price Updated | stripe.price.updated.instant | instant | None declared |
| Product Created | stripe.product.created.instant | instant | None declared |
| Product Deleted | stripe.product.deleted.instant | instant | None declared |
| Product Updated | stripe.product.updated.instant | instant | None declared |
| Promotion Code Created | stripe.promotion_code.created.instant | instant | None declared |
| Promotion Code Updated | stripe.promotion_code.updated.instant | instant | None declared |
| Quote Accepted | stripe.quote.accepted.instant | instant | None declared |
| Quote Canceled | stripe.quote.canceled.instant | instant | None declared |
| Quote Created | stripe.quote.created.instant | instant | None declared |
| Quote Finalized | stripe.quote.finalized.instant | instant | None declared |
| Quote Will Expire | stripe.quote.will_expire.instant | instant | None declared |
| Radar Early Fraud Warning Created | stripe.radar.early_fraud_warning.created.instant | instant | None declared |
| Radar Early Fraud Warning Updated | stripe.radar.early_fraud_warning.updated.instant | instant | None declared |
| Refund Created | stripe.refund.created.instant | instant | None declared |
| Refund Failed | stripe.refund.failed.instant | instant | None declared |
| Refund Updated | stripe.refund.updated.instant | instant | None declared |
| Reporting Report Run Failed | stripe.reporting.report_run.failed.instant | instant | None declared |
| Reporting Report Run Succeeded | stripe.reporting.report_run.succeeded.instant | instant | None declared |
| Reporting Report Type Updated | stripe.reporting.report_type.updated.instant | instant | None declared |
| Reserve Hold Created | stripe.reserve.hold.created.instant | instant | None declared |
| Reserve Hold Updated | stripe.reserve.hold.updated.instant | instant | None declared |
| Reserve Plan Created | stripe.reserve.plan.created.instant | instant | None declared |
| Reserve Plan Disabled | stripe.reserve.plan.disabled.instant | instant | None declared |
| Reserve Plan Expired | stripe.reserve.plan.expired.instant | instant | None declared |
| Reserve Plan Updated | stripe.reserve.plan.updated.instant | instant | None declared |
| Reserve Release Created | stripe.reserve.release.created.instant | instant | None declared |
| Review Closed | stripe.review.closed.instant | instant | None declared |
| Review Opened | stripe.review.opened.instant | instant | None declared |
| Setup Intent Canceled | stripe.setup_intent.canceled.instant | instant | None declared |
| Setup Intent Created | stripe.setup_intent.created.instant | instant | None declared |
| Setup Intent Requires Action | stripe.setup_intent.requires_action.instant | instant | None declared |
| Setup Intent Setup Failed | stripe.setup_intent.setup_failed.instant | instant | None declared |
| Setup Intent Succeeded | stripe.setup_intent.succeeded.instant | instant | None declared |
| Sigma Scheduled Query Run Created | stripe.sigma.scheduled_query_run.created.instant | instant | None declared |
| Source Canceled | stripe.source.canceled.instant | instant | None declared |
| Source Chargeable | stripe.source.chargeable.instant | instant | None declared |
| Source Failed | stripe.source.failed.instant | instant | None declared |
| Source Mandate Notification | stripe.source.mandate_notification.instant | instant | None declared |
| Source Refund Attributes Required | stripe.source.refund_attributes_required.instant | instant | None declared |
| Source Transaction Created | stripe.source.transaction.created.instant | instant | None declared |
| Source Transaction Updated | stripe.source.transaction.updated.instant | instant | None declared |
| Subscription Schedule Aborted | stripe.subscription_schedule.aborted.instant | instant | None declared |
| Subscription Schedule Canceled | stripe.subscription_schedule.canceled.instant | instant | None declared |
| Subscription Schedule Completed | stripe.subscription_schedule.completed.instant | instant | None declared |
| Subscription Schedule Created | stripe.subscription_schedule.created.instant | instant | None declared |
| Subscription Schedule Expiring | stripe.subscription_schedule.expiring.instant | instant | None declared |
| Subscription Schedule Released | stripe.subscription_schedule.released.instant | instant | None declared |
| Subscription Schedule Updated | stripe.subscription_schedule.updated.instant | instant | None declared |
| Tax Rate Created | stripe.tax_rate.created.instant | instant | None declared |
| Tax Rate Updated | stripe.tax_rate.updated.instant | instant | None declared |
| Tax Settings Updated | stripe.tax.settings.updated.instant | instant | None declared |
| Terminal Reader Action Failed | stripe.terminal.reader.action_failed.instant | instant | None declared |
| Terminal Reader Action Succeeded | stripe.terminal.reader.action_succeeded.instant | instant | None declared |
| Terminal Reader Action Updated | stripe.terminal.reader.action_updated.instant | instant | None declared |
| Test Helpers Test Clock Advancing | stripe.test_helpers.test_clock.advancing.instant | instant | None declared |
| Test Helpers Test Clock Created | stripe.test_helpers.test_clock.created.instant | instant | None declared |
| Test Helpers Test Clock Deleted | stripe.test_helpers.test_clock.deleted.instant | instant | None declared |
| Test Helpers Test Clock Internal Failure | stripe.test_helpers.test_clock.internal_failure.instant | instant | None declared |
| Test Helpers Test Clock Ready | stripe.test_helpers.test_clock.ready.instant | instant | None declared |
| Topup Canceled | stripe.topup.canceled.instant | instant | None declared |
| Topup Created | stripe.topup.created.instant | instant | None declared |
| Topup Failed | stripe.topup.failed.instant | instant | None declared |
| Topup Reversed | stripe.topup.reversed.instant | instant | None declared |
| Topup Succeeded | stripe.topup.succeeded.instant | instant | None declared |
| Transfer Created | stripe.transfer.created.instant | instant | None declared |
| Transfer Reversed | stripe.transfer.reversed.instant | instant | None declared |
| Transfer Updated | stripe.transfer.updated.instant | instant | None declared |
Choose the narrowest event definition that fits the Workflow. Configure provider-specific resource and event filters in the Source dialog before adding broader Workflow Filters.
Use Stripe Actions
The current Action manifest contains 5 operations. Representative Actions include:
- Create Customer
- Update Customer
- Create Payment Link
- Create Refund
- Custom API Request
View all 5 available Action definitions
| Action | Manifest key | Access and auth | Manifest rate limit |
|---|---|---|---|
| Create Customer | stripe.create_customer | read_writeFastHook-managed account | 10/second |
| Update Customer | stripe.update_customer | read_writeFastHook-managed account | 10/second |
| Create Payment Link | stripe.create_payment_link | read_writeFastHook-managed account | 10/second |
| Create Refund | stripe.create_refund | read_writeFastHook-managed account | 10/second |
| Custom API Request | stripe.custom_api_request | read_writeFastHook-managed account | 10/second |
The Action editor reads its required permissions, fields, remote resource pickers, output schema, and rate limit from the provider manifest. Available fields can change with the selected operation and authentication mode.
Build a Workflow
- Create a Source using a Stripe Trigger definition.
- Create a Workflow with that Source as its Trigger.
- Add the required Stripe Action and select the connected account.
- Map Trigger or earlier-Step data into the Action fields with the field picker.
- Add a Filter, Paths, Delay, or Transformation when the route needs it.
- Activate the Workflow, produce a controlled event, and verify the run in Audit and in Stripe.
Troubleshooting Stripe
- The account is missing or cannot be selected
- Confirm the active FastHook team, provider, account status, and authentication mode. A disabled or revoked account cannot execute an Action.
- A resource picker is empty
- Verify that the connected provider identity can access the resource itself. OAuth consent does not add workspace, repository, channel, drive, project, base, or record permissions.
- The editor asks for additional scopes
- Reconnect the same account from the affected Trigger or Action so FastHook can request its current manifest scopes. Then reopen the editor and select the resource again.
- An active Workflow returns 401, 403, or a permission error
- Compare the selected operation’s access requirements below with the account recorded in Audit. Check provider-side membership and object access before repeating the Action.
- The provider returns 429 or a temporary 5xx
- Inspect the Step attempt and retryability in Audit. FastHook can retry temporary failures, but provider quotas and idempotency rules still apply.
Provider-specific checks
- Prefer a named event or selected custom event list over Any Stripe Event.
- Use event IDs and provider idempotency features to protect side effects from retries.