> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Shopify KYC-приложение: верификация личности и возраста

> Didit для Shopify: верификация личности, проверка возраста и KYC. Без кода, от $0.33 за полный KYC, $10 бесплатно в месяц, без контрактов.

Добавьте верификацию личности Didit и ограничение доступа по возрасту в ваш магазин Shopify за несколько минут.
Приложение **Didit Verify** для Shopify устанавливает блок темы, который можно разместить на любой странице (аккаунт, оформление заказа, пользовательские целевые страницы), и создаёт сессии верификации на стороне сервера: ваш API-ключ остаётся внутри встроенного приложения и никогда не раскрывается в витрине магазина.
Результаты верификации отображаются прямо во вкладке **Верификации** приложения в админке Shopify, отдельный бэкенд для этого не нужен. Они также доступны через [webhook](https://docs.didit.me/ru/integration/webhooks.md) и [Didit API](https://docs.didit.me/ru/sessions-api/retrieve-session.md) для продавцов, которые ведут собственный бэкенд.
Для доступа к данным верификации, собранным через Shopify, не нужно входить в Didit Business Console.

## Предварительные требования

* Магазин Shopify (любой тариф)
* Аккаунт в [Didit Console](https://business.didit.me) с хотя бы одним сценарием

***

### Шаг 1: Установите приложение

1. Откройте ссылку для установки:

   [[https://admin.shopify.com/oauth/install?client\_id=cafa0d15227fb59bd47470b23eae7469](https://admin.shopify.com/oauth/install?client_id=cafa0d15227fb59bd47470b23eae7469)](https://admin.shopify.com/oauth/install?client_id=cafa0d15227fb59bd47470b23eae7469)

2. Выберите свой магазин (если у вас несколько магазинов)

3. Нажмите **Install**, чтобы добавить приложение в магазин

> [!NOTE]
>
> Приложению требуется только одно разрешение, `read_customers`. Оно используется для предзаполнения и перекрёстной проверки данных, и только если включена опция **Allow customer-approved prefill** и вошедший в аккаунт клиент выбрал необязательный флажок предоставления данных.

***

### Шаг 2: Настройте учётные данные Didit

После установки Didit Verify открывается в админке Shopify.
Используйте раздел **Настройки**, чтобы подключить приложение к вашему аккаунту Didit.

#### Получите API-ключ

1. Войдите в [Didit Business Console](https://business.didit.me)
2. Перейдите в раздел **API и webhook** в левом боковом меню
3. Скопируйте свой API-ключ

![Как получить API-ключ в Didit Business Console](https://mintcdn.com/didit-0f962782/gKLcMCmiLycklBol/images/shopify-how-to-get-api-key.jpg?fit=max\&auto=format\&n=gKLcMCmiLycklBol\&q=85\&s=9027ca685cc296a400e78d320a566453)

4. Вставьте API-ключ в поле **Didit API Key** в настройках Shopify

#### Получите идентификатор сценария

1. В Didit Business Console перейдите в раздел **Сценарии**
2. Выберите сценарий, который хотите использовать (или создайте новый)
3. Скопируйте **Идентификатор сценария** (UUID вида `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`)

![Как получить идентификатор сценария в Didit Business Console](https://mintcdn.com/didit-0f962782/gKLcMCmiLycklBol/images/shopify-how-to-get-workflow-id.jpg?fit=max\&auto=format\&n=gKLcMCmiLycklBol\&q=85\&s=529dc681169efc0a6cdc96d6c0e0a605)

4. Вставьте идентификатор сценария в поле **Didit Workflow ID**

#### Сохраните настройки

Перед сохранением выберите срок хранения в разделе **Хранение данных**.
Этот срок применяется к существующим и будущим верификациям магазина, поэтому выбирайте срок, который нужен вашему магазину.
Нажмите **Save Settings**.
Должно появиться сообщение об успешном сохранении:

![Настройки Shopify успешно сохранены](https://mintcdn.com/didit-0f962782/gKLcMCmiLycklBol/images/shopify-settings-saved-successfuly.jpg?fit=max\&auto=format\&n=gKLcMCmiLycklBol\&q=85\&s=93dcf3469f902876ae831075da75a628)

***

### Шаг 3: Добавьте кнопку верификации в тему

1. В админке Shopify перейдите в **Online Store** → **Themes**
2. Нажмите **Customize** для активной темы
3. Перейдите на страницу, где нужна кнопка верификации (например, страница аккаунта или пользовательская страница)
4. Нажмите **Добавить раздел** или **Add block**
5. Откройте вкладку **Приложения**
6. Выберите **Didit Verify**

Кнопка верификации появится в вашей теме. Её можно перетащить, чтобы изменить положение внутри раздела.

***

## Доступ к данным верификации

Проверка приложений Shopify (требование 5.1.5) требует, чтобы данные, собранные через сценарий, размещённый на Shopify, были доступны продавцу **в контексте админки или приложения Shopify**, а не только на внешней панели.
Приложение Didit Verify соответствует этому требованию без дополнительной настройки: бэкенд, приёмник вебхуков или собственный интерфейс не нужны.

### Вкладка «Верификации» (по умолчанию, без кода)

Откройте в админке Shopify **Приложения** → **Didit Verify** → **Верификации**, чтобы увидеть все сессии верификации, собранные через вашу витрину: статус, клиент, страна и время, в рамках вашего магазина.
Выберите сессию, чтобы просмотреть обзор решения, поля личности, отдельные проверки, предупреждения и доступные доказательства.
Вы можете переходить между разделами **Настройки**, **Верификации**, **Конфиденциальность** и **Проверка человеком**, не покидая админку Shopify.
После сохранения настроек эти вкладки остаются доступными.

> [!NOTE]
>
> Вкладка «Верификации» загружает данные только тогда, когда вы открываете приложение из админки Shopify. Если вы видите сообщение с просьбой открыть страницу заново, вернитесь к **Приложения** → **Didit Verify** на боковой панели админки Shopify.

Didit Business Console (`business.didit.me`) - это отдельная административная панель для настройки (API-ключи, сценарии, адреса назначения вебхуков).
Не предлагайте продавцам использовать её для просмотра данных верификации, собранных через Shopify: это не соответствует требованию Shopify к доступу к данным.
Console нужна только для первоначальной настройки и получения учётных данных.

### Для продавцов с собственным бэкендом (необязательно)

Если у вас есть собственный бэкенд и вы хотите хранить копию данных верификации у себя, например для запуска логики выполнения заказа, Didit также передаёт результаты через вебхук и API по запросу, в дополнение к вкладке «Верификации» выше.

**1. Сессия верификации создана**

Приложение Shopify создаёт сессию на стороне сервера с использованием вашего API-ключа Didit. Клиент проходит сценарий верификации в блоке темы (модальное окно или встроенный режим).

**2. Результат передан через вебхук**

Когда сессия достигает конечного статуса, Didit отправляет подписанный вебхук `status.updated` на адрес, который вы настроили в Didit Business Console в разделе **API и вебхуки**.
Тело вебхука включает полный [объект решения](https://docs.didit.me/ru/integration/webhooks.md#структура-payload) - ту же схему, что возвращает `GET /v3/session/{id}/decision/` - для статусов `Approved`, `Declined`, `In Review` и `Abandoned`.
Для других конечных статусов (например, `Expired`, `Kyc Expired`) передаётся изменение статуса без payload решения; для проверки состояния сессии вызовите API.

**3. Получение по запросу (необязательно)**

Ваш бэкенд также может в любой момент вызвать [`GET /v3/session/{sessionId}/decision/`](https://docs.didit.me/ru/sessions-api/retrieve-session), чтобы получить полные данные решения (поля личности, проверка живости, AML, сравнение лиц и т. д.).

#### Настройка вебхуков для Shopify

1. В [Didit Business Console](https://business.didit.me) перейдите в **API и вебхуки** → **Вебхуки**
2. Создайте адрес назначения вебхука, указывающий на эндпоинт вашего бэкенда (HTTPS, доступный из интернета)
3. Подпишитесь как минимум на события `status.updated` и `data.updated`
4. Сохраните возвращённый `secret_shared_key`, чтобы проверять подписи HMAC-SHA256 во входящих вебхуках

Полный контракт, примеры проверки подписи на Node.js, Python и PHP, а также поведение при повторных попытках описаны в [руководстве по вебхукам](https://docs.didit.me/ru/integration/webhooks.md).

#### Получение решения по сессии через API

```bash theme={null}
curl https://verification.didit.me/v3/session/<SESSION_ID>/decision/ \
  -H "x-api-key: <YOUR_API_KEY>"
```

Ответ включает `session_kind`, `status` и все массивы данных по функциям (`id_verifications`, `liveness_checks`, `face_matches`, `aml_screenings` и др.). Полную схему ответа и справочник полей см. в разделе [Получение сессии](https://docs.didit.me/ru/sessions-api/retrieve-session.md).

***

## Параметры конфигурации

### Настройки страницы параметров

Эти параметры задаются в настройках приложения (открываются через **Приложения** → **Didit Verify** в админке Shopify):

| Параметр | Описание |
| - | - |
| **API Key** | Ваш API-ключ Didit (обязательно) |
| **Workflow ID** | Сценарий верификации, который будет использоваться (обязательно) |
| **Vendor Data** | Способ связывания сессий с пользователями в вашей Didit Console: **Customer ID** (передаётся как `shopify-<customer-id>`), **Customer Email**, **Shop + Customer ID** (передаётся как `<shop-domain>-<customer-id>`) или **None**. Применяется только тогда, когда клиент вошёл в систему. |
| **Callback URL** | Необязательный URL, на который пользователи перенаправляются после верификации. Didit добавляет `verificationSessionId` и `status` как параметры запроса. |
| **Callback Method** | Какое устройство обрабатывает перенаправление: **Default (initiator)**, **Initiator**, **Completer** или **Both** |
| **Language** | Язык интерфейса верификации (автоопределение или конкретный язык) |
| **Require Customer Login** | Если включено, верифицироваться могут только клиенты, которые вошли в систему |
| **Allow customer-approved prefill** | Показывает необязательный флажок для передачи имени, email, телефона и адреса вошедшего клиента для предзаполнения и проверки личности. Данные отправляются только тогда, когда клиент выбирает этот вариант. |
| **Automatically delete after (days)** | Выберите, как долго магазину нужны записи верификации. Выбранный период применяется к существующим и будущим записям этого магазина. Удаление необратимо. |

### Настройки конфиденциальности для клиентов

Блок на витрине предлагает необязательный флажок для передачи данных аккаунта для предзаполнения и проверки личности.
Если флажок не отмечен, клиент вводит данные сам.

В разделе **Варианты верификации** вошедший клиент может запросить ручную проверку или отозвать согласие и запросить удаление своих данных верификации.
Проверка человеком приостанавливает автоматическую верификацию и добавляет запрос в **Приложения → Didit Verify → Проверка человеком**.
Свяжитесь с клиентом и подберите подходящую альтернативу до того, как завершить этот запрос.
Завершение запроса на ручную проверку не одобряет верификацию и не одобряет покупку.

Отзыв согласия сразу прекращает действие существующей ссылки на верификацию и блокирует новые верификации, пока выполняется удаление.
Витрина подтверждает получение запроса, но не утверждает, что удаление уже завершено.

## Выполнение запросов о персональных данных

Откройте **Приложения → Didit Verify → Конфиденциальность**, чтобы отслеживать экспорт данных клиентов и запросы на удаление, поступившие от Shopify или витрины магазина.

* **Экспорт данных клиента:** Скачайте подготовленный ZIP-архив, передайте его через защищённый процесс поддержки клиентов, затем выберите **I have delivered this export**.
* **Удаление данных клиента:** Запрос остаётся в работе, пока не будут удалены связанные с магазином записи верификации клиента, загруженные файлы и запросы на ручную проверку.
* **Требует внимания:** Следуйте инструкциям в запросе, чтобы устранить отсутствие ID клиента, или обратитесь в поддержку Didit, если профиль содержит данные из другого магазина или для другой цели.

Экспорт содержит записи верификации, загруженные файлы и запросы на ручную проверку, связанные с запрашивающим магазином и клиентом.
Временные скачивания становятся недоступны через семь дней. Если нужно, используйте **Retry after resolving**, чтобы подготовить новый файл для скачивания.
Скачанный экспорт необходимо обрабатывать в соответствии с вашими внутренними процедурами поддержки клиентов и защиты данных.

Задайте срок хранения в **Настройки → Хранение данных**.
Старые данные верификации удаляются автоматически, более новые верификации остаются доступными.
Если срок хранения для магазина не выбран, продолжает действовать срок хранения, заданный на уровне приложения.
Проверьте раздел **Конфиденциальность** на наличие запросов, требующих внимания.

Когда запрос на удаление получает статус **Удален**, удаление необратимо, а удалённые медиафайлы больше недоступны.
Израсходованные кредиты и записи в списке блокировки, которыми управляют отдельно, не затрагиваются.

## Настройки блока темы

Эти настройки задаются в редакторе темы Shopify при выборе блока Didit Verify:

#### Подключение

| Настройка | Описание |
| - | - |
| **Режим** | **App workflow** (рекомендуется) использует сценарий, сохранённый в настройках приложения. **UniLink workflow** использует публичную ссылку на сценарий из подключённого аккаунта Didit. Оба режима создают сессии, привязанные к магазину, с результатами, доступными в приложении. |
| **UniLink URL** | Используется только в режиме UniLink. Укажите активную ссылку из аккаунта Didit, подключённого в настройках приложения. Клиенты должны войти в свой аккаунт магазина. |

#### Отображение

| Настройка | Описание |
| - | - |
| **Режим отображения** | **Modal** - открывает верификацию во всплывающем окне поверх страницы. **Embedded** - показывает верификацию непосредственно под кнопкой. |
| **Показывать кнопку закрытия** | Показать или скрыть кнопку X для закрытия модального окна верификации |
| **Диалог подтверждения выхода** | Запрашивать у пользователей подтверждение перед закрытием верификации |
| **Автоматически закрывать по завершении** | Автоматически закрывать модальное окно по завершении верификации |
| **Ведение отладочных журналов** | Включить вывод логов браузерной консоли для устранения неполадок |

#### Внешний вид кнопки

| Настройка | Описание |
| - | - |
| **Текст кнопки** | Текст, отображаемый на кнопке (по умолчанию: "Verify your Identity") |
| **Текст при успешном завершении** | Текст, отображаемый после успешной верификации (по умолчанию: "Identity Verified ✓") |
| **Цвет фона** | Цвет фона кнопки |
| **Цвет текста** | Цвет текста кнопки |
| **Радиус скругления** | Скругление углов кнопки (0–50px) |
| **Вертикальный отступ** | Отступ сверху и снизу (0–40px) |
| **Горизонтальный отступ** | Отступ слева и справа (0–60px) |
| **Размер шрифта** | Размер текста кнопки (10–32px) |

***

## Рекомендуемая настройка

Для большинства магазинов рекомендуем:

* **Режим:** App workflow (использует сценарий, сохранённый в настройках приложения)
* **Режим отображения:** Modal (работает везде, без проблем с версткой)
* **Require Customer Login:** включено (связывает верификацию с аккаунтами клиентов)
* **Allow customer-approved prefill:** включено (клиенты сами решают, делиться ли данными своего магазина)

***

## Тестирование

1. Откройте предпросмотр темы или перейдите в свой магазин
2. Перейдите на страницу с кнопкой Didit Verify
3. Нажмите **Verify your Identity**
4. Пройдите процесс верификации
5. Проверьте на своём сервере доставку webhook или вызовите [GET /v3/session/{id}/decision/](https://docs.didit.me/ru/sessions-api/retrieve-session.md), чтобы получить результат верификации

> [!NOTE]
>
> Песочница бесплатна: каждое приложение в песочнице может создать 500 тестовых сессий за 24 часа, так что полный процесс можно проверить без затрат. В продакшн-режиме бесплатный тариф включает кредит на сумму \$10 в месяц.

***

## Устранение неполадок

### Кнопка не реагирует на нажатие

* Убедитесь, что вы сохранили API-ключ и Workflow ID в настройках
* Проверьте, что Workflow ID принадлежит тому же приложению, что и ваш API-ключ
* Включите **Ведение отладочных журналов** в настройках блока и проверьте консоль браузера на наличие ошибок

### Ошибка "Didit credentials not configured"

* В приложении нет сохранённого API-ключа или Workflow ID для этого магазина. Откройте **Приложения** → **Didit Verify**, заполните оба поля и нажмите **Save Settings**

### Ошибка "You must be logged in to verify your identity"

* Включена настройка **Require Customer Login** (по умолчанию). Клиенту нужно сначала войти в свой аккаунт магазина. Если нужна верификация для гостей, отключите эту настройку в настройках приложения

### Настройки не сохраняются

* "API key validation failed" - скопируйте API-ключ заново из [Didit Business Console](https://business.didit.me) и убедитесь, что в нём нет лишних пробелов
* "This workflow does not belong to your application" - Workflow ID принадлежит другому приложению Didit, чем ваш API-ключ; скопируйте оба значения из одного приложения

## Поддержка (круглосуточно)

Наша команда готова помочь вам начать работу.

> [card] [Эл. почта](mailto:hello@didit.me)
>
> Напишите нам на [hello@didit.me](mailto:hello@didit.me).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.