# List available payment methods

> Query the payment methods available for the current order context.

```yaml
openapi: 3.1.0
info:
  title: List available payment methods
  version: 1.0.0
  description: Query the payment methods available for the current order context.
paths:
  /v1/txn/consultPaymentMethod:
    post:
      summary: List available payment methods
      description: Query the payment methods available for the current order context.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                appId:
                  type: string
                  description: Application or site identifier assigned by Onerway. It identifies
                    the merchant application that starts this query.
                country:
                  type: string
                  description: Customer country or region code, using the two-letter [ISO 3166-1
                    alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
                    format. Onerway uses it to match available payment methods
                    for that region.
                merchantNo:
                  type: string
                  description: Merchant number assigned by Onerway. See
                    [Setup](/payments/get-started/setup#retrieve-your-credentials)
                    for how to obtain it.
                orderAmount:
                  type: string
                  description: Order amount as a decimal string in the currency specified by
                    `orderCurrency`. Format and minimum-amount rules follow
                    [currency and amount
                    validation](/payments/get-started/currency-and-amount).
                orderCurrency:
                  type: string
                  description: Order currency, using a three-letter [ISO
                    4217](https://en.wikipedia.org/wiki/ISO_4217) currency code
                    that matches `orderAmount`.
                osType:
                  type: string
                  description: Operating system type for mobile or app-based payment scenarios.
                  enum:
                    - IOS
                    - ANDROID
                  x-enum-descriptions:
                    IOS: iOS device.
                    ANDROID: Android device.
                  x-onerway-required: conditional
                  x-onerway-condition:
                    - Required when `paymentMode` is not `WEB`.
                paymentMode:
                  type: string
                  description: Payment mode indicating the transaction platform or environment.
                    Defaults to `WEB` when omitted.
                  enum:
                    - WEB
                    - APP
                    - WAP
                  x-enum-descriptions:
                    WEB: Desktop browser payment.
                    APP: Native mobile app payment. Submit `osType` together with this value.
                    WAP: Mobile browser payment. Submit `osType` together with this value.
                sign:
                  type: string
                  description: Request signature string. See [Request
                    signing](/payments/get-started/request-signing) for how to
                    generate it.
                subProductType:
                  type: string
                  description: Payment-method category filter. When provided, Onerway returns only
                    payment methods that support this transaction processing
                    mode; when omitted, the available methods are based on the
                    other order parameters.
                  enum:
                    - DIRECT
                    - SUBSCRIBE
                    - INSTALLMENT
                    - TOKEN
                    - AUTO_DEBIT
                  x-enum-descriptions:
                    DIRECT: Direct payment.
                    SUBSCRIBE: Subscription payment.
                    INSTALLMENT: Installment payment.
                    TOKEN: Token payment.
                    AUTO_DEBIT: Auto debit.
                  x-onerway-constraints:
                    - kind: consistency
                      text: The shared enum is a value dictionary only. Actual availability still
                        depends on product compatibility, merchant
                        configuration, and the current order context.
              required:
                - appId
                - country
                - merchantNo
                - orderAmount
                - orderCurrency
                - sign
            examples:
              list-available-payment-methods:
                summary: List available payment methods
                value:
                  appId: replace_with_app_id
                  country: US
                  merchantNo: replace_with_merchant_no
                  orderAmount: "99.99"
                  orderCurrency: USD
                  osType: IOS
                  paymentMode: APP
                  sign: "{{SIGN}}"
                  subProductType: DIRECT
      responses:
        "200":
          description: Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  respCode:
                    type: string
                    description: Response code returned by Onerway. `20000` means the request was
                      processed successfully; other values indicate failure or
                      an exception. See [Response
                      codes](/payments/api-reference/response-codes).
                  respMsg:
                    type: string
                    description: Human-readable message for the response code.
                  data:
                    type: array
                    description: Payment methods available for the current order context.
                    items:
                      type: object
                      properties:
                        productType:
                          type: string
                          description: Product category for the payment method.
                          enum:
                            - ALL
                            - CARD
                            - LPMS
                            - PAYMENT_CODE
                            - ORDER_CODE
                          x-enum-descriptions:
                            ALL: Aggregated checkout. Used only for checkout scenarios to open the hosted
                              checkout page.
                            CARD: Card payment.
                            LPMS: Local payment method.
                            PAYMENT_CODE: Payment code. The merchant scans the customer payment code.
                            ORDER_CODE: Order code. The customer scans the merchant order code.
                          x-onerway-constraints:
                            - kind: consistency
                              text: The shared enum is a value dictionary only. Actual availability still
                                depends on product compatibility, merchant
                                configuration, and the current order context.
                            - kind: rule
                              text: Wallet records (`ApplePay`, `GooglePay`) are returned with `LPMS` for
                                classification only. When creating a direct
                                transaction for a wallet, submit
                                `productType=CARD` with `subProductType=DIRECT`.
                        paymentMethod:
                          type: string
                          description: Payment method identifier, used to distinguish the specific card
                            brand, wallet, or local payment method.
                        paymentMethodDetail:
                          type:
                            - object
                            - "null"
                          properties:
                            paymentMethodName:
                              type: string
                              description: Brand display name for the payment method.
                            logos:
                              type: array
                              description: Payment-method logo list for displaying the brand in the merchant
                                interface.
                              items:
                                type: object
                                properties:
                                  logoName:
                                    type: string
                                    description: Logo name.
                                  logoUrl:
                                    type: string
                                    description: Logo image URL.
                                  logoPattern:
                                    type: string
                                    description: Logo pattern or style identifier.
                                  logoWidth:
                                    type: string
                                    description: Recommended logo display width in pixels.
                                  logoHeight:
                                    type: string
                                    description: Recommended logo display height in pixels.
                            promoNames[]:
                              type: string
                              description: Promotion name entry for this payment method, mainly used by
                                payment methods that support marketing display.
                                Each item is a JSON string keyed by language
                                code so merchants can display the promotion name
                                in the customer language.
                              x-onerway-constraints:
                                - kind: values
                                  text: Common language-code keys include `zh_CN`, `zh_HK`, `en_US`, `ko_KR`,
                                    `fil_PH`, `ms_MY`, `id_ID`, and `th_TH`.
                          description: Additional display and configuration information for the payment
                            method.
                          x-onerway-value:
                            nullable: true
                            when:
                              en: Mainly returned when the payment method needs extra brand, logo, or
                                promotion display data. Other payment methods
                                usually return `null`.
                              zh: 主要在 Alipay+ 等需要额外品牌、标志或促销展示的支付方式返回；其他支付方式通常为 `null`。
                        countryCode:
                          type: string
                          description: Country or region code where the payment method is available, using
                            the two-letter [ISO 3166-1
                            alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
                            format. Wallet initialization uses it as Google Pay
                            `PaymentDataRequest.transactionInfo.countryCode` or
                            Apple Pay `PKPaymentRequest.countryCode`.
                        gatewayName:
                          type:
                            - string
                            - "null"
                          description: Payment gateway identifier required for wallet tokenization. For
                            Google Pay, pass this value as the Web SDK
                            tokenization `gateway` parameter.
                          x-onerway-value:
                            nullable: true
                            when:
                              en: Has a value when the returned wallet payment method needs a gateway
                                identifier or merchant-verification
                                configuration. It may be `null` when not
                                applicable. Both `ApplePay` and `GooglePay` can
                                return this field.
                              zh: 返回的钱包支付方式需要网关标识或商户验证配置时有值；不适用时可能为 `null`。`ApplePay` 和 `GooglePay` 均可返回该字段。
                        gatewayMerchantId:
                          type:
                            - string
                            - "null"
                          description: Merchant identifier on the wallet payment gateway side. For Google
                            Pay, pass this value as the Web SDK tokenization
                            `gatewayMerchantId` parameter.
                          x-onerway-value:
                            nullable: true
                            when:
                              en: Has a value when the payment method needs a gateway merchant identifier. It
                                may be `null` when not applicable. `GooglePay`
                                can return this field, while `ApplePay` and
                                non-wallet methods can return `null`.
                              zh: 需要网关商户标识的支付方式有值；不适用时可能为 `null`。`GooglePay` 可返回该字段，`ApplePay` 和非钱包方式可为
                                `null`。
                        merchantId:
                          type:
                            - string
                            - "null"
                          description: Merchant identifier required for wallet initialization or merchant
                            verification. For Google Pay, this maps to
                            `merchantInfo.merchantId`; see the [Google Pay
                            MerchantInfo
                            documentation](https://developers.google.com/pay/api/web/reference/request-objects#MerchantInfo).
                            For Apple Pay, this is the Onerway Merchant ID used
                            when Onerway registers your domains; merchants with
                            their own Apple Developer account use their own
                            Merchant ID instead.
                          x-onerway-constraints:
                            - kind: rule
                              text: For Google Pay, `merchantInfo.merchantId` is the Google-issued merchant
                                identifier used for production validation. Use
                                this value when Onerway registers your domain in
                                its Google Pay & Wallet Console profile; if you
                                register your own Google Pay & Wallet Console
                                profile and domain, use your own merchant ID and
                                keep `gatewayName` / `gatewayMerchantId` from
                                this endpoint. In production the value equals
                                `gatewayMerchantId`; in the sandbox the two may
                                differ. Google allows omitting
                                `merchantInfo.merchantId` in the `TEST`
                                environment. For Direct API website
                                registration, see [Website registration before
                                going
                                live](/payments/online-payments/payment-methods/google-pay#website-registration-before-going-live).
                          x-onerway-value:
                            nullable: true
                            when:
                              en: Has a value when the wallet payment method needs a merchant identifier or
                                merchant-verification configuration. It may be
                                `null` when not applicable. Both `ApplePay` and
                                `GooglePay` can return this field.
                              zh: 钱包支付方式需要商户标识或商户验证配置时有值；不适用时可能为 `null`。`ApplePay` 和 `GooglePay` 均可返回该字段。
                        subCardTypes[]:
                          type:
                            - string
                            - "null"
                          description: Supported card network entry for wallet payments. Use the list as
                            Google Pay `allowedCardNetworks` or Apple Pay
                            `supportedNetworks`.
                          x-onerway-constraints:
                            - kind: rule
                              text: "Values are returned in the format each wallet expects and can be passed
                                through unchanged: `ApplePay` records use the
                                Apple `supportedNetworks` casing; `GooglePay`
                                records use the upper-case Google
                                `allowedCardNetworks` values."
                          x-onerway-value:
                            nullable: true
                            when:
                              en: Has a value when `GooglePay`, `ApplePay`, or another wallet payment method
                                needs to declare supported card networks. It may
                                be `null` when not applicable.
                              zh: "`GooglePay` 或 `ApplePay` 等钱包支付方式需要声明支持的卡组织时有值；不适用时可能为 `null`。"
```
