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

# List e-reporting periods

> Returns the party's Flux 10 report periods, most recent first
(`created_at` descending). 

Each period is one submission window for a `(kind, role)` tuple; corrective re-submissions of the same window appear as separate periods with an incrementing `sequence`.

Filter by report kind with `kind`. Paginate with `offset` and `limit` (default `50`, maximum `200`). When more results remain, the response carries a `next_offset` to pass on the next call; it is omitted on the last page.


## OpenAPI

````yaml GET /apps/gov-fr/v1/reports/{silo_entry_id}/periods
openapi: 3.1.0
info:
  contact:
    email: dev@invopop.com
    name: Invopop Developers
  description: >-
    Set of end-points for the France app, including lookups against the PPF
    Annuaire (French e-invoicing directory).
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  title: France Service API
  version: 0.1.0
servers:
  - description: production
    url: https://api.invopop.com
security:
  - InvopopAuth: []
paths:
  /apps/gov-fr/v1/reports/{silo_entry_id}/periods:
    get:
      summary: List e-reporting periods for a party
      description: |-
        Returns the party's Flux 10 report periods, most recent first
        (`created_at` descending). 
      operationId: listReportingPeriods
      parameters:
        - $ref: '#/components/parameters/SiloEntryID'
        - $ref: '#/components/parameters/ReportKind'
        - $ref: '#/components/parameters/Offset'
        - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: One page of report periods.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListPeriodsResponse'
              examples:
                page:
                  summary: First page with more results available
                  value:
                    periods:
                      - id: 018f9e2a-7c31-7a10-9b44-2f9d1e6c8a01
                        siren: '123456789'
                        flux_kind: tx
                        role: seller
                        period_start: '2026-06-11'
                        period_end: '2026-06-20'
                        sequence: 1
                        status: filed
                        flux_code: PPF206_1025_000123
                        ack_ref: '300'
                        submitted_at: '2026-06-21T08:15:00Z'
                        created_at: '2026-06-21T08:00:00Z'
                        updated_at: '2026-06-21T08:20:00Z'
                    next_offset: 50
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  parameters:
    SiloEntryID:
      name: silo_entry_id
      in: path
      required: true
      description: ID of the `org.Party` silo entry being onboarded.
      schema:
        type: string
        example: 5b45453c-cdd0-11ed-afa1-0242ac120002
    ReportKind:
      name: kind
      in: query
      required: false
      description: |-
        Restrict the results to a single report kind:

          - `tx` - Transactions (invoice data).
          - `py` - Payments.

        Omit to return both kinds.
      schema:
        type: string
        enum:
          - tx
          - py
        example: tx
    Offset:
      name: offset
      in: query
      required: false
      description: Number of periods to skip, for pagination. Must be non-negative.
      schema:
        type: integer
        minimum: 0
        default: 0
        example: 0
    Limit:
      name: limit
      in: query
      required: false
      description: |-
        Maximum number of periods to return. Values outside the `1`–`200`
        range fall back to the default of `50`.
      schema:
        type: integer
        minimum: 1
        maximum: 200
        default: 50
        example: 50
  schemas:
    ListPeriodsResponse:
      type: object
      description: One page of report periods, most recent first.
      required:
        - periods
      properties:
        periods:
          type: array
          description: The report periods on this page.
          items:
            $ref: '#/components/schemas/ReportingPeriod'
        next_offset:
          type: integer
          description: >-
            Offset to pass on the next call to fetch the following page. Omitted
            on the last page.
          example: 50
    ReportingPeriod:
      type: object
      description: |-
        One Flux 10 submission window for a `(kind, role)` tuple. Corrective
        re-submissions of the same window are separate periods sharing the
        window dates but with an incrementing `sequence`.
      required:
        - id
        - siren
        - flux_kind
        - role
        - period_start
        - period_end
        - sequence
        - status
        - created_at
        - updated_at
      properties:
        id:
          type: string
          description: Unique identifier of the period.
          example: 018f9e2a-7c31-7a10-9b44-2f9d1e6c8a01
        siren:
          type: string
          description: 9-digit French SIREN of the reporting party.
          example: '123456789'
        flux_kind:
          type: string
          description: |-
            Report kind:

              - `tx` - Transactions (invoice data).
              - `py` - Payments.
          enum:
            - tx
            - py
          example: tx
        role:
          type: string
          description: |-
            Role the reporting party plays for the transactions in this
            period. Empty for B2C-only periods.

              - `seller` - The party is the supplier.
              - `buyer` - The party is the customer.
          enum:
            - seller
            - buyer
            - ''
          example: seller
        period_start:
          type: string
          description: First day of the reporting window, as `YYYY-MM-DD`.
          example: '2026-06-11'
        period_end:
          type: string
          description: Last day (inclusive) of the reporting window, as `YYYY-MM-DD`.
          example: '2026-06-20'
        sequence:
          type: integer
          description: |-
            Submission sequence for the window. `1` is the initial report;
            higher values are corrective re-submissions.
          example: 1
        previous_period_id:
          type: string
          description: >-
            ID of the prior sequence for the same window. Omitted for sequence
            1.
          example: ''
        status:
          type: string
          description: |-
            Lifecycle status of the period:

              - `generated` - XML built, not yet sent to the PPF.
              - `submitted` - Sent to the PPF, awaiting acknowledgement.
              - `filed` - Accepted by the PPF.
              - `rejected` - Rejected by the PPF.
          enum:
            - generated
            - submitted
            - filed
            - rejected
          example: filed
        flux_code:
          type: string
          description: >-
            PPF flux filename assigned when the report was submitted. Omitted
            before submission.
          example: PPF206_1025_000123
        ack_ref:
          type: string
          description: |-
            PPF acknowledgement status code once received (`300` filed,
            `301` rejected). Omitted while awaiting acknowledgement.
          example: '300'
        submitted_at:
          type: string
          format: date-time
          description: When the report was submitted to the PPF. Omitted before submission.
          example: '2026-06-21T08:15:00Z'
        created_at:
          type: string
          format: date-time
          description: When the period was created.
          example: '2026-06-21T08:00:00Z'
        updated_at:
          type: string
          format: date-time
          description: When the period was last updated.
          example: '2026-06-21T08:20:00Z'
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: string
          description: Human-readable description of the error.
          example: missing siren parameter
  responses:
    BadRequest:
      description: The request is malformed or missing required parameters.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: missing siren parameter
    Unauthorized:
      description: Missing or invalid authentication token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: missing enrollment
    NotFound:
      description: The referenced silo entry or party could not be found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: silo entry not found
    InternalServerError:
      description: An unexpected server-side error occurred.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: internal server error
  securitySchemes:
    InvopopAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: |-
        Authenticate using a valid Invopop enrollment token in the `Bearer`
        scheme.

        Example: `Authorization: Bearer <token>`

````