Update VeriFactu configuration (deprecated)
Scopeconfiguration:writeDeprecated. Use PUT /v1/companies/{company_id}/verifactu-configuration, which
behaves identically.
Updates the VeriFactu configuration of the company in focus.
- Writable fields: only
enabled. The rest of the returned configuration (status,signed,activated,nif_status) is resolved server-side. - Full replacement:
enabledis required — this PUT replaces the whole state, it is not a partial merge, so omitting it is a client error and not a silentfalse. - Turning it on registers the NIF for VeriFactu submission in the same call,
atomically: if the registration is refused nothing is persisted and the response carries
the reason. In Live it requires a signed and validated AEAT representation first, or
422 VERIFACTU_REPRESENTATION_REQUIRED. - Sandbox is always on:
enabled: falsethere answers422VERIFACTU_ALWAYS_ON_IN_SANDBOX.
Turning it off
Setting enabled to false stops sending invoices to the AEAT and starts deregistering
the NIF from VeriFactu submission. 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.
Retires on 9 December 2026. See the migration guide for what moved where and what changes when you switch.
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
Whether this tax ID is under the VeriFactu regime in the environment of the request.
It is a fact about the taxpayer, not about a document: while it is on, every invoice of this tax ID is registered with the AEAT; while it is off, none is. There is no per-invoice choice.
Turning it on registers the tax ID for VeriFactu submission in the same call,
atomically: if the registration is refused, nothing is persisted and the response
carries the reason.
In Live it requires a signed and validated AEAT representation first
(VERIFACTU_REPRESENTATION_REQUIRED).
In sandbox VeriFactu is always on and cannot be turned off
(VERIFACTU_ALWAYS_ON_IN_SANDBOX): nothing there reaches the real AEAT.
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/verifactu" \ -H "Content-Type: application/json" \ -d '{ "enabled": true }'{
"success": true,
"data": {
"enabled": true,
"nif_status": "ACTIVATED",
"nif_registered_at": "2019-08-24T14:15:22Z",
"status": "DISABLED",
"signed": true,
"activated": true,
"pdf_generated": true
},
"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": "The provided data is not valid.",
"details": {
"legal_name": "The field 'legal_name' cannot be empty",
"recipient.address.postal_code": "Contains invalid characters."
}
},
"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"
}
}Get VeriFactu configuration (deprecated) GET
**Deprecated.** Use `GET /v1/companies/{company_id}/verifactu-configuration`, which behaves identically. Returns the VeriFactu configuration in force for the company in focus. - **Writable state:** `enabled` says whether this tax ID is under the VeriFactu regime in this environment: while it is on, every invoice of the NIF is registered with the AEAT. - **Resolved state:** `status`, `signed`, `activated` and `nif_status` are read-only and resolved server-side. **Retires on 9 December 2026.** See the [migration guide](https://docs.beel.es/changelog/resources-under-the-nif) for what moved where and what changes when you switch.
Update user preferred language (deprecated) PUT
**Deprecated — 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) and `ca` (Catalan). **Retires on 9 December 2026.** See the [migration guide](https://docs.beel.es/changelog/resources-under-the-nif) for what moved where and what changes when you switch.