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

# Load recent invoice and credit-note events for Zapier

> Requires finance_invoice_webhooks:read. Requires an active Zapier OAuth grant, attributed company administrator consent and Zapier access for the company. The token and current grant must both contain the required scope. These accounting scopes do not require health-data or private-communication consent. Existing connections need a new explicit authorization to gain the accounting scopes. Public API rate limits and the Retry-After response header apply. Returns at most three real company invoice.created events, newest first, without pagination. An empty history returns an empty array. Both invoices and credit notes use invoice.created; filter data.invoiceType by Invoice or CreditNote for separate triggers. Events contain document references; finance_invoices:read and finance_invoice_pdfs:read separately authorize document details and PDFs.



## OpenAPI

````yaml /openapi/public-v1.json get /public/v1/zapier/accounting/events
openapi: 3.1.0
info:
  title: FITsociety Public API v1
  version: 1.0.0
  description: >-
    Integrate with FITsociety through `/public/v1`. Use OAuth client credentials
    to obtain a Bearer access token, then call the endpoints available to the
    authenticated company and granted scopes.
  contact:
    name: FITsociety Engineering
servers:
  - url: https://api.fitsociety.io
    description: Production
security: []
tags:
  - name: Health
    description: Public API token health checks.
  - name: OAuth
    description: Public API OAuth endpoints for server-to-server client credentials.
  - name: Platform
    description: Inspect Public API client context, capabilities, scopes, and audit logs.
  - name: Company Catalog
    description: Read and manage company profile metadata and locations.
  - name: Clients
    description: >-
      Create and manage clients through the Public API using Bearer access
      tokens.
  - name: Coaches
    description: Retrieve coaches for the authenticated company via integrations.
  - name: Calendar Events
    description: Read Public API calendar events.
  - name: Calendar Templates
    description: >-
      Read and manage event types and event templates used by calendar
      availability and bookings.
  - name: Calendar Extensions
    description: >-
      Read recurring bookings, booking requests, calendar tasks, and
      availability closure metadata.
  - name: Availability
    description: Read bookable availability slots and signed availability tokens.
  - name: Availability Management
    description: >-
      Manage coach and location availability templates used to derive bookable
      slots.
  - name: Bookings
    description: Read and manage Public API bookings.
  - name: Finance
    description: >-
      Read invoices, transactions, products, subscriptions, and memberships, and
      manage finance actions.
  - name: Credits
    description: >-
      Read company-wide and client-scoped credit allocations and mutations, and
      adjust credits.
  - name: Exports
    description: >-
      Create and monitor asynchronous company exports through Public API Bearer
      endpoints.
  - name: Webhooks
    description: >-
      Manage outbound webhook subscriptions and inspect delivery attempts
      through Public API Bearer endpoints.
  - name: Measurements
    description: Read and write client measurement entries.
  - name: Progress Photos
    description: Read client progress photo metadata and short-lived signed media URLs.
  - name: Forms
    description: Read, create, update, and archive company form templates.
  - name: Intakes
    description: Assign intake forms and read client intake assignments and submissions.
  - name: Check-ups
    description: >-
      Schedule and cancel client check-ups and read their status and
      submissions.
  - name: Documents
    description: >-
      Read client document and folder metadata, register external document
      links, update metadata, and archive documents from Public API listings.
      Binary upload, permanent deletion, and company-wide document management
      are not exposed.
  - name: Habits
    description: Read habits and habit entries.
  - name: Goals
    description: Read client goal summaries.
  - name: Conversations
    description: >-
      Read and manage direct and group chat conversations through the Public
      API.
  - name: Reports
    description: Read aggregate attendance, revenue, and retention summaries.
  - name: Workout
    description: >-
      Workout libraries, programmes, client plans, calendars, sessions, groups,
      settings and progress. AI operations are excluded.
paths:
  /public/v1/zapier/accounting/events:
    get:
      tags:
        - Webhooks
      summary: Load recent invoice and credit-note events for Zapier
      description: >-
        Requires finance_invoice_webhooks:read. Requires an active Zapier OAuth
        grant, attributed company administrator consent and Zapier access for
        the company. The token and current grant must both contain the required
        scope. These accounting scopes do not require health-data or
        private-communication consent. Existing connections need a new explicit
        authorization to gain the accounting scopes. Public API rate limits and
        the Retry-After response header apply. Returns at most three real
        company invoice.created events, newest first, without pagination. An
        empty history returns an empty array. Both invoices and credit notes use
        invoice.created; filter data.invoiceType by Invoice or CreditNote for
        separate triggers. Events contain document references;
        finance_invoices:read and finance_invoice_pdfs:read separately authorize
        document details and PDFs.
      operationId: getPublicV1ZapierAccountingEvents
      parameters:
        - name: event
          in: query
          required: true
          schema:
            type: string
            enum:
              - invoice.created
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PublicApiSuccessResponse'
                  - type: object
                    properties:
                      data:
                        type: array
                        maxItems: 3
                        items:
                          type: object
                          required:
                            - id
                            - type
                            - occurredAt
                            - data
                          properties:
                            id:
                              type: string
                              pattern: ^[a-f0-9]{24}$
                            type:
                              type: string
                              enum:
                                - invoice.created
                            occurredAt:
                              type: string
                              format: date-time
                              description: Event time in UTC.
                            data:
                              type: object
                              properties:
                                invoiceId:
                                  type: string
                                  pattern: ^[a-f0-9]{24}$
                                invoiceNumber:
                                  type: string
                                invoiceType:
                                  type: string
                                  enum:
                                    - Invoice
                                    - CreditNote
                                clientId:
                                  type: string
                                  description: >-
                                    Client reference, or an empty string for an
                                    external recipient.
                                status:
                                  type: string
                                  enum:
                                    - Pending
                                    - Paid
                                    - Chargeback
                                paymentStatus:
                                  type: string
                                  enum:
                                    - None
                                    - NeedProcessing
                                    - Created
                                    - Failed
                                source:
                                  type: string
                                createdAt:
                                  type: string
                                  format: date-time
              examples:
                success:
                  summary: Successful response
                  value:
                    data:
                      - id: 66f7b8b1e13c8d25f4d3d90a
                        type: invoice.created
                        occurredAt: '2026-07-14T10:00:00.000Z'
                        data:
                          invoiceId: 66f7b8b1e13c8d25f4d3d90a
                          invoiceNumber: string
                          invoiceType: Invoice
                          clientId: 66f7b8b1e13c8d25f4d3d90a
                          status: Pending
                          paymentStatus: None
                          source: string
                          createdAt: '2026-07-14T10:00:00.000Z'
                    meta:
                      requestId: 4f849d7d-f4f1-45cc-b4b7-3984a3d17f83
                      rateLimit:
                        limit: 10
                        remaining: 9
                        resetSeconds: 1
        '400':
          description: >-
            Unsupported event, invalid callback URL or subscription ID, or
            missing or invalid Idempotency-Key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
              examples:
                invalidRequest:
                  summary: Invalid request
                  value:
                    error:
                      code: 400
                      key: request.invalid
                      message: The request is invalid.
                    meta:
                      requestId: 4f849d7d-f4f1-45cc-b4b7-3984a3d17f83
                      rateLimit:
                        limit: 10
                        remaining: 9
                        resetSeconds: 1
        '401':
          description: Missing, expired or revoked bearer token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
              examples:
                missingBearer:
                  summary: Missing Bearer token
                  value:
                    error:
                      code: 401
                      key: auth.missing_bearer
                      message: Authorization Bearer token is required.
                    meta:
                      requestId: 4f849d7d-f4f1-45cc-b4b7-3984a3d17f83
                      rateLimit:
                        limit: 10
                        remaining: 9
                        resetSeconds: 1
                invalidToken:
                  summary: Invalid or expired token
                  value:
                    error:
                      code: 401
                      key: auth.invalid_token
                      message: The access token is invalid or expired.
                    meta:
                      requestId: 4f849d7d-f4f1-45cc-b4b7-3984a3d17f83
                      rateLimit:
                        limit: 10
                        remaining: 9
                        resetSeconds: 1
                invalidClient:
                  summary: Inactive or revoked client
                  value:
                    error:
                      code: 401
                      key: auth.invalid_client
                      message: The Public API client is inactive or revoked.
                    meta:
                      requestId: 4f849d7d-f4f1-45cc-b4b7-3984a3d17f83
                      rateLimit:
                        limit: 10
                        remaining: 9
                        resetSeconds: 1
        '403':
          description: >-
            Missing scope, company consent, active Zapier grant or provider
            access
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
              examples:
                insufficientScopes:
                  summary: Missing required scope
                  value:
                    error:
                      code: 403
                      key: scopes.insufficient
                      message: The access token does not include the required scope.
                      details:
                        requiredScopes:
                          - required:scope
                    meta:
                      requestId: 4f849d7d-f4f1-45cc-b4b7-3984a3d17f83
                      rateLimit:
                        limit: 10
                        remaining: 9
                        resetSeconds: 1
        '404':
          description: >-
            Not found. The requested company-scoped resource does not exist or
            is not accessible to this token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
              examples:
                notFound:
                  summary: Resource not found
                  value:
                    error:
                      code: 404
                      key: resource.not_found
                      message: The requested Public API resource was not found.
                    meta:
                      requestId: 4f849d7d-f4f1-45cc-b4b7-3984a3d17f83
                      rateLimit:
                        limit: 10
                        remaining: 9
                        resetSeconds: 1
        '409':
          description: >-
            The callback already subscribes to another event, or an idempotency
            conflict occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
              examples:
                idempotencyConflict:
                  summary: Idempotency-Key conflict
                  value:
                    error:
                      code: 409
                      key: idempotency.conflict
                      message: >-
                        Idempotency-Key was already used with a different
                        request.
                    meta:
                      requestId: 4f849d7d-f4f1-45cc-b4b7-3984a3d17f83
                      rateLimit:
                        limit: 10
                        remaining: 9
                        resetSeconds: 1
                idempotencyInProgress:
                  summary: Idempotency-Key in progress
                  value:
                    error:
                      code: 409
                      key: idempotency.in_progress
                      message: >-
                        Idempotency-Key is already processing for this Public
                        API client.
                    meta:
                      requestId: 4f849d7d-f4f1-45cc-b4b7-3984a3d17f83
                      rateLimit:
                        limit: 10
                        remaining: 9
                        resetSeconds: 1
        '422':
          description: Missing or empty body on a subscription request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
              examples:
                emptyBody:
                  summary: Empty or invalid JSON object body
                  value:
                    error:
                      code: 422
                      key: EMPTY_BODY
                      message: Request body must be a non-empty JSON object.
                    meta:
                      requestId: 4f849d7d-f4f1-45cc-b4b7-3984a3d17f83
                      rateLimit:
                        limit: 10
                        remaining: 9
                        resetSeconds: 1
        '429':
          description: Rate limited; retry after the Retry-After header delay
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
              examples:
                rateLimitExceeded:
                  summary: Rate limit exceeded
                  value:
                    error:
                      code: 429
                      key: rate_limit.exceeded
                      message: Too many Public API requests. Retry later.
                    meta:
                      requestId: 4f849d7d-f4f1-45cc-b4b7-3984a3d17f83
                      rateLimit:
                        limit: 10
                        remaining: 0
                        resetSeconds: 1
                        retryAfterSeconds: 1
        '500':
          description: The request could not be completed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
              examples:
                serverInternalError:
                  summary: Unexpected server error
                  value:
                    error:
                      code: 500
                      key: server.internal_error
                      message: An unexpected Public API server error occurred.
                    meta:
                      requestId: 4f849d7d-f4f1-45cc-b4b7-3984a3d17f83
                      rateLimit:
                        limit: 10
                        remaining: 9
                        resetSeconds: 1
      security:
        - PublicBearerAuth: []
      x-codeSamples:
        - lang: Shell
          label: cURL
          source: >-
            curl
            'https://api.fitsociety.io/public/v1/zapier/accounting/events?event=invoice.created'
            -H 'Authorization: Bearer <zapier_accounting_access_token>'
components:
  schemas:
    PublicApiSuccessResponse:
      type: object
      additionalProperties: false
      required:
        - data
        - meta
      properties:
        data:
          type: object
        meta:
          $ref: '#/components/schemas/PublicApiMeta'
    PublicApiError:
      type: object
      additionalProperties: false
      required:
        - error
        - meta
      properties:
        error:
          type: object
          additionalProperties: false
          required:
            - code
            - key
            - message
          properties:
            code:
              type: integer
              example: 401
            key:
              type: string
              example: auth.invalid_token
            message:
              type: string
              example: The access token is invalid.
            details:
              type: object
              additionalProperties: true
        meta:
          $ref: '#/components/schemas/PublicApiMeta'
    PublicApiMeta:
      type: object
      additionalProperties: false
      required:
        - requestId
      properties:
        requestId:
          type: string
          description: Stable request correlation id. Mirrors `X-Request-Id` when supplied.
          example: 4f849d7d-f4f1-45cc-b4b7-3984a3d17f83
        rateLimit:
          $ref: '#/components/schemas/PublicApiRateLimitMeta'
    PublicApiRateLimitMeta:
      type: object
      additionalProperties: false
      properties:
        limit:
          type: integer
          example: 10
        remaining:
          type: integer
          example: 9
        resetSeconds:
          type: integer
          description: Seconds until the current rate limit window resets.
          example: 1
        retryAfterSeconds:
          type: integer
          description: Present when the request was rate limited.
          example: 1
  securitySchemes:
    PublicBearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Opaque
      description: >-
        Public API access token issued by `/public/v1/oauth/token`. Example:
        `Authorization: Bearer fspt_...`. Each resource request rechecks the
        token company's current provider access. Disabling access blocks
        existing tokens with `403 auth.provider_unavailable`.

````

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