Query Payment by Order SN
Query payment status by merchant order number.
Endpoint
GET/cashin/checkAuthentication
Merchant Credential. See Authentication.
Background
Merchants can query the current status, amount, payer information, and Pix transaction details of their own cashin orders by merchant order number merchantOrderNo or Pix end-to-end transaction ID e2eId (bank transaction reference number).
This API supports queries by merchant order number or E2E ID; see the rules and examples below. A successful query response does not mean the cashin succeeded; the actual transaction result is determined by orderStatus. When the order number or status is empty, the response cannot be used to confirm that the order exists or that the payment succeeded.
Request Fields
| Field | Location | Type | Length | Required | Description |
|---|---|---|---|---|---|
X-Merchant-Id | Header | string | 64 | Yes | Merchant ID, read from the request header. |
X-Timestamp | Header | int | 19 | Yes | Unix request timestamp in seconds, used for request freshness validation. |
X-Nonce | Header | string | 64 | Yes | Random string for request anti-replay protection. |
Digest | Header | string | 52 | Yes | Digest of the request body; when a GET request has no body, it is computed over empty bytes. Format: SHA-256=<Base64Digest>. |
Authorization | Header | string | - | Yes | ES256 request signature, where keyId is the merchant key version. |
merchantOrderNo | Query | string | 64 | Conditional | Merchant order number; provide at least one of this or e2eId. |
e2eId | Query | string | 64 | Conditional | Pix end-to-end transaction ID; provide at least one of this or merchantOrderNo. |
Query Rules
- If neither field is provided or both are blank, the request is rejected; each provided field must not exceed 64 bytes.
- If only
merchantOrderNois passed, the query is performed by the merchant order number under the current merchant. - If only
e2eIdis passed, the payment record is located by the bank transaction reference number, and then the order associated with it under the current merchant is queried. - If both are passed,
merchantOrderNotakes precedence:e2eIdis not checked for a match, ande2eIdis not used as a fallback if the merchant order number query fails. Pass only one query condition at a time. merchantOrderNomust match the merchant order number used when the order was created.platOrderNois returned only in the response and is not supported as a query condition for this API.- If the bank transaction reference number is not yet available, query with
merchantOrderNo.
Request Examples
GET /cashin/check?e2eId=E1234567820260816000000000000001 HTTP/1.1
Content-Type: application/json
X-Merchant-Id: 92315566000120
X-Timestamp: 1786867200
X-Nonce: 550e8400-e29b-41d4-a716-446655440000
Digest: SHA-256=<Base64Digest>
Authorization: Signature keyId="v1",alg="ES256",headers="(request-target) x-timestamp x-nonce digest",signature="<ES256_SIGNATURE_BASE64>"When querying by merchant order number, use the same authentication headers and recompute the signature:
GET /cashin/check?merchantOrderNo=CASHIN202608160001 HTTP/1.1Response Fields
Business status: dataStatus is an integer; dataStatus = 200 indicates the business succeeded, in which case dataMsg = "SUCCESS". Any value other than 200 indicates a business error; see dataMsg for the reason.
The API uses a unified status, msg, data response structure. A query response does not mean the cashin succeeded; the actual transaction result is determined by orderStatus.
Current query result limitations
In the current version, some scenarios where the order is not found, the payment record is missing, or the query fails may still return a success response code while the order fields are empty or the information is incomplete. Check data.merchantOrderNo, data.platOrderNo, and data.orderStatus together; when the order number or status is empty, the response cannot be used to confirm that the order exists or that the payment succeeded, and existing local payment results must not be overwritten with empty values or default amounts.
| Field | Type | Length | Returned | Description |
|---|---|---|---|---|
status | int | 4 | Yes | Response code |
msg | string | 128 | Yes | Corresponds to status |
data | object | N/A | No | cashin order query result; may be absent when the request fails at the signature verification or protocol parsing stage. |
data.attach | string | 128 | Yes | The attach value passed by the merchant when the original cashin order was created; returned as-is if provided at order creation, empty otherwise. |
data.merchantOrderNo | string | 64 | Conditional | Merchant order number, corresponding to the merchantOrderNo used at order creation. |
data.platOrderNo | string | 64 | Conditional | Platform order number. |
data.e2eId | string | 64 | Conditional | Pix end-to-end transaction ID, corresponding to the bank-side payment reference number. |
data.orderStatus | string | 16 | Yes | Current status of the cashin order. |
data.amount | decimal(25,2) | 25,2 | Yes | Order amount / amount due. |
data.payAmount | decimal(25,2) | 25,2 | Yes | Actual paid amount. |
data.fee | decimal(25,2) | 25,2 | Yes | Fee; defaults to BRL in Brazil. |
data.payerName | string | 128 | No | Payer name; usually returned on success. |
data.payerTaxNo | string | 64 | No | Payer tax ID; CPF is 11 digits, CNPJ is 14 digits; usually returned on success. |
data.payTime | int | 19 | Conditional | Payment time, Unix timestamp in seconds. |
data.expireTime | int | 19 | Conditional | Order expiration time, Unix timestamp in seconds. |
data.dataStatus | int | - | Yes | Response code |
data.dataMsg | string | 128 | Yes | Corresponds to dataStatus |
orderStatus Enum
| Enum Value | Description | Final State |
|---|---|---|
PENDING | Awaiting payment or being processed; keep querying or wait for the asynchronous notification. | No |
SUCCESS | cashin succeeded. | Yes |
FAILED | cashin failed. | Yes |
Response Examples
{
"status": 200,
"msg": "sucesso",
"data": {
"attach": "order-source=checkout",
"merchantOrderNo": "CASHIN202608160001",
"platOrderNo": "BAS202608160000000001",
"e2eId": "E1234567820260816000000000000001",
"orderStatus": "SUCCESS",
"amount": 100.00,
"payAmount": 100.00,
"fee": 0.60,
"payerName": "Maria Oliveira",
"payerTaxNo": "12345678901",
"payTime": 1786887025,
"expireTime": 1786901100,
"dataStatus": 200,
"dataMsg": "SUCCESS"
}
}