# Off Session Payment event types This is a list of all public [thin events](https://docs.stripe.com/event-destinations.md#thin-events) we currently send for updates to Off Session Payment, which are continually evolving and expanding. The payload of thin events is unversioned. During processing, you must fetch the versioned event from the API or fetch the resource’s current state. ## API event types ### `v2.payments.off_session_payment.attempt_failed` Sent after a failed attempt if there are still retries available on the OffSessionPayment. Related object: [Off Session Payment](https://docs.stripe.com/api/v2/payments/off-session-payments/object.md) ## Attributes - `id` (string) Unique identifier for the event. - `object` (string, value is "v2.core.event") String representing the object’s type. Objects of the same type share the same value of the object field. - `context` (string, nullable) Authentication context needed to fetch the event or related object. - `created` (timestamp) Time at which the object was created. - `livemode` (boolean) Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. - `reason` (object, nullable) Reason for the event. - `reason.request` (object, nullable) Information on the API request that instigated the event. - `reason.request.id` (string) ID of the API request that caused the event. - `reason.request.idempotency_key` (string) The idempotency key transmitted during the request. - `reason.type` (enum) Event reason type. Possible enum values: - `request` The event was published as the result of an API request. - `related_object` (object, nullable) Object containing the reference to API resource relevant to the event. - `related_object.id` (string) Unique identifier for the object relevant to the event. - `related_object.type` (string) Object tag of the resource relevant to the event. - `related_object.url` (string) URL to retrieve the resource. - `type` (string, value is "v2.payments.off_session_payment.attempt_failed") The type of the event. ## Fetched attributes - `changes` (null) Always `null` because this event type doesn’t track related object changes. - `data` (object) Additional data about the event. ### Event payload ```json { "id": "evt_65TUwG8HlF7AB6jtrA783Zq3rx5KZXokpIlSxVqLQuBWZx", "object": "v2.core.event", "type": "v2.payments.off_session_payment.attempt_failed", "livemode": true, "created": "2025-10-23T16:54:12.345Z", "related_object": { "id": "osp_65TUrArtDXne5fpTA6K27Ul8ms0FUSjfkDgNsQlGLpWS5D", "type": "v2.payments.off_session_payment", "url": "/v2/payments/off_session_payments/osp_65TUrArtDXne5fpTA6K27Ul8ms0FUSjfkDgNsQlGLpWS5D" } } ``` ### Event handler ```curl # Select a client library to see examples of # parsing and retrieving event details. ``` ### Fetched payload ```json { "id": "evt_65TUwG8HlF7AB6jtrA783Zq3rx5KZXokpIlSxVqLQuBWZx", "object": "v2.core.event", "context": null, "created": "2025-10-23T16:54:12.345Z", "data": {}, "reason": null, "related_object": { "id": "osp_65TUrArtDXne5fpTA6K27Ul8ms0FUSjfkDgNsQlGLpWS5D", "type": "v2.payments.off_session_payment", "url": "/v2/payments/off_session_payments/osp_65TUrArtDXne5fpTA6K27Ul8ms0FUSjfkDgNsQlGLpWS5D" }, "type": "v2.payments.off_session_payment.attempt_failed", "livemode": true } ``` ### `v2.payments.off_session_payment.attempt_started` Sent when our internal scheduling system kicks off an attempt, whether it's a retry or an initial attempt. Related object: [Off Session Payment](https://docs.stripe.com/api/v2/payments/off-session-payments/object.md) ## Attributes - `id` (string) Unique identifier for the event. - `object` (string, value is "v2.core.event") String representing the object’s type. Objects of the same type share the same value of the object field. - `context` (string, nullable) Authentication context needed to fetch the event or related object. - `created` (timestamp) Time at which the object was created. - `livemode` (boolean) Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. - `reason` (object, nullable) Reason for the event. - `reason.request` (object, nullable) Information on the API request that instigated the event. - `reason.request.id` (string) ID of the API request that caused the event. - `reason.request.idempotency_key` (string) The idempotency key transmitted during the request. - `reason.type` (enum) Event reason type. Possible enum values: - `request` The event was published as the result of an API request. - `related_object` (object, nullable) Object containing the reference to API resource relevant to the event. - `related_object.id` (string) Unique identifier for the object relevant to the event. - `related_object.type` (string) Object tag of the resource relevant to the event. - `related_object.url` (string) URL to retrieve the resource. - `type` (string, value is "v2.payments.off_session_payment.attempt_started") The type of the event. ## Fetched attributes - `changes` (null) Always `null` because this event type doesn’t track related object changes. - `data` (object) Additional data about the event. ### Event payload ```json { "id": "evt_65TUxH9ImG8BC7ktrB894Ar4sy6LaYplqJmTyWrMRvCXAy", "object": "v2.core.event", "type": "v2.payments.off_session_payment.attempt_started", "livemode": true, "created": "2025-10-23T16:49:55.678Z", "related_object": { "id": "osp_65TUpesSCWmd4eoSz5J16Sk6kq8DSQhdnBeLqOjEJnUT4C", "type": "v2.payments.off_session_payment", "url": "/v2/payments/off_session_payments/osp_65TUpesSCWmd4eoSz5J16Sk6kq8DSQhdnBeLqOjEJnUT4C" } } ``` ### Event handler ```curl # Select a client library to see examples of # parsing and retrieving event details. ``` ### Fetched payload ```json { "id": "evt_65TUxH9ImG8BC7ktrB894Ar4sy6LaYplqJmTyWrMRvCXAy", "object": "v2.core.event", "context": null, "created": "2025-10-23T16:49:55.678Z", "data": {}, "reason": null, "related_object": { "id": "osp_65TUpesSCWmd4eoSz5J16Sk6kq8DSQhdnBeLqOjEJnUT4C", "type": "v2.payments.off_session_payment", "url": "/v2/payments/off_session_payments/osp_65TUpesSCWmd4eoSz5J16Sk6kq8DSQhdnBeLqOjEJnUT4C" }, "type": "v2.payments.off_session_payment.attempt_started", "livemode": true } ``` ### `v2.payments.off_session_payment.authorization_attempt_failed` Sent after a failed authorization if there are still retries available on the OffSessionPayment. This event has been renamed this to attempt_failed, but we are keeping this around for backwards compatibility. Related object: [Off Session Payment](https://docs.stripe.com/api/v2/payments/off-session-payments/object.md) ## Attributes - `id` (string) Unique identifier for the event. - `object` (string, value is "v2.core.event") String representing the object’s type. Objects of the same type share the same value of the object field. - `context` (string, nullable) Authentication context needed to fetch the event or related object. - `created` (timestamp) Time at which the object was created. - `livemode` (boolean) Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. - `reason` (object, nullable) Reason for the event. - `reason.request` (object, nullable) Information on the API request that instigated the event. - `reason.request.id` (string) ID of the API request that caused the event. - `reason.request.idempotency_key` (string) The idempotency key transmitted during the request. - `reason.type` (enum) Event reason type. Possible enum values: - `request` The event was published as the result of an API request. - `related_object` (object, nullable) Object containing the reference to API resource relevant to the event. - `related_object.id` (string) Unique identifier for the object relevant to the event. - `related_object.type` (string) Object tag of the resource relevant to the event. - `related_object.url` (string) URL to retrieve the resource. - `type` (string, value is "v2.payments.off_session_payment.authorization_attempt_failed") The type of the event. ## Fetched attributes - `changes` (null) Always `null` because this event type doesn’t track related object changes. - `data` (object) Additional data about the event. ### Event payload ```json { "id": "evt_65TUvF7GkE69A5itrZ672Yp2qw4JYWnjoHkRwUpKPtAVYw", "object": "v2.core.event", "type": "v2.payments.off_session_payment.authorization_attempt_failed", "livemode": true, "created": "2025-10-23T16:50:05.890Z", "related_object": { "id": "osp_65TUrArtDXne5fpTA6K27Ul8ms0FUSjfkDgNsQlGLpWS5D", "type": "v2.payments.off_session_payment", "url": "/v2/payments/off_session_payments/osp_65TUrArtDXne5fpTA6K27Ul8ms0FUSjfkDgNsQlGLpWS5D" } } ``` ### Event handler ```curl # Select a client library to see examples of # parsing and retrieving event details. ``` ### Fetched payload ```json { "id": "evt_65TUvF7GkE69A5itrZ672Yp2qw4JYWnjoHkRwUpKPtAVYw", "object": "v2.core.event", "context": null, "created": "2025-10-23T16:50:05.890Z", "data": {}, "reason": null, "related_object": { "id": "osp_65TUrArtDXne5fpTA6K27Ul8ms0FUSjfkDgNsQlGLpWS5D", "type": "v2.payments.off_session_payment", "url": "/v2/payments/off_session_payments/osp_65TUrArtDXne5fpTA6K27Ul8ms0FUSjfkDgNsQlGLpWS5D" }, "type": "v2.payments.off_session_payment.authorization_attempt_failed", "livemode": true } ``` ### `v2.payments.off_session_payment.authorization_attempt_started` Sent when our internal scheduling system kicks off an attempt at authorization, whether it's a retry or an initial authorization. This event has been renamed this to attempt_failed, but we are keeping this around for backwards compatibility. Related object: [Off Session Payment](https://docs.stripe.com/api/v2/payments/off-session-payments/object.md) ## Attributes - `id` (string) Unique identifier for the event. - `object` (string, value is "v2.core.event") String representing the object’s type. Objects of the same type share the same value of the object field. - `context` (string, nullable) Authentication context needed to fetch the event or related object. - `created` (timestamp) Time at which the object was created. - `livemode` (boolean) Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. - `reason` (object, nullable) Reason for the event. - `reason.request` (object, nullable) Information on the API request that instigated the event. - `reason.request.id` (string) ID of the API request that caused the event. - `reason.request.idempotency_key` (string) The idempotency key transmitted during the request. - `reason.type` (enum) Event reason type. Possible enum values: - `request` The event was published as the result of an API request. - `related_object` (object, nullable) Object containing the reference to API resource relevant to the event. - `related_object.id` (string) Unique identifier for the object relevant to the event. - `related_object.type` (string) Object tag of the resource relevant to the event. - `related_object.url` (string) URL to retrieve the resource. - `type` (string, value is "v2.payments.off_session_payment.authorization_attempt_started") The type of the event. ## Fetched attributes - `changes` (null) Always `null` because this event type doesn’t track related object changes. - `data` (object) Additional data about the event. ### Event payload ```json { "id": "evt_65TUuE6FjD58Z4htrY561Xo1pv3IXVminGjQvToJOsZUXv", "object": "v2.core.event", "type": "v2.payments.off_session_payment.authorization_attempt_started", "livemode": true, "created": "2025-10-23T16:49:50.567Z", "related_object": { "id": "osp_65TUpesSCWmd4eoSz5J16Sk6kq8DSQhdnBeLqOjEJnUT4C", "type": "v2.payments.off_session_payment", "url": "/v2/payments/off_session_payments/osp_65TUpesSCWmd4eoSz5J16Sk6kq8DSQhdnBeLqOjEJnUT4C" } } ``` ### Event handler ```curl # Select a client library to see examples of # parsing and retrieving event details. ``` ### Fetched payload ```json { "id": "evt_65TUuE6FjD58Z4htrY561Xo1pv3IXVminGjQvToJOsZUXv", "object": "v2.core.event", "context": null, "created": "2025-10-23T16:49:50.567Z", "data": {}, "reason": null, "related_object": { "id": "osp_65TUpesSCWmd4eoSz5J16Sk6kq8DSQhdnBeLqOjEJnUT4C", "type": "v2.payments.off_session_payment", "url": "/v2/payments/off_session_payments/osp_65TUpesSCWmd4eoSz5J16Sk6kq8DSQhdnBeLqOjEJnUT4C" }, "type": "v2.payments.off_session_payment.authorization_attempt_started", "livemode": true } ``` ### `v2.payments.off_session_payment.canceled` Sent immediately following a user's call to the Off-Session Payments cancel endpoint. Related object: [Off Session Payment](https://docs.stripe.com/api/v2/payments/off-session-payments/object.md) ## Attributes - `id` (string) Unique identifier for the event. - `object` (string, value is "v2.core.event") String representing the object’s type. Objects of the same type share the same value of the object field. - `context` (string, nullable) Authentication context needed to fetch the event or related object. - `created` (timestamp) Time at which the object was created. - `livemode` (boolean) Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. - `reason` (object, nullable) Reason for the event. - `reason.request` (object, nullable) Information on the API request that instigated the event. - `reason.request.id` (string) ID of the API request that caused the event. - `reason.request.idempotency_key` (string) The idempotency key transmitted during the request. - `reason.type` (enum) Event reason type. Possible enum values: - `request` The event was published as the result of an API request. - `related_object` (object, nullable) Object containing the reference to API resource relevant to the event. - `related_object.id` (string) Unique identifier for the object relevant to the event. - `related_object.type` (string) Object tag of the resource relevant to the event. - `related_object.url` (string) URL to retrieve the resource. - `type` (string, value is "v2.payments.off_session_payment.canceled") The type of the event. ## Fetched attributes - `changes` (null) Always `null` because this event type doesn’t track related object changes. - `data` (object) Additional data about the event. ### Event payload ```json { "id": "evt_65TUsC4DhB36X2ftrW349Vm9nt1GVTkglEhOtRmHMqXSVt", "object": "v2.core.event", "type": "v2.payments.off_session_payment.canceled", "livemode": true, "created": "2025-10-23T16:52:45.789Z", "related_object": { "id": "osp_65TUsBsuEYof6gqUB7L38Vm9nt1GVTkglEhOtRmHMqXT6E", "type": "v2.payments.off_session_payment", "url": "/v2/payments/off_session_payments/osp_65TUsBsuEYof6gqUB7L38Vm9nt1GVTkglEhOtRmHMqXT6E" } } ``` ### Event handler ```curl # Select a client library to see examples of # parsing and retrieving event details. ``` ### Fetched payload ```json { "id": "evt_65TUsC4DhB36X2ftrW349Vm9nt1GVTkglEhOtRmHMqXSVt", "object": "v2.core.event", "context": null, "created": "2025-10-23T16:52:45.789Z", "data": {}, "reason": null, "related_object": { "id": "osp_65TUsBsuEYof6gqUB7L38Vm9nt1GVTkglEhOtRmHMqXT6E", "type": "v2.payments.off_session_payment", "url": "/v2/payments/off_session_payments/osp_65TUsBsuEYof6gqUB7L38Vm9nt1GVTkglEhOtRmHMqXT6E" }, "type": "v2.payments.off_session_payment.canceled", "livemode": true } ``` ### `v2.payments.off_session_payment.created` Sent immediately following a user's call to the Off-Session Payments create endpoint. Related object: [Off Session Payment](https://docs.stripe.com/api/v2/payments/off-session-payments/object.md) ## Attributes - `id` (string) Unique identifier for the event. - `object` (string, value is "v2.core.event") String representing the object’s type. Objects of the same type share the same value of the object field. - `context` (string, nullable) Authentication context needed to fetch the event or related object. - `created` (timestamp) Time at which the object was created. - `livemode` (boolean) Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. - `reason` (object, nullable) Reason for the event. - `reason.request` (object, nullable) Information on the API request that instigated the event. - `reason.request.id` (string) ID of the API request that caused the event. - `reason.request.idempotency_key` (string) The idempotency key transmitted during the request. - `reason.type` (enum) Event reason type. Possible enum values: - `request` The event was published as the result of an API request. - `related_object` (object, nullable) Object containing the reference to API resource relevant to the event. - `related_object.id` (string) Unique identifier for the object relevant to the event. - `related_object.type` (string) Object tag of the resource relevant to the event. - `related_object.url` (string) URL to retrieve the resource. - `type` (string, value is "v2.payments.off_session_payment.created") The type of the event. ## Fetched attributes - `changes` (null) Always `null` because this event type doesn’t track related object changes. - `data` (object) Additional data about the event. ### Event payload ```json { "id": "evt_65TUpetAEZ03U9ctrT016Sk6kq8DSQhdnBeLqOjEJnUPSq", "object": "v2.core.event", "type": "v2.payments.off_session_payment.created", "livemode": true, "created": "2025-10-23T16:49:22.980Z", "related_object": { "id": "osp_65TUpesSCWmd4eoSz5J16Sk6kq8DSQhdnBeLqOjEJnUT4C", "type": "v2.payments.off_session_payment", "url": "/v2/payments/off_session_payments/osp_65TUpesSCWmd4eoSz5J16Sk6kq8DSQhdnBeLqOjEJnUT4C" } } ``` ### Event handler ```curl # Select a client library to see examples of # parsing and retrieving event details. ``` ### Fetched payload ```json { "id": "evt_65TUpetAEZ03U9ctrT016Sk6kq8DSQhdnBeLqOjEJnUPSq", "object": "v2.core.event", "context": null, "created": "2025-10-23T16:49:22.980Z", "data": {}, "reason": null, "related_object": { "id": "osp_65TUpesSCWmd4eoSz5J16Sk6kq8DSQhdnBeLqOjEJnUT4C", "type": "v2.payments.off_session_payment", "url": "/v2/payments/off_session_payments/osp_65TUpesSCWmd4eoSz5J16Sk6kq8DSQhdnBeLqOjEJnUT4C" }, "type": "v2.payments.off_session_payment.created", "livemode": true } ``` ### `v2.payments.off_session_payment.failed` Sent after a failed authorization if there are no retries remaining, or if the failure is unretryable. Related object: [Off Session Payment](https://docs.stripe.com/api/v2/payments/off-session-payments/object.md) ## Attributes - `id` (string) Unique identifier for the event. - `object` (string, value is "v2.core.event") String representing the object’s type. Objects of the same type share the same value of the object field. - `context` (string, nullable) Authentication context needed to fetch the event or related object. - `created` (timestamp) Time at which the object was created. - `livemode` (boolean) Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. - `reason` (object, nullable) Reason for the event. - `reason.request` (object, nullable) Information on the API request that instigated the event. - `reason.request.id` (string) ID of the API request that caused the event. - `reason.request.idempotency_key` (string) The idempotency key transmitted during the request. - `reason.type` (enum) Event reason type. Possible enum values: - `request` The event was published as the result of an API request. - `related_object` (object, nullable) Object containing the reference to API resource relevant to the event. - `related_object.id` (string) Unique identifier for the object relevant to the event. - `related_object.type` (string) Object tag of the resource relevant to the event. - `related_object.url` (string) URL to retrieve the resource. - `type` (string, value is "v2.payments.off_session_payment.failed") The type of the event. ## Fetched attributes - `changes` (null) Always `null` because this event type doesn’t track related object changes. - `data` (object) Additional data about the event. ### Event payload ```json { "id": "evt_65TUrB3CgA25W1etrV238Ul8ms0FUSjfkDgNsQlGLpWRUs", "object": "v2.core.event", "type": "v2.payments.off_session_payment.failed", "livemode": true, "created": "2025-10-23T16:51:30.456Z", "related_object": { "id": "osp_65TUrArtDXne5fpTA6K27Ul8ms0FUSjfkDgNsQlGLpWS5D", "type": "v2.payments.off_session_payment", "url": "/v2/payments/off_session_payments/osp_65TUrArtDXne5fpTA6K27Ul8ms0FUSjfkDgNsQlGLpWS5D" } } ``` ### Event handler ```curl # Select a client library to see examples of # parsing and retrieving event details. ``` ### Fetched payload ```json { "id": "evt_65TUrB3CgA25W1etrV238Ul8ms0FUSjfkDgNsQlGLpWRUs", "object": "v2.core.event", "context": null, "created": "2025-10-23T16:51:30.456Z", "data": {}, "reason": null, "related_object": { "id": "osp_65TUrArtDXne5fpTA6K27Ul8ms0FUSjfkDgNsQlGLpWS5D", "type": "v2.payments.off_session_payment", "url": "/v2/payments/off_session_payments/osp_65TUrArtDXne5fpTA6K27Ul8ms0FUSjfkDgNsQlGLpWS5D" }, "type": "v2.payments.off_session_payment.failed", "livemode": true } ``` ### `v2.payments.off_session_payment.succeeded` Sent immediately after a successful authorization. Related object: [Off Session Payment](https://docs.stripe.com/api/v2/payments/off-session-payments/object.md) ## Attributes - `id` (string) Unique identifier for the event. - `object` (string, value is "v2.core.event") String representing the object’s type. Objects of the same type share the same value of the object field. - `context` (string, nullable) Authentication context needed to fetch the event or related object. - `created` (timestamp) Time at which the object was created. - `livemode` (boolean) Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. - `reason` (object, nullable) Reason for the event. - `reason.request` (object, nullable) Information on the API request that instigated the event. - `reason.request.id` (string) ID of the API request that caused the event. - `reason.request.idempotency_key` (string) The idempotency key transmitted during the request. - `reason.type` (enum) Event reason type. Possible enum values: - `request` The event was published as the result of an API request. - `related_object` (object, nullable) Object containing the reference to API resource relevant to the event. - `related_object.id` (string) Unique identifier for the object relevant to the event. - `related_object.type` (string) Object tag of the resource relevant to the event. - `related_object.url` (string) URL to retrieve the resource. - `type` (string, value is "v2.payments.off_session_payment.succeeded") The type of the event. ## Fetched attributes - `changes` (null) Always `null` because this event type doesn’t track related object changes. - `data` (object) Additional data about the event. ### Event payload ```json { "id": "evt_65TUqA2BfZ14V0dsrU127Tk7lr9ETRiejCfMrPkFKoVQTr", "object": "v2.core.event", "type": "v2.payments.off_session_payment.succeeded", "livemode": true, "created": "2025-10-23T16:50:15.123Z", "related_object": { "id": "osp_65TUpesSCWmd4eoSz5J16Sk6kq8DSQhdnBeLqOjEJnUT4C", "type": "v2.payments.off_session_payment", "url": "/v2/payments/off_session_payments/osp_65TUpesSCWmd4eoSz5J16Sk6kq8DSQhdnBeLqOjEJnUT4C" } } ``` ### Event handler ```curl # Select a client library to see examples of # parsing and retrieving event details. ``` ### Fetched payload ```json { "id": "evt_65TUqA2BfZ14V0dsrU127Tk7lr9ETRiejCfMrPkFKoVQTr", "object": "v2.core.event", "context": null, "created": "2025-10-23T16:50:15.123Z", "data": {}, "reason": null, "related_object": { "id": "osp_65TUpesSCWmd4eoSz5J16Sk6kq8DSQhdnBeLqOjEJnUT4C", "type": "v2.payments.off_session_payment", "url": "/v2/payments/off_session_payments/osp_65TUpesSCWmd4eoSz5J16Sk6kq8DSQhdnBeLqOjEJnUT4C" }, "type": "v2.payments.off_session_payment.succeeded", "livemode": true } ```