---
title: "Understanding renewal errors (rebill errors)"
description: "Technical guide to understanding and managing subscription renewal errors via the Ciklik API"
url: https://www.ciklik.academy/en/prestashop/gestion-abonnes-ciklik/comprendre-les-erreurs-de-renouvellement/
lang: en
lastUpdated: 2026-10-09
---

# Understanding renewal errors (rebill errors)

> PrestaShop
>
> This page applies to PrestaShop stores using the Ciklik module. Running a Ciklik box store? [See the box path](https://www.ciklik.academy/en/demarrage/bienvenue-chez-ciklik/).

> Tip
>
> This guide is intended for PrestaShop developers and integrators who want to understand the different types of errors that can occur during automatic subscription renewals, and how to diagnose them via the Ciklik API.

## Prerequisites

- Access to the Ciklik API ([API documentation](https://ciklik.github.io/api/))
- Familiarity with rebill (automatic renewal) concepts
- Ciklik module installed and configured on PrestaShop

## Rebill Errors API Endpoint

The Ciklik API exposes a dedicated endpoint for rebill errors: [`/api/rebill-errors`](https://ciklik.github.io/api/#tag/rebill-errors/operation/listRebillErrors)

> Caution
>
> This endpoint does **not** list credit card payment errors (card declined, insufficient funds, etc.). These errors are handled separately through the payment retry mechanism.
>
> For credit card payment errors, see:
>
> - [Payment retries: Rebill](https://www.ciklik.academy/en/paiements/tentatives-de-prelevements-rebill/)
> - [Payment errors](https://www.ciklik.academy/en/paiements/les-erreurs-de-paiements/)

## Error Types

The rebill-errors endpoint covers exclusively the following errors:

### Complete stock error (`failed`)

No products from the subscription were available at the time of renewal. No order is generated.

```json
{
  "id": 1,
  "type": "failed",
  "created_at": "2026-01-08 06:00:00",
  "subscription_id": "uuid-de-l-abonnement",
  "order_id": 1234,
  "error_code": null,
  "error_message": null
}
```

**Behavior:**

- No order is created in PrestaShop
- The subscription remains active
- The error is logged and accessible via the API
- The rebill will be automatically retried the next day, then every following day until stock is restored. Once stock is available again, the renewal is processed and the date of that payment becomes the new due date (the cycle restarts from that date)

### Partial stock error (`partial`)

At least one product from the subscription was out of stock, but the order was placed with the available products.

```json
{
  "id": 432,
  "type": "partial",
  "created_at": "2026-01-08 06:00:00",
  "subscription_id": "uuid-de-l-abonnement",
  "order_id": 1235,
  "error_code": null,
  "error_message": null
}
```

**Behavior:**

- The order is created with **only the available products**
- The out-of-stock product is **not** listed in the rebill-errors API response
- In Ciklik, the subscription’s **Renewal situation** panel names it, on the **Products concerned** line (for errors recorded since October 9, 2026; for older ones, compare the content of the generated order with that of the subscription)

> Common pitfall: Stock shortage detection
>
> PrestaShop does not explicitly report stock shortage information to the Ciklik module. Detection works as follows:
>
> 1. Ciklik attempts to add the product to the PrestaShop cart
> 2. If the product does not appear in the cart after the add attempt, it is considered out of stock
>
> This is a behavior specific to the PrestaShop integration.

### PrestaShop API error

The PrestaShop site returned an unexpected response (empty HTTP response, 500 error, 401, timeout…).

**Behavior:**

- The error is captured
- The rebill is **automatically retried 24 hours later**
- The subscription remains in active status

> Common pitfall: Empty HTTP response
>
> When Ciklik attempts to create the cart via the PrestaShop module and receives an empty HTTP response, this can generate a silent bug.
>
> **Checks to perform:**
>
> - The Ciklik server IP is properly whitelisted on the hosting side
> - The firewall (iptables, CSF) allows connections
> - The WAF (ModSecurity, Sucuri, Cloudflare) is not blocking requests
> - `.htaccess` rules are not interfering
>
> See also: [Rebill and PrestaShop site unavailability](https://www.ciklik.academy/en/prestashop/gestion-abonnes-ciklik/rebill-et-indisponibilite-site/)

## In the Ciklik back-office

The same errors are visible without the API, for accounts with a PrestaShop site:

- at the bottom of a subscription detail (Sales > Subscriptions), **Renewal errors** section: date, type (**Module call failed**, **Partial order (out of stock)**, **Order refused (out of stock)**), error code and message;
- at the bottom of your site sheet (Settings > Sites), the same list for every subscription of the site.

These rows are read-only and stay in the history, even after a successful renewal: the current renewal state is shown in the subscription’s **Renewal situation** panel.

## Filtering by date

You can filter errors by date to analyze a specific period:

```bash
GET /api/rebill-errors?filter[created_at_after]=2026-01-07&filter[created_at_before]=2026-01-09
```

## Historical data

> Note
>
> Data from the rebill-errors API is only available from December 2025 (endpoint activation date).
>
> Before this date, errors were temporarily stored, sent via email report, then purged. There is therefore no prior history.

## Practical use cases

### Diagnosing recurring errors

A subscription has been consistently failing for several months:

1. Retrieve errors for this subscription:

   ```bash
   GET /api/rebill-errors?filter[by_subscription_uuid]=uuid-abonnement
   ```

2. Analyze the error type:

   - `failed` → Check the product stock in PrestaShop
   - `partial` → Compare the generated order with the subscription
   - API error → Check PrestaShop server logs

### Daily error report

To identify yesterday’s issues:

```bash
GET /api/rebill-errors?filter[created_at_after]=2026-01-07&filter[created_at_before]=2026-01-08
```

## FAQ

**Q: Why doesn’t my credit card payment error appear in this endpoint?**

Credit card payment errors (card declined, insufficient funds, etc.) are not handled by this endpoint. They go through the payment retry system. See [Payment retries: Rebill](https://www.ciklik.academy/en/paiements/tentatives-de-prelevements-rebill/).

**Q: How do I know which product was out of stock during a `partial` error?**

The out-of-stock product is not listed in the error. Compare the content of the generated order (via the orders API) with the expected content of the subscription (via the subscriptions API).

**Q: Are errors kept indefinitely?**

Yes, since the endpoint was activated in December 2025. Earlier errors were not retained.

## See also

[PrestaShop renewals explained](https://www.ciklik.academy/en/prestashop/gestion-abonnes-ciklik/renouvellements-prestashop-expliques/)

[PrestaShop API error messages](https://www.ciklik.academy/en/prestashop/gestion-abonnes-ciklik/messages-erreur-api-prestashop/)

[Rebill and PrestaShop site unavailability](https://www.ciklik.academy/en/prestashop/gestion-abonnes-ciklik/rebill-et-indisponibilite-site/)

[Payment errors](https://www.ciklik.academy/en/paiements/les-erreurs-de-paiements/)
