# 保存支付方式结果通知

> 接收保存支付方式（绑卡）交易的最终结果回调报文，覆盖纯绑卡与订阅并绑卡场景。

```yaml
openapi: 3.1.0
info:
  title: 保存支付方式结果通知
  version: 1.0.0
  description: 接收保存支付方式（绑卡）交易的最终结果回调报文，覆盖纯绑卡与订阅并绑卡场景。
webhooks:
  payment.method.result:
    post:
      summary: 保存支付方式结果通知
      description: 接收保存支付方式（绑卡）交易的最终结果回调报文，覆盖纯绑卡与订阅并绑卡场景。
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                notifyType:
                  type: string
                  description: 通知类型，标识本次 Webhook 的业务大类。
                  x-onerway-constraints:
                    - kind: values
                      text: 保存支付方式结果通知固定返回 `TXN`。
                  x-onerway-signature-participation: included
                transactionId:
                  type: string
                  description: Onerway 为本次绑定交易生成的交易号，用于跟踪、查询和幂等处理。
                  x-onerway-constraints:
                    - kind: rule
                      text: 该值为大整数样式字符串；JavaScript 系统中应按字符串保存和比对，避免精度丢失。
                    - kind: consistency
                      text: 纯绑卡：该值等于生成卡 token 接口同步响应中的
                        `transactionId`，可用于匹配同步响应与本条最终结果。卡订阅（`bindCard=true`）和本地支付方式订阅：该值与订阅扣款通知的
                        `transactionId` 不同，不能用于匹配两条通知。每条通知请按各自的 `transactionId`
                        做幂等处理。
                  x-onerway-signature-participation: included
                paymentId:
                  type:
                    - string
                    - "null"
                  description: 绑定交易的支付意图 ID。
                  x-onerway-constraints:
                    - kind: consistency
                      text: 卡订阅（`bindCard=true`）：与订阅扣款通知的 `paymentId` 不同。本地支付方式订阅：与订阅扣款通知的 `paymentId`
                        相同。请勿把任一关系套用到其他支付方式；请按 `tokenId` 中说明的 token 关系匹配两条通知。
                  x-onerway-value:
                    nullable: true
                    empty: true
                    when:
                      en: Returned when a payment intent ID has been generated for the transaction.
                      zh: 交易生成了支付意图 ID 时返回。
                  x-onerway-signature-participation: included
                txnType:
                  type: string
                  description: 交易操作类型，表示本次通知对应的交易动作。
                  enum:
                    - BIND_CARD
                  x-enum-descriptions:
                    BIND_CARD: 保存支付方式（绑卡 / 绑定）交易。
                  x-onerway-constraints:
                    - kind: values
                      text: 固定为
                        `BIND_CARD`。订阅扣款结果由[订阅扣款通知](/zh/payments/api-reference/webhooks/subscription-payment)单独返回。卡订阅（`bindCard=true`）：Onerway
                        先生成订阅扣款通知，支付成功后再发送本通知。本地支付方式订阅：Onerway
                        先发送本通知完成订阅授权，再生成首次扣款的订阅扣款通知。两条通知到达商户服务器的先后顺序不保证。
                  x-onerway-signature-participation: included
                merchantNo:
                  type: string
                  description: Onerway 分配的商户号，标识接收该通知的商户账户。
                  x-onerway-signature-participation: included
                merchantTxnId:
                  type: string
                  description: 绑定交易的商户交易号。
                  x-onerway-constraints:
                    - kind: rule
                      text: 纯绑卡：该值由 Onerway 生成，不是商户请求中的交易号。卡订阅（`bindCard=true`）：与订阅扣款通知的
                        `merchantTxnId` 不同，不要用它匹配两条通知。本地支付方式订阅：与订阅扣款通知的
                        `merchantTxnId` 相同。
                  x-onerway-signature-participation: included
                responseTime:
                  type: string
                  description: Onerway 生成本次通知结果的时间，格式为 `yyyy-MM-dd HH:mm:ss`。
                  x-onerway-signature-participation: included
                txnTime:
                  type: string
                  description: 绑定交易发生或状态形成的时间，格式为 `yyyy-MM-dd HH:mm:ss`。
                  x-onerway-signature-participation: included
                txnTimeZone:
                  type: string
                  description: "`txnTime` 使用的时区偏移，格式为 `±HH:mm`。"
                  x-onerway-signature-participation: included
                orderAmount:
                  type: string
                  description: 绑定交易金额。
                  x-onerway-constraints:
                    - kind: rule
                      text: 金额以 decimal string 返回，商户系统应避免用二进制浮点数直接计算金额。
                    - kind: values
                      text: 绑定交易为零金额，该字段返回 `0.00`。
                  x-onerway-signature-participation: included
                orderCurrency:
                  type: string
                  description: 绑定交易币种，随请求 / 交易币种返回，[ISO
                    4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes)
                    三位字母货币代码。
                  x-onerway-signature-participation: included
                status:
                  type: string
                  description: 保存支付方式交易的处理结果。
                  enum:
                    - S
                    - F
                  x-enum-descriptions:
                    S: 成功；支付方式已保存。
                    F: 失败；保存支付方式被拒绝或处理失败。
                  x-onerway-constraints:
                    - kind: rule
                      text: 以本字段作为保存支付方式的最终结果：仅当 `status` 为 `S` 时保存并使用 `tokenId`。
                    - kind: rule
                      text: 本地支付方式订阅授权失败即订阅终止：不会再发送订阅扣款通知，本通知的 `subscriptionStatus` 为 `canceled`。
                  x-onerway-signature-participation: included
                tokenId:
                  type: string
                  description: 本次交易产生的 token，类型取决于所属流程，见约束说明。
                  x-onerway-constraints:
                    - kind: rule
                      text: 仅当 `status=S` 时保存并使用该 token；失败通知即使返回 `tokenId` 也不要使用。
                    - kind: consistency
                      text: 纯绑卡和卡订阅（`bindCard=true`）：该值是保存支付方式
                        token，用于后续通过[创建直连交易](/zh/payments/api-reference/endpoints/direct-create-transaction)发起
                        `subProductType=TOKEN`
                        支付。卡订阅场景下，[订阅扣款通知](/zh/payments/api-reference/webhooks/subscription-payment)的
                        `cardTokenId` 与该值相同，而订阅扣款通知的 `tokenId` 是另一个订阅 token。
                    - kind: consistency
                      text: 本地支付方式订阅：该值是订阅 token，与订阅扣款通知的 `tokenId` 相同；仅用于订阅相关操作，不能用于
                        `subProductType=TOKEN` 支付，订阅扣款通知也不返回 `cardTokenId`。
                  x-onerway-signature-participation: included
                tokenExpireTime:
                  type:
                    - string
                    - "null"
                  description: 保存 token 的过期时间，格式为 `yyyy-MM-dd HH:mm:ss`。
                  x-onerway-value:
                    nullable: true
                    empty: true
                    when:
                      en: Returned when `status` is `S`; not returned for failed notifications.
                      zh: "`status=S` 时返回；失败通知不返回。"
                  x-onerway-signature-participation: excluded
                cardBinCountry:
                  type:
                    - string
                    - "null"
                  description: 卡 BIN 所属国家 / 地区，[ISO 3166-1
                    alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
                    两位字母代码。
                  x-onerway-value:
                    nullable: true
                    empty: true
                    when:
                      en: Returned for card bindings when the card BIN country or region can be
                        identified. Not returned for local payment method
                        subscriptions.
                      zh: 卡绑定且可识别卡 BIN 所属国家 / 地区时返回；本地支付方式订阅不返回。
                  x-onerway-signature-participation: included
                reason:
                  type: string
                  description: 绑定结果原因对象，通知中按 JSON string 承载。
                  contentMediaType: application/json
                  contentSchema:
                    type: object
                    properties:
                      respCode:
                        type: string
                        description: 结果码；`20000` 表示保存成功，其余值表示拒绝或失败原因。
                      respMsg:
                        type: string
                        description: 结果码对应的可读说明。
                  x-onerway-format: json_string
                  x-onerway-signature-participation: included
                sign:
                  type: string
                  description: 兼容保留的签名字符串：仅使用第一个启用的密钥计算，密钥轮换期间可能与商户配置的密钥不一致；请改用 `X-Rh-Signature`
                    header 验签。
                  x-onerway-constraints:
                    - kind: rule
                      text: 验签时不要把 `sign` 自身作为待签名字段。
                  x-onerway-signature-participation: signature-field
                paymentMethod:
                  type: string
                  description: 本次保存的支付方式或卡品牌。除卡以外，本通知也用于本地支付方式订阅的订阅授权结果。
                  x-onerway-signature-participation: excluded
                walletTypeName:
                  type:
                    - string
                    - "null"
                  description: 钱包类型名称。
                  x-onerway-value:
                    nullable: true
                    empty: true
                    when:
                      en: Not returned by this webhook; wallet subscriptions do not produce a
                        `BIND_CARD` notification.
                      zh: 本通知不返回该字段；钱包支付订阅不会产生 `BIND_CARD` 通知。
                  x-onerway-signature-participation: excluded
                channelRequestId:
                  type:
                    - string
                    - "null"
                  description: 支付渠道侧的请求标识，可用于渠道侧对账或排查。
                  x-onerway-constraints:
                    - kind: consistency
                      text: 卡订阅（`bindCard=true`）和本地支付方式订阅：该值与订阅扣款通知的 `channelRequestId` 不同，不能用于匹配两条通知。
                  x-onerway-value:
                    nullable: true
                    empty: true
                    when:
                      en: Returned after the binding transaction enters channel processing and a
                        channel request identifier is generated.
                      zh: 绑定交易进入支付渠道处理并生成渠道请求标识后返回。
                  x-onerway-signature-participation: included
                paymentStatus:
                  type:
                    - string
                    - "null"
                  description: 绑定交易的支付意图状态。
                  x-onerway-value:
                    nullable: true
                    empty: true
                    when:
                      en: Returned only when the subscription authorization of a local payment method
                        subscription fails. Successful notifications do not
                        return it.
                      zh: 仅在本地支付方式订阅授权失败时返回；成功通知不返回。
                  x-onerway-signature-participation: included
                contractId:
                  type:
                    - string
                    - "null"
                  description: 订阅合约 ID。
                  x-onerway-constraints:
                    - kind: rule
                      text: 该值为大整数样式字符串；JavaScript 系统中应按字符串保存和比对，避免精度丢失。
                    - kind: consistency
                      text: 本地支付方式订阅：与订阅扣款通知的 `contractId`
                        相同。卡订阅（`bindCard=true`）在本通知中不返回该字段，因此不能作为匹配两条通知的通用键。
                  x-onerway-value:
                    nullable: true
                    empty: true
                    when: &a1
                      en: Returned for local payment method subscriptions, where this notification
                        reports the subscription authorization. Not returned for
                        standalone card tokenization or card subscriptions
                        (`bindCard=true`).
                      zh: 本地支付方式订阅返回，此时本通知代表订阅授权结果；纯绑卡和卡订阅（`bindCard=true`）不返回。
                  x-onerway-signature-participation: included
                subscriptionStatus:
                  type:
                    - string
                    - "null"
                  description: 关联订阅合约的状态。
                  x-onerway-value:
                    nullable: true
                    empty: true
                    when: *a1
                  x-onerway-signature-participation: included
                dataStatus:
                  type:
                    - string
                    - "null"
                  description: 关联订阅合约记录的数据状态。
                  enum:
                    - "0"
                    - "1"
                    - "2"
                    - "3"
                    - null
                  x-enum-descriptions:
                    "0": 待启用。
                    "1": 启用。
                    "2": 停用。
                    "3": 已取消。
                  x-onerway-value:
                    nullable: true
                    empty: true
                    when: *a1
                  x-onerway-signature-participation: included
                products:
                  type:
                    - string
                    - "null"
                  description: 订阅请求中 `txnOrderMsg.products` 提交的商品列表，通知中按 JSON string 返回。
                  contentMediaType: application/json
                  contentSchema:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          description: 商品名称。
                        price:
                          type: string
                          description: 商品单价，使用 decimal string。
                          x-onerway-constraints:
                            - kind: rule
                              text: 金额以 decimal string 返回，商户系统应避免用二进制浮点数直接计算金额。
                        num:
                          type: string
                          description: 商品数量。
                          x-onerway-constraints:
                            - kind: rule
                              text: 该值可能以 string 或 JSON number 返回；商户应在入库或对账前归一化。
                        currency:
                          type: string
                          description: 商品币种，[ISO
                            4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes)
                            三位字母货币代码。
                  x-onerway-value:
                    nullable: true
                    empty: true
                    when: *a1
                  x-onerway-format: json_string
                  x-onerway-signature-participation: included
                scenarios:
                  type:
                    - string
                    - "null"
                  description: 本次订阅授权对应的订阅场景，取值见[订阅扣款通知的 `scenarios`
                    字段](/zh/payments/api-reference/webhooks/subscription-payment#webhook-scenarios)。
                  x-onerway-value:
                    nullable: true
                    empty: true
                    when:
                      en: Returned for local payment method subscriptions, where this notification
                        reports the subscription authorization. Not returned for
                        card subscriptions (`bindCard=true`); their scenario is
                        returned in the Subscription payment webhook.
                      zh: 本地支付方式订阅返回，此时本通知代表订阅授权结果；卡订阅（`bindCard=true`）不返回，其订阅场景由订阅扣款通知返回。
                  x-onerway-signature-participation: included
                paymentMethodDetails:
                  type:
                    - string
                    - "null"
                  description: 支付方式详情对象；卡绑定的明细位于 `card` 子对象。
                  contentMediaType: application/json
                  contentSchema:
                    type: object
                    properties:
                      card:
                        type:
                          - object
                          - "null"
                        properties:
                          checks:
                            type:
                              - object
                              - "null"
                            properties:
                              addressCheck:
                                type:
                                  - string
                                  - "null"
                                description: AVS 街道地址校验结果。
                                enum:
                                  - pass
                                  - fail
                                  - unavailable
                                  - unchecked
                                  - notProvided
                                  - unsupported
                                  - null
                                x-enum-descriptions:
                                  pass: 提交验证的信息与发卡行记录一致。
                                  fail: 提交验证的信息与发卡行记录不一致。
                                  unavailable: 发卡行不支持此类验证。
                                  unchecked: 未执行验证。
                                  notProvided: 未提供本次验证所需的信息。
                                  unsupported: 此交易不支持 AVS。
                                x-onerway-value:
                                  nullable: true
                                  when:
                                    en: Has a value when AVS street-address verification was performed.
                                    zh: 执行 AVS 街道地址校验时有值。
                              postalCodeCheck:
                                type:
                                  - string
                                  - "null"
                                description: AVS 邮政编码校验结果。
                                enum:
                                  - pass
                                  - fail
                                  - unavailable
                                  - unchecked
                                  - notProvided
                                  - unsupported
                                  - null
                                x-enum-descriptions:
                                  pass: 提交验证的信息与发卡行记录一致。
                                  fail: 提交验证的信息与发卡行记录不一致。
                                  unavailable: 发卡行不支持此类验证。
                                  unchecked: 未执行验证。
                                  notProvided: 未提供本次验证所需的信息。
                                  unsupported: 此交易不支持 AVS。
                                x-onerway-value:
                                  nullable: true
                                  when:
                                    en: Has a value when AVS postal-code verification was performed.
                                    zh: 执行 AVS 邮编校验时有值。
                              cardholderNameCheck:
                                type:
                                  - string
                                  - "null"
                                description: American Express AVS 持卡人姓名验证结果，表示姓名是否与发卡行记录一致。
                                enum:
                                  - pass
                                  - fail
                                  - unavailable
                                  - unchecked
                                  - notProvided
                                  - unsupported
                                  - null
                                x-enum-descriptions:
                                  pass: 提交验证的信息与发卡行记录一致。
                                  fail: 提交验证的信息与发卡行记录不一致。
                                  unavailable: 发卡行不支持此类验证。
                                  unchecked: 未执行验证。
                                  notProvided: 未提供本次验证所需的信息。
                                  unsupported: 此交易不支持 AVS。
                                x-onerway-value:
                                  nullable: true
                                  when:
                                    en: Returns the result when American Express cardholder name verification is
                                      performed, or `null` if it is not
                                      performed.
                                    zh: 执行 American Express 持卡人姓名验证时返回验证结果；未执行时返回 `null`。
                              avsResultRawCode:
                                type:
                                  - string
                                  - "null"
                                description: 卡组织返回的原始 AVS 结果码。
                                x-onerway-value:
                                  nullable: true
                                  when:
                                    en: Has a value when the card network or Onerway returns a raw AVS result code.
                                    zh: 卡组织或 Onerway 返回原始 AVS 结果码时有值。
                              threeDSecureResult:
                                type:
                                  - object
                                  - "null"
                                properties:
                                  version:
                                    type: string
                                    description: 3D Secure 协议版本或 `UNKNOWN`。
                                  authenticationFlow:
                                    type:
                                      - string
                                      - "null"
                                    description: 3DS 认证流程类型。
                                    x-onerway-value:
                                      nullable: true
                                      when:
                                        en: Has a value when the 3DS authentication flow can be identified.
                                        zh: 可识别 3DS 认证流程时有值。
                                  chargebackLiability:
                                    type: string
                                    description: 3DS 拒付责任承担方或 `UNKNOWN`。
                                  transStatus:
                                    type:
                                      - string
                                      - "null"
                                    description: 3DS 认证结果。
                                    x-onerway-value:
                                      nullable: true
                                      when:
                                        en: Has a value when ACS returns an authentication status.
                                        zh: ACS 返回认证状态时有值。
                                  transStatusReason:
                                    type:
                                      - string
                                      - "null"
                                    description: 3DS 认证状态的详细原因说明。
                                    x-onerway-value:
                                      nullable: true
                                      when:
                                        en: Has a value when the authentication status includes a detailed reason.
                                        zh: 需要补充说明 3DS 认证状态时有值。
                                  veresEnrolled:
                                    type:
                                      - string
                                      - "null"
                                    description: 3DS enrollment 结果。
                                    x-onerway-value:
                                      nullable: true
                                      when:
                                        en: Has a value when the 3DS enrollment result is returned.
                                        zh: 3DS enrollment 结果返回时有值。
                                  eci:
                                    type:
                                      - string
                                      - "null"
                                    description: 电子商务指示符（ECI）。
                                    x-onerway-value:
                                      nullable: true
                                      when:
                                        en: Has a value when the 3DS result returns ECI.
                                        zh: 3DS 结果返回 ECI 时有值。
                                  cvvResult:
                                    type:
                                      - string
                                      - "null"
                                    description: CVV 安全码校验结果。
                                    x-onerway-value:
                                      nullable: true
                                      when:
                                        en: Has a value when the CVV check result is returned.
                                        zh: CVV 校验结果返回时有值。
                                  avsFullResult:
                                    type:
                                      - string
                                      - "null"
                                    description: AVS 地址验证综合结果。
                                    x-onerway-value:
                                      nullable: true
                                      when:
                                        en: Has a value when the AVS full-result value is returned.
                                        zh: AVS 综合校验结果返回时有值。
                                  cavvResult:
                                    type:
                                      - string
                                      - "null"
                                    description: 3DS 认证返回的 CAVV 加密值。
                                    x-onerway-value:
                                      nullable: true
                                      when:
                                        en: Has a value when 3DS authentication returns CAVV.
                                        zh: 3DS 认证返回 CAVV 时有值。
                                description: 3D Secure 验证结果。
                                x-onerway-value:
                                  nullable: true
                                  when:
                                    en: Has a value when 3DS verification results are returned.
                                    zh: 返回 3DS 验证结果时有值。
                            description: 验证检查结果，含 AVS 与 3DS 结果。
                            x-onerway-value:
                              nullable: true
                              when:
                                en: Has a value when the payment channel returns AVS, 3DS, or CVV verification
                                  results; binding notifications can return
                                  `null`.
                                zh: 支付渠道返回 AVS / 3DS / CVV 验证结果时有值；绑定通知可能为 `null`。
                          holderName:
                            type:
                              - string
                              - "null"
                            description: 持卡人姓名。
                            x-onerway-value:
                              nullable: true
                              when:
                                en: Has a value when cardholder name is returned.
                                zh: 返回持卡人姓名时有值。
                          year:
                            type:
                              - string
                              - "null"
                            description: 卡有效期年份，4 位。
                            x-onerway-value:
                              nullable: true
                              when:
                                en: Has a value when card expiry year is returned.
                                zh: 返回卡有效期时有值。
                          month:
                            type:
                              - string
                              - "null"
                            description: 卡有效期月份，2 位（`01`-`12`）。
                            x-onerway-value:
                              nullable: true
                              when:
                                en: Has a value when card expiry month is returned.
                                zh: 返回卡有效期时有值。
                          cardType:
                            type:
                              - string
                              - "null"
                            description: 卡品牌 / 卡组织。
                            x-onerway-value:
                              nullable: true
                              when:
                                en: Has a value when the card network returns the card brand.
                                zh: 卡组织返回卡类型时有值。
                          productCategory:
                            type:
                              - string
                              - "null"
                            description: 卡产品类别。
                            enum:
                              - D
                              - P
                              - C
                              - H
                              - R
                              - N
                              - null
                            x-enum-descriptions:
                              D: 借记卡
                              P: 预付卡
                              C: 信用卡
                              H: 签账卡
                              R: 延迟借记卡
                              N: 未知
                            x-onerway-value:
                              nullable: true
                              when:
                                en: Has a value when the card network returns the product category.
                                zh: 卡组织返回卡产品类别时有值。
                          issuer:
                            type:
                              - string
                              - "null"
                            description: 发卡行名称。
                            x-onerway-value:
                              nullable: true
                              when:
                                en: Has a value when the issuer can be identified.
                                zh: 可识别发卡行时有值。
                          cardBinCountry:
                            type:
                              - string
                              - "null"
                            description: 卡 BIN 所属国家 / 地区。
                            x-onerway-value:
                              nullable: true
                              when:
                                en: Has a value when the card BIN country or region can be identified.
                                zh: 可识别卡 BIN 所属国家 / 地区时有值。
                          authorizationCode:
                            type:
                              - string
                              - "null"
                            description: 发卡行或收单侧授权码。
                            x-onerway-value:
                              nullable: true
                              when:
                                en: Has a value when the binding authorization returns an authorization code.
                                zh: 绑定授权返回授权码时有值。
                          cardNumber:
                            type:
                              - string
                              - "null"
                            description: 脱敏卡号，仅保留前 6 位和后 4 位，中间位掩码。
                            x-onerway-value:
                              nullable: true
                              when:
                                en: Has a value when masked card number is returned.
                                zh: 返回脱敏卡号时有值。
                        description: 卡支付方式详情。
                        x-onerway-value:
                          nullable: true
                          when:
                            en: Has a value when card binding details are returned.
                            zh: 返回卡绑定详情时有值。
                  x-onerway-value:
                    nullable: true
                    empty: true
                    when:
                      en: Returned for successful card bindings. Not returned for local payment method
                        subscriptions or failed notifications.
                      zh: 卡绑定成功时返回；本地支付方式订阅和失败通知不返回。
                  x-onerway-format: json_string
                  x-onerway-signature-participation: included
            examples:
              saved_payment_method_success:
                summary: 纯绑卡成功
                value:
                  notifyType: TXN
                  transactionId: replace_with_bind_transaction_id
                  paymentId: replace_with_bind_payment_id
                  txnType: BIND_CARD
                  merchantNo: replace_with_merchant_no
                  merchantTxnId: replace_with_onerway_generated_bind_reference
                  responseTime: 2026-09-02 08:19:04
                  txnTime: 2026-09-02 08:19:02
                  txnTimeZone: +08:00
                  orderAmount: "0.00"
                  orderCurrency: USD
                  status: S
                  tokenId: replace_with_saved_payment_method_token
                  tokenExpireTime: 2099-12-31 23:59:59
                  cardBinCountry: US
                  reason: '{"respCode":"20000","respMsg":"Success"}'
                  sign: replace_with_sha256_signature
                  paymentMethod: VISA
                  channelRequestId: replace_with_channel_request_id
                  paymentMethodDetails: '{"card":{"checks":null,"holderName":"Example
                    Cardholder","year":"2028","month":"05","cardType":null,"productCategory":null,"issuer":"Example
                    Issuer","cardBinCountry":"US","authorizationCode":null,"cardNumber":"400000******0002"}}'
              subscription_binding_success:
                summary: 卡订阅保存卡成功
                value:
                  notifyType: TXN
                  transactionId: replace_with_card_bind_transaction_id
                  paymentId: replace_with_card_bind_payment_id
                  txnType: BIND_CARD
                  merchantNo: replace_with_merchant_no
                  merchantTxnId: replace_with_onerway_generated_bind_reference
                  responseTime: 2026-01-15 10:10:04
                  txnTime: 2026-01-15 10:10:03
                  txnTimeZone: +08:00
                  orderAmount: "0.00"
                  orderCurrency: USD
                  status: S
                  tokenId: replace_with_saved_card_token
                  tokenExpireTime: 2099-12-31 23:59:59
                  cardBinCountry: US
                  reason: '{"respCode":"20000","respMsg":"Success"}'
                  sign: replace_with_sha256_signature
                  paymentMethod: VISA
                  channelRequestId: replace_with_bind_channel_request_id
                  paymentMethodDetails: '{"card":{"checks":null,"holderName":"Example
                    Cardholder","year":"2028","month":"05","cardType":null,"productCategory":null,"issuer":"Example
                    Issuer","cardBinCountry":"US","authorizationCode":null,"cardNumber":"400000******0002"}}'
              lpms_subscription_binding_success:
                summary: DANA 订阅授权成功
                value:
                  notifyType: TXN
                  transactionId: replace_with_lpms_bind_transaction_id
                  paymentId: replace_with_lpms_payment_id
                  txnType: BIND_CARD
                  merchantNo: replace_with_merchant_no
                  merchantTxnId: replace_with_merchant_subscription_reference
                  responseTime: 2026-01-15 10:30:02
                  txnTime: 2026-01-15 10:30:00
                  txnTimeZone: +08:00
                  orderAmount: "0.00"
                  orderCurrency: IDR
                  status: S
                  contractId: replace_with_lpms_subscription_contract_id
                  tokenId: replace_with_lpms_subscription_token
                  tokenExpireTime: 2099-12-31 23:59:59
                  reason: '{"respCode":"20000","respMsg":"Success"}'
                  sign: replace_with_sha256_signature
                  paymentMethod: DANA
                  subscriptionStatus: active
                  dataStatus: "1"
                  products: '[{"currency":"IDR","name":"Example monthly
                    plan","num":"1","price":"39000.00"}]'
                  channelRequestId: replace_with_lpms_bind_channel_request_id
                  scenarios: SUBSCRIPTION_INITIAL
              subscription_binding_failed:
                summary: DANA 订阅授权失败
                value:
                  notifyType: TXN
                  transactionId: replace_with_failed_bind_transaction_id
                  paymentId: replace_with_failed_bind_payment_id
                  txnType: BIND_CARD
                  merchantNo: replace_with_merchant_no
                  merchantTxnId: replace_with_merchant_subscription_reference
                  responseTime: 2026-09-01 20:10:09
                  txnTime: 2026-09-01 20:10:07
                  txnTimeZone: +08:00
                  orderAmount: "0.00"
                  orderCurrency: USD
                  status: F
                  paymentStatus: N
                  contractId: replace_with_subscription_contract_id
                  tokenId: replace_with_unusable_failed_token
                  reason: '{"respCode":"70002","respMsg":"Unknown decline"}'
                  sign: replace_with_sha256_signature
                  paymentMethod: DANA
                  subscriptionStatus: canceled
                  dataStatus: "2"
                  products: '[{"name":"Example
                    subscription","price":"10.99","num":"1","currency":"USD"}]'
                  channelRequestId: replace_with_failed_channel_request_id
                  scenarios: SUBSCRIPTION_INITIAL
      responses:
        "200":
          description: 成功接收并受理保存支付方式结果 webhook 后返回 HTTP 200，并在响应体中原样返回收到的 `transactionId`。
          content:
            text/plain:
              schema:
                type: string
              examples:
                return_transaction_id:
                  summary: 返回 transactionId
                  description: 使用 `text/plain` 应答，并在响应体中返回收到的 webhook payload 内的 `transactionId`。
                  value: replace_with_bind_transaction_id
```
