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

> ## Agent Instructions
> Before reading these docs, install the relevant Circle Skill to get pre-loaded context — skills are LLM-optimized and cover architecture decisions, correct flows, and common pitfalls. In Claude Code: run /plugin marketplace add circlefin/skills then /plugin install circle-skills@circle. With Vercel Skills CLI: run npx skills add circlefin/skills. Available skills: use-usdc https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-usdc/SKILL.md (balances, transfers, approvals on EVM and Solana); EURC has no skill — see https://developers.circle.com/stablecoins/what-is-eurc.md; bridge-stablecoin https://github.com/circlefin/skills/blob/master/plugins/circle/skills/bridge-stablecoin/SKILL.md (crosschain transfers via CCTP, USDC, EURC, and third-party assets); use-arc https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-arc/SKILL.md (Arc chain config, contract deployment, USDC bridging — Arc docs: https://docs.arc.io/llms.txt); use-circle-wallets https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-circle-wallets/SKILL.md (choose wallet type); use-developer-controlled-wallets https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-developer-controlled-wallets/SKILL.md (custodial wallets for payouts and treasury); use-user-controlled-wallets https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-user-controlled-wallets/SKILL.md (embedded wallets with Web2 login); use-modular-wallets https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-modular-wallets/SKILL.md (smart contract wallets with passkeys and ERC-4337); use-gateway https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-gateway/SKILL.md (unified USDC balance, nanopayments); use-smart-contract-platform https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-smart-contract-platform/SKILL.md (deploy, interact, monitor contracts). Pair any skill with the Circle MCP server for live SDK signatures, contract addresses, and chain IDs: {"mcpServers":{"circle":{"url":"https://api.circle.com/v1/codegen/mcp"}}}.
> Read the product overview first. Each product has an overview explaining when and why to use it. Read it before quickstarts.
> Pick the right wallet type. Developer-controlled (you hold keys), user-controlled (end user holds keys via PIN/social login), or modular (smart contract wallets with passkeys). See https://developers.circle.com/wallets.md.
> Use CCTP V2 for crosschain transfers. CCTP natively transfers USDC and EURC via burn-and-mint, and supports permissionless wrapping of third-party assets via lock-and-mint. V1 is legacy; always use V2 unless V1 is specified or the chain requires it (Noble, Sui, and Aptos still require V1). Migration guide: https://developers.circle.com/cctp/migration-from-v1-to-v2.md.
> Use Bridge Kit for frontend bridging. Wraps CCTP with a simpler SDK for user-facing apps. Use CCTP directly for backend transfers.
> Gas Station vs Paymaster. Gas Station sponsors gas for Circle Wallet transactions. Paymaster lets users pay gas in USDC. Different use cases — read both overviews.
> Gateway Nanopayments for sub-cent payments. Gasless USDC micropayments down to $0.000001 via x402 and batched settlement. For pay-per-request APIs, AI agent payments, streaming.
> Look up USDC addresses per chain. Never hardcode — use https://developers.circle.com/stablecoins/usdc-contract-addresses.md.
> Prefer SDKs over raw API calls. Node.js and Python SDKs handle auth, retries, and errors.
> API key required. Bearer token in Authorization header. Testnet and mainnet use separate keys and may use different base URLs depending on the product.
> Set up webhooks when available. Most operations are async. Webhooks deliver transaction confirmations and state changes.
> When calling list endpoints, paginate using pageSize and pageAfter until no nextPageAfter cursor is returned—stopping at the first page silently misses records.
> Building an AI agent? Start with the Agent Stack—Circle CLI, agent wallets, and nanopayments built for autonomous use cases: https://developers.circle.com/agent-stack.md.

# List all payment intents



## OpenAPI

````yaml openapi/payments.yaml get /v1/paymentIntents
openapi: 3.0.2
info:
  version: ${version}
  title: Crypto Deposits API
  description: >
    The Circle Payments API allows you to take payments from your end users via
    traditional methods such as debit & credit cards and receive settlement in
    USDC.


    The Circle Payments API has been designed with any business or internet
    commerce in mind, not just crypto applications, and it's based on Circle's
    extensive experience processing millions of card payments since 2014.
servers:
  - url: https://api-sandbox.circle.com
  - url: https://api.circle.com
security: []
tags:
  - name: Payments
    description: Create, cancel, refund, and get updates on card payments.
  - name: Crypto Payment Intents
    description: Create and track intent for end user to pay via crypto.
  - name: Crypto Payment Customers
    description: >-
      Create and manage Travel Rule customers and customer wallets for crypto
      payment attribution.
  - name: Crypto Payment Refund Addresses
    description: Create refund address-book entries for crypto payment refunds.
paths:
  /v1/paymentIntents:
    get:
      tags:
        - Crypto Payment Intents
      summary: List all payment intents
      operationId: listPaymentIntents
      parameters:
        - name: status
          description: >-
            Filters by the most recent `timeline.status` within the payment
            intent.
          in: query
          required: false
          schema:
            type: string
            enum:
              - created
              - pending
              - complete
              - expired
              - failed
        - name: context
          description: >-
            Filters by the most recent `timeline.context` within the payment
            intent.
          in: query
          required: false
          schema:
            type: string
            enum:
              - underpaid
              - paid
              - overpaid
        - $ref: '#/components/parameters/From'
        - $ref: '#/components/parameters/To'
        - $ref: '#/components/parameters/PageBefore'
        - $ref: '#/components/parameters/PageAfter'
        - $ref: '#/components/parameters/PageSize'
      responses:
        '200':
          description: Successfully retrieved a list of payment intents.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/XRequestId'
          content:
            application/json:
              schema:
                title: ListPaymentIntentsResponse
                properties:
                  data:
                    type: array
                    items:
                      anyOf:
                        - $ref: '#/components/schemas/PaymentIntent'
                        - $ref: '#/components/schemas/ContinuousPaymentIntent'
              examples:
                Transient Payment Intent:
                  value:
                    data:
                      - id: 8755d0ea-14f9-4259-b092-de23c14b6568
                        amount:
                          amount: '3.14'
                          currency: USD
                        amountPaid:
                          amount: '0.00'
                          currency: USD
                        settlementCurrency: USD
                        paymentMethods:
                          - type: blockchain
                            chain: ETH
                            address: '0x8381470ED67C3802402dbbFa0058E8871F017A6F'
                        paymentIds: []
                        timeline:
                          - status: created
                            time: '2022-07-21T20:13:35.579331Z'
                        createDate: '2022-07-21T20:13:35.578678Z'
                        updateDate: '2022-07-21T20:19:24.859052Z'
                Continuous Payment Intent:
                  value:
                    data:
                      - id: e2e90ba3-9d1f-490d-9460-24ac6eb55a1b
                        currency: USD
                        settlementCurrency: USD
                        amountPaid:
                          amount: '0.00'
                          currency: USD
                        paymentMethods:
                          - type: blockchain
                            chain: ETH
                            address: '0x8381470ED67C3802402dbbFa0058E8871F017A6F'
                        timeline:
                          - status: created
                            time: '2023-01-21T20:13:35.579331Z'
                        type: continuous
                        createDate: '2023-01-21T20:13:35.578678Z'
                        updateDate: '2023-01-21T20:13:35.578678Z'
        '401':
          $ref: '#/components/responses/NotAuthorized'
      security:
        - bearerAuth: []
components:
  parameters:
    From:
      name: from
      description: Queries items created since the specified date-time (inclusive).
      in: query
      required: false
      schema:
        type: string
        format: date-time
        example: '2020-04-10T02:13:30.000Z'
    To:
      name: to
      description: Queries items created before the specified date-time (inclusive).
      in: query
      required: false
      schema:
        type: string
        format: date-time
        example: '2020-04-10T02:13:30.000Z'
    PageBefore:
      name: pageBefore
      description: >
        A collection ID value used for pagination.


        It marks the exclusive end of a page. When provided, the collection
        resource will return the next `n` items before

        the id, with `n` being specified by `pageSize`.


        The items will be returned in the natural order of the collection.


        The resource will return the first page if neither `pageAfter` nor
        `pageBefore` are specified.


        SHOULD NOT be used in conjuction with pageAfter.
      in: query
      required: false
      schema:
        type: string
    PageAfter:
      name: pageAfter
      description: >
        A collection ID value used for pagination.


        It marks the exclusive begin of a page. When provided, the collection
        resource will return the next `n` items after

        the id, with `n` being specified by `pageSize`.


        The items will be returned in the natural order of the collection.


        The resource will return the first page if neither `pageAfter` nor
        `pageBefore` are specified.


        SHOULD NOT be used in conjuction with pageBefore.
      in: query
      required: false
      schema:
        type: string
    PageSize:
      name: pageSize
      description: >
        Limits the number of items to be returned.


        Some collections have a strict upper bound that will disregard this
        value. In case the specified value is higher

        than the allowed limit, the collection limit will be used.


        If avoided, the collection will determine the page size itself.
      in: query
      required: false
      schema:
        type: integer
        minimum: 1
        example: 5
  headers:
    XRequestId:
      description: >-
        Universally unique identifier (UUID v4) for the request. Helpful for
        identifying a request when communicating with Circle support.
      schema:
        type: string
        format: uuid
        example: 2adba88e-9d63-44bc-b975-9b6ae3440dde
  schemas:
    PaymentIntent:
      type: object
      required:
        - amount
        - settlementCurrency
        - paymentMethods
      properties:
        id:
          type: string
          description: Unique system generated identifier for the entity.
          format: uuid
          example: b8627ae8-732b-4d25-b947-1df8f4007a29
        amount:
          $ref: '#/components/schemas/CryptoPaymentsMoney'
        amountPaid:
          $ref: '#/components/schemas/CryptoPaymentsMoney'
        amountRefunded:
          $ref: '#/components/schemas/CryptoPaymentsMoney'
        settlementCurrency:
          description: Desired currency for the payments to settle in.
          type: string
          enum:
            - USD
        paymentMethods:
          type: array
          items:
            $ref: '#/components/schemas/PaymentMethodBlockchain'
        fees:
          type: array
          items:
            $ref: '#/components/schemas/PaymentIntentFees'
        paymentIds:
          description: List of associated payments.
          type: array
          items:
            type: string
            format: uuid
            example: 69808f36-3e5e-4f37-bf82-ca79e4d70fc1
        refundIds:
          description: List of associated refunds.
          type: array
          items:
            type: string
            format: uuid
            example: 425dca6d-ac79-43b6-b0f9-43fdc51de91b
        timeline:
          description: State management timeline.
          type: array
          items:
            $ref: '#/components/schemas/Timeline'
        expiresOn:
          $ref: '#/components/schemas/UtcTimestamp'
          description: >-
            The time at which the transient payment intent expires. Once
            expired, the payment intent will no longer accept payments. Must be
            no more than 24 hours after the time of creation. Values beyond 24
            hours, or values that are missing, malformed, or in the past, return
            error `1128`.
        updateDate:
          $ref: '#/components/schemas/UtcTimestamp'
        createDate:
          $ref: '#/components/schemas/UtcTimestamp'
        merchantWalletId:
          $ref: '#/components/schemas/MerchantWalletId'
        purposeOfTransfer:
          $ref: '#/components/schemas/PaymentIntentPurposeOfTransfer'
        customerExternalRef:
          $ref: '#/components/schemas/PaymentCustomerExternalRef'
          description: A customer-supplied reference to reconcile transactions.
        customerWalletId:
          type: string
          format: uuid
          description: >-
            Identifier of the customer wallet linked to the transient payment
            intent, when one was supplied at creation time.
          example: 9b8a7d6c-5e4f-4321-9c8b-123456789abc
    ContinuousPaymentIntent:
      type: object
      required:
        - currency
        - settlementCurrency
        - paymentMethods
        - type
      properties:
        id:
          $ref: '#/components/schemas/Id'
        currency:
          description: Desired currency of the payment.
          type: string
          enum:
            - USD
        amountPaid:
          $ref: '#/components/schemas/CryptoPaymentsMoney'
        amountRefunded:
          $ref: '#/components/schemas/CryptoPaymentsMoney'
        settlementCurrency:
          description: Desired currency for the payments to settle in.
          type: string
          enum:
            - USD
        paymentMethods:
          type: array
          items:
            $ref: '#/components/schemas/PaymentMethodBlockchain'
        fees:
          type: array
          items:
            $ref: '#/components/schemas/PaymentIntentFees'
        timeline:
          description: State management timeline.
          type: array
          items:
            $ref: '#/components/schemas/Timeline'
        updateDate:
          $ref: '#/components/schemas/UtcTimestamp'
        createDate:
          $ref: '#/components/schemas/UtcTimestamp'
        type:
          type: string
          enum:
            - continuous
        merchantWalletId:
          $ref: '#/components/schemas/MerchantWalletId'
        purposeOfTransfer:
          $ref: '#/components/schemas/PaymentIntentPurposeOfTransfer'
        customerExternalRef:
          $ref: '#/components/schemas/PaymentCustomerExternalRef'
          description: A customer-supplied reference to reconcile transactions.
    CryptoPaymentsMoney:
      type: object
      required:
        - amount
        - currency
      properties:
        amount:
          description: Magnitude of the amount, in units of the currency, with a `.`.
          type: string
          example: '3.14'
        currency:
          description: Currency code.
          type: string
          enum:
            - USD
            - EUR
    PaymentMethodBlockchain:
      type: object
      required:
        - type
        - chain
      properties:
        type:
          type: string
          enum:
            - blockchain
        chain:
          type: string
          description: The blockchain network for the payment.
          enum:
            - ALGO
            - ARB
            - AVAX
            - BASE
            - BTC
            - ETH
            - HBAR
            - NOBLE
            - OP
            - POLY
            - SOL
            - SUI
            - XLM
        address:
          type: string
          example: '0x8381470ED67C3802402dbbFa0058E8871F017A6F'
    PaymentIntentFees:
      type: object
      required:
        - type
        - amount
        - currency
      properties:
        type:
          type: string
          enum:
            - blockchainLeaseFee
            - totalPaymentFees
        amount:
          description: Magnitude of the amount, in units of the currency, with a `.`.
          type: string
          example: '3.14'
        currency:
          description: Currency code.
          type: string
          enum:
            - USD
    Timeline:
      type: object
      required:
        - status
        - time
      properties:
        status:
          type: string
          enum:
            - created
            - pending
            - complete
            - expired
            - failed
            - refunded
        context:
          type: string
          enum:
            - underpaid
            - paid
            - overpaid
        reason:
          type: string
          enum:
            - requested_by_merchant
            - fee_collection_failed
        time:
          description: ISO-8601 UTC date/time format.
          type: string
          format: date-time
    UtcTimestamp:
      type: string
      description: ISO-8601 UTC date/time format.
      example: '2020-04-10T02:13:30.000Z'
    MerchantWalletId:
      type: string
      description: Unique system generated identifier for the wallet of the merchant.
      maxLength: 36
      example: '212000'
    PaymentIntentPurposeOfTransfer:
      type: string
      description: >
        Payment reason code describing the purpose of the transfer for the
        payment intent.


        Conditionally required: it must be supplied when the entity's legal
        entity is Circle SG (`CIRCLE_SG`), or Circle Inc (`CIRCLE_INC`) with
        Managed Payments enabled. It is optional for all other legal entities.


        `PMT006` (Transfer to own account) is not allowed for payment intents. A
        missing value (when required) or a disallowed/invalid value returns
        error code `INVALID_PURPOSE_OF_TRANSFER`.
      enum:
        - PMT000
        - PMT001
        - PMT002
        - PMT003
        - PMT004
        - PMT005
        - PMT007
        - PMT008
        - PMT009
        - PMT010
        - PMT011
        - PMT012
        - PMT013
        - PMT014
        - PMT015
        - PMT016
        - PMT017
        - PMT018
        - PMT019
        - PMT020
        - PMT021
        - PMT022
        - PMT023
        - PMT024
        - PMT025
        - PMT026
        - PMT027
        - PMT028
        - PMT029
        - PMT030
      example: PMT001
    PaymentCustomerExternalRef:
      type: string
      format: uuid
      description: >-
        A customer-supplied reference for reconciliation purposes, used on
        payment intents, payments, and refunds. Must be a UUID. Payouts and
        transfers use a separate 21-character limit schema.
      example: 310c458a-18eb-4cbd-8a9a-586d9448ae69
    Id:
      type: string
      description: Unique system generated identifier for the entity.
      format: uuid
      example: b8627ae8-732b-4d25-b947-1df8f4007a29
  responses:
    NotAuthorized:
      description: >-
        The request has not been applied because it lacks valid authentication
        credentials.
      headers:
        X-Request-Id:
          $ref: '#/components/headers/XRequestId'
      content:
        application/json:
          schema:
            type: object
            title: NotAuthorized
            required:
              - code
              - message
            properties:
              code:
                type: integer
                example: 400
              message:
                type: string
                example: Something went wrong.
            example:
              code: 401
              message: Malformed authorization.
          examples:
            response:
              value:
                code: 401
                message: Malformed authorization.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````