Extension

Events raised when a viewer completes a Bits transaction in an extension.

View as markdown
Provide feedback for this page

Extension Bits Transaction Create

The extension.bits_transaction.create subscription type sends a notification when a new transaction is created for a Twitch Extension.

Note

This subscription type is only supported by Webhooks and Conduits, and cannot be used with WebSockets.

Subscription

Type
extension.bits_transaction.create
Version
1

Authorization

Requires one of the following:

  • An app access token.The OAuth token Client ID must match the Extension Client ID.

Subscription Request Body

  • typeStringRequired
    The subscription type name: extension.bits_transaction.create.
  • versionStringRequired
    The subscription type version: 1.
  • conditionObjectRequired
    Subscription-specific parameters. Pass in the Extension client ID you want to receive Bits transaction notifications for.
    Hide child attributesShow child attributes
    • condition.extension_client_idStringRequired
      The client ID of the extension.
  • transportObjectRequired
    Transport-specific parameters.
    Hide child attributesShow child attributes
    • transport.methodStringRequired
      The transport method for EventSub.

      Possible values

      • webhook
      • websocket
      • conduit
    • transport.callbackString

      The callback URL where notifications are sent. The URL must use the HTTPS protocol and port 443. See Processing an Event.

      Specify this field only if method is set to webhook.

      NOTE: Redirects are not followed.

    • transport.secretString

      The secret used to verify the signature. The secret must be an ASCII string that's a minimum of 10 characters long and a maximum of 100 characters long. For information about how the secret is used, see Verifying the event message.

      Specify this field only if the method is set to webhook.

    • transport.session_idString

      An ID that identifies the WebSocket to send notifications to. When you connect to EventSub using WebSockets, the server returns the ID in the Welcome message.

      Specify this field only if the method is set to websocket.

    • transport.conduit_idString

      An ID that identifies the conduit to send this notification to. When you create a conduit, the server returns the ID in the API response.

      Specify this field only if the method is set to conduit.

Event Payload

  • subscriptionObject
    Metadata about the subscription.
    Hide child attributesShow child attributes
    • subscription.idString
      The Subscription ID of the subscription.
    • subscription.typeString
      The notification's subscription type.
    • subscription.versionString
      The version of the subscription.
    • subscription.statusString
      The status of the subscription.
    • subscription.costInteger
      How much the subscription counts against your limit. See Subscription Limits for more information.
    • subscription.conditionObject
      Subscription-specific parameters.
      Hide child attributesShow child attributes
      • subscription.condition.extension_client_idString
        The client ID of the extension.
    • subscription.created_atString
      The time the notification was created.
    • subscription.transportObject
      Transport-specific parameters.
      Hide child attributesShow child attributes
      • subscription.transport.methodString
        The transport method for EventSub.

        Possible values

        • webhook
        • websocket
        • conduit
      • subscription.transport.callbackString

        The callback URL where notifications are sent. The URL must use the HTTPS protocol and port 443. See Processing an Event.

        Specify this field only if method is set to webhook.

        NOTE: Redirects are not followed.

      • subscription.transport.secretString

        The secret used to verify the signature. The secret must be an ASCII string that's a minimum of 10 characters long and a maximum of 100 characters long. For information about how the secret is used, see Verifying the event message.

        Specify this field only if the method is set to webhook.

      • subscription.transport.session_idString

        An ID that identifies the WebSocket to send notifications to. When you connect to EventSub using WebSockets, the server returns the ID in the Welcome message.

        Specify this field only if the method is set to websocket.

      • subscription.transport.conduit_idString

        An ID that identifies the conduit to send this notification to. When you create a conduit, the server returns the ID in the API response.

        Specify this field only if the method is set to conduit.

  • eventObject
    The event information.
    Hide child attributesShow child attributes
    • event.extension_client_idString
      Client ID of the extension.
    • event.idString
      Transaction ID.
    • event.broadcaster_user_idString
      The transaction's broadcaster ID.
    • event.broadcaster_user_loginString
      The transaction's broadcaster login.
    • event.broadcaster_user_nameString
      The transaction's broadcaster display name.
    • event.user_idString
      The transaction's user ID.
    • event.user_loginString
      The transaction's user login.
    • event.user_nameString
      The transaction's user display name.
    • event.productObject
      Additional extension product information.
      Hide child attributesShow child attributes
      • event.product.nameString
        Product name.
      • event.product.bitsInteger
        Bits involved in the transaction.
      • event.product.skuString
        Unique identifier for the product acquired.
      • event.product.in_developmentBoolean
        Flag indicating if the product is in development. If in_development is true, bits will be 0.
Subscription Request Body Example
{
  "type": "extension.bits_transaction.create",
  "version": "1",
  "condition": {
    "extension_client_id": "deadbeef"
  },
  "transport": {
    "method": "webhook",
    "callback": "https://example.com/webhooks/callback",
    "secret": "s3cRe7"
  }
}
Event Payload Example
{
    "subscription": {
        "id": "f1c2a387-161a-49f9-a165-0f21d7a4e1c4",
        "type": "extension.bits_transaction.create",
        "version": "1",
        "status": "enabled",
        "cost": 0,
        "condition": {
            "extension_client_id": "deadbeef"
        },
         "transport": {
            "method": "webhook",
            "callback": "https://example.com/webhooks/callback"
        },
        "created_at": "2019-11-16T10:11:12.634234626Z"
    },
    "event": {
        "id": "bits-tx-id",
        "extension_client_id": "deadbeef",
        "broadcaster_user_id": "1337",
        "broadcaster_user_login": "cool_user",
        "broadcaster_user_name": "Cool_User",
        "user_name": "Coolest_User",
        "user_login": "coolest_user",
        "user_id": "1236",
        "product": {
            "name": "great_product",
            "sku": "skuskusku",
            "bits": 1234,
            "in_development": false
        }
    }
}