Skip to content

Read a merchant's published cancellation schedule (public)

GET
/merchants/{merchant_slug}/cancellation-schedule
curl --request GET \
--url https://quikstik-core.fly.dev/merchants/example/cancellation-schedule

Public, unauthenticated read side of setTenantCancellationSchedule, resolved by merchant slug like the public content routes. Feeds the guest policy page (/policies). Tiers are sorted by min_hours_before descending (most notice first); updated_at_ms is the last write. Fail-closed: 404 for an unknown merchant, 503 when the tenant has no schedule or no backend is wired — a default schedule is never served. 200 carries Cache-Control: public, max-age=300.

merchant_slug
required
string

The merchant’s slug (the same slug the public content routes use).

The merchant’s cancellation schedule

Media typeapplication/json
object
tiers
required
Array<object>
object
min_hours_before
required
integer
refund_bps
required
integer
<= 10000
updated_at_ms
required
integer format: int64

Example generated

{
"tiers": [
{
"min_hours_before": 1,
"refund_bps": 1
}
],
"updated_at_ms": 1
}
Cache-Control
string

Always public, max-age=300.

Unknown merchant

Media typeapplication/json
object
reason
required

Stable, machine-readable reason code (e.g. “sold_out”, “processor_not_configured”, “rail_refused”).

string

Example

{
"reason": "sold_out"
}

No durable backend is wired for this operation (fail-closed)

Media typeapplication/json
object
reason
required

Stable, machine-readable reason code (e.g. “sold_out”, “processor_not_configured”, “rail_refused”).

string

Example

{
"reason": "sold_out"
}