Подготавливаем страницу…
Подготавливаем страницу…
Готовые инструкции и сниппеты для популярных платформ. Каждая страница чётко указывает, какой ключ выпустить (pk_ или sk_) и какую защиту включить (Origin / IP / HMAC) — это самые частые прокол при интеграции.
Вместо отдельного ключа на каждую форму — один ключ с forms_scope=[id1, id2, …] и form_id в body каждого запроса. Меньше путаницы, проще ротация, меньше env-переменных.
Там персональные snippet'ы с уже подставленными API-ключом и form_id под вашу форму. Не нужно копировать pk_xxx из примеров на этой странице.
6 пошаговых гайдов. На каждой странице — копируемые сниппеты, правильный тип ключа и нужная защита.
JS-сниппет в блок T123 или в HEAD. Перехват submit за 2 минуты.
Защита: Origin
Открыть инструкцию →Contact Form 7, WPForms. PHP-hook (sk_+IP) или JS-event (pk_+Origin).
Защита: Origin / IP
Открыть инструкцию →Server-side через OnAfterFormResultAdd. Для CMS Bitrix и Bitrix24.
Защита: IP
Открыть инструкцию →Чистый HTML + vanilla JS. fetch() с публичным ключом.
Защита: Origin
Открыть инструкцию →Хук в onSubmit вашего компонента. Примеры React и Vue 3.
Защита: Origin (+wildcard)
Открыть инструкцию →PHP / Node.js / Python. IP whitelist для static IP или HMAC для контейнеров.
Защита: IP / HMAC
Открыть инструкцию →Подставьте свой API-ключ и form_id — получите готовый код для своей платформы.
<script>
document.addEventListener('submit', function(e) {
if (!e.target.matches('form[name="form12345"]')) return;
const fd = new FormData(e.target);
fetch('https://v2.1opd.ru/api/v2/create-agreement', {
method: 'POST',
headers: { 'API-KEY': 'pk_xxxxxxxxxxxxxxxxxxxx', 'Content-Type': 'application/json' },
body: JSON.stringify({
form_id: 1,
hash_field: fd.get('email'),
fields: Array.from(fd.entries()).map(([k, v]) => ({ field: k, value: String(v) }))
})
}).then(r => r.json()).then(d => console.log('1ОПД hash:', d.hash));
});
</script>Это демо-генератор. Реальные ключи получаются в личном кабинете 1ОПД, раздел «API-ключи».
Все endpoints v2, форматы, коды ошибок, HMAC, Origin/IP whitelist, forms_scope. Таблица «Какую защиту выбрать».
Открыть →Не нашли свою платформу или хотите, чтобы мы интегрировали под ключ — напишите нам.
Контакты →Один multi-form ключ на сайт — это наш дефолт и рекомендация. В ЛК выпускается ключ с forms_scope=[id1, id2, …], и дальше в каждом запросе вы передаёте form_id в body. Backend проверит, что form_id в scope ключа. Отдельные ключи-на-форму имеют смысл только когда формы обслуживают разные команды или требуют разной защиты (например, форма обратной связи через pk_, а CRM-интеграция через sk_+HMAC).
pk_ (publishable) — для браузера: можно встроить в HTML и JS, защита через allowed_origins. sk_ (secret) — только server-side (PHP/Node/Python), его нельзя публиковать, для него доступны IP-whitelist и HMAC. Если сомневаетесь — посмотрите таблицу «Какую защиту выбрать» в API Reference.
Каждое отправленное согласие сохраняется как запись с hash (идентификатор), полями формы, временем, IP, User-Agent. По hash потом можно получить, обновить или удалить запись — это закрывает требования 152-ФЗ по доказательству согласия и обработке запросов субъектов.
Нет. Интеграция перехватывает submit (или server-side хук) и параллельно отправляет копию данных в 1ОПД. Логика самой формы — отправка письма, запись в CRM — остаётся как была.
Запрос вернёт ошибку, но это не блокирует отправку самой формы — пользователь ничего не заметит. В client-side сниппетах вызов идёт без await на UI. Для критичных потоков — server-side с очередью.