Skip to content

hr.invalid_vat_rate

HTTP 400 type: validation_error param: vat.0.rate
{
"error": {
"type": "validation_error",
"code": "hr.invalid_vat_rate",
"message": "VAT rate \"22.00\" is not permitted. Croatian VAT rates are 0.00, 5.00, 13.00 and 25.00 (restrictive error 182).",
"param": "vat.0.rate",
"upstream": null,
"doc_url": "https://docs.fiskhub.com/errors/hr.invalid_vat_rate"
}
}

param identifies which line failed, indexed from zero.

What happened

A VAT rate in the vat array is not one of the permitted Croatian rates. Restrictive error 182 limits them to:

Rate
"0.00"Zero-rated
"5.00"Reduced
"13.00"Reduced
"25.00"Standard

FiskHub checks this locally, before sending.

Should you retry?

Not unchanged. The set is fixed by law.

The fix

Send one of the four rates, as a decimal string with exactly two places.

{
"vat": [
{ "rate": "25.00", "base": "3.60", "amount": "0.90" },
{ "rate": "5.00", "base": "4.57", "amount": "0.23" }
]
}

Common causes:

SentProblem
25A JSON number. Send "25.00".
"25"No decimals. Send "25.00".
"25.0"One decimal. Send "25.00".
0.25A fraction rather than a percentage. Send "25.00".
"22.00"Not a Croatian rate — probably another country’s standard rate.
"10.00"Not a Croatian rate. The reduced rates are 5 and 13.

One entry per rate. A sale spanning two rates has two entries, each with its own base and amount.

For a company that is not VAT-registered, send an empty array — or omit vat entirely, since it defaults to [].

Rates change; the check does not

The permitted set comes from the specification, which has changed four times in fourteen months. If a rate you believe is current is being refused, check the current country schema and then tell us — a rate the regulation permits and we refuse is our bug.

Do not hard-code the rates in a way that requires a device firmware update to change. Rates are configuration.

Consumption tax is a different field

consumption_tax (porez na potrošnju) has its own range, 0.003.00, and its own error: hr.invalid_pnp_rate. Do not put it in vat.