/simulations Creates a new simulation for a notification setting (notification destination).
simulated webhook payloads with real data. The API key making the request needs read permissions:
- For the entities you provided, or the request fails.
- For related entities which aren't nested in the entities you provided, or static examples will be used instead.
For example, when creating a subscription renewal scenario simulation with an API key that has a subscription.read permission but not a transaction.read permission,
the request succeeds and the subscription data will be used in simulated payloads, but the related transaction data won't be used in payloads and falls back to a static example.
If you don't provide a config.entities object, simulated webhook payloads are populated with static examples.
If successful, your response includes a copy of the new simulation entity.
Requires notification_simulation.write
permission.
Request body
Single event
entity.event_type.address.createdAnaddress.createdevent.address.importedAnaddress.importedevent.address.updatedAnaddress.updatedevent.adjustment.createdAnadjustment.createdevent.adjustment.updatedAnadjustment.updatedevent.
+ Show all values− Hide values
api_key.createdAnapi_key.createdevent.api_key.expiredAnapi_key.expiredevent.api_key.expiringAnapi_key.expiringevent.api_key.revokedAnapi_key.revokedevent.api_key.updatedAnapi_key.updatedevent.api_key_exposure.createdAnapi_key_exposure.createdevent.business.createdAbusiness.createdevent.business.importedAbusiness.importedevent.business.updatedAbusiness.updatedevent.client_token.createdAclient_token.createdevent.client_token.revokedAclient_token.revokedevent.client_token.updatedAclient_token.updatedevent.customer.createdAcustomer.createdevent.customer.importedAcustomer.importedevent.customer.updatedAcustomer.updatedevent.discount.createdAdiscount.createdevent.discount.importedAdiscount.importedevent.discount.updatedAdiscount.updatedevent.discount_group.createdAdiscount_group.createdevent.discount_group.updatedAdiscount_group.updatedevent.payment_method.savedApayment_method.savedevent.payment_method.deletedApayment_method.deletedevent.payout.createdApayout.createdevent.payout.paidApayout.paidevent.price.createdAprice.createdevent.price.importedAprice.importedevent.price.updatedAprice.updatedevent.product.createdAproduct.createdevent.product.importedAproduct.importedevent.product.updatedAproduct.updatedevent.report.createdAreport.createdevent.report.updatedAreport.updatedevent.subscription.activatedAsubscription.activatedevent.subscription.canceledAsubscription.canceledevent.subscription.createdAsubscription.createdevent.subscription.importedAsubscription.importedevent.subscription.past_dueAsubscription.past_dueevent.subscription.pausedAsubscription.pausedevent.subscription.resumedAsubscription.resumedevent.subscription.trialingAsubscription.trialingevent.subscription.updatedAsubscription.updatedevent.transaction.billedAtransaction.billedevent.transaction.canceledAtransaction.canceledevent.transaction.completedAtransaction.completedevent.transaction.createdAtransaction.createdevent.transaction.paidAtransaction.paidevent.transaction.past_dueAtransaction.past_dueevent.transaction.payment_failedAtransaction.payment_failedevent.transaction.readyAtransaction.readyevent.transaction.revisedAtransaction.revisedevent.transaction.updatedAtransaction.updatedevent.
Scenario
subscription_creationSimulates all events sent when a subscription is created.subscription_renewalSimulates all events sent when a subscription is renewed.subscription_pauseSimulates all events sent when a subscription is paused.subscription_resumeSimulates all events sent when a subscription is resumed.subscription_cancellationSimulates all events sent when a subscription is canceled.
Subscription cancellation config
sub_01h04vsc0qhwtsbsxh3422wjs4sub_.^sub_[a-z\d]{26}$immediatelyimmediately.next_billing_periodSimulates as if the subscription cancels at the start of next billing period.immediatelySimulates as if the subscription cancels immediately.
falsetrue) or not (false), which determines whether events occur for canceling past due transactions. If omitted, defaults to false.Subscription creation config
Subscription creation config without prices
ctm_01grnn4zta5a1mf02jjze7y2ysctm_.^ctm_[a-z\d]{26}$add_01gm302t81w94gyjpjpqypkzkfadd_.^add_[a-z\d]{26}$biz_01grrebrzaee2qj2fqqhmcyzajbiz_.^biz_[a-z\d]{26}$paymtd_01hkm9xwqpbbpr1ksmvg3sx3v1paymtd_.^paymtd_[a-z\d]{26}$dsc_01gv5kpg05xp104ek2fmgjwttfdsc_.^dsc_[a-z\d]{26}$Subscription creation config for items
ctm_01grnn4zta5a1mf02jjze7y2ysctm_.^ctm_[a-z\d]{26}$add_01gm302t81w94gyjpjpqypkzkfadd_.^add_[a-z\d]{26}$biz_01grrebrzaee2qj2fqqhmcyzajbiz_.^biz_[a-z\d]{26}$paymtd_01hkm9xwqpbbpr1ksmvg3sx3v1paymtd_.^paymtd_[a-z\d]{26}$dsc_01gv5kpg05xp104ek2fmgjwttfdsc_.^dsc_[a-z\d]{26}$5pri_01gsz8z1q1n00f12qt82y31smh^pri_[a-z\d]{26}$Subscription creation config for transaction
ctm_01grnn4zta5a1mf02jjze7y2ysctm_.^ctm_[a-z\d]{26}$add_01gm302t81w94gyjpjpqypkzkfadd_.^add_[a-z\d]{26}$biz_01grrebrzaee2qj2fqqhmcyzajbiz_.^biz_[a-z\d]{26}$paymtd_01hkm9xwqpbbpr1ksmvg3sx3v1paymtd_.^paymtd_[a-z\d]{26}$dsc_01gv5kpg05xp104ek2fmgjwttfdsc_.^dsc_[a-z\d]{26}$txn_01h04vsbhqc62t8hmd4z3b578c^txn_[a-z\d]{26}$newnew.newSimulates as if a new customer enters their details at checkout and Paddle creates a new customer.existing_email_matchedSimulates as if an existing customer enters their details at checkout. Paddle matches it to an existing customer based on the email supplied and creates a new address for that customer.existing_details_prefilledSimulates as if existing customer details are prefilled at checkout by passing them to Paddle.js.
not_providednot_provided.not_providedSimulates as if no business is provided.newSimulates as if a customer enters their business details at checkout and Paddle creates a new business.existing_details_prefilledSimulates as if an existing business is prefilled at checkout by passing it to Paddle.js.
not_providednot_provided.not_providedSimulates as if no discount is entered.prefilledSimulates as if a discount is prefilled at checkout by passing it to Paddle.js. Requiresentities.discount_id.entered_by_customerSimulates as if a customer entered a discount at checkout. Requiresentities.discount_id.
Subscription paused config
sub_01h04vsc0qhwtsbsxh3422wjs4sub_.^sub_[a-z\d]{26}$immediatelyimmediately.next_billing_periodSimulates as if the subscription pauses at the start of next billing period.immediatelySimulates as if the subscription pauses immediately.
falsetrue) or not (false), which determines whether events occur for canceling past due transactions. If omitted, defaults to false.Subscription renewal config
sub_01h04vsc0qhwtsbsxh3422wjs4sub_.^sub_[a-z\d]{26}$Successful payment outcome options
successsuccess.successSimulates as if the payment for the subscription is successful.
payment_outcome is failed. If omitted, defaults to null.Failed payment outcome options
success.failedSimulates as if the payment for the subscription is unsuccessful after all payment recovery attempts are exhausted.
subscription_canceledsubscription_canceled.subscription_pausedSimulates as if the subscription is paused after all payment recovery attempts are exhausted.subscription_canceledSimulates as if the subscription is paused after all payment recovery attempts are exhausted.
Recovered from existing payment method payment outcome options
success.recovered_existing_payment_methodSimulates as if the payment for the subscription fails initially and the payment is recovered when retrying the existing payment method.
payment_outcome is failed. If omitted, defaults to null.Recovered from updated payment method payment outcome options
success.recovered_updated_payment_methodSimulates as if the payment for the subscription fails initially and the customer updates their payment method to successfully pay.
payment_outcome is failed. If omitted, defaults to null.Subscription resume config
sub_01h04vsc0qhwtsbsxh3422wjs4sub_.^sub_[a-z\d]{26}$Successful payment outcome options
successsuccess.successSimulates as if the payment for the subscription is successful.
payment_outcome is failed. If omitted, defaults to null.Failed payment outcome options
success.failedSimulates as if the payment for the subscription is unsuccessful after all payment recovery attempts are exhausted.
subscription_canceledsubscription_canceled.subscription_pausedSimulates as if the subscription is paused after all payment recovery attempts are exhausted.subscription_canceledSimulates as if the subscription is paused after all payment recovery attempts are exhausted.
Recovered from existing payment method payment outcome options
success.recovered_existing_payment_methodSimulates as if the payment for the subscription fails initially and the payment is recovered when retrying the existing payment method.
payment_outcome is failed. If omitted, defaults to null.Recovered from updated payment method payment outcome options
success.recovered_updated_payment_methodSimulates as if the payment for the subscription fails initially and the customer updates their payment method to successfully pay.
payment_outcome is failed. If omitted, defaults to null.Response (201)
Single event
ntfsim_01ghbkd0frb9k95cnhwd1bxpvkntfsim_.^ntfsim_[a-z\d]{26}$activeactiveEntity is active and can be used.archivedEntity is archived, so can't be used.
ntfset_01gt21c5pdx9q1e4mh1xrsjjn6ntfset_.^ntfset_[a-z\d]{26}$entity.event_type.address.createdAnaddress.createdevent.address.importedAnaddress.importedevent.address.updatedAnaddress.updatedevent.adjustment.createdAnadjustment.createdevent.adjustment.updatedAnadjustment.updatedevent.
+ Show all values− Hide values
api_key.createdAnapi_key.createdevent.api_key.expiredAnapi_key.expiredevent.api_key.expiringAnapi_key.expiringevent.api_key.revokedAnapi_key.revokedevent.api_key.updatedAnapi_key.updatedevent.api_key_exposure.createdAnapi_key_exposure.createdevent.business.createdAbusiness.createdevent.business.importedAbusiness.importedevent.business.updatedAbusiness.updatedevent.client_token.createdAclient_token.createdevent.client_token.revokedAclient_token.revokedevent.client_token.updatedAclient_token.updatedevent.customer.createdAcustomer.createdevent.customer.importedAcustomer.importedevent.customer.updatedAcustomer.updatedevent.discount.createdAdiscount.createdevent.discount.importedAdiscount.importedevent.discount.updatedAdiscount.updatedevent.discount_group.createdAdiscount_group.createdevent.discount_group.updatedAdiscount_group.updatedevent.payment_method.savedApayment_method.savedevent.payment_method.deletedApayment_method.deletedevent.payout.createdApayout.createdevent.payout.paidApayout.paidevent.price.createdAprice.createdevent.price.importedAprice.importedevent.price.updatedAprice.updatedevent.product.createdAproduct.createdevent.product.importedAproduct.importedevent.product.updatedAproduct.updatedevent.report.createdAreport.createdevent.report.updatedAreport.updatedevent.subscription.activatedAsubscription.activatedevent.subscription.canceledAsubscription.canceledevent.subscription.createdAsubscription.createdevent.subscription.importedAsubscription.importedevent.subscription.past_dueAsubscription.past_dueevent.subscription.pausedAsubscription.pausedevent.subscription.resumedAsubscription.resumedevent.subscription.trialingAsubscription.trialingevent.subscription.updatedAsubscription.updatedevent.transaction.billedAtransaction.billedevent.transaction.canceledAtransaction.canceledevent.transaction.completedAtransaction.completedevent.transaction.createdAtransaction.createdevent.transaction.paidAtransaction.paidevent.transaction.past_dueAtransaction.past_dueevent.transaction.payment_failedAtransaction.payment_failedevent.transaction.readyAtransaction.readyevent.transaction.revisedAtransaction.revisedevent.transaction.updatedAtransaction.updatedevent.
null for single events.2024-10-12T07:20:50.52Z2024-10-12T07:20:50.52Z2024-10-13T07:20:50.52ZScenario
ntfsim_01ghbkd0frb9k95cnhwd1bxpvkntfsim_.^ntfsim_[a-z\d]{26}$activeactiveEntity is active and can be used.archivedEntity is archived, so can't be used.
ntfset_01gt21c5pdx9q1e4mh1xrsjjn6ntfset_.^ntfset_[a-z\d]{26}$subscription_creationSimulates all events sent when a subscription is created.subscription_renewalSimulates all events sent when a subscription is renewed.subscription_pauseSimulates all events sent when a subscription is paused.subscription_resumeSimulates all events sent when a subscription is resumed.subscription_cancellationSimulates all events sent when a subscription is canceled.
null for scenarios.sub_01h04vsc0qhwtsbsxh3422wjs4sub_.^sub_[a-z\d]{26}$immediatelyimmediately.next_billing_periodSimulates as if the subscription cancels at the start of next billing period.immediatelySimulates as if the subscription cancels immediately.
falsetrue) or not (false), which determines whether events occur for canceling past due transactions. If omitted, defaults to false.ctm_01grnn4zta5a1mf02jjze7y2ysctm_.^ctm_[a-z\d]{26}$add_01gm302t81w94gyjpjpqypkzkfadd_.^add_[a-z\d]{26}$biz_01grrebrzaee2qj2fqqhmcyzajbiz_.^biz_[a-z\d]{26}$paymtd_01hkm9xwqpbbpr1ksmvg3sx3v1paymtd_.^paymtd_[a-z\d]{26}$dsc_01gv5kpg05xp104ek2fmgjwttfdsc_.^dsc_[a-z\d]{26}$txn_01h04vsbhqc62t8hmd4z3b578ctxn_.^txn_[a-z\d]{26}$5pri_01gsz8z1q1n00f12qt82y31smh^pri_[a-z\d]{26}$newnew.newSimulates as if a new customer enters their details at checkout and Paddle creates a new customer.existing_email_matchedSimulates as if an existing customer enters their details at checkout. Paddle matches it to an existing customer based on the email supplied and creates a new address for that customer.existing_details_prefilledSimulates as if existing customer details are prefilled at checkout by passing them to Paddle.js.
not_providednot_provided.not_providedSimulates as if no business is provided.newSimulates as if a customer enters their business details at checkout and Paddle creates a new business.existing_details_prefilledSimulates as if an existing business is prefilled at checkout by passing it to Paddle.js.
not_providednot_provided.not_providedSimulates as if no discount is entered.prefilledSimulates as if a discount is prefilled at checkout by passing it to Paddle.js. Requiresentities.discount_id.entered_by_customerSimulates as if a customer entered a discount at checkout. Requiresentities.discount_id.
sub_01h04vsc0qhwtsbsxh3422wjs4sub_.^sub_[a-z\d]{26}$immediatelyimmediately.next_billing_periodSimulates as if the subscription pauses at the start of next billing period.immediatelySimulates as if the subscription pauses immediately.
falsetrue) or not (false), which determines whether events occur for canceling past due transactions. If omitted, defaults to false.sub_01h04vsc0qhwtsbsxh3422wjs4sub_.^sub_[a-z\d]{26}$successsuccess.successSimulates as if the payment for the subscription is successful.recovered_existing_payment_methodSimulates as if the payment for the subscription fails initially and the payment is recovered when retrying the existing payment method.recovered_updated_payment_methodSimulates as if the payment for the subscription fails initially and the customer updates their payment method to successfully pay.failedSimulates as if the payment for the subscription is unsuccessful after all payment recovery attempts are exhausted.
payment_outcome is failed. If omitted, defaults to null.subscription_pausedSimulates as if the subscription is paused after all payment recovery attempts are exhausted.subscription_canceledSimulates as if the subscription is paused after all payment recovery attempts are exhausted.
sub_01h04vsc0qhwtsbsxh3422wjs4sub_.^sub_[a-z\d]{26}$successsuccess.successSimulates as if the payment for the subscription is successful.recovered_existing_payment_methodSimulates as if the payment for the subscription fails initially and the payment is recovered when retrying the existing payment method.recovered_updated_payment_methodSimulates as if the payment for the subscription fails initially and the customer updates their payment method to successfully pay.failedSimulates as if the payment for the subscription is unsuccessful after all payment recovery attempts are exhausted.
payment_outcome is failed. If omitted, defaults to null.subscription_pausedSimulates as if the subscription is paused after all payment recovery attempts are exhausted.subscription_canceledSimulates as if the subscription is paused after all payment recovery attempts are exhausted.
2024-10-12T07:20:50.52Z2024-10-12T07:20:50.52Z2024-10-13T07:20:50.52Zb15ec92e-8688-40d4-a04d-f44cbec93355{ "notification_setting_id": "ntfset_01j82d983j814ypzx7m1fw2jpz", "name": "Create a failed subscription renewal simulation with subscription ID", "type": "subscription_renewal", "config": { "subscription_renewal": { "entities": { "subscription_id": "sub_01h04vsc0qhwtsbsxh3422wjs4" }, "options": { "payment_outcome": "failed", "dunning_exhausted_action": "subscription_canceled" } } }}{ "data": { "id": "ntfsim_01j82g2mggsgjpb3mjg0xq6p5k", "notification_setting_id": "ntfset_01j82d983j814ypzx7m1fw2jpz", "name": "Create a subscription renewal simulation with config", "type": "subscription_renewal", "status": "active", "payload": null, "config": { "subscription_cancellation": null, "subscription_creation": null, "subscription_pause": null, "subscription_renewal": { "entities": { "subscription_id": "sub_01h04vsc0qhwtsbsxh3422wjs4" }, "options": { "payment_outcome": "recovered_updated_payment_method", "dunning_exhausted_action": null } }, "subscription_resume": null }, "last_run_at": null, "created_at": "2024-09-18T12:00:25.616392Z", "updated_at": "2024-09-18T12:00:25.616392Z" }, "meta": { "request_id": "72351248-13bf-45be-befe-b3a5b5234588" }}