Privacy Policy
What is collected when you sign in and buy, who else sees it, and how to get rid of it.
Last updated
What signing in gives us
Sign-in is Discord OAuth, requesting two scopes: identify, and guilds.join so you can be added to the support server without hunting for an invite. From identify we keep your Discord user id, username, display name and avatar URL. That is the whole account record. We never see your Discord password, your email address from Discord, your servers or your messages.
The record lives in a signed cookie in your browser rather than in a database row, so there is no account table here to leak. The cookie is signed, which means it cannot be edited into someone else's identity, and it stops working after thirty days.
What buying gives us
Card details never reach this server, on either gateway. There is no card form anywhere on this site.
On a Tebex order, Tebex takes the payment as the seller of record and holds whatever it needs to do that. Our webhook records the transaction id, the products in it, the payment method summary, and the customer identity Tebex reports — a Cfx forum username and the email address you gave Tebex at checkout — along with the Discord id we passed through so the order can be shown back to you on the purchases page.
On a Hexel order we send Hexel your Discord id, the product, the currency and the email address you type into the checkout form, because Discord's identify scope does not include an email and Stripe needs somewhere to send the receipt. Hexel and Stripe hold the payment record; we read the list of your purchases back from Hexel by Discord id rather than storing it here.
Tebex is also given your IP address when a basket is created, because it geolocates it to choose a currency. Without it every order would be priced as if it came from our hosting provider.
Cookies
Three cookies, all of them necessary to something you asked for. koja_session is your signed-in identity. koja_basket holds only the Tebex basket identifier — the contents live at Tebex and are read back on every request, so the browser cannot assert what is in your basket. koja_currency_v2 remembers the display currency you picked.
The first two are httpOnly, meaning scripts in the page cannot read them. One further value, a note that you dismissed the cookie banner, is kept in your browser's local storage and never sent anywhere.
There is no analytics cookie, no advertising cookie and no third-party tracker on this site, which is why the notice is a notice rather than a consent manager: there is nothing here to opt out of.
Reviews and avatars
A review is stored with your Discord id, your rating and your text. The name and picture shown next to it are fetched from Discord when the page renders, not copied into our database — so changing your Discord name changes what appears here, and we are not holding a stale copy of it.
Purchase avatars work the same way against the Cfx forum: a Tebex payment records a forum username, and the picture is looked up from the forum's public profile at render time. Both lookups are cached in memory for a short while and nothing is written to disk.
Reviews are public. They are also mirrored into the store's Discord review channel, so anything you write in one is visible in the other.
Who else sees it
Tebex, as the seller of record for Tebex orders. Hexel and Stripe, for orders bought through Hexel. Discord, because it is the identity provider, hosts the support server, and is where reviews, order notices and server errors are posted. The Cfx forum, when a public profile picture is looked up. Cloudflare R2, which stores product images and blog images — those are files we upload, not anything about you.
Our hosting provider sees ordinary request logs. That is the full list. No analytics vendor, no advertising network, no data broker, and no third-party error monitor — errors go to a Discord channel we watch, with anything that looks like a credential, a cookie or an email address stripped out before it is sent.
Nothing is sold to anyone, and nothing here builds a profile of you.
How long it is kept
The session cookie expires after thirty days, or when you sign out. Order records are kept because they are what your licences are attached to and what tax law requires; on a Tebex order Tebex keeps its own copy under its own retention rules, which we do not control.
Reviews stay up until they are removed. Ask and yours will be taken down.
Getting a copy, or getting rid of it
Open a ticket in the Discord and ask for a copy of what we hold, or for it to be deleted. Deleting the account record ends the licences attached to it, so make sure that is what you want.
Data held by Tebex about a Tebex order is Tebex's to give you or delete, and is asked for at tebex.io/contact/checkout. The same applies to Hexel and Stripe for a Hexel order. We can only act on what is actually here.