---
title: "Refresh a Stripe subscription from the Stripe API"
method: POST
path: "/api/admin/subscriptions/{id}/refresh-from-stripe"
tags: ["Admin"]
---

# Refresh a Stripe subscription from the Stripe API

`POST /api/admin/subscriptions/{id}/refresh-from-stripe`

## Request

- Base URL: `https://api.rewritelifestyle.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.rewritelifestyle.ai/api/admin/subscriptions/{id}/refresh-from-stripe`
- Auth: HTTP bearer

Fetches the latest state from Stripe for the given subscription and overwrites status, ends_at, stripe_price_id, stripe_product_id, stripe_current_period_start, stripe_cancel_at_period_end, and stripe_latest_invoice_id. Status is only applied for unambiguous Stripe states (active, trialing, canceled, incomplete_expired); anything else (paused, unpaid, past_due, incomplete) leaves the local status untouched and records statusSkipped on the timeline event, since guessing would silently grant or revoke entitlement. Only works for platform=stripe subscriptions that have a stripe_subscription_id. Returns the updated subscription row and a per-field diff of what changed.

## Path parameters

- `id` number, required

## Response `200`

- unknown

---

[API](https://skmtc.dev/rewritelifestyle/apis/rewrite-lifestyle-api.md) - [All operations](https://skmtc.dev/rewritelifestyle/apis/rewrite-lifestyle-api/llms.txt) - [OpenAPI document](https://skmtc.dev/rewritelifestyle/apis/rewrite-lifestyle-api/revisions/28695827f27a?raw)
