> ## 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 available payment methods



## OpenAPI

````yaml GET /payments/v1/payment-method-config
openapi: 3.0.0
info:
  title: Ramps
  version: 1.0.0
servers:
  - url: https://api.moonpay.com
security: []
tags:
  - name: On-ramp
    description: Get quotes and transaction details for buying cryptocurrencies.
  - name: Off-ramp
    description: Get quotes and transaction details for selling cryptocurrencies.
  - name: Data
    description: >-
      Get currently supported countries, currencies, and payment methods. Also
      check the customers's IP address restrictions.
  - name: DefiToken
    description: Retrieve token data and token lists for DeFi assets.
paths:
  /payments/v1/payment-method-config:
    get:
      tags:
        - Data
      summary: List available payment methods and their capabilities/limits
      parameters:
        - in: query
          name: currencyCode
          required: true
          schema:
            type: string
            example: USD
          description: ISO-4217 currency code (e.g., USD, EUR).
        - in: query
          name: countryCode
          required: true
          schema:
            type: string
            example: USA
          description: >-
            ISO3 country code of residence (e.g., USA, GBR, PRT). Used to
            determine region when provided.
        - in: query
          name: stateOfResidence
          required: false
          schema:
            type: string
            example: NY
          description: >
            State of residence (ISO2). **Required when `countryCodeOfResidence`
            = US**.
        - in: query
          name: transactionType
          required: true
          schema:
            type: string
            enum:
              - buy
              - sell
          description: Transaction type.
      responses:
        '200':
          description: >-
            Array of available payment methods and their status for the
            requested region.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentMethodsResponse'
              examples:
                sample:
                  value:
                    - type: credit_debit_card
                      displayName: Debit Card
                      iconUrl: >-
                        https://static.moonpay.com/widget/payment_methods/CardGeneric.svg
                      availability:
                        active: true
                        unavailableReason: null
                      capabilities:
                        supportsRecurring: true
                        settlementSpeed: instant
                      limits:
                        perTransaction:
                          limit: 10000
                          currencyCode: USD
                        daily:
                          limit: 10000
                          currencyCode: USD
                        monthly:
                          limit: 50000
                          currencyCode: USD
                      scheduledMaintenances: []
                    - type: bank_transfer
                      displayName: Bank Transfer
                      iconUrl: >-
                        https://static.moonpay.com/widget/payment_methods/BankTransfer.svg
                      availability:
                        active: false
                        unavailableReason: Temporarily unavailable in region
                      capabilities:
                        supportsRecurring: false
                        settlementSpeed: 1_3_days
                      limits:
                        perTransaction:
                          limit: 25000
                          currencyCode: USD
                        daily:
                          limit: 25000
                          currencyCode: USD
                        monthly:
                          limit: 50000
                          currencyCode: USD
                      scheduledMaintenances:
                        - startAt: '2025-11-20T01:00:00Z'
                          endAt: '2025-11-20T03:00:00Z'
                          impact: degraded
                          lastUpdated: '2025-11-12T10:00:00Z'
                          statusPageUrl: https://status.moonpay.com/incidents/abc123
        '400':
          description: Invalid or missing parameters (e.g., region could not be resolved).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthenticated (missing/invalid API key).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - secretApiKey: []
components:
  schemas:
    PaymentMethodsResponse:
      type: array
      items:
        $ref: '#/components/schemas/PaymentMethod'
    Error:
      type: object
      description: >-
        Standard error response. See [Errors](/api-reference/widget/errors) for
        the full code catalog.
      properties:
        moonPayErrorCode:
          type: string
          description: >-
            Stable, machine-readable error code. System codes are prefixed
            `1_SYS_` (general) or `4_SYS_` (request validation); domain codes
            are prefixed `5_`. `1_SYS_UNKNOWN` with a 4xx status indicates a
            legacy validation error. Read `message` for the cause. See
            [Errors](/api-reference/widget/errors).
          example: 4_SYS_BAD_REQUEST
        message:
          type: string
          description: >-
            Human-readable description of the error. May change over time.
            Branch on `moonPayErrorCode` and the HTTP status, not on this text.
        type:
          type: string
          description: >-
            The error class name, e.g. `BadRequestError`, `UnauthorizedError`,
            `MoonPayApiError`.
        errors:
          type: array
          description: >-
            Field-level validation details, when the error was caused by invalid
            input. Empty or absent otherwise.
          items:
            type: object
            properties:
              property:
                type: string
                description: The invalid field.
              message:
                type: string
                description: Why the field is invalid.
              children:
                type: array
                items:
                  type: object
                description: Nested validation errors for object fields.
      required:
        - moonPayErrorCode
        - message
        - type
    PaymentMethod:
      type: object
      required:
        - type
        - displayName
        - iconUrl
        - availability
        - capabilities
        - limits
        - scheduledMaintenances
      properties:
        type:
          type: string
          description: Transaction payment method type.
          example: credit_debit_card
        displayName:
          type: string
          example: Credit and Debit Card
        iconUrl:
          type: string
          format: uri
          nullable: true
          example: https://static.moonpay.com/widget/payment_methods/CardGeneric.svg
        availability:
          $ref: '#/components/schemas/PaymentMethodAvailabilityResponse'
        capabilities:
          $ref: '#/components/schemas/PaymentMethodCapabilitiesResponse'
        limits:
          $ref: '#/components/schemas/PaymentMethodAllLimitsResponse'
        scheduledMaintenances:
          type: array
          items:
            $ref: '#/components/schemas/ScheduledMaintenanceResponse'
    PaymentMethodAvailabilityResponse:
      type: object
      required:
        - active
      properties:
        active:
          type: boolean
          example: true
        unavailableReason:
          type: string
          nullable: true
          description: Optional reason when `active=false`.
          example: maintenance
    PaymentMethodCapabilitiesResponse:
      type: object
      required:
        - supportsRecurring
        - settlementSpeed
      properties:
        supportsRecurring:
          type: boolean
          example: true
        settlementSpeed:
          type: string
          enum:
            - instant
            - same_day
            - 1_3_days
            - 3_5_days
          example: instant
    PaymentMethodAllLimitsResponse:
      type: object
      properties:
        perTransaction:
          $ref: '#/components/schemas/PaymentMethodLimitResponse'
        daily:
          $ref: '#/components/schemas/PaymentMethodLimitResponse'
        monthly:
          $ref: '#/components/schemas/PaymentMethodLimitResponse'
    ScheduledMaintenanceResponse:
      type: object
      required:
        - startAt
        - endAt
        - impact
      properties:
        startAt:
          type: string
          format: date-time
          example: '2025-11-20T01:00:00Z'
        endAt:
          type: string
          format: date-time
          example: '2025-11-20T03:00:00Z'
        impact:
          type: string
          enum:
            - none
            - partial
            - degraded
            - unavailable
          example: degraded
        lastUpdated:
          type: string
          format: date-time
          nullable: true
          example: '2025-11-12T10:00:00Z'
        statusPageUrl:
          type: string
          format: uri
          nullable: true
          example: https://status.moonpay.com/incidents/abc123
    PaymentMethodLimitResponse:
      type: object
      required:
        - limit
        - currencyCode
      properties:
        limit:
          type: number
          nullable: true
          description: The numeric limit for the interval.
          example: 500000
        currencyCode:
          type: string
          description: ISO-4217 currency code for the limit value.
          example: USD
  securitySchemes:
    secretApiKey:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        Your secret API key, passed as `Authorization: Api-Key <secret key>`.
        Secret keys are prefixed with `sk_test_` (sandbox) or `sk_live_`
        (production) and must only be used server-side. Never expose them in
        client code. Find your keys on the [API keys
        page](https://dashboard.moonpay.com/developers/api-keys) of the
        dashboard. See
        [Authentication](/api-reference/widget/using-the-api#authentication).

````