> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wava.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhook Events

> List of webhook event types.

# Webhook Events

## Order events

These events are sent to both direct merchants and partners.

| Event             | Description                    | When it fires                                                                     | Status                  |
| ----------------- | ------------------------------ | --------------------------------------------------------------------------------- | ----------------------- |
| `order_payment`   | Payment completed successfully | After buyer completes payment                                                     | Active                  |
| `link_paid`       | A payment-link order was paid  | After payment on an **API-created** payment link (in addition to `order_payment`) | Active                  |
| `order_created`   | Order was created              | After order is created via API                                                    | <Badge>Upcoming</Badge> |
| `order_confirmed` | Order confirmed by gateway     | After gateway confirms payment                                                    | <Badge>Upcoming</Badge> |
| `order_cancelled` | Order was cancelled            | After cancellation via API or timeout                                             | <Badge>Upcoming</Badge> |
| `order_refunded`  | Refund processed               | After refund is completed                                                         | <Badge>Upcoming</Badge> |

<Note>
  `order_payment` is the active event for payment notifications. For payment links created via the API, `link_paid` fires alongside it for the same order. The remaining order events are planned; their payloads are not yet finalized.
</Note>

## Partner events

These events are sent only to partners. See [Partners — Webhooks](/partners/overview) for setup details.

| Event             | Description                      | When it fires                                     | Status                  |
| ----------------- | -------------------------------- | ------------------------------------------------- | ----------------------- |
| `store_onboarded` | A new store completed onboarding | After a store activates on the partner's platform | Active                  |
| `store_updated`   | Store configuration changed      | After a store updates its settings                | <Badge>Upcoming</Badge> |
| `store_deleted`   | Store was removed                | After a store is deactivated                      | <Badge>Upcoming</Badge> |

## Payload structure

All webhook payloads are a **flat JSON object** — fields are at the top level, not nested under a `data` key. Every payload includes the `event` name and an ISO 8601 `timestamp`.

### `order_payment`

```json theme={null}
{
  "event": "order_payment",
  "timestamp": "2026-06-24T02:05:12.952Z",
  "id_order": 12345,
  "id_external": "order-12345",
  "status": "confirmed",
  "total_price": 50000,
  "currency": "COP",
  "payment_method": {
    "gateway": "nequi",
    "status": "processed"
  },
  "totalItems": 1,
  "shopper": {
    "first_name": "Jane",
    "last_name": "Doe",
    "email": "jane@example.com"
  },
  "external_store_id": null
}
```

### `link_paid`

Fires for payment-link orders created via the API, in addition to `order_payment`.

```json theme={null}
{
  "event": "link_paid",
  "timestamp": "2026-06-24T03:19:39.159Z",
  "id_payment_link": 17624,
  "id_order": 22316,
  "id_store": 2366,
  "status": "confirmed",
  "amount": 12312,
  "currency": "COP",
  "source": "api",
  "id_external": null
}
```

<Note>
  The `id_external` field contains the `order_key` you provided when creating the order. Use it (or `id_order`) to match webhooks to your internal records and to deduplicate retries.
</Note>
