Resume subscription
Resume a paused subscription. The status returns to active and renewals continue.
/subscriptions/{id}/resumeResume a paused subscription. The status returns to active and renewals continue.
The periods that elapsed while it was paused are not billed. The subscription keeps its billing day and its next charge is the next billing date after the resume, never one charge per paused period.
Invoices that were already open when it was paused stay open; resuming does not collect them.
Direct Debit. A Direct Debit subscription resumes only if its mandate can collect now. Otherwise the call is refused with 409 mandate_not_usable (or 409 direct_debit_not_configured), the subscription stays paused, and details.mandate_usability_code says why. A card subscription has no such check.
A subscription that is not paused is refused with 400 invalid_status. It takes no body. Emits subscription.resumed.
Requires the subscriptions:write scope and the subscription:resume permission. Send an Idempotency-Key header to make retries safe.
Related endpoints
POST /subscriptions— Create a new subscriptionGET /subscriptions— List subscriptionsGET /subscriptions/{id}— Get subscription by IDPATCH /subscriptions/{id}— Update subscription detailsPOST /subscriptions/{id}/change-plan— Change subscription planPOST /subscriptions/{id}/preview-change-plan— Preview a plan changePOST /subscriptions/{id}/pause— Pause subscriptionPOST /subscriptions/{id}/cancel— Cancel subscription
Common errors
400 invalid_request— malformed payload or failed validation.401 authentication_error— missing, invalid, expired, or revoked credential. Codes:authentication_failed,invalid_api_key,expired_api_key,api_key_revoked,session_invalid,merchant_required. Carries aWWW-Authenticate: Bearerchallenge.403 authorization_error— the caller is identified but the action is denied. Codes includeinsufficient_permissions,ip_not_allowed,merchant_mismatch, andorigin_not_allowed.404 resource_missing— the referenced resource does not exist or is not visible to your key.409 conflict— Idempotency-Key collision with a different body, or a concurrent state-transition conflict.429 rate_limit_error— coderate_limit_exceeded. Back off using theRetry-Afterheader (whole seconds);X-RateLimit-Resetis a UNIX timestamp in seconds.
Idempotency
Pass an Idempotency-Key header (UUID v4 recommended) to make retries safe. Keys are valid for 24 hours; see the idempotency guide.
Your RevKeen merchant API key. Create and manage keys in Dashboard → Settings → Developer. Use rk_sandbox_* for staging/test and rk_live_* for production. The same key may be sent as Authorization: Bearer <key> if that suits your HTTP client better. A missing, invalid, expired, or revoked key returns 401 with a WWW-Authenticate: Bearer challenge; a valid key without the required scope returns 403.
In: header
Path Parameters
Subscription UUID
uuidResponse Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://api.revkeen.com/v2/subscriptions/11111111-1111-4111-8111-111111111111/resume" \
-H "x-api-key: $REVKEEN_API_KEY"Synthetic documentation data, validated against the response schema; not a live API result.
{ "data": { "id": "d4e6f8a1-2b3c-4d5e-9f60-7a8b9c0d1e24", "merchant_id": "8f14e45f-ceea-4e7a-9b4b-7c3f1a2d5e60", "customer_id": "c2a1e7d4-5b3f-4a8e-9d21-6f0b3e4c7a11", "product_id": "a7b3c9d2-1e4f-4b6a-8c5d-2f9e0a1b3c42", "price_id": "b5d8e2f1-3a6c-4d9b-8e7f-1c4a2b5d6e73", "plan_id": null, "status": "active", "quantity": 1, "amount_minor": 4900, "currency": "GBP", "billing_interval": "month", "current_period_start": "2026-04-16T10:00:00.000Z", "current_period_end": "2026-05-16T10:00:00.000Z", "trial_end": "2026-04-16T10:00:00.000Z", "canceled_at": null, "created_at": "2026-04-02T10:00:00.000Z", "updated_at": "2026-04-02T10:05:00.000Z", "dunning": null, "payment_rail": "card", "mandate_id": null, "payment_method_id": "9e8d7c6b-5a4f-4e3d-8c2b-1a0f9e8d7c65" }}