This repository is a response to Discord’s recent monetization mandates, which unfairly require developers offering paid features in their apps to list them on the Discord store. This policy imposes heavy restrictions and fees (15-30%) that developers are forced to absorb. Additionally, deals have been offered to the largest apps on the platform, and favoritism is evident in the moderation of these policies.
By taking control of the payment process, Discord limits developers' autonomy over essential actions like refunds, potentially leading to unfair practices and user dissatisfaction. Discord can deny or issue refunds without developer input, jeopardizing both user trust and developer revenue. Furthermore, Discord’s system lacks support for many essential payment features, failing to accommodate the diverse needs of apps and their users.
This policy is especially problematic in the European Union. Under EU regulations, such practices could be seen as anti-competitive and exploitative to small businesses like ours. We can only hope that Discord will make significant changes to its monetization practices soon.
This code, released under the MIT license, is part of our protest against these imposed changes. We aim to provide developers with an open-source example to navigate and manage Discord’s monetization requirements independently.
Feel free to copy and use this code as needed. It’s designed to be a clear example of how you should implement the necessary logic for handling Discord monetization.
See examples/ for more in-depth examples.
wh = WebhookService(
client_public_key="YOUR_CLIENT_PUBLIC_KEY_GOES_HERE",
)
@wh.command(event=WebhookEventTypeEnum.ENTITLEMENT_CREATE)
async def new_entitlement_created(event: WebhookPayloadEventEntitlementCreate) -> None:
print(f"New entitlement with ID {event['data']['id']}!")
wh.start()