Tabba.
IntegrationerSådan virker TabbaFeatures

© 2026 Tabba. Alle rettigheder forbeholdes.

Udviklere
Udviklere
Udviklere
Overview
Take a line of a recurring series away DELETEList the recurring series of the company GETRead one recurring series GETList the occurrences of a recurring series GETRead one occurrence of a recurring series GETChange the header fields of a recurring series that the body states PATCHChange a line of a recurring series PATCHCreate a recurring series POSTCancel a recurring series POSTAdd a line to a recurring series POSTIssue an occurrence of a recurring series now POST

Andre spor

AI clientsREST API
Recurring series

Add a line to a recurring series

With this-and-following the line is a recurring one from the occurrence period names (the start of the series where it is left out): earlier occurrences never see it. With this-only it is a one-time line on that one occurrence. The line is placed after the lines the occurrence has: a new line never moves one that was there. Occurrences that are already invoices, and not issued, follow the change. **Not idempotent**: a line carries no key of its own, and adding twice adds two.

POST
/recurring-series/{ref}/lines

Authorization

bearerAuth
AuthorizationBearer <token>

An API key minted by an admin under Settings → Developers. It is bound to one company and has a scope: read, or read_write. A request without one, or with one that is not ours, is answered 401 and metered by its client address (x-rate-limits).

In: header

Path Parameters

ref*string

The record's id, or ext:<external_id> for the record that carries your own key.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/recurring-series/string/lines" \  -H "Content-Type: application/json" \  -d '{    "scope": "this-and-following",    "line": {      "product": "string",      "recognition_method": "value",      "assignees": [        {          "user": "string"        }      ]    }  }'
{  "object": "series_line",  "id": "string",  "kind": "series",  "scope": "this-and-following",  "period": "string",  "series_status": "draft"}

Cancel a recurring series POST

A series ends by date, and there is no cancelled state. The series bills up to `end_date`: the un-issued occurrence the date falls in is cut and prorated, un-issued occurrences past it are dropped, and what was ISSUED past it is handed back with credit notes. Those are queued and booked by a job, so the request does not wait for the platform: `credit_notes` lists each as it stands (`queued`, or `booked`). An end set to today or to a day that has passed issues the occurrences that are due at once. A series that has not started and has issued nothing is deleted instead (`discarded`). The body may be left out. **Sending the same end date again is safe**: it is never refused, writes no second credit note, states the credit notes as they now stand, and has any that is not booked attempted again. A different date is refused once the end has passed (`END_HAS_PASSED`) or a credit note has settled it (`END_CREDITED`).

Issue an occurrence of a recurring series now POST

The occurrence is made an invoice if it is not one yet, and that invoice is issued as `POST /invoices/{ref}/issue` issues one: the answer is the issued invoice, sending it again is safe, and a document that booked and could not be delivered is a 200 carrying `send_error`. An occurrence made an invoice by an attempt that did not book stays an invoice, and the next attempt issues that one. Refused with `OCCURRENCE_SKIPPED` (409) for an occurrence an admin skipped, `SERIES_NOT_ACTIVE` (409) for a draft series and `OCCURRENCE_HAS_NO_LINES` (422) where the series states no line for the occurrence. Metered against the `platform_write` bucket as well as `default`.

scope*string

this-and-following: from the occurrence period names, onward. this-only: on that occurrence alone.

Value in

  • "this-and-following"
  • "this-only"
period?string

The occurrence the line is on, or starts from: the first day of its billing period. Left out with this-and-following: the start of the series. Required with this-only.

Match^\d{4}-\d{2}-\d{2}$
line*