# Create direct transaction

> Create a direct API transaction for card, wallet, saved-token, subscription, installment, or local payment method payments.

```yaml
openapi: 3.1.0
info:
  title: Create direct transaction
  version: 1.0.0
  description: Create a direct API transaction for card, wallet, saved-token,
    subscription, installment, or local payment method payments.
paths:
  /v1/txn/doTransaction:
    post:
      summary: Create direct transaction
      description: Create a direct API transaction for card, wallet, saved-token,
        subscription, installment, or local payment method payments.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                billingInformation:
                  type: string
                  description: Transaction billing information, including customer billing address
                    and contact details.
                  contentMediaType: application/json
                  contentSchema:
                    type: object
                    properties:
                      firstName:
                        type: string
                        description: Customer first name.
                      lastName:
                        type: string
                        description: Customer last name.
                      jpFirstName:
                        type: string
                        description: Customer first name in Japanese Katakana. Required only for Japan
                          payment methods and Japan-issued cards.
                      jpLastName:
                        type: string
                        description: Customer last name in Japanese Katakana. Required only for Japan
                          payment methods and Japan-issued cards.
                      phone:
                        type: string
                        description: Customer phone number, local part only without country code. Pass
                          the country code separately in `phoneCountryCode`;
                          Onerway does not strictly validate the format.
                      phoneCountryCode:
                        type: string
                        description: Country dialing code of the customer phone number, digits only
                          without `+`; combines with `phone` to form the full
                          number.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required when `lpmsType=MB_WAY`.
                      email:
                        type: string
                        description: Customer email address, used for transaction confirmations and
                          dispute handling.
                      postalCode:
                        type: string
                        description: Postal or ZIP code. Commonly used by AVS checks.
                      address:
                        type: string
                        description: Full address in a single field. It can replace split street, house
                          number, and city fields for general address capture,
                          but should not be used as the only address input when
                          AVS is required.
                      country:
                        type: string
                        description: Country in [ISO 3166-1
                          alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
                          format.
                      province:
                        type: string
                        description: Province or state code in [ISO
                          3166-2](https://en.wikipedia.org/wiki/ISO_3166-2#Current_codes)
                          format.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required when `country` is `US` or `CA`.
                      city:
                        type: string
                        description: City name. Recommended when AVS or a complete billing address is
                          required.
                      street:
                        type: string
                        description: Street name. When AVS is enabled, provide it separately with
                          `number`, `postalCode`, and `city`.
                      number:
                        type: string
                        description: House or building number. When AVS is enabled, provide it
                          separately with the other split address fields.
                      identityNumber:
                        type: string
                        description: Government-issued identity identifier, usually required by selected
                          local payment methods or high-value KYC checks.
                      birthDate:
                        type: string
                        description: Birth date in `yyyy/MM/dd` format.
                    required:
                      - email
                      - country
                  x-onerway-required: conditional
                  x-onerway-condition:
                    - Required except for later subscription billing or update
                      (`subscription.requestType=1` or `2`).
                  x-onerway-format: json_string
                cardInfo:
                  type: string
                  description: Card payment information. Merchants that collect card details
                    themselves, including `cardInfo.cvv` for card token
                    payments, must be PCI DSS compliant. For wallet payments,
                    submit either merchant-decrypted card data in `cardInfo` or
                    the encrypted token in `tokenInfo` for Onerway decryption;
                    the two are combined only when a Google Pay `PAN_ONLY` token
                    needs the CVC, in which case `cardInfo` carries `cvv` only.
                  contentMediaType: application/json
                  contentSchema:
                    type: object
                    properties:
                      holderName:
                        type: string
                        description: Cardholder name. Provide the real cardholder name when available to
                          help risk checks and reconciliation.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required for direct card payments with
                            merchant-collected card details; not required for
                            wallet-decrypted flows.
                      cardNumber:
                        type: string
                        description: Full card number, or decrypted PAN / DPAN for wallet flows, without
                          spaces.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required for direct card payments with
                            merchant-collected card details and
                            merchant-decrypted wallet payments.
                      month:
                        type: string
                        description: Expiration month in two-digit format (`01`-`12`).
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required when `cardInfo.cardNumber` is submitted.
                      year:
                        type: string
                        description: Expiration year in four-digit format (`YYYY`).
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required when `cardInfo.cardNumber` is submitted.
                      cvv:
                        type: string
                        description: Card security code. Visa, Mastercard, and Discover usually use 3
                          digits; American Express usually uses 4 digits.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required for direct card payments with
                            merchant-collected card details.
                          - Required for card token payments
                            (`subProductType=TOKEN`).
                          - Required on the Google Pay `PAN_ONLY` path where you
                            collect the CVC yourself.
                        x-onerway-constraints:
                          - kind: rule
                            text: When you submit a Google Pay `PAN_ONLY` token in `tokenInfo` for Onerway
                              decryption without `cardInfo.cvv`, the transaction
                              response contains `data.status=R` and
                              `data.redirectUrl`. Redirect the customer to
                              `data.redirectUrl` to enter the CVC on the
                              Onerway-hosted page. This applies whether or not
                              you called Check Google Pay PAN_ONLY token before
                              creating the transaction.
                      cryptogram:
                        type: string
                        description: 3DS cryptogram obtained after decrypting the wallet token; pass it
                          through unchanged.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required for merchant-decrypted Apple Pay, or Google
                            Pay with `authMethod=CRYPTOGRAM_3DS`.
                      eci:
                        type: string
                        description: Electronic Commerce Indicator (ECI); pass it through unchanged.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required together with `cryptogram` for wallet flows
                            that include 3DS credentials.
                      wallet:
                        type: object
                        properties:
                          type:
                            type: string
                            description: Wallet type.
                            enum:
                              - ApplePay
                              - GooglePay
                            x-enum-descriptions:
                              ApplePay: Apple Pay wallet.
                              GooglePay: Google Pay wallet.
                          applePay:
                            type: object
                            properties:
                              paymentDataType:
                                type: string
                                description: Payment data type found in the decrypted Apple Pay payment token;
                                  submit whichever type your decryption returns.
                                enum:
                                  - 3DSecure
                                  - EMV
                                x-enum-descriptions:
                                  3DSecure: 3DSecure payment data in the Apple Pay payment token. It includes
                                    `onlinePaymentCryptogram` and may include
                                    `eciIndicator`; pass them through unchanged
                                    in `cardInfo.cryptogram` and `cardInfo.eci`.
                                  EMV: EMV payment data in the Apple Pay payment token, used for EMV-mode
                                    tokenized transactions.
                            required:
                              - paymentDataType
                            description: Apple Pay metadata.
                            x-onerway-required: conditional
                            x-onerway-condition:
                              - Required when `wallet.type=ApplePay`.
                          googlePay:
                            type: object
                            properties:
                              authMethod:
                                type: string
                                description: Authentication method of the decrypted Google Pay token.
                                  `CRYPTOGRAM_3DS` requires
                                  `cardInfo.cryptogram` and `cardInfo.eci`;
                                  `PAN_ONLY` does not include 3DS credentials.
                                enum:
                                  - CRYPTOGRAM_3DS
                                  - PAN_ONLY
                                x-enum-descriptions:
                                  CRYPTOGRAM_3DS: Google Pay token includes 3DS cryptogram data; submit
                                    `cryptogram` and `eci` after merchant-side
                                    decryption.
                                  PAN_ONLY: Google Pay token contains card data only and no 3DS cryptogram.
                            required:
                              - authMethod
                            description: Google Pay metadata for merchant-decrypted tokens
                              (`tokenizationSpecification.type=DIRECT`).
                            x-onerway-required: conditional
                            x-onerway-condition:
                              - Required when `wallet.type=GooglePay`.
                            x-onerway-constraints:
                              - kind: rule
                                text: Merchant decryption requires the Google Pay `DIRECT` tokenization with
                                  `protocolVersion=ECv2` and a public key
                                  registered in your own Google Pay & Wallet
                                  Console; the token is encrypted with your key,
                                  so do not use the `gatewayName` /
                                  `gatewayMerchantId` returned by List available
                                  payment methods.
                        required:
                          - type
                        description: Wallet metadata. Select either `applePay` or `googlePay` according
                          to `type`.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required for merchant-decrypted wallet payments.
                  x-onerway-required: conditional
                  x-onerway-condition:
                    - Required for direct card payments with merchant-collected
                      card details.
                    - Required for merchant-decrypted Apple Pay / Google Pay
                      wallet payments.
                    - Required for card token payments (`subProductType=TOKEN`);
                      submit `cardInfo.cvv` together with `tokenInfo`.
                    - Required for Onerway-decrypted Google Pay `PAN_ONLY`
                      payments when you collect the CVC yourself; `cardInfo`
                      must contain only `cvv` and be submitted together with
                      `tokenInfo`.
                  x-onerway-constraints:
                    - kind: rule
                      text: For merchant-decrypted Google Pay payments, configure `allowedAuthMethods`
                        according to the Onerway requirement documented under
                        [tokenInfo](/payments/api-reference/endpoints/direct-create-transaction#request-tokenInfo).
                  x-onerway-format: json_string
                merchantCustId:
                  type: string
                  description: Unique customer identifier in the merchant system. For
                    subscriptions, `subscription.merchantCustId` is the
                    subscription customer identifier; if this top-level field is
                    also submitted, it must match.
                  x-onerway-required: conditional
                  x-onerway-condition:
                    - Required for card token payments (`subProductType=TOKEN`)
                      and subscription scenarios.
                merchantNo:
                  type: string
                  description: Merchant number assigned by Onerway. See
                    [Setup](/payments/get-started/setup#retrieve-your-credentials)
                    for how to obtain it.
                  x-onerway-constraints:
                    - kind: rule
                      text: In the platform model, submit the merchant number of the sub-merchant the
                        transaction is initiated for, not the platform merchant
                        number. The sub-merchant must already be registered with
                        Onerway.
                merchantTxnId:
                  type: string
                  description: Unique transaction identifier generated by the merchant system for
                    tracking, reconciliation, and duplicate prevention.
                merchantTxnTime:
                  type: string
                  description: Transaction timestamp when the merchant initiated the transaction,
                    in `yyyy-MM-dd HH:mm:ss` format. If omitted, Onerway records
                    the transaction time in UTC+8.
                merchantTxnTimeZone:
                  type: string
                  description: Timezone offset for `merchantTxnTime`. If omitted, Onerway records
                    the transaction time in UTC+8.
                metaData:
                  type: string
                  description: Custom data for this transaction. Must be a string containing valid
                    JSON. Returned unchanged in transaction queries and
                    asynchronous notifications; when omitted, `metaData` is
                    empty there.
                mpiInfo:
                  type: string
                  description: External 3DS / MPI authentication result. Direct API integrations
                    may complete 3DS through their own MPI or 3DS Server and
                    pass the result through unchanged.
                  contentMediaType: application/json
                  contentSchema:
                    type: object
                    properties:
                      version:
                        type: string
                        description: 3DS protocol version returned by the external MPI / 3DS Server.
                      eci:
                        type: string
                        description: Electronic Commerce Indicator returned by the external
                          authentication flow.
                      cavv:
                        type: string
                        description: Cardholder Authentication Verification Value returned by the
                          issuer.
                      xid:
                        type: string
                        description: 3DS v1 transaction identifier; use either `xid` or `dsTransID`.
                      dsTransID:
                        type: string
                        description: 3DS v2+ directory server transaction identifier; use either
                          `dsTransID` or `xid`.
                    required:
                      - version
                      - eci
                      - cavv
                  x-onerway-required: conditional
                  x-onerway-condition:
                    - Required when `risk3dsStrategy=EXTERNAL`.
                  x-onerway-format: json_string
                lpmsInfo:
                  type: string
                  description: Local payment method information containing configuration
                    parameters for the selected local payment method.
                  contentMediaType: application/json
                  contentSchema:
                    type: object
                    properties:
                      lpmsType:
                        type: string
                        description: Local payment method type.
                        enum:
                          - GooglePay
                          - ApplePay
                          - JdPay
                          - Alipay+
                          - WeChat
                          - AlipayHK
                          - AlipayCN
                          - Kakao_Pay
                          - Klarna
                          - Boleto
                          - BankTransfer
                          - Banrisul
                          - Bradesco
                          - Banco do Brasil
                          - Itau
                          - MercadoPago
                          - PIX
                          - Servipag
                          - Sencillito
                          - Webpay
                          - Multicaja
                          - Baloto
                          - EFT
                          - Efecty
                          - SPEI
                          - OXXO
                          - OXXOPAY
                          - PagoEfectivo
                          - safetypay-cash
                          - safetypay-online
                          - PayU
                          - Przelewy24
                          - Pagosnet
                          - SEPADD
                          - Sofort
                          - Giropay
                          - iDEAL
                          - Konbini
                          - PayEasy
                          - POLi
                          - Bancontact
                          - OVO
                          - MyBank
                          - Dragonpay
                          - Skrill
                          - eNETS
                          - PayseraWallet
                          - LithuanianBanks
                          - PaySafeCard
                          - Paysafecash
                          - Payconiq
                          - Trustly
                          - PAY_BY_BANK
                          - GCash
                          - GrabPay
                          - PayMaya
                          - ELEVEN
                          - GrabPay SG
                          - TrueMoney Wallet
                          - Rabbit_Line_pay
                          - PromptPay
                          - KRUNGSRI_ONLINE
                          - BUALUANG_IBANKING
                          - CITI_POINTS
                          - K_PLUS
                          - MCASH
                          - TOUCH_GO_EWALLET
                          - ShopeePay
                          - Boost
                          - BNI
                          - MANDIRI
                          - Maybank
                          - PERMATA
                          - BRI
                          - CIMB
                          - DANA
                          - QRIS
                          - AKULAKU
                          - Paypay
                          - LINE_Pay
                          - Merpay
                          - Rakuten_Pay
                          - BitCash
                          - Net_Cash
                          - WebMoney
                          - au
                          - SoftBank
                          - NTT_Docomo
                          - Paidy
                          - BLIK
                          - BLIK_SEAMLESS
                          - cardpay
                          - stcpay
                          - tamara
                          - tabby
                          - MB_WAY
                        x-enum-descriptions:
                          GooglePay: Google Pay wallet payment method.
                          ApplePay: Apple Pay wallet payment method.
                          JdPay: JD Pay payment method.
                          Alipay+: Alipay+ payment method.
                          WeChat: WeChat Pay payment method.
                          AlipayHK: AlipayHK payment method.
                          AlipayCN: Alipay payment method in mainland China.
                          Kakao_Pay: Kakao Pay payment method.
                          Klarna: Klarna payment method.
                          Boleto: Boleto payment method.
                          BankTransfer: Bank transfer payment method.
                          Banrisul: Banrisul bank payment method.
                          Bradesco: Bradesco bank payment method.
                          Banco do Brasil: Banco do Brasil bank payment method.
                          Itau: Itaú bank payment method.
                          MercadoPago: Mercado Pago payment method.
                          PIX: PIX instant payment method.
                          Servipag: Servipag payment method.
                          Sencillito: Sencillito payment method.
                          Webpay: Webpay payment method.
                          Multicaja: Multicaja payment method.
                          Baloto: Baloto cash payment method.
                          EFT: Electronic funds transfer payment method.
                          Efecty: Efecty cash payment method.
                          SPEI: SPEI bank transfer payment method.
                          OXXO: OXXO cash voucher payment method.
                          OXXOPAY: OXXO Pay payment method.
                          PagoEfectivo: PagoEfectivo cash payment method.
                          safetypay-cash: SafetyPay Cash payment method.
                          safetypay-online: SafetyPay Online payment method.
                          PayU: PayU payment method.
                          Przelewy24: Przelewy24 payment method.
                          Pagosnet: Pagosnet payment method.
                          SEPADD: SEPA Direct Debit payment method.
                          Sofort: Sofort payment method.
                          Giropay: giropay payment method.
                          iDEAL: iDEAL payment method.
                          Konbini: Konbini convenience store payment method.
                          PayEasy: Pay-easy payment method.
                          POLi: POLi payment method.
                          Bancontact: Bancontact payment method.
                          OVO: OVO wallet payment method.
                          MyBank: MyBank payment method.
                          Dragonpay: Dragonpay payment method.
                          Skrill: Skrill payment method.
                          eNETS: eNETS payment method.
                          PayseraWallet: Paysera Wallet payment method.
                          LithuanianBanks: Lithuanian bank payment method.
                          PaySafeCard: paysafecard prepaid payment method.
                          Paysafecash: paysafecash payment method.
                          Payconiq: Payconiq payment method.
                          Trustly: Trustly payment method.
                          PAY_BY_BANK: Pay by Bank payment method.
                          GCash: GCash wallet payment method.
                          GrabPay: GrabPay wallet payment method.
                          PayMaya: Maya wallet payment method.
                          ELEVEN: 7-Eleven payment method.
                          GrabPay SG: GrabPay Singapore wallet payment method.
                          TrueMoney Wallet: TrueMoney Wallet payment method.
                          Rabbit_Line_pay: Rabbit LINE Pay payment method.
                          PromptPay: PromptPay payment method.
                          KRUNGSRI_ONLINE: Krungsri Online banking payment method.
                          BUALUANG_IBANKING: Bualuang iBanking payment method.
                          CITI_POINTS: Citi Rewards Points payment method.
                          K_PLUS: K PLUS payment method.
                          MCASH: MCash wallet payment method.
                          TOUCH_GO_EWALLET: Touch 'n Go eWallet payment method.
                          ShopeePay: ShopeePay wallet payment method.
                          Boost: Boost wallet payment method.
                          BNI: BNI virtual account payment method.
                          MANDIRI: Mandiri virtual account payment method.
                          Maybank: Maybank virtual account payment method.
                          PERMATA: Permata virtual account payment method.
                          BRI: BRI virtual account payment method.
                          CIMB: CIMB virtual account payment method.
                          DANA: DANA wallet payment method.
                          QRIS: QRIS payment method.
                          AKULAKU: Akulaku payment method.
                          Paypay: PayPay payment method.
                          LINE_Pay: LINE Pay payment method.
                          Merpay: Merpay payment method.
                          Rakuten_Pay: Rakuten Pay payment method.
                          BitCash: BitCash payment method.
                          Net_Cash: NetCash payment method.
                          WebMoney: WebMoney payment method.
                          au: au PAY payment method.
                          SoftBank: SoftBank carrier payment method.
                          NTT_Docomo: d払い (Docomo) carrier payment method.
                          Paidy: Paidy payment method.
                          BLIK: BLIK payment method.
                          BLIK_SEAMLESS: BLIK Seamless payment method.
                          cardpay: MADA payment method.
                          stcpay: stc pay payment method.
                          tamara: Tamara payment method.
                          tabby: Tabby payment method.
                          MB_WAY: MB Way payment method.
                      bankName:
                        type: string
                        description: Bank identifier. Submit the enum `value` for the selected local
                          payment method; display names are only for reference.
                        enum:
                          - banco_agrario
                          - banco_av_villas
                          - banco_bbva_colombia_s.a.
                          - banco_caja_social
                          - banco_colpatria
                          - banco_cooperativo_coopcentral
                          - banco_corpbanca_s.a
                          - banco_davivienda
                          - banco_de_bogota
                          - banco_de_occidente
                          - bancofalabella
                          - banco_gnb_sudameris
                          - banco_pichincha_s.a.
                          - banco_procredit
                          - bancolombia
                          - bancoomeva_s.a.
                          - citibank_
                          - itau
                          - nequi
                          - "20"
                          - "26"
                          - "31"
                          - "33"
                          - "43"
                          - "45"
                          - "49"
                          - "52"
                          - "53"
                          - "54"
                          - "64"
                          - "65"
                          - "69"
                          - "85"
                          - "88"
                          - "90"
                          - "95"
                          - "99"
                          - "112"
                          - "119"
                          - "129"
                          - "131"
                          - "136"
                          - "141"
                          - "143"
                          - "144"
                          - "153"
                          - "154"
                          - "158"
                          - "161"
                          - "185"
                          - "222"
                          - "223"
                          - "243"
                          - "266"
                          - "270"
                          - "271"
                          - "272"
                          - "274"
                          - "275"
                          - "279"
                          - "280"
                        x-onerway-enum-variants:
                          - title: EFT
                            when: When `lpmsType=EFT`.
                            values:
                              - value: banco_agrario
                                description: BANCO AGRARIO
                              - value: banco_av_villas
                                description: BANCO AV VILLAS
                              - value: banco_bbva_colombia_s.a.
                                description: BANCO BBVA COLOMBIA S.A.
                              - value: banco_caja_social
                                description: BANCO CAJA SOCIAL
                              - value: banco_colpatria
                                description: BANCO COLPATRIA
                              - value: banco_cooperativo_coopcentral
                                description: BANCO COOPERATIVO COOPCENTRAL
                              - value: banco_corpbanca_s.a
                                description: BANCO CORPBANCA S.A
                              - value: banco_davivienda
                                description: BANCO DAVIVIENDA
                              - value: banco_de_bogota
                                description: BANCO DE BOGOTA
                              - value: banco_de_occidente
                                description: BANCO DE OCCIDENTE
                              - value: bancofalabella
                                description: BANCO FALABELLA
                              - value: banco_gnb_sudameris
                                description: BANCO GNB SUDAMERIS
                              - value: banco_pichincha_s.a.
                                description: BANCO PICHINCHA S.A.
                              - value: banco_procredit
                                description: BANCO PROCREDIT
                              - value: bancolombia
                                description: BANCOLOMBIA
                              - value: bancoomeva_s.a.
                                description: BANCOOMEVA S.A.
                              - value: citibank_
                                description: CITIBANK
                              - value: itau
                                description: ITAU
                              - value: nequi
                                description: NEQUI
                          - title: Przelewy24
                            when: When `lpmsType=Przelewy24`.
                            values:
                              - value: "20"
                                description: Santander Bank Polska - Pretzel24 payment system
                              - value: "26"
                                description: Pay with Inteligo
                              - value: "31"
                                description: Pay with iPKO (PKO BP)
                              - value: "33"
                                description: BNP Paribas banking group
                              - value: "43"
                                description: Bank Polska Kasa Opieki Spółka Akcyjna
                              - value: "45"
                                description: Credit Agricole banking group
                              - value: "49"
                                description: ING Bank Śląski
                              - value: "52"
                                description: Inteligo Account
                              - value: "53"
                                description: Powszechna Kasa Oszczędności Bank Polski (iPKO)
                              - value: "54"
                                description: Santander Bank Polska
                              - value: "64"
                                description: Toyota Bank
                              - value: "65"
                                description: Bank Polska Kasa Opieki Spółka Akcyjna
                              - value: "69"
                                description: Volkswagen Bank
                              - value: "85"
                                description: Bank Millennium S.A.
                              - value: "88"
                                description: Pay with Alior Bank
                              - value: "90"
                                description: Nest Bank
                              - value: "95"
                                description: Credit Agricole banking group
                              - value: "99"
                                description: Pay with BOŚ Bank
                              - value: "112"
                                description: Pay with ING Bank
                              - value: "119"
                                description: Pay with Citi Handlowy
                              - value: "129"
                                description: Alior Bank - Installment payments
                              - value: "131"
                                description: Pay with Plus Bank
                              - value: "136"
                                description: mBank - Installment payments
                              - value: "141"
                                description: E-transfer with Pocztowy24
                              - value: "143"
                                description: Cooperative Banks
                              - value: "144"
                                description: Bank Nowy BFG S.A.
                              - value: "153"
                                description: Getin Bank
                              - value: "154"
                                description: Polish mobile payment system
                              - value: "158"
                                description: Noble Pay payment system
                              - value: "161"
                                description: Pay with Idea Bank
                              - value: "185"
                                description: Envelope Bank
                              - value: "222"
                                description: Nest Bank Transfer
                              - value: "223"
                                description: BNP Paribas - Pay with Pl@net
                              - value: "243"
                                description: mBank - mTransfer service
                              - value: "266"
                                description: P24now payment service
                              - value: "270"
                                description: mBank (ITP Service)
                              - value: "271"
                                description: ING Bank Śląski (ITP Service)
                              - value: "272"
                                description: BNP Paribas (ITP Service)
                              - value: "274"
                                description: PKO BP (ITP Service)
                              - value: "275"
                                description: Santander (ITP Service)
                              - value: "279"
                                description: Inteligo (ITP Service)
                              - value: "280"
                                description: mBank - Installment payments
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required when `lpmsType=EFT` or
                            `lpmsType=Przelewy24`.
                      walletAccountId:
                        type: string
                        description: Wallet or local account identifier.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required when the selected local payment method
                            collects a wallet account or local account
                            identifier.
                      walletAccountName:
                        type: string
                        description: Wallet or local account name.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required when the selected local payment method
                            collects a wallet or local account name.
                      iBan:
                        type: string
                        description: International Bank Account Number (IBAN).
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required for regional bank-transfer flows that use
                            IBAN for bank identification.
                      prepaidNumber:
                        type: string
                        description: Prepaid card or voucher number.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required when the selected Japan prepaid payment
                            method collects a prepaid card or voucher number.
                    required:
                      - lpmsType
                  x-onerway-required: conditional
                  x-onerway-condition:
                    - Required when `productType=LPMS`.
                  x-onerway-format: json_string
                orderAmount:
                  type: string
                  description: Transaction amount in the specified currency, formatted as a
                    decimal string. For zero-decimal currencies, the amount must
                    represent a whole amount; an all-zero decimal part is
                    accepted, while non-zero decimals are rejected. Format rules
                    follow [currency and amount
                    validation](/payments/get-started/currency-and-amount).
                orderCurrency:
                  type: string
                  description: Three-letter [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)
                    transaction currency. Must match `orderAmount`.
                osType:
                  type: string
                  description: Operating system type for mobile and app transactions.
                  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`.
                  enum:
                    - WEB
                    - APP
                    - WAP
                  x-enum-descriptions:
                    WEB: Desktop browser payment.
                    APP: Native mobile app payment.
                    WAP: Mobile browser payment.
                paymentMethodOptions:
                  type: string
                  description: Payment method configuration options. Direct API transactions
                    support the `card` and `share` objects.
                  contentMediaType: application/json
                  contentSchema:
                    type: object
                    properties:
                      card:
                        type: object
                        properties:
                          avsEnabled:
                            type: boolean
                            description: Whether AVS (Address Verification Service) validation is enabled.
                              Contact Onerway before enabling it. When set to
                              `true`, the billing address is used for AVS checks
                              and results are returned in
                              `paymentMethodDetails.card.checks` through
                              transaction queries and webhooks.
                        description: Card-specific payment options.
                      share:
                        type: object
                        properties:
                          profitShare:
                            type: boolean
                            description: Whether this transaction allows profit sharing. Enabling it is a
                              prerequisite for sharing this transaction later.
                              When `true` without `profitShareRate`, no amount
                              is split automatically; you can still initiate
                              profit sharing through the [Create or reverse
                              profit
                              share](/payments/api-reference/endpoints/create-or-reverse-profit-share)
                              endpoint with the `transactionId` returned by this
                              request.
                          profitShareNotifyUrl:
                            type: string
                            description: URL for automatic profit share and reversal notifications. If
                              omitted, no automatic profit share or reversal
                              notification is sent.
                            x-onerway-constraints:
                              - kind: consistency
                                text: A non-empty URL must use HTTPS and be submitted with `profitShare=true`;
                                  otherwise the payment request is rejected.
                              - kind: rule
                                text: The URL is saved only when `profitShare=true`. A `CAPTURE` transaction
                                  inherits the URL from its `AUTH` transaction.
                                  When the original payment has this URL, you
                                  can omit `urlCallback` from a subsequent
                                  profit share or reversal request.
                          profitShareRate:
                            type: string
                            description: Automatic profit-sharing percentage, where `1` means 1% and `100`
                              means 100%. Onerway allocates this portion to the
                              platform merchant automatically once a `SALE` or
                              `CAPTURE` succeeds; refunds and chargebacks return
                              the allocated portion at the same percentage.
                            x-onerway-constraints:
                              - kind: range
                                min: 1
                                max: 100
                                unit: percent
                              - kind: rule
                                text: Submit a whole number as a string. Decimals, `0`, negative values, and
                                  values above 100 are rejected.
                              - kind: consistency
                                text: Requires `profitShare=true`. Submitting a rate while `profitShare` is
                                  absent or `false` is rejected.
                        description: Profit-sharing options for the transaction. In the platform model,
                          part of the amount collected by the sub-merchant is
                          allocated to the platform merchant.
                        x-onerway-lifecycle:
                          status: new
                          since: 2026-08-10
                          description:
                            en: New object for transaction profit sharing.
                            zh: 交易分账的新增对象。
                  x-onerway-format: json_string
                productType:
                  type: string
                  description: Payment method scope. Direct API calls must explicitly choose
                    `CARD` or `LPMS`; `ALL` is not supported because aggregated
                    payment-method display is a Checkout concept.
                  enum:
                    - CARD
                    - LPMS
                  x-enum-descriptions:
                    CARD: Card payment scope, including direct card payments with merchant-collected
                      card details and Apple Pay / Google Pay wallet payments.
                    LPMS: Local payment method scope. `lpmsInfo` is required when this value is
                      used.
                retailers:
                  type: string
                  description: Retailer information for marketplace transactions. Submit one entry
                    for each retailer whose products are included in this order.
                  contentMediaType: application/json
                  contentSchema:
                    type: array
                    items:
                      type: object
                      properties:
                        retailerId:
                          type: string
                          description: Unique retailer identifier defined by the merchant. Keep it unique
                            within your marketplace or merchant system. It is
                            not the Onerway sub-merchant number submitted in
                            `merchantNo`; the two are separate identifier
                            systems.
                          x-onerway-constraints:
                            - kind: range
                              max: 64
                              unit: characters
                        retailerName:
                          type: string
                          description: Retailer name. Prefer the registered legal name or the trading name
                            the retailer operates under.
                          x-onerway-constraints:
                            - kind: range
                              max: 128
                              unit: characters
                        retailerCountry:
                          type: string
                          description: Retailer country or region in [ISO 3166-1
                            alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
                            format.
                      required:
                        - retailerId
                        - retailerName
                        - retailerCountry
                  x-onerway-constraints:
                    - kind: rule
                      text: Applies to marketplace and platform models where products are sold by
                        third-party retailers rather than by the merchant
                        directly. Merchants selling only their own inventory do
                        not need to submit it.
                    - kind: consistency
                      text: When submitted, every entry in `txnOrderMsg.products` must carry a
                        `retailerId` that matches one of the retailers listed
                        here.
                  x-onerway-format: json_string
                  x-onerway-lifecycle:
                    status: new
                    since: 2026-08-10
                    description:
                      en: New field for marketplace retailer information.
                      zh: marketplace 零售商信息的新增字段。
                risk3dsStrategy:
                  type: string
                  description: 3DS risk strategy. Direct API supports `DEFAULT`, `INNER`, `NONE`,
                    and `EXTERNAL`; when using `EXTERNAL`, submit `mpiInfo` with
                    the external authentication result. Contact Onerway before
                    specifying a non-default strategy.
                  enum:
                    - DEFAULT
                    - INNER
                    - NONE
                    - EXTERNAL
                  x-enum-descriptions:
                    DEFAULT: Default strategy. Onerway decides whether to trigger 3DS based on the
                      transaction, merchant configuration, and risk controls.
                    INNER: Force Onerway-managed 3DS authentication.
                    NONE: Do not use 3DS authentication. Availability depends on merchant
                      configuration and risk requirements.
                    EXTERNAL: Use an external MPI / 3DS Server and submit the authentication result
                      through `mpiInfo`.
                shippingInformation:
                  type: string
                  description: Transaction shipping information, including customer delivery
                    address and contact details.
                  contentMediaType: application/json
                  contentSchema:
                    type: object
                    properties:
                      firstName:
                        type: string
                        description: Customer first name.
                      lastName:
                        type: string
                        description: Customer last name.
                      jpFirstName:
                        type: string
                        description: Customer first name in Japanese Katakana. Required only for Japan
                          payment methods and Japan-issued cards.
                      jpLastName:
                        type: string
                        description: Customer last name in Japanese Katakana. Required only for Japan
                          payment methods and Japan-issued cards.
                      phone:
                        type: string
                        description: Customer phone number, local part only without country code. Pass
                          the country code separately in `phoneCountryCode`;
                          Onerway does not strictly validate the format.
                      phoneCountryCode:
                        type: string
                        description: Country dialing code of the customer phone number, digits only
                          without `+`; combines with `phone` to form the full
                          number.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required when `lpmsType=MB_WAY`.
                      email:
                        type: string
                        description: Customer email address, used for transaction confirmations and
                          dispute handling.
                      postalCode:
                        type: string
                        description: Postal or ZIP code. Commonly used by AVS checks.
                      address:
                        type: string
                        description: Full address in a single field. It can replace split street, house
                          number, and city fields for general address capture,
                          but should not be used as the only address input when
                          AVS is required.
                      country:
                        type: string
                        description: Country in [ISO 3166-1
                          alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
                          format.
                      province:
                        type: string
                        description: Province or state code in [ISO
                          3166-2](https://en.wikipedia.org/wiki/ISO_3166-2#Current_codes)
                          format.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required when `country` is `US` or `CA`.
                      city:
                        type: string
                        description: City name. Recommended when AVS or a complete billing address is
                          required.
                      street:
                        type: string
                        description: Street name. When AVS is enabled, provide it separately with
                          `number`, `postalCode`, and `city`.
                      number:
                        type: string
                        description: House or building number. When AVS is enabled, provide it
                          separately with the other split address fields.
                      identityNumber:
                        type: string
                        description: Government-issued identity identifier, usually required by selected
                          local payment methods or high-value KYC checks.
                      birthDate:
                        type: string
                        description: Birth date in `yyyy/MM/dd` format.
                    required:
                      - email
                      - country
                  x-onerway-required: conditional
                  x-onerway-condition:
                    - Required except for later subscription billing or update
                      (`subscription.requestType=1` or `2`).
                  x-onerway-format: json_string
                sign:
                  type: string
                  description: Request signature string. See [Request
                    signing](/payments/get-started/request-signing) for how to
                    generate it.
                subProductType:
                  type: string
                  description: Transaction processing mode under the selected payment method
                    scope. It works with `productType` and `txnType` to define
                    the transaction model.
                  enum:
                    - DIRECT
                    - TOKEN
                    - SUBSCRIBE
                    - INSTALLMENT
                  x-enum-descriptions:
                    DIRECT: Ordinary direct API payment. Execute a one-time debit, wallet payment,
                      local payment method payment, or authorization according
                      to `productType` and `txnType`.
                    TOKEN: Card token payment. Use a saved card token with the customer identifier
                      and always submit `cardInfo.cvv`.
                    SUBSCRIBE: Subscription transaction. Supports initial subscription, later
                      merchant-triggered billing, and managed subscription
                      update through `subscription.requestType`.
                    INSTALLMENT: Installment transaction. `txnOrderMsg.periodValue` must use a
                      period value returned by the installment inquiry API.
                subscription:
                  type: string
                  description: Subscription information. This direct API endpoint supports initial
                    subscription (`requestType=0`), later merchant-triggered
                    billing (`requestType=1`), and managed subscription update
                    (`requestType=2`).
                  contentMediaType: application/json
                  contentSchema:
                    type: object
                    properties:
                      requestType:
                        type: string
                        description: Subscription request type.
                        enum:
                          - "0"
                          - "1"
                          - "2"
                        x-enum-descriptions:
                          "0": Initial subscription request.
                          "1": Later merchant-triggered billing with an existing contract and token.
                          "2": Managed subscription plan update, such as upgrade or downgrade.
                      merchantCustId:
                        type: string
                        description: Subscription customer identifier in the merchant system.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Optional. Submit the subscription customer
                            identifier in the top-level `merchantCustId`; when
                            this field is also submitted, the two must match.
                      selfExecute:
                        type: string
                        description: Subscription execution mode.
                        enum:
                          - "1"
                          - "2"
                        x-enum-descriptions:
                          "1": Automatic billing by Onerway according to the subscription plan.
                          "2": Merchant-triggered billing for each subscription cycle.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Submit in initial subscription requests
                            (`requestType=0`).
                      mode:
                        type: string
                        description: How the first subscription payment is collected. Defaults to `2`
                          when omitted.
                        enum:
                          - "1"
                          - "2"
                        x-enum-descriptions:
                          "1": Obtain subscription authorization only; the first payment is collected by
                            the merchant later. Available only for self-managed
                            subscriptions (`selfExecute=2`).
                          "2": Collect the first payment once the customer has authorized; applicable to
                            card subscriptions and local payment methods that
                            require authorization.
                      metaData:
                        type: string
                        description: Custom data for the subscription. Must be a string containing valid
                          JSON. If both the top-level `metaData` and
                          `subscription.metaData` are submitted,
                          `subscription.metaData` is used.
                      productName:
                        type: string
                        description: Subscription product or plan name. Supported for both
                          `selfExecute=1` and `selfExecute=2` when the
                          subscription record should identify a product.
                      amountOff:
                        type: string
                        description: Fixed amount deducted from each eligible subscription charge during
                          the discount period.
                        x-onerway-constraints:
                          - kind: rule
                            text: Formatted as a decimal string. Currency and precision follow the top-level
                              `orderCurrency`; see [currency and amount
                              validation](/payments/get-started/currency-and-amount).
                          - kind: consistency
                            text: Must be greater than `0` and less than the top-level `orderAmount`, so the
                              actual charge remains greater than `0`.
                          - kind: unsupported
                            text: Not supported for renewal requests (`requestType=1`) or Onerway-managed
                              subscriptions (`selfExecute=1`).
                        x-onerway-lifecycle:
                          status: new
                          since: 2026-08-12
                          description:
                            en: New field for fixed-amount discounts on initial merchant-managed
                              subscription cycles.
                            zh: 非托管订阅前若干期固定金额优惠的新增字段。
                      amountOffCycleCount:
                        type: integer
                        description: Number of successful subscription charges that receive the
                          `amountOff` discount. When omitted, the discount
                          applies only to the first successful charge.
                        x-onerway-constraints:
                          - kind: range
                            min: 1
                            unit: cycles
                          - kind: consistency
                            text: Submit only together with `amountOff`. It is independent of the
                              managed-subscription `cycleCount` field.
                          - kind: rule
                            text: Only successful charges consume a discount cycle. Authorization-only,
                              failed, canceled, and pending transactions do not
                              consume one.
                          - kind: unsupported
                            text: Not supported for renewal requests (`requestType=1`) or Onerway-managed
                              subscriptions (`selfExecute=1`).
                        x-onerway-lifecycle:
                          status: new
                          since: 2026-08-12
                          description:
                            en: New field for extending a fixed-amount discount across multiple subscription
                              charges.
                            zh: 将固定金额优惠延续到多期订阅扣款的新增字段。
                      frequencyType:
                        type: string
                        description: Subscription billing frequency type. `selfExecute=1` supports `D`,
                          `M`, and `Y`; `selfExecute=2` supports `D` only.
                        enum:
                          - D
                          - M
                          - Y
                        x-enum-descriptions:
                          D: Bill by day.
                          M: Bill by month.
                          Y: Bill by year.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Submit in initial subscription requests;
                            `selfExecute=2` supports `D` only.
                      frequencyPoint:
                        type: string
                        description: Billing cycle length, in the unit specified by `frequencyType`.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Submit in initial subscription requests.
                        x-onerway-constraints:
                          - kind: values
                            text: "For `selfExecute=1`, allowed values are `1`, `7`, or `14` when
                              `frequencyType=D`; `1`, `3`, or `6` when
                              `frequencyType=M`; and only `1` when
                              `frequencyType=Y`. For `selfExecute=2`, there is
                              no fixed set of allowed values: submit the billing
                              cycle length in days — for example, `30` for a
                              monthly plan or `365` for an annual plan."
                          - kind: rule
                            text: "For `selfExecute=2`, this value is informational only: Onerway does not
                              use it to schedule charges, and does not validate
                              the timing of your charges against it. You
                              initiate every renewal charge yourself."
                      expireDate:
                        type: string
                        description: Subscription expiration date.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Submit when the subscription end is defined by an
                            expiration date.
                      cycleCount:
                        type: integer
                        description: Number of billing cycles. Supported range is `1-99`.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required for managed subscriptions (`selfExecute=1`)
                            when the plan end is defined by a fixed number of
                            billing cycles.
                      trialFromPlan:
                        type: string
                        description: Trial period billing mode for managed subscriptions.
                        enum:
                          - "0"
                          - "1"
                        x-enum-descriptions:
                          "0": Trial period is not charged.
                          "1": Trial period is charged according to the subscription plan.
                      trialDays:
                        type: integer
                        description: Trial period duration in days. Supported range is `3-365`.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required for managed subscriptions when a trial
                            length is configured by days; mutually exclusive
                            with `trialEnd`.
                      trialEnd:
                        type: string
                        description: Trial period end date.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required for managed subscriptions when a trial end
                            date is configured; mutually exclusive with
                            `trialDays`.
                      notificationEmail:
                        type: string
                        description: Buyer email address used for subscription confirmation,
                          status-change, and billing notifications.
                      bindCard:
                        type: boolean
                        description: Whether to save the customer's card after the initial payment of an
                          Onerway-managed card subscription succeeds. Onerway
                          reports the result in a separate [Saved payment method
                          result
                          webhook](/payments/api-reference/webhooks/payment-method-result)
                          (`txnType=BIND_CARD`).
                        x-onerway-constraints:
                          - kind: rule
                            text: When the card is saved, the [Saved payment method result
                              webhook](/payments/api-reference/webhooks/payment-method-result)
                              returns `status=S` and the saved payment method
                              token in `tokenId`. Use that token for
                              `subProductType=TOKEN` payments through this
                              endpoint. Subscription charges use `contractId`
                              and `tokenId` from the [Subscription payment
                              webhook](/payments/api-reference/webhooks/subscription-payment)
                              with `subProductType=SUBSCRIBE`, which is a
                              different token.
                          - kind: rule
                            text: "Local payment method subscriptions ignore this field: Onerway always
                              sends a Saved payment method result webhook for
                              their subscription authorization."
                          - kind: unsupported
                            text: Not supported for `selfExecute=2`.
                      contractId:
                        type: string
                        description: Subscription contract ID returned after the initial subscription
                          succeeds.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required for later billing or subscription update
                            (`requestType=1` or `2`).
                      tokenId:
                        type: string
                        description: Payment token saved after the initial subscription succeeds.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required for later billing or subscription update
                            (`requestType=1` or `2`).
                      changeMode:
                        type: string
                        description: How the subscription plan change takes effect.
                        enum:
                          - "1"
                          - "2"
                        x-enum-descriptions:
                          "1": Apply immediately. Onerway calculates proration by the remaining days in
                            the current cycle; upgrades charge immediately, and
                            downgrades require refund handling if needed.
                          "2": Apply from the next billing cycle. No immediate charge is made.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required for managed subscription update
                            (`requestType=2`).
                      proration:
                        type: string
                        description: Prorated amount to charge for the plan change.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required for managed subscription update when
                            `prorationMode=0`.
                      prorationMode:
                        type: string
                        description: Who calculates the prorated amount for managed subscription
                          updates. Defaults to Onerway automatic calculation
                          (`1`).
                        enum:
                          - "0"
                          - "1"
                        x-enum-descriptions:
                          "0": Merchant calculates the prorated amount and submits it through `proration`.
                          "1": Onerway automatically calculates the prorated amount.
                    required:
                      - requestType
                  x-onerway-required: conditional
                  x-onerway-condition:
                    - Required when `subProductType=SUBSCRIBE`.
                  x-onerway-format: json_string
                tokenInfo:
                  type: string
                  description: Token credential used to initiate the payment. For wallet payments,
                    submit the encrypted wallet token returned by the wallet SDK
                    for Onerway decryption. For card token payments, submit the
                    card token returned by card tokenization or the saved
                    payment method flow; subscription tokens are submitted
                    through `subscription.tokenId`, not here.
                  contentMediaType: application/json
                  contentSchema:
                    type: object
                    properties:
                      provider:
                        type: string
                        description: Wallet token provider.
                        enum:
                          - ApplePay
                          - GooglePay
                        x-enum-descriptions:
                          ApplePay: Apple Pay wallet.
                          GooglePay: Google Pay wallet.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required for wallet payments; omit for card token
                            payments.
                      tokenId:
                        type: string
                        description: Token value. For wallet payments, pass through the encrypted token
                          returned by the wallet SDK. For card token payments,
                          use the card token returned earlier.
                    required:
                      - tokenId
                  x-onerway-required: conditional
                  x-onerway-condition:
                    - Required for Onerway-decrypted Apple Pay / Google Pay
                      wallet payments.
                    - Required for card token payments (`subProductType=TOKEN`).
                  x-onerway-constraints:
                    - kind: rule
                      text: Onerway requires `allowedAuthMethods` in the Google Pay `CARD` payment
                        method parameters to include both `PAN_ONLY` and
                        `CRYPTOGRAM_3DS`. This requirement applies to both
                        Onerway decryption and merchant decryption. For merchant
                        decryption, submit the decrypted payment data in
                        [cardInfo](/payments/api-reference/endpoints/direct-create-transaction#request-cardInfo).
                    - kind: rule
                      text: "For Google Pay, Onerway decryption corresponds to the `PAYMENT_GATEWAY`
                        tokenization: set the Google Pay `gateway` and
                        `gatewayMerchantId` parameters from the `gatewayName`
                        and `gatewayMerchantId` returned by List available
                        payment methods. The token is encrypted with the Onerway
                        key and cannot be decrypted by the merchant."
                    - kind: rule
                      text: For Onerway-decrypted Google Pay payments, calling [Check Google Pay
                        PAN_ONLY
                        token](/payments/api-reference/endpoints/check-google-pay-pan-only)
                        before creating the transaction is optional. If you
                        submit a `PAN_ONLY` token without `cardInfo.cvv`, the
                        transaction response contains `data.status=R` and
                        `data.redirectUrl`, regardless of whether you called the
                        check endpoint. Redirect the customer to
                        `data.redirectUrl` to enter the CVC on the
                        Onerway-hosted page. If you collect the CVC yourself,
                        submit it in
                        [cardInfo.cvv](/payments/api-reference/endpoints/direct-create-transaction#request-cardInfo-cvv)
                        together with `tokenInfo`.
                  x-onerway-format: json_string
                txnOrderMsg:
                  type: string
                  description: Transaction business information, including return URL,
                    notification URL, store ID, products, browser data, device
                    data, and cardholder IP data collected by the merchant.
                  contentMediaType: application/json
                  contentSchema:
                    type: object
                    properties:
                      returnUrl:
                        type: string
                        description: Synchronous return URL, mainly used for 3DS challenge and other
                          redirect flows. The merchant should confirm the final
                          result through webhook or transaction query.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required except for later subscription billing or
                            update (`subscription.requestType=1` or `2`).
                      products:
                        type: string
                        description: List of products purchased by the customer. Product amount,
                          discount, and shipping fee entries must add up to
                          `orderAmount`.
                        contentMediaType: application/json
                        contentSchema:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                description: Product name.
                              price:
                                type: string
                                description: Product unit price.
                              num:
                                type: string
                                description: Product quantity.
                              productAvatarUrl:
                                type: string
                                description: Product image URL. Use HTTPS and JPG, PNG, or WebP format.
                                x-onerway-required: conditional
                                x-onerway-condition:
                                  - Required when `lpmsType` is `stcpay`,
                                    `tamara`, `tabby`, or `cardpay`.
                              desc:
                                type: string
                                description: Product description.
                              currency:
                                type: string
                                description: Three-letter [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)
                                  currency code.
                              type:
                                type: string
                                description: Product category. Omit this field for regular products. `discount`
                                  line items must use a negative amount.
                                enum:
                                  - virtual
                                  - physical
                                  - shipping_fee
                                  - discount
                                x-enum-descriptions:
                                  virtual: Virtual product.
                                  physical: Physical product.
                                  shipping_fee: Shipping fee line item.
                                  discount: Discount line item. The amount must be negative.
                                x-onerway-required: conditional
                                x-onerway-condition:
                                  - Required as `virtual` or `physical` when
                                    `lpmsType` is `stcpay`, `tamara`, `tabby`,
                                    or `cardpay`; `shipping_fee` and `discount`
                                    can be used for all payment methods.
                              retailerId:
                                type: string
                                description: Identifier of the retailer that sells this product.
                                x-onerway-required: conditional
                                x-onerway-condition:
                                  - Required when `retailers` is submitted.
                                x-onerway-constraints:
                                  - kind: consistency
                                    text: The value must match one of the `retailerId` values submitted in
                                      `retailers`.
                                x-onerway-lifecycle:
                                  status: new
                                  since: 2026-08-10
                                  description:
                                    en: New field linking each product to its retailer.
                                    zh: 将商品关联到零售商的新增字段。
                            required:
                              - name
                              - price
                              - num
                              - currency
                        x-onerway-format: json_string
                      transactionIp:
                        type: string
                        description: Cardholder transaction IP collected by the merchant. Use the
                          end-user IP, not the merchant server IP.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required except for later subscription billing or
                            update (`subscription.requestType=1` or `2`).
                      appId:
                        type: string
                        description: Store ID generated during Onerway onboarding.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required except for later subscription billing or
                            update (`subscription.requestType=1` or `2`).
                      javaEnabled:
                        type: boolean
                        description: Whether Java is enabled in the cardholder browser. It can be
                          collected with `window.navigator.javaEnabled()`.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required except for later subscription billing or
                            update (`subscription.requestType=1` or `2`).
                      colorDepth:
                        type: string
                        description: Cardholder screen color depth collected with
                          `window.screen.colorDepth`.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required except for later subscription billing or
                            update (`subscription.requestType=1` or `2`).
                      screenHeight:
                        type: string
                        description: Cardholder screen height collected with `window.screen.height`.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required except for later subscription billing or
                            update (`subscription.requestType=1` or `2`).
                      screenWidth:
                        type: string
                        description: Cardholder screen width collected with `window.screen.width`.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required except for later subscription billing or
                            update (`subscription.requestType=1` or `2`).
                      timeZoneOffset:
                        type: string
                        description: Cardholder browser timezone offset collected with `((new
                          Date()).getTimezoneOffset()).toString()`.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required except for later subscription billing or
                            update (`subscription.requestType=1` or `2`).
                      accept:
                        type: string
                        description: Cardholder browser `Accept` request header collected by the
                          merchant.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required except for later subscription billing or
                            update (`subscription.requestType=1` or `2`).
                      userAgent:
                        type: string
                        description: Cardholder browser User-Agent collected by the merchant frontend.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required except for later subscription billing or
                            update (`subscription.requestType=1` or `2`).
                      contentLength:
                        type: string
                        description: Cardholder browser content length collected by the merchant.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required except for later subscription billing or
                            update (`subscription.requestType=1` or `2`).
                      customerPlatform:
                        type: string
                        description: Merchant platform identifier. Use the website domain for web
                          transactions or the app name for app transactions.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required when `lpmsType` is `stcpay`, `tamara`,
                            `tabby`, or `cardpay`.
                      language:
                        type: string
                        description: Cardholder browser language collected with
                          `window.navigator.language`.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required except for later subscription billing or
                            update (`subscription.requestType=1` or `2`).
                      periodValue:
                        type: string
                        description: Installment payment period returned by the installment consultation
                          API.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required when top-level `subProductType=INSTALLMENT`.
                      notifyUrl:
                        type: string
                        description: Server-side notification URL for asynchronous payment result
                          callbacks. Merchants are advised to query the
                          transaction result after receiving the webhook
                          notification.
                        x-onerway-required: conditional
                        x-onerway-condition:
                          - Required except for later subscription billing or
                            update (`subscription.requestType=1` or `2`).
                    required:
                      - products
                  x-onerway-required: conditional
                  x-onerway-condition:
                    - Required except for later subscription billing or update
                      (`subscription.requestType=1` or `2`).
                  x-onerway-format: json_string
                txnType:
                  type: string
                  description: Transaction operation type. It works with `productType` and
                    `subProductType`; `REFUND` and `BIND_CARD` are not used by
                    this direct transaction endpoint.
                  enum:
                    - SALE
                    - AUTH
                  x-enum-descriptions:
                    SALE: Debit-style transaction. Together with `subProductType=DIRECT`, `TOKEN`,
                      `SUBSCRIBE`, or `INSTALLMENT`, it is used for ordinary
                      payment, token payment, subscription, or installment
                      payment.
                    AUTH: Authorization-style transaction. Funds are authorized first and not
                      captured immediately. It applies to direct card payments
                      with merchant-collected card details and card token
                      payments; it does not apply to LPMS, subscriptions, or
                      installments.
              required:
                - merchantNo
                - merchantTxnId
                - orderAmount
                - orderCurrency
                - productType
                - sign
                - subProductType
                - txnType
            examples:
              one-time-card:
                summary: One-time card payment with merchant-collected card details
                value:
                  billingInformation: '{"firstName":"John","lastName":"Doe","phone":"4848980027","phoneCountryCode":"1","email":"customer@example.com","postalCode":"94016","address":"100
                    Market Street","country":"US","province":"CA","city":"San
                    Francisco","street":"Market Street","number":"100"}'
                  cardInfo: '{"holderName":"John
                    Smith","cardNumber":"{{CARD-NUMBER}}","month":"12","year":"2030","cvv":"{{CVV}}"}'
                  merchantNo: "{{MERCHANT-NO}}"
                  merchantTxnId: txn_demo_direct_202606140001
                  merchantTxnTime: 2026-06-14 10:30:00
                  merchantTxnTimeZone: +08:00
                  metaData: '{"orderSource":"direct-api-demo"}'
                  orderAmount: "99.99"
                  orderCurrency: USD
                  paymentMethodOptions: '{"card":{"avsEnabled":true}}'
                  paymentMode: WEB
                  productType: CARD
                  risk3dsStrategy: DEFAULT
                  shippingInformation: '{"firstName":"John","lastName":"Doe","phone":"4848980027","phoneCountryCode":"1","email":"customer@example.com","postalCode":"94016","address":"100
                    Market Street","country":"US","province":"CA","city":"San
                    Francisco","street":"Market Street","number":"100"}'
                  sign: "{{SIGN}}"
                  subProductType: DIRECT
                  txnOrderMsg: '{"returnUrl":"{{RETURN-URL}}","products":"[{\"name\":\"Demo
                    product\",\"price\":\"99.99\",\"num\":\"1\",\"currency\":\"USD\"}]","transactionIp":"203.0.113.10","appId":"{{APPID}}","javaEnabled":false,"colorDepth":"24","screenHeight":"1080","screenWidth":"1920","timeZoneOffset":"-480","accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","userAgent":"Mozilla/5.0
                    (Demo
                    Browser)","contentLength":"0","language":"en-US","notifyUrl":"{{WEBHOOK-ENDPOINT}}"}'
                  txnType: SALE
              wallet-token:
                summary: Onerway-decrypted Apple Pay payment
                value:
                  billingInformation: '{"firstName":"John","lastName":"Doe","phone":"4848980027","phoneCountryCode":"1","email":"customer@example.com","postalCode":"94016","address":"100
                    Market Street","country":"US","province":"CA","city":"San
                    Francisco","street":"Market Street","number":"100"}'
                  merchantNo: "{{MERCHANT-NO}}"
                  merchantTxnId: txn_demo_wallet_202606140001
                  merchantTxnTime: 2026-06-14 10:30:00
                  merchantTxnTimeZone: +08:00
                  metaData: '{"orderSource":"direct-api-demo"}'
                  orderAmount: "99.99"
                  orderCurrency: USD
                  paymentMethodOptions: '{"card":{"avsEnabled":true}}'
                  paymentMode: WEB
                  productType: CARD
                  risk3dsStrategy: DEFAULT
                  shippingInformation: '{"firstName":"John","lastName":"Doe","phone":"4848980027","phoneCountryCode":"1","email":"customer@example.com","postalCode":"94016","address":"100
                    Market Street","country":"US","province":"CA","city":"San
                    Francisco","street":"Market Street","number":"100"}'
                  sign: "{{SIGN}}"
                  subProductType: DIRECT
                  tokenInfo: '{"provider":"ApplePay","tokenId":"{{APPLE-PAY-TOKEN}}"}'
                  txnOrderMsg: '{"returnUrl":"{{RETURN-URL}}","products":"[{\"name\":\"Demo
                    product\",\"price\":\"99.99\",\"num\":\"1\",\"currency\":\"USD\"}]","transactionIp":"203.0.113.10","appId":"{{APPID}}","javaEnabled":false,"colorDepth":"24","screenHeight":"1080","screenWidth":"1920","timeZoneOffset":"-480","accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","userAgent":"Mozilla/5.0
                    (Demo
                    Browser)","contentLength":"0","language":"en-US","notifyUrl":"{{WEBHOOK-ENDPOINT}}"}'
                  txnType: SALE
              saved-token:
                summary: Card token payment
                value:
                  billingInformation: '{"firstName":"John","lastName":"Doe","phone":"4848980027","phoneCountryCode":"1","email":"customer@example.com","postalCode":"94016","address":"100
                    Market Street","country":"US","province":"CA","city":"San
                    Francisco","street":"Market Street","number":"100"}'
                  cardInfo: '{"cvv":"{{CVV}}"}'
                  merchantCustId: cust_demo_202606140001
                  merchantNo: "{{MERCHANT-NO}}"
                  merchantTxnId: txn_demo_saved_token_202606140001
                  merchantTxnTime: 2026-06-14 10:30:00
                  merchantTxnTimeZone: +08:00
                  metaData: '{"orderSource":"direct-api-demo"}'
                  orderAmount: "99.99"
                  orderCurrency: USD
                  paymentMethodOptions: '{"card":{"avsEnabled":true}}'
                  paymentMode: WEB
                  productType: CARD
                  risk3dsStrategy: DEFAULT
                  shippingInformation: '{"firstName":"John","lastName":"Doe","phone":"4848980027","phoneCountryCode":"1","email":"customer@example.com","postalCode":"94016","address":"100
                    Market Street","country":"US","province":"CA","city":"San
                    Francisco","street":"Market Street","number":"100"}'
                  sign: "{{SIGN}}"
                  subProductType: TOKEN
                  tokenInfo: '{"tokenId":"{{PAYMENT-TOKEN}}"}'
                  txnOrderMsg: '{"returnUrl":"{{RETURN-URL}}","products":"[{\"name\":\"Demo
                    product\",\"price\":\"99.99\",\"num\":\"1\",\"currency\":\"USD\"}]","transactionIp":"203.0.113.10","appId":"{{APPID}}","javaEnabled":false,"colorDepth":"24","screenHeight":"1080","screenWidth":"1920","timeZoneOffset":"-480","accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","userAgent":"Mozilla/5.0
                    (Demo
                    Browser)","contentLength":"0","language":"en-US","notifyUrl":"{{WEBHOOK-ENDPOINT}}"}'
                  txnType: SALE
              subscription:
                summary: Direct subscription payment
                value:
                  billingInformation: '{"firstName":"John","lastName":"Doe","phone":"4848980027","phoneCountryCode":"1","email":"customer@example.com","postalCode":"94016","address":"100
                    Market Street","country":"US","province":"CA","city":"San
                    Francisco","street":"Market Street","number":"100"}'
                  cardInfo: '{"holderName":"John
                    Smith","cardNumber":"{{CARD-NUMBER}}","month":"12","year":"2030","cvv":"{{CVV}}"}'
                  merchantNo: "{{MERCHANT-NO}}"
                  merchantTxnId: txn_demo_direct_subscription_202606140001
                  merchantTxnTime: 2026-06-14 10:30:00
                  merchantTxnTimeZone: +08:00
                  metaData: '{"orderSource":"direct-api-demo"}'
                  orderAmount: "99.99"
                  orderCurrency: USD
                  paymentMethodOptions: '{"card":{"avsEnabled":true}}'
                  paymentMode: WEB
                  productType: CARD
                  risk3dsStrategy: DEFAULT
                  shippingInformation: '{"firstName":"John","lastName":"Doe","phone":"4848980027","phoneCountryCode":"1","email":"customer@example.com","postalCode":"94016","address":"100
                    Market Street","country":"US","province":"CA","city":"San
                    Francisco","street":"Market Street","number":"100"}'
                  sign: "{{SIGN}}"
                  subProductType: SUBSCRIBE
                  subscription: '{"requestType":"0","merchantCustId":"cust_demo_subscription_202606140001","selfExecute":"1","mode":"2","productName":"Demo
                    monthly
                    subscription","frequencyType":"M","frequencyPoint":"1","cycleCount":12,"trialFromPlan":"0","notificationEmail":"customer@example.com","bindCard":true,"metaData":"{\"planCode\":\"monthly_basic\"}"}'
                  txnOrderMsg: '{"returnUrl":"{{RETURN-URL}}","products":"[{\"name\":\"Demo
                    product\",\"price\":\"99.99\",\"num\":\"1\",\"currency\":\"USD\"}]","transactionIp":"203.0.113.10","appId":"{{APPID}}","javaEnabled":false,"colorDepth":"24","screenHeight":"1080","screenWidth":"1920","timeZoneOffset":"-480","accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","userAgent":"Mozilla/5.0
                    (Demo
                    Browser)","contentLength":"0","language":"en-US","notifyUrl":"{{WEBHOOK-ENDPOINT}}"}'
                  txnType: SALE
              subscription-renewal:
                summary: Self-managed subscription renewal charge
                value:
                  merchantNo: "{{MERCHANT-NO}}"
                  merchantTxnId: txn_demo_direct_subscription_renewal_202606140001
                  merchantCustId: cust_demo_subscription_202606140001
                  merchantTxnTime: 2026-06-14 10:30:00
                  merchantTxnTimeZone: +08:00
                  productType: CARD
                  subProductType: SUBSCRIBE
                  txnType: SALE
                  orderAmount: "9.99"
                  orderCurrency: USD
                  subscription: '{"requestType":"1","contractId":"replace_with_subscription_contract_id","tokenId":"replace_with_subscription_token_id"}'
                  txnOrderMsg: '{"products":"[{\"name\":\"Example unlimited
                    plan\",\"price\":\"9.99\",\"num\":\"1\",\"currency\":\"USD\"}]","appId":"{{APPID}}","notifyUrl":"{{WEBHOOK-ENDPOINT}}"}'
                  sign: "{{SIGN}}"
              installment:
                summary: Direct installment payment
                value:
                  billingInformation: '{"firstName":"John","lastName":"Doe","phone":"4848980027","phoneCountryCode":"1","email":"customer@example.com","postalCode":"94016","address":"100
                    Market Street","country":"US","province":"CA","city":"San
                    Francisco","street":"Market Street","number":"100"}'
                  cardInfo: '{"holderName":"John
                    Smith","cardNumber":"{{CARD-NUMBER}}","month":"12","year":"2030","cvv":"{{CVV}}"}'
                  merchantNo: "{{MERCHANT-NO}}"
                  merchantTxnId: txn_demo_direct_installment_202606140001
                  merchantTxnTime: 2026-06-14 10:30:00
                  merchantTxnTimeZone: +08:00
                  metaData: '{"orderSource":"direct-api-demo"}'
                  orderAmount: "99.99"
                  orderCurrency: USD
                  paymentMethodOptions: '{"card":{"avsEnabled":true}}'
                  paymentMode: WEB
                  productType: CARD
                  risk3dsStrategy: DEFAULT
                  shippingInformation: '{"firstName":"John","lastName":"Doe","phone":"4848980027","phoneCountryCode":"1","email":"customer@example.com","postalCode":"94016","address":"100
                    Market Street","country":"US","province":"CA","city":"San
                    Francisco","street":"Market Street","number":"100"}'
                  sign: "{{SIGN}}"
                  subProductType: INSTALLMENT
                  txnOrderMsg: '{"returnUrl":"{{RETURN-URL}}","products":"[{\"name\":\"Demo
                    product\",\"price\":\"99.99\",\"num\":\"1\",\"currency\":\"USD\"}]","transactionIp":"203.0.113.10","appId":"{{APPID}}","javaEnabled":false,"colorDepth":"24","screenHeight":"1080","screenWidth":"1920","timeZoneOffset":"-480","accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","userAgent":"Mozilla/5.0
                    (Demo
                    Browser)","contentLength":"0","language":"en-US","notifyUrl":"{{WEBHOOK-ENDPOINT}}","periodValue":"3"}'
                  txnType: SALE
              local-payment-method:
                summary: Direct local payment method payment
                value:
                  billingInformation: '{"firstName":"John","lastName":"Doe","phone":"4848980027","phoneCountryCode":"1","email":"customer@example.com","postalCode":"94016","address":"100
                    Market Street","country":"US","province":"CA","city":"San
                    Francisco","street":"Market Street","number":"100"}'
                  lpmsInfo: '{"lpmsType":"EFT","bankName":"bancolombia"}'
                  merchantNo: "{{MERCHANT-NO}}"
                  merchantTxnId: txn_demo_direct_lpms_202606140001
                  merchantTxnTime: 2026-06-14 10:30:00
                  merchantTxnTimeZone: +08:00
                  metaData: '{"orderSource":"direct-api-demo"}'
                  orderAmount: "99.99"
                  orderCurrency: USD
                  paymentMethodOptions: '{"card":{"avsEnabled":true}}'
                  paymentMode: WEB
                  productType: LPMS
                  risk3dsStrategy: DEFAULT
                  shippingInformation: '{"firstName":"John","lastName":"Doe","phone":"4848980027","phoneCountryCode":"1","email":"customer@example.com","postalCode":"94016","address":"100
                    Market Street","country":"US","province":"CA","city":"San
                    Francisco","street":"Market Street","number":"100"}'
                  sign: "{{SIGN}}"
                  subProductType: DIRECT
                  txnOrderMsg: '{"returnUrl":"{{RETURN-URL}}","products":"[{\"name\":\"Demo
                    product\",\"price\":\"99.99\",\"num\":\"1\",\"currency\":\"USD\"}]","transactionIp":"203.0.113.10","appId":"{{APPID}}","javaEnabled":false,"colorDepth":"24","screenHeight":"1080","screenWidth":"1920","timeZoneOffset":"-480","accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","userAgent":"Mozilla/5.0
                    (Demo
                    Browser)","contentLength":"0","language":"en-US","notifyUrl":"{{WEBHOOK-ENDPOINT}}"}'
                  txnType: SALE
              pre-authorization:
                summary: Direct pre-authorization payment
                value:
                  billingInformation: '{"firstName":"John","lastName":"Doe","phone":"4848980027","phoneCountryCode":"1","email":"customer@example.com","postalCode":"94016","address":"100
                    Market Street","country":"US","province":"CA","city":"San
                    Francisco","street":"Market Street","number":"100"}'
                  cardInfo: '{"holderName":"John
                    Smith","cardNumber":"{{CARD-NUMBER}}","month":"12","year":"2030","cvv":"{{CVV}}"}'
                  merchantNo: "{{MERCHANT-NO}}"
                  merchantTxnId: txn_demo_direct_auth_202606140001
                  merchantTxnTime: 2026-06-14 10:30:00
                  merchantTxnTimeZone: +08:00
                  metaData: '{"orderSource":"direct-api-demo"}'
                  orderAmount: "99.99"
                  orderCurrency: USD
                  paymentMethodOptions: '{"card":{"avsEnabled":true}}'
                  paymentMode: WEB
                  productType: CARD
                  risk3dsStrategy: DEFAULT
                  shippingInformation: '{"firstName":"John","lastName":"Doe","phone":"4848980027","phoneCountryCode":"1","email":"customer@example.com","postalCode":"94016","address":"100
                    Market Street","country":"US","province":"CA","city":"San
                    Francisco","street":"Market Street","number":"100"}'
                  sign: "{{SIGN}}"
                  subProductType: DIRECT
                  txnOrderMsg: '{"returnUrl":"{{RETURN-URL}}","products":"[{\"name\":\"Demo
                    product\",\"price\":\"99.99\",\"num\":\"1\",\"currency\":\"USD\"}]","transactionIp":"203.0.113.10","appId":"{{APPID}}","javaEnabled":false,"colorDepth":"24","screenHeight":"1080","screenWidth":"1920","timeZoneOffset":"-480","accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","userAgent":"Mozilla/5.0
                    (Demo
                    Browser)","contentLength":"0","language":"en-US","notifyUrl":"{{WEBHOOK-ENDPOINT}}"}'
                  txnType: AUTH
              apple-pay-merchant-decrypted:
                summary: Merchant-decrypted Apple Pay payment
                value:
                  merchantNo: "{{MERCHANT-NO}}"
                  merchantTxnId: txn_demo_apple_pay_decrypted_202609090001
                  merchantTxnTime: 2026-09-09 10:30:00
                  merchantTxnTimeZone: +08:00
                  orderAmount: "99.99"
                  orderCurrency: USD
                  productType: CARD
                  subProductType: DIRECT
                  txnType: SALE
                  paymentMode: WEB
                  cardInfo: '{"holderName":"John
                    Smith","cardNumber":"{{CARD-NUMBER}}","month":"12","year":"2030","cryptogram":"{{APPLE-PAY-CRYPTOGRAM}}","eci":"05","wallet":{"type":"ApplePay","applePay":{"paymentDataType":"3DSecure"}}}'
                  billingInformation: '{"firstName":"John","lastName":"Doe","phone":"4848980027","phoneCountryCode":"1","email":"customer@example.com","postalCode":"94016","address":"100
                    Market Street","country":"US","province":"CA","city":"San
                    Francisco","street":"Market Street","number":"100"}'
                  shippingInformation: '{"firstName":"John","lastName":"Doe","phone":"4848980027","phoneCountryCode":"1","email":"customer@example.com","postalCode":"94016","address":"100
                    Market Street","country":"US","province":"CA","city":"San
                    Francisco","street":"Market Street","number":"100"}'
                  txnOrderMsg: '{"returnUrl":"{{RETURN-URL}}","products":"[{\"name\":\"Wireless
                    Headphones\",\"price\":\"99.99\",\"num\":\"1\",\"currency\":\"USD\"}]","transactionIp":"203.0.113.10","appId":"{{APPID}}","javaEnabled":false,"colorDepth":"24","screenHeight":"1080","screenWidth":"1920","timeZoneOffset":"-480","accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","userAgent":"Mozilla/5.0
                    (Demo
                    Browser)","contentLength":"0","language":"en-US","notifyUrl":"{{WEBHOOK-ENDPOINT}}"}'
                  metaData: '{"orderSource":"direct-api-demo"}'
                  risk3dsStrategy: DEFAULT
                  sign: "{{SIGN}}"
              google-pay-onerway-decrypted:
                summary: Onerway-decrypted Google Pay payment
                value:
                  merchantNo: "{{MERCHANT-NO}}"
                  merchantTxnId: txn_demo_google_pay_202609090001
                  merchantTxnTime: 2026-09-09 10:30:00
                  merchantTxnTimeZone: +08:00
                  orderAmount: "99.99"
                  orderCurrency: USD
                  productType: CARD
                  subProductType: DIRECT
                  txnType: SALE
                  paymentMode: WEB
                  tokenInfo: '{"provider":"GooglePay","tokenId":"{{GOOGLE-PAY-TOKEN}}"}'
                  billingInformation: '{"firstName":"John","lastName":"Doe","phone":"4848980027","phoneCountryCode":"1","email":"customer@example.com","postalCode":"94016","address":"100
                    Market Street","country":"US","province":"CA","city":"San
                    Francisco","street":"Market Street","number":"100"}'
                  shippingInformation: '{"firstName":"John","lastName":"Doe","phone":"4848980027","phoneCountryCode":"1","email":"customer@example.com","postalCode":"94016","address":"100
                    Market Street","country":"US","province":"CA","city":"San
                    Francisco","street":"Market Street","number":"100"}'
                  txnOrderMsg: '{"returnUrl":"{{RETURN-URL}}","products":"[{\"name\":\"Wireless
                    Headphones\",\"price\":\"99.99\",\"num\":\"1\",\"currency\":\"USD\"}]","transactionIp":"203.0.113.10","appId":"{{APPID}}","javaEnabled":false,"colorDepth":"24","screenHeight":"1080","screenWidth":"1920","timeZoneOffset":"-480","accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","userAgent":"Mozilla/5.0
                    (Demo
                    Browser)","contentLength":"0","language":"en-US","notifyUrl":"{{WEBHOOK-ENDPOINT}}"}'
                  metaData: '{"orderSource":"direct-api-demo"}'
                  risk3dsStrategy: DEFAULT
                  sign: "{{SIGN}}"
              google-pay-merchant-decrypted:
                summary: Merchant-decrypted Google Pay CRYPTOGRAM_3DS payment
                value:
                  merchantNo: "{{MERCHANT-NO}}"
                  merchantTxnId: txn_demo_google_pay_decrypted_202609090001
                  merchantTxnTime: 2026-09-09 10:30:00
                  merchantTxnTimeZone: +08:00
                  orderAmount: "99.99"
                  orderCurrency: USD
                  productType: CARD
                  subProductType: DIRECT
                  txnType: SALE
                  paymentMode: WEB
                  cardInfo: '{"holderName":"John
                    Smith","cardNumber":"{{CARD-NUMBER}}","month":"12","year":"2030","cryptogram":"{{GOOGLE-PAY-CRYPTOGRAM}}","eci":"05","wallet":{"type":"GooglePay","googlePay":{"authMethod":"CRYPTOGRAM_3DS"}}}'
                  billingInformation: '{"firstName":"John","lastName":"Doe","phone":"4848980027","phoneCountryCode":"1","email":"customer@example.com","postalCode":"94016","address":"100
                    Market Street","country":"US","province":"CA","city":"San
                    Francisco","street":"Market Street","number":"100"}'
                  shippingInformation: '{"firstName":"John","lastName":"Doe","phone":"4848980027","phoneCountryCode":"1","email":"customer@example.com","postalCode":"94016","address":"100
                    Market Street","country":"US","province":"CA","city":"San
                    Francisco","street":"Market Street","number":"100"}'
                  txnOrderMsg: '{"returnUrl":"{{RETURN-URL}}","products":"[{\"name\":\"Wireless
                    Headphones\",\"price\":\"99.99\",\"num\":\"1\",\"currency\":\"USD\"}]","transactionIp":"203.0.113.10","appId":"{{APPID}}","javaEnabled":false,"colorDepth":"24","screenHeight":"1080","screenWidth":"1920","timeZoneOffset":"-480","accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","userAgent":"Mozilla/5.0
                    (Demo
                    Browser)","contentLength":"0","language":"en-US","notifyUrl":"{{WEBHOOK-ENDPOINT}}"}'
                  metaData: '{"orderSource":"direct-api-demo"}'
                  risk3dsStrategy: DEFAULT
                  sign: "{{SIGN}}"
              google-pay-pan-only-cvv:
                summary: Google Pay PAN_ONLY payment with merchant-collected CVC
                value:
                  merchantNo: "{{MERCHANT-NO}}"
                  merchantTxnId: txn_demo_google_pay_202609090001
                  merchantTxnTime: 2026-09-09 10:30:00
                  merchantTxnTimeZone: +08:00
                  orderAmount: "99.99"
                  orderCurrency: USD
                  productType: CARD
                  subProductType: DIRECT
                  txnType: SALE
                  paymentMode: WEB
                  tokenInfo: '{"provider":"GooglePay","tokenId":"{{GOOGLE-PAY-TOKEN}}"}'
                  cardInfo: '{"cvv":"{{CVV}}"}'
                  billingInformation: '{"firstName":"John","lastName":"Doe","phone":"4848980027","phoneCountryCode":"1","email":"customer@example.com","postalCode":"94016","address":"100
                    Market Street","country":"US","province":"CA","city":"San
                    Francisco","street":"Market Street","number":"100"}'
                  shippingInformation: '{"firstName":"John","lastName":"Doe","phone":"4848980027","phoneCountryCode":"1","email":"customer@example.com","postalCode":"94016","address":"100
                    Market Street","country":"US","province":"CA","city":"San
                    Francisco","street":"Market Street","number":"100"}'
                  txnOrderMsg: '{"returnUrl":"{{RETURN-URL}}","products":"[{\"name\":\"Wireless
                    Headphones\",\"price\":\"99.99\",\"num\":\"1\",\"currency\":\"USD\"}]","transactionIp":"203.0.113.10","appId":"{{APPID}}","javaEnabled":false,"colorDepth":"24","screenHeight":"1080","screenWidth":"1920","timeZoneOffset":"-480","accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","userAgent":"Mozilla/5.0
                    (Demo
                    Browser)","contentLength":"0","language":"en-US","notifyUrl":"{{WEBHOOK-ENDPOINT}}"}'
                  metaData: '{"orderSource":"direct-api-demo"}'
                  risk3dsStrategy: DEFAULT
                  sign: "{{SIGN}}"
              marketplace-retailers:
                summary: Direct marketplace payment with multiple retailers
                value:
                  billingInformation: '{"firstName":"John","lastName":"Doe","phone":"4848980027","phoneCountryCode":"1","email":"customer@example.com","postalCode":"94016","address":"100
                    Market Street","country":"US","province":"CA","city":"San
                    Francisco","street":"Market Street","number":"100"}'
                  cardInfo: '{"holderName":"John
                    Smith","cardNumber":"{{CARD-NUMBER}}","month":"12","year":"2030","cvv":"{{CVV}}"}'
                  merchantNo: "{{MERCHANT-NO}}"
                  merchantTxnId: txn_demo_direct_marketplace_202606140001
                  merchantTxnTime: 2026-06-14 10:30:00
                  merchantTxnTimeZone: +08:00
                  metaData: '{"orderSource":"direct-api-demo"}'
                  orderAmount: "150.00"
                  orderCurrency: USD
                  paymentMethodOptions: '{"card":{"avsEnabled":true}}'
                  paymentMode: WEB
                  productType: CARD
                  retailers: '[{"retailerId":"RTL_100001","retailerName":"ABC Retail
                    Limited","retailerCountry":"GB"},{"retailerId":"RTL_100002","retailerName":"XYZ
                    Store GmbH","retailerCountry":"DE"}]'
                  risk3dsStrategy: DEFAULT
                  shippingInformation: '{"firstName":"John","lastName":"Doe","phone":"4848980027","phoneCountryCode":"1","email":"customer@example.com","postalCode":"94016","address":"100
                    Market Street","country":"US","province":"CA","city":"San
                    Francisco","street":"Market Street","number":"100"}'
                  sign: "{{SIGN}}"
                  subProductType: DIRECT
                  txnOrderMsg: '{"returnUrl":"{{RETURN-URL}}","products":"[{\"name\":\"Wireless
                    Headphones\",\"price\":\"50.00\",\"num\":\"2\",\"currency\":\"USD\",\"retailerId\":\"RTL_100001\"},{\"name\":\"Desk
                    Lamp\",\"price\":\"50.00\",\"num\":\"1\",\"currency\":\"USD\",\"retailerId\":\"RTL_100002\"}]","transactionIp":"203.0.113.10","appId":"{{APPID}}","javaEnabled":false,"colorDepth":"24","screenHeight":"1080","screenWidth":"1920","timeZoneOffset":"-480","accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","userAgent":"Mozilla/5.0
                    (Demo
                    Browser)","contentLength":"0","language":"en-US","notifyUrl":"{{WEBHOOK-ENDPOINT}}"}'
                  txnType: SALE
              automatic-profit-share:
                summary: Payment with automatic profit share notifications
                value:
                  billingInformation: '{"firstName":"Example","lastName":"Customer","email":"customer@example.com","country":"US","province":"CA"}'
                  cardInfo: '{"holderName":"Example
                    Customer","cardNumber":"replace_with_card_number","month":"12","year":"2030","cvv":"replace_with_cvv"}'
                  merchantNo: replace_with_merchant_no
                  merchantTxnId: example_automatic_profit_share_payment
                  merchantTxnTime: 2026-09-17 10:00:00
                  merchantTxnTimeZone: +08:00
                  metaData: '{"orderSource":"direct-api-demo"}'
                  orderAmount: "99.99"
                  orderCurrency: USD
                  paymentMethodOptions: '{"share":{"profitShare":true,"profitShareRate":"10","profitShareNotifyUrl":"https://developers.onerway.com/example-profit-callback"}}'
                  paymentMode: WEB
                  productType: CARD
                  risk3dsStrategy: DEFAULT
                  shippingInformation: '{"firstName":"Example","lastName":"Customer","email":"customer@example.com","country":"US","province":"CA"}'
                  sign: replace_with_calculated_signature
                  subProductType: DIRECT
                  txnOrderMsg: '{"returnUrl":"https://developers.onerway.com/example-return","products":"[{\"name\":\"Demo
                    product\",\"price\":\"99.99\",\"num\":\"1\",\"currency\":\"USD\"}]","transactionIp":"203.0.113.10","appId":"replace_with_app_id","javaEnabled":false,"colorDepth":"24","screenHeight":"1080","screenWidth":"1920","timeZoneOffset":"-480","accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","userAgent":"Mozilla/5.0
                    (Demo
                    Browser)","contentLength":"0","language":"en-US","notifyUrl":"https://developers.onerway.com/example-notify"}'
                  txnType: SALE
      responses:
        "200":
          description: Redirect required
          content:
            application/json:
              schema:
                type: object
                properties:
                  respCode:
                    type: string
                    description: Response code; `20000` means the request was processed
                      successfully, other values are error codes. See [Response
                      codes](/payments/api-reference/response-codes).
                  respMsg:
                    type: string
                    description: Human-readable message for the response code.
                  data:
                    type: object
                    properties:
                      transactionId:
                        type:
                          - string
                          - "null"
                        description: Transaction number generated by Onerway for tracking and querying.
                        x-onerway-value:
                          nullable: true
                          when:
                            en: Returned `null` in the redirect response of a Google Pay `PAN_ONLY` token
                              that still needs the CVC.
                            zh: Google Pay `PAN_ONLY` token 需补 CVC 的跳转响应中为 `null`。
                      paymentId:
                        type:
                          - string
                          - "null"
                        description: Payment intent ID identifying this payment; currently one request
                          maps to one `paymentId`, one-to-one with
                          `transactionId`.
                        x-onerway-value:
                          nullable: true
                          when:
                            en: Returned `null` in the redirect response of a Google Pay `PAN_ONLY` token
                              that still needs the CVC.
                            zh: Google Pay `PAN_ONLY` token 需补 CVC 的跳转响应中为 `null`。
                      responseTime:
                        type:
                          - string
                          - "null"
                        description: API response time in `yyyy-MM-dd HH:mm:ss` format.
                        x-onerway-value:
                          nullable: true
                          empty: true
                          when:
                            en: Has a value after the transaction is processed.
                            zh: 交易处理后才有值。
                      txnTime:
                        type:
                          - string
                          - "null"
                        description: Transaction completion time in `yyyy-MM-dd HH:mm:ss` format.
                        x-onerway-value:
                          nullable: true
                          empty: true
                          when:
                            en: Has a value after the transaction completes.
                            zh: 交易完成后才有值。
                      txnTimeZone:
                        type:
                          - string
                          - "null"
                        description: Transaction time zone offset in `+HH:mm` or `-HH:mm` format.
                        x-onerway-value:
                          nullable: true
                          empty: true
                          when:
                            en: Has a value after the transaction completes.
                            zh: 交易完成后才有值。
                      orderAmount:
                        type: string
                        description: Original order amount in the transaction currency. Returned as a
                          decimal string using the amount precision accepted for
                          the submitted `orderCurrency`.
                      orderCurrency:
                        type: string
                        description: Order currency, a three-letter [ISO
                          4217](https://en.wikipedia.org/wiki/ISO_4217) currency
                          code.
                      txnAmount:
                        type:
                          - string
                          - "null"
                        description: Legacy settlement amount field.
                        x-onerway-value:
                          nullable: true
                          empty: true
                          when:
                            en: Deprecated field; do not rely on this response value for the settlement
                              amount.
                            zh: 已弃用字段；不要依赖该响应值判断到账金额。
                        deprecated: true
                        x-onerway-deprecated:
                          description:
                            en: Do not rely on this field for the settled amount. The actual settlement
                              amount follows settlement batch details or
                              reports.
                            zh: 请勿依赖本字段判断到账金额。实际结算金额按结算批次结算，以对应批次的结算明细 / 结算报表为准。
                      txnCurrency:
                        type:
                          - string
                          - "null"
                        description: Legacy settlement currency field.
                        x-onerway-value:
                          nullable: true
                          empty: true
                          when:
                            en: Deprecated field; do not rely on this response value for the settlement
                              currency.
                            zh: 已弃用字段；不要依赖该响应值判断结算币种。
                        deprecated: true
                        x-onerway-deprecated:
                          description:
                            en: Do not rely on this field for the settlement currency. The settlement
                              currency follows the merchant settlement
                              configuration agreed with Onerway.
                            zh: 请勿依赖本字段判断结算币种。结算币种以商户与 Onerway 预先约定的结算配置为准。
                      status:
                        type: string
                        description: Current transaction processing status. Direct API synchronous
                          responses may already be terminal (`S` / `F`) or
                          require redirect (`R`).
                        enum:
                          - S
                          - F
                          - P
                          - R
                          - N
                          - I
                          - U
                        x-enum-descriptions:
                          S: Successful transaction.
                          F: Failed transaction.
                          P: Transaction is processing.
                          R: Redirect is required to continue payment.
                          N: Transaction was canceled, including closure after timing out without payment.
                          I: Transaction is under review or approval.
                          U: Waiting for payment.
                      paymentStatus:
                        type: string
                        description: Payment-intent-level status. For this direct API endpoint, one
                          request currently maps to one payment intent and the
                          payment status stays aligned with the transaction
                          state.
                        enum:
                          - I
                          - U
                          - P
                          - R
                          - A
                          - O
                          - S
                          - N
                        x-enum-descriptions:
                          I: Initialized payment intent.
                          U: Payment intent is pending.
                          P: Payment intent is processing.
                          R: Payment intent requires redirect.
                          A: Payment intent is authorized.
                          O: Payment intent is open.
                          S: Payment intent succeeded.
                          N: Payment intent is closed. It timed out without a successful payment — either
                            no attempt was made or all attempts failed.
                      redirectUrl:
                        type:
                          - string
                          - "null"
                        description: Redirect URL for 3DS verification or local payment method pages.
                        x-onerway-value:
                          nullable: true
                          empty: true
                          when:
                            en: Has a value when `status=R` and `actionType=RedirectURL`.
                            zh: 当 `status=R` 且 `actionType=RedirectURL` 时才有值。
                      contractId:
                        type:
                          - string
                          - "null"
                        description: Subscription contract ID, required for subsequent billing.
                        x-onerway-value:
                          nullable: true
                          empty: true
                          when:
                            en: Has a value after the initial subscription succeeds, usually together with
                              `tokenId`.
                            zh: 初始订阅成功后才有值，通常与 `tokenId` 成对返回。
                      tokenId:
                        type:
                          - string
                          - "null"
                        description: Payment token generated from buyer payment information.
                          Subscription tokens and card-tokenization tokens
                          belong to different systems and must not be mixed.
                        x-onerway-value:
                          nullable: true
                          empty: true
                          when:
                            en: Has a value after the initial subscription or card tokenization succeeds.
                            zh: 初始订阅成功或生成卡 token 成功后才有值。
                      eci:
                        type:
                          - string
                          - "null"
                        description: Electronic Commerce Indicator (ECI) marking transaction security
                          level and liability shift.
                        x-onerway-value:
                          nullable: true
                          empty: true
                          when:
                            en: Has a value only for 3DS transactions.
                            zh: 3DS 交易才有值。
                      periodValue:
                        type:
                          - string
                          - "null"
                        description: Number of installment periods.
                        x-onerway-value:
                          nullable: true
                          empty: true
                          when:
                            en: Has a value only for installment transactions.
                            zh: 分期交易才有值。
                      codeForm:
                        type:
                          - string
                          - "null"
                        description: Payment code information object, carried as a JSON string.
                        contentMediaType: application/json
                        contentSchema:
                          type: object
                          properties:
                            expireTime:
                              type:
                                - string
                                - "null"
                              description: Payment code expiration time in ISO 8601 format.
                              x-onerway-value:
                                nullable: true
                                empty: true
                                when:
                                  en: Provided when the code has an expiration time.
                                  zh: 支付码存在失效时间时提供。
                            codeDetails:
                              type:
                                - array
                                - "null"
                              description: Payment code detail list.
                              items:
                                type: object
                                properties:
                                  codeValueType:
                                    type:
                                      - string
                                      - "null"
                                    description: Code format type.
                                    enum:
                                      - BARCODE
                                      - QRCODE
                                      - null
                                    x-enum-descriptions:
                                      BARCODE: Barcode format.
                                      QRCODE: QR code format.
                                    x-onerway-value:
                                      nullable: true
                                      empty: true
                                      when:
                                        en: Provided with each code detail.
                                        zh: 随码明细提供。
                                  codeValue:
                                    type:
                                      - string
                                      - "null"
                                    description: Actual encoded code value for display or scanning.
                                    x-onerway-value:
                                      nullable: true
                                      empty: true
                                      when:
                                        en: Provided with each code detail.
                                        zh: 随码明细提供。
                                  displayType:
                                    type:
                                      - string
                                      - "null"
                                    description: Display type for the code value.
                                    enum:
                                      - TEXT
                                      - IMAGE
                                      - null
                                    x-enum-descriptions:
                                      TEXT: Display as text or a copyable label.
                                      IMAGE: Display as an image suitable for scanning.
                                    x-onerway-value:
                                      nullable: true
                                      empty: true
                                      when:
                                        en: Provided with each code detail.
                                        zh: 随码明细提供。
                              x-onerway-value:
                                nullable: true
                                empty: true
                                when:
                                  en: Provided together with `codeForm` when code details are available.
                                  zh: 随 `codeForm` 返回且码明细可用时提供。
                        x-onerway-value:
                          nullable: true
                          empty: true
                          when:
                            en: Has a value when a QR code or barcode must be presented to the customer.
                            zh: 需向用户展示支付码（二维码 / 条码）的支付方式才有值。
                        x-onerway-format: json_string
                      presentContext:
                        type:
                          - string
                          - "null"
                        description: Additional context for rendering payment interface elements,
                          carried as a JSON string.
                        x-onerway-value:
                          nullable: true
                          empty: true
                          when:
                            en: Has a value when `status=R` and `actionType=ShowContext`.
                            zh: 当 `status=R` 且 `actionType=ShowContext` 时才有值。
                      actionType:
                        type:
                          - string
                          - "null"
                        description: Next action type to execute.
                        enum:
                          - RedirectURL
                          - QrCode
                          - ShowContext
                          - null
                        x-enum-descriptions:
                          RedirectURL: Redirect to a payment gateway, 3DS page, or local payment method
                            page.
                          QrCode: Display a QR code or barcode carried by `codeForm`.
                          ShowContext: Display contextual content carried by `presentContext`.
                        x-onerway-value:
                          nullable: true
                          empty: true
                          when:
                            en: Has a value when `status=R` and the transaction requires an additional
                              customer action.
                            zh: 当 `status=R` 且交易需要额外动作时才有值。
                      subscriptionManageUrl:
                        type:
                          - string
                          - "null"
                        description: Subscription management URL where the buyer can view and manage the
                          subscription.
                        x-onerway-value:
                          nullable: true
                          empty: true
                          when:
                            en: Has a value only in subscription scenarios.
                            zh: 订阅场景才有值。
                      rrn:
                        type:
                          - string
                          - "null"
                        description: Retrieval Reference Number (RRN), used for reconciliation and
                          inquiries.
                        x-onerway-value:
                          nullable: true
                          empty: true
                          when:
                            en: Has a value after the transaction is accepted by the acquiring network.
                            zh: 交易被收单网络受理后才有值。
                      authorizationCode:
                        type:
                          - string
                          - "null"
                        description: Issuer authorization code, used for reconciliation and dispute
                          handling.
                        x-onerway-value:
                          nullable: true
                          empty: true
                          when:
                            en: Has a value after issuer authorization is approved.
                            zh: 发卡行授权通过后才有值。
                      cardInfo:
                        type:
                          - string
                          - "null"
                        description: Masked card information object returned when card details are
                          available.
                        contentMediaType: application/json
                        contentSchema:
                          type: object
                          properties:
                            {}
                        x-onerway-value:
                          nullable: true
                          empty: true
                          when:
                            en: Has a value for card transactions after masked card details are available.
                            zh: 卡类交易在脱敏卡信息可用后才有值。
                        x-onerway-format: json_string
                      sign:
                        type: string
                        description: Response signature string; verifying the response signature is
                          currently not recommended for merchants.
                    description: Business data object for the direct transaction response. The
                      synchronous response may be terminal or may instruct the
                      merchant to redirect or present an action.
              examples:
                redirect-required:
                  summary: Redirect required
                  value:
                    respCode: "20000"
                    respMsg: Success
                    data:
                      transactionId: "2064485863093829632"
                      paymentId: "2064485863068663808"
                      responseTime: 2026-06-14 10:30:02
                      txnTime: null
                      txnTimeZone: null
                      orderAmount: "99.99"
                      orderCurrency: USD
                      txnAmount: ""
                      txnCurrency: null
                      status: R
                      paymentStatus: R
                      redirectUrl: https://developers.onerway.com/example-direct-redirect
                      contractId: null
                      tokenId: null
                      eci: null
                      periodValue: null
                      codeForm: null
                      presentContext: null
                      actionType: RedirectURL
                      subscriptionManageUrl: null
                      rrn: null
                      authorizationCode: null
                      cardInfo: null
                      sign: "{{SIGN}}"
                google-pay-pan-only-redirect:
                  summary: Google Pay PAN_ONLY token, redirect to the Onerway CVC page
                  value:
                    respCode: "20000"
                    respMsg: Success
                    data:
                      transactionId: null
                      paymentId: null
                      responseTime: null
                      txnTime: null
                      txnTimeZone: null
                      orderAmount: "99.99"
                      orderCurrency: USD
                      txnAmount: ""
                      txnCurrency: null
                      status: R
                      paymentStatus: R
                      redirectUrl: https://developers.onerway.com/example-google-pay-cvv
                      contractId: null
                      tokenId: null
                      eci: null
                      periodValue: null
                      codeForm: null
                      presentContext: null
                      actionType: RedirectURL
                      subscriptionManageUrl: null
                      rrn: null
                      authorizationCode: null
                      cardInfo: null
                      sign: "{{SIGN}}"
```
