# 打款单笔查询

> 通过商户流水号或 Onerway 打款流水号查询单笔打款。

```yaml
openapi: 3.1.0
info:
  title: 打款单笔查询
  version: 1.0.0
  description: 通过商户流水号或 Onerway 打款流水号查询单笔打款。
paths:
  /api/v1/txn/query:
    post:
      summary: 打款单笔查询
      description: 通过商户流水号或 Onerway 打款流水号查询单笔打款。
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                merchantNo:
                  type: string
                  description: Onerway 分配的商户号。通常在沙盒或生产商户开通后，从商户后台或开户材料中获取。
                requestId:
                  type: string
                  description: 用于查询单笔打款的商户请求流水号。
                  x-onerway-required: conditional
                  x-onerway-condition:
                    - 当未提供 `payoutId` 时必填。
                payoutId:
                  type: string
                  description: 用于查询单笔打款的 Onerway 打款流水 ID。
                  x-onerway-required: conditional
                  x-onerway-condition:
                    - 当未提供 `requestId` 时必填。
                sign:
                  type: string
                  description: 请求签名字符串，需使用商户私钥按 Transfer 请求签名规则生成。
              required:
                - merchantNo
                - sign
            examples:
              query-single-transfer:
                summary: 查询单笔打款
                value:
                  merchantNo: "800225"
                  payoutId: "1808783413957234688"
                  requestId: REQ20240101123456789012345678901
                  sign: "{{SIGN}}"
              query-single-transfer-by-request-id:
                summary: 仅按请求流水号查询单笔打款
                value:
                  merchantNo: "800225"
                  requestId: REQ20240101123456789012345678901
                  sign: "{{SIGN}}"
      responses:
        "200":
          description: 单笔打款结果
          content:
            application/json:
              schema:
                type: object
                properties:
                  respCode:
                    type: string
                    description: Onerway 返回的响应码。
                  respMsg:
                    type:
                      - string
                      - "null"
                    description: Onerway 返回的响应信息。
                    x-onerway-value:
                      nullable: true
                      when:
                        en: No response message is returned.
                        zh: 未返回响应信息时为 `null`。
                  data:
                    type: object
                    properties:
                      requestId:
                        type: string
                        description: 商户请求流水号。
                      payoutId:
                        type: string
                        description: Onerway 打款流水 ID。
                      payoutStatus:
                        type: string
                        description: 当前打款状态。应结合 webhook 记录一起判断该打款是否已进入最终状态。
                      paymentMethod:
                        type: string
                        description: 本次打款使用的付款方式。
                      payerId:
                        type: string
                        description: 与本次打款关联的付款方 ID。
                    description: 单笔打款详情结果。
              examples:
                single-transfer-result:
                  summary: 单笔打款结果
                  value:
                    respCode: "20000"
                    respMsg: null
                    data:
                      requestId: DM20250888804123
                      payoutId: "1954374604177408000"
                      payoutStatus: P
                      paymentMethod: BANK_TRANSFER
                      payerId: "1953712585351499776"
                single-transfer-succeeded:
                  summary: 单笔打款最终成功结果
                  value:
                    respCode: "20000"
                    respMsg: null
                    data:
                      requestId: DM20250888804124
                      payoutId: "1954374604177408001"
                      payoutStatus: S
                      paymentMethod: BANK_TRANSFER
                      payerId: "1953712585351499776"
                single-transfer-failed:
                  summary: 单笔打款最终失败结果
                  value:
                    respCode: "20000"
                    respMsg: null
                    data:
                      requestId: DM20250888804125
                      payoutId: "1954374604177408002"
                      payoutStatus: F
                      paymentMethod: BANK_TRANSFER
                      payerId: "1953712585351499776"
```
