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

# Summarize what was invoiced

> Totals of the organization's fiscal invoices over a range of calendar days on the organization's own clock (`timezone` in the response). Both bounds are inclusive `YYYY-MM-DD` dates; with neither, the range is today, and with one, it is that single day. A range may span at most 93 days.

An invoice belongs to the day its invoice date names: a date entered without a time files on that date, and an invoice raised from a sale files on the organization's local day. Pro-formas are never included.

`invoiced` excludes `void` and `cancelled` invoices; `byStatus` lists every status, those included. Every amount is grouped by currency - totals in different currencies are never added together. `overdue` counts unpaid invoices in the range whose due date has passed. `byBillingEntity` splits `invoiced` by the company that issued each invoice.




## OpenAPI

````yaml /openapi-platform.json get /v1/platform/invoices/summary
openapi: 3.0.0
info:
  title: 1club Platform API
  version: 1.0.0
  description: >-
    The 1club Platform API lets you programmatically access and manage your
    organization's data.


    ## Official API Contract


    This documentation is the official source of truth for the 1club Platform
    API.

    If an integration relies on undocumented endpoints, fields, response shapes,
    or internal behavior outside this spec, we can't guarantee backward
    compatibility.

    Build against what's documented here to stay stable as the platform evolves.


    ## Authentication


    All requests require a customer API key passed as a Bearer token:


    ```

    Authorization: Bearer 1club_sk_live_...

    ```


    Generate API keys from the admin portal under **Settings > API Tokens**.

    The key is tied to your organization - all responses are scoped to your
    org's data.


    ## Rate Limiting


    - **100 requests per minute** per API key

    - When exceeded, the API returns `429 Too Many Requests` with a
    `Retry-After` header

    - Rate limit headers are included in every response:
      - `X-RateLimit-Limit` - max requests per window
      - `X-RateLimit-Remaining` - requests remaining
      - `X-RateLimit-Reset` - seconds until the window resets

    ## Errors


    | Status | Meaning |

    |--------|---------|

    | `400` | Invalid request parameters |

    | `401` | Missing or invalid API key |

    | `404` | Resource not found (or doesn't belong to your organization) |

    | `429` | Rate limit exceeded |

    | `500` | Internal server error |
  contact:
    name: 1club API Support
    email: support@1club.ai
servers:
  - url: https://api.1club.ai
    description: Production API
security:
  - customerApiAuth: []
tags: []
paths:
  /v1/platform/invoices/summary:
    get:
      tags:
        - Invoices
      summary: Summarize what was invoiced
      description: >
        Totals of the organization's fiscal invoices over a range of calendar
        days on the organization's own clock (`timezone` in the response). Both
        bounds are inclusive `YYYY-MM-DD` dates; with neither, the range is
        today, and with one, it is that single day. A range may span at most 93
        days.


        An invoice belongs to the day its invoice date names: a date entered
        without a time files on that date, and an invoice raised from a sale
        files on the organization's local day. Pro-formas are never included.


        `invoiced` excludes `void` and `cancelled` invoices; `byStatus` lists
        every status, those included. Every amount is grouped by currency -
        totals in different currencies are never added together. `overdue`
        counts unpaid invoices in the range whose due date has passed.
        `byBillingEntity` splits `invoiced` by the company that issued each
        invoice.
      parameters:
        - in: query
          name: startDate
          schema:
            type: string
            format: date
          description: First day, inclusive. Defaults to endDate, or today.
        - in: query
          name: endDate
          schema:
            type: string
            format: date
          description: Last day, inclusive. Defaults to startDate.
        - in: query
          name: billingEntityId
          schema:
            type: integer
          description: Only invoices issued by this billing entity
      responses:
        '200':
          description: Invoice totals for the range
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformInvoiceSummary'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformUnauthorized'
        '403':
          description: Missing `invoices:read` scope
        '429':
          $ref: '#/components/responses/PlatformRateLimited'
      security:
        - customerApiAuth: []
components:
  schemas:
    PlatformInvoiceSummary:
      type: object
      properties:
        timezone:
          type: string
          description: >-
            The organization's timezone, whose calendar days the range is read
            on
        startDate:
          type: string
          format: date
        endDate:
          type: string
          format: date
        billingEntityId:
          type: integer
          nullable: true
        invoiced:
          type: array
          description: >-
            One entry per currency; void and cancelled invoices excluded. Empty
            when nothing was invoiced.
          items:
            $ref: '#/components/schemas/PlatformInvoiceTotals'
        byStatus:
          type: array
          description: >-
            Every status present in the range, per currency, void and cancelled
            included
          items:
            type: object
            properties:
              status:
                type: string
              currency:
                type: string
              count:
                type: integer
              totalAmount:
                type: number
        overdue:
          type: array
          description: Unpaid invoices in the range whose due date has passed, per currency
          items:
            type: object
            properties:
              currency:
                type: string
              count:
                type: integer
              totalAmount:
                type: number
        byBillingEntity:
          type: array
          description: '`invoiced`, split by the billing entity that issued each invoice'
          items:
            type: object
            properties:
              billingEntityId:
                type: integer
              name:
                type: string
                nullable: true
              invoiced:
                type: array
                items:
                  $ref: '#/components/schemas/PlatformInvoiceTotals'
    PlatformInvoiceTotals:
      type: object
      description: >-
        Invoices in one currency, added up. Amounts in different currencies are
        never summed together.
      properties:
        currency:
          type: string
        count:
          type: integer
        subtotal:
          type: number
          description: Before tax
        taxAmount:
          type: number
        totalAmount:
          type: number
          description: Tax included
    PlatformError:
      type: object
      properties:
        error:
          type: string
        code:
          type: string
          description: >-
            A stable, machine-readable reason, when the error has one (e.g.
            `CONTACT_EXISTS`).
        details:
          type: object
          additionalProperties: true
          description: >-
            Structured values behind the error. A 409 naming an existing record
            carries its id here, e.g. `contactId`.
  responses:
    PlatformBadRequest:
      description: Invalid request (bad parameters, or a body that fails validation)
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PlatformError'
    PlatformUnauthorized:
      description: Invalid or missing API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PlatformError'
    PlatformRateLimited:
      description: Rate limit exceeded
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PlatformError'
  securitySchemes:
    customerApiAuth:
      type: http
      scheme: bearer
      description: >-
        Organization-scoped bearer credential: a customer API key
        (1club_sk_live_...) or an MCP OAuth access token.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.