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

# List customer payment methods

> Use when you need a customer's saved payment methods across every connected gateway, including whether each can be auto-charged. Only gateways that can list saved methods are included.



## OpenAPI

````yaml /api-reference/openapi.json get /customers/{id}/payment-methods
openapi: 3.0.1
info:
  title: Flexprice API
  description: Flexprice API Service
  contact:
    name: API Support
  license:
    name: AGPL-3.0
    url: https://www.gnu.org/licenses/agpl-3.0.html
  version: '1.0'
servers:
  - url: https://us.api.flexprice.io/v1
    description: US Region
  - url: https://api.cloud.flexprice.io/v1
    description: India Region
security: []
paths:
  /customers/{id}/payment-methods:
    get:
      tags:
        - Customers
      summary: List customer payment methods
      description: >-
        Use when you need a customer's saved payment methods across every
        connected gateway, including whether each can be auto-charged. Only
        gateways that can list saved methods are included.
      operationId: listCustomerPaymentMethods
      parameters:
        - name: id
          in: path
          description: Customer ID
          required: true
          schema:
            type: string
        - name: providers
          in: query
          description: Limit to these payment gateways
          style: form
          explode: true
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SavedPaymentMethodsResponse'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errors.ErrorResponse'
        '404':
          description: Customer not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errors.ErrorResponse'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errors.ErrorResponse'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    SavedPaymentMethodsResponse:
      type: object
      properties:
        providers:
          type: array
          items:
            $ref: '#/components/schemas/ProviderSavedPaymentMethods'
    errors.ErrorResponse:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/errors.ErrorCode'
        http_status_code:
          type: integer
        message:
          type: string
      x-speakeasy-name-override: ErrorResponse
    ProviderSavedPaymentMethods:
      type: object
      properties:
        error:
          $ref: '#/components/schemas/ProviderError'
        items:
          type: array
          items:
            $ref: '#/components/schemas/SavedPaymentMethod'
        provider:
          $ref: '#/components/schemas/types.PaymentGatewayType'
    errors.ErrorCode:
      type: string
      enum:
        - http_client_error
        - system_error
        - internal_error
        - not_found
        - already_exists
        - version_conflict
        - validation_error
        - invalid_operation
        - permission_denied
        - database_error
        - service_unavailable
        - too_many_requests
        - not_implemented
      x-enum-varnames:
        - ErrCodeHTTPClient
        - ErrCodeSystemError
        - ErrCodeInternalError
        - ErrCodeNotFound
        - ErrCodeAlreadyExists
        - ErrCodeVersionConflict
        - ErrCodeValidation
        - ErrCodeInvalidOperation
        - ErrCodePermissionDenied
        - ErrCodeDatabase
        - ErrCodeServiceUnavailable
        - ErrCodeTooManyRequests
        - ErrCodeNotImplemented
      x-speakeasy-name-override: ErrorCode
    ProviderError:
      type: object
      properties:
        message:
          type: string
    SavedPaymentMethod:
      type: object
      properties:
        can_auto_charge:
          type: boolean
          description: >-
            Capability, not permission: could this be charged with nobody
            present.

            True for any active Chargebee or Stripe card (both vault off-session
            by

            construction); false for a Razorpay token without a mandate.
        card:
          $ref: '#/components/schemas/SavedCardDetails'
        id:
          type: string
        instantly_chargeable:
          type: boolean
        is_default:
          type: boolean
          description: |-
            Which method to use when several are saved at this provider.
            Scoped to the provider: two providers means two defaults.
        provider:
          $ref: '#/components/schemas/types.PaymentGatewayType'
        recurring:
          $ref: '#/components/schemas/SavedRecurringPaymentDetails'
        status:
          $ref: '#/components/schemas/types.PaymentMethodStatus'
        type:
          $ref: '#/components/schemas/types.PaymentMethodType'
        upi:
          $ref: '#/components/schemas/SavedUPIDetails'
    types.PaymentGatewayType:
      type: string
      enum:
        - stripe
        - razorpay
        - nomod
        - moyasar
        - paddle
        - whop
        - chargebee
      x-enum-varnames:
        - PaymentGatewayTypeStripe
        - PaymentGatewayTypeRazorpay
        - PaymentGatewayTypeNomod
        - PaymentGatewayTypeMoyasar
        - PaymentGatewayTypePaddle
        - PaymentGatewayTypeWhop
        - PaymentGatewayTypeChargebee
      x-speakeasy-name-override: PaymentGatewayType
    SavedCardDetails:
      type: object
      properties:
        brand:
          type: string
        exp_month:
          type: integer
        exp_year:
          type: integer
        last4:
          type: string
    SavedRecurringPaymentDetails:
      type: object
      properties:
        auto_chargeable_till:
          type: string
        max_amount:
          type: string
        status:
          $ref: '#/components/schemas/types.RecurringPaymentStatus'
    types.PaymentMethodStatus:
      type: string
      enum:
        - ACTIVE
        - INACTIVE
        - EXPIRED
      x-enum-varnames:
        - PaymentMethodStatusActive
        - PaymentMethodStatusInactive
        - PaymentMethodStatusExpired
      x-speakeasy-name-override: PaymentMethodStatus
    types.PaymentMethodType:
      type: string
      enum:
        - CARD
        - ACH
        - OFFLINE
        - CREDITS
        - PAYMENT_LINK
        - UPI
      x-enum-varnames:
        - PaymentMethodTypeCard
        - PaymentMethodTypeACH
        - PaymentMethodTypeOffline
        - PaymentMethodTypeCredits
        - PaymentMethodTypePaymentLink
        - PaymentMethodTypeUPI
      x-speakeasy-name-override: PaymentMethodType
    SavedUPIDetails:
      type: object
      properties:
        vpa:
          type: string
    types.RecurringPaymentStatus:
      type: string
      enum:
        - PENDING
        - ACTIVE
        - PAUSED
        - REJECTED
        - CANCELLED
        - EXPIRED
        - UNKNOWN
      x-enum-varnames:
        - RecurringPaymentStatusPending
        - RecurringPaymentStatusActive
        - RecurringPaymentStatusPaused
        - RecurringPaymentStatusRejected
        - RecurringPaymentStatusCancelled
        - RecurringPaymentStatusExpired
        - RecurringPaymentStatusUnknown
      x-speakeasy-name-override: RecurringPaymentStatus
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      description: Enter your API key in the format *x-api-key &lt;api-key&gt;**
      name: x-api-key
      in: header

````