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

# List Invoices

> Retrieves a paginated list of invoices for the authenticated user's entity.



## OpenAPI

````yaml get /api/v1/invoices
openapi: 3.0.3
info:
  title: Invoicing API
  description: >
    The Invoicing API enables developers to read and retrieve invoice data for
    their business.

    View invoices with detailed information including payment details, line
    items, and invoice status.
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  version: 1.0.0
  contact:
    name: Coinbase Business
    email: business@coinbase.com
    url: https://www.coinbase.com/business
servers:
  - url: https://business.coinbase.com
    description: The production server of the Invoicing API.
security:
  - apiKeyAuth: []
tags:
  - name: Invoices
    description: Operations for managing invoices
paths:
  /api/v1/invoices:
    get:
      tags:
        - Invoices
      summary: List Invoices
      description: >-
        Retrieves a paginated list of invoices for the authenticated user's
        entity.
      operationId: listInvoices
      parameters:
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageToken'
        - name: status
          in: query
          description: Filter invoices by status.
          required: false
          schema:
            $ref: '#/components/schemas/InvoiceStatus'
        - name: contactEmail
          in: query
          description: Filter invoices by contact email address.
          required: false
          schema:
            type: string
            format: email
            example: customer@example.com
        - name: sortBy
          in: query
          description: >-
            Field to sort results by. Results are always returned in descending
            order (most recent first).
          required: false
          schema:
            type: string
            enum:
              - createdAt
              - updatedAt
              - dueDate
              - sendDate
            default: createdAt
      responses:
        '200':
          description: Invoices retrieved successfully.
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    required:
                      - invoices
                    properties:
                      invoices:
                        type: array
                        items:
                          $ref: '#/components/schemas/InvoiceResponse'
                  - $ref: '#/components/schemas/ListResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
        - apiKeyAuth: []
components:
  parameters:
    PageSize:
      name: pageSize
      description: The number of items to return per page.
      in: query
      required: false
      schema:
        type: integer
        default: 20
        minimum: 1
        maximum: 100
      example: 10
    PageToken:
      name: pageToken
      description: >-
        The token for the next page of items. This should only be populated
        using the `nextPageToken` value from the previous response.
      in: query
      required: false
      schema:
        type: string
      example: eyJsYXN0X2lkIjogImFiYzEyMyIsICJ0aW1lc3RhbXAiOiAxNzA3ODIzNzAxfQ==
  schemas:
    InvoiceStatus:
      type: string
      description: |
        The status of the invoice.
        - `DRAFT` - Invoice is in draft state and has not been sent.
        - `OPEN` - Invoice has been sent and is awaiting payment.
        - `SCHEDULED` - Invoice is scheduled to be sent at a future date.
        - `PAID` - Invoice has been paid in full.
        - `VOID` - Invoice has been voided and is no longer valid.
        - `OVERDUE` - Invoice is past its due date and has not been paid.
      enum:
        - DRAFT
        - OPEN
        - SCHEDULED
        - PAID
        - VOID
        - OVERDUE
      example: OPEN
    InvoiceResponse:
      type: object
      required:
        - uuid
        - invoiceNumber
        - contactName
        - contactEmail
        - lineItems
        - totalAmountDue
        - status
        - createdAt
        - updatedAt
        - createdBy
        - lastUpdatedBy
        - entityName
      properties:
        uuid:
          type: string
          format: uuid
          description: Unique invoice identifier (UUID).
          example: 750a84dd-2460-504c-8bb9-f6fa731a2361
        invoiceNumber:
          type: string
          description: Human-readable invoice number.
          example: INV-1234
        contactName:
          type: string
          description: Contact name.
          example: John Doe
        contactEmail:
          type: string
          format: email
          description: Contact email address.
          example: john.doe@example.com
        contactAddress:
          description: Billing address of the customer/contact being invoiced.
          allOf:
            - $ref: '#/components/schemas/Address'
        purchaseOrderNumber:
          type: string
          description: Purchase order number reference.
          example: PO-5678
        dueDate:
          $ref: '#/components/schemas/Timestamp'
        sendDate:
          $ref: '#/components/schemas/Timestamp'
        invoiceDate:
          $ref: '#/components/schemas/Timestamp'
        lineItems:
          type: array
          description: List of line items on the invoice.
          items:
            $ref: '#/components/schemas/LineItem'
        discount:
          $ref: '#/components/schemas/Amount'
        tax:
          $ref: '#/components/schemas/Amount'
        totalAmountDue:
          $ref: '#/components/schemas/Amount'
        privateNotes:
          type: string
          description: Private notes not visible to the customer.
          example: Internal memo about this invoice
        memo:
          type: string
          description: Memo visible to the customer.
          example: Thank you for your business!
        footer:
          type: string
          description: Footer text for the invoice.
          example: 'Payment terms: Net 30'
        status:
          $ref: '#/components/schemas/InvoiceStatus'
        createdAt:
          $ref: '#/components/schemas/Timestamp'
        updatedAt:
          $ref: '#/components/schemas/Timestamp'
        createdBy:
          type: string
          description: User UUID of the person who created the invoice.
          example: 750a84dd-2460-504c-8bb9-f6fa731a2361
        lastUpdatedBy:
          type: string
          description: User UUID of the person who last updated the invoice.
          example: 750a84dd-2460-504c-8bb9-f6fa731a2361
        recurringInvoicePlanId:
          type: string
          description: >-
            Reference to the recurring invoice plan if this invoice was
            generated from one.
          pattern: ^[0-9a-f]{24}$
          example: 68f7a946db0529ea9b6d3a12
        paymentMethod:
          $ref: '#/components/schemas/PaymentMethod'
        entityName:
          type: string
          description: >-
            Business name associated with the entity (populated at invoice
            creation).
          example: Acme Corporation
        entityAddress:
          description: Business address of the entity issuing the invoice.
          allOf:
            - $ref: '#/components/schemas/Address'
    ListResponse:
      type: object
      properties:
        nextPageToken:
          type: string
          description: The token for the next page of items, if any.
          example: eyJsYXN0X2lkIjogImFiYzEyMyIsICJ0aW1lc3RhbXAiOiAxNzA3ODIzNzAxfQ==
    Address:
      type: object
      required:
        - addressLine1
        - city
        - country
      properties:
        addressLine1:
          type: string
          description: Primary address line.
          example: 123 Main Street
        addressLine2:
          type: string
          description: Secondary address line (apartment, suite, etc.).
          example: Suite 400
        city:
          type: string
          description: City name.
          example: San Francisco
        state:
          type: string
          description: State or province.
          example: CA
        country:
          type: string
          description: Country code (ISO 3166-1 alpha-2).
          example: US
        postalCode:
          type: string
          description: Postal or ZIP code.
          example: '94103'
    Timestamp:
      type: string
      format: date-time
      description: Timestamp in RFC 3339 format.
      example: '2024-03-20T10:30:00Z'
    LineItem:
      type: object
      required:
        - itemName
        - quantity
        - unitPrice
      properties:
        itemName:
          type: string
          description: Name or description of the item.
          example: Web Development Services
        quantity:
          type: number
          format: double
          description: Quantity of the item.
          example: 10
          minimum: 1
        unitPrice:
          $ref: '#/components/schemas/Amount'
    Amount:
      type: object
      required:
        - value
        - currency
      properties:
        value:
          type: string
          description: Numeric value representing the amount as a string for precision.
          example: '100.50'
          pattern: ^\d+(\.\d{1,2})?$
        currency:
          type: string
          description: Currency code.
          example: USDC
          pattern: ^[A-Z]{3,10}$
    PaymentMethod:
      type: object
      description: >-
        Payment method for the invoice. Currently, cryptocurrency payments are
        supported.
      properties:
        crypto:
          $ref: '#/components/schemas/CryptoPaymentMethod'
      required:
        - crypto
    Error:
      description: >-
        An error response including the code for the type of error and a
        human-readable message describing the error.
      type: object
      properties:
        errorType:
          $ref: '#/components/schemas/ErrorType'
        errorMessage:
          description: The error message.
          type: string
          example: Unable to read invoice
        correlationId:
          description: >-
            A unique identifier for the request that generated the error. This
            can be used to help debug issues with the API.
          type: string
          example: 41deb8d59a9dc9a7-IAD
        errorLink:
          description: A link to the corresponding error documentation.
          type: string
          example: https://docs.cdp.coinbase.com/invoicing/errors#invalid-request
      required:
        - errorType
        - errorMessage
      example:
        errorType: invalid_request
        errorMessage: Invalid request.
        correlationId: 41deb8d59a9dc9a7-IAD
        errorLink: https://docs.cdp.coinbase.com/invoicing/errors#invalid-request
    CryptoPaymentMethod:
      type: object
      required:
        - paymentLinkUrl
      properties:
        paymentLinkUrl:
          type: string
          format: uri
          description: Payment link URL for crypto payments.
          example: https://pay.coinbase.com/pl_01h8441j23abcd1234567890ef
        paymentLinkId:
          type: string
          description: >-
            Payment link ID from PLM (Payment Links Manager) for tracking
            payment status.
          example: 68f7a946db0529ea9b6d3a12
          pattern: ^[0-9a-f]{24}$
        transactionHash:
          type: string
          description: >-
            The blockchain transaction hash for the payment. Only populated when
            invoice status is PAID.
          example: '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef'
    ErrorType:
      description: >-
        The code that indicates the type of error that occurred. These error
        codes can be used to determine how to handle the error.
      type: string
      example: invalid_request
      enum:
        - already_exists
        - bad_gateway
        - forbidden
        - internal_server_error
        - invalid_request
        - not_found
        - rate_limit_exceeded
        - request_canceled
        - service_unavailable
        - timed_out
        - unauthorized
  responses:
    BadRequestError:
      description: Invalid request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            invalid_request:
              value:
                errorType: invalid_request
                errorMessage: Invalid request parameters.
    UnauthorizedError:
      description: Unauthorized.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            unauthorized:
              value:
                errorType: unauthorized
                errorMessage: The request is not properly authenticated.
    ForbiddenError:
      description: User forbidden from performing the action.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            forbidden:
              value:
                errorType: forbidden
                errorMessage: User forbidden from performing the action.
    RateLimitExceeded:
      description: Rate limit exceeded.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            rate_limit_exceeded:
              value:
                errorType: rate_limit_exceeded
                errorMessage: Rate limit exceeded.
    InternalServerError:
      description: Internal server error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            internal_server_error:
              value:
                errorType: internal_server_error
                errorMessage: An internal server error occurred. Please try again later.
  securitySchemes:
    apiKeyAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >
        A JWT signed using your CDP API Key Secret, encoded in base64. Refer to
        the

        [Generate Bearer
        Token](https://docs.cdp.coinbase.com/api-reference/v2/authentication#2-generate-bearer-token)

        section of our Authentication docs for information on how to generate
        your Bearer Token.

````