| Creating an order again with a merchant order number that has already been used | Returns merchant_order_no_duplicate, regardless of the status of the original order and without comparing the contents (even if the amount is different). No second order is created. The response does not include the original order's data; use the merchant order number to query the order. |
The order creation request timed out, the connection was interrupted, or you received internal_error | Do not simply treat it as a failure. Query with the same merchant order number: if the order is found, rely on the query result (for an order that is pending and not yet expired, the query also returns the payment URL or receiving account, so the payer can still pay that order; see Order query); if order_not_found is returned, ST Pay did not create the order, and you can create it again with the same merchant order number. |
| Initiating the transaction again after the order was rejected | You must use a new merchant order number. |
| Scope of merchant order number uniqueness | Within the same merchant, merchant order numbers must be unique among collection orders and, separately, among payout orders. After an order is deleted once it is older than 6 months, its merchant order number can be used again. |
| Repeated order queries | Read-only. Each call returns the current status and changes nothing. |
| Multiple order creation requests with the same merchant order number sent almost simultaneously | They are processed one at a time. Only the first succeeds, and the others return merchant_order_no_duplicate. |
| Multiple Callbacks received for the same order | Use order_no plus status to determine whether it has already been processed, and respond ok directly to duplicates. |