Download OpenAPI specification:
L'API s'authentifie par un jeton d'API Ciklik (jeton opaque, ce n'est pas un JWT) envoyé dans l'en-tête Authorization: Bearer.
Exemple :
curl --location 'https://{environment}.ciklik.co/api/v3/whoiam' --header 'Authorization: Bearer <Ciklik Token>'
Une requête sans jeton ou avec un jeton invalide reçoit 401 ; un jeton valide qui n'a pas accès à la ressource reçoit 403.
Le nombre de requêtes est limité à 200 par minute, compté par adresse IP (toutes les requêtes émises depuis la même adresse IP partagent ce quota). Si la limite est atteinte, la réponse http sera 429 Too Many Requests.
Certains endpoints de l'API prennent en charge le filtrage des résultats sur un ensemble spécifié de champs. Chaque endpoint qui prend en charge le filtrage énumérera les champs qui peuvent être filtrés. Plusieurs champs peuvent être combinés en utilisant un caractère esperluette &
Exemple: /subscriptions?filter[activated]=1&filter[created_at_after]=2026-01-01&sort=-created_at
Un filtre ou un tri qui n'est pas dans la liste de l'endpoint est refusé avec une réponse 400 Bad Request (les endpoints qui valident eux-mêmes le paramètre sort répondent 422 pour un tri hors liste). Une valeur de filtre au mauvais format peut être refusée en 422.
Les listes de résultats de l'API sont paginées. La pagination est fixe : 20 éléments par page, quelle que soit la valeur d'un éventuel paramètre per_page (ignoré). Vous pouvez obtenir les différentes pages avec la query string page, default value 1.
Le nombre total d'éléments dans une liste est disponible dans le champ meta.total.
Exemple: ?page=2
Renvoie le site du jeton, enveloppé dans data. Le champ metadata contient toutes les clés de métadonnées du site, y compris celles qui n'ont pas été posées par l'API.
{- "data": {
- "id": 0,
- "name": "string",
- "host": "string",
- "paymentMethods": [
- {
- "id": 0,
- "name": {
- "fr": "string"
}, - "description": {
- "fr": "string"
}, - "class_key": "MollieCreditCard",
- "gateway_id": 0,
- "created_at": "string",
- "updated_at": "string",
- "deleted_at": "string",
- "checkout_manager": "string",
- "need_payable": true,
- "pivot": {
- "tenant_id": 0,
- "payment_method_id": 0,
- "created_at": "string",
- "updated_at": "string"
}
}
], - "webhooks": {
- "property1": "string",
- "property2": "string"
}, - "metadata": {
- "property1": "string",
- "property2": "string"
}
}
}Permet de mettre à jour les métadonnées d'un site web (WebsiteEntity) en modifiant ou ajoutant des clés/valeurs au champ "metadata". Les clés envoyées sont fusionnées avec les métadonnées existantes ; les clés absentes du corps sont conservées (elles ne sont pas effacées). La réponse renvoie le site complet, enveloppé dans data.
object Métadonnées personnalisées. Les valeurs doivent être des chaînes de caractères (max 5000 caractères) ou null. Seules les clés envoyées sont modifiées, les autres clés du site sont conservées. Les clés commençant par "ciklik_encrypted_" seront automatiquement encryptées. |
{- "metadata": {
- "key1": "value1",
- "key2": "value2",
- "ciklik_encrypted_key2": "value-encrypted"
}
}{- "data": {
- "id": 0,
- "name": "string",
- "host": "string",
- "paymentMethods": [
- {
- "id": 0,
- "name": {
- "fr": "string"
}, - "description": {
- "fr": "string"
}, - "class_key": "MollieCreditCard",
- "gateway_id": 0,
- "created_at": "string",
- "updated_at": "string",
- "deleted_at": "string",
- "checkout_manager": "string",
- "need_payable": true,
- "pivot": {
- "tenant_id": 0,
- "payment_method_id": 0,
- "created_at": "string",
- "updated_at": "string"
}
}
], - "webhooks": {
- "property1": "string",
- "property2": "string"
}, - "metadata": {
- "property1": "string",
- "property2": "string"
}
}
}Route destinée au back-office du module PrestaShop : elle renvoie l'état d'installation de l'espace du jeton (espace de test ou de production, étapes franchies, ce qui reste à faire et adresse de la page de suivi d'installation). Les libellés sont traduits dans la langue de la requête. L'état est lu tel qu'il a été relevé lors des dernières vérifications : aucune vérification n'est lancée pendant la requête.
{- "data": {
- "space": {
- "id": 0,
- "name": "string",
- "domain": "string",
- "kind": "sandbox"
}, - "complete": true,
- "stalled": true,
- "collision": {
- "normalized_host": "string",
- "current_tenant_id": 0,
- "current_is_sandbox": true,
- "other_tenant_id": 0,
- "other_tenant_name": "string",
- "other_tenant_domain": "string",
- "other_is_sandbox": true
}, - "counts": {
- "done": 0,
- "broken": 0,
- "upcoming": 0
}, - "summary": "string",
- "last_probed_at": "2019-08-24T14:15:22Z",
- "steps": [
- {
- "key": "string",
- "group": "site",
- "label": "string",
- "state": "verified",
- "state_label": "string",
- "is_blocking": true,
- "observed_at": "2019-08-24T14:15:22Z"
}
], - "remaining": [
- "string"
], - "tracking_url": "string",
- "tracking_url_valid_until": "2019-08-24T14:15:22Z"
}
}| filter[id] | integer Example: filter[id]=1 Filtrer par ID du produit |
| filter[name] | string Example: filter[name]=Produit exemple Filtrer par nom du produit |
| filter[id_category] | integer Example: filter[id_category]=5 Filtrer par ID de catégorie |
| filter[quantity] | integer Example: filter[quantity]=10 Filtrer par quantité |
| filter[price] | number Example: filter[price]=29.99 Filtrer par prix |
| filter[active] | boolean Example: filter[active]=true Filtrer par état d'activité |
| filter[slug] | string Example: filter[slug]=produit-exemple Filtrer par slug |
| filter[virtual_product] | boolean Filtrer par produit virtuel (correspondance exacte) |
| filter[salable] | boolean Filtrer par produit vendable |
| filter[gift_card] | boolean Filtrer par carte cadeau |
| filter[gift_plan] | string Filtrer par plan cadeau (UUID du plan, correspondance partielle) |
| filter[disable_seo] | boolean Filtrer par désactivation SEO (correspondance exacte) |
| filter[ref] | string Filtrer par référence |
| filter[composable] | boolean Filtrer par composable |
| sort | string Enum: "id" "name" "id_category" "quantity" "price" "active" "slug" "virtual_product" "salable" "gift_card" "gift_plan" "disable_seo" "ref" "composable" "created_at" "updated_at" "-id" "-name" "-id_category" "-quantity" "-price" "-active" "-slug" "-virtual_product" "-salable" "-gift_card" "-gift_plan" "-disable_seo" "-ref" "-composable" "-created_at" "-updated_at" Trier les résultats (ex: -name pour un tri descendant). Tri par défaut : |
| page | integer Numéro de la page pour la pagination |
| per_page | integer Ignoré. La pagination est fixe à 20 éléments par page. |
{- "data": [
- {
- "id": 0,
- "name": "string",
- "slug": "string",
- "position": 0,
- "short_description": "string",
- "description": "string",
- "meta_title": "string",
- "meta_description": "string",
- "id_category": 0,
- "quantity": 0,
- "price": 0,
- "tax": 0,
- "active": true,
- "virtual_product": true,
- "salable": true,
- "gift_card": true,
- "gift_plan": "string",
- "disable_seo": true,
- "ref": "string",
- "external_id": "string",
- "offers": [
- {
- "id": 0,
- "quantity": 0,
- "percent_off": 0,
- "price": 0,
- "active": true,
- "product_id": 0,
- "deleted_at": "string",
- "tenant_id": 0
}
], - "frequencies": [
- {
- "id": 0,
- "interval": "string",
- "interval_count": 0,
- "tenant_id": 0,
- "pivot": {
- "product_id": 0,
- "composable_frequence_id": 0
}
}
]
}
], - "links": {
- "first": "string",
- "last": "string",
- "prev": "string",
- "next": "string"
}, - "meta": {
- "current_page": 0,
- "from": 0,
- "last_page": 0,
- "links": [
- {
- "url": "string",
- "label": "string",
- "active": true
}
], - "path": "string",
- "per_page": 0,
- "to": 0,
- "total": 0
}
}Crée le produit, ou le met à jour s'il existe déjà. Le produit est cherché par external_id s'il est fourni, sinon par ref.
Deux formes de corps sont acceptées :
data, avec le statut 201 s'il vient d'être créé et 200 s'il a été mis à jour ;{"products": [...]} : chaque élément suit le schéma d'un produit seul, la réponse contient la liste des produits dans data avec le statut 200.À chaque enregistrement par cette route, le slug du produit est remplacé par un identifiant aléatoire (la valeur envoyée est ignorée) et meta_title reprend name.
Si description est absente, un produit existant garde la sienne et un nouveau produit en reçoit une vide.
| name required | string <= 255 characters |
| ref required | string <= 255 characters Référence du produit (SKU). |
| external_id | string <= 255 characters Identifiant du produit chez le vendeur connecté (identifiant de déclinaison pour PrestaShop). |
| slug | string <= 255 characters Ignoré : un slug aléatoire est attribué à chaque enregistrement par POST /products. |
| description | string <= 255 characters Facultative. Recopiée dans la description courte et la meta description du produit. |
| id_category | integer |
| quantity | integer |
| price required | number |
| tax required | number Enum: 0 0.2 0.055 0.1 0.021 0.21 0.06 |
| active | boolean |
| virtual_product | boolean |
Array of objects |
{- "ref": "REFABOPRODUIT",
- "name": "Super nom produit",
- "price": "17.50",
- "description": "Petite description produit",
- "tax": "0.2",
- "frequencies": [
- {
- "interval": "month",
- "interval_count": 2
}
]
}{- "data": {
- "id": 0,
- "name": "string",
- "slug": "string",
- "position": 0,
- "short_description": "string",
- "description": "string",
- "meta_title": "string",
- "meta_description": "string",
- "id_category": 0,
- "quantity": 0,
- "price": 0,
- "tax": 0,
- "active": true,
- "virtual_product": true,
- "salable": true,
- "gift_card": true,
- "gift_plan": "string",
- "disable_seo": true,
- "ref": "string",
- "external_id": "string",
- "offers": [
- {
- "id": 0,
- "quantity": 0,
- "percent_off": 0,
- "price": 0,
- "active": true,
- "product_id": 0,
- "deleted_at": "string",
- "tenant_id": 0
}
], - "frequencies": [
- {
- "id": 0,
- "interval": "string",
- "interval_count": 0,
- "tenant_id": 0,
- "pivot": {
- "product_id": 0,
- "composable_frequence_id": 0
}
}
]
}
}| ref required | string Référence du produit (SKU) |
{- "data": {
- "id": 0,
- "name": "string",
- "slug": "string",
- "position": 0,
- "short_description": "string",
- "description": "string",
- "meta_title": "string",
- "meta_description": "string",
- "id_category": 0,
- "quantity": 0,
- "price": 0,
- "tax": 0,
- "active": true,
- "virtual_product": true,
- "salable": true,
- "gift_card": true,
- "gift_plan": "string",
- "disable_seo": true,
- "ref": "string",
- "external_id": "string",
- "offers": [
- {
- "id": 0,
- "quantity": 0,
- "percent_off": 0,
- "price": 0,
- "active": true,
- "product_id": 0,
- "deleted_at": "string",
- "tenant_id": 0
}
], - "frequencies": [
- {
- "id": 0,
- "interval": "string",
- "interval_count": 0,
- "tenant_id": 0,
- "pivot": {
- "product_id": 0,
- "composable_frequence_id": 0
}
}
]
}
}Met à jour le produit dont la référence est dans le chemin. Si external_id est fourni dans le corps, le produit est cherché par external_id et la référence du chemin est ignorée.
name, ref et price sont obligatoires, même pour une mise à jour partielle.
| ref required | string Référence du produit (SKU) |
| name required | string <= 255 characters |
| ref required | string <= 255 characters Référence du produit (SKU). |
| external_id | string <= 255 characters Identifiant du produit chez le vendeur connecté (identifiant de déclinaison pour PrestaShop). |
| slug | string <= 255 characters Slug du produit. |
| description | string <= 255 characters Facultative. |
| id_category | integer |
| quantity | integer |
| price required | number |
| tax | number Enum: 0 0.2 0.055 0.1 0.021 0.21 0.06 |
| active | boolean |
| virtual_product | boolean |
Array of objects |
{- "ref": "REFABOPRODUIT",
- "name": "Super nom produit",
- "price": "17.50",
- "description": "Petite description produit",
- "tax": "0.2",
- "frequencies": [
- {
- "interval": "month",
- "interval_count": 2
}
]
}{- "data": {
- "id": 0,
- "name": "string",
- "slug": "string",
- "position": 0,
- "short_description": "string",
- "description": "string",
- "meta_title": "string",
- "meta_description": "string",
- "id_category": 0,
- "quantity": 0,
- "price": 0,
- "tax": 0,
- "active": true,
- "virtual_product": true,
- "salable": true,
- "gift_card": true,
- "gift_plan": "string",
- "disable_seo": true,
- "ref": "string",
- "external_id": "string",
- "offers": [
- {
- "id": 0,
- "quantity": 0,
- "percent_off": 0,
- "price": 0,
- "active": true,
- "product_id": 0,
- "deleted_at": "string",
- "tenant_id": 0
}
], - "frequencies": [
- {
- "id": 0,
- "interval": "string",
- "interval_count": 0,
- "tenant_id": 0,
- "pivot": {
- "product_id": 0,
- "composable_frequence_id": 0
}
}
]
}
}Renvoie les trois derniers webhooks envoyés pour cet évènement, du plus récent au plus ancien. Chaque élément est la charge utile (payload) envoyée. Un event_type absent ou inconnu répond 404.
| event_type required | string Enum: "created_subscription" "updated_subscription" "deleted_subscription" "created_checkoutorder" "updated_checkoutorder" "created_checkouttransaction" "updated_checkouttransaction" "created_checkoutinvoice" "created_address" "updated_address" "created_shippingbox" "updated_shippingbox" "deleted_shippingbox" "created_user" "updated_user" "deleted_user" "created_optin" "updated_optin" Nom de l'évènement à avoir |
{- "data": [
- { }
]
}Enregistre l'adresse appelée pour un type d'évènement. Il n'y a qu'une adresse par type d'évènement : un nouvel enregistrement remplace l'adresse précédente pour ce type, y compris celle posée par le module PrestaShop.
La réponse renvoie le site, enveloppé dans data, avec la liste des webhooks actifs.
| event_type required | string Enum: "created_subscription" "updated_subscription" "deleted_subscription" "created_checkoutorder" "updated_checkoutorder" "created_checkouttransaction" "updated_checkouttransaction" "created_checkoutinvoice" "created_address" "updated_address" "created_shippingbox" "updated_shippingbox" "deleted_shippingbox" "created_user" "updated_user" "deleted_user" "created_optin" "updated_optin" |
| hook_url required | string <uri> URL http ou https publique, joignable depuis internet. Les adresses internes, privées ou réservées (localhost, 10.x, 192.168.x, 169.254.x...) sont refusées en 422. |
{- "event_type": "created_subscription",
}{- "data": {
- "id": 0,
- "name": "string",
- "host": "string",
- "paymentMethods": [
- {
- "id": 0,
- "name": {
- "fr": "string"
}, - "description": {
- "fr": "string"
}, - "class_key": "MollieCreditCard",
- "gateway_id": 0,
- "created_at": "string",
- "updated_at": "string",
- "deleted_at": "string",
- "checkout_manager": "string",
- "need_payable": true,
- "pivot": {
- "tenant_id": 0,
- "payment_method_id": 0,
- "created_at": "string",
- "updated_at": "string"
}
}
], - "webhooks": {
- "property1": "string",
- "property2": "string"
}, - "metadata": {
- "property1": "string",
- "property2": "string"
}
}
}Retire l'adresse enregistrée pour ce type d'évènement. La réponse renvoie le site, enveloppé dans data.
| event_type required | string Enum: "created_subscription" "updated_subscription" "deleted_subscription" "created_checkoutorder" "updated_checkoutorder" "created_checkouttransaction" "updated_checkouttransaction" "created_checkoutinvoice" "created_address" "updated_address" "created_shippingbox" "updated_shippingbox" "deleted_shippingbox" "created_user" "updated_user" "deleted_user" "created_optin" "updated_optin" |
{- "event_type": "created_subscription"
}{- "data": {
- "id": 0,
- "name": "string",
- "host": "string",
- "paymentMethods": [
- {
- "id": 0,
- "name": {
- "fr": "string"
}, - "description": {
- "fr": "string"
}, - "class_key": "MollieCreditCard",
- "gateway_id": 0,
- "created_at": "string",
- "updated_at": "string",
- "deleted_at": "string",
- "checkout_manager": "string",
- "need_payable": true,
- "pivot": {
- "tenant_id": 0,
- "payment_method_id": 0,
- "created_at": "string",
- "updated_at": "string"
}
}
], - "webhooks": {
- "property1": "string",
- "property2": "string"
}, - "metadata": {
- "property1": "string",
- "property2": "string"
}
}
}| id required | string UUID de l'abonnement |
{- "data": {
- "id": 0,
- "uuid": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "end_date": "2019-08-24T14:15:22Z",
- "engaged_date": "2019-08-24T14:15:22Z",
- "auto_pause_at": "2019-08-24T14:15:22Z",
- "start_date": "2019-08-24T14:15:22Z",
- "active": true,
- "paused": true,
- "next_billing": "2019-08-24T14:15:22Z",
- "update_transporter_at": "2019-08-24T14:15:22Z",
- "relay": { },
- "graceMonths": 0,
- "retry_link": "string",
- "pending_payment": {
- "order_id": 0,
- "amount": 0.1,
- "currency": "string",
- "retry_link": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "next_try": "2019-08-24T14:15:22Z"
}, - "interval": "string",
- "interval_count": 0,
- "switch_plan_uuid": "string",
- "switch_plan_date": "2019-08-24T14:15:22Z",
- "referrer": "string",
- "address": {
- "id": 0,
- "user_id": 0,
- "company_name": "string",
- "address": "string",
- "address1": "string",
- "postcode": "string",
- "city": "string",
- "phone": "string",
- "first_name": "string",
- "last_name": "string",
- "region_id": 0,
- "division": "string",
- "division_name": "string",
- "external_id": "string",
- "deletable": true,
- "country": {
- "id": 0,
- "name": "string",
- "alphaCode": "string"
}
}, - "user_uuid": "string",
- "user_id": 0,
- "email": "string",
- "display_interval": "string",
- "display_content": "string",
- "external_fingerprint": "string",
- "content": [
- {
- "external_id": "string",
- "external_id_with_customizations": "string",
- "quantity": 0,
- "product_id": 0,
- "subscription_id": 0,
- "customizations": [
- null
]
}
]
}
}Permet de mettre à jour un abonnement, le résilier, le mettre en pause pour 1, 2 ou 3 mois, ou le relancer.
L'adresse (address_id), le transporteur (transporter) et la déclinaison (declinaison_id) sont contrôlés avant toute écriture : une référence inconnue ou qui n'appartient pas au site répond 404 et l'abonnement n'est pas modifié.
Les autres refus (422 sur content ou next_billing, par exemple) peuvent intervenir après l'application des changements qui les précèdent : n'envoyez qu'un changement par requête si vous avez besoin d'un résultat tout ou rien.
La réponse renvoie l'abonnement relu après les modifications, enveloppé dans data.
| id required | string UUID de l'abonnement à mettre à jour |
Données à modifier sur l'abonnement
| address_id | integer ID d'une adresse du site à affecter à l'abonnement (404 si elle n'appartient pas au site). |
| declinaison_id | integer ID d'une déclinaison du site à affecter à l'abonnement (404 si elle n'appartient pas au site). |
| transporter | integer ID d'un transporteur du site (404 s'il n'appartient pas au site). Peut être accompagné d'un objet |
object Point relais, lu uniquement avec | |
| voucher | boolean Si vrai, applique l'offre de rétention (bon de réduction) proposée au désabonnement. |
| break | boolean Accepté par la validation, sans effet (la mise en pause passe par |
| months | number <float> [ 1 .. 3 ] Nombre de mois pour mettre en pause l'abonnement (1, 2 ou 3 mois) (!= résiliation). Obligatoire si |
| active | boolean Indique si l'abonnement est actif. |
| notification | boolean Default: true Lors de la résiliation d'un abonnement, notifier ou non par email. |
| pause | boolean Indique si l'abonnement doit être mis en pause. |
| next_billing | string <date> Modifier la date du prochain paiement (date postérieure à aujourd'hui). Refusé en 422 si une commande du cycle est en attente avec une relance programmée. |
Array of objects nouveau contenu de l'abonnement, via external_id | |
| interval | string Nouvel intervalle de renouvellement ( |
| interval_count | integer Nouveau nombre d'intervalles, lu seulement avec |
Array of objects Produits complémentaires (PrestaShop) enregistrés dans l'empreinte du panier de l'abonnement. | |
object Métadonnées personnalisées pour l'abonnement. Les valeurs doivent être des chaînes de caractères (max 5000 caractères). Les clés commençant par "ciklik_encrypted_" seront automatiquement encryptées. |
{- "active": true,
- "metadata": {
- "key1": "value1",
- "key2": "value2",
- "ciklik_encrypted_key2": "value-encrypted"
}
}{- "data": {
- "id": 0,
- "uuid": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "end_date": "2019-08-24T14:15:22Z",
- "engaged_date": "2019-08-24T14:15:22Z",
- "auto_pause_at": "2019-08-24T14:15:22Z",
- "start_date": "2019-08-24T14:15:22Z",
- "active": true,
- "paused": true,
- "next_billing": "2019-08-24T14:15:22Z",
- "update_transporter_at": "2019-08-24T14:15:22Z",
- "relay": { },
- "graceMonths": 0,
- "retry_link": "string",
- "pending_payment": {
- "order_id": 0,
- "amount": 0.1,
- "currency": "string",
- "retry_link": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "next_try": "2019-08-24T14:15:22Z"
}, - "interval": "string",
- "interval_count": 0,
- "switch_plan_uuid": "string",
- "switch_plan_date": "2019-08-24T14:15:22Z",
- "referrer": "string",
- "address": {
- "id": 0,
- "user_id": 0,
- "company_name": "string",
- "address": "string",
- "address1": "string",
- "postcode": "string",
- "city": "string",
- "phone": "string",
- "first_name": "string",
- "last_name": "string",
- "region_id": 0,
- "division": "string",
- "division_name": "string",
- "external_id": "string",
- "deletable": true,
- "country": {
- "id": 0,
- "name": "string",
- "alphaCode": "string"
}
}, - "user_uuid": "string",
- "user_id": 0,
- "email": "string",
- "display_interval": "string",
- "display_content": "string",
- "external_fingerprint": "string",
- "content": [
- {
- "external_id": "string",
- "external_id_with_customizations": "string",
- "quantity": 0,
- "product_id": 0,
- "subscription_id": 0,
- "customizations": [
- null
]
}
]
}
}Supprime un abonnement (soft delete). L'abonnement doit être inactif (active = false) et appartenir au tenant authentifié pour pouvoir être supprimé.
| id required | string UUID de l'abonnement à supprimer. |
{- "data": {
- "success": true
}
}Met à jour la quantité d'un produit spécifique déjà rattaché à l'abonnement. Les produits avec personnalisation (customization hash) ne sont pas modifiables.
| id required | string UUID de l'abonnement |
| external_id required | string Identifiant externe du produit (exodus_id) |
| quantity required | integer [ 1 .. 9999 ] Nouvelle quantité du produit |
{- "quantity": 3
}{- "data": {
- "id": 0,
- "uuid": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "end_date": "2019-08-24T14:15:22Z",
- "engaged_date": "2019-08-24T14:15:22Z",
- "auto_pause_at": "2019-08-24T14:15:22Z",
- "start_date": "2019-08-24T14:15:22Z",
- "active": true,
- "paused": true,
- "next_billing": "2019-08-24T14:15:22Z",
- "update_transporter_at": "2019-08-24T14:15:22Z",
- "relay": { },
- "graceMonths": 0,
- "retry_link": "string",
- "pending_payment": {
- "order_id": 0,
- "amount": 0.1,
- "currency": "string",
- "retry_link": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "next_try": "2019-08-24T14:15:22Z"
}, - "interval": "string",
- "interval_count": 0,
- "switch_plan_uuid": "string",
- "switch_plan_date": "2019-08-24T14:15:22Z",
- "referrer": "string",
- "address": {
- "id": 0,
- "user_id": 0,
- "company_name": "string",
- "address": "string",
- "address1": "string",
- "postcode": "string",
- "city": "string",
- "phone": "string",
- "first_name": "string",
- "last_name": "string",
- "region_id": 0,
- "division": "string",
- "division_name": "string",
- "external_id": "string",
- "deletable": true,
- "country": {
- "id": 0,
- "name": "string",
- "alphaCode": "string"
}
}, - "user_uuid": "string",
- "user_id": 0,
- "email": "string",
- "display_interval": "string",
- "display_content": "string",
- "external_fingerprint": "string",
- "content": [
- {
- "external_id": "string",
- "external_id_with_customizations": "string",
- "quantity": 0,
- "product_id": 0,
- "subscription_id": 0,
- "customizations": [
- null
]
}
]
}
}Retire un produit spécifique de l'abonnement. Impossible de retirer le dernier produit. Les produits avec personnalisation ne sont pas modifiables.
| id required | string UUID de l'abonnement |
| external_id required | string Identifiant externe du produit (exodus_id) |
{- "data": {
- "id": 0,
- "uuid": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "end_date": "2019-08-24T14:15:22Z",
- "engaged_date": "2019-08-24T14:15:22Z",
- "auto_pause_at": "2019-08-24T14:15:22Z",
- "start_date": "2019-08-24T14:15:22Z",
- "active": true,
- "paused": true,
- "next_billing": "2019-08-24T14:15:22Z",
- "update_transporter_at": "2019-08-24T14:15:22Z",
- "relay": { },
- "graceMonths": 0,
- "retry_link": "string",
- "pending_payment": {
- "order_id": 0,
- "amount": 0.1,
- "currency": "string",
- "retry_link": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "next_try": "2019-08-24T14:15:22Z"
}, - "interval": "string",
- "interval_count": 0,
- "switch_plan_uuid": "string",
- "switch_plan_date": "2019-08-24T14:15:22Z",
- "referrer": "string",
- "address": {
- "id": 0,
- "user_id": 0,
- "company_name": "string",
- "address": "string",
- "address1": "string",
- "postcode": "string",
- "city": "string",
- "phone": "string",
- "first_name": "string",
- "last_name": "string",
- "region_id": 0,
- "division": "string",
- "division_name": "string",
- "external_id": "string",
- "deletable": true,
- "country": {
- "id": 0,
- "name": "string",
- "alphaCode": "string"
}
}, - "user_uuid": "string",
- "user_id": 0,
- "email": "string",
- "display_interval": "string",
- "display_content": "string",
- "external_fingerprint": "string",
- "content": [
- {
- "external_id": "string",
- "external_id_with_customizations": "string",
- "quantity": 0,
- "product_id": 0,
- "subscription_id": 0,
- "customizations": [
- null
]
}
]
}
}Ajoute un produit à l'abonnement ou met à jour la quantité si le produit est déjà rattaché (upsert).
Si le produit existe déjà en base (via son external_id), il est simplement rattaché ; les champs price et tax du corps sont alors ignorés.
Si le produit n'existe pas, il est créé automatiquement : price devient obligatoire, tax défaut à 0 si absent.
Les produits avec personnalisation (customization hash) ne sont pas acceptés.
Retourne 201 pour un nouvel attachement (nouveau produit créé ou produit existant nouvellement rattaché), 200 pour une mise à jour de quantité sur un produit déjà rattaché.
| id required | string UUID de l'abonnement |
| external_id required | string <= 255 characters Identifiant externe du produit (exodus_id) |
| name required | string [ 1 .. 255 ] characters Nom du produit (utilisé lors de la création automatique, ignoré si le produit existe déjà) |
| quantity | integer [ 1 .. 9999 ] Default: 1 Quantité du produit (défaut 1) |
| price | number >= 0 Prix HT du produit. Obligatoire si le produit n'existe pas encore en base et doit être créé. Ignoré si le produit existe déjà. |
| tax | number [ 0 .. 1 ] Taux de TVA (ex. 0.2 pour 20%). Utilisé uniquement lors de la création ; défaut à 0 si absent. Ignoré si le produit existe déjà. |
{- "external_id": "12345",
- "name": "Produit mensuel",
- "quantity": 2,
- "price": 19.99,
- "tax": 0.2
}{- "data": {
- "id": 0,
- "uuid": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "end_date": "2019-08-24T14:15:22Z",
- "engaged_date": "2019-08-24T14:15:22Z",
- "auto_pause_at": "2019-08-24T14:15:22Z",
- "start_date": "2019-08-24T14:15:22Z",
- "active": true,
- "paused": true,
- "next_billing": "2019-08-24T14:15:22Z",
- "update_transporter_at": "2019-08-24T14:15:22Z",
- "relay": { },
- "graceMonths": 0,
- "retry_link": "string",
- "pending_payment": {
- "order_id": 0,
- "amount": 0.1,
- "currency": "string",
- "retry_link": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "next_try": "2019-08-24T14:15:22Z"
}, - "interval": "string",
- "interval_count": 0,
- "switch_plan_uuid": "string",
- "switch_plan_date": "2019-08-24T14:15:22Z",
- "referrer": "string",
- "address": {
- "id": 0,
- "user_id": 0,
- "company_name": "string",
- "address": "string",
- "address1": "string",
- "postcode": "string",
- "city": "string",
- "phone": "string",
- "first_name": "string",
- "last_name": "string",
- "region_id": 0,
- "division": "string",
- "division_name": "string",
- "external_id": "string",
- "deletable": true,
- "country": {
- "id": 0,
- "name": "string",
- "alphaCode": "string"
}
}, - "user_uuid": "string",
- "user_id": 0,
- "email": "string",
- "display_interval": "string",
- "display_content": "string",
- "external_fingerprint": "string",
- "content": [
- {
- "external_id": "string",
- "external_id_with_customizations": "string",
- "quantity": 0,
- "product_id": 0,
- "subscription_id": 0,
- "customizations": [
- null
]
}
]
}
}Permet de récupérer une liste d'abonnements avec différents filtres et options de tri. Sans paramètre sort, la liste est triée par id croissant (plus ancien en premier).
| filter[activated] | boolean Filtre par abonnements activés. |
| filter[canceled] | boolean Filtre par abonnements annulés. |
| filter[created_at_before] | string <date> Example: filter[created_at_before]=2023-01-01 Filtre par date de création avant la date spécifiée. |
| filter[created_at_after] | string <date> Example: filter[created_at_after]=2023-01-01 Filtre par date de création après la date spécifiée. |
| filter[updated_at_before] | string <date> Example: filter[updated_at_before]=2023-01-01 Filtre par date de mise à jour avant la date spécifiée. |
| filter[updated_at_after] | string <date> Example: filter[updated_at_after]=2023-01-01 Filtre par date de mise à jour après la date spécifiée. |
| filter[canceled_since_before] | string <date> Example: filter[canceled_since_before]=2023-01-01 Filtre par date d'annulation avant la date spécifiée. |
| filter[canceled_since_after] | string <date> Example: filter[canceled_since_after]=2023-01-01 Filtre par date d'annulation après la date spécifiée. |
| filter[expired] | boolean Filtre par abonnements expirés. |
| filter[in_grace_period] | boolean Filtre par abonnements en période de grâce. |
| filter[engaged_before] | string <date> Example: filter[engaged_before]=2023-01-01 Filtre par date d'engagement avant la date spécifiée. |
| filter[engaged_after] | string <date> Example: filter[engaged_after]=2023-01-01 Filtre par date d'engagement après la date spécifiée. |
| filter[next_billing_before] | string <date> Example: filter[next_billing_before]=2023-01-01 Filtre par date de prochaine facturation avant la date spécifiée. |
| filter[next_billing_after] | string <date> Example: filter[next_billing_after]=2023-01-01 Filtre par date de prochaine facturation après la date spécifiée. |
| filter[end_date_before] | string <date> Example: filter[end_date_before]=2023-01-01 Filtre par date de fin d'abonnement avant la date spécifiée. |
| filter[end_date_after] | string <date> Example: filter[end_date_after]=2023-01-01 Filtre par date de fin d'abonnement après la date spécifiée. |
| filter[subscriptions_by_email] | string <email> Example: filter[subscriptions_by_email]=user@example.com Filtre par adresse e-mail. |
| filter[plan_id] | string <= 255 characters Example: filter[plan_id]=12 Filtre par ID (numérique) du plan, correspondance exacte. |
| filter[customer_id] | string <= 255 characters Example: filter[customer_id]=550e8400-e29b-41d4-a716-446655440000 Filtre par ID de client. |
| filter[interval] | string Example: filter[interval]=month Filtre par intervalle de facturation (correspondance partielle, insensible à la casse). |
| filter[interval_count] | integer Example: filter[interval_count]=1 Filtre par nombre d'intervalles (correspondance exacte). |
| sort | string Enum: "plan_id" "customer_id" "canceled_at" "active" "start_date" "first_renewal_date" "end_date" "created_at" "updated_at" "grace_period" "grace_months" "auto_pause_at" "engaged_date" "gift_activation_code" "update_transporter_at" "transporter_id" "next_transporter_id" "next_coupon_id" "next_billing" "interval" "interval_count" "-plan_id" "-customer_id" "-canceled_at" "-active" "-start_date" "-first_renewal_date" "-end_date" "-created_at" "-updated_at" "-grace_period" "-grace_months" "-auto_pause_at" "-engaged_date" "-gift_activation_code" "-update_transporter_at" "-transporter_id" "-next_transporter_id" "-next_coupon_id" "-next_billing" "-interval" "-interval_count" Example: sort=-created_at Trier les résultats (préfixer par - pour un tri descendant). Tri par défaut : |
{- "data": [
- {
- "id": 0,
- "uuid": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "end_date": "2019-08-24T14:15:22Z",
- "engaged_date": "2019-08-24T14:15:22Z",
- "auto_pause_at": "2019-08-24T14:15:22Z",
- "start_date": "2019-08-24T14:15:22Z",
- "active": true,
- "paused": true,
- "next_billing": "2019-08-24T14:15:22Z",
- "update_transporter_at": "2019-08-24T14:15:22Z",
- "relay": { },
- "graceMonths": 0,
- "retry_link": "string",
- "pending_payment": {
- "order_id": 0,
- "amount": 0.1,
- "currency": "string",
- "retry_link": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "next_try": "2019-08-24T14:15:22Z"
}, - "interval": "string",
- "interval_count": 0,
- "switch_plan_uuid": "string",
- "switch_plan_date": "2019-08-24T14:15:22Z",
- "referrer": "string",
- "address": {
- "id": 0,
- "user_id": 0,
- "company_name": "string",
- "address": "string",
- "address1": "string",
- "postcode": "string",
- "city": "string",
- "phone": "string",
- "first_name": "string",
- "last_name": "string",
- "region_id": 0,
- "division": "string",
- "division_name": "string",
- "external_id": "string",
- "deletable": true,
- "country": {
- "id": 0,
- "name": "string",
- "alphaCode": "string"
}
}, - "user_uuid": "string",
- "user_id": 0,
- "email": "string",
- "display_interval": "string",
- "display_content": "string",
- "external_fingerprint": "string",
- "content": [
- {
- "external_id": "string",
- "external_id_with_customizations": "string",
- "quantity": 0,
- "product_id": 0,
- "subscription_id": 0,
- "customizations": [
- null
]
}
]
}
], - "links": {
- "first": "string",
- "last": "string",
- "prev": "string",
- "next": "string"
}, - "meta": {
- "current_page": 0,
- "from": 0,
- "last_page": 0,
- "links": [
- {
- "url": "string",
- "label": "string",
- "active": true
}
], - "path": "string",
- "per_page": 0,
- "to": 0,
- "total": 0
}
}Récupère la liste de tous les bons de livraison de l'application. Les filtres exacts acceptent plusieurs valeurs séparées par des virgules (filter[order_id]=12,13).
| filter[uuid] | string Filtrer par UUID du bon de livraison. |
| filter[subscription_uuid] | string Filtrer par UUID de la souscription associée. |
| filter[address_id] | integer Filtrer par ID de l'adresse. |
| filter[phone] | string Filtrer par numéro de téléphone. |
| filter[tracking_number] | string Filtrer par numéro de suivi. |
| filter[customer_id] | string Filtrer par ID du client. |
| filter[transporter_reference] | string Filtrer par référence du transporteur. |
| filter[transporter_id] | integer Filtrer par ID du transporteur. |
| filter[first_name] | string Filtrer par prénom. |
| filter[last_name] | string Filtrer par nom de famille. |
| filter[postcode] | string Filtrer par code postal. |
| filter[address1] | string Filtrer par adresse ligne 1. |
| filter[address2] | string Filtrer par adresse ligne 2. |
| filter[city] | string Filtrer par ville. |
| filter[country] | string Filtrer par pays. |
| filter[mail] | string <= 255 characters Filtrer par adresse e-mail (correspondance exacte). |
| filter[transporter_name] | string Filtrer par nom du transporteur. |
| filter[plan] | string Filtrer par nom du plan. |
| filter[iso_code] | string Filtrer par code ISO du pays. |
| filter[relay_id] | string Filtrer par ID du relais (chaîne, les identifiants de point relais ne sont pas tous numériques). |
| filter[orderable_name] | string Filtrer par nom de l'élément commandable. |
| filter[orderable_id] | string Filtrer par ID de l'élément commandable. |
| filter[orderable_type] | string Filtrer par type de l'élément commandable. |
| filter[order_id] | integer Filtrer par ID de commande. |
| filter[tracking_url] | string Filtrer par URL de suivi. |
| filter[quantity] | string Filtrer par quantité. |
| filter[ref] | string Filtrer par référence. |
| filter[status] | string Filtrer par statut du bon de livraison. |
| filter[division] | string Filtrer par état/province. |
| filter[company_name] | string Filtrer par nom de l'entreprise. |
| filter[created_at_before] | string <date-time> Filtrer par date de création antérieure. |
| filter[created_at_after] | string <date-time> Filtrer par date de création ultérieure. |
| filter[updated_at_before] | string <date-time> Filtrer par date de mise à jour antérieure. |
| filter[updated_at_after] | string <date-time> Filtrer par date de mise à jour ultérieure. |
| filter[scheduled_at_before] | string <date-time> Filtrer par date prévue antérieure. |
| filter[scheduled_at_after] | string <date-time> Filtrer par date prévue ultérieure. |
| sort | string Enum: "uuid" "subscription_uuid" "address_id" "phone" "tracking_number" "customer_id" "transporter_reference" "transporter_id" "created_at" "updated_at" "first_name" "last_name" "postcode" "address1" "address2" "city" "country" "mail" "transporter_name" "plan" "iso_code" "relay" "relay_id" "orderable_name" "orderable_id" "orderable_type" "order_id" "scheduled_at" "tracking_url" "quantity" "ref" "status" "division" "company_name" "-uuid" "-subscription_uuid" "-address_id" "-phone" "-tracking_number" "-customer_id" "-transporter_reference" "-transporter_id" "-created_at" "-updated_at" "-first_name" "-last_name" "-postcode" "-address1" "-address2" "-city" "-country" "-mail" "-transporter_name" "-plan" "-iso_code" "-relay" "-relay_id" "-orderable_name" "-orderable_id" "-orderable_type" "-order_id" "-scheduled_at" "-tracking_url" "-quantity" "-ref" "-status" "-division" "-company_name" Example: sort=-created_at Trier les résultats (préfixer par - pour un tri descendant) |
{- "data": [
- {
- "tenant_id": 0,
- "id": 0,
- "uuid": "string",
- "address": {
- "id": 0,
- "user_id": 0,
- "company_name": "string",
- "address": "string",
- "address1": "string",
- "postcode": "string",
- "city": "string",
- "phone": "string",
- "first_name": "string",
- "last_name": "string",
- "region_id": 0,
- "division": "string",
- "division_name": "string",
- "external_id": "string",
- "deletable": true,
- "country": {
- "id": 0,
- "name": "string",
- "alphaCode": "string"
}
}, - "transporter": {
- "id": 0,
- "countries": [
- {
- "id": 0,
- "name": "string"
}
], - "plan_blacklisted": [
- {
- "id": 0,
- "name": "string"
}
], - "name": "string",
- "description": "string",
- "price": 0,
- "gift": true,
- "active": true,
- "shipped_count": 0,
- "type": "string",
- "relayOptions": {
- "relayKey": "string",
- "driver": "MondialRelay",
- "relayOptions": { }
}
}, - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "scheduled_at": "2019-08-24T14:15:22Z",
- "tracking_link": "string",
- "subscription_uuid": "string",
- "address_id": 0,
- "phone": "string",
- "status": "created",
- "tracking_number": "string",
- "customer_id": "string",
- "supply_id": "string",
- "transporter_id": 0,
- "first_name": "string",
- "last_name": "string",
- "postcode": "string",
- "address1": "string",
- "address2": "string",
- "division": "string",
- "city": "string",
- "country": "string",
- "mail": "string",
- "subscriptions_count": "string",
- "transporter_name": "string",
- "shipped_count": "string",
- "site_name": "string",
- "options": "string",
- "iso_code": "string",
- "relay": { },
- "relay_id": "string",
- "orderable_name": "string",
- "orderable_id": "string",
- "orderable_type": "App\\Product",
- "order_id": 0,
- "ref": "string",
- "customization_products": [
- {
- "customizationId": 0,
- "productId": 0,
- "quantity": 0,
- "ref": "string"
}
], - "extra_customization_products": [
- {
- "customizationId": 0,
- "productId": 0,
- "quantity": 0,
- "ref": "string"
}
]
}
], - "links": {
- "first": "string",
- "last": "string",
- "prev": "string",
- "next": "string"
}, - "meta": {
- "current_page": 0,
- "from": 0,
- "last_page": 0,
- "links": [
- {
- "url": "string",
- "label": "string",
- "active": true
}
], - "path": "string",
- "per_page": 0,
- "to": 0,
- "total": 0
}
}Récupère les détails d'un bon de livraison. data est une liste (un bon de livraison peut porter plusieurs lignes partageant le même UUID).
| id required | string UUID du bon de livraison (champ |
{- "data": [
- {
- "tenant_id": 0,
- "id": 0,
- "uuid": "string",
- "address": {
- "id": 0,
- "user_id": 0,
- "company_name": "string",
- "address": "string",
- "address1": "string",
- "postcode": "string",
- "city": "string",
- "phone": "string",
- "first_name": "string",
- "last_name": "string",
- "region_id": 0,
- "division": "string",
- "division_name": "string",
- "external_id": "string",
- "deletable": true,
- "country": {
- "id": 0,
- "name": "string",
- "alphaCode": "string"
}
}, - "transporter": {
- "id": 0,
- "countries": [
- {
- "id": 0,
- "name": "string"
}
], - "plan_blacklisted": [
- {
- "id": 0,
- "name": "string"
}
], - "name": "string",
- "description": "string",
- "price": 0,
- "gift": true,
- "active": true,
- "shipped_count": 0,
- "type": "string",
- "relayOptions": {
- "relayKey": "string",
- "driver": "MondialRelay",
- "relayOptions": { }
}
}, - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "scheduled_at": "2019-08-24T14:15:22Z",
- "tracking_link": "string",
- "subscription_uuid": "string",
- "address_id": 0,
- "phone": "string",
- "status": "created",
- "tracking_number": "string",
- "customer_id": "string",
- "supply_id": "string",
- "transporter_id": 0,
- "first_name": "string",
- "last_name": "string",
- "postcode": "string",
- "address1": "string",
- "address2": "string",
- "division": "string",
- "city": "string",
- "country": "string",
- "mail": "string",
- "subscriptions_count": "string",
- "transporter_name": "string",
- "shipped_count": "string",
- "site_name": "string",
- "options": "string",
- "iso_code": "string",
- "relay": { },
- "relay_id": "string",
- "orderable_name": "string",
- "orderable_id": "string",
- "orderable_type": "App\\Product",
- "order_id": 0,
- "ref": "string",
- "customization_products": [
- {
- "customizationId": 0,
- "productId": 0,
- "quantity": 0,
- "ref": "string"
}
], - "extra_customization_products": [
- {
- "customizationId": 0,
- "productId": 0,
- "quantity": 0,
- "ref": "string"
}
]
}
]
}Permet de le considérer comme expédié, et associer un numéro et un lien de suivi.
Un tracking_number est enregistré sur le bon de livraison (et renvoyé dans tracking_number), le lien de suivi est construit à partir du transporteur et le statut passe à shipped.
La réponse renvoie les lignes du bon relues après la mise à jour, dans une liste data.
| id required | string UUID du bon de livraison (champ |
| tracking_number | string or null <= 255 characters Numéro de suivi à associer au bon de livraison. Il est enregistré et renvoyé dans le champ |
| notification | boolean Default: false Facultatif. Envoyer au client la notification d'expédition avec le lien de suivi (faux par défaut). Lu uniquement avec |
| status | string or null Enum: "created" "pending" "shipped" "delivered" "scheduled" "canceled" Nouveau statut du BL |
{- "tracking_number": "string",
- "notification": false,
- "status": "created"
}{- "data": [
- {
- "tenant_id": 0,
- "id": 0,
- "uuid": "string",
- "address": {
- "id": 0,
- "user_id": 0,
- "company_name": "string",
- "address": "string",
- "address1": "string",
- "postcode": "string",
- "city": "string",
- "phone": "string",
- "first_name": "string",
- "last_name": "string",
- "region_id": 0,
- "division": "string",
- "division_name": "string",
- "external_id": "string",
- "deletable": true,
- "country": {
- "id": 0,
- "name": "string",
- "alphaCode": "string"
}
}, - "transporter": {
- "id": 0,
- "countries": [
- {
- "id": 0,
- "name": "string"
}
], - "plan_blacklisted": [
- {
- "id": 0,
- "name": "string"
}
], - "name": "string",
- "description": "string",
- "price": 0,
- "gift": true,
- "active": true,
- "shipped_count": 0,
- "type": "string",
- "relayOptions": {
- "relayKey": "string",
- "driver": "MondialRelay",
- "relayOptions": { }
}
}, - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "scheduled_at": "2019-08-24T14:15:22Z",
- "tracking_link": "string",
- "subscription_uuid": "string",
- "address_id": 0,
- "phone": "string",
- "status": "created",
- "tracking_number": "string",
- "customer_id": "string",
- "supply_id": "string",
- "transporter_id": 0,
- "first_name": "string",
- "last_name": "string",
- "postcode": "string",
- "address1": "string",
- "address2": "string",
- "division": "string",
- "city": "string",
- "country": "string",
- "mail": "string",
- "subscriptions_count": "string",
- "transporter_name": "string",
- "shipped_count": "string",
- "site_name": "string",
- "options": "string",
- "iso_code": "string",
- "relay": { },
- "relay_id": "string",
- "orderable_name": "string",
- "orderable_id": "string",
- "orderable_type": "App\\Product",
- "order_id": 0,
- "ref": "string",
- "customization_products": [
- {
- "customizationId": 0,
- "productId": 0,
- "quantity": 0,
- "ref": "string"
}
], - "extra_customization_products": [
- {
- "customizationId": 0,
- "productId": 0,
- "quantity": 0,
- "ref": "string"
}
]
}
]
}Supprime un élément du bon de livraison en utilisant son identifiant numérique id (et non l'UUID utilisé par GET et POST).
| id required | integer Identifiant numérique ( |
{- "data": {
- "success": true
}
}Permet de récupérer les indicateurs de performance avec différents filtres.
| filter[created_at_before] | string <date> Example: filter[created_at_before]=2023-01-01 Filtre les KPIs créés avant cette date |
| filter[created_at_after] | string <date> Example: filter[created_at_after]=2023-01-01 Filtre les KPIs créés après cette date |
| sort | string Enum: "created_at" "-created_at" Tri des résultats (prefix - pour ordre décroissant) |
{- "data": [
- {
- "users_subscribed": 0,
- "subscriptions": 0,
- "sum_subscriptions": 0,
- "purchases": 0,
- "sum_purchases": 0,
- "subscriptions_paused": 0,
- "subscriptions_restarted": 0,
- "subscription_grace_total": 0,
- "subscription_grace_ending": 0,
- "lives": 0,
- "active_expired": 0,
- "source_updated_count": 0,
- "voided_unsub_voucher_count": 0,
- "voided_unsub_postpone_count": 0,
- "amount_utm": 0,
- "amount_referral": 0,
- "amount_regain": 0,
- "amount_retry": 0,
- "amount_renew": 0,
- "amount_backend": 0,
- "amount_unsub_voucher": 0,
- "amount_unsub_postpone": 0,
- "amount_reactivation_offer": 0,
- "count_utm": 0,
- "count_referral": 0,
- "count_regain": 0,
- "count_retry": 0,
- "count_renew": 0,
- "count_backend": 0,
- "count_unsub_voucher": 0,
- "count_unsub_postpone": 0,
- "count_reactivation_offer": 0,
- "count_followup": 0,
- "amount_followup": 0,
- "amount_renew_failed": 0,
- "count_renew_failed": 0,
- "created_at": "2019-08-24T14:15:22Z"
}
], - "links": {
- "first": "string",
- "last": "string",
- "prev": "string",
- "next": "string"
}, - "meta": {
- "current_page": 0,
- "from": 0,
- "last_page": 0,
- "links": [
- {
- "url": "string",
- "label": "string",
- "active": true
}
], - "path": "string",
- "per_page": 0,
- "to": 0,
- "total": 0
}
}Cette route permet de lister des adresses.
| filter[created_at_before] | string <date> Example: filter[created_at_before]=2023-01-01 Date de création avant laquelle filtrer. |
| filter[created_at_after] | string <date> Example: filter[created_at_after]=2023-01-01 Date de création après laquelle filtrer. |
| filter[updated_at_before] | string <date> Example: filter[updated_at_before]=2023-01-01 Date de mise à jour avant laquelle filtrer. |
| filter[updated_at_after] | string <date> Example: filter[updated_at_after]=2023-01-01 Date de mise à jour après laquelle filtrer. |
| filter[by_customer_uuid] | string <= 255 characters Example: filter[by_customer_uuid]=550e8400-e29b-41d4-a716-446655440000 Filtrer par UUID du client. |
| filter[region_id] | integer Example: filter[region_id]=1 Filtrer par ID de la région. |
| filter[user_id] | integer Example: filter[user_id]=123 Filtrer par ID de l'utilisateur. |
| filter[address] | string <= 32 characters Example: filter[address]=123 Main St Filtrer par adresse. |
| filter[address1] | string <= 32 characters Example: filter[address1]=123 Main St Filtrer par adresse 1. |
| filter[postcode] | string <= 255 characters Example: filter[postcode]=75001 Filtrer par code postal. |
| filter[city] | string <= 255 characters Example: filter[city]=Paris Filtrer par ville. |
| filter[first_name] | string <= 255 characters Example: filter[first_name]=John Filtrer par prénom. |
| filter[last_name] | string <= 255 characters Example: filter[last_name]=Doe Filtrer par nom. |
| filter[company_name] | string <= 255 characters Example: filter[company_name]=Acme Corp Filtrer par nom de la société. |
| filter[division] | string <= 255 characters Example: filter[division]=Ile-de-France Filtrer par état. |
| filter[phone] | string <= 255 characters Example: filter[phone]=+33123456789 Filtrer par numéro de téléphone. |
| sort | string Enum: "region_id" "user_id" "address" "address1" "postcode" "city" "first_name" "last_name" "company_name" "division" "phone" "created_at" "updated_at" "-region_id" "-user_id" "-address" "-address1" "-postcode" "-city" "-first_name" "-last_name" "-company_name" "-division" "-phone" "-created_at" "-updated_at" Example: sort=-created_at Trier les résultats (préfixer par - pour un tri descendant) |
{- "data": [
- {
- "id": 0,
- "user_id": 0,
- "company_name": "string",
- "address": "string",
- "address1": "string",
- "postcode": "string",
- "city": "string",
- "phone": "string",
- "first_name": "string",
- "last_name": "string",
- "region_id": 0,
- "division": "string",
- "division_name": "string",
- "external_id": "string",
- "deletable": true,
- "country": {
- "id": 0,
- "name": "string",
- "alphaCode": "string"
}
}
], - "links": {
- "first": "string",
- "last": "string",
- "prev": "string",
- "next": "string"
}, - "meta": {
- "current_page": 0,
- "from": 0,
- "last_page": 0,
- "links": [
- {
- "url": "string",
- "label": "string",
- "active": true
}
], - "path": "string",
- "per_page": 0,
- "to": 0,
- "total": 0
}
}Cette route permet de créer une adresse pour un client du site.
Le client (user_id) doit appartenir au site du jeton et le pays (region_id) doit être ouvert sur le site.
Le code postal est contrôlé selon le pays ; le téléphone doit être un mobile valide du pays si le contrôle des numéros est actif sur le site.
Pour un pays que la bibliothèque de numérotation ne connaît pas (Terres australes françaises par exemple), le téléphone n'est pas contrôlé et il est enregistré tel que saisi.
Les champs texte sont normalisés (majuscules, sans accents ni ponctuation). Tout champ non listé est ignoré.
La création déclenche le webhook created_address.
| user_id required | integer ID du client (champ |
| region_id required | integer ID du pays, parmi les pays ouverts sur le site. |
| address required | string <= 32 characters |
| address1 | string or null <= 32 characters Complément d'adresse. |
| postcode required | string <= 20 characters Code postal, au format du pays. |
| city required | string <= 255 characters |
| first_name required | string <= 255 characters |
| last_name required | string <= 255 characters |
| company_name | string or null <= 255 characters |
| phone required | string <= 30 characters Téléphone mobile, au format national ou international. |
| division | string or null <= 10 characters Code de subdivision (état). Requis pour les États-Unis, parmi les codes d'État (par exemple NY). |
{- "user_id": 123,
- "region_id": 1,
- "address": "12 rue de la Paix",
- "address1": "Bâtiment B",
- "postcode": "75002",
- "city": "Paris",
- "first_name": "Jeanne",
- "last_name": "Martin",
- "company_name": "Acme",
- "phone": "0612345678",
- "division": "NY"
}{- "data": {
- "id": 0,
- "user_id": 0,
- "company_name": "string",
- "address": "string",
- "address1": "string",
- "postcode": "string",
- "city": "string",
- "phone": "string",
- "first_name": "string",
- "last_name": "string",
- "region_id": 0,
- "division": "string",
- "division_name": "string",
- "external_id": "string",
- "deletable": true,
- "country": {
- "id": 0,
- "name": "string",
- "alphaCode": "string"
}
}
}Cette route permet de mettre à jour une adresse.
| id required | integer ID de l'adresse à mettre à jour. |
| address required | string <= 32 characters |
| address1 | string or null <= 32 characters |
| postcode required | string <= 20 characters |
| city required | string <= 255 characters |
| first_name required | string <= 255 characters |
| last_name required | string <= 255 characters |
| company_name | string or null <= 255 characters |
| phone required | string <= 30 characters |
| region_id required | integer |
| division | string or null <= 10 characters Code de subdivision (état/province). Requis pour les États-Unis. |
{- "address": "string",
- "address1": "string",
- "postcode": "string",
- "city": "string",
- "first_name": "string",
- "last_name": "string",
- "company_name": "string",
- "phone": "string",
- "region_id": 0,
- "division": "string"
}{- "data": {
- "id": 0,
- "user_id": 0,
- "company_name": "string",
- "address": "string",
- "address1": "string",
- "postcode": "string",
- "city": "string",
- "phone": "string",
- "first_name": "string",
- "last_name": "string",
- "region_id": 0,
- "division": "string",
- "division_name": "string",
- "external_id": "string",
- "deletable": true,
- "country": {
- "id": 0,
- "name": "string",
- "alphaCode": "string"
}
}
}Cette route permet de récupérer une adresse.
| id required | integer ID de l'adresse à récupérer. |
{- "data": {
- "id": 0,
- "user_id": 0,
- "company_name": "string",
- "address": "string",
- "address1": "string",
- "postcode": "string",
- "city": "string",
- "phone": "string",
- "first_name": "string",
- "last_name": "string",
- "region_id": 0,
- "division": "string",
- "division_name": "string",
- "external_id": "string",
- "deletable": true,
- "country": {
- "id": 0,
- "name": "string",
- "alphaCode": "string"
}
}
}Cette route permet de supprimer une adresse. Une adresse qui n'est pas supprimable (champ deletable à false) répond 403.
| id required | integer ID de l'adresse à supprimer. |
{- "data": {
- "success": true
}
}Cette route permet de récupérer une liste d'utilisateurs.
| filter[created_at_before] | string <date> Example: filter[created_at_before]=2023-01-01 Date de création avant laquelle filtrer. |
| filter[created_at_after] | string <date> Example: filter[created_at_after]=2023-01-01 Date de création après laquelle filtrer. |
| filter[updated_at_before] | string <date> Example: filter[updated_at_before]=2023-01-01 Date de mise à jour avant laquelle filtrer. |
| filter[updated_at_after] | string <date> Example: filter[updated_at_after]=2023-01-01 Date de mise à jour après laquelle filtrer. |
| filter[uuid] | string Example: filter[uuid]=550e8400-e29b-41d4-a716-446655440000 Filtrer par UUID de l'utilisateur. |
| filter[id] | integer Example: filter[id]=123 Filtrer par ID de l'utilisateur. |
| filter[email] | string Example: filter[email]=user@example.com Filtrer par adresse e-mail de l'utilisateur. |
| filter[external_id] | string Example: filter[external_id]=ext_12345 Filtrer par ID externe de l'utilisateur. |
| filter[disabled] | boolean Filtrer par statut de désactivation de l'utilisateur. |
| filter[referrer] | string Example: filter[referrer]=referral_code_123 Filtrer par référent de l'utilisateur. |
| sort | string Enum: "id" "uuid" "email" "created_at" "updated_at" "-id" "-uuid" "-email" "-created_at" "-updated_at" Example: sort=-created_at Trier les résultats (préfixer par - pour un tri descendant) |
{- "data": [
- {
- "id": 0,
- "email": "user@example.com",
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "refp": "string",
- "has_active_subscription": true,
- "info": { },
- "external_id": "string",
- "addresses": [
- {
- "id": 0,
- "user_id": 0,
- "company_name": "string",
- "address": "string",
- "address1": "string",
- "postcode": "string",
- "city": "string",
- "phone": "string",
- "first_name": "string",
- "last_name": "string",
- "region_id": 0,
- "division": "string",
- "division_name": "string",
- "external_id": "string",
- "deletable": true,
- "country": {
- "id": 0,
- "name": "string",
- "alphaCode": "string"
}
}
], - "customerRevenue": "1,234.56",
- "customerRefund": "0.00",
- "totalTransactionsSuccess": 0
}
], - "links": {
- "first": "string",
- "last": "string",
- "prev": "string",
- "next": "string"
}, - "meta": {
- "current_page": 0,
- "from": 0,
- "last_page": 0,
- "links": [
- {
- "url": "string",
- "label": "string",
- "active": true
}
], - "path": "string",
- "per_page": 0,
- "to": 0,
- "total": 0
}
}Cette route permet de créer un nouveau compte utilisateur. Si l'adresse email existe déjà sur le site, la réponse contient l'utilisateur associé (statut 200, external_id n'est pas modifié). Dans le cas contraire, le compte est créé et renvoyé (statut 201). Le client est enveloppé dans data.
| email required | string <email> Adresse e-mail de l'utilisateur |
| external_id | string or integer or null <= 255 characters Identifiant externe facultatif à enregistrer (chaîne ou entier, 255 caractères max), utilisé seulement à la création |
{- "email": "user@example.com",
- "external_id": "some_external_id"
}{- "data": {
- "id": 0,
- "email": "user@example.com",
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "refp": "string",
- "has_active_subscription": true,
- "info": { },
- "external_id": "string",
- "addresses": [
- {
- "id": 0,
- "user_id": 0,
- "company_name": "string",
- "address": "string",
- "address1": "string",
- "postcode": "string",
- "city": "string",
- "phone": "string",
- "first_name": "string",
- "last_name": "string",
- "region_id": 0,
- "division": "string",
- "division_name": "string",
- "external_id": "string",
- "deletable": true,
- "country": {
- "id": 0,
- "name": "string",
- "alphaCode": "string"
}
}
], - "customerRevenue": "1,234.56",
- "customerRefund": "0.00",
- "totalTransactionsSuccess": 0
}
}| id required | string <uuid> UUID de l'utilisateur (l'identifiant numérique n'est pas accepté) |
{- "data": {
- "id": 0,
- "email": "user@example.com",
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "refp": "string",
- "has_active_subscription": true,
- "info": { },
- "external_id": "string",
- "addresses": [
- {
- "id": 0,
- "user_id": 0,
- "company_name": "string",
- "address": "string",
- "address1": "string",
- "postcode": "string",
- "city": "string",
- "phone": "string",
- "first_name": "string",
- "last_name": "string",
- "region_id": 0,
- "division": "string",
- "division_name": "string",
- "external_id": "string",
- "deletable": true,
- "country": {
- "id": 0,
- "name": "string",
- "alphaCode": "string"
}
}
], - "customerRevenue": "1,234.56",
- "customerRefund": "0.00",
- "totalTransactionsSuccess": 0
}
}| filter[order_id] | integer Example: filter[order_id]=456 Filtrer par ID de la commande. |
| filter[gateway] | string Example: filter[gateway]=MollieCreditCard Filtrer par moyen de paiement (clé de classe, correspondance exacte), par exemple |
| filter[transaction_id] | string Example: filter[transaction_id]=ch_123456 Filtrer par identifiant de la transaction. |
| filter[detail] | string Filtrer par détail de la transaction (correspondance exacte). |
| filter[token] | string Filtrer par jeton de la transaction. |
| filter[paid] | boolean Example: filter[paid]=true Filtrer par transactions payées. |
| filter[amount] | number Example: filter[amount]=29.99 Filtrer par montant (correspondance exacte). |
| filter[refunded] | boolean Filtrer par transactions remboursées. |
| filter[user_id] | integer Example: filter[user_id]=123 Filtrer par ID de l'utilisateur. |
| filter[failure_code] | string <= 255 characters Example: filter[failure_code]=mandate_revoked Filtrer par code d'échec de la transaction (correspondance exacte). Le code est celui qu'écrit la passerelle : code de refus Stripe ( |
| filter[invoice_id] | integer Example: filter[invoice_id]=100 Filtrer par ID de la facture. |
| filter[created_at_before] | string <date> Example: filter[created_at_before]=2023-01-01 Filtrer par date de création avant. |
| filter[created_at_after] | string <date> Example: filter[created_at_after]=2023-01-01 Filtrer par date de création après. |
| filter[updated_at_before] | string <date> Example: filter[updated_at_before]=2023-01-01 Filtrer par date de mise à jour avant. |
| filter[updated_at_after] | string <date> Example: filter[updated_at_after]=2023-01-01 Filtrer par date de mise à jour après. |
| filter[by_customer_uuid] | string <= 255 characters Example: filter[by_customer_uuid]=550e8400-e29b-41d4-a716-446655440000 Filtrer par UUID du client. |
| filter[source_id] | string <= 255 characters Example: filter[source_id]=src_12345 Filtrer par ID de la source. |
| filter[amount_refunded] | number Example: filter[amount_refunded]=10.5 Filtrer par montant remboursé. |
| filter[payment_intent_id] | string <= 255 characters Example: filter[payment_intent_id]=card_declined Filtrer par ID de l'intention de paiement. |
| sort | string Enum: "order_id" "gateway" "transaction_id" "detail" "token" "paid" "amount" "refunded" "source_id" "failure_code" "invoice_id" "amount_refunded" "user_id" "payment_intent_id" "created_at" "updated_at" "-order_id" "-gateway" "-transaction_id" "-detail" "-token" "-paid" "-amount" "-refunded" "-source_id" "-failure_code" "-invoice_id" "-amount_refunded" "-user_id" "-payment_intent_id" "-created_at" "-updated_at" Example: sort=-created_at Trier les résultats (préfixer par - pour un tri descendant) |
{- "data": [
- {
- "order_id": 0,
- "order": {
- "order_id": 0,
- "status": "string",
- "items": [
- { }
], - "revenue": "string",
- "refunded": "string",
- "customerRevenue": "string",
- "customerRefund": "string",
- "totalTransactionsSuccess": 0,
- "subTransactionsSuccess": 0,
- "next_billing": "2019-08-24T14:15:22Z",
- "countTransactions": 0,
- "choices": null
}, - "gateway": "MollieCreditCard",
- "transaction_id": "string",
- "detail": "string",
- "token": "string",
- "tenant_id": 0,
- "paid": true,
- "amount": "string",
- "refunded": true,
- "source_id": "string",
- "failure_message": "string",
- "failure_code": "string",
- "invoice_id": 0,
- "amount_refunded": "string",
- "statement_descriptor": "string",
- "user_id": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "payment_intent_id": "string"
}
], - "links": {
- "first": "string",
- "last": "string",
- "prev": "string",
- "next": "string"
}, - "meta": {
- "current_page": 0,
- "from": 0,
- "last_page": 0,
- "links": [
- {
- "url": "string",
- "label": "string",
- "active": true
}
], - "path": "string",
- "per_page": 0,
- "to": 0,
- "total": 0
}
}| transaction_id required | string L'identifiant de la transaction à récupérer (champ |
{- "data": {
- "order_id": 0,
- "order": {
- "order_id": 0,
- "status": "string",
- "items": [
- { }
], - "revenue": "string",
- "refunded": "string",
- "customerRevenue": "string",
- "customerRefund": "string",
- "totalTransactionsSuccess": 0,
- "subTransactionsSuccess": 0,
- "next_billing": "2019-08-24T14:15:22Z",
- "countTransactions": 0,
- "choices": null
}, - "gateway": "MollieCreditCard",
- "transaction_id": "string",
- "detail": "string",
- "token": "string",
- "tenant_id": 0,
- "paid": true,
- "amount": "string",
- "refunded": true,
- "source_id": "string",
- "failure_message": "string",
- "failure_code": "string",
- "invoice_id": 0,
- "amount_refunded": "string",
- "statement_descriptor": "string",
- "user_id": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "payment_intent_id": "string"
}
}Rembourse tout ou partie d'une transaction payée. La réponse renvoie la transaction, enveloppée dans data.
Un remboursement refusé (transaction échouée, montant supérieur au restant, solde insuffisant, refus de Stripe) répond 422 avec le motif dans errors.error. Un refus d'une autre passerelle peut répondre 500.
| transaction_id required | string L'identifiant de la transaction à rembourser. |
| amount required | number >= 0.01 Le montant à rembourser (numérique, minimum 0.01). |
{- "amount": 0.01
}{- "data": {
- "order_id": 0,
- "order": {
- "order_id": 0,
- "status": "string",
- "items": [
- { }
], - "revenue": "string",
- "refunded": "string",
- "customerRevenue": "string",
- "customerRefund": "string",
- "totalTransactionsSuccess": 0,
- "subTransactionsSuccess": 0,
- "next_billing": "2019-08-24T14:15:22Z",
- "countTransactions": 0,
- "choices": null
}, - "gateway": "MollieCreditCard",
- "transaction_id": "string",
- "detail": "string",
- "token": "string",
- "tenant_id": 0,
- "paid": true,
- "amount": "string",
- "refunded": true,
- "source_id": "string",
- "failure_message": "string",
- "failure_code": "string",
- "invoice_id": 0,
- "amount_refunded": "string",
- "statement_descriptor": "string",
- "user_id": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "payment_intent_id": "string"
}
}Permet de récupérer la liste des erreurs de rebill avec différents filtres.
| filter[type] | string Enum: "api" "partial" "failed" Example: filter[type]=api Filtrer par type d'erreur |
| filter[by_subscription_uuid] | string <= 255 characters Example: filter[by_subscription_uuid]=550e8400-e29b-41d4-a716-446655440000 Filtrer par UUID de l'abonnement |
| filter[order_id] | integer Example: filter[order_id]=456 Filtrer par ID de la commande |
| filter[error_code] | integer Example: filter[error_code]=500 Filtrer par code d'erreur |
| filter[created_at_before] | string <date> Example: filter[created_at_before]=2023-01-01 Filtrer par date de création avant |
| filter[created_at_after] | string <date> Example: filter[created_at_after]=2023-01-01 Filtrer par date de création après |
| sort | string Enum: "id" "-id" "type" "-type" "order_id" "-order_id" "error_code" "-error_code" "created_at" "-created_at" "updated_at" "-updated_at" Trier les résultats (prefix - pour ordre décroissant) |
| page | integer Numéro de la page pour la pagination |
{- "data": [
- {
- "id": 0,
- "type": "api",
- "created_at": "2026-01-15 08:30:00",
- "subscription_id": "string",
- "order_id": 0,
- "error_code": 0,
- "error_message": "string",
- "status": "string",
- "subscription_url": "string",
- "order_url": "string",
- "email": "string",
- "phone": "string",
- "address": "string",
- "address1": "string",
- "postcode": "string",
- "city": "string",
- "country": "string",
- "first_name": "string",
- "last_name": "string"
}
], - "links": {
- "first": "string",
- "last": "string",
- "prev": "string",
- "next": "string"
}, - "meta": {
- "current_page": 0,
- "from": 0,
- "last_page": 0,
- "links": [
- {
- "url": "string",
- "label": "string",
- "active": true
}
], - "path": "string",
- "per_page": 0,
- "to": 0,
- "total": 0
}
}Permet de récupérer les détails d'une erreur de rebill spécifique.
| id required | integer ID de l'erreur de rebill |
{- "data": {
- "id": 0,
- "type": "api",
- "created_at": "2026-01-15 08:30:00",
- "subscription_id": "string",
- "order_id": 0,
- "error_code": 0,
- "error_message": "string",
- "status": "string",
- "subscription_url": "string",
- "order_url": "string",
- "email": "string",
- "phone": "string",
- "address": "string",
- "address1": "string",
- "postcode": "string",
- "city": "string",
- "country": "string",
- "first_name": "string",
- "last_name": "string"
}
}| filter[user_id] | integer Example: filter[user_id]=123 Filtrer par ID de l'utilisateur |
| filter[address_id] | integer Example: filter[address_id]=456 Filtrer par ID de l'adresse |
| filter[invoice_address_id] | integer Example: filter[invoice_address_id]=789 Filtrer par ID de l'adresse de facturation |
| filter[transporter_id] | integer Example: filter[transporter_id]=10 Filtrer par ID du transporteur |
| filter[status] | string Enum: "canceled" "completed" "failed" "in_creation" "in_process" "pending" "need_action" Example: filter[status]=pending Filtrer par statut de la commande. in_process : paiement en attente de la réponse de la passerelle, par exemple un renouvellement Mollie dont l'issue n'est pas encore confirmée. |
| filter[subscription_uuid] | string <= 255 characters Example: filter[subscription_uuid]=550e8400-e29b-41d4-a716-446655440000 Filtrer par UUID de l'abonnement |
| filter[invoice_id] | integer Example: filter[invoice_id]=100 Filtrer par ID de la facture |
| filter[total_paid] | number Example: filter[total_paid]=29.99 Filtrer par montant total payé |
| filter[next_try] | string <date> Example: filter[next_try]=2023-01-01 Filtrer par prochaine tentative |
| filter[created_at_before] | string <date> Example: filter[created_at_before]=2023-01-01 Filtrer par date de création avant |
| filter[created_at_after] | string <date> Example: filter[created_at_after]=2023-01-01 Filtrer par date de création après |
| filter[updated_at_before] | string <date> Example: filter[updated_at_before]=2023-01-01 Filtrer par date de mise à jour avant |
| filter[updated_at_after] | string <date> Example: filter[updated_at_after]=2023-01-01 Filtrer par date de mise à jour après |
| filter[next_try_before] | string <date> Example: filter[next_try_before]=2023-01-01 Filtrer par prochaine tentative avant |
| filter[next_try_after] | string <date> Example: filter[next_try_after]=2023-01-01 Filtrer par prochaine tentative après |
| filter[by_customer_uuid] | string <= 255 characters Example: filter[by_customer_uuid]=550e8400-e29b-41d4-a716-446655440000 Filtrer par UUID du client |
| filter[source] | string Enum: "utm" "referral" "regain" "retry" "renew" "backend" "unsub_voucher" "unsub_postpone" "reactivation_offer" "followup" "gift_conversion" Example: filter[source]=utm Filtrer par source de la commande |
| sort | string Enum: "user_id" "address_id" "invoice_address_id" "transporter_id" "status" "subscription_uuid" "invoice_id" "total_paid" "next_try" "source" "created_at" "updated_at" "-user_id" "-address_id" "-invoice_address_id" "-transporter_id" "-status" "-subscription_uuid" "-invoice_id" "-total_paid" "-next_try" "-source" "-created_at" "-updated_at" Example: sort=-created_at Trier les résultats (préfixer par - pour un tri descendant) |
| filter[prestashop_order_id] | integer Example: filter[prestashop_order_id]=500 Filtrer par correspondance commande PrestaShop |
{- "data": [
- {
- "order_id": 0,
- "user_id": 0,
- "user_uuid": "7c4d2d7d-8620-4fb3-967a-4a621082cf1f",
- "first_name": "string",
- "last_name": "string",
- "phone": "string",
- "email": "string",
- "status": "string",
- "created": "2019-08-24T14:15:22Z",
- "items": [
- {
- "id": 0,
- "price": "12,50",
- "tax": "string",
- "quantity": 0,
- "name": "string",
- "type": "string",
- "external_id": "string",
- "ref": "string"
}
], - "shipping": "string",
- "count": 0,
- "total_tax_paid": "2,08",
- "total_discount_inc": "0,00",
- "total_paid": "12,50",
- "total_shipping_paid": "4,90",
- "created_at": "2019-08-24T14:15:22Z",
- "coupon": { },
- "subscription_uuid": "string",
- "next_try": "2019-08-24T14:15:22Z",
- "retry_link": "string",
- "updated_at": "2019-08-24T14:15:22Z",
- "paid_transaction_id": "string",
- "paid_class_key": "string",
- "prestashop_order_id": 0,
- "prestashop_cart_id": 0,
- "payment_status": "paid",
- "payment_class_key": "string"
}
], - "links": {
- "first": "string",
- "last": "string",
- "prev": "string",
- "next": "string"
}, - "meta": {
- "current_page": 0,
- "from": 0,
- "last_page": 0,
- "links": [
- {
- "url": "string",
- "label": "string",
- "active": true
}
], - "path": "string",
- "per_page": 0,
- "to": 0,
- "total": 0
}
}| id required | integer ID de la commande à récupérer |
{- "data": {
- "order_id": 0,
- "user_id": 0,
- "user_uuid": "7c4d2d7d-8620-4fb3-967a-4a621082cf1f",
- "first_name": "string",
- "last_name": "string",
- "phone": "string",
- "email": "string",
- "status": "string",
- "created": "2019-08-24T14:15:22Z",
- "items": [
- {
- "id": 0,
- "price": "12,50",
- "tax": "string",
- "quantity": 0,
- "name": "string",
- "type": "string",
- "external_id": "string",
- "ref": "string"
}
], - "shipping": "string",
- "count": 0,
- "total_tax_paid": "2,08",
- "total_discount_inc": "0,00",
- "total_paid": "12,50",
- "total_shipping_paid": "4,90",
- "created_at": "2019-08-24T14:15:22Z",
- "coupon": { },
- "subscription_uuid": "string",
- "next_try": "2019-08-24T14:15:22Z",
- "retry_link": "string",
- "updated_at": "2019-08-24T14:15:22Z",
- "paid_transaction_id": "string",
- "paid_class_key": "string",
- "prestashop_order_id": 0,
- "prestashop_cart_id": 0,
- "payment_status": "paid",
- "payment_class_key": "string"
}
}