Once a source has a completed sync, you can calculate its tax liability for any year and jurisdiction. TaxMaxi applies FIFO (first-in, first-out) accounting to your normalized transaction records and returns a breakdown of gains, losses, and income. The calculation runs on demand each time you call the endpoint, so you can re-run it after a replay or for different years without any additional setup. Required header:Documentation Index
Fetch the complete documentation index at: https://docs.taxmaxi.com/llms.txt
Use this file to discover all available pages before exploring further.
Authorization: Bearer <token>
TaxMaxi provides tax calculation results for informational purposes only. The output of this API is not tax advice. You should consult a qualified tax professional before filing any tax return.
Calculate tax
Calculates jurisdiction-specific tax figures from normalized FIFO and income data for the specified source.status: "completed" before you call this endpoint. If the source has never been synced or the most recent sync failed, the API returns a 404.
Path parameters
The ID of the source to calculate tax for.
Request body
The tax year to calculate. Must be between
1970 and the current year (inclusive).The tax jurisdiction to apply. Currently supported:
"germany".Response fields
The tax year the calculation applies to.
The base currency in which all monetary values are expressed (e.g.
"EUR").Net gains from crypto assets held for less than one year. These are subject to income tax in Germany.
Net losses from crypto assets held for less than one year. These can offset taxable gains.
Gains from crypto assets held for more than one year. Under German tax law, these gains are tax-free.
Total income from non-trade events such as staking rewards, airdrops, and other income-classified transactions.
Errors
| Status | Code | Description |
|---|---|---|
400 | SourceBadRequestError | The request body is missing required fields or contains invalid values. |
404 | SourceNotFoundError | No source was found for the given ID, or the source has not completed a sync. |
500 | InternalServerError | An unexpected server error occurred. |
Example
Response
Understanding the response
| Field | Description |
|---|---|
taxableGains | Gains from selling or swapping crypto held for less than 12 months. In Germany, these are taxed as income. |
taxableLosses | Losses from assets held less than 12 months. You can offset these against taxable gains in the same year. |
taxFreeGains | Gains from assets held for more than 12 months. German tax law exempts these from taxation. |
incomeTotal | The total value received from staking rewards, airdrops, and similar income events at the time of receipt. |
currency field.