Ciklik API (1.0.0)

Download OpenAPI specification:Download

Bienvenue sur l'API Ciklik. Vous pouvez l'utiliser pour accéder aux ressources de votre compte, ou lancer des actions de base.

API Endpoints

The base endpoint is https://{environment}.ciklik.co/api/v3

Authentification

L'API supporte l'authentification via Bearer token:

  • Bearer Token

Exemple :

curl --location 'https://{environment}.ciklik.co/api/v3' --header 'Authorization: Bearer <Ciklik Token>'

Request Limit

Le nombre de requête est limité à 100 par minute. Si la limite est atteinte, la réponse http sera 429 Too Many Requests.

Filtres

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: ?filter[status]=received&filter[created_at]=2023-11-17

Pagination

Les listes de résultats de l'API sont paginées. La limite est de 20 éléments par requête. 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 un champ total .

Exemple: ?page=2

tenant

Opérations liées à l'entité "Website".

Récupérer les données de l'entité "Website"

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Mettre à jour les métadonnées d'un site web (WebsiteEntity)

Permet de mettre à jour les métadonnées d'un site web (WebsiteEntity) en modifiant ou ajoutant des clés/valeurs au champ "metadata".

Authorizations:
bearerAuth
Request Body schema: application/json
required
object

Les clés commençant par "ciklik_encrypted_" seront automatiquement encryptées".

Responses

Request samples

Content type
application/json
{
  • "metadata": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

products

Opérations liées aux produits

Récupérer une liste de produits

Authorizations:
bearerAuth
query Parameters
filter[id]
integer

Filtrer par ID du produit

filter[name]
string

Filtrer par nom du produit

filter[id_category]
integer

Filtrer par ID de catégorie

filter[quantity]
integer

Filtrer par quantité

filter[price]
number

Filtrer par prix

filter[active]
boolean

Filtrer par état d'activité

filter[slug]
string

Filtrer par slug

filter[virtual_product]
boolean

Filtrer par produit virtuel

filter[gift_card]
boolean

Filtrer par carte cadeau

filter[gift_plan]
string

Filtrer par plan cadeau

filter[disable_seo]
boolean

Filtrer par désactivation SEO

filter[ref]
string

Filtrer par référence

filter[composable]
boolean

Filtrer par composable

sort
string
Enum: "plan_id" "customer_id" "canceled_at" "active" "start_date" "first_renewal_date" "end_date" "created_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"

Trier les résultats (ex: -name pour un tri descendant)

page
integer

Numéro de la page pour la pagination

per_page
integer

Nombre d'éléments par page

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "links": {
    },
  • "meta": {
    }
}

Créer ou mettre à jour un produit

Authorizations:
bearerAuth
Request Body schema: application/json
required
name
required
string <= 255 characters
slug
string <= 255 characters
position
integer
short_description
string <= 255 characters
description
required
string <= 255 characters
meta_title
string <= 255 characters
meta_description
string <= 255 characters
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
salable
boolean
gift_card
boolean
gift_plan
string
disable_seo
boolean
ref
required
string
external_id
string
Array of objects

Responses

Request samples

Content type
application/json
{
  • "ref": "REFABOPRODUIT",
  • "name": "Super nom produit",
  • "slug": "slug-de-rpoduit",
  • "price": "17.50",
  • "description": "Petite description produit",
  • "tax": "0.2",
  • "frequencies": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Récupérer un produit par référence (SKU)

Authorizations:
bearerAuth
path Parameters
ref
required
string

Référence du produit (SKU)

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Mettre à jour un produit par référence (SKU)

Authorizations:
bearerAuth
path Parameters
ref
required
string

Référence du produit (SKU)

Request Body schema: application/json
required
name
string <= 255 characters
slug
string <= 255 characters
position
integer
short_description
string <= 255 characters
description
string <= 255 characters
meta_title
string <= 255 characters
meta_description
string <= 255 characters
id_category
integer
quantity
integer
price
number
tax
number
Enum: 0 0.2 0.055 0.1 0.021 0.21 0.06
active
boolean
virtual_product
boolean
salable
boolean
gift_card
boolean
gift_plan
string
disable_seo
boolean
ref
string
external_id
string
Array of objects

Responses

Request samples

Content type
application/json
{
  • "ref": "REFABOPRODUIT",
  • "name": "Super nom produit",
  • "slug": "slug-de-rpoduit",
  • "price": "17.50",
  • "description": "Petite description produit",
  • "tax": "0.2",
  • "frequencies": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "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": [
    ],
  • "frequences": [
    ]
}

webhooks

Opérations liées aux webhooks

Lister le dernier webhook envoyé

Authorizations:
bearerAuth
query Parameters
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" "created_optin" "updated_optin"

Nom de l'évènement à avoir

Responses

Response samples

Content type
application/json
{ }

Ajouter un webhook

Authorizations:
bearerAuth
Request Body schema: application/json
required
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" "created_optin" "updated_optin"
hook_url
required
string

Responses

Request samples

Content type
application/json
{
  • "event_type": "created_subscription",
  • "hook_url": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Supprimer un webhook

Authorizations:
bearerAuth
Request Body schema: application/json
required
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" "created_optin" "updated_optin"

Responses

Request samples

Content type
application/json
{
  • "event_type": "created_subscription"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

subscriptions

Opérations liées aux abonnements

Obtenir les détails d'un abonnement

Authorizations:
bearerAuth
path Parameters
id
required
string

UUID de l'abonnement

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Mettre à jour un abonnement

Permet de mettre à jour un abonnement, le résilier, le mettre en pause pour 1, 2 ou 3 mois, ou le relancer.

Authorizations:
bearerAuth
path Parameters
id
required
string

UUID de l'abonnement à mettre à jour

Request Body schema: application/json
required

Données à modifier sur l'abonnement

months
number <float> [ 1 .. 3 ]

Nombre de mois pour mettre en pause l'abonnement (1, 2 ou 3 mois) (!= résiliation).

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

Modifier la date du prochain paiement

Array of objects

nouveau contenu de l'abonnement, via external_id

Responses

Request samples

Content type
application/json
{
  • "months": 1,
  • "active": true,
  • "notification": true,
  • "pause": true,
  • "next_billing": "string",
  • "content": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Récupérer une liste d'abonnement

Permet de récupérer une liste d'abonnements avec différents filtres et options de tri.

Authorizations:
bearerAuth
query Parameters
filter[activated]
boolean

Filtre par abonnements activés.

filter[canceled]
boolean

Filtre par abonnements annulés.

filter[created_at_before]
string <date>

Filtre par date de création avant la date spécifiée.

filter[created_at_after]
string <date>

Filtre par date de création après la date spécifiée.

filter[canceled_since_before]
string <date>

Filtre par date d'annulation avant la date spécifiée.

filter[canceled_since_after]
string <date>

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>

Filtre par date d'engagement avant la date spécifiée.

filter[engaged_after]
string <date>

Filtre par date d'engagement après la date spécifiée.

filter[next_billing_before]
string <date>

Filtre par date de prochaine facturation avant la date spécifiée.

filter[next_billing_after]
string <date>

Filtre par date de prochaine facturation après la date spécifiée.

filter[end_date_before]
string <date>

Filtre par date de fin d'abonnement avant la date spécifiée.

filter[end_date_after]
string <date>

Filtre par date de fin d'abonnement après la date spécifiée.

filter[subscriptions_by_email]
string <email>

Filtre par adresse e-mail.

filter[plan_id]
string <= 255 characters

Filtre par ID de plan.

filter[customer_id]
string <= 255 characters

Filtre par ID de client.

sort
string
Enum: "plan_id" "customer_id" "canceled_at" "active" "start_date" "first_renewal_date" "end_date" "created_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"

Options de tri.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "links": {
    },
  • "meta": {
    }
}

deliveries

Opérations liées aux bons de livraison

Liste des bons de livraison

Récupère la liste de tous les bons de livraison de l'application.

Authorizations:
bearerAuth
query Parameters
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_reference]
string

Filtrer par référence 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

Filtrer par adresse e-mail.

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]
integer

Filtrer par ID du relais.

filter[orderable_name]
string

Filtrer par nom de l'élément commandable.

filter[orderable_id]
integer

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 état.

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"

Trier les résultats par un champ donné.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "links": {
    },
  • "meta": {
    }
}

Liste détails d'un bon de livraison

Récupère la liste des élements d'un bon de livraison.

Authorizations:
bearerAuth
path Parameters
id
required
string

ID de l'abonnement

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Mettre à jour un BL

Permet de le considérer comme expédié, et associer un lien de suivi.

Authorizations:
bearerAuth
path Parameters
id
required
string

ID de l'abonnement

Request Body schema: application/json
required
tracking_number
string

Numéro de suivi à associer au bon de livraison

notification
boolean

Envoyer une notification d'expédition

status
string
Enum: "created" "pending" "shipped" "delivered" "scheduled" "canceled"

Nouveau statut du BL

Responses

Request samples

Content type
application/json
{
  • "tracking_number": "string",
  • "notification": true,
  • "status": "created"
}

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Supprimer un élément d'un bon de livraison

Supprime un élément du bon de livraison en utilisant son ID.

Authorizations:
bearerAuth
path Parameters
id
required
integer

ID de l'élément du bon de livraison à supprimer

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

kpis

Opérations liées aux indicateurs de performance

Récupérer les indicateurs de performance

Permet de récupérer les indicateurs de performance avec différents filtres.

Authorizations:
bearerAuth
query Parameters
filter[created_at_before]
string <date>

Filtre les KPIs créés avant cette date

filter[created_at_after]
string <date>

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)

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "links": {
    },
  • "meta": {
    }
}

addresses

Opérations liées aux bons de adresses

Liste des adresses

Cette route permet de lister des adresses.

Authorizations:
bearerAuth
query Parameters
object

Filtres pour la liste d'adresses

sort
string
Enum: "region_id" "user_id" "address" "address1" "postcode" "city" "first_name" "last_name" "company_name" "division" "phone" "created_at" "updated_at"

Trier les adresses par colonne spécifiée.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "links": {
    },
  • "meta": {
    }
}

Mettre à jour une adresse

Cette route permet de mettre à jour une adresse.

Authorizations:
bearerAuth
path Parameters
id
required
integer

ID de l'adresse à mettre à jour.

Request Body schema: application/json
address
string <= 32 characters
address1
string <= 32 characters
postcode
string
city
string
first_name
string
last_name
string
company_name
string
phone
string
region_id
integer

Responses

Request samples

Content type
application/json
{
  • "address": "string",
  • "address1": "string",
  • "postcode": "string",
  • "city": "string",
  • "first_name": "string",
  • "last_name": "string",
  • "company_name": "string",
  • "phone": "string",
  • "region_id": 0
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Récupérer les données d'une adresse

Cette route permet de récupérer une adresse.

Authorizations:
bearerAuth
path Parameters
id
required
integer

ID de l'adresse à mettre à jour.

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Supprimer une adresse

Cette route permet de supprimer une adresse.

Authorizations:
bearerAuth
path Parameters
id
required
integer

ID de l'adresse à mettre à jour.

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

customers

Opérations liées aux comptes utilisateurs

Liste des utilisateurs

Cette route permet de récupérer une liste d'utilisateurs.

Authorizations:
bearerAuth
query Parameters
object
Example: created_at_before=2023-01-01&email=user@example.com

Filtres pour la liste d'utilisateurs.

sort
string
Enum: "id" "uuid" "email" "created_at" "updated_at"
Example: sort=id

Trier la liste d'utilisateurs.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "links": {
    },
  • "meta": {
    }
}

Créer un nouvel utilisateur

Cette route permet de créer un nouveau compte utilisateur. Si l'adresse email existe, la réponse contiendra l'utilisateur associé. Dans le cas contraire, le compte est créé, et le compte créé se trouve dans la réponse.

Authorizations:
bearerAuth
Request Body schema: application/json
required
email
required
string <email>

Adresse e-mail de l'utilisateur

external_id
string

Identifiant externe optionnel à enregistrer

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "external_id": "some_external_id"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "email": "user@example.com",
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "refp": "string",
  • "can_void_with_coupon": true,
  • "has_active_subscription": true,
  • "external_id": "string",
  • "addresses": [
    ],
  • "customerRevenue": "string",
  • "customerRefund": "string",
  • "totalTransactionsSuccess": 0
}

Récupérer les détails d'un utilisateur

Authorizations:
bearerAuth
path Parameters
id
required
integer

UUID de l'utilisateur

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "email": "user@example.com",
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "refp": "string",
  • "can_void_with_coupon": true,
  • "has_active_subscription": true,
  • "external_id": "string",
  • "addresses": [
    ],
  • "customerRevenue": "string",
  • "customerRefund": "string",
  • "totalTransactionsSuccess": 0
}

transactions

Opérations liées aux transactions

Récupérer la liste des transactions

Authorizations:
bearerAuth
query Parameters
object

Filtres pour les transactions (tableau associatif)

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "links": {
    },
  • "meta": {
    }
}

Récupérer une transaction par ID

Authorizations:
None
path Parameters
transaction_id
required
string

L'identifiant de la transaction à récupérer.

Responses

Response samples

Content type
application/json
{
  • "order_id": 0,
  • "order": {
    },
  • "gateway": "string",
  • "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"
}

Demander le remboursement d'une transaction par ID

Authorizations:
None
path Parameters
transaction_id
required
string

L'identifiant de la transaction à rembourser.

Request Body schema: application/json
required
amount
number

Le montant à rembourser (numérique).

Responses

Request samples

Content type
application/json
{
  • "amount": 0
}

Response samples

Content type
application/json
{
  • "order_id": 0,
  • "order": {
    },
  • "gateway": "string",
  • "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"
}

orders

Récupérer la liste des commandes

Authorizations:
bearerAuth
query Parameters
user_id
integer

ID de l'utilisateur

address_id
integer

ID de l'adresse

invoice_address_id
integer

ID de l'adresse de facturation

transporter_id
integer

ID du transporteur

status
string
Enum: "canceled" "completed" "failed" "in_creation" "in_process" "pending" "need_action"

Statut de la commande

subscription_uuid
string <= 255 characters

UUID de l'abonnement

invoice_id
integer

ID de la facture

total_paid
number

Montant total payé

next_try
string <date>

Prochaine tentative

created_at_before
string <date>

Date de création avant

created_at_after
string <date>

Date de création après

updated_at_before
string <date>

Date de mise à jour avant

updated_at_after
string <date>

Date de mise à jour après

next_try_before
string <date>

Prochaine tentative avant

next_try_after
string <date>

Prochaine tentative après

by_customer_uuid
string <= 255 characters

UUID du client

source
string
Enum: "utm" "referral" "regain" "retry" "renew" "backend" "unsub_voucher" "unsub_postpone" "reactivation_offer" "followup"

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"

Champ de tri

prestashop_order_id
integer

Correspondance commande prestasop

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "links": {
    },
  • "meta": {
    }
}

Récupérer le détail d'une commande

Authorizations:
bearerAuth
path Parameters
id
required
integer

ID de la commande à récupérer

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}