Query Payment Order
Query the current status of a payment. Use for: order page polling, reconciliation, or order repair.
Request
- Method:
POST - Path:
/api/v1/payin/payment/orderQuery - Content-Type:
application/json - Auth: Include AppId, Timestamp, and Signature as in Authentication; follow the same signing algorithm
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
paymentId | string | No | Velora platform payment ID, which is the paymentId returned in the payment callback |
merchantOrderId | string | No | Merchant order ID (the merchantOrderId sent when creating the payment) |
Use either paymentId or merchantOrderId to query the order.
Request example
json
{
"paymentId": "payin_20260331145719282948882"
}or
json
{
"merchantOrderId": "M202512180001"
}Response
Response body has a unified structure: result for payment outcome, data for order details.
result object
| Field | Type | Description |
|---|---|---|
code | string | Response code (success/failure) |
msg | string | Message |
data object
| Field | Type | Length / limits | Always returned | Description |
|---|---|---|---|---|
paymentId | string | / | Yes | Velora platform payment ID |
merchantOrderId | string | / | No | Merchant order ID |
psp | string | / | No | PSP identifier that actually processes the order |
channelOrderId | string | / | No | Order ID on the PSP / channel side |
channelMerchantOrderId | string | / | No | Merchant order ID on the PSP / channel side |
status | string | / | Yes | Current payment status; see Order status |
amount | object | / | No | Amount; see below |
paymentMethod | object | / | No | Payment method; see below |
createdAt | string | / | No | Created at |
updatedAt | string | / | No | Updated at |
data.amount object
| Field | Type | Length / limits | Always returned | Description |
|---|---|---|---|---|
value | string | / | Yes when amount is present | Amount as string, e.g. "29.00" |
currency | string | / | Yes when amount is present | Currency code |
data.paymentMethod object
| Field | Type | Length / limits | Always returned | Description |
|---|---|---|---|---|
type | string | / | No | Payment method type |
paymentBrand | string | / | No | Payment brand |
Response example
json
{
"result": {
"code": "S0000",
"msg": "Payment query successfully"
},
"data": {
"paymentId": "payin_20260331145719282948882",
"merchantOrderId": "ORDER_20260331_145711_1LOQON",
"psp": "gcash_partner",
"channelOrderId": "GCASH20260331145719282948882",
"channelMerchantOrderId": "ORDER_20260331_145711_1LOQON",
"status": "Success",
"amount": {
"value": "29.00",
"currency": "PHP"
},
"paymentMethod": {
"type": "e-wallet",
"paymentBrand": "gcash"
},
"createdAt": "2026-03-31T14:57:19+08:00",
"updatedAt": "2026-03-31T15:00:12+08:00"
}
}Crypto query response structure
For cryptocurrency collection scenarios, the query response differs from standard payment flows mainly because paymentMethod includes an additional crypto object that describes the on-chain transaction details.
data.paymentMethod.crypto object
| Field | Type | Always returned | Description |
|---|---|---|---|
chain | string | Yes | Chain type, such as ETH, BSC, or TRON |
fromAddress | string | Yes | Wallet address from which the user initiated the transfer |
toAddress | string | Yes | Merchant collection wallet address |
logIndex | string | Yes | On-chain event log index |
txHash | string | Yes | On-chain transaction hash |
Crypto query response example
Note: Merchants do not need to strictly use all fields returned by this query. They can use the JSON structure under the crypto field to implement their own generic business processing.
json
{
"result": {
"code": "S0000",
"msg": "Payment query successfully"
},
"data": {
"psp": "cryptopay",
"status": "Success",
"paymentId": "payin_20260528104200903337225",
"channelOrderId": "0xd9ca31dd9f6f12077fd3525acb6706de610ae0c2c30315300e51f74f0cbd91b6_0",
"channelMerchantOrderId": "0xd9ca31dd9f6f12077fd3525acb6706de610ae0c2c30315300e51f74f0cbd91b6_0",
"merchantOrderId": "0xd9ca31dd9f6f12077fd3525acb6706de610ae0c2c30315300e51f74f0cbd91b6",
"amount": {
"value": "1.36000",
"currency": "USDT"
},
"paymentMethod": {
"type": "crypto",
"paymentBrand": "BSC",
"crypto": {
"chain": "BSC",
"fromAddress": "0x38c9e15b7a28038f74290187e2747954ee507411",
"toAddress": "0x8be0f2577b0018844ff19b675f387cc36605f1b7",
"logIndex": "0",
"txHash": "0xd9ca31dd9f6f12077fd3525acb6706de610ae0c2c30315300e51f74f0cbd91b6"
}
},
"createdAt": "2026-05-28T10:42:00+08:00",
"updatedAt": "2026-05-28T10:42:00+08:00"
}
}See also
- Order status: Status values and meanings
- Create payment: Initiate payment
- Payment callback: Async notification and verification