Інтеграція електронного підпису SignNow на сайт

Керівник інтернет-магазину витрачав до 2 годин на узгодження договорів з клієнтами — після інтеграції з SignNow час скоротився до 5 хвилин. Підключення електронного підпису до сайту часто гальмується складним налаштуванням JWT, SDK та тривалих узгоджень. SignNow від airSlate виділяється простим REST

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Інтеграція електронного підпису SignNow на сайт
Середній
~3-5 днів

Наші компетенції:

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1418
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    983
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1242
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    983
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    997

Керівник інтернет-магазину витрачав до 2 годин на узгодження договорів з клієнтами — після інтеграції з SignNow час скоротився до 5 хвилин. Підключення електронного підпису до сайту часто гальмується складним налаштуванням JWT, SDK та тривалих узгоджень. SignNow від airSlate виділяється простим REST API та доступною ціною. Наша команда за час роботи реалізувала понад 30 таких інтеграцій — від невеликих інтернет-магазинів до корпоративних порталів. Середня економія часу на підписання — до 70%. Зв'яжіться з нами для консультації — ми підготуємо рішення під ваш проєкт.

Як SignNow знижує витрати на документообіг?

SignNow не вимагає придбання SDK та складної інфраструктури. Достатньо OAuth 2.0 і прямих REST-запитів. За даними офіційного REST API SignNow, система витримує до 1000 запитів на хвилину — вистачає для будь-якого середнього бізнесу. Витрати на інтеграцію окупаються за 2–3 місяці за рахунок скорочення ручної праці. Порівняйте: ручне узгодження договору в середньому займає 2 години, з SignNow — 5–10 хвилин.

Як налаштувати аутентифікацію в SignNow?

SignNow використовує OAuth 2.0 з грантом client_credentials для серверних інтеграцій. Це простіше, ніж у DocuSign — не потрібен JWT або Legacy Header. Ось як ми отримуємо токен:

class SignNowAuthService { private string $baseUrl = 'https://api.signnow.com'; public function getToken(): string { $response = Http::withBasicAuth( config('services.signnow.client_id'), config('services.signnow.client_secret') )->asForm()->post("{$this->baseUrl}/oauth2/token", [ 'grant_type' => 'client_credentials', 'scope' => '*', ]); $token = $response->json('access_token'); Cache::put('signnow_token', $token, now()->addMinutes(55)); return $token; } public function token(): string { return Cache::get('signnow_token') ?? $this->getToken(); } } 

Токен живе 3600 секунд, ми кешуємо його із запасом у 5 хвилин. Для операцій від імені конкретного користувача використовується Password Grant, але в більшості кейсів достатньо client_credentials.

Завантаження документа та проставляння полів

Після аутентифікації завантажуємо PDF (максимальний розмір — 50 МБ) і додаємо поля підписів. SignNow підтримує smart fields — якщо в PDF є анкори виду [[sig|req|signer1]], поля підпису ставляться автоматично. Це зручніше, ніж обчислювати координати вручну.

class SignNowDocumentService { public function __construct(private SignNowAuthService $auth) {} public function uploadDocument(string $pdfPath, string $fileName): string { $response = Http::withToken($this->auth->token()) ->attach('file', file_get_contents($pdfPath), $fileName) ->post('https://api.signnow.com/document'); return $response->json('id'); } public function addSignatureFields(string $documentId, array $signers): void { $fields = []; $roleIndex = 0; foreach ($signers as $signer) { $fields[] = [ 'type' => 'signature', 'role' => $signer['role'] ?? "Signer {$roleIndex}", 'role_id' => (string)$roleIndex, 'required' => true, 'height' => 40, 'width' => 200, 'x' => 100, 'y' => 600, 'page_number' => 0, ]; $roleIndex++; } Http::withToken($this->auth->token()) ->put("https://api.signnow.com/document/{$documentId}", ['fields' => $fields]); } } 

Ми використовуємо анкори — це скорочує час інтеграції та виключає помилки позиціонування.

Як відправити документ на підпис та отримати статус?

Для відправлення запрошення підписантам використовуємо метод invite. SignNow дозволяє налаштувати нагадування та термін дії:

public function sendInvite(string $documentId, array $signers): string { $recipients = []; foreach ($signers as $index => $signer) { $recipients[] = [ 'email' => $signer['email'], 'role' => $signer['role'] ?? "Signer {$index}", 'role_id' => (string)$index, 'order' => $index + 1, 'reminder' => [ 'remind_before' => 0, 'remind_after' => 3, 'remind_repeat' => 2, ], 'expiration_days' => 30, 'subject' => 'Будь ласка, підпишіть документ', 'message' => "Здравствуйте, {$signer['name']}! Прошу вас підписати прикріплений документ.", ]; } $response = Http::withToken($this->auth->token()) ->post("https://api.signnow.com/document/{$documentId}/invite", [ 'to' => $recipients, 'from' => config('services.signnow.sender_email'), ]); return $response->json('status'); } 

Після підписання SignNow надсилає вебхук. Ми реєструємо подію document.complete і обробляємо її:

// Реєстрація вебхука Http::withToken($this->auth->token()) ->post('https://api.signnow.com/api/v2/events', [ 'event' => 'document.complete', 'entity_id' => $documentId, 'action' => 'callback', 'callback_url' => route('webhooks.signnow'), ]); // Обробник public function handleSignNowWebhook(Request $request): Response { $data = $request->json()->all(); if (($data['event'] ?? '') === 'document.complete') { $documentId = $data['meta']['document_id']; DownloadSignedDocumentJob::dispatch($documentId); } return response()->noContent(); } 

Embedded signing: підпис без переходу на SignNow

Якщо потрібно, щоб клієнт підписав документ, не покидаючи ваш сайт, використовуємо embedded signing — отримуємо посилання (діє 60 хвилин) і вставляємо його в iframe.

public function getSigningLink(string $documentId, string $email): string { $response = Http::withToken($this->auth->token()) ->post("https://api.signnow.com/link", [ 'document_id' => $documentId, ]); return $response->json('url'); } 

Це працює для більшості браузерів, але вимагає обробки postMessage після завершення.

Чому варто обрати embedded signing?

Embedded signing виключає переходи на сторонній сервіс — клієнт залишається на вашому сайті. Це підвищує довіру та конверсію. Посилання дійсне 60 хвилин, після підписання надсилається postMessage, який ловить ваша сторінка. Якщо потрібна глибша кастомізація, SignNow надає можливість налаштувати колірну схему iframe.

Порівняння SignNow та DocuSign

Критерій SignNow DocuSign
API Чистий REST, без обов'язкового SDK Є SDK, але складніший OAuth
Embedded signing Є, але обмежений UI Розширений, з кастомізацією
Smart fields Анкори в PDF Підтримка полів через API
Ціна Дешевше для SMB Дорожче, але більше функцій
Зберігання документів Немає фіскального сховища Є вбудований аудит-трек

SignNow вигідніше для середнього бізнесу завдяки простоті API та ціноутворенню. Середня вартість підписання одного документа в 2-3 рази нижча.

Типові помилки при інтеграції

  1. Не кешувати токен — кожен запит отримує новий, що уповільнює роботу.
  2. Ігнорувати вебхуки — без них не дізнаєтеся, коли документ підписано.
  3. Жорстко задавати координати полів — краще використовувати анкори.
  4. Не обробляти помилки — SignNow повертає 401 при простроченні токена, 404 при видаленому документі.

Етапи нашої роботи

Етап Тривалість Результат
Аналіз 1 день Специфікація інтеграції
Налаштування OAuth 0.5 дня Робочий токен з кешуванням
Завантаження та поля 1 день Завантаження PDF, smart fields
Відправка та вебхуки 0.5 дня Запрошення, обробка подій
Embedded signing (якщо потрібно) 1 день Iframe з підписом
Тестування 0.5 дня Налагодження, обробка помилок

Що входить у нашу роботу з інтеграції

  • Налаштування OAuth та кешування токенів
  • Реалізація завантаження документів та додавання smart fields
  • Розробка механізму відправлення invites та обробки вебхуків
  • Інтеграція embedded signing (якщо потрібно)
  • Написання тестів та документації

Терміни: базова інтеграція — 2–3 робочих дні, з embedded signing — 3–4 дні. Вартість розраховується індивідуально.

Отримайте консультацію — оцінимо ваш проєкт і запропонуємо рішення під ключ. Досвід нашої команди — десятки інтеграцій електронного підпису. Гарантуємо надійність та дотримання термінів. Зв'яжіться з нами — ми підготуємо комерційну пропозицію за один день.