Priced in pounds, with the VAT worked out
Wegweiser bills in GBP now: packs at 399, 799 and 1,599 pounds, plans at 2, 4 and 12 pounds per endpoint per month, all net, with Stripe adding VAT from your billing address and zero-rating an EU business that supplies a VAT number. The checkout path was also rejecting Stripe's own confirmations, which is fixed.
Everything you buy from Wegweiser is now quoted in pounds, listed net, and carries a VAT position worked out from the address you check out with. If you are an MSP evaluating the product from Germany, Ireland or anywhere else in the EU, that last part is the one that matters: you can now supply your VAT number and be zero-rated under the reverse charge, instead of being quoted a dollar figure with no tax treatment at all.
Pounds, and the figures were chosen rather than converted
The account settles in GBP and the shop was charging USD. That paid an FX spread on every sale and quoted a currency most of the people buying do not think in.
The prices did not move across by keeping the numerals, because the numerals were not the point. The per-endpoint plans are now Bring your own key at 2 pounds, Standard at 4 pounds and Continuous at 12 pounds per endpoint per month. The Wegcoin packs are 5,000 for 399, 12,000 for 799 and 30,000 for 1,599. The included Wegcoin allowances are unchanged, 60 per endpoint on Standard and 400 on Continuous, because they were sized against a measured full Windows analysis pass of 44 Wegcoins and not against a price.
Nothing in the product multiplies by an exchange rate at runtime. A price that moves with the market is not a price you can put in a quote to your own client, so every figure is one somebody chose in the currency it is shown in.
The currency itself used to be written down in seven places that had to agree with nothing making them agree: the checkout call, the pack catalogue, a hardcoded symbol in a template, a stylesheet drawing one with content, the plan rows, the admin tenant list and a JavaScript string. That is why the Bazaar briefly showed pack prices in pounds directly above plan prices in dollars. It lives in one module now and reaches every template through a context processor, so the next page that renders a price has nothing to hand type.
VAT is added at checkout, not taken out of the price
Old Forge Technologies Ltd is UK VAT registered, so a sale has a VAT position and somebody has to work it out. Stripe Tax does it from your billing address, which is why checkout now requires one.
Listed prices are net and tax is added on top. A UK buyer sees 20 percent added. Checkout also collects a tax ID, which is the field that makes reverse charge possible at all: an EU business that enters a valid VAT number is charged 0 percent with the reverse charge note placed on the invoice automatically, and an EU business that does not enter one is simply charged VAT. The receipt shows subtotal, VAT and total, with the VAT line drawn only when there is any, so a reverse charge buyer is not left staring at a zero row wondering what went wrong.
The German edition carries the same position in its own register: prices show zzgl. MwSt., soweit sie anfällt, and the receipt line reads MwSt. The marketing page states it under the pricing cards too, because listed figures that are net should say so where they are listed.
The confirmation Stripe could never deliver
A payment becomes Wegcoins when Stripe posts the completed session back to the app. That endpoint sat behind the same CSRF protection as every form in the product, so every delivery Stripe made was rejected with a 400 before the signature check ever ran.
The failure mode is the bad one. The card is charged, Stripe retries and keeps failing, and the balance never moves. Money in, nothing out.
The endpoint is exempt from CSRF now, which is the correct answer rather than a shortcut: CSRF protects a browser from being tricked into posting with your cookies, and this request is neither a browser nor a session. What defends it is the signature Stripe computes over the payload with a shared secret, checked before a single field is read. Tests now pin that signature check, the exemption, and the re-check that compares what was actually paid against the catalogue price, so a session that underpays is refused rather than credited.
And if you change your mind
Backing out of checkout used to land you on the literal words "Payment cancelled.", with no template, no stylesheet and no way back into the app. It is a page now, and it leads with the only thing anyone standing on it wants to know: your card was not charged and your Wegcoin balance is unchanged. It carries a return arrow rather than a cross, and no countdown, because the likeliest reason you cancelled is that you wanted another look at the packs.
What is not there yet
Moving onto a per-endpoint plan is still not self-serve. The tiers are on the Bazaar with their prices and allowances, but there is no button that puts you on one, because there is no recurring payment collection behind it yet and a button would hand out included Wegcoins for nothing. Reply to your onboarding email or open a support ticket and it gets set up with you. Wegcoin packs are the part you can buy yourself today.