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

# List due timesheets

> List timesheets that are not yet submitted (status: 0). 

You must filter on either `ownerIds`, `managerIds` or `legalEntityIds`.
As long as a timesheet is not submitted, its unique identifier is equal to zero.

Please refer to the [Timesheet API reference](reference/Timmi-Timesheet-v3.yaml/components/schemas/Timesheet) for additional information on the Timesheet resource.



## OpenAPI

````yaml /openapi-specs/timmi-timesheet-v3.yaml get /api/v3/timmitimesheets/remindable
openapi: 3.1.0
info:
  title: Lucca Timesheet API
  version: '1.0'
  description: |
    Welcome on the documentation for the Lucca Timesheet API.
  contact:
    name: API Support
    url: https://support.lucca.fr
    email: contact@luccasoftware.com
  license:
    name: Unlicensed
    url: https://www.luccasoftware.com
servers:
  - url: https://{host}
    description: Your Lucca account URL.
    variables:
      host:
        default: example.ilucca.net
        description: >-
          The URL of your dedicated Lucca account: `{account}.{env}.{region}`.


          Account reflects your company name. Env indicates the environment.
          Region depends on your server location.


          **Please, use your test or sandbox environments (and not your
          production env.) for testing purposes.**


          Environments:

          - `ilucca`: production environment for customers.

          - `ilucca-test`: test environment for customers.

          - `ilucca-demo`: demo environment for prospects.


          Regions:

          - `.ch` for Swiss located accounts.

          - `.net` for the others.


          Regarding sandboxes, the pattern differs:
          `https://{account}-{sandboxName}.sandbox.{server}.luccasoftware.com`,
          where:

          - `{sandboxName}` is automatically generated upon creation.

          - `{server}` may be "eu1", "eu2" or "ch1".
security: []
tags:
  - name: TimeEntries
    description: time-entries are the actual working hours observed by a user.
  - name: Timesheets
    description: Collection of time-entries for a User over a week / month.
  - name: Activities
    description: Time-entries referencing axis-sections to describe what the user has done.
  - name: Attendance
    description: Time-entries indicating working hours.
  - name: Workflow
    description: All actions regarding the approval process of timesheets.
  - name: Reports
    description: Reporting features of Lucca Timesheet.
paths:
  /api/v3/timmitimesheets/remindable:
    parameters:
      - $ref: '#/components/parameters/Authorization'
    get:
      tags:
        - Timesheets
      summary: List due timesheets
      description: >-
        List timesheets that are not yet submitted (status: 0). 


        You must filter on either `ownerIds`, `managerIds` or `legalEntityIds`.

        As long as a timesheet is not submitted, its unique identifier is equal
        to zero.


        Please refer to the [Timesheet API
        reference](reference/Timmi-Timesheet-v3.yaml/components/schemas/Timesheet)
        for additional information on the Timesheet resource.
      operationId: get-api-v3-timmitimesheets-remindable
      parameters:
        - name: ownerIds
          in: query
          schema:
            type: array
            items:
              type: integer
          description: List unique identifier of owners.
        - name: legalEntityIds
          in: query
          schema:
            type: array
            items:
              type: integer
          description: List unique identifier of owners' legal establishments.
        - name: managerIds
          in: query
          schema:
            type: array
            items:
              type: integer
          description: List unique identifier of owners' managers.
        - schema:
            type: string
            format: date
          in: query
          name: start
          description: Prevent older timesheets to be returned.
        - schema:
            type: string
            format: date
          in: query
          name: end
          description: >-
            Prevent earlier timesheets to be returned (date excluded). Defaults
            to today when not sent.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/Timesheet'
        '400':
          $ref: '#/components/responses/ResponseProblem'
        '401':
          $ref: '#/components/responses/ResponseProblem'
        '500':
          $ref: '#/components/responses/ResponseProblem'
components:
  parameters:
    Authorization:
      name: Authorization
      required: true
      description: 'API key. Value must be formatted like so: `lucca application={api_key}`.'
      in: header
      schema:
        type: string
  schemas:
    Timesheet:
      title: The Timesheet resource
      type: object
      description: >-
        ## Definitions


        Timesheets are time-entries containers. A timesheet belongs to a single
        user `owner` and ranges over several days `[startsOn - endsOn[` (endsOn
        excluded). Its range depends on the submission frequency set up in Lucca
        Timesheet (weekly / monthly).


        A timesheet purpose is to ease the approval workflow: rather than
        approving each time-entry individually, they are approved in a weekly /
        monthly batch.


        The approval workflow looks like this:


        ![Lucca Timesheet - Approval
        workflow](https://stoplight.io/api/v1/projects/cHJqOjEwNjgxNg/images/xfjxCP2RUa4)


        Thus, a timesheet:

        - is created upon submission ;

        - is "pending approval" or "submitted" (`status: 1`) as long as all
        approvers have not approved it ;

        - is "approved" (`status: 2`) once all approvers have approved it ;

        - may become "rejected" (`status: 3`) whenever:
          - the submitter cancels the submission, which is possible as long as the timesheet is not fully approved ;
          - one of the approvers denies the timesheet ;
          - an administrator invalidates the timesheet, which is only possible once the timesheet is fully approved.

        Once a timesheet is rejected, a new one has to be submitted and the
        workflow starts again.


        Timesheets are created and their status are set to `submitted`. In some
        cases, timesheets may then be automatically `approved`, depending on the
        approval workflow settings.


        Once submitted, all timeentries on the period for that user can no
        longer be modified. In order to be able to modify them, the timesheet
        must first be rejected through `cancel`, `deny` or `invalidate`
        operations (depends on the current timesheet status).


        ## Available guide


        Please see [this
        guide](../docs/Use-cases/Timmi%20Timesheet/Mass-submit-timesheets.md) on
        how to submit timesheets the right way.


        ## Fields
      x-tags:
        - Timesheets
      examples:
        - id: 10959
          name: 45 - avril 2024 - Approved
          ownerId: 45
          owner:
            id: 45
            name: Noël Flantier
            url: https://example.ilucca.net/api/v3/timesheetusers/45
          startsOn: '2024-04-29T00:00:00'
          endsOn: '2024-05-06T00:00:00'
          statuteId: 4
          expectedNextActorId: null
          expectedNextActor: null
          status: 2
          timeEntries:
            - id: 551915
              name: ''
              url: https://example.ilucca.net/api/v3/timeentries/551915
            - id: 551916
              name: ''
              url: https://example.ilucca.net/api/v3/timeentries/551916
            - id: 551917
              name: ''
              url: https://example.ilucca.net/api/v3/timeentries/551917
            - id: 551918
              name: ''
              url: https://example.ilucca.net/api/v3/timeentries/551918
            - id: 551919
              name: ''
              url: https://example.ilucca.net/api/v3/timeentries/551919
            - id: 551920
              name: ''
              url: https://example.ilucca.net/api/v3/timeentries/551920
            - id: 551921
              name: ''
              url: https://example.ilucca.net/api/v3/timeentries/551921
            - id: 551922
              name: ''
              url: https://example.ilucca.net/api/v3/timeentries/551922
      properties:
        id:
          type: integer
          description: Uniquer identifier of the timesheet.
          readOnly: true
        name:
          type: string
          description: Human-readable description of the Timesheet
          example: 45 - January 2016 - Approved
          readOnly: true
        ownerId:
          type: integer
          minimum: 1
          description: Reference to the Timesheet owner.
          readOnly: true
        owner:
          allOf:
            - $ref: '#/components/schemas/TimesheetUser'
            - type: object
              properties:
                manager:
                  $ref: '#/components/schemas/TimesheetUser'
        startsOn:
          type: string
          format: date
          description: The Timesheet starting date (included).
          readOnly: true
        endsOn:
          type: string
          description: The Timesheet ending date (excluded).
          format: date
          readOnly: true
        expectedNextActorId:
          type: integer
          description: >-
            Reference to the TimesheetUser responsible for the next approval
            workflow step. Is null if status <> 1
          readOnly: true
        expectedNextActor:
          $ref: '#/components/schemas/TimesheetUser'
          description: >-
            Reference to the TimesheetUser responsible for the next approval
            workflow step. Is null if status <> 1
        status:
          type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
          description: >
            Approval workflow status for this timesheet

            - 0: the timesheet is yet to be submitted

            - 1: the timesheet has been submitted and approval is still pending

            - 2: the timesheet has been submitted and approved.

            - 3: the timesheet has been rejected (cancelled after submission,
            denied upon approval or invalidated after having been approved)
          readOnly: true
        statuteId:
          type: integer
          description: Reference to the applicable "statute" (configuration).
          readOnly: true
    TimesheetUser:
      title: Timesheet User
      type: object
      properties:
        id:
          type: integer
          minimum: 1
          description: Unique identifier of this User.
        firstName:
          type: string
          description: Given name.
        lastName:
          type: string
          description: Family name
        mail:
          type: string
          format: email
          description: Email address.
        legalEntityId:
          type: integer
          description: >-
            Unique identifier of the legal establishment this user currently has
            a work contract with.
      description: A Timesheet limited model of a user
  responses:
    ResponseProblem:
      description: Problem
      content:
        application/json:
          schema:
            type: object
            properties:
              Status:
                type: integer
                description: HTTP status code.
                example: 401
              Message:
                type: string
                description: Human readable error message.
                example: Unauthorized

````