View Source Stripe.WebhookEndpoint (stripity_stripe v3.1.1)

You can configure webhook endpoints via the API to be notified about events that happen in your Stripe account or connected accounts.

Most users configure webhooks from the dashboard, which provides a user interface for registering and testing your webhook endpoints.

Related guide: Setting up webhooks

Link to this section Summary

Types

t()

The webhook_endpoint type.

Functions

A webhook endpoint must have a url and a list of enabled_events. You may optionally specify the Boolean connect parameter. If set to true, then a Connect webhook endpoint that notifies the specified url about events from all connected accounts is created; otherwise an account webhook endpoint that notifies the specified url only about events from your account is created. You can also create webhook endpoints in the webhooks settings section of the Dashboard.

You can also delete webhook endpoints via the webhook endpoint management page of the Stripe dashboard.

Returns a list of your webhook endpoints.

Retrieves the webhook endpoint with the given ID.

Updates the webhook endpoint. You may edit the url, the list of enabled_events, and the status of your endpoint.

Link to this section Types

@type t() :: %Stripe.WebhookEndpoint{
  api_version: binary() | nil,
  application: binary() | nil,
  created: integer(),
  description: binary() | nil,
  enabled_events: term(),
  id: binary(),
  livemode: boolean(),
  metadata: term(),
  object: binary(),
  secret: binary(),
  status: binary(),
  url: binary()
}

The webhook_endpoint type.

  • api_version The API version events are rendered as for this webhook endpoint.
  • application The ID of the associated Connect application.
  • created Time at which the object was created. Measured in seconds since the Unix epoch.
  • description An optional description of what the webhook is used for.
  • enabled_events The list of events to enable for this endpoint. ['*'] indicates that all events are enabled, except those that require explicit selection.
  • id Unique identifier for the object.
  • livemode Has the value true if the object exists in live mode or the value false if the object exists in test mode.
  • metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  • object String representing the object's type. Objects of the same type share the same value.
  • secret The endpoint's secret, used to generate webhook signatures. Only returned at creation.
  • status The status of the webhook. It can be enabled or disabled.
  • url The URL of the webhook endpoint.

Link to this section Functions

Link to this function

create(params \\ %{}, opts \\ [])

View Source
@spec create(
  params :: %{
    optional(:api_version) =>
      :"2011-01-01"
      | :"2011-06-21"
      | :"2011-06-28"
      | :"2011-08-01"
      | :"2011-09-15"
      | :"2011-11-17"
      | :"2012-02-23"
      | :"2012-03-25"
      | :"2012-06-18"
      | :"2012-06-28"
      | :"2012-07-09"
      | :"2012-09-24"
      | :"2012-10-26"
      | :"2012-11-07"
      | :"2013-02-11"
      | :"2013-02-13"
      | :"2013-07-05"
      | :"2013-08-12"
      | :"2013-08-13"
      | :"2013-10-29"
      | :"2013-12-03"
      | :"2014-01-31"
      | :"2014-03-13"
      | :"2014-03-28"
      | :"2014-05-19"
      | :"2014-06-13"
      | :"2014-06-17"
      | :"2014-07-22"
      | :"2014-07-26"
      | :"2014-08-04"
      | :"2014-08-20"
      | :"2014-09-08"
      | :"2014-10-07"
      | :"2014-11-05"
      | :"2014-11-20"
      | :"2014-12-08"
      | :"2014-12-17"
      | :"2014-12-22"
      | :"2015-01-11"
      | :"2015-01-26"
      | :"2015-02-10"
      | :"2015-02-16"
      | :"2015-02-18"
      | :"2015-03-24"
      | :"2015-04-07"
      | :"2015-06-15"
      | :"2015-07-07"
      | :"2015-07-13"
      | :"2015-07-28"
      | :"2015-08-07"
      | :"2015-08-19"
      | :"2015-09-03"
      | :"2015-09-08"
      | :"2015-09-23"
      | :"2015-10-01"
      | :"2015-10-12"
      | :"2015-10-16"
      | :"2016-02-03"
      | :"2016-02-19"
      | :"2016-02-22"
      | :"2016-02-23"
      | :"2016-02-29"
      | :"2016-03-07"
      | :"2016-06-15"
      | :"2016-07-06"
      | :"2016-10-19"
      | :"2017-01-27"
      | :"2017-02-14"
      | :"2017-04-06"
      | :"2017-05-25"
      | :"2017-06-05"
      | :"2017-08-15"
      | :"2017-12-14"
      | :"2018-01-23"
      | :"2018-02-05"
      | :"2018-02-06"
      | :"2018-02-28"
      | :"2018-05-21"
      | :"2018-07-27"
      | :"2018-08-23"
      | :"2018-09-06"
      | :"2018-09-24"
      | :"2018-10-31"
      | :"2018-11-08"
      | :"2019-02-11"
      | :"2019-02-19"
      | :"2019-03-14"
      | :"2019-05-16"
      | :"2019-08-14"
      | :"2019-09-09"
      | :"2019-10-08"
      | :"2019-10-17"
      | :"2019-11-05"
      | :"2019-12-03"
      | :"2020-03-02"
      | :"2020-08-27"
      | :"2022-08-01"
      | :"2022-11-15"
      | :"2023-08-16"
      | :"2023-10-16",
    optional(:connect) => boolean(),
    optional(:description) => binary() | binary(),
    optional(:enabled_events) => [
      :*
      | :"account.application.authorized"
      | :"account.application.deauthorized"
      | :"account.external_account.created"
      | :"account.external_account.deleted"
      | :"account.external_account.updated"
      | :"account.updated"
      | :"application_fee.created"
      | :"application_fee.refund.updated"
      | :"application_fee.refunded"
      | :"balance.available"
      | :"billing_portal.configuration.created"
      | :"billing_portal.configuration.updated"
      | :"billing_portal.session.created"
      | :"capability.updated"
      | :"cash_balance.funds_available"
      | :"charge.captured"
      | :"charge.dispute.closed"
      | :"charge.dispute.created"
      | :"charge.dispute.funds_reinstated"
      | :"charge.dispute.funds_withdrawn"
      | :"charge.dispute.updated"
      | :"charge.expired"
      | :"charge.failed"
      | :"charge.pending"
      | :"charge.refund.updated"
      | :"charge.refunded"
      | :"charge.succeeded"
      | :"charge.updated"
      | :"checkout.session.async_payment_failed"
      | :"checkout.session.async_payment_succeeded"
      | :"checkout.session.completed"
      | :"checkout.session.expired"
      | :"coupon.created"
      | :"coupon.deleted"
      | :"coupon.updated"
      | :"credit_note.created"
      | :"credit_note.updated"
      | :"credit_note.voided"
      | :"customer.created"
      | :"customer.deleted"
      | :"customer.discount.created"
      | :"customer.discount.deleted"
      | :"customer.discount.updated"
      | :"customer.source.created"
      | :"customer.source.deleted"
      | :"customer.source.expiring"
      | :"customer.source.updated"
      | :"customer.subscription.created"
      | :"customer.subscription.deleted"
      | :"customer.subscription.paused"
      | :"customer.subscription.pending_update_applied"
      | :"customer.subscription.pending_update_expired"
      | :"customer.subscription.resumed"
      | :"customer.subscription.trial_will_end"
      | :"customer.subscription.updated"
      | :"customer.tax_id.created"
      | :"customer.tax_id.deleted"
      | :"customer.tax_id.updated"
      | :"customer.updated"
      | :"customer_cash_balance_transaction.created"
      | :"file.created"
      | :"financial_connections.account.created"
      | :"financial_connections.account.deactivated"
      | :"financial_connections.account.disconnected"
      | :"financial_connections.account.reactivated"
      | :"financial_connections.account.refreshed_balance"
      | :"identity.verification_session.canceled"
      | :"identity.verification_session.created"
      | :"identity.verification_session.processing"
      | :"identity.verification_session.redacted"
      | :"identity.verification_session.requires_input"
      | :"identity.verification_session.verified"
      | :"invoice.created"
      | :"invoice.deleted"
      | :"invoice.finalization_failed"
      | :"invoice.finalized"
      | :"invoice.marked_uncollectible"
      | :"invoice.paid"
      | :"invoice.payment_action_required"
      | :"invoice.payment_failed"
      | :"invoice.payment_succeeded"
      | :"invoice.sent"
      | :"invoice.upcoming"
      | :"invoice.updated"
      | :"invoice.voided"
      | :"invoiceitem.created"
      | :"invoiceitem.deleted"
      | :"issuing_authorization.created"
      | :"issuing_authorization.request"
      | :"issuing_authorization.updated"
      | :"issuing_card.created"
      | :"issuing_card.updated"
      | :"issuing_cardholder.created"
      | :"issuing_cardholder.updated"
      | :"issuing_dispute.closed"
      | :"issuing_dispute.created"
      | :"issuing_dispute.funds_reinstated"
      | :"issuing_dispute.submitted"
      | :"issuing_dispute.updated"
      | :"issuing_token.created"
      | :"issuing_token.updated"
      | :"issuing_transaction.created"
      | :"issuing_transaction.updated"
      | :"mandate.updated"
      | :"payment_intent.amount_capturable_updated"
      | :"payment_intent.canceled"
      | :"payment_intent.created"
      | :"payment_intent.partially_funded"
      | :"payment_intent.payment_failed"
      | :"payment_intent.processing"
      | :"payment_intent.requires_action"
      | :"payment_intent.succeeded"
      | :"payment_link.created"
      | :"payment_link.updated"
      | :"payment_method.attached"
      | :"payment_method.automatically_updated"
      | :"payment_method.detached"
      | :"payment_method.updated"
      | :"payout.canceled"
      | :"payout.created"
      | :"payout.failed"
      | :"payout.paid"
      | :"payout.reconciliation_completed"
      | :"payout.updated"
      | :"person.created"
      | :"person.deleted"
      | :"person.updated"
      | :"plan.created"
      | :"plan.deleted"
      | :"plan.updated"
      | :"price.created"
      | :"price.deleted"
      | :"price.updated"
      | :"product.created"
      | :"product.deleted"
      | :"product.updated"
      | :"promotion_code.created"
      | :"promotion_code.updated"
      | :"quote.accepted"
      | :"quote.canceled"
      | :"quote.created"
      | :"quote.finalized"
      | :"radar.early_fraud_warning.created"
      | :"radar.early_fraud_warning.updated"
      | :"refund.created"
      | :"refund.updated"
      | :"reporting.report_run.failed"
      | :"reporting.report_run.succeeded"
      | :"reporting.report_type.updated"
      | :"review.closed"
      | :"review.opened"
      | :"setup_intent.canceled"
      | :"setup_intent.created"
      | :"setup_intent.requires_action"
      | :"setup_intent.setup_failed"
      | :"setup_intent.succeeded"
      | :"sigma.scheduled_query_run.created"
      | :"source.canceled"
      | :"source.chargeable"
      | :"source.failed"
      | :"source.mandate_notification"
      | :"source.refund_attributes_required"
      | :"source.transaction.created"
      | :"source.transaction.updated"
      | :"subscription_schedule.aborted"
      | :"subscription_schedule.canceled"
      | :"subscription_schedule.completed"
      | :"subscription_schedule.created"
      | :"subscription_schedule.expiring"
      | :"subscription_schedule.released"
      | :"subscription_schedule.updated"
      | :"tax.settings.updated"
      | :"tax_rate.created"
      | :"tax_rate.updated"
      | :"terminal.reader.action_failed"
      | :"terminal.reader.action_succeeded"
      | :"test_helpers.test_clock.advancing"
      | :"test_helpers.test_clock.created"
      | :"test_helpers.test_clock.deleted"
      | :"test_helpers.test_clock.internal_failure"
      | :"test_helpers.test_clock.ready"
      | :"topup.canceled"
      | :"topup.created"
      | :"topup.failed"
      | :"topup.reversed"
      | :"topup.succeeded"
      | :"transfer.created"
      | :"transfer.reversed"
      | :"transfer.updated"
      | :"treasury.credit_reversal.created"
      | :"treasury.credit_reversal.posted"
      | :"treasury.debit_reversal.completed"
      | :"treasury.debit_reversal.created"
      | :"treasury.debit_reversal.initial_credit_granted"
      | :"treasury.financial_account.closed"
      | :"treasury.financial_account.created"
      | :"treasury.financial_account.features_status_updated"
      | :"treasury.inbound_transfer.canceled"
      | :"treasury.inbound_transfer.created"
      | :"treasury.inbound_transfer.failed"
      | :"treasury.inbound_transfer.succeeded"
      | :"treasury.outbound_payment.canceled"
      | :"treasury.outbound_payment.created"
      | :"treasury.outbound_payment.expected_arrival_date_updated"
      | :"treasury.outbound_payment.failed"
      | :"treasury.outbound_payment.posted"
      | :"treasury.outbound_payment.returned"
      | :"treasury.outbound_transfer.canceled"
      | :"treasury.outbound_transfer.created"
      | :"treasury.outbound_transfer.expected_arrival_date_updated"
      | :"treasury.outbound_transfer.failed"
      | :"treasury.outbound_transfer.posted"
      | :"treasury.outbound_transfer.returned"
      | :"treasury.received_credit.created"
      | :"treasury.received_credit.failed"
      | :"treasury.received_credit.succeeded"
      | :"treasury.received_debit.created"
    ],
    optional(:expand) => [binary()],
    optional(:metadata) => %{optional(binary()) => binary()} | binary(),
    optional(:url) => binary()
  },
  opts :: Keyword.t()
) :: {:ok, t()} | {:error, Stripe.ApiErrors.t()} | {:error, term()}

A webhook endpoint must have a url and a list of enabled_events. You may optionally specify the Boolean connect parameter. If set to true, then a Connect webhook endpoint that notifies the specified url about events from all connected accounts is created; otherwise an account webhook endpoint that notifies the specified url only about events from your account is created. You can also create webhook endpoints in the webhooks settings section of the Dashboard.

Details

  • Method: post
  • Path: /v1/webhook_endpoints
Link to this function

delete(webhook_endpoint, opts \\ [])

View Source
@spec delete(webhook_endpoint :: binary(), opts :: Keyword.t()) ::
  {:ok, Stripe.DeletedWebhookEndpoint.t()}
  | {:error, Stripe.ApiErrors.t()}
  | {:error, term()}

You can also delete webhook endpoints via the webhook endpoint management page of the Stripe dashboard.

Details

  • Method: delete
  • Path: /v1/webhook_endpoints/{webhook_endpoint}
Link to this function

list(params \\ %{}, opts \\ [])

View Source
@spec list(
  params :: %{
    optional(:ending_before) => binary(),
    optional(:expand) => [binary()],
    optional(:limit) => integer(),
    optional(:starting_after) => binary()
  },
  opts :: Keyword.t()
) ::
  {:ok, Stripe.List.t(t())} | {:error, Stripe.ApiErrors.t()} | {:error, term()}

Returns a list of your webhook endpoints.

Details

  • Method: get
  • Path: /v1/webhook_endpoints
Link to this function

retrieve(webhook_endpoint, params \\ %{}, opts \\ [])

View Source
@spec retrieve(
  webhook_endpoint :: binary(),
  params :: %{optional(:expand) => [binary()]},
  opts :: Keyword.t()
) :: {:ok, t()} | {:error, Stripe.ApiErrors.t()} | {:error, term()}

Retrieves the webhook endpoint with the given ID.

Details

  • Method: get
  • Path: /v1/webhook_endpoints/{webhook_endpoint}
Link to this function

update(webhook_endpoint, params \\ %{}, opts \\ [])

View Source
@spec update(
  webhook_endpoint :: binary(),
  params :: %{
    optional(:description) => binary() | binary(),
    optional(:disabled) => boolean(),
    optional(:enabled_events) => [
      :*
      | :"account.application.authorized"
      | :"account.application.deauthorized"
      | :"account.external_account.created"
      | :"account.external_account.deleted"
      | :"account.external_account.updated"
      | :"account.updated"
      | :"application_fee.created"
      | :"application_fee.refund.updated"
      | :"application_fee.refunded"
      | :"balance.available"
      | :"billing_portal.configuration.created"
      | :"billing_portal.configuration.updated"
      | :"billing_portal.session.created"
      | :"capability.updated"
      | :"cash_balance.funds_available"
      | :"charge.captured"
      | :"charge.dispute.closed"
      | :"charge.dispute.created"
      | :"charge.dispute.funds_reinstated"
      | :"charge.dispute.funds_withdrawn"
      | :"charge.dispute.updated"
      | :"charge.expired"
      | :"charge.failed"
      | :"charge.pending"
      | :"charge.refund.updated"
      | :"charge.refunded"
      | :"charge.succeeded"
      | :"charge.updated"
      | :"checkout.session.async_payment_failed"
      | :"checkout.session.async_payment_succeeded"
      | :"checkout.session.completed"
      | :"checkout.session.expired"
      | :"coupon.created"
      | :"coupon.deleted"
      | :"coupon.updated"
      | :"credit_note.created"
      | :"credit_note.updated"
      | :"credit_note.voided"
      | :"customer.created"
      | :"customer.deleted"
      | :"customer.discount.created"
      | :"customer.discount.deleted"
      | :"customer.discount.updated"
      | :"customer.source.created"
      | :"customer.source.deleted"
      | :"customer.source.expiring"
      | :"customer.source.updated"
      | :"customer.subscription.created"
      | :"customer.subscription.deleted"
      | :"customer.subscription.paused"
      | :"customer.subscription.pending_update_applied"
      | :"customer.subscription.pending_update_expired"
      | :"customer.subscription.resumed"
      | :"customer.subscription.trial_will_end"
      | :"customer.subscription.updated"
      | :"customer.tax_id.created"
      | :"customer.tax_id.deleted"
      | :"customer.tax_id.updated"
      | :"customer.updated"
      | :"customer_cash_balance_transaction.created"
      | :"file.created"
      | :"financial_connections.account.created"
      | :"financial_connections.account.deactivated"
      | :"financial_connections.account.disconnected"
      | :"financial_connections.account.reactivated"
      | :"financial_connections.account.refreshed_balance"
      | :"identity.verification_session.canceled"
      | :"identity.verification_session.created"
      | :"identity.verification_session.processing"
      | :"identity.verification_session.redacted"
      | :"identity.verification_session.requires_input"
      | :"identity.verification_session.verified"
      | :"invoice.created"
      | :"invoice.deleted"
      | :"invoice.finalization_failed"
      | :"invoice.finalized"
      | :"invoice.marked_uncollectible"
      | :"invoice.paid"
      | :"invoice.payment_action_required"
      | :"invoice.payment_failed"
      | :"invoice.payment_succeeded"
      | :"invoice.sent"
      | :"invoice.upcoming"
      | :"invoice.updated"
      | :"invoice.voided"
      | :"invoiceitem.created"
      | :"invoiceitem.deleted"
      | :"issuing_authorization.created"
      | :"issuing_authorization.request"
      | :"issuing_authorization.updated"
      | :"issuing_card.created"
      | :"issuing_card.updated"
      | :"issuing_cardholder.created"
      | :"issuing_cardholder.updated"
      | :"issuing_dispute.closed"
      | :"issuing_dispute.created"
      | :"issuing_dispute.funds_reinstated"
      | :"issuing_dispute.submitted"
      | :"issuing_dispute.updated"
      | :"issuing_token.created"
      | :"issuing_token.updated"
      | :"issuing_transaction.created"
      | :"issuing_transaction.updated"
      | :"mandate.updated"
      | :"payment_intent.amount_capturable_updated"
      | :"payment_intent.canceled"
      | :"payment_intent.created"
      | :"payment_intent.partially_funded"
      | :"payment_intent.payment_failed"
      | :"payment_intent.processing"
      | :"payment_intent.requires_action"
      | :"payment_intent.succeeded"
      | :"payment_link.created"
      | :"payment_link.updated"
      | :"payment_method.attached"
      | :"payment_method.automatically_updated"
      | :"payment_method.detached"
      | :"payment_method.updated"
      | :"payout.canceled"
      | :"payout.created"
      | :"payout.failed"
      | :"payout.paid"
      | :"payout.reconciliation_completed"
      | :"payout.updated"
      | :"person.created"
      | :"person.deleted"
      | :"person.updated"
      | :"plan.created"
      | :"plan.deleted"
      | :"plan.updated"
      | :"price.created"
      | :"price.deleted"
      | :"price.updated"
      | :"product.created"
      | :"product.deleted"
      | :"product.updated"
      | :"promotion_code.created"
      | :"promotion_code.updated"
      | :"quote.accepted"
      | :"quote.canceled"
      | :"quote.created"
      | :"quote.finalized"
      | :"radar.early_fraud_warning.created"
      | :"radar.early_fraud_warning.updated"
      | :"refund.created"
      | :"refund.updated"
      | :"reporting.report_run.failed"
      | :"reporting.report_run.succeeded"
      | :"reporting.report_type.updated"
      | :"review.closed"
      | :"review.opened"
      | :"setup_intent.canceled"
      | :"setup_intent.created"
      | :"setup_intent.requires_action"
      | :"setup_intent.setup_failed"
      | :"setup_intent.succeeded"
      | :"sigma.scheduled_query_run.created"
      | :"source.canceled"
      | :"source.chargeable"
      | :"source.failed"
      | :"source.mandate_notification"
      | :"source.refund_attributes_required"
      | :"source.transaction.created"
      | :"source.transaction.updated"
      | :"subscription_schedule.aborted"
      | :"subscription_schedule.canceled"
      | :"subscription_schedule.completed"
      | :"subscription_schedule.created"
      | :"subscription_schedule.expiring"
      | :"subscription_schedule.released"
      | :"subscription_schedule.updated"
      | :"tax.settings.updated"
      | :"tax_rate.created"
      | :"tax_rate.updated"
      | :"terminal.reader.action_failed"
      | :"terminal.reader.action_succeeded"
      | :"test_helpers.test_clock.advancing"
      | :"test_helpers.test_clock.created"
      | :"test_helpers.test_clock.deleted"
      | :"test_helpers.test_clock.internal_failure"
      | :"test_helpers.test_clock.ready"
      | :"topup.canceled"
      | :"topup.created"
      | :"topup.failed"
      | :"topup.reversed"
      | :"topup.succeeded"
      | :"transfer.created"
      | :"transfer.reversed"
      | :"transfer.updated"
      | :"treasury.credit_reversal.created"
      | :"treasury.credit_reversal.posted"
      | :"treasury.debit_reversal.completed"
      | :"treasury.debit_reversal.created"
      | :"treasury.debit_reversal.initial_credit_granted"
      | :"treasury.financial_account.closed"
      | :"treasury.financial_account.created"
      | :"treasury.financial_account.features_status_updated"
      | :"treasury.inbound_transfer.canceled"
      | :"treasury.inbound_transfer.created"
      | :"treasury.inbound_transfer.failed"
      | :"treasury.inbound_transfer.succeeded"
      | :"treasury.outbound_payment.canceled"
      | :"treasury.outbound_payment.created"
      | :"treasury.outbound_payment.expected_arrival_date_updated"
      | :"treasury.outbound_payment.failed"
      | :"treasury.outbound_payment.posted"
      | :"treasury.outbound_payment.returned"
      | :"treasury.outbound_transfer.canceled"
      | :"treasury.outbound_transfer.created"
      | :"treasury.outbound_transfer.expected_arrival_date_updated"
      | :"treasury.outbound_transfer.failed"
      | :"treasury.outbound_transfer.posted"
      | :"treasury.outbound_transfer.returned"
      | :"treasury.received_credit.created"
      | :"treasury.received_credit.failed"
      | :"treasury.received_credit.succeeded"
      | :"treasury.received_debit.created"
    ],
    optional(:expand) => [binary()],
    optional(:metadata) => %{optional(binary()) => binary()} | binary(),
    optional(:url) => binary()
  },
  opts :: Keyword.t()
) :: {:ok, t()} | {:error, Stripe.ApiErrors.t()} | {:error, term()}

Updates the webhook endpoint. You may edit the url, the list of enabled_events, and the status of your endpoint.

Details

  • Method: post
  • Path: /v1/webhook_endpoints/{webhook_endpoint}