sync: auto-sync from GURU-BEAST-ROG at 2026-05-27 16:11:22

Author: Mike Swanson
Machine: GURU-BEAST-ROG
Timestamp: 2026-05-27 16:11:22
This commit is contained in:
2026-05-27 16:11:27 -07:00
parent 9e06c0bb27
commit 307bb8812b
2 changed files with 112 additions and 3 deletions

View File

@@ -119,14 +119,16 @@ Content-Type: application/json
"name": "Labor - Remote Business",
"description": "Work performed description",
"quantity": 2.0,
"price": 0.0,
"price_retail": 0.0,
"taxable": false
}
```
- `price`: use `0.0` for block customers; for non-block, fetch live rate first: `GET /api/v1/products/{product_id}``.product.price_retail`
- `price_retail`: **CRITICAL — use `price_retail`, NOT `price`.** Using `price` silently discards the value and bills $0.00 even though the API returns HTTP 200. Confirmed broken 2026-05-27 (ticket #32335).
- Block customers: `"price_retail": 0.0`
- Non-block customers: fetch live rate first (`GET /api/v1/products/{product_id}``.product.price_retail`), then pass that value
- `taxable`: always `false` for labor (Arizona labor is never taxable)
- Success response: HTTP 200 with the new line item's `id`
- Success response: HTTP 200 with the new line item's `id` — verify `price_retail` in the response matches what you sent
**Pre-billing check** — before adding line items, verify the ticket has no existing labor to avoid duplicates:
```