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

# List payment methods

> Get available payment method configurations for a user



## OpenAPI

````yaml GET /platform/v1/payment-methods
openapi: 3.1.0
info:
  title: MoonPay
  version: 1.0.0
servers:
  - url: https://api.moonpay.com
    description: Production Environment
    variables: {}
  - url: https://api.moonpay.dev
    description: Sandbox Environment
    variables: {}
security: []
tags:
  - name: Assets
  - name: Quote
  - name: Customer
  - name: Identity
  - name: Transactions
paths:
  /platform/v1/payment-methods:
    get:
      summary: List payment methods
      description: Get list of available payment method configs
      operationId: PlatformPaymentMethods_listPaymentMethods
      parameters:
        - name: configs
          in: query
          required: false
          description: When false, omits paymentMethodConfigs from the response.
          schema:
            type: boolean
            default: true
          explode: false
        - name: details
          in: query
          required: false
          description: >-
            When false, omits paymentMethods from the response. Only applicable
            when a customer is authenticated; anonymous requests never return
            stored payment methods.
          schema:
            type: boolean
            default: true
          explode: false
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: >-
                      #/components/schemas/MoonPay.Payments.ListPaymentMethodsResponse
                required:
                  - data
                unevaluatedProperties:
                  not: {}
              examples:
                Full Response:
                  summary: Full Response
                  description: >-
                    200 response when query params are omitted (both default to
                    true).
                  value:
                    data:
                      paymentMethodConfigs:
                        - type: apple_pay
                          capabilities:
                            supportedCurrencies:
                              - USD
                            supportedTransactionTypes:
                              - buy
                            allowsDeletion: false
                            requiresWidget: false
                          availability:
                            active: true
                        - type: card
                          capabilities:
                            supportedCurrencies:
                              - USD
                              - EUR
                              - GBP
                            supportedTransactionTypes:
                              - buy
                            allowsDeletion: true
                            requiresWidget: false
                          availability:
                            active: true
                      paymentMethods:
                        - {}
                        - {}
                        - {}
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DevPlatformApiErrorResponse'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '403':
          description: Access is forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/ListPaymentMethodsUnprocessableEntityError
      security:
        - AccessTokenAuth: []
components:
  schemas:
    MoonPay.Payments.ListPaymentMethodsResponse:
      type: object
      properties:
        paymentMethodConfigs:
          type: array
          items:
            $ref: '#/components/schemas/MoonPay.Payments.PaymentMethod'
          description: List of available payment method configurations
        paymentMethods:
          type: array
          items:
            $ref: '#/components/schemas/MoonPay.Payments.StoredPaymentMethod'
          description: List of stored payment methods available for the customer
      unevaluatedProperties:
        not: {}
    DevPlatformApiErrorResponse:
      type: object
      required:
        - code
        - message
      properties:
        code:
          allOf:
            - $ref: '#/components/schemas/DevPlatformApiErrorCodes'
          description: Code identifying the error type.
          examples:
            - forbidden
            - unauthorized
            - invalid_request
        message:
          type: string
          description: Human-readable error message.
          examples:
            - Forbidden
            - Not authorized
            - One or more request parameters are invalid.
        errors:
          type: array
          items:
            $ref: '#/components/schemas/DevPlatformErrorDetail'
          description: Optional list of field-level error details.
          examples:
            - - field: source.amount
                message: >-
                  Source amount must be a numeric string. Example "100" or
                  "10.25".
      unevaluatedProperties:
        not: {}
      description: Response body returned when a request fails.
    UnauthorizedError:
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: string
          enum:
            - unauthorized
        message:
          type: string
          enum:
            - Not authorized
      unevaluatedProperties:
        not: {}
      description: Missing or invalid credentials.
    ForbiddenError:
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: string
          enum:
            - forbidden
        message:
          type: string
          enum:
            - Forbidden
      unevaluatedProperties:
        not: {}
      description: Insufficient permissions.
    ListPaymentMethodsUnprocessableEntityError:
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: string
          enum:
            - unprocessable_entity
        message:
          type: string
          examples:
            - Could not determine region from IP address
      unevaluatedProperties:
        not: {}
      description: Returned when the request region cannot be determined.
    MoonPay.Payments.PaymentMethod:
      type: object
      required:
        - type
        - capabilities
        - availability
      properties:
        type:
          $ref: '#/components/schemas/PaymentMethodType'
        capabilities:
          allOf:
            - $ref: '#/components/schemas/MoonPay.Payments.PaymentMethodCapabilities'
          description: Details of how the payment method can be used.
        availability:
          allOf:
            - $ref: '#/components/schemas/MoonPay.Payments.PaymentMethodAvailability'
          examples:
            - active: true
      unevaluatedProperties:
        not: {}
    MoonPay.Payments.StoredPaymentMethod:
      anyOf:
        - $ref: '#/components/schemas/MoonPay.Payments.StoredPaymentMethodBase'
        - $ref: '#/components/schemas/MoonPay.Payments.StoredCardPaymentMethod'
      description: A stored payment method.
    DevPlatformApiErrorCodes:
      type: string
      enum:
        - unknown_error
        - unauthorized
        - forbidden
        - not_found
        - invalid_request
        - not_implemented
        - too_many_requests
        - not_allowed
        - conflict
        - unprocessable_entity
        - sse_timeout
        - sse_error
        - service_unavailable
        - requirements_incomplete
        - requirement_not_pending
        - verification_rejected
        - country_mismatch
        - upload_expired
        - unsupported_country
        - verification_pending
        - kyc_not_approved
        - no_outstanding_requirements
        - terms_accepted_at_out_of_range
    DevPlatformErrorDetail:
      type: object
      required:
        - message
      properties:
        field:
          type: string
          description: Field that caused the error.
        message:
          type: string
          description: Human-readable error message for this field.
        details:
          type: object
          unevaluatedProperties: {}
          description: >-
            Extra data that describes the error in more detail, useful when
            debugging or logging. Keys vary by error and are not part of the API
            contract. For example, an amount-limit error includes the limit
            value as "maxBuyAmount" or "minBuyAmount".
      unevaluatedProperties:
        not: {}
    PaymentMethodType:
      type: string
      enum:
        - apple_pay
        - card
        - ach
        - fps
        - fps_open_banking
        - google_pay
        - sepa
        - sepa_open_banking
        - pix
        - paypal
        - venmo
        - revolut_pay
        - moonpay_balance
        - interac
    MoonPay.Payments.PaymentMethodCapabilities:
      type: object
      required:
        - supportedCurrencies
        - supportedTransactionTypes
        - allowsDeletion
        - requiresWidget
      properties:
        supportedCurrencies:
          type: array
          items:
            type: string
          description: >-
            [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) codes of fiat
            currencies supported by this payment method.
          examples:
            - - USD
              - EUR
        supportedTransactionTypes:
          type: array
          items:
            type: string
          description: Transaction types supported by this payment method.
          examples:
            - - buy
        allowsDeletion:
          type: boolean
          description: Whether this payment method can be deleted.
          examples:
            - true
        requiresWidget:
          type: boolean
          description: >-
            Whether this payment method requires the MoonPay widget to complete
            the payment flow.
          examples:
            - false
      unevaluatedProperties:
        not: {}
    MoonPay.Payments.PaymentMethodAvailability:
      type: object
      required:
        - active
      properties:
        active:
          type: boolean
          description: Whether the payment method is available
          examples:
            - true
        reasons:
          type: array
          items:
            type: string
          description: If the payment method is not available, reasons explaining why.
          examples:
            - - Payment method is in maintenance
      unevaluatedProperties:
        not: {}
    MoonPay.Payments.StoredPaymentMethodBase:
      type: object
      required:
        - id
        - type
      properties:
        id:
          type: string
          description: Unique identifier for the stored payment method
          examples:
            - apple_pay_fakeid
        type:
          $ref: '#/components/schemas/PaymentMethodType'
      title: Alternative payment methods
    MoonPay.Payments.StoredCardPaymentMethod:
      type: object
      required:
        - cardType
        - brand
        - last4
        - expirationMonth
        - expirationYear
        - availability
      properties:
        cardType:
          allOf:
            - $ref: '#/components/schemas/MoonPay.Payments.CardType'
          examples:
            - credit
        brand:
          allOf:
            - $ref: '#/components/schemas/MoonPay.Payments.CardBrand'
          description: The card network brand
          examples:
            - visa
        last4:
          type: string
          description: Last 4 digits of the card number
          examples:
            - '1234'
        expirationMonth:
          type: string
          description: Expiration month as 2-digit string
          examples:
            - '03'
        expirationYear:
          type: string
          description: Expiration year as 4-digit string
          examples:
            - '2028'
        availability:
          allOf:
            - $ref: '#/components/schemas/MoonPay.Payments.CardAvailability'
          description: Current availability of this stored card
          examples:
            - active: true
      unevaluatedProperties:
        not: {}
      allOf:
        - $ref: '#/components/schemas/MoonPay.Payments.StoredPaymentMethodBase'
      title: Card payment method
    MoonPay.Payments.CardType:
      type: string
      enum:
        - credit
        - debit
        - unknown
      description: 'The type of card: credit, debit, or unknown.'
    MoonPay.Payments.CardBrand:
      type: string
      enum:
        - visa
        - mastercard
        - maestro
        - american_express
        - other
      description: The card network brand.
    MoonPay.Payments.CardAvailability:
      type: object
      required:
        - active
      properties:
        active:
          type: boolean
          description: Whether the card is available
          examples:
            - true
        reasons:
          type: array
          items:
            $ref: '#/components/schemas/MoonPay.Payments.CardAvailabilityReason'
          description: If the card is not available, reasons explaining why.
          examples:
            - - card_expired
      unevaluatedProperties:
        not: {}
      description: Availability information for a stored card payment method.
    MoonPay.Payments.CardAvailabilityReason:
      type: string
      enum:
        - card_expired
        - card_declined
        - card_blocked
      description: Reasons why a stored card is not available.
  securitySchemes:
    AccessTokenAuth:
      type: http
      scheme: bearer
      description: |-
        Bearer authentication header using an access token.

        Example: `Authorization: Bearer <accessToken>`

````