CompanyTaxConfiguration
Update the tax configuration of a company
Updates the tax configuration of a company. Fields you omit keep their current value; default_main_tax, when sent, replaces the stored one wholesale.
- Regime coherence: the main tax and its VeriFactu regime key must be coherent. Regime key 18 (equivalence surcharge) only exists for IVA, so pairing it with any other regime answers 422 INVALID_REGIME_KEY_FOR_TAX_TYPE, with details naming the rejected key, the tax type and the keys that type admits.
- Surcharge: applying the surcharge without regime key 18 answers 422 RECARGO_REQUIRES_REGIME_RE.
- Exemption reason: default_exemption_reason travels with default_main_tax — sending the tax without a reason clears the stored one, and sending only the reason applies it to the tax already stored.
- Coherence of the result: the configuration as it stands after the change is checked as a whole, and answers 422 with one of these codes: MAIN_TAX_REQUIRED (there is no default_main_tax, stored or sent), IRPF_REQUIRED_WHEN_NOT_EXEMPT (apply_irpf without irpf_exempt and no default_irpf_rate), RECARGO_EQUIVALENCIA_REQUIRED (apply_equivalence_surcharge without default_equivalence_surcharge), RECARGO_IVA_COMBINATION_INVALID (a surcharge rate that does not go with the main IVA rate), EXEMPTION_REASON_NOT_ALLOWED_AS_DEFAULT (a default_exemption_reason that only makes sense line by line), EXEMPTION_REASON_REQUIRES_ZERO_RATE (an exemption reason on a main tax that is not 0%), ZERO_RATE_REQUIRES_EXEMPTION_REASON (a 0% main tax with no reason) or EXEMPTION_REASON_TEXT_REQUIRED (a reason that needs default_exemption_reason_text and has none).
- First write: two concurrent requests that both create the configuration answer the loser with 409 TAX_CONFIG_CONFLICT; retrying it updates the one that won.
put/v1/companies/{company_id}/tax-configuration
Request
- Base URL: https://app.beel.es/api
- URL: https://app.beel.es/api/v1/companies/{company_id}/tax-configuration
- Auth: HTTP bearer
Request body
Example request
{
"default_main_tax": {
"type": "IVA",
"percentage": 21,
"regime_key": "01"
},
"default_exemption_reason": "EXENTA_ART_20",
"default_equivalence_surcharge": 5.2,
"default_irpf_rate": 15,
"default_payment_method": "BANK_TRANSFER"
}Response
Configuration updated successfully
Example response
{
"success": true,
"data": {
"default_main_tax": {
"type": "IVA",
"percentage": 21,
"regime_key": "01"
},
"default_exemption_reason": "EXENTA_ART_20",
"default_equivalence_surcharge": 5.2,
"default_irpf_rate": 15,
"default_payment_method": "BANK_TRANSFER",
"withholding_options": {
"allowed_irpf_rates": [
0,
19,
24
]
}
},
"meta": {
"timestamp": "2025-01-15T10:30:00Z",
"request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
}
}Changes
No recorded changes to this operation across all 1 revision of this API.