Selling per-channel access to an Extension outside Twitch (one-time purchase)

Hi Twitch team,

I’m the developer of STREAMVERSE, a panel extension (a community pet, quests and viewer profiles; no Bits, no purchases, no chat, no random rewards).

I’d like to sell streamers a one-time license on my own store (Shopify/Etsy). After purchase, I activate their channel on my backend (EBS). Channels without a license see a short “not active on this channel” message inside the extension. The extension contains no price, no purchase link and no payment flow for streamers or viewers.

Guideline 5.1 allows compensation from broadcasters, but I couldn’t find anything about the purchase happening outside Twitch.

  1. Is selling access this way (payment off-platform, license checked by the EBS) allowed for a released extension?
  2. Is there anything the extension or its listing must show or disclose about the license?

Thank you!

5.1 Extensions may provide differentiated experiences or functionality to broadcasters, in exchange for compensation from broadcasters. Examples: tiered access to features or purchasable plugins to add functionality.

differentiated experiences as in it must do something when a caster hasn’t paid, not do nothing/have nothing shown to viewers*

*this is my interpretation.

Theres no mechanism for handling this on site so off site is fine/expected.

Payments being offsite yes/is expected.

Flat pay to use is not allowed*

*except when using allow list to block access as the streamer has paid for access/it to be built which then is reviewed under a different context (see 4.10 regarding global overlay extensions). Again this is my inerpreation. As the policy states “differentiated access/features”

Policy aside: it should be noted on the extension details page as otherwise you are gonna get a high bounce rate

Disclaimer: I am not a laywer and this isn’t legal advice and the bulk of your query is pertianing to legal advice

This should be fine, as per Guideline 5.1.

Important things to note:

  • You cannot sell this access using Bits, as that breaks our Bits Acceptable Use Policy. If you’re using your own off-site purchasign then that should be fine.
  • The viewer-facing half of the Extension cannot have any links to purchase access. Your Configuration (streamer-facing half) is allowed to have these linkouts.
  • Do not imply that Twitch is related to your sale, or that Twitch provides any warranty. All Terms of Sale and other compliance expectations for local laws is on you.
  • As Barry said, for UX purposes you should note this on your Extension details page, and also note it in your Configuration very clearly.
    • Also, do not utilize the Streamer Allowlist for this. We do not expedite reviews because of allowlist changes, so if you go that route then you’ll end up waiting the regular Extension Review SLA for each person added.
  • Your Extension still has to follow all other Extension guidelines regardless of being public or paywalled.
  • Remember to grant access to /qa_moderation at the very least, and preferably also /qa_moderation3. These are our primary review channels.
    • Note in your review notes that the access is granted for these channels. This helps us test functionality on non-allowed channels.

I’m in exactly this situation with my extension.

My extension is publicly installable, but its functionality requires an active paid subscription on my website. The subscription status is verified by my backend/EBS.

I actually received a rejection from Twitch QA today specifically telling me that, because the extension requires a paid subscription, I need to use the Streamer Allowlist.

This seems to conflict with the guidance here saying that the Streamer Allowlist should not be used for managing paying customers, especially since every change to the allowlist would require submitting the extension for review again.

Could you clarify which approach Twitch expects us to follow in this situation?

Ideally, I would like to keep the extension public and have my backend determine whether the broadcaster has an active subscription, rather than having to update the Twitch Streamer Allowlist for every new subscriber.

Sounds like QA applied the policy hows it’s written

Flat out disable compared to “it does this but streamer pays to get it to do more”

is how I read the policy to the letter

Suggests otherwise, so the policy/and QA might need a tweak?

Or just pass the query parameter of the state of the extension to the EBS and if it’s not “released” allow as if paid

I actually received a rejection from Twitch QA today specifically telling me that, because the extension requires a paid subscription, I need to use the Streamer Allowlist.

Can you email developers@twitch.tv about this situation and include your Extension name + Client ID?