ParakeetoDocumentation
On this page

list_expense_entries

What it answers

List stored Expenses grid rows in the grid's own column names, with a row id and version per row and a gridVersion for the whole listing. Includes Included=false rows. Requires the current connection owner to have at least view access to the Expenses grid on this account. Choose expenseGridId when multiple grids are listed in EXPENSE_GRID_REQUIRED. Pages default to 100 rows (maximum limit 200); follow pagination.nextOffset as offset with the same grid and limit, and restart at offset 0 when gridVersion changes. cells are keyed by the grid's column headers; allocations are keyed by Delivery, S&M, Back-office, Facilities and Other. Blank cells are null. Stored freshness does not prove the live Sheet is unchanged. No compensation is returned. Read parakeeto://methodology for shared response conventions and INVALID_ARGUMENT guidance.

Read-only.

Arguments

Argument Type Required Default Allowed values
account string (uuid) no — —
expenseGridId string (uuid) no — —
limit integer no 100 minimum: 1; maximum: 200
offset integer no 0 minimum: 0; maximum: 9007199254740991
includeDefinitions boolean no true —

Returned fields

The result is an envelope: ok: true with data, or ok: false with error. Error codes: MODEL_CALCULATOR_ACCESS_REQUIRED, PAYROLL_GRID_MISSING, PAYROLL_GRID_REQUIRED, PROJECT_GRID_REQUIRED, EXPENSE_GRID_REQUIRED, PAYROLL_ENTRY_REFERENCE_STALE, ACCOUNT_NOT_FOUND, ACCOUNT_CONFIGURATION_MISSING, NO_IMPORTED_TIME, NOTHING_IMPORTED, ACCOUNT_REQUIRED, NO_REACHABLE_ACCOUNTS, FEATURE_NOT_ENTITLED, PERMISSION_DENIED, CALCULATION_FAILED, INTERNAL_ERROR, INVALID_ARGUMENT.

  • data: object
    • data.account: string (uuid)
    • data.gridVersion: string (pattern ^[a-f0-9]{64}$)
    • data.pagination: object
      • data.pagination.limit: integer (minimum: 1; maximum: 200)
      • data.pagination.offset: integer (minimum: 0)
      • data.pagination.totalRows: integer (minimum: 0)
      • data.pagination.returnedRows: integer (minimum: 0)
      • data.pagination.omittedRows: integer (minimum: 0)
      • data.pagination.nextOffset: integer or null (minimum: 0)
      • data.pagination.truncated: boolean
      • data.pagination.message: string
    • data.gridFreshness: array of object
      • data.gridFreshness[].kind: string ("payroll", "expense", "project")
      • data.gridFreshness[].gridId: string (uuid)
      • data.gridFreshness[].name: string
      • data.gridFreshness[].storage: string ("sheet", "database")
      • data.gridFreshness[].sheetRefreshedAt: string (date-time) or null
    • data.definitions: map of string to string, optional
      • data.definitions.*: string
    • data.caveats: array of object
      • data.caveats[].code: string
      • data.caveats[].message: string
    • data.expenseGrid: object
      • data.expenseGrid.id: string (uuid)
      • data.expenseGrid.name: string
    • data.entries: array of object
      • data.entries[].rowId: string
      • data.entries[].version: string (pattern ^[a-f0-9]{64}$)
      • data.entries[].cells: object
        • data.entries[].cells.Included: boolean
        • data.entries[].cells.Start Date: string or null (pattern ^\d{4}-\d{2}-\d{2}$)
        • data.entries[].cells.End Date: string or null (pattern ^\d{4}-\d{2}-\d{2}$)
        • data.entries[].cells.Category: string or null
        • data.entries[].cells.Time Unit: string or null
        • data.entries[].cells.Value: string or null (pattern ^-?\d+(?:\.\d+)?$)
      • data.entries[].allocations: object
        • data.entries[].allocations.Delivery: string or null (pattern ^-?\d+(?:\.\d+)?$)
        • data.entries[].allocations.S&M: string or null (pattern ^-?\d+(?:\.\d+)?$)
        • data.entries[].allocations.Back-office: string or null (pattern ^-?\d+(?:\.\d+)?$)
        • data.entries[].allocations.Facilities: string or null (pattern ^-?\d+(?:\.\d+)?$)
        • data.entries[].allocations.Other: string or null (pattern ^-?\d+(?:\.\d+)?$)

On failure:

  • error: object
    • error.code: string ("MODEL_CALCULATOR_ACCESS_REQUIRED", "PAYROLL_GRID_MISSING", "PAYROLL_GRID_REQUIRED", "PROJECT_GRID_REQUIRED", "EXPENSE_GRID_REQUIRED", "PAYROLL_ENTRY_REFERENCE_STALE", "ACCOUNT_NOT_FOUND", "ACCOUNT_CONFIGURATION_MISSING", "NO_IMPORTED_TIME", "NOTHING_IMPORTED", "ACCOUNT_REQUIRED", "NO_REACHABLE_ACCOUNTS", "FEATURE_NOT_ENTITLED", "PERMISSION_DENIED", "CALCULATION_FAILED", "INTERNAL_ERROR", "INVALID_ARGUMENT")
    • error.argument: string, optional (minLength: 1)
    • error.message: string
    • error.accounts: array of object, optional
      • error.accounts[].id: string (uuid)
      • error.accounts[].name: string
    • error.payrollGrids: array of object, optional
      • error.payrollGrids[]: same shape as error.accounts[]
    • error.projectGrids: array of object, optional
      • error.projectGrids[]: same shape as error.accounts[]
    • error.expenseGrids: array of object, optional
      • error.expenseGrids[]: same shape as error.accounts[]
    • error.context: object, optional
      • error.context.account: object
        • Further fields: see the response.
      • error.context.imports: array of object
        • Further fields: see the response.
      • error.context.hasTimeEntries: boolean
      • error.context.reports: array of object
        • Further fields: see the response.

Definitions

Returned in definitions when includeDefinitions is true (the default). It is a map of string to string: each key names a field and each value is its definition text.

Caveats

Codes are not enumerated in the schema; read each code and message.

Read every caveat before interpreting a figure. See methodology on how to communicate caveats and data-quality conditions.

Example call

{
  "name": "list_expense_entries",
  "arguments": {}
}

Add account with an identifier from list_accounts; omit it only when the connection reaches exactly one account.

Questions and answers

What does list_expense_entries answer?

List stored Expenses grid rows in the grid's own column names, with a row id and version per row and a gridVersion for the whole listing. Includes Included=false rows. Requires the current connection owner to have at least view access to the Expenses grid on this account. Choose expenseGridId when multiple grids are listed in EXPENSE_GRID_REQUIRED. Pages default to 100 rows (maximum limit 200); follow pagination.nextOffset as offset with the same grid and limit, and restart at offset 0 when gridVersion changes. cells are keyed by the grid's column headers; allocations are keyed by Delivery, S&M, Back-office, Facilities and Other. Blank cells are null. Stored freshness does not prove the live Sheet is unchanged. No compensation is returned. Read parakeeto://methodology for shared response conventions and INVALID_ARGUMENT guidance.

Which arguments does list_expense_entries accept?

Argument Type Required Default Allowed values account string (uuid) no — — expenseGridId string (uuid) no — — limit integer no 100 minimum: 1; maximum: 200 offset integer no 0 minimum: 0; maximum: 9007199254740991 includeDefinitions boolean no true —

What does list_expense_entries return?

The result is an envelope: ok: true with data, or ok: false with error.

Read as Markdown