Version
READ

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.

The token behind the MCP session must hold it, or the call is refused with TOKEN_MISSING_ABILITY.

The REST endpoint and this tool share one action, so validation, permissions and events are identical.

Annotations

Read-only

It reads and never changes anything.

Arguments

project_id*string

UUID 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_FOUND

unknown project_id, or the project is outside the token's scope.

AUTHENTICATION_REQUIRED

no authenticated user on the request.

TOKEN_MISSING_ABILITY

token lacks project-subscription:view.

How is this guide?

Last updated on