partner
POST /v1/partner/customers/{externalId}/boosts/{purchaseId}/cancel
Remove a customer's performance boost at the end of its paid month.
Authentication
Send an API key as a bearer token. The key must carry the partner.domains permission; a key without it is refused with 403, not 404.
This endpoint takes no organisation id. Your key already identifies the organisation it belongs to, and the response is scoped to it.
Try it
Replace anything in angle brackets with your own values, and the key placeholder with a key from your dashboard.
curl -X POST https://api.zinndigital.com/v1/partner/customers/{externalId}/boosts/{purchaseId}/cancel \
-H "Authorization: Bearer zdk_live_…"Signed in? The API console in your dashboard fills in your real organisation id and your own key, and runs the request against the live API so you can see the actual response. Open this endpoint in the API console
Details
The partner twin of cancelBoostPurchase: the boost keeps working until ends_at (the end of its paid month), then the site drops back to its plan's limits; nothing is refunded. purchaseId is the boost's id — getPartnerSiteResources.held.id, or the purchase_id on the order line that bought it. It cannot touch a plan: only a performance-boost purchase is accepted (422 not_a_boost otherwise), and a subscription is not a purchase. Refusals (details[0].code): not_a_boost, not_owned (another of your customers), already_cancelled (removal already scheduled), already_ended; an id you cannot reach is a 404. Requires partner.domains.
Parameters
| Name | Type | Required | What it is |
|---|---|---|---|
externalId (path) | string | Yes | YOUR id for that customer — whatever your own system calls them. It is what makes linking idempotent, and it is scoped to your partner programme: another partner's id is a 404… |
purchaseId (path) | string | Yes | — |
Response
| Name | Type | Required | What it is |
|---|---|---|---|
purchase_id | string | Yes | — |
extra_code | string | Yes | — |
ends_at | object | Yes | The last day the boost works (the end of the paid month); after it the site drops back to its plan's limits at the next converge. |
Errors this endpoint can return
401 · 403 · 404 · 422 · 429