NewStripe: a buyer with a NIF always gets a standard invoice, and the simplified threshold is deprecated
BeeL
Get startedMulti-NIFVeriFactuRulesStripeAPI referenceChangelog
Invoice Series

List invoice series (deprecated)

Scopeseries:read

Deprecated. Use GET /v1/companies/{company_id}/series, which behaves identically.

Retrieves the invoice series of the company in focus. The listing is always scoped to one company; it never spans several.

  • Filters: active restricts to active or inactive series — omit it and you get all of them. document_type returns the series of that type, the only ones that can number it.
  • Pagination (opt-in): send page and/or limit to receive a single page plus a data.pagination block with the totals. Omit both and the response carries the full list in data.series and no pagination block.

Retires on 9 December 2026. See the migration guide for what moved where and what changes when you switch.


GET
/v1/configuration/series
AuthorizationBearer <token>

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

Query Parameters

active?boolean

Filters by activity: true returns only active series, false only inactive ones. Omit it and you get all the series, active and inactive.

document_type?string

Filter by document type

Value in"UNASSIGNED" | "STANDARD" | "SIMPLIFIED" | "CORRECTIVE" | "SIMPLIFIED_CORRECTIVE" | "PROFORMA"
page?integer

Page number (starts at 1). Omit for the full, unpaginated list.

Range1 <= value
limit?integer

Items per page. Omit for the full, unpaginated list.

Range1 <= value <= 100

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://app.beel.es/api/v1/configuration/series"
{
  "success": true,
  "data": {
    "series": [
      {
        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        "document_type": "UNASSIGNED",
        "name": "Main Series",
        "code": "FAC",
        "description": "Series for standard invoices",
        "format": "{CODIGO}-{YYYY}-{NUM:4}",
        "counter_reset": "NEVER",
        "initial_number": 1,
        "active": true,
        "default_series": false,
        "numbering_locked": true,
        "created_at": "2019-08-24T14:15:22Z",
        "next_number": 0,
        "updated_at": "2019-08-24T14:15:22Z"
      }
    ],
    "pagination": {
      "current_page": 1,
      "total_pages": 5,
      "total_items": 87,
      "items_per_page": 20,
      "has_next": true,
      "has_previous": true
    }
  },
  "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 constraint violation.",
    "details": {
      "limit": "must be greater than or equal to 1"
    }
  },
  "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"
  }
}

Create invoice series (deprecated) POST

**Deprecated.** Use `POST /v1/companies/{company_id}/series`, which behaves identically. Creates a new invoice series for the company in focus. - **Code:** must be unique within the company; a code already taken answers `409`. - **Numbering:** `format` must contain `{NUM}` or `{NUM:X}` and only accepts uppercase tokens. `counter_reset` defaults to `ANNUAL`, so a format with no year token has to be sent with `counter_reset: NEVER`. - **Default series:** the first series created for a document type is marked as default even if you send `default_series: false`. **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 invoice series partially (deprecated) PATCH

**Deprecated.** Use `PATCH /v1/companies/{company_id}/series/{series_id}`, which behaves identically. Updates only the fields present in the body, leaving every other field of the series as it is. - **Clearing a field:** a field sent as `null` is cleared — only `description` supports it (see `PatchSeriesRequest`). - **Numbering fields:** the same guard as `PUT`. `code`, `format`, `counter_reset` and `initial_number` are rejected once the series has issued invoices. - **`default_series`:** it is not a way to clear the default. Sending `false` for the series that currently *is* the default is rejected with `DEFAULT_CANNOT_BE_UNMARKED`; promote another series with `PUT /v1/companies/{company_id}/series/{series_id}/default` instead. Sending `false` for a series that is *not* the default stays a no-op `200`. **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.