Skip to content

Webhook subscription event is triggered even when gift subscription payment fails #315

@mert-ersoy

Description

@mert-ersoy

Hello,

I would like to report an important issue I’ve identified regarding subscription-related webhook events.

During Gift Subscription transactions (and possibly other subscription flows), the webhook notification is being sent even when the card payment fails. I personally tested this behavior: although the payment was declined during the checkout process, the system still triggered and delivered a subscription webhook as if the transaction had succeeded.

Below is the exact webhook payload I received for this failed payment attempt:

{ "broadcaster": { "is_anonymous": false, "user_id": *****, "username": "******", "is_verified": false, "profile_picture": "******", "channel_slug": "*******", "identity": null }, "gifter": { "is_anonymous": false, "user_id": 35011031, "username": "XssMert", "is_verified": false, "profile_picture": "https://files.kick.com/images/user/35011031/profile_image/conversion/b39e942e-b02b-4de4-bbe7-89833a212d93-medium.webp", "channel_slug": "xssmert", "identity": null }, "giftees": [ { "is_anonymous": false, "user_id": ******, "username": "*******", "is_verified": false, "profile_picture": "", "channel_slug": "******", "identity": null } { "is_anonymous": false, "user_id": ******, "username": "*******", "is_verified": false, "profile_picture": "", "channel_slug": "******", "identity": null } { "is_anonymous": false, "user_id": ******, "username": "*******", "is_verified": false, "profile_picture": "", "channel_slug": "******", "identity": null } { "is_anonymous": false, "user_id": ******, "username": "*******", "is_verified": false, "profile_picture": "", "channel_slug": "******", "identity": null } { "is_anonymous": false, "user_id": ******, "username": "*******", "is_verified": false, "profile_picture": "", "channel_slug": "******", "identity": null } ], "created_at": "2025-12-13T12:44:09.298957865Z", "expires_at": "2026-01-12T12:44:09.298957938Z" }

The exact date and time are included in the payload above and should be verifiable in your logs.

The test was performed using my account: xssmert. However, I wanted to conceal the name of the broadcaster and the names of the viewers.

Although the payment was declined and the subscription was not successfully completed, the webhook was still sent. This can cause incorrect behavior for third-party systems that rely on webhook events to confirm successful transactions.

If you need any additional technical details, logs, or further test cases, I’d be happy to provide them.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingtriageInitial investigation on issue

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions