---
title: "Reactivate Subscription"
method: POST
path: "/api/v1/billing/reactivate"
tags: ["billing", "billing"]
---

# Reactivate Subscription

`POST /api/v1/billing/reactivate`

## Request

- Base URL: `https://api.peil.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.peil.app/api/v1/billing/reactivate`
- Auth: OAuth 2 (password, token URL `/api/v1/auth/jwt/login`)

Resume a cancel-pending subscription.

On cancel we delete the Mollie subscription but keep access until period end;
the SEPA mandate normally stays valid, so we resume by creating a fresh
subscription on it (no payment) starting at the paid-through date — never a
double charge. If the mandate has lapsed/been revoked, fall back to a first
payment to re-authorise (returns a checkout URL for the frontend to redirect).

## Response `200`

Successful Response

- ReactivateResponse
  - `billing` BillingStatusResponse
    - `plan` string, required
    - `status` string, required
    - `billing_configured` boolean, required
    - `pro_source` string, nullable
    - `is_founder` boolean
    - `grant` object, nullable
    - `trial` object, nullable
    - `eligible_terms` string[]
    - `provider_status` string, nullable, required
    - `payment_status` string, nullable, required
    - `mollie_customer_id` string, nullable, required
    - `mollie_subscription_id` string, nullable, required
    - `current_period_end` string, nullable, required
    - `cancel_at_period_end` boolean, required
    - `cancelled_at` string, nullable, required
    - `last_failure_reason` string, nullable, required
    - `payment_method` string, nullable
    - `billing_interval` string
    - `billing_visible` boolean
    - `needs_reconciliation` boolean, required
  - `needs_checkout` boolean
  - `checkout_url` string, nullable

---

[API](https://skmtc.dev/peil/apis/peil-api.md) · [All operations](https://skmtc.dev/peil/apis/peil-api/llms.txt) · [OpenAPI document](https://skmtc.dev/peil/apis/peil-api/revisions/ee3ca1246dde?raw)
