---
title: "Itemized cube sheet ready: rooms/items with volumes, weights and exclusions inline, plus the CSV URL."
method: POST
path: "cube_sheet.ready"
---

# Itemized cube sheet ready: rooms/items with volumes, weights and exclusions inline, plus the CSV URL.

`POST cube_sheet.ready` (webhook)

Signed: `X-ReelQuote-Signature: t=<unix>,v1=HMAC-SHA256(secret, t + "." + body)`. Verify before trusting. Delivered with two quick retries.

## Payload

- object: Every webhook POST body. Signed: `X-ReelQuote-Signature: t=<unix>,v1=HMAC-SHA256(secret, t + "." + body)` — verify before trusting, reject a `t` older than a few minutes. Delivered with two quick retries; answer 2xx fast and do the work afterwards.
  - `id` string, required: ULID, unique per delivery attempt set — dedupe on it
  - `event` 'cube_sheet.ready', required
  - `created` integer, required: Unix seconds; the `t` in the signature
  - `livemode` boolean, required: false when the event comes from a sandbox job (a test key). Same envelope, same signature — branch on this.
  - `data` object, required: Per-event payload, documented under each webhook below
    - `job_id` string
    - `customer` object, nullable: null until the customer has given contact details
      - `name` string
      - `email` string, nullable
      - `phone` string, nullable
    - `move_date` string, date, nullable: YYYY-MM-DD
    - `totals` object: item_count, total_quantity, total_cuft, total_weight_lbs, excluded counts
    - `rooms` object[]
      - `room` string
      - `items` object[]
        - `name` string
        - `quantity` integer
        - `cuft_each` number
        - `weight_lbs_each` number
        - `moving` boolean: false = the customer said it stays
        - `fragile` boolean
        - `requires_disassembly` boolean
        - `two_person` boolean
        - `special_handling` boolean
        - `notes` string, nullable
    - `csv_url` string, nullable: GET with a secret key for the same sheet as CSV

## Acknowledgement `2XX`

Acknowledged. Answer fast; do the work afterwards.

## Other responses

- `default`: Anything else is retried twice, then recorded as the endpoint's last_error.

---

[API](https://skmtc.dev/reelquoteai/apis/reelquoteai-us-api.md) · [All operations](https://skmtc.dev/reelquoteai/apis/reelquoteai-us-api/llms.txt) · [OpenAPI document](https://skmtc.dev/reelquoteai/apis/reelquoteai-us-api/revisions/56c304752192?raw)
