Skip to main content
POST
/
vat-rates
Add a firm-scoped VAT rate
curl --request POST \
  --url https://api.contazen.ro/v1/vat-rates \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "percent": 50,
  "description": "<string>"
}
'
{
  "success": true,
  "object": "vat_rate",
  "data": {
    "id": "<string>",
    "percent": 19,
    "description": "19% - TVA",
    "is_used": true,
    "can_be_deleted": true,
    "is_custom": true
  },
  "created": true
}

Overview

Adds a custom VAT rate row to firm_vat. If a row with the same percent already exists, the existing row is returned with created: false — the endpoint is idempotent by percent. When description is omitted, the standard description from FirmVat::getOptions() is used for matching percents (e.g. 19% - TVA); otherwise a generic <percent>% - TVA label is generated.

Preconditions

  • percent must be between 0 and 100.
  • Non-VAT-payer firms (vat_type = none on the parent) get 400 non_vat_payer — standard rates from the catalog still appear in the available array returned by GET /vat-rates, but custom rows are rejected.

Authorizations

Authorization
string
header
required

Use your API key (sk_live_xxx or sk_test_xxx)

Body

application/json
percent
integer
required
Required range: 0 <= x <= 100
description
string

Response

Rate returned (created or already present)

success
boolean
object
enum<string>
Available options:
vat_rate
data
object
created
boolean

false when an equivalent rate already existed