RecurringInvoices

Generate an invoice now from a recurring template

Deprecated. Use POST /v1/companies/{company_id}/recurring-invoices/{recurring_invoice_id}/generate, which behaves identically.

Runs the generation of a recurring template immediately, out of its schedule.

  • It brings the upcoming occurrence forward, it does not add one: the call consumes the period that was pending, so the invoice is created now and next_generation advances one period.
  • next_generation in the response: the template's next date after this call, or null when the advance took the template past its end_date and its status is now COMPLETED.
  • Templates with draft_in_advance: when the pending period's scheduled date is today or earlier, the invoice is issued on the spot, dated today. When it is still ahead, the call creates the review draft with the scheduled date.

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

post/v1/recurring-invoices/{recurring_invoice_id}/generate

Request

  • Base URL: https://app.beel.es/api
  • URL: https://app.beel.es/api/v1/recurring-invoices/{recurring_invoice_id}/generate
  • Auth: HTTP bearer

Path parameters

recurring_invoice_idstring uuid required

Unique identifier (UUID) of the recurring invoice template, as returned when it is created or listed. A template of another company answers 404 with RECURRING_NOT_FOUND, exactly like one that does not exist.

Headers

Idempotency-Keystring

Idempotency key to prevent duplicates in sensitive operations.

  • Any unique client-generated string (e.g. an order id). A UUID also works but is not required
  • Allowed characters: letters, digits, _ and - (max 255 chars)
  • Retrying with the same key replays the first response when it was a success (2xx) or a server error (5xx): same status and body, plus the header Idempotency-Replay: true. After a 5xx, check whether the operation took effect before retrying with a new key
  • A 4xx is not stored: the key is released, so the corrected request can reuse it
  • Stored responses expire 24 hours after processing

The key is scoped per user and environment, and bound to the request body, so retrying after a network timeout replays the stored response instead of repeating the operation.

StatusCodeWhen
400INVALID_IDEMPOTENCY_KEYThe key breaks the format rules above.
409IDEMPOTENCY_KEY_PROCESSINGThe first request is still in flight. Wait for the Retry-After seconds (2) and retry with the same key.
409IDEMPOTENCY_KEY_MISMATCHThe key was already used with a different body. Use a new key.

Response

Invoice generated successfully

successboolean required

Example response

{
  "success": true,
  "meta": {
    "timestamp": "2025-01-15T10:30:00Z",
    "request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.