get_retention_settings
Read a project's Revenue Recovery settings — the grace window with its ladder in words, the daily digest, the cancellation question and the three offers, with whether the offers are on the plan. Read-only.
Read what a project does when a renewal fails and when a member cancels: how many days a failed
renewal keeps access while the gateway retries (grace_days, with the notice ladder it implies in
ladder), whether the owner gets a daily digest, whether the cancellation screen asks why, and
which of the three offers the screen can make. Use it before
update_retention_settings to read what stands.
Read-only. The row is created with the defaults on the first read, so a project never answers
RESOURCE_NOT_FOUND here unless the project itself is unknown or out of scope.
`offers_available` is the owner's plan, not a setting
It is true on Growth and with the Revenue Recovery Addon. The three offer fields are stored
whatever it says; the cancellation screen reads them only while it is true, so an offer switched
on early starts working the day the plan includes it.
Requires ability
The token behind the MCP session must hold it, or the call is refused with TOKEN_MISSING_ABILITY.
Runs the same action as
The REST endpoint and this tool share one action, so validation, permissions and events are identical.
Annotations
It reads and never changes anything.
Arguments
project_id*stringUUID of the project whose Revenue Recovery settings to read.
What it returns
{ "data": { "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13", "grace_days": 7, "ladder": "A failed renewal keeps the member's access for 7 days: they are told at once with a link to settle the payment, reminded on day 3 and the day before the window closes, and paused when it does; access comes back by itself with the next successful payment.", "digest_enabled": true, "cancel_feedback_enabled": true, "offers_available": true, "offer_pause_enabled": true, "offer_discount_coupon": { "id": "3b7c9d1e-5f24-4a86-9c0b-2d4e6f8a1b3c", "code": "STAY20" }, "offer_return_coupon": null, "updated_at": "2026-10-12T09:00:00+00:00" }}ladder is derived from grace_days in the token holder's language; write grace_days and read
ladder back. A grace_days of 0 pauses access at the first failure.
How it fails
RESOURCE_NOT_FOUNDunknown project_id, or the project is outside the token's scope.
AUTHENTICATION_REQUIREDno authenticated user on the request.
TOKEN_MISSING_ABILITYtoken lacks project-subscription:view.
How is this guide?
Last updated on
Revenue Recovery Tools
Revenue Recovery is what a project does when a renewal fails, when a member cancels and after they leave: a grace window the creator sets, with a notice ladder that carries the rail's own way to pay again and ends in a pause until a charge settles; a cancellation screen that asks why and makes one offer for the member's rail; and the win-back sequences that reach a member who left.
get_retention_stats
Read what Revenue Recovery did on a project over a window — failed renewals, reminders, pauses, recoveries with their US dollars, win-back messages and members won back, the cancellation screens with their offers, and why members cancelled. Read-only.