Вступ
Це сторінка документації API KWIGA. За допомогою цього API ви маєте можливість робити деякі дії від свого імені в певних кабінетах.
Для того щоб увімкнути API, в особистому кабінеті в розділі settings потрібно відмітити відповідний чекбокс. Після цього буде згенерований токен для API та отриманий хеш кабінету, які потрібні для подальших звернень до API.
При компрометації токена його можна перевипустити, що зробить минулий токен неактивним і згенерує новий.
API доступний тільки для тих користувачів, у кого в кабінеті включено API.
API має обмеження на кількість звернень за секунду. Зараз доступно 1 звернення за секунду.
Базова робота з API
<?php
$headers = [
'Accept: application/json',
'Token: <Token>',
'Cabinet-Hash: <Cabinet-Hash>',
];
$id = 1;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.kwiga.com/contacts/' . $id);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response);
?>
curl --location --request GET 'https://api.kwiga.com/contacts/1' \
--header 'Content-Type: application/json' \
--header 'Token: <Token>' \
--header 'Cabinet-Hash: <Cabinet-Hash>'
Всі запити повинні надсилатися на домен:
https://api.kwiga.com
Для авторизації передаємо API-токен в одному з варіантів:
в заголовках:
Token: {token}
в GET/POST параметрах:
token={token}
Для ідентифікації кабінету, в якому відбуваються дії, обов'язково передаємо хеш-кабінету в одному з варіантів:
в заголовках:
Cabinet-Hash: {cabinet_hash}
в GET/POST параметрах:
cabinet_hash={cabinet_hash}
Встановити локалізацію довідників та повідомлень валідації можна заголовком:
X-Language: {locale}
Locale | Description |
---|---|
en | English (default) |
uk | Ukrainian |
ru | Russian |
it | Italian |
es | Spanish |
de | German |
pl | Polish |
Помилки
Код помилки | Значення |
---|---|
400 | Bad Request - Ваш запит невірний. |
401 | Unauthorized - Ваш API-ключ невірний. |
403 | Forbidden - Запитаний ресурс захован та доступний лише адміністраторам. |
404 | Not Found - Не знайдено. Вказана сторінка не знайдена. |
405 | Method Not Allowed - Метод не дозволений. Серверу відомий метод запиту, але цільовий ресурс не підтримує цей метод. |
406 | Not Acceptable - Не прийнято. Ви запросили формат, відмінний від json. |
410 | Gone - Видалений. Запитаний ресурс видалено з нашого сервера. |
422 | Unprocessable entity - Сутність неможливо обробити. |
429 | Too Many Requests - Дуже багато запитів - Ви надсилаєте надто багато запитів, зупиніться! |
500 | Internal Server Error - Внутрішня помилка сервера. Проблема із нашим сервером. Повторіть спробу пізніше. |
503 | Service Unavailable - ми тимчасово відключені від мережі через технічне обслуговування. Повторіть спробу пізніше. |
CRM. Контакти
Список контактів
Приклад запиту:
<?php
// Запит без параметрів
$headers = [
'Accept: application/json',
'Token: <Token>',
'Cabinet-Hash: <Cabinet-Hash>',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.kwiga.com/contacts');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response);
?>
<?php
// Запит із пагінацією
$headers = [
'Accept: application/json',
'Token: <Token>',
'Cabinet-Hash: <Cabinet-Hash>',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.kwiga.com/contacts?page=1&per_page=15');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response);
?>
<?php
// Запит з пагінацією та фільтрацією
$headers = [
'Accept: application/json',
'Token: <Token>',
'Cabinet-Hash: <Cabinet-Hash>',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.kwiga.com/contacts?page=1&per_page=15&filters[date_from]=2022-04-27&filters[search]=example.com&with_offers=1');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response);
?>
curl --location --request GET 'https://api.kwiga.com/contacts' \
--header 'Content-Type: application/json' \
--header 'Token: <Token>' \
--header 'Cabinet-Hash: <Cabinet-Hash>'
curl --location --request GET 'https://api.kwiga.com/contacts?page=1&per_page=15' \
--header 'Content-Type: application/json' \
--header 'Token: <Token>' \
--header 'Cabinet-Hash: <Cabinet-Hash>'
curl --location --request GET 'https://api.kwiga.com/contacts?page=1&per_page=15&filters[date_from]=2022-04-27&filters[search]=example.com&with_offers=1' \
--header 'Content-Type: application/json' \
--header 'Token: <Token>' \
--header 'Cabinet-Hash: <Cabinet-Hash>'
Приклад відповіді:
{
"data": [
{
"id": 1,
"created_at": "2022-02-04T12:17:32.000000Z",
"email": "test@example.com",
"first_name": "James",
"last_name": "Bond",
"phone": "+380931234567",
"tags": [
{
"id": 93,
"name": "test-tag"
}
],
"offers": [
{
"id": 8,
"unique_offer_code": "ptJmPPXVYs0t",
"title": "Предложение #8",
"limit_type": {
"id": 1,
"name": "Неограничено"
},
"limit_of_sales": null
}
]
},
{
"id": 2,
"created_at": "2022-02-04T12:17:32.000000Z",
"email": "test2@example.com",
"first_name": "Petr",
"last_name": "Ivanov",
"phone": "+380983234512",
"tags": [],
"offers": []
}
],
"links": {
"first": "https://api.kwiga.com/contacts?page=1",
"last": "https://api.kwiga.com/contacts?page=2",
"prev": null,
"next": "https://api.kwiga.com/contacts?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 2,
"links": [
{
"url": null,
"label": "« Попередня",
"active": false
},
{
"url": "https://api.kwiga.com/contacts?page=1",
"label": "1",
"active": true
},
{
"url": "https://api.kwiga.com/contacts?page=2",
"label": "2",
"active": false
},
{
"url": "https://api.kwiga.com/contacts?page=2",
"label": "Наступна »",
"active": false
}
],
"path": "https://api.kwiga.com/contacts",
"per_page": 15,
"to": 2,
"total": 3
}
}
HTTP Request
GET https://api.kwiga.com/contacts
URL Parameters
Parameter | Description |
---|---|
page (integer) |
Номер сторінки |
per_page (integer) |
Кількість елементів вибірки |
filters[is_active] (integer) |
Фільтр активних контактів |
filters[date_from] (2023-08-30/2023-08-30 00:00:00/2023-08-30T00:00:00) UTC |
Фільтр за датою створення. Параметр 'від' |
filters[date_to] (2023-08-31/2023-08-30 00:00:00/2023-08-30T00:00:00) UTC |
Фільтр за датою створення. Параметр 'до' |
filters[last_activity_from] (2023-08-30/2023-08-30 00:00:00/2023-08-30T00:00:00) UTC |
Фільтр за датою останньої активності. Параметр 'від' |
filters[last_activity_to] (2023-08-31/2023-08-30 00:00:00/2023-08-30T00:00:00) UTC |
Фільтр за датою останньої активності. Параметр 'до' |
filters[search] (string) |
Фільтр по email, телефону, ПІБ |
with_offers (boolean) |
Додатково отримати інформацію по пропозиціям контакта |
with_orders (boolean) |
Додатково отримати інформацію по замовленням контакта |
Отримання контакту
Приклад запиту:
<?php
$headers = [
'Accept: application/json',
'Token: <Token>',
'Cabinet-Hash: <Cabinet-Hash>',
];
$id = 1;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.kwiga.com/contacts/' . $id);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response);
?>
curl --location --request GET 'https://api.kwiga.com/contacts/1' \
--header 'Content-Type: application/json' \
--header 'Token: <Token>' \
--header 'Cabinet-Hash: <Cabinet-Hash>'
Приклад відповіді:
{
"data": {
"id": 1,
"email": "test@example.com",
"first_name": "James",
"last_name": "Bond",
"phone_number": "+380931234567",
"created_at": "2023-05-26T09:47:20.000000Z",
"last_activity_at": "2023-08-10T13:23:22.000000Z",
"tags": [
{
"id": 93,
"name": "test-tag"
}
],
"first_visit": {
"id": 58,
"ip": "172.22.0.1",
"landing_url": "https://sample.kwiga.com",
"landing_domain": "https://sample.kwiga.com",
"landing_path": "/",
"landing_params": "",
"referrer_domain": null,
"referrer_url": "",
"utm_source": null,
"utm_campaign": null,
"utm_medium": null,
"utm_term": null,
"utm_content": null,
"created_at": "2023-05-26T10:51:03.000000Z"
},
"utm_visits": [
{
"id": 344,
"ip": "172.18.0.1",
"landing_url": "https://sample.kwiga.com/course/welcome-course/?utm_term=utm-test",
"landing_domain": "sample.kwiga.com",
"landing_path": "course/welcome-course",
"landing_params": "utm_term=utm-test",
"referrer_domain": null,
"referrer_url": "",
"utm_source": null,
"utm_campaign": null,
"utm_medium": null,
"utm_term": "utm-test",
"utm_content": null,
"created_at": "2023-05-31T17:25:23.000000Z"
},
],
"offers": [
{
"id": 15,
"unique_offer_code": "QphS1o8gkcRf",
"title": "Offer #15",
"limit_type": {
"id": 1,
"name": "Unlimited"
},
"limit_of_sales": null
},
],
"orders": [
{
"id": 1,
"type_id": 1,
"first_paid_at": "2023-05-26T11:25:30.000000Z",
"paid_at": "2023-05-26T11:25:30.000000Z",
"created_at": "2023-05-26T11:25:29.000000Z",
"updated_at": "2023-05-26T11:25:30.000000Z",
"products": [
{
"id": 2,
"productable_id": 1,
"productable_type": "course",
"title": "Welcome course",
"link": "https://sample.kwiga.com/course/welcome-course"
}
],
"payments": [
{
"id": 5,
"status": 2,
"status_title": "Paid",
"payment_type": null,
"payment_type_title": null,
"payment_form": null,
"payment_form_title": null,
"price_info": {
"amount": 0,
"currency": {
"id": 147,
"code": "UAH",
"html_code": "₴",
"html_letter_code": "грн"
}
},
"paid_at": "2023-05-26T11:25:29.000000Z",
"created_at": "2023-05-26T11:25:29.000000Z",
"updated_at": "2023-05-26T11:25:30.000000Z",
"transactions": [
{
"id": 28,
"merchant_id": 2,
"payment_id": 5,
"order_id": 1,
"payment_system_status": "Declined",
"failure_reason": "Cardholder session expired",
"price": "147",
"currency_code": "UAH",
"payer_account": null,
"card_mask": null,
"rrn": null,
"fee": null,
"created_at": "2023-11-03T08:45:10.000000Z"
},
{
"id": 29,
"merchant_id": 2,
"payment_id": 5,
"order_id": 1,
"payment_system_status": "Approved",
"failure_reason": null,
"price": "147",
"currency_code": "UAH",
"payer_account": "JKNNASWTZ99SJ",
"card_mask": "53****2144",
"rrn": 330710335365,
"fee": null,
"created_at": "2023-11-03T08:48:10.000000Z"
}
]
}
],
"paid_status": "paid",
"paid_status_title": "Paid",
"order_stage": {
"id": 2,
"title": "In progress",
"order_group": {
"id": 2,
"slug": "in_progress",
"title": "In progress",
"order": 2,
"created_at": "2023-05-26T09:47:16.000000Z"
},
"order_funnel": null,
"created_at": "2023-05-26T09:47:16.000000Z"
},
"cost_info": {
"amount": 0,
"currency": {
"id": 147,
"code": "UAH",
"html_code": "₴",
"html_letter_code": "грн"
}
},
"managers": [
{
"id": 264,
"name": "Manager 1",
"email": "manager1@test.com"
},
{
"id": 288,
"name": "Manager 2",
"email": "manager2@test.com"
}
]
}
],
"additional_fields": [
{
"id": 1,
"field": {
"id": 17,
"title": "test global field",
"is_local": false
},
"value": "value of global field"
}
]
}
}
HTTP Request
GET https://api.kwiga.com/contacts/{id}
Створення контакту
Приклад запиту:
$headers = [
'Accept: application/json',
'Content-Type: application/x-www-form-urlencoded',
'Token: <Token>',
'Cabinet-Hash: <Cabinet-Hash>',
];
$data = [
'first_name' => 'James',
'last_name' => 'Bond',
'email' => 'bond@example.com',
'phone' => '+380931234567',
'tags' => ['tag1'],
'send_activation_email' => true,
'additional_fields' => [
[
'field_id' => 17,
'value' => 'this is test value'
]
]
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.kwiga.com/contacts');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$result = json_decode($response);
curl --location --request POST 'https://api.kwiga.com/contacts' \
--header 'Content-Type: application/json' \
--header 'Token: <Token>' \
--header 'Cabinet-Hash: <Cabinet-Hash>' \
--data-raw '{
"first_name": "James",
"last_name": "Bond",
"email": "bond@example.com",
"send_activation_email": true,
"phone": "+380931234567",
"manager_ids": [
264,
288
],
"additional_fields": [
{
"field_id": 17,
"value": "this is test value"
}
]
}'
Приклад відповіді:
{
"data": {
"id": 132,
"email": "bond@example.com",
"first_name": "James",
"last_name": "Bond",
"phone_number": "931234567",
"tags": [],
"created_at": "2023-06-26T19:01:00.000000Z",
"additional_fields": [
{
"id": 110,
"field": {
"id": 17,
"title": "test global",
"is_local": false
},
"value": "this is test value"
}
]
}
}
HTTP Request
POST https://api.kwiga.com/contacts
Request
Parameter | Description |
---|---|
email (string) (required) |
Email - має бути унікальним у рамках кабінету |
phone (string) |
Номер телефону - формат: +{код країни}{телефон} Приклад: +380930123456 |
first_name (string) |
Ім'я |
last_name (string) |
Прізвище |
tags (string[]) |
Теги |
send_activation_email (boolean) |
Надіслати вітальний лист |
locale (string) |
Мова контакту в форматі iso_2 Допустимі варіанти: en (за замовчуванням), uk , ru |
create_order (boolean) |
Створити пусте замовлення |
order_stage_id (integer) |
Ідентифікатор статусу замовлення у воронці (можна отримати на сторінці CRM->Замовлення->Налаштування->Список статусів) |
additional_fields (array) |
Поля користувача (кастомні поля) |
additional_fields[][field_id] (integer) |
id кастомного поля (можна отримати в CRM->Контакти->Налаштування->Додавання полів користувача) |
additional_fields[][value] (null,string,integer) |
Значення кастомного поля |
Додати покупку
Цей метод створює або знаходить контакт и додає йому покупку пропозиції
Приклад запиту:
$headers = [
'Accept: application/json',
'Content-Type: application/x-www-form-urlencoded',
'Token: <Token>',
'Cabinet-Hash: <Cabinet-Hash>',
];
$data = [
'first_name' => 'James',
'last_name' => 'Bond',
'email' => 'bond@example.com',
'phone' => '+380931234567',
'send_activation_email' => true,
'send_product_access_email' => true,
'locale' => 'uk',
'offer_id' => 18,
'manager_ids' => [264, 288],
'additional_fields' => [
[
'field_id' => 17,
'value' => 'this is test value'
]
]
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.kwiga.com/contacts/purchases');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$result = json_decode($response);
curl --location --request POST 'https://api.kwiga.com/contacts/purchases' \
--header 'Content-Type: application/json' \
--header 'Token: <Token>' \
--header 'Cabinet-Hash: <Cabinet-Hash>' \
--data-raw '{
"first_name": "James",
"last_name": "Bond",
"email": "bond@example.com",
"send_activation_email": true,
"phone": "+380931234567",
"offer_id": 18,
"additional_fields": [
{
"field_id": 17,
"value": "this is test value"
}
]
}'
Приклад відповіді:
{
"data": {
"id": 132,
"email": "bond@example.com",
"first_name": "James",
"last_name": "Bond",
"phone_number": "931234567",
"tags": [],
"created_at": "2023-06-26T19:01:00.000000Z",
"additional_fields": [
{
"id": 110,
"field": {
"id": 17,
"title": "test global",
"is_local": false
},
"value": "this is test value"
}
],
"orders": [
{
"id": 1060,
"type_id": 1,
"first_paid_at": "2023-10-13T18:04:02.000000Z",
"paid_at": "2023-10-13T18:04:02.000000Z",
"created_at": "2023-10-13T18:04:02.000000Z",
"updated_at": "2023-10-13T18:04:02.000000Z",
"products": [
{
"id": 25,
"productable_id": 10,
"productable_type": "course",
"title": "test course",
"link": "https://sample-school.kwiga.com/courses/test-course"
}
],
"payments": [
{
"id": 1231,
"status": 2,
"status_title": "Paid",
"payment_type": null,
"payment_type_title": null,
"payment_form": null,
"payment_form_title": null,
"price_info": {
"amount": 0,
"currency": {
"id": 147,
"code": "UAH",
"html_code": "₴",
"html_letter_code": "грн"
}
},
"paid_at": "2023-10-13T18:04:02.000000Z",
"created_at": "2023-10-13T18:04:02.000000Z",
"updated_at": "2023-10-13T18:04:02.000000Z",
"transactions": [
{
"id": 28,
"merchant_id": 2,
"payment_id": 1231,
"order_id": 1060,
"payment_system_status": "Declined",
"failure_reason": "Cardholder session expired",
"price": "147",
"currency_code": "UAH",
"payer_account": null,
"card_mask": null,
"rrn": null,
"fee": null,
"created_at": "2023-11-03T08:45:10.000000Z"
},
{
"id": 29,
"merchant_id": 2,
"payment_id": 1231,
"order_id": 1060,
"payment_system_status": "Approved",
"failure_reason": null,
"price": "147",
"currency_code": "UAH",
"payer_account": "JKNNASWTZ99SJ",
"card_mask": "53****2144",
"rrn": 330710335365,
"fee": null,
"created_at": "2023-11-03T08:48:10.000000Z"
}
]
}
],
"paid_status": "paid",
"paid_status_title": "Сплачено",
"order_stage": {
"id": 43,
"title": "Стейдж 1",
"order_group": {
"id": 22,
"slug": "voronka-1",
"title": null,
"order": 4,
"created_at": "2023-06-22T18:20:53.000000Z"
},
"order_funnel": {
"id": 1,
"title": "Воронка за замовчуванням",
"created_at": "2023-05-26T09:47:16.000000Z"
},
"created_at": "2023-06-22T18:21:10.000000Z"
},
"cost_info": {
"amount": 0,
"currency": {
"id": 147,
"code": "UAH",
"html_code": "₴",
"html_letter_code": "грн"
}
},
"managers": [
{
"id": 264,
"name": "test",
"email": "testfsdf@fdafasd.fsd"
},
{
"id": 288,
"name": "fdsf",
"email": "sdfs@fdf.dfss"
}
]
}
]
}
}
HTTP Request
POST https://api.kwiga.com/contacts/purchases
Request
Parameter | Description |
---|---|
email (string) (required) |
Email - має бути унікальним у рамках кабінету |
phone (string) |
Номер телефону - формат: +{код країни}{телефон} Приклад: +380930123456 |
first_name (string) |
Ім'я |
last_name (string) |
Прізвище |
tags (string[]) |
Теги |
send_activation_email (boolean) |
Надіслати вітальний лист |
send_product_access_email (boolean) |
Надіслати лист про доступ до продукту |
locale (string) |
Мова контакту в форматі iso_2 Допустимі варіанти: en (за замовчуванням), uk , ru |
offer_id (integer) |
Ідентифікатор пропозиції (можна отримати в кінці посилання сторінки редагування речення) Приклад: 3858 з https://sample-school.kwiga.com/expert/payments/offers/edit/3858 Якщо не передавати Пропозицію, то буде створено порожнє замовлення |
order_stage_id (boolean) |
Ідентифікатор статусу замовлення у воронці (можна отримати на сторінці CRM->Замовлення->Налаштування->Список статусів) |
is_paid (integer) |
Замовлення сплачено (за замовчуванням true) |
manager_ids (integer[]) |
Менеджери замовлення (можна отримати на сторінці Налаштування->Доступи по управлінню) |
additional_fields (array) |
Поля користувача (кастомні поля) |
additional_fields[][field_id] (integer) |
id кастомного поля (можна отримати в CRM->Контакти->Налаштування->Додавання полів користувача) |
additional_fields[][value] (null,string,integer) |
Значення кастомного поля |
Оновлення контакту
Приклад запиту:
<?php
$headers = [
'Accept: application/json',
'Token: <Token>',
'Cabinet-Hash: <Cabinet-Hash>',
];
$id = 23698;
$data = [
'first_name' => 'John',
'last_name' => 'Black',
'email' => 'bond123@example.com',
'phone' => '+380931112233',
'tags' => ['test-tag'],
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.kwiga.com/contacts/' . $id);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response);
?>
curl --location --request PUT 'https://api.kwiga.com/contacts/23698' \
--header 'Content-Type: application/json' \
--header 'Token: <Token>' \
--header 'Cabinet-Hash: <Cabinet-Hash>' \
--data-raw '{
"first_name": "John",
"last_name": "Black",
"email": "bond123@example.com",
"phone": "+380931112233",
"tags": ["test-tag"]
}'
Приклад відповіді:
{
"data": {
"id": 23698,
"email": "bond123@example.com",
"first_name": "John",
"last_name": "Black",
"phone": "+380931112233",
"tags": [
{
"id": 93,
"name": "test-tag"
}
],
"created_at": "2023-10-05T11:29:24.000000Z",
"last_activity_at": "2023-10-05T12:27:42.000000Z",
"first_visit": {
"id": 4324,
"ip": "172.18.0.1",
"landing_url": "http://cabinet-1.kwiga.local/courses/a1",
"landing_domain": "cabinet-1.kwiga.local",
"landing_path": "courses/a1",
"landing_params": "",
"referrer_domain": null,
"referrer_url": "",
"utm_source": null,
"utm_campaign": null,
"utm_medium": null,
"utm_term": null,
"utm_content": null,
"created_at": "2023-10-06T11:49:07.000000Z"
},
"utm_visits": [],
"offers": [],
"orders": [],
"additional_fields": []
}
}
HTTP Request
PUT https://api.kwiga.com/contacts/{id}
Request
Parameter | Description |
---|---|
email (string) |
Email - має бути унікальним у рамках кабінету |
phone (string) |
Номер телефону - формат: +{код країни}{телефон} Приклад: +380930123456 |
first_name (string) |
Ім'я |
last_name (string) |
Прізвище |
tags (string[]) |
Теги. Працюють в режимі sync. Тобто на контакті будуть тільки ті теги, які будуть передані |
additional_fields (array) |
Поля користувача (кастомні поля) |
additional_fields[][field_id] (integer) |
id кастомного поля (можна отримати в CRM->Контакти->Налаштування->Додавання полів користувача) |
additional_fields[][value] (null,string,integer) |
Значення кастомного поля |
Додавання тегів контактам
Приклад запиту:
<?php
$headers = [
'Accept: application/json',
'Token: <Token>',
'Cabinet-Hash: <Cabinet-Hash>',
];
$data = [
'contacts' => [23698],
'tags' => ['test-tag'],
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.kwiga.com/contacts/tags');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response);
?>
curl --location --request POST 'https://api.kwiga.com/contacts/tags' \
--header 'Content-Type: application/json' \
--header 'Token: <Token>' \
--header 'Cabinet-Hash: <Cabinet-Hash>' \
--data-raw '{
"contacts": [23698],
"tags": ["test-tag"]
}'
Приклад відповіді:
{
"success": true
}
HTTP Request
POST https://api.kwiga.com/contacts/tags
Request
Parameter | Description |
---|---|
contacts (integer[]) |
Масив id контактів |
tags (string[]) |
Теги |
Видалення тегів контактів
Приклад запиту:
<?php
$headers = [
'Accept: application/json',
'Token: <Token>',
'Cabinet-Hash: <Cabinet-Hash>',
];
$data = [
'contacts' => [23698],
'tags' => ['test-tag'],
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.kwiga.com/contacts/tags');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response);
?>
curl --location --request DELETE 'https://api.kwiga.com/contacts/tags' \
--header 'Content-Type: application/json' \
--header 'Token: <Token>' \
--header 'Cabinet-Hash: <Cabinet-Hash>' \
--data-raw '{
"contacts": [23698],
"tags": ["test-tag"]
}'
Приклад відповіді:
{
"success": true
}
HTTP Request
DELETE https://api.kwiga.com/contacts/tags
Request
Parameter | Description |
---|---|
contacts (integer[]) |
Масив id контактів |
tags (string[]) |
Теги |
Пропозиції
Отримання списку пропозицій
Приклад запиту:
<?php
$headers = [
'Accept: application/json',
'Token: <Token>',
'Cabinet-Hash: <Cabinet-Hash>',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.kwiga.com/offers?product_id=130');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response);
?>
curl --location --request GET 'https://api.kwiga.com/offers?product_id=130' \
--header 'Content-Type: application/json' \
--header 'Token: <Token>' \
--header 'Cabinet-Hash: <Cabinet-Hash>'
Приклад відповіді:
{
"data": [
{
"id": 273,
"unique_offer_code": "nELQzbLRPmzo",
"url": "https://kwiga.com/o/nELQzbLRPmzo",
"title": "This is paid offer for my course",
"description": "<p style=\"text-align: left\">Description with html.</p>",
"short_description": "<p style=\"text-align: left\">Shot description with html.</p>",
"price_type": {
"id": 2,
"name": "Платно"
},
"price": {
"amount": "10.00",
"amount_rounded": "10.00",
"amount_formatted": "10.00 usd",
"amount_formatted_code": "$10.00",
"amount_formatted_code_short": "$10.00",
"currency": {
"id": 5,
"code": "USD",
"html_code": "$",
"html_letter_code": "usd",
"is_volatile": false
}
},
"price_discounted": {
"amount": 5,
"amount_rounded": "5.00",
"amount_formatted": "5.00 usd",
"amount_formatted_code": "$5.00",
"amount_formatted_code_short": "$5.00",
"currency": {
"id": 5,
"code": "USD",
"html_code": "$",
"html_letter_code": "usd",
"is_volatile": false
}
},
"discount": {
"id": 3,
"price_discounted": 5,
"limit_type": {
"id": 1,
"name": "Безстроково"
},
"start_at": "2023-12-28T14:41:00.000000Z",
"start_at_utc": "2023-12-28T12:41:00.000000Z",
"start_timezone_id": 371,
"end_at": "2024-01-03T14:41:00.000000Z",
"end_type": 3,
"end_at_utc": "2024-01-03T12:41:00.000000Z",
"end_timezone_id": 371,
"sales_limit": null,
"sales": null,
"is_active": true,
"is_available": true,
"created_at": "2023-12-28T12:41:58.000000Z",
"updated_at": "2023-12-28T12:41:58.000000Z",
"start_timezone": {
"id": 371,
"name": "Europe/Kyiv",
"name_full": "Europe/Kyiv (UTC+03:00)",
"value": "UTC+03:00"
},
"end_timezone": {
"id": 371,
"name": "Europe/Kyiv",
"name_full": "Europe/Kyiv (UTC+03:00)",
"value": "UTC+03:00"
}
},
"has_subscription": false,
"limit_type": {
"id": 1,
"name": "Необмежено"
},
"limit_of_sales": null,
"is_active": true,
"is_draft": false,
"validity_start": {
"type": "validity_start",
"duration_type_id": 1,
"date_at": "2023-12-28T14:40:00.000000Z",
"date_at_utc": "2023-12-28T12:40:00.000000Z",
"timezone_id": 371,
"timezone": {
"id": 371,
"name": "Europe/Kyiv",
"name_full": "Europe/Kyiv (UTC+03:00)",
"value": "UTC+03:00"
},
"after_months": 0,
"after_days": 0,
"specific_time": null
},
"validity_end": {
"type": "validity_end",
"duration_type_id": 3,
"date_at": "2023-12-28T14:40:00.000000Z",
"date_at_utc": "2023-12-28T12:40:00.000000Z",
"timezone_id": 371,
"timezone": {
"id": 371,
"name": "Europe/Kyiv",
"name_full": "Europe/Kyiv (UTC+03:00)",
"value": "UTC+03:00"
},
"after_months": 0,
"after_days": 0,
"specific_time": null
},
"products": [
{
"id": 130,
"productable_id": 38,
"productable_type": "course",
"title": "This is my course",
"link": "https://kwiga.com/courses/test-fail"
}
]
},
{
"id": 272,
"unique_offer_code": "2obtMsUEujcy",
"url": "https://kwiga.com/o/2obtMsUEujcy",
"title": "This is free offer for my course",
"description": null,
"short_description": null,
"price_type": {
"id": 1,
"name": "Безкоштовно"
},
"price": {
"amount": "0.00",
"amount_rounded": "0.00",
"amount_formatted": "0.00 usd",
"amount_formatted_code": "$0.00",
"amount_formatted_code_short": "$0.00",
"currency": {
"id": 5,
"code": "USD",
"html_code": "$",
"html_letter_code": "usd",
"is_volatile": false
}
},
"price_discounted": {
"amount": 0,
"amount_rounded": "0.00",
"amount_formatted": "0.00 usd",
"amount_formatted_code": "$0.00",
"amount_formatted_code_short": "$0.00",
"currency": {
"id": 5,
"code": "USD",
"html_code": "$",
"html_letter_code": "usd",
"is_volatile": false
}
},
"discount": null,
"has_subscription": false,
"limit_type": {
"id": 1,
"name": "Необмежено"
},
"limit_of_sales": null,
"is_active": true,
"is_draft": false,
"validity_start": {
"type": "validity_start",
"duration_type_id": 1,
"date_at": "2023-12-27T12:45:00.000000Z",
"date_at_utc": "2023-12-27T10:45:00.000000Z",
"timezone_id": 371,
"timezone": {
"id": 371,
"name": "Europe/Kyiv",
"name_full": "Europe/Kyiv (UTC+03:00)",
"value": "UTC+03:00"
},
"after_months": 0,
"after_days": 0,
"specific_time": null
},
"validity_end": {
"type": "validity_end",
"duration_type_id": 3,
"date_at": "2023-12-27T12:45:00.000000Z",
"date_at_utc": "2023-12-27T10:45:00.000000Z",
"timezone_id": 371,
"timezone": {
"id": 371,
"name": "Europe/Kyiv",
"name_full": "Europe/Kyiv (UTC+03:00)",
"value": "UTC+03:00"
},
"after_months": 0,
"after_days": 0,
"specific_time": null
},
"products": [
{
"id": 130,
"productable_id": 38,
"productable_type": "course",
"title": "This is my course",
"link": "https://kwiga.com/courses/test-fail"
}
]
}
]
}
HTTP Request
GET https://api.kwiga.com/offers
Request
Parameter | Description |
---|---|
product_id (int) (optional) |
Фільтр по продукту |
Отримання пропозиції
Приклад запиту:
<?php
$headers = [
'Accept: application/json',
'Token: <Token>',
'Cabinet-Hash: <Cabinet-Hash>',
];
$id = 1;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.kwiga.com/offers/' . $id);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response);
?>
curl --location --request GET 'https://api.kwiga.com/offers/1' \
--header 'Content-Type: application/json' \
--header 'Token: <Token>' \
--header 'Cabinet-Hash: <Cabinet-Hash>'
Приклад відповіді:
{
"data": {
"id": 1,
"unique_offer_code": "6rT1wj99lbZV",
"title": "Offer #1",
"limit_type": {
"id": 2,
"name": "Certain amount"
},
"limit_of_sales": 20,
"purchases_count": 1,
"sales_left": 19
}
}
HTTP Request
GET https://api.kwiga.com/offers/{id}
Маркетинг. Розсилка
Список груп контактів
Приклад запиту:
<?php
// Запит без параметрів
$ch = curl_init();
$headers = [
'Accept: application/json',
'Token: <Token>',
'Cabinet-Hash: <Cabinet-Hash>',
];
curl_setopt($ch, CURLOPT_URL, 'https://api.kwiga.com/mailing/contact-lists');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response);
?>
<?php
// Запит із пагінацією
$headers = [
'Accept: application/json',
'Token: <Token>',
'Cabinet-Hash: <Cabinet-Hash>',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.kwiga.com/mailing/contact-lists?page=1&limit=50');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response);
?>
curl --location --request GET 'https://api.kwiga.com/mailing/contact-lists' \
--header 'Content-Type: application/json' \
--header 'Token: <Token>' \
--header 'Cabinet-Hash: <Cabinet-Hash>'
curl --location --request GET 'https://api.kwiga.com/mailing/contact-lists?page=1&limit=50' \
--header 'Content-Type: application/json' \
--header 'Token: <Token>' \
--header 'Cabinet-Hash: <Cabinet-Hash>'
Приклад відповіді:
{
"data": [
{
"id": 2,
"title": "Пример 2",
"description": "Описание",
"is_default": false,
"created_at": "2022-04-28T13:22:44.000000Z",
"updated_at": "2022-04-28T13:22:44.000000Z"
},
{
"id": 1,
"title": "Мой первый список",
"description": "Данный список создаётся автоматически с вашим контактом внутри. Вы можете его отредактировать под свои потребности.",
"is_default": true,
"created_at": "2022-04-28T12:47:08.000000Z",
"updated_at": "2022-04-28T12:47:08.000000Z"
}
],
"links": {
"first": "https://api.kwiga.com/mailing/contact-lists?page=1",
"last": "https://api.kwiga.com/mailing/contact-lists?page=2",
"prev": null,
"next": "https://api.kwiga.com/mailing/contact-lists?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 2,
"links": [
{
"url": null,
"label": "« Попередня",
"active": false
},
{
"url": "https://api.kwiga.com/mailing/contact-lists?page=1",
"label": "1",
"active": true
},
{
"url": "https://api.kwiga.com/mailing/contact-lists?page=2",
"label": "2",
"active": false
},
{
"url": "https://api.kwiga.com/mailing/contact-lists?page=2",
"label": "Наступна »",
"active": false
}
],
"path": "https://api.kwiga.com/mailing/contact-lists",
"per_page": 2,
"to": 2,
"total": 3
}
}
HTTP Request
GET https://api.kwiga.com/mailing/contact-lists
URL Parameters
Parameter | Description |
---|---|
page (integer) |
Номер сторінки |
limit (integer) |
Кількість елементів вибірки |
Отримання групи контактів
Приклад запиту:
<?php
$headers = [
'Accept: application/json',
'Token: <Token>',
'Cabinet-Hash: <Cabinet-Hash>',
];
$id = 1;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.kwiga.com/mailing/contact-lists/' . $id);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response);
?>
curl --location --request GET 'https://api.kwiga.com/mailing/contact-lists/1' \
--header 'Content-Type: application/json' \
--header 'Token: <Token>' \
--header 'Cabinet-Hash: <Cabinet-Hash>'
Приклад відповіді:
{
"data": {
"id": 1,
"title": "Мой первый список",
"description": "Данный список создаётся автоматически с вашим контактом внутри. Вы можете его отредактировать под свои потребности.",
"is_default": true,
"created_at": "2022-04-28T12:47:08.000000Z",
"updated_at": "2022-04-28T12:47:08.000000Z",
"contacts": [
{
"id": 1,
"first_name": "Alex",
"middle_name": null,
"last_name": "Иванович Burt",
"name": "Иванович Burt Alex",
"sex": null,
"age": null,
"email": "admin@grandstep.com.ua",
"phone_country": "UA",
"phone_number": "983721222",
"city": null,
"phone": "+380983721222",
"created_at": "2022-04-28T12:47:07.000000Z",
"updated_at": "2022-04-28T12:47:08.000000Z"
}
],
"statistic": {
"contact_list_id": 1,
"count_contacts": 1
}
}
}
HTTP Request
GET https://api.kwiga.com/mailing/contact-lists/{id}
Створення групи контактів
Приклад запиту:
$headers = [
'Accept: application/json',
'Content-Type: application/x-www-form-urlencoded',
'Token: <Token>',
'Cabinet-Hash: <Cabinet-Hash>',
];
$data = [
'title' => 'Название группы',
'description' => 'описание'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.kwiga.com/mailing/contact-lists/');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$result = json_decode($response);
curl --location --request POST 'https://api.kwiga.com/mailing/contact-lists' \
--header 'Content-Type: application/json' \
--header 'Token: <Token>' \
--header 'Cabinet-Hash: <Cabinet-Hash>' \
--data-raw '{
"title": "Title",
"description": "Description"
}'
Приклад відповіді:
{
"data": {
"id": 3,
"title": "fsdaf asfsf dsafsda fsda",
"description": "1dsad sadsa ds dsa",
"is_default": false,
"created_at": "2022-05-04T09:57:37.000000Z",
"updated_at": "2022-05-04T09:57:37.000000Z"
}
}
HTTP Request
POST https://api.kwiga.com/mailing/contact-lists
Request
Parameter | Description |
---|---|
title (string) (required) |
Назва |
description (string) |
Опис |
Додавання контактів до групи
Приклад запиту:
$headers = [
'Accept: application/json',
'Content-Type: application/x-www-form-urlencoded',
'Token: <Token>',
'Cabinet-Hash: <Cabinet-Hash>',
];
$data = [
'contacts' => [
1,
2
],
'contact_lists' => [
1
]
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.kwiga.com/mailing/contact-lists/bulk-contacts');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$result = json_decode($response);
curl --location --request POST 'https://api.kwiga.com/mailing/contact-lists/bulk-contacts' \
--header 'Content-Type: application/json' \
--header 'Token: <Token>' \
--header 'Cabinet-Hash: <Cabinet-Hash>' \
--data-raw '{
"contacts": [
1,
2
],
"contact_lists": [
2
]
}'
Приклад відповіді:
{
"success": true
}
HTTP Request
POST https://api.kwiga.com/mailing/contact-lists/bulk-contacts
URL Parameters
Parameter | Description |
---|---|
contacts (array) (required) |
Контакти (ID) |
contact_lists (array) (required) |
Групи контактів (ID) |
Продажі. Купони
Список купонів
Приклад запиту:
<?php
// Запит без параметрів
$headers = [
'Accept: application/json',
'Token: <Token>',
'Cabinet-Hash: <Cabinet-Hash>',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.kwiga.com/coupons');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response);
?>
<?php
// Запит із фільтрацією
$headers = [
'Accept: application/json',
'Token: <Token>',
'Cabinet-Hash: <Cabinet-Hash>',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.kwiga.com/coupons?filters[date_from]=2022-04-15&filters[date_to]=2022-04-27');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response);
?>
curl --location --request GET 'https://api.kwiga.com/coupons' \
--header 'Content-Type: application/json' \
--header 'Token: <Token>' \
--header 'Cabinet-Hash: <Cabinet-Hash>'
curl --location --request GET 'https://api.kwiga.com/coupons?filters[date_from]=2022-04-15&filters[date_to]=2022-04-27' \
--header 'Content-Type: application/json' \
--header 'Token: <Token>' \
--header 'Cabinet-Hash: <Cabinet-Hash>'
Приклад відповіді:
{
"data": [
{
"id": 3,
"code": "KwigaSMVT-MD",
"reward": 30,
"is_fixed": true,
"is_disposable": false,
"used_amount": 0,
"total_uses": 10,
"total_uses_per_user": 1,
"user": {
"id": 3,
"avatar_url": "https://someurl.com",
"hash": "EL9p2ycy4Ypga715",
"name": "Test User",
"email": "test@example.com",
"tag_name": "TestUser"
},
"created_at": "2022-04-28T09:46:11.000000Z",
"updated_at": "2022-04-28T09:46:11.000000Z",
"deleted_at": null
}
]
}
GET https://api.kwiga.com/coupons
URL Parameters
Parameter | Description |
---|---|
filters[date_from] (2022-04-15) |
Фільтр за датою створення. Параметр 'від' |
filters[date_to] (2022-04-27) |
Фільтр за датою створення. Параметр 'до' |
Отримання купона
Приклад запиту:
<?php
$headers = [
'Accept: application/json',
'Token: <Token>',
'Cabinet-Hash: <Cabinet-Hash>',
];
$id = 1;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.kwiga.com/coupons/' . $id);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response);
?>
curl --location --request GET 'https://api.kwiga.com/coupons/1' \
--header 'Content-Type: application/json' \
--header 'Token: <Token>' \
--header 'Cabinet-Hash: <Cabinet-Hash>'
Приклад відповіді:
{
"data": {
"id": 1,
"code": "KwigaSMVT-MD",
"reward": 30,
"is_fixed": true,
"is_disposable": false,
"used_amount": 0,
"total_uses": 10,
"total_uses_per_user": 1,
"created_at": "2022-04-28T09:46:11.000000Z",
"updated_at": "2022-04-28T09:46:11.000000Z",
"deleted_at": null
}
}
HTTP Request
GET https://api.kwiga.com/coupons/{id}
Створити купон
Приклад запиту:
<?php
$headers = [
'Accept: application/json',
'Token: <Token>',
'Cabinet-Hash: <Cabinet-Hash>',
];
$data = [
'code' => 'MY-COUPON',
'reward' => 0,
'type_discount' => ['id' => 'discount_with_percent'],
'expires_at' => null,
'timezone' => ['id' => 375],
'total_uses' => 0,
'total_uses_per_user' => 0,
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.kwiga.com/coupons');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response);
?>
curl --location --request POST 'https://api.kwiga.com/coupons' \
--header 'Content-Type: application/json' \
--header 'Token: <Token>' \
--header 'Cabinet-Hash: <Cabinet-Hash>' \
--data-raw '{
"code": "MY-COUPON",
"reward": 100,
"type_discount": {
"id": "discount_with_percent"
},
"expires_at": null,
"timezone": {
"id": 375
},
"total_uses": 0,
"total_uses_per_user": 1
}'
Приклад відповіді:
{
"data": {
"id": 8,
"code": "MY-COUPON",
"reward": 100,
"type_discount": {
"id": "discount_with_percent",
"name": "In % of order/offer value"
},
"type_date_expired": {
"id": "indefinite_action",
"name": "Never expires"
},
"type_total_count_used": {
"id": "certain_amount",
"name": "A certain amount"
},
"type_used_contact_lists": {
"id": "all_users",
"name": "All users"
},
"is_fixed": false,
"is_active": true,
"used_amount": 0,
"has_infinite_used": true,
"has_access_contact_lists": false,
"total_uses": 0,
"total_uses_per_user": 1,
"contact_lists": [],
"type": {
"id": 4,
"title": "Offers"
},
"expires_at": null,
"expires_at_utc": null,
"timezone_id": null,
"currency_id": null,
"currency": null,
"created_at": "2024-01-09T16:17:55.000000Z",
"updated_at": "2024-01-09T16:17:55.000000Z",
"deleted_at": null
}
}
HTTP Request
POST https://api.kwiga.com/coupons
URL Parameters
Parameter | Description |
---|---|
code (string length:3-32) |
Код купону. Якщо не вказати, код згенерується автоматично |
type_discount.id (string) (required) |
Тип знижки: відсоток від суми - discount_with_percent або фіксована знижка - discount_with_currency |
expires_at (null|date|datetime) |
Термін дії купона. Якщо null чи не вказувати, то безстроково |
timezone.id (null|integer) |
Таймзона дати терміну дії купона |
total_uses (integer) |
Ліміт на кількість використань купона. 0 - без обмежень |
total_uses_per_user (integer) |
Ліміт на кількість використань купона одним користувачем |
Сертифікати
Отримання сертифікат за номером
Приклад запиту:
<?php
$headers = [
'Accept: application/json',
'Token: <Token>',
'Cabinet-Hash: <Cabinet-Hash>',
];
$certificateNumber = '1986-0001';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.kwiga.com/certificates/by-number/' . $certificateNumber);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response);
?>
curl --location --request GET 'https://api.kwiga.com/certificates/by-number/1986-0001' \
--header 'Content-Type: application/json' \
--header 'Token: <Token>' \
--header 'Cabinet-Hash: <Cabinet-Hash>'
Приклад відповіді:
{
"data": {
"id": 55,
"uuid": "262e7042-1933-42a9-ba01-e96d7d5110dc",
"cabinet_id": 1,
"user_id": 273,
"issued_at": "2023-07-25T15:36:44.000000Z",
"number": "1986-0001",
"link": "http://cabinet-1.kwiga.local/certificates/262e7042-1933-42a9-ba01-e96d7d5110dc",
"created_at": "2023-07-25T15:36:44.000000Z",
"updated_at": "2023-07-25T15:36:44.000000Z",
"finished_at": "2023-07-25T15:36:44.000000Z",
"points": 120,
"user": {
"id": 273,
"name": "test name",
"email": "test-student@kwiga.com"
},
"certificateble_title": "Test course"
}
}
HTTP Request
GET https://api.kwiga.com/certificates/by-number/{number}
Таймзони
Отримання списку таймзон
Приклад запиту:
<?php
$headers = [
'Accept: application/json',
'Token: <Token>',
'Cabinet-Hash: <Cabinet-Hash>',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.kwiga.com/timezones');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response);
?>
curl --location --request GET 'https://api.kwiga.com/timezones' \
--header 'Content-Type: application/json' \
--header 'Token: <Token>' \
--header 'Cabinet-Hash: <Cabinet-Hash>'
Приклад відповіді:
{
"data": [
{
"id": 1,
"name": "Asia/Kabul",
"name_full": "Asia/Kabul (UTC+04:30)",
"value": "UTC+04:30"
},
{
"id": 2,
"name": "Europe/Tirane",
"name_full": "Europe/Tirane (UTC+02:00)",
"value": "UTC+02:00"
},
...
]
}
GET https://api.kwiga.com/timezones