Tebex revenue by source, matched to real players
Connect your Tebex store to MCAnalytics with one signed webhook. Every delivery is checked against your network's secret, the buyer is matched to a player by their premium UUID and never by username, and the money is credited to the join address that player first came through. A purchase that cannot be matched stays visible as Unmatched and still counts in your totals. Refunds and chargebacks come back off, and the yearly report gives you twelve calendar months of gross, refunds, net and buyers, counting each purchase once.

How it works
Connect the store
In Settings, paste the webhook secret from your Tebex creator panel and press Connect store. Paste the address it prints into Tebex as a webhook endpoint.
Pick three events
Subscribe the endpoint to payment completed, payment refunded and dispute opened. A delivery that fails the signature check is refused.
Match by premium UUID
The buyer's premium UUID finds the player on your network, and the amount goes to the source that player first joined through, however long ago that was.
Read Revenue and Growth
Revenue per source on Growth, the full ledger on Revenue, and a yearly report you can download as CSV.
What you see on the dashboard
Revenue by source
Matched purchases credited to the join address each buyer first arrived through, with their share of the total.
Matched, unmatched and refunds
Matched revenue, unmatched revenue and refunds side by side, so you see how much of the store you can trace back to a source.
Yearly report
Twelve calendar months in UTC with gross, refunds, net, purchases, buyers, first time buyers and average order. One table per currency, never converted.
Revenue by package
Each package with its revenue, buyers, refunds, and how often it was a buyer's first purchase.
Why a username is never enough
A username can change hands, and on an offline mode server anyone can type any name. A purchase credited to the wrong player is worse than one credited to nobody, so MCAnalytics matches only on the premium UUID that Tebex reports.
That has a cost worth knowing. A buyer who has not joined yet, or who buys from a Bedrock or cracked account without a premium UUID, lands in Unmatched. When that premium buyer joins later, the purchase moves to them and to their source on its own.
On a cracked network behind a Velocity proxy, a buyer who owns the game and logs in through premium login with nLogin, FastLogin or LibreLogin is matched too. The proxy keeps their Mojang UUID next to their cracked name, taken from nLogin's record of the premium login or from the profile Mojang signed, never guessed from the name.
Questions
Why not match purchases by username?
Usernames get reused and, on offline mode servers, anyone can claim one. A purchase credited to the wrong player moves money to the wrong source, so only the premium UUID is used.
What happens to a purchase that cannot be matched?
It stays in an Unmatched group, counted in your totals and never attached to the nearest guess. If the buyer joins your network later with that premium account, the purchase is matched then.
Are refunds and chargebacks taken off?
Yes. Refunds and chargebacks are subtracted, and the Net column of the yearly report shows what you kept after them.
How is the yearly report counted?
Each purchase counts once, even when the package grants on several servers. Months are calendar months in UTC, and a store that charges in more than one currency gets one table per currency, never a converted total.
Is the webhook safe?
Each network has its own webhook address and its own secret, and every delivery is checked against that secret before a single field is read. If the secret leaks, rotate it in the dashboard.