---
title: "Understanding the end_date field of a subscription"
description: "Technical guide to understanding how the end_date field works and its implications for subscription management"
url: https://www.ciklik.academy/en/prestashop/gestion-abonnes-ciklik/comprendre-le-champ-end-date/
lang: en
lastUpdated: 2026-10-09
---

# Understanding the end_date field of a subscription

> Box and PrestaShop
>
> This page applies to both box stores and PrestaShop stores.

> Tip
>
> The `end_date` field is a key concept for understanding the actual state of a subscription. This guide explains how it works and its use cases for PrestaShop integrators.

## Prerequisites

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

See also: [Subscription management](https://www.ciklik.academy/en/gestion-commandes/gestion-des-abonnements/) (platform documentation)

## Definition

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

> Important point
>
> This field is populated **even for active subscriptions**. It does not mean the subscription has ended, but rather until what date it is “paid”.

## Cycle operation

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
```

### Update rule

- **Payment accepted**: `end_date` is updated to the day before the next scheduled rebill
- **Payment declined**: `end_date` does not change

## Active status vs past end_date

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

### “Zombie” subscriptions

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)

## Use cases for API filtering

### Identifying “stuck” subscriptions

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

```bash
GET /api/subscriptions?filter[activated]=1&filter[end_date_before]=2025-01-01
```

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

### Monthly subscription audit

To identify subscriptions requiring attention:

```bash
# Active subscriptions with end_date exceeded for more than 30 days
GET /api/subscriptions?filter[activated]=1&filter[end_date_before]=2026-01-04
```

> Interpretation warning
>
> A past `end_date` does not necessarily indicate a payment problem. It could be:
>
> - An out-of-stock situation on PrestaShop side (see [Understanding renewal errors](https://www.ciklik.academy/en/prestashop/gestion-abonnes-ciklik/comprendre-les-erreurs-de-renouvellement/))
> - A temporary unavailability of the PrestaShop site
> - A product configuration issue

## Link with PrestaShop customer groups

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

### Typical scenario

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](https://www.ciklik.academy/en/prestashop/gestion-abonnes-prestashop/gerer-ses-abonnes-dans-un-groupe-client-prestashop/)

> Best practice
>
> To automate this synchronization, use [Ciklik webhooks](https://www.ciklik.academy/en/webhooks/evenements-abonnements/), in particular the `updated_subscription` event, which can notify your PrestaShop when subscription states change.

## Difference with next_billing

| Field          | Meaning                                  |
| -------------- | ---------------------------------------- |
| `end_date`     | Until what date the subscription is paid |
| `next_billing` | Date of the subscription’s next renewal  |

**Example:**

- `end_date` = February 14 (last payment covered until this date)
- `next_billing` = February 15 (next scheduled payment)

If the February 15 payment fails:

- `end_date` remains at February 14
- `next_billing` does not move during the new attempts: they are carried by the pending order, whose `next_try` field gives the date of the next attempt (for example February 18, according to your site’s **Payment retry: days between two attempts** setting)
- if all attempts fail, the order is closed as failed and `next_billing` moves one period after the closing date (April 1 for a monthly subscription closed on March 1)

When your shop blocks the renewal (deleted combination, shop unreachable), `next_billing` is moved by one day at each block.

## FAQ

**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](https://www.ciklik.academy/en/prestashop/gestion-abonnes-prestashop/resilier-et-reactiver-un-abonnement/)

## See also

[Cancel and reactivate a subscription](https://www.ciklik.academy/en/prestashop/gestion-abonnes-prestashop/resilier-et-reactiver-un-abonnement/)

[Managing subscription-related orders](https://www.ciklik.academy/en/prestashop/gestion-abonnes-ciklik/gerer-les-commandes-liees-aux-abonnements/)

[Manage your subscribers in a PrestaShop customer group](https://www.ciklik.academy/en/prestashop/gestion-abonnes-prestashop/gerer-ses-abonnes-dans-un-groupe-client-prestashop/)

[Events: subscriptions](https://www.ciklik.academy/en/webhooks/evenements-abonnements/)
