Update user preferred language
Scopeconfiguration:writeDeprecated — use PATCH /v1/me instead. The preferred language belongs to the
person, not to a company's configuration.
Updates the authenticated user's preferred language.
- What it affects: the language of the emails BeeL sends to the user and of the
translated labels the API returns, such as the invoice template names in
GET /v1/invoice-customization-options. - Supported languages:
es(Spanish),en(English) andca(Catalan).
Keys are prefixed beel_sk_, and each one carries the scopes it was created with: a key
short of the scope an operation needs is answered 403. The scope an operation requires
is shown next to its title, and the full catalogue lives in the Scopes reference.
Keys are created from the BeeL dashboard. They are secret credentials: do not share them or commit them to source control.
In: header
Supported languages
"es" | "en" | "ca"Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X PUT "https://app.beel.es/api/v1/configuration/language" \ -H "Content-Type: application/json" \ -d '{ "language": "ca" }'{
"success": true,
"data": {
"language": "es"
},
"meta": {
"timestamp": "2025-01-15T10:30:00Z",
"request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
}
}{
"success": false,
"error": {
"code": "BAD_REQUEST",
"message": "Invalid request"
},
"meta": {
"timestamp": "2025-01-15T10:30:00Z",
"request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
}
}{
"success": false,
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication is required to access this resource"
},
"meta": {
"timestamp": "2025-01-15T10:30:00Z",
"request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
}
}{
"success": false,
"error": {
"code": "FORBIDDEN",
"message": "You do not have permission to access this resource"
},
"meta": {
"timestamp": "2025-01-15T10:30:00Z",
"request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
}
}{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Validation error",
"details": {
"field_name": "Field is required"
}
},
"meta": {
"timestamp": "2025-01-15T10:30:00Z",
"request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
}
}{
"success": false,
"error": {
"code": "INTERNAL_ERROR",
"message": "Internal server error"
},
"meta": {
"timestamp": "2025-01-15T10:30:00Z",
"request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
}
}{
"success": false,
"error": {
"code": "UNSUPPORTED_MEDIA_TYPE",
"message": "Unsupported media type: text/plain. Supported: application/json"
},
"meta": {
"timestamp": "2025-01-15T10:30:00Z",
"request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
}
}Update VeriFactu configuration PUT
**Deprecated.** Use `PUT /v1/companies/{company_id}/verifactu-configuration`, which behaves identically. Updates the VeriFactu configuration of the company (NIF) in focus. - **Writable fields:** only `enabled` and `apply_by_default`. The rest of the returned configuration (`status`, `signed`, `activated`, `nif_status`) is resolved server-side. - **Full replacement:** both fields are required — this PUT replaces the whole state, it is not a partial merge, so omitting one is a client error and not a silent `false`. - **Coherence:** if `enabled` is false, `apply_by_default` must be false too. The other way round answers `422` `APPLY_BY_DEFAULT_REQUIRES_ENABLED`. ## Turning it off Setting `enabled` to false stops sending invoices to the AEAT and starts the deregistration of the NIF with the VeriFactu provider. It does **not** deactivate the NIF: the activation is a fact of its own for the (company, environment) pair, so issuing carries on and `issuing-readiness` stays `ready`. Releasing the NIF is always `DELETE /v1/companies/{company_id}/activations`, with its own guarantees.
Get invoice customization options GET
**Deprecated.** Use `GET /v1/invoice-customization-options`, which returns exactly the same body. The catalogue is the same for every credential, so it does not belong under `/v1/configuration`. Returns, in `template_types`, the catalogue of PDF templates a NIF can be rendered with. - **Fields:** each entry carries the `code` to send as `template_type`, plus a `name` and a short `description` translated into the language of the user the credential belongs to. - **Removed fields:** `suggested_colors`, `features` and `preview_url` are no longer returned; the invoice customization accepts any 6-digit hexadecimal colour, so pick your own.