Booking API course · updated 2026-10-05
Lesson 5: POST /check and POST /quote, validate and price before the card
Two calls make your checkout feel finished: /check tells the customer right away whether the date, the ZIP and the promo code work; /quote shows the exact money, line by line, that the server will charge.
Before you start
- Lessons 3 and 4
- ## POST /check
```
{ "delivery_date": "2026-11-10", "zip": "32801", "promo_code": "SAVE10" }
```
Only the fields you send are evaluated. Response data: date { ok, code?, message? } (codes date_past, date_closed), service_area { ok, code?, message?, unverified? } (code out_of_service_area; unverified says why the server could not verify, for example no_coverage when the company has no radius), promo { ok, discount_type, discount_percent, discount_amount } or { ok: false, code: promo_invalid, reason: not_found | inactive | expired | exhausted }, booking_online, payments_ready. Call it when the customer leaves the date field, the ZIP field and the promo field. - ## POST /quote
```
{ "size_id": "<uuid from /sizes>", "rental_days": 7, "promo_code": "SAVE10" }
```
Response data: size_id, rental_days, tier (d3, d7, d10, d14, d30, d30+extra or base_price+extra), currency, lines { base, extra_days, fuel_environmental_fee, promo_discount, subtotal, tax_percent, tax }, promo { code, applied } or null, total and total_cents (what the company invoices), processing_fee and processing_fee_cents (what the customer pays on top under card_fee_handling), card_fee_handling, gross_total and gross_total_cents. Call it every time the size, the rental length or the promo code changes, and show the lines. rental_days is an integer from 1 to 365. - ## How the promo discount works
A percentage promo applies to the size's starting price (price_from), not to the tier price; a fixed promo subtracts dollars. Both are capped by the server. This mirrors the hosted page exactly, so a customer who compares your site with the hosted link sees the same number. - ## Money fields
Every amount comes twice: in dollars (total) and in integer cents (total_cents). Use the cents for arithmetic and the dollars for display. Never round on your side; the server already did. - ## Quote with a material
```
{ "size_id": "<uuid>", "rental_days": 7, "material": "clean_concrete" }
```
Response data gains pricing ("material" or "general") and material { slug, label, price, max_weight_tons, overage_mode, overage_per_ton, requires_ack }. With pricing material, lines.base is the material price for 7 days; days beyond 7 use the size's extra day rate; fees and tax are unchanged. A percentage promo applies to the material price. 409 material_not_allowed means the material is not available in that size: details.allowed_sizes lists the sizes that take it. Only companies that price by material are affected; send nothing and you get the general price as before.
What happens next
- A quote is not a reservation: nothing is held until POST /intents succeeds and the card is confirmed.
Troubleshooting
/quote answers 404 not_found with field size_id.
The size_id belongs to another company or is inactive. Use the ids from GET /sizes of the same key.
Related guides
- Lesson 6: POST /intents, the server prices the order and opens the payment
- Lesson 3: GET /company and GET /sizes, the data your screens start from
© 2026 Dumpster Controls. All rights reserved. Made in the USA.
Frequently asked questions
Is Dumpster Controls really free?
Yes. The software is free: dispatch, online booking, the driver app, invoicing, the Tresha AI assistant and every other feature, with no monthly fee, no trial period and no credit card to sign up. The only cost on the free plan is optional card processing when a customer pays by card through the platform: 2.99% plus $3.99 per transaction on the free plan. An optional Unlimited plan at $169 per month lowers that to 2.99% plus $0.30. Prices as published on dumpstercontrols.io/pricing on 2026-09-23.
Do you charge per driver, per truck or per order?
No. There is no per-driver, per-truck, per-user or per-order fee, and no order limit. A company with one truck and a company with twenty pay the same for the software: nothing.
Is there a contract?
No. There is no contract, no minimum term and no setup fee. You create the account yourself, and on the free plan there is nothing to cancel because nothing is billed. The optional Unlimited plan is billed month to month.
Which countries and languages are supported?
Dumpster Controls serves hauling companies in the United States and Canada. The app interface and the Tresha AI assistant are available in English, Spanish and Portuguese. The public pages, such as the blog, the help center and the landfill finder, are in English.
How do I switch from another dumpster software?
Create a free account at dumpstercontrols.io/login, with no sales call and no credit card. Then import your customers from a CSV file using the template provided in the app; past orders can also be imported from a CSV. Container sizes and pricing are set up in Settings. The landfill database, with 1,750 active US and Canadian landfills as counted on 2026-10-01, is already loaded, so disposal sites do not need to be typed in. Step-by-step guides are at dumpstercontrols.io/help.