---
title: "List invoice activity events"
method: GET
path: "/v1/invoice-receivables/{invoiceReceivableId}/activity-events"
tags: ["v1 - Invoice Receivables"]
---

# List invoice activity events

`GET /v1/invoice-receivables/{invoiceReceivableId}/activity-events`

## Request

- Base URL: `https://light.inc` (the document declares no server; this is the origin it was published from)
- URL: `https://light.inc/v1/invoice-receivables/{invoiceReceivableId}/activity-events`
- Auth: one of:
  - API key in header `Authorization`
  - HTTP bearer

The invoice's activity timeline, newest first: who did what to it, when, and which fields changed. Requires permission to view this invoice. The `entityId` and `entityType` filters are fixed by the path here; passing them can only narrow the result.

## Path parameters

- `invoiceReceivableId` string, uuid, required

## Query parameters

- `filter` string: Filter string in the format `field:operator:value`. To provide multiple filters, separate them with commas. Available operators: `eq`, `ne`, `in`, `not_in`, `gt`, `gte`, `lt`, `lte`. - For `in` and `not_in` operators, provide multiple values separated by the pipe character (`|`). Available fields: `action`, `actorId`, `correlationId`, `createdAt`, `entityId`, `entityType`.
- `limit` integer
- `offset` integer
- `cursor` string

## Response `default`

default response

- ExternalPaginatedResponseV1ModelExternalActivityEventV1Model
  - `records` ExternalActivityEventV1Model[]: List of records for the current page
    - `id` string, uuid: Unique identifier of the event
    - `entityType` 'ACCOUNTING_PERIOD' | 'AI_AGENT' | 'AI_ARTIFACT' | 'API_KEY' | 'ASSISTANT_INSTRUCTION' | 'BANK_ACCOUNT' | 'BANK_PAYMENT' | 'CARD' | 'CARD_INTENT' | 'CARD_TRANSACTION' | 'COMPANY' | 'CONTRACT' | 'CREDIT_NOTE' | 'CUSTOMER' | 'CUSTOMER_CREDIT' | 'CUSTOM_PROPERTY_GROUP' | 'DEFERRED_ENTRY' | 'DOCUMENT_TEMPLATE' | 'FX_REVALUATION' | 'HUBSPOT_CONNECTION' | 'INTERCOMPANY_JOURNAL_ENTRY' | 'INVOICE_PAYABLE' | 'INVOICE_RECEIVABLE' | 'JOURNAL_ENTRY' | 'LCI_MEMORY' | 'LEDGER_ACCOUNT' | 'LEDGER_TAX' | 'PRODUCT' | 'PURCHASE_ORDER' | 'PURCHASE_REQUEST' | 'SALESFORCE_CONNECTION' | 'SKILL' | 'USER' | 'USER_REIMBURSEMENT_CONFIG' | 'VENDOR' | 'WORKFLOW' | 'YEAR_CLOSING_ENTRY': Type of the record the event belongs to ⚠️ This enum is not exhaustive; new values may be added in the future.
    - `entityId` string, uuid: ID of the record the event belongs to
    - `action` 'ACTIVATE' | 'ADD_TO_PAYMENT_BATCH' | 'AGENT_REVIEW' | 'APPLY_CREDIT_NOTE' | 'APPLY_CUSTOMER_CREDIT' | 'APPROVE' | 'APPROVE_PAYMENT' | 'ARCHIVE' | 'ARCHIVE_FILE' | 'ATTACH_FILE' | 'CANCEL' | 'CANCEL_TERMINATION' | 'CLEAR' | 'CLOSE' | 'COMPLETE_TASK' | 'CONFIRM_GOODS_RECEIPT' | 'CREATE' | 'DECLINE_APPROVAL' | 'DECLINE_PAYMENT' | 'DELETE' | 'FAIL' | 'FLAG_GOODS_RECEIPT_ISSUE' | 'INITIATE_PAYMENT' | 'LINK_INTERCOMPANY_DOCUMENT' | 'LOCK' | 'MARK_AS_PAID' | 'MARK_AS_PAID_IN_STRIPE' | 'MARK_AS_PARTIALLY_PAID' | 'MATCH_BILL' | 'MATCH_PURCHASE_ORDER' | 'OPEN' | 'PARTIALLY_CLEAR' | 'PAUSE_PAYMENT' | 'PAY' | 'POST' | 'POST_ELIMINATION' | 'PUBLISH' | 'REASSIGN' | 'RECONCILE' | 'RELEASE_PAYMENT_HOLD' | 'REMOVE_CREDIT_NOTE' | 'REMOVE_CUSTOMER_CREDIT' | 'RENEW' | 'REOPEN_TASK' | 'RESET' | 'RESUME_PAYMENT' | 'REVERSE_CLEARING' | 'REVERT' | 'SCHEDULE_TERMINATION' | 'SEND_CUSTOMER_CREDIT' | 'SEND_DUNNING_EMAIL' | 'SEND_INVOICE' | 'SEND_PURCHASE_ORDER' | 'SUBMIT_FOR_APPROVAL' | 'SUBMIT_SELF_BILLED_EINVOICE' | 'TERMINATE' | 'TRIGGER_SYNC' | 'UNARCHIVE' | 'UNMATCH_BILL' | 'UNMATCH_PURCHASE_ORDER' | 'UNRECONCILE' | 'UPDATE': What was done to the record ⚠️ This enum is not exhaustive; new values may be added in the future.
    - `actor` ExternalActivityActorV1Model: Who did it
      - `id` string, uuid: ID of the principal that acted
      - `type` 'AI_AGENT' | 'INTEGRATION' | 'LIGHT_TEAM' | 'SYSTEM' | 'USER': Kind of principal that acted ⚠️ This enum is not exhaustive; new values may be added in the future.
      - `name` string: Display name of the actor
      - `roles` string[], nullable: Roles the actor held when the event was recorded, without Light-internal roles. Null for events recorded before roles were captured.
    - `app` ExternalActivityAppV1Model, nullable: The app the actor made the change through. Null unless an app made the change.
      - `slug` string: Slug of the app, e.g. german-mileage, or the id of an app the company built outside Light
    - `correlationId` string, uuid, nullable: ID of the operation this event belongs to, e.g. an approval run or an assistant tool call. Events sharing it were caused by that one operation.
    - `createdAt` string, date-time: Timestamp when the event happened
    - `changes` ExternalActivityEventChangeV1Model[]: Field changes recorded with the event, each with the value before and after
      - `objectType` 'HEADER' | 'LINE': Whether the changed field belongs to the record itself or to one of its lines ⚠️ This enum is not exhaustive; new values may be added in the future.
      - `objectId` string, uuid: ID of the record or line the field belongs to
      - `objectPosition` integer, nullable: Position of the line within the record, for line fields
      - `field` string: Machine name of the changed field
      - `fieldLabel` string: Human-readable label of the changed field
      - `oldValue` ExternalRenderedActivityValueV1Model, nullable: A field value, discriminated by `type`: TEXT, DATE, ENUM, MONEY, REFERENCE or REFERENCE_LIST
        - `type` string, required
      - `newValue` ExternalRenderedActivityValueV1Model, nullable: A field value, discriminated by `type`: TEXT, DATE, ENUM, MONEY, REFERENCE or REFERENCE_LIST
        - `type` string, required
    - `files` ExternalActivityEventFileV1Model[], nullable: Files an ATTACH_FILE or ARCHIVE_FILE event is about. Left out for other actions.
      - `attachmentId` string, uuid, nullable: ID of the attachment, usable with the attachments API. Null on events recorded before the id was kept.
      - `fileName` string: Name of the file
  - `hasMore` boolean: Boolean flag indicating if there are more records available
  - `total` integer, nullable: Total number of records (only for offset pagination). This field is not guaranteed to be returned and only available for offset pagination, please do not rely on it and migrate to cursor pagination.
  - `nextCursor` string, nullable: Cursor for fetching the next page (only for cursor pagination)
  - `prevCursor` string, nullable: Cursor for fetching the previous page (only for cursor pagination)

---

[API](https://skmtc.dev/light/apis/light-api.md) - [All operations](https://skmtc.dev/light/apis/light-api/llms.txt) - [OpenAPI document](https://skmtc.dev/light/apis/light-api/revisions/84f51306f648?raw)
