Skip to main content

What this lets you do

Take payments in any of 30 currencies and see the revenue attributed to the AI source that produced it. Traceten stores the amount you were actually paid, converts it to USD for reporting, and records the exchange rate it used on every single row.

The short version

  • Traceten supports 30 currencies (listed below).
  • Your payment amount is stored in its original currency, unchanged.
  • A USD figure is calculated alongside it, using the European Central Bank reference rate for the day of the payment.
  • The rate used is saved on the row, so any total can be traced back to the numbers that produced it.
  • If a payment arrives in a currency Traceten cannot convert, the payment is rejected with an error naming the currency. It is never recorded as zero revenue.
  • Each site has a display currency, used to report totals. It defaults to USD, or to your payment provider’s account currency when you connect one.

Supported currencies

Traceten uses the European Central Bank euro reference rates, which cover these 30 currencies:

Currencies that are not supported

The ECB does not publish reference rates for these, so Traceten cannot attribute revenue in them: AED, SAR, QAR, TWD, VND, PKR, BDT, ARS, COP, CLP, PEN, NGN, EGP, KES If you charge in one of these, a payment in that currency is rejected and logged rather than attributed. Everything else in Traceten still works: pageviews, sessions, AI source detection, goals, and crawler analytics are all unaffected. Only the revenue attribution for that payment is skipped. If you need one of these currencies, tell us. We would rather hear it before you integrate than after your first failed charge.

Zero decimal currencies

JPY, KRW, and ISK have no minor unit. 5000 JPY means 5,000 yen, not 50 yen. Traceten handles this from an ISO 4217 exponent table rather than assuming every currency divides by 100, so a Japanese order is not recorded at one hundredth of its value. One exception worth knowing about: Stripe transmits ISK amounts as if the currency had two decimal places, which its own documentation calls out as a special case. Traceten follows Stripe’s convention when reading Stripe amounts and the ISO convention when displaying them.

How conversion works

  1. A payment arrives in its original currency, for example 49.99 EUR.
  2. Traceten looks up the ECB reference rate for the date of the payment.
  3. The amount is converted to USD and stored alongside the original.
  4. The rate and its publication date are saved on the row.
Two details that matter: Weekends and holidays. The ECB publishes on working days only. A payment on a Saturday uses Friday’s rate, and the row records Friday’s date, not Saturday’s. This is deliberate: it is the most recent published rate at the time of the payment. Historical amounts do not move. Traceten converts at the time of the payment, not at the time you look at the dashboard. A sale from three months ago shows the same USD figure today as it did last week, because it was converted at that day’s rate and that rate never changes.

Display currency

Each site has a display currency, which decides what revenue totals are reported in. It starts as USD. When you connect a payment provider, Traceten sets the display currency from that provider’s account currency, so a Stripe account that settles in GBP reports in GBP without you configuring anything. This only happens while you have never set the currency yourself. Once you choose one, Traceten never changes it again, including if you later connect a different provider or reconnect the same one. You can set it explicitly with a PATCH to the site:
It accepts any of the 30 supported codes, in any case. A code Traceten holds no rate for is rejected, because a display currency it cannot convert into would produce a total it cannot render. When the display currency is not USD, each day’s revenue is converted at that day’s rate and the results are added. Traceten does not apply today’s rate to a multi-month total, which would make last month’s revenue appear to change every time the exchange rate moves. Only a USD display currency skips conversion entirely. If you charge in EUR and display in EUR, the amount is still converted twice: to USD when the payment arrives, and back to EUR when the total is rendered. Both use the same day’s rate, so the number returns to within rounding of what you charged, but it is not guaranteed to be identical to the cent. The original amount is always stored unchanged. If you need a figure that ties out exactly, use that. Setting a display currency does not change what Traceten stores. The original amount and the USD amount are both kept.

Why your USD figure will not exactly match your processor

Traceten converts using ECB reference rates. Your payment processor converts using its own rates, and your bank settles at a third rate. All three differ slightly. This is why Traceten stores the original amount. That number, in the currency you charged, is the one that matches your books. The USD figure exists so revenue from different currencies can be compared and totalled in one place. If you need a figure that ties out to the cent against your processor, use the original amount.

An unsupported currency is an error, not a zero

Some analytics tools record a payment in an unsupported currency as zero revenue and carry on. That produces a dashboard that is quietly wrong: the conversion is counted, the money is not, and nothing tells you. Traceten rejects the payment instead and logs the currency by name. You get a gap you can find rather than a total you cannot trust.

Next