Skip to content

Understanding the end_date field of a subscription

  • Knowledge of the Ciklik subscription lifecycle
  • Access to the Ciklik API
  • Familiarity with rebill concepts

See also: Subscription management (platform documentation)

The end_date field represents the subscription expiration date following the last accepted payment.

Let’s take the example of a monthly subscription:

Subscription: January 15
├── Payment accepted on January 15
├── end_date = February 14 (day before next rebill)
├── Next rebill scheduled: February 15
February 15 rebill
├── If payment accepted → end_date = March 14
├── If payment declined → end_date remains February 14
  • Payment accepted: end_date is updated to the day before the next scheduled rebill
  • Payment declined: end_date does not change

A subscription can be:

  • Active status + end_date in the future = Current subscription, payments up to date
  • Active status + end_date in the past = “Zombie” subscription - active but never successfully renewed

These are subscriptions that:

  • Have the active status in Ciklik
  • But whose end_date is in the past (sometimes by several months)

Possible causes:

  • Repeated payment failures (expired card, insufficient funds)
  • Stock errors preventing renewal
  • Technical issues (PrestaShop site inaccessible)

To find active subscriptions that have not been renewed for a long time:

Fenêtre de terminal
GET /api/subscriptions?filter[status]=active&filter[end_date_before]=2025-01-01

This returns subscriptions marked as active but whose last successful billing was before January 2025.

To identify subscriptions requiring attention:

Fenêtre de terminal
# Active subscriptions with end_date exceeded for more than 30 days
GET /api/subscriptions?filter[status]=active&filter[end_date_before]=2026-01-04

The end_date field is particularly useful for integrators who synchronize Ciklik subscription status with PrestaShop customer groups.

You have a “Premium Subscribers” customer group in PrestaShop that provides access to reduced prices or exclusive features.

Recommended logic:

If subscription.status == "active" AND subscription.end_date >= today
→ Customer remains in the "Premium Subscribers" group
If subscription.status == "active" AND subscription.end_date < today - 30 days
→ Consider removal from the group (subscription likely in difficulty)
If subscription.status == "inactive"
→ Remove from "Premium Subscribers" group

See also: Managing your subscribers in a PrestaShop customer group

FieldMeaning
end_dateUntil what date the subscription is paid
next_payment_dateWhen the next payment attempt will occur

Example:

  • end_date = February 14 (last payment covered until this date)
  • next_payment_date = February 15 (next scheduled payment)

If the February 15 payment fails:

  • end_date remains at February 14
  • next_payment_date moves to February 18 (next attempt according to the rebill scenario)

Q: Will a subscription with a past end_date continue to attempt renewal?

Yes, as long as the subscription has the active status, renewal attempts will continue according to the configured rebill scenario.

Q: How can I force an end_date update without payment?

This is not possible through the standard interface. The end_date field is only updated upon a successful payment. For exceptional cases, contact Ciklik support.

Q: If I cancel then reactivate a subscription, what happens to end_date?

  • If reactivation during the paid period: end_date does not change
  • If reactivation after end_date: a payment is triggered immediately, and end_date is updated if the payment succeeds

See: Canceling and reactivating a subscription