Payment Query
The Payment Query API retrieves transaction results in the payment-intent dimension, allowing merchants to reconcile multiple transactionId attempts under the same paymentId .
Field Relationship
transactionId: Single transaction attempt ID (attempt dimension).status: Status of the currenttransactionId, still using TxnStatusEnum.paymentId: Payment intent primary key (onepaymentIdcan map to multipletransactionIdattempts).paymentStatus: Payment intent status, see PaymentStatusEnum.
paymentStatus = N Scenarios
paymentStatus = N means the payment intent is closed, including:
- User created an order but did not pay before timeout.
- User made multiple failed attempts and the intent was finally closed by timeout.
API Request Parameters
Key Parameters
It is recommended to provide at least one of the following filters:
paymentIdmerchantTxnIdstransactionIdsstartTime+endTime
| Parameter | Type | Length | Required | Signed | Description |
|---|---|---|---|---|---|
merchantNo | String | 20 | Yes | Yes | Merchant number assigned by |
merchantTxnIds | String | / | Conditional | Yes | Multiple merchant transaction IDs for batch queries, separated by commas. |
transactionIds | String | / | Conditional | Yes | Multiple Onerway transaction IDs for batch queries, separated by commas. |
paymentId | String | / | No | Yes | Payment intent ID. Business type is |
txnTypes | String | / | No | Yes | Transaction type filter for payment queries. Comma-separated values are supported. |
startTime | String | / | Conditional | Yes | Start time for the transaction query period filter. |
endTime | String | / | Conditional | Yes | End time for the transaction query period filter. |
current | String | / | Yes | Yes | Page number for payment queries. |
size | String | / | No | Yes | Page size. |
sign | String | / | Yes | No | Digital signature string for request verification and security. Please refer to Signature for signature generation method. |
Pagination Rules
current=0andcurrent=1both represent the first page.- Response
currentis always returned as1-basedpage number (1is the first page). sizedefault is10, max is100.
Response
| Name | Type | Description |
|---|---|---|
respCode | String | Response code from |
respMsg | String | Response message from |
data | Object | Response data. Refer to object data |
data
| Name | Type | Description |
|---|---|---|
content | List | Payment records list. |
└paymentId | String | Payment intent ID. Business type is |
└paymentStatus | String | Payment intent status. See PaymentStatusEnum. |
└lastTransactionId | String | Latest transaction attempt ID under this payment intent. Business type is |
└lastPaymentAttempt | Object | Latest attempt result summary. Contains failure reason and advice. |
└merchantTxnId | String | Merchant transaction ID. |
└merchantTxnOriginalId | String | Merchant master order ID. |
└txnTime | String | Latest attempt transaction time. Format: |
└txnCompletionTime | String | Latest attempt completion time. Format: |
└productType | String | Product type. See ProductTypeEnum. |
└subProductType | String | Sub-product type. See SubProductTypeEnum. |
└cardType | String | Card network or card type. |
└orderAmount | String | Order amount. |
└orderCurrency | String | Order currency. See ISO 4217. |
└txnAmount | String | Transaction amount. |
└txnCurrency | String | Transaction currency. See ISO 4217. |
└arn | String | Acquirer Reference Number. |
└appId | String | Merchant application ID. Business type is |
└website | String | Website of transaction origin. |
└cardNumber | String | Masked card number (first 6 + last 4). |
└holderName | String | Cardholder name. |
└eci | String | Electronic Commerce Indicator. |
String | Customer email. | |
└channelRequestId | String | Channel request ID. |
└paymentMethodDetails | Object | Payment method detail object. Includes for structure. |
current | String | Current page number in response (1-based). |
size | String | Page size. |
totalPages | String | Total pages. |
totalElements | String | Total records. |
API Example
{
"merchantNo": "10001",
"current": "1",
"size": "10",
"paymentId": "2031991417907576832",
"transactionIds": "",
"startTime": "2026-01-01 00:00:00",
"endTime": "2026-03-28 23:59:59",
"sign": "your_sign_value"
}2
3
4
5
6
7
8
9
10
{
"respCode": "20000",
"respMsg": "Success",
"data": {
"content": [
{
"paymentId": "2031991417907576832",
"paymentStatus": "O",
"lastTransactionId": "2031991417966297088",
"lastPaymentAttempt": {
"reason": "Acquirer suspected fraud",
"adviceMsg": "Acquirer suspected fraud"
},
"merchantTxnId": "1773299479000",
"merchantTxnOriginalId": null,
"txnTime": "2026-03-12 15:11:21",
"txnCompletionTime": "2026-03-12 15:11:50",
"productType": "CARD",
"subProductType": "DIRECT",
"cardType": "VISA",
"orderAmount": "100.00",
"orderCurrency": "USD",
"txnAmount": "100.00",
"txnCurrency": "USD",
"arn": null,
"appId": "1839538258499215360",
"website": "demo.onerway.com",
"cardNumber": "471110******0000",
"holderName": "CL BRW2",
"eci": "07",
"email": "abel.wang@onerway.com",
"channelRequestId": "7777772031991538036387841",
"paymentMethodDetails": {
"card": {
"checks": {
"addressCheck": "unchecked",
"postalCodeCheck": "unchecked",
"avsResultRawCode": "FD",
"threeDSecureResult": {
"version": "UNKNOWN",
"authenticationFlow": null,
"chargebackLiability": "UNKNOWN",
"transStatus": null,
"transStatusReason": null,
"veresEnrolled": null,
"eci": "07",
"cvvResult": null,
"avsFullResult": null,
"cavvResult": null
}
},
"holderName": "CL BRW2",
"year": "2026",
"month": "05",
"cardType": "VISA",
"productCategory": null,
"issuer": null,
"cardBinCountry": "US",
"authorizationCode": null,
"cardNumber": "471110******0000"
}
}
}
],
"current": "1",
"size": 10,
"totalPages": 1,
"totalElements": 1
}
}2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
Best Practices
- Use
paymentIdas the primary business key for reconciliation. - If you adopt the payment-intent model, store both
statusandpaymentStatus; otherwise you can continue handlingstatusonly. - Apply fixed time windows for paginated queries to avoid unbounded scans.