# 2026

{% updates format="full" %}
{% update date="2026-04-01" tags="core-api" %}

## Removed export size limit

[Exports](https://app.gitbook.com/s/RWJeylueWkzLadK710XZ/exports) just got a significant upgrade. There is now no limit on [export size](https://app.gitbook.com/s/-LgByaSP8eKjad-MIuHE/exporting-resources#export-size) — large jobs are processed in multiple rounds, prioritizing reliability, with new attributes available to monitor how things are going (number of processed exports, estimated completion time, etc.). On top of that, you can now [interrupt](https://app.gitbook.com/s/-LgByaSP8eKjad-MIuHE/exporting-resources#interrupting-and-restarting) a running export at any time and restart it from where it left off, making it much easier to manage long-running jobs.
{% endupdate %}

{% update date="2026-03-10" tags="core-api" %}

## Coupons count info for promotions, and more

Now you can check the total number of coupons created for a specific promotion by inspecting the related attribute on the single promotion type. On top of that, in the past few days, we released the following minor (but still relevant) updates:

* [Transactions](https://app.gitbook.com/s/RWJeylueWkzLadK710XZ/transactions/object) — now you can get information about the payment method used in a transaction (available for all transaction types).
* [Shipping methods](https://app.gitbook.com/s/RWJeylueWkzLadK710XZ/shipping_methods/object) — now you can add and remove tags to shipping methods like any other [taggable resource](https://app.gitbook.com/s/RWJeylueWkzLadK710XZ/tags#taggable-resources).
* [Bundles](https://app.gitbook.com/s/RWJeylueWkzLadK710XZ/bundles/object) — now you can [sort](https://app.gitbook.com/s/RWJeylueWkzLadK710XZ/bundles/list#sortable-fields) bundles by name as well.
  {% endupdate %}

{% update date="2026-03-03" tags="metrics-api" %}

## New export query

The [Metrics API](https://app.gitbook.com/o/-Lfu_B3DKew-kvoEWzTk/s/ASSiAvbL4nFnkl8plQy2/) now supports a new [query](https://app.gitbook.com/s/ASSiAvbL4nFnkl8plQy2/getting-started/queries) type. The [export](https://app.gitbook.com/s/ASSiAvbL4nFnkl8plQy2/getting-started/queries/export) query is a CSV-flavored variant of the [search](https://app.gitbook.com/s/ASSiAvbL4nFnkl8plQy2/getting-started/queries/search) query that returns matching records as a plain *text/csv* file, sorted and filtered to your needs. Available for [orders](https://app.gitbook.com/s/lhTYC557IzGiJNS84RKD/resources/orders/export), [returns](https://app.gitbook.com/s/lhTYC557IzGiJNS84RKD/resources/returns/export), and [carts](https://app.gitbook.com/s/lhTYC557IzGiJNS84RKD/resources/carts/export), with up to **100K** records per export.
{% endupdate %}

{% update date="2026-02-24" tags="rules-engine" %}

## New free gift action and date-based dynamic values

We just shipped two new Rules Engine capabilities that expand what you can express in your [rules](https://app.gitbook.com/s/hiqD9AvrD8A8IPj7QXPv/rules) — one on the [actions](https://app.gitbook.com/s/hiqD9AvrD8A8IPj7QXPv/actions) side, one on the [conditions](https://app.gitbook.com/s/hiqD9AvrD8A8IPj7QXPv/conditions) side:

* **Free gift action** — A new [free gift](https://app.gitbook.com/s/hiqD9AvrD8A8IPj7QXPv/actions/types/free-gift) action type is now available for [flex promotions](https://app.gitbook.com/s/RWJeylueWkzLadK710XZ/flex_promotions). It applies a 100% discount to specific line items added to the cart as free gifts, with full control over which items are eligible and how many units are discounted. Remember that Commerce Layer also exposes two dedicated [order](https://app.gitbook.com/s/RWJeylueWkzLadK710XZ/orders/object) relationships that targets the available free SKUs and bundles to make it easy to surface a gift selection UI at checkout.
* **Date-based dynamic values** — Condition values now support [date expressions](https://app.gitbook.com/s/hiqD9AvrD8A8IPj7QXPv/conditions/dynamic-values#date-based-values), making it straightforward to write time-sensitive rules without hard-coding any dates. You can reference the current date, extract date parts, match birthdays, or define date windows — all using the same notation already available for [dynamic values](https://app.gitbook.com/s/hiqD9AvrD8A8IPj7QXPv/conditions/dynamic-values) (see some example and real use cases on our [latest blog post](https://commercelayer.io/blog/time-based-promotions-birthday-coupons-and-spend-limits)).

<details>

<summary><strong>Birthday coupons and spend limits with Commerce Layer.</strong></summary>

Learn how to use Commerce Layer’s Rules Engine to create birthday discounts, limit eligibility with customer metadata, and manage dynamic spend thresholds with precision.

<a href="https://commercelayer.io/blog/time-based-promotions-birthday-coupons-and-spend-limits" class="button primary" data-icon="book">Read more on our blog</a> <a href="https://commercelayer.fillout.com/t/n7qbQBzH63us?product=flex" class="button secondary" data-icon="user-headset">Contact sales</a>

</details>
{% endupdate %}

{% update date="2026-01-21" tags="core-api" %}

## Option to disable payment gateways, and more

We just powered the whole set of our supported [payment gateways](https://app.gitbook.com/s/RWJeylueWkzLadK710XZ/payment_gateways) with a couple of new options:

* **Disable / enable** — Now you can disable the payment gateways you don't use anymore (and possibly re-enable them, if needed) by passing a new trigger attribute on the specific payment gateway type. Active / inactive payment gateways can be retrieved by [filtering](https://app.gitbook.com/s/RWJeylueWkzLadK710XZ/payment_gateways/list#filterable-fields) / [sorting](https://app.gitbook.com/s/RWJeylueWkzLadK710XZ/payment_gateways/list#sortable-fields) the list by the new `disabled_at` timestamp with the proper query.
* **Force payments** — the force payments option is now available on additional payment gateways beyond [Stripe](https://app.gitbook.com/s/RWJeylueWkzLadK710XZ/stripe_gateways) (for which it was already enabled by default). For those gateways (including [Adyen](https://app.gitbook.com/s/RWJeylueWkzLadK710XZ/adyen_gateways), [Axerve](https://app.gitbook.com/s/RWJeylueWkzLadK710XZ/axerve_gateways), [Checkout.com](https://app.gitbook.com/s/RWJeylueWkzLadK710XZ/checkout_com_gateways), [Satispay](https://app.gitbook.com/s/RWJeylueWkzLadK710XZ/satispay_gateways), and all [external gateways](https://app.gitbook.com/s/RWJeylueWkzLadK710XZ/external_gateways)), the feature is not enabled, meaning that the value for the `force_payments` option is `false`. Set it to `true` on the specific gateway if you want incoming payment events to automatically align the order’s payment source with the one used by the transaction (as long as the order is still editable).
  {% endupdate %}

{% update date="2026-01-15" tags="core-api" %}

## Custom include list for external resources, and more

Now you can [overwrite the default list](https://app.gitbook.com/s/-LgByaSP8eKjad-MIuHE/external-resources#custom-include-list) of resources included in the request payload of all the external resources (external order validations excluded) and specify a custom one. The allowed includes are based on the target resource required by the external request. Providing an invalid include for the target resource will result in an error. On top of that, in the past few days, we released the following minor (but still relevant) updates:

* [Imports](https://app.gitbook.com/s/RWJeylueWkzLadK710XZ/imports/object) — we added a new boolean parameter that you can set to `true` (default is `false`) to disable the interruption of an import even if the number of errors exceeds the [10% threshold](https://app.gitbook.com/s/-LgByaSP8eKjad-MIuHE/importing-resources#maximum-error-percentage). We also enabled the possibility to [add and/or remove tags](https://app.gitbook.com/s/-LgByaSP8eKjad-MIuHE/importing-resources#importing-a-list-of-customers-removing-the-associated-tags-csv) directly when importing [taggable resources](https://app.gitbook.com/s/RWJeylueWkzLadK710XZ/tags#taggable-resources).
  {% endupdate %}
  {% endupdates %}
