Order Status
After creating an order, you can track its progress through the payment lifecycle.
Order lifecycle
All orders follow the same status progression regardless of the payment gateway:
| Status | Description |
|---|
pending | Order created but payment has not been initiated with the gateway yet. |
processing | Payment is in progress — waiting for buyer action (push approval, OTP, transfer). |
confirmed | Payment completed successfully. Funds will be included in your next settlement. |
cancelled | Order was cancelled — buyer rejected the payment, it timed out, or it was cancelled via API. |
refunded | A refund has been processed for this order. |
Checking order status
You have two options to track when a payment completes:
Option 1: Webhooks (recommended)
Configure a webhook URL in your dashboard to receive real-time notifications when an order status changes. This is the most efficient approach — no polling required.
{
"event": "order.confirmed",
"data": {
"id_order": 12345,
"status": "confirmed",
"amount": 50000,
"currency": "COP"
}
}
See Webhooks for setup instructions and Webhook Events for all available events.
Option 2: Polling
If you cannot receive webhooks, poll the order status endpoint:
curl -X GET "https://api.wava.co/v1/orders/12345" \
-H "merchant-key: YOUR_MERCHANT_KEY"
Polling should be used as a fallback only. We recommend a polling interval of 3–5 seconds. Excessive polling may be rate-limited.
Cancelling an order
You can cancel an order that is still in pending or processing status:
curl -X PUT "https://api.wava.co/v1/orders/12345/cancel" \
-H "merchant-key: YOUR_MERCHANT_KEY"
Orders in confirmed status cannot be cancelled. To reverse a confirmed payment, use the refund flow.
Timeout behavior
Each gateway has a different timeout window. If the buyer does not complete the payment within the timeout period, the order is automatically moved to cancelled status.
| Gateway | Approximate timeout |
|---|
| Nequi | ~5 minutes |
| Daviplata | ~5 minutes |
| Breb | ~15 minutes |
| Stripe | Session-based |
Next steps