# order.digital.delivered

Digital content was delivered to the customer.

Scope: `orders:read`

Without `customers:read`, the `customer` and `shipping_address` keys are absent from the payload. Each installation receives the webhook according to its own scopes. Orders never include the payment method, gateway or card details.

With `orders.digital:read`, the webhook carries `digital_items`: the delivered codes and links. See [Digital products and delivery](/guides/digital-delivery).

## Payload `data`

| Field | Type | Required | Description |
|---|---|---|---|
| `id` | string | no | Order ID. |
| `number` | integer | no | Display order number. |
| `status` | pending \| processing \| completed \| cancelled \| returned | no | Order status. |
| `payment_status` | unpaid \| paid \| refunded | no | Payment status. |
| `currency` | SAR | no |  |
| `totals` | object | no | subtotal, discount, shipping and total, as strings with two decimal places. |
| `items` | array | no | product_id, name, kind, quantity, unit_price and total. |
| `order_url` | string \| null | no | The customer's orders page in the store, the same link as the order email. Not a per-order link. |
| `created_at` | date-time | no |  |
| `updated_at` | date-time | no |  |
| `paid_at` | date-time \| null | no |  |
| `refunded_at` | date-time \| null | no |  |
| `customer` | object | no | id, name, phone in E.164 format, and email. Returned with `customers:read`. |
| `shipping_address` | object \| null | no | name, phone (E.164), country, city, district, street, postal_code, short_address_code, building_number, secondary_number and notes; null when the order has no address. Returned with `customers:read`. |
| `resource_version` | integer | no | Always 0 for orders. Order the events of one order by resource.version in the envelope. |
| `digital_items` | array | no | product_id, name, type, value and expires_at. Returned with `orders.digital:read`. |


## Example delivery

```http
POST /larm/webhooks HTTP/1.1
Host: app.example.com
Content-Type: application/json
x-larm-event: order.digital.delivered
x-larm-event-id: 0b7c2f8e-1d3a-4c5b-9e6f-7a8b9c0d1e2f
x-larm-delivery: 2b9f6c1e-8d4a-4f30-a7e5-c1d9b8a7f604
x-larm-timestamp: 1792060982
x-larm-secret-generation: 1
x-larm-payload-version: 1
x-larm-signature: v1=5d41402abc4b2a76b9719d911017c592e1c7b0d3f6a8e2b4c9d0f1a2b3c4d5e6
```

```json
{
  "app_id": "1f2e3d4c-5b6a-4978-8695-a4b3c2d1e0f9",
  "data": {
    "id": "ord_8Kd2",
    "number": 10482,
    "status": "processing",
    "payment_status": "paid",
    "currency": "SAR",
    "totals": {
      "subtotal": "180.00",
      "discount": "0.00",
      "shipping": "25.00",
      "total": "205.00"
    },
    "items": [
      {
        "product_id": "311",
        "name": "Top-up card 100 SAR",
        "kind": "digital",
        "quantity": 2,
        "unit_price": "90.00",
        "total": "180.00"
      }
    ],
    "order_url": "https://store.example/orders",
    "created_at": "2026-10-15T09:12:44Z",
    "updated_at": "2026-10-15T09:13:01Z",
    "paid_at": "2026-10-15T09:13:01Z",
    "refunded_at": null,
    "customer": {
      "id": "c_2041",
      "name": "Sara Alotaibi",
      "phone": "+966512345678",
      "email": "sara@example.com"
    },
    "shipping_address": null,
    "resource_version": 0,
    "digital_items": [
      {
        "product_id": "311",
        "name": "Top-up card 100 SAR",
        "type": "code",
        "value": "X7Q2-9KLM-4PZT",
        "expires_at": null
      }
    ]
  },
  "id": "0b7c2f8e-1d3a-4c5b-9e6f-7a8b9c0d1e2f",
  "installation_generation": 1,
  "installation_id": "c7e4a1f2-6b3d-4e8a-9c05-1d2f3a4b5c6d",
  "occurred_at": "2026-10-15T09:13:02Z",
  "payload_version": 1,
  "resource": {
    "type": "order",
    "id": "ord_8Kd2",
    "version": 3
  },
  "store_id": "5b1d7a62-0c4e-4f38-9a51-2e7b3c9d8f10",
  "test": false,
  "type": "order.digital.delivered"
}
```
