InvoiceDelivery

Send multiple invoices by email

Sends one email carrying the PDFs of the requested invoices as attachments.

  • Deprecated: use POST /v1/companies/{company_id}/invoices/deliveries, which sends the same email from the same body, with recipients declared as required there.
  • Limits: up to 200 invoices per call, and the attachments are capped at 25MB.
  • Eligible invoices: only invoices in ISSUED, SENT, PAID or OVERDUE can be sent.
  • Partial failures: invoices whose PDF cannot be attached are reported in failures and the message is still sent with the rest.

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

post/v1/invoices/bulk/send

Request

  • Base URL: https://app.beel.es/api
  • URL: https://app.beel.es/api/v1/invoices/bulk/send
  • Auth: HTTP bearer

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.

Request body

invoice_idsUUID[] required

List of invoice IDs to send

recipientsEmail[]

Email recipients. At least one is required: no address is inferred from any profile, and a request without recipients is rejected.

ccEmail[]

CC recipients

subjectstring

Custom email subject. If not provided, uses default template.

messagestring

Custom message body. If not provided, uses default template.

language'es' | 'en' | 'ca'

Supported languages: es Spanish, en English, ca Catalan.

Example request

{
  "invoice_ids": [
    "550e8400-e29b-41d4-a716-446655440000"
  ],
  "recipients": [
    "user@example.com"
  ],
  "cc": [
    "user@example.com"
  ],
  "language": "es"
}

Response

Email sent successfully

successboolean required

Example response

{
  "success": true,
  "data": {
    "email_id": "550e8400-e29b-41d4-a716-446655440000",
    "sent_to": [
      "user@example.com"
    ],
    "failures": [
      {
        "invoice_id": "550e8400-e29b-41d4-a716-446655440000"
      }
    ]
  },
  "meta": {
    "timestamp": "2025-01-15T10:30:00Z",
    "request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
  }
}

Changes

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