Tax data

Exchange rates for tax, from the authorities that publish them

RBA daily rates back to 1983, the ATO's monthly and year end rates, HMRC's monthly rates, the IRS yearly averages, and ECB and Bank of Canada reference rates. They're kept apart from market FX and quoted in the direction each authority uses.

GET /v1/tax/fx 1 credit per pair
curl "https://api.quova.io/v1/tax/fx?authority=RBA&pairs=AUDUSD,AUDEUR&from=2026-06-01&to=2026-06-30" \
  -H "Authorization: Bearer $QUOVA_API_KEY"
Response
200 OK 2 credits
{
  "data": [
    {
      "pair": "AUDUSD",
      "asOf": "2026-06-30T00:00:00Z",
      "base": "AUD",
      "quote": "USD",
      "rates": [
        {
          "date": "2026-06-01",
          "rate": 0.7188
        },
        {
          "date": "2026-06-02",
          "rate": 0.7163
        },
        {
          "date": "2026-06-03",
          "rate": 0.7164
        },
        {
          "date": "2026-06-04",
          "rate": 0.7131
        },
        {
          "date": "2026-06-05",
          "rate": 0.7121
        },
        {
          "date": "2026-06-09",
          "rate": 0.7058
        },
        {
          "date": "2026-06-10",
          "rate": 0.702
        },
        {
          "date": "2026-06-11",
          "rate": 0.7008
        },
        {
          "date": "2026-06-12",
          "rate": 0.7029
        },
        {
          "date": "2026-06-15",
          "rate": 0.7081
        },
        {
          "date": "2026-06-16",
          "rate": 0.7048
        },
        {
          "date": "2026-06-17",
          "rate": 0.7059
        },
        {
          "date": "2026-06-18",
          "rate": 0.7031
        },
        {
          "date": "2026-06-19",
          "rate": 0.7005
        },
        {
          "date": "2026-06-22",
          "rate": 0.7004
        },
        {
          "date": "2026-06-23",
          "rate": 0.6964
        },
        {
          "date": "2026-06-24",
          "rate": 0.6913
        },
        {
          "date": "2026-06-25",
          "rate": 0.6892
        },
        {
          "date": "2026-06-26",
          "rate": 0.6894
        },
        {
          "date": "2026-06-29",
          "rate": 0.6896
        },
        {
          "date": "2026-06-30",
          "rate": 0.6869
        }
      ]
    },
    {
      "pair": "AUDEUR",
      "asOf": "2026-06-30T00:00:00Z",
      "base": "AUD",
      "quote": "EUR",
      "rates": [
        {
          "date": "2026-06-01",
          "rate": 0.6169
        },
        {
          "date": "2026-06-02",
          "rate": 0.6155
        },
        {
          "date": "2026-06-03",
          "rate": 0.6165
        },
        {
          "date": "2026-06-04",
          "rate": 0.6142
        },
        {
          "date": "2026-06-05",
          "rate": 0.613
        },
        {
          "date": "2026-06-09",
          "rate": 0.6113
        },
        {
          "date": "2026-06-10",
          "rate": 0.6076
        },
        {
          "date": "2026-06-11",
          "rate": 0.6069
        },
        {
          "date": "2026-06-12",
          "rate": 0.6082
        },
        {
          "date": "2026-06-15",
          "rate": 0.6095
        },
        {
          "date": "2026-06-16",
          "rate": 0.6088
        },
        {
          "date": "2026-06-17",
          "rate": 0.6079
        },
        {
          "date": "2026-06-18",
          "rate": 0.6108
        },
        {
          "date": "2026-06-19",
          "rate": 0.6128
        },
        {
          "date": "2026-06-22",
          "rate": 0.6114
        },
        {
          "date": "2026-06-23",
          "rate": 0.6097
        },
        {
          "date": "2026-06-24",
          "rate": 0.6081
        },
        {
          "date": "2026-06-25",
          "rate": 0.6066
        },
        {
          "date": "2026-06-26",
          "rate": 0.6058
        },
        {
          "date": "2026-06-29",
          "rate": 0.6052
        },
        {
          "date": "2026-06-30",
          "rate": 0.6034
        }
      ]
    }
  ],
  "errors": [],
  "meta": {
    "credits": 2,
    "requestId": "req_34VoxwnVNgfyN9KHtNwTb"
  }
}

What each authority publishes

AuthorityPeriodsHistory fromPairs look like
RBAdaily12 December 1983AUDUSD
ATOmonthly, yearly, year_endMonthly from July 2015, yearly and year end from 1996AUDUSD
HMRCmonthly, yearly, year_endJanuary 2021, and year end spot rates from December 2023GBPUSD
IRSyearlyThe last five years, plus older years we stored earlierUSDEUR
ECBdaily, monthly, yearly, year_endJanuary 1999EURUSD
Bank of Canadadaily, monthly, yearly2017USDCAD

Each rate is dated on the last day of its period, so a monthly rate for June 2026 is dated 30 June 2026.

Which way round a pair goes

Each authority quotes against its own currency, and we keep that direction so the numbers match its website. The RBA quotes US dollars per Australian dollar, so AUDUSD at 0.6869 on 30 June 2026 means A$1 bought US$0.6869. To turn US$1,000 of dividends paid that day into Australian dollars, divide: 1,000 ÷ 0.6869 = A$1,455.82.

Ask for a pair the wrong way round, like USDAUD from the RBA, and the error names the pair to use instead. It's an easy mistake to make when every source quotes a different way.

Which rate to use

In Australia you can convert at the rate at the time of each transaction, or at an average rate over a period of up to 12 months when it's a reasonable approximation of the actual rates. The ATO accepts RBA rates and publishes its own monthly and yearly averages. Averages suit income that arrives through the year, like dividends. See the ATO's foreign exchange rates and average rates guidance.

HMRC sets its monthly rates in advance and publishes them on the second last Thursday of the month before. It also publishes yearly averages and spot rates for the years ending 31 March and 31 December.

The IRS says it has no official exchange rate and accepts any posted rate you use consistently. It publishes yearly averages, and its page only shows about the last five years. Once we have a year we keep it, so older years stay available.

This describes the rates each authority publishes. It isn't tax advice.

Weekends and public holidays

You only get dates the authority published. The RBA has no rate for a Saturday or a public holiday, and we don't make one up. For a transaction on one of those days, ask for a range that ends on that date and take the last rate in it.

Questions

How is this different from the FX prices?

Market FX, like FX:AUDUSD in the prices endpoints, is what currencies traded at. These are the rates tax offices publish and accept, and they only change when the authority publishes. Keep the two apart in your code, since a tax report needs the official one.

Do you have the ATO's rates or the RBA's?

Both. authority=ATO gives the monthly and end of year tables the ATO publishes, and authority=RBA gives the RBA's daily series. The ATO's rates have been averages of RBA rates since 2020.

What does year_end mean?

The rate on the last day of the tax year. For the ATO that's its end of financial year rate for 30 June, and for HMRC the spot rate on 31 March or 31 December.

Is every currency available?

Whatever each authority publishes. The RBA has dropped some currencies over the years, like the Swedish krona and the South African rand, and their series end where the RBA stopped.

What if I ask for a period an authority doesn't publish?

You get not_supported for that pair, like asking the IRS for daily rates. We never swap in a rate from a different authority.

What does it cost?

1 credit per pair. It's included in every plan, Free included, and in the trial. Anything that comes back as an error isn't billed.

Try every endpoint for 7 days

The trial has 1,000 credits and full API access, and you don't need a card for it. After that you keep a free plan for personal projects, and paid plans start at $29 a month.