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

# List a partner's invoices

> Lists the invoices issued to a partner, newest first. Each carries the price (`subtotal`), the tax on
it (`taxAmount`) and what is paid (`total`), its status as the payment provider reports it, why the
last payment failed (`failureReason`), and the page where it is paid (`hostedInvoiceUrl`).

A partner reads its own: the caller must be the person who administers the partner (an API key of
that account works), and anyone else is refused with 403 whether or not the partner exists.
Widgetic administrators can read any partner's and see exactly what the partner sees; the full
records, with the internal fields, are `getAllInvoices` filtered by partner.

The page is always bounded: `limit` defaults to 50 and is capped at 100, `offset` defaults to 0.




## OpenAPI

````yaml /openapi/widgetic-api-public.json get /invoices/partner/{partnerId}
openapi: 3.0.0
info:
  title: Widgetic API Gateway
  version: 1.0.0
  description: API documentation for the Widgetic API Gateway
  license:
    name: Widgetic Integration License
    url: https://docs.widgetic.com/resources/license
servers:
  - url: https://api.widgetic.com/v1
    description: Production server
    variables:
      env:
        default: production
        description: Environment
      apiUrl:
        default: https://api.widgetic.com
        description: API URL
      apiVersion:
        default: /v1
        description: API Version path prefix
security: []
tags: []
paths:
  /invoices/partner/{partnerId}:
    get:
      tags:
        - Invoices
      summary: List a partner's invoices
      description: >
        Lists the invoices issued to a partner, newest first. Each carries the
        price (`subtotal`), the tax on

        it (`taxAmount`) and what is paid (`total`), its status as the payment
        provider reports it, why the

        last payment failed (`failureReason`), and the page where it is paid
        (`hostedInvoiceUrl`).


        A partner reads its own: the caller must be the person who administers
        the partner (an API key of

        that account works), and anyone else is refused with 403 whether or not
        the partner exists.

        Widgetic administrators can read any partner's and see exactly what the
        partner sees; the full

        records, with the internal fields, are `getAllInvoices` filtered by
        partner.


        The page is always bounded: `limit` defaults to 50 and is capped at 100,
        `offset` defaults to 0.
      operationId: getInvoicesByPartnerId
      parameters:
        - in: path
          name: partnerId
          required: true
          schema:
            type: string
            format: uuid
          description: The partner whose invoices to list
        - in: query
          name: status
          schema:
            type: string
            enum:
              - draft
              - open
              - pending
              - paid
              - failed
              - void
              - uncollectible
              - refunded
              - canceled
          description: Only invoices with this status
        - in: query
          name: limit
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 50
          description: Maximum number of invoices to return
        - in: query
          name: offset
          schema:
            type: integer
            minimum: 0
            default: 0
          description: Number of invoices to skip
      responses:
        '200':
          description: The partner's invoices, newest first
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/PartnerInvoice'
                  meta:
                    $ref: '#/components/schemas/ResponseMeta'
                required:
                  - success
                  - data
        '401':
          description: The API key is missing or invalid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: The caller does not administer this partner
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - apiKeyAuth: []
components:
  schemas:
    PartnerInvoice:
      type: object
      description: >
        An invoice issued to a partner. Money is in dollars (not cents).
        Administrator notes, billing-provider identifiers and Widgetic account
        ids are not part of what a partner is sent.
      properties:
        id:
          type: string
          format: uuid
        partnerId:
          type: string
          format: uuid
          nullable: true
        number:
          type: string
          nullable: true
          description: The number printed on the invoice, once it has been issued
        description:
          type: string
          nullable: true
          description: What the invoice is for
        amount:
          type: number
          description: >-
            Total, in dollars. The price plus the tax (the same number as
            `total`)
        subtotal:
          type: number
          description: The price, before tax, in dollars
        taxAmount:
          type: number
          description: >-
            The tax on the price, in dollars. 0 when there is none, for example
            under the EU reverse charge
        total:
          type: number
          description: What the partner pays, in dollars. The price plus the tax
        amountDue:
          type: number
          nullable: true
          description: What is still owed, in dollars
        amountPaid:
          type: number
          nullable: true
          description: What has been paid, in dollars
        currency:
          type: string
          nullable: true
          example: USD
        failureReason:
          type: string
          nullable: true
          description: >-
            Why the last attempt to pay failed, in the payment provider's words
            for the card holder. Null unless the status is `failed`; the invoice
            stays payable from `hostedInvoiceUrl`
        status:
          type: string
          enum:
            - draft
            - open
            - pending
            - paid
            - failed
            - void
            - uncollectible
            - refunded
            - canceled
          description: >
            `open` waits for payment, `failed` waits for payment after an
            attempt was refused, `paid` is settled (a payment received outside
            the payment provider counts), `void` was cancelled and owes nothing,
            and `uncollectible` was written off
        invoiceDate:
          type: string
          format: date-time
          nullable: true
        dueDate:
          type: string
          format: date-time
          nullable: true
        paidDate:
          type: string
          format: date-time
          nullable: true
        periodStart:
          type: string
          format: date-time
          nullable: true
        periodEnd:
          type: string
          format: date-time
          nullable: true
        paymentMethod:
          type: string
          nullable: true
          description: How it was paid, once it was
        hostedInvoiceUrl:
          type: string
          format: uri
          nullable: true
          description: >-
            The page where the invoice can be viewed and paid, once it has been
            issued
        pdfUrl:
          type: string
          format: uri
          nullable: true
          description: A PDF of the invoice, once it has been issued
        lineItems:
          type: array
          nullable: true
          items:
            type: object
            additionalProperties: true
        createdAt:
          type: string
          format: date-time
          nullable: true
        updatedAt:
          type: string
          format: date-time
          nullable: true
      example:
        id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
        partnerId: 3fa85f64-5717-4562-b3fc-2c963f66afa6
        number: Example number
        description: Example description
        amount: 42
        subtotal: 42
        taxAmount: 42
        total: 42
        amountDue: 42
        amountPaid: 42
        currency: USD
        failureReason: Example failureReason
        status: Example status
        invoiceDate: '2026-01-15T09:30:00.000Z'
        dueDate: '2026-01-15T09:30:00.000Z'
        paidDate: '2026-01-15T09:30:00.000Z'
        periodStart: '2026-01-15T09:30:00.000Z'
        periodEnd: '2026-01-15T09:30:00.000Z'
        paymentMethod: Example paymentMethod
        hostedInvoiceUrl: Example hostedInvoiceUrl
        pdfUrl: Example pdfUrl
        lineItems: []
        createdAt: '2026-01-15T09:30:00.000Z'
        updatedAt: '2026-01-15T09:30:00.000Z'
    ResponseMeta:
      type: object
      description: >-
        Extra information about the answer: where a page sits in a list, the
        cursor of the next page, or warnings about a call that succeeded with a
        caveat.
      additionalProperties: true
      properties:
        page:
          type: integer
          description: The page that was read, counting from 1.
          example: 1
        size:
          type: integer
          description: How many items one page holds.
          example: 20
        total:
          type: integer
          description: How many items the whole list has.
          example: 135
        limit:
          type: integer
          description: The same as `size`.
          example: 20
        offset:
          type: integer
          description: How many items come before this page.
          example: 0
        hasNextPage:
          type: boolean
          example: true
        hasPreviousPage:
          type: boolean
          example: false
        nextCursor:
          type: string
          nullable: true
          description: >-
            Pass this as `cursor` to read the next page of a list that is read
            by cursor. `null` on the last page.
        warnings:
          type: array
          items:
            type: string
          description: >-
            Things the call did not do, though it succeeded (for example a table
            that could not be created just now).
    ErrorResponse:
      type: object
      required:
        - success
        - message
        - error
      additionalProperties: true
      properties:
        success:
          type: boolean
          description: Always `false` on a failure.
          example: false
        message:
          type: string
          description: The same text as `error.message`, for a caller that reads one line.
        error:
          $ref: '#/components/schemas/ErrorDetail'
    ErrorDetail:
      type: object
      required:
        - code
        - message
        - timestamp
      properties:
        code:
          type: string
          description: Machine-readable error code.
          example: RESOURCE_NOT_FOUND
        message:
          type: string
          description: Human-readable explanation.
          example: Composition not found
        param:
          type: string
          description: The field that caused the error, when one did.
          example: name
        docUrl:
          type: string
          description: Where this error is explained.
        suggestedAction:
          type: string
          description: What to do about it.
        retryAfter:
          type: integer
          description: >-
            Seconds to wait before trying again (rate limits). The same number
            is in the `Retry-After` header.
          example: 60
        details:
          type: object
          additionalProperties: true
          description: >-
            More about the error: the fields that failed, a limit that was
            reached.
        correlationId:
          type: string
          description: Quote this when you ask support about the call.
          example: req_123e4567-e89b-12d3-a456-426614174000
        timestamp:
          type: string
          format: date-time
          example: '2026-10-15T10:00:00.000Z'
  securitySchemes:
    apiKeyAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````

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