> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bookingshake.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List invoices

> Paginated listing of the venue invoices and credit notes, newest first. Items use the full invoice payload of GET /invoices/{id}.

A page may contain fewer than `limit` items even when more data remains (internal scan bound): always rely on `next_cursor`. When `type` and `status` are combined, `status` is applied after the indexed query.



## OpenAPI

````yaml /api-reference/bookingshake-openapi.json get /invoices
openapi: 3.0.3
info:
  title: BookingShake API
  description: >-
    The BookingShake API allows you to programmatically create and manage
    events, bookings, and related resources. Integrate BookingShake with your
    applications to automate event creation, retrieve booking sources, spaces,
    statuses, and custom fields.


    **Rate Limiting:** All endpoints are rate limited per API key. POST
    /events/create allows 10 requests per minute, while GET endpoints allow 60
    requests per minute. Rate limit information is provided in response headers
    (X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset).
  version: 1.0.0
  contact:
    name: BookingShake Support
    email: support@bookingshake.com
    url: https://bookingshake.com
servers:
  - url: https://api.bookingshake.io/api
    description: Production server
security:
  - bearerAuth: []
tags:
  - name: Events
    description: Create and manage events and bookings
  - name: Resources
    description: Retrieve booking sources, spaces, and statuses
  - name: Fields
    description: Retrieve available custom and default fields
  - name: Invoices
    description: Retrieve issued invoices
  - name: Payments
    description: Retrieve payments
  - name: Contacts
    description: Retrieve contacts (people)
  - name: Products
    description: Retrieve the venue product catalog
  - name: Payment Methods
    description: Retrieve the venue payment method catalog
paths:
  /invoices:
    get:
      tags:
        - Invoices
      summary: List invoices
      description: >-
        Paginated listing of the venue invoices and credit notes, newest first.
        Items use the full invoice payload of GET /invoices/{id}.


        A page may contain fewer than `limit` items even when more data remains
        (internal scan bound): always rely on `next_cursor`. When `type` and
        `status` are combined, `status` is applied after the indexed query.
      operationId: listInvoices
      parameters:
        - name: limit
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 25
          description: Maximum items per page
        - name: cursor
          in: query
          schema:
            type: string
          description: Opaque pagination cursor from the previous page
        - name: created_from
          in: query
          schema:
            type: integer
          description: Issued at or after this Unix millisecond timestamp
        - name: created_to
          in: query
          schema:
            type: integer
          description: Issued at or before this Unix millisecond timestamp
        - name: type
          in: query
          schema:
            type: string
            enum:
              - invoice
              - deposit_invoice
              - balance_invoice
              - credit_note
              - deposit_credit_note
              - balance_credit_note
          description: Filter by document type
        - name: status
          in: query
          schema:
            type: string
            enum:
              - ongoing
              - paid
              - canceled
          description: Filter by payment status
      responses:
        '200':
          description: Paginated results
          headers:
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Maximum requests allowed per minute
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests remaining in the current window
            X-RateLimit-Reset:
              schema:
                type: integer
              description: Unix timestamp when the rate limit resets
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: success
                  data:
                    type: object
                    properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/Invoice'
                      next_cursor:
                        type: string
                        nullable: true
                        description: Cursor for the next page, null when exhausted
        '400':
          description: Invalid parameter or cursor
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - bearerAuth: []
components:
  schemas:
    Invoice:
      type: object
      description: >-
        An issued invoice. Identical to the `data` block of the invoice.created
        webhook. All amounts are integer cents; dates are `YYYY-MM-DD` strings
        in the `Europe/Paris` timezone; missing values are explicit `null`.
      properties:
        id:
          type: string
          description: Unique invoice document ID
        number:
          type: string
          description: Invoice number as printed on the PDF
        type:
          type: string
          description: Document type
          enum:
            - invoice
            - deposit_invoice
            - balance_invoice
            - credit_note
            - deposit_credit_note
            - balance_credit_note
        type_code:
          type: integer
          description: UNTDID 1001 document type code (380, 386, 381, or 503)
        status:
          type: string
          nullable: true
          enum:
            - ongoing
            - paid
            - canceled
        title:
          type: string
          nullable: true
          description: Title of the related booking
        language:
          type: string
          nullable: true
          description: >-
            Language the document was issued in (e.g. fr, en). null when no
            language was frozen on the document; in that case line labels fall
            back to French.
        currency:
          type: string
          description: Always EUR
        created_at:
          type: integer
          nullable: true
          description: Issue timestamp, Unix milliseconds
        due_date:
          type: string
          nullable: true
          description: Payment due date, YYYY-MM-DD
        service_start_date:
          type: string
          nullable: true
          description: Start of the service period, YYYY-MM-DD
        service_end_date:
          type: string
          nullable: true
          description: End of the service period, YYYY-MM-DD
        purchase_order_number:
          type: string
          nullable: true
          description: Buyer's purchase order reference
        amount_excl_tax:
          type: integer
          description: Total excluding tax of this document, in cents
        amount_incl_tax:
          type: integer
          description: Total including tax of this document, in cents
        taxable_breakdown:
          type: object
          additionalProperties:
            type: integer
          description: Taxable base per VAT rate (key = rate in %, value = cents)
        tax_breakdown:
          type: object
          additionalProperties:
            type: integer
          description: Tax amount per VAT rate (key = rate in %, value = cents)
        global_discount_excl_tax:
          type: integer
          description: >-
            Global discount excluding tax, in cents (not distributed into lines,
            EN 16931 BG-20)
        lines:
          type: array
          items:
            $ref: '#/components/schemas/InvoiceLine'
        booking_id:
          type: string
          nullable: true
          description: >-
            Opaque correlation key of the booking, shared by all invoices and
            payments of the same booking
        quote_id:
          type: string
          nullable: true
          description: ID of the quote this invoice was generated from
        linked_invoice_id:
          type: string
          nullable: true
          description: 'For credit notes: ID of the corrected invoice'
        deposit_invoices:
          type: array
          items:
            $ref: '#/components/schemas/DepositInvoice'
          description: 'For balance invoices: prior deposit invoices deducted'
        payments:
          type: array
          items:
            $ref: '#/components/schemas/InvoicePayment'
          description: >-
            Payment schedule attached to the invoice, snapshotted at issue time.
            Only carried by the invoice.created webhook; not returned by GET
            /invoices/{id} — read live payment state from GET /payments. Empty
            for credit notes. Excludes security deposits (holds). Sorted by
            due_date then created_at.
        account_id:
          type: string
          nullable: true
          description: ID of the buyer account (company)
        contact_id:
          type: string
          nullable: true
          description: ID of the buyer contact
        seller:
          allOf:
            - $ref: '#/components/schemas/InvoiceSeller'
          nullable: true
        account:
          allOf:
            - $ref: '#/components/schemas/InvoiceAccount'
          nullable: true
        contact:
          allOf:
            - $ref: '#/components/schemas/InvoiceContact'
          nullable: true
        pdf_url:
          type: string
          nullable: true
          description: URL of the generated PDF document
        metadata:
          type: object
          additionalProperties:
            type: string
          description: >-
            Free-form integration key/value pairs (strings), editable via PATCH
            /invoices/{id}. Empty object when unset. Not carried by the
            invoice.created webhook.
    ErrorResponse:
      type: object
      properties:
        message:
          type: string
          description: Error message describing what went wrong
          example: invalid token
    RateLimitResponse:
      type: object
      properties:
        message:
          type: string
          description: Error message
          example: Rate limit exceeded
        data:
          type: object
          properties:
            limit:
              type: integer
              description: Maximum requests allowed per window
              example: 10
            window:
              type: string
              description: Time window duration
              example: 60 seconds
            remaining:
              type: integer
              description: Requests remaining (always 0 on rate limit error)
              example: 0
            resetAt:
              type: string
              format: date-time
              description: ISO 8601 timestamp when the limit resets
              example: '2025-11-17T14:30:00.000Z'
            retryAfter:
              type: integer
              description: Seconds to wait before retrying
              example: 45
    InvoiceLine:
      type: object
      description: >-
        Invoice line item as printed on the PDF. sum(lines[].total_excl_tax) -
        global_discount_excl_tax = amount_excl_tax (within rounding).
      properties:
        name:
          type: string
          nullable: true
          description: >-
            Line label (EN16931 BT-153 item name). For products: the product
            title; for accommodation: the categories/occupancies label; for
            deposit and deduction lines: a generated label. Localized to the
            invoice `language` (falls back to French). null only if no label can
            be resolved.
        description:
          type: string
          nullable: true
          description: >-
            Free-text line description as entered on the product/room and
            printed on the PDF (EN16931 BT-154 item description). Localized to
            the invoice `language` (falls back to French). null when the line
            has none, and for aggregated and deduction lines.
        accounting_code:
          type: string
          nullable: true
          description: >-
            Accounting code of the line, inherited from the product's
            accounting_tag at generation time. null for aggregated and
            deposit-deduction lines.
        quantity:
          type: string
          description: Decimal string (e.g. "25.00")
        unit:
          type: string
          nullable: true
          description: Unit of measure when applicable (e.g. day for accommodation lines)
        unit_price_excl_tax:
          type: integer
          description: Unit price excluding tax, in cents, before discount
        discount:
          type: integer
          description: Total line discount, in cents (0 if none)
        tax_rate:
          type: string
          description: VAT rate as decimal string (e.g. "20.00")
        total_excl_tax:
          type: integer
          description: >-
            Line net amount in cents (can be negative on balance-invoice
            deduction lines)
    DepositInvoice:
      type: object
      description: A prior deposit invoice deducted from a balance invoice.
      properties:
        id:
          type: string
        number:
          type: string
        date:
          type: string
          description: YYYY-MM-DD
        amount_incl_tax:
          type: integer
          description: In cents
    InvoicePayment:
      type: object
      description: >-
        A payment schedule entry attached to an invoice, snapshotted at issue
        time. Same shape as the `data` block of the payment.* webhooks without
        the join keys (invoice_id, invoice_number, quote_id, booking_id): join
        later payment.* events on `id` to follow the payment lifecycle.
      properties:
        id:
          type: string
          description: Unique payment ID, matches the id of payment.* webhook events
        amount:
          type: integer
          nullable: true
          description: Amount in integer cents
        status:
          type: string
          nullable: true
          enum:
            - waiting
            - paid
            - canceled
        name:
          type: string
          nullable: true
          description: Payment label as entered by the user
        method_id:
          type: string
          nullable: true
          description: >-
            Stable ID of the payment method in the venue catalog. Resolve with
            GET /payment-methods. `null` on payments recorded before the catalog
            existed.
        received_date:
          type: string
          nullable: true
          description: Date the payment was received, YYYY-MM-DD
        due_date:
          type: string
          nullable: true
          description: Date the payment is expected, YYYY-MM-DD
        created_at:
          type: integer
          nullable: true
          description: Creation timestamp, Unix milliseconds
        updated_at:
          type: integer
          nullable: true
          description: Last update timestamp, Unix milliseconds
    InvoiceSeller:
      type: object
      description: >-
        Frozen snapshot of the seller (your venue) at issue time. peppol_id is
        the only field read live.
      properties:
        id:
          type: string
          nullable: true
        legal_name:
          type: string
          nullable: true
        company_type:
          type: string
          nullable: true
        company_registration_id:
          type: string
          nullable: true
          description: SIREN
        vat_number:
          type: string
          nullable: true
        share_capital:
          type: string
          nullable: true
          description: Share capital legal mention, verbatim
        company_other_id:
          type: string
          nullable: true
        address_line_1:
          type: string
          nullable: true
        address_line_2:
          type: string
          nullable: true
        postal_code:
          type: string
          nullable: true
        city:
          type: string
          nullable: true
        country:
          type: string
          nullable: true
          description: Verbatim as entered
        country_code:
          type: string
          nullable: true
          description: ISO 3166-1 alpha-2, or null if unresolved
        iban:
          type: string
          nullable: true
        email:
          type: string
          nullable: true
    InvoiceAccount:
      type: object
      description: >-
        Frozen snapshot of the buyer account (company) at issue time. peppol_id
        is read live.
      properties:
        id:
          type: string
          nullable: true
        name:
          type: string
          nullable: true
        legal_name:
          type: string
          nullable: true
        company_type:
          type: string
          nullable: true
        company_registration_id:
          type: string
          nullable: true
          description: SIREN
        siret:
          type: string
          nullable: true
        vat_number:
          type: string
          nullable: true
        rcs_number:
          type: string
          nullable: true
        address_line_1:
          type: string
          nullable: true
        address_line_2:
          type: string
          nullable: true
        postal_code:
          type: string
          nullable: true
        city:
          type: string
          nullable: true
        country:
          type: string
          nullable: true
        country_code:
          type: string
          nullable: true
          description: ISO 3166-1 alpha-2
        billing_address_line_1:
          type: string
          nullable: true
        billing_address_line_2:
          type: string
          nullable: true
        billing_postal_code:
          type: string
          nullable: true
        billing_city:
          type: string
          nullable: true
        billing_country:
          type: string
          nullable: true
        billing_country_code:
          type: string
          nullable: true
          description: ISO 3166-1 alpha-2 for the billing country
        peppol_id:
          type: string
          nullable: true
          description: Peppol participant ID for e-invoicing routing, read live
    InvoiceContact:
      type: object
      description: Frozen snapshot of the buyer contact at issue time.
      properties:
        id:
          type: string
          nullable: true
        first_name:
          type: string
          nullable: true
        last_name:
          type: string
          nullable: true
        email:
          type: string
          nullable: true
        phone:
          type: string
          nullable: true
        landline_phone:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        position:
          type: string
          nullable: true
        company:
          type: string
          nullable: true
        address_line_1:
          type: string
          nullable: true
        address_line_2:
          type: string
          nullable: true
        postal_code:
          type: string
          nullable: true
        city:
          type: string
          nullable: true
        country:
          type: string
          nullable: true
        country_code:
          type: string
          nullable: true
          description: ISO 3166-1 alpha-2
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: >-
        Bearer authentication using your BookingShake API key. Retrieve your API
        key from Settings > Integrations in your BookingShake dashboard.

````