מנהל חנות מקוונת נהג לבזבז עד שעתיים על אישורי חוזים עם לקוחות — לאחר האינטגרציה עם SignNow, הזמן קוצץ ל-5 דקות. חיבור חתימה אלקטרונית לאתר נתקע לעיתים קרובות בגלל הגדרת JWT מורכבת, SDK וזמני אישור ארוכים. SignNow מבית airSlate בולטת עם REST API פשוט ומחירים נוחים. הצוות שלנו ביצע למעלה מ-30 אינטגרציות כאלה — מחנויות מקוונות קטנות ועד פורטלים ארגוניים. החיסכון הממוצע בזמן החתימה הוא עד 70%, ולעסק קטן זה יכול להיות חיסכון של עד 2,000 דולר בחודש בעלויות עבודה ידנית. צרו קשר לייעוץ — נכין פתרון לפרויקט שלכם.
כיצד SignNow מפחיתה את עלויות ניהול המסמכים
SignNow אינה דורשת רכישת SDK או תשתית מורכבת. OAuth 2.0 ובקשות REST ישירות מספיקות. לפי ה-SignNow REST API הרשמי, המערכת מטפלת בעד 1000 בקשות בדקה — מספיק לכל עסק בינוני. עלויות האינטגרציה מוחזרות תוך 2–3 חודשים באמצעות הפחתת עבודה ידנית. השוואה: אישור חוזה ידני אורך בממוצע שעתיים, עם SignNow — 5–10 דקות. SignNow זולה פי 3 מ-DocuSign לעסקים קטנים, מה שהופך אותה לבחירה משתלמת לאוטומציה של ניהול מסמכים מקוון.
כיצד להגדיר אימות ב-SignNow
SignNow משתמשת ב-OAuth 2.0 עם ה-grant 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, אך ברוב המקרים 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(); } } מספיק.
העלאת מסמך והצבת שדות
לאחר האימות, אנו מעלים PDF (גודל מקסימלי 50 MB) ומוסיפים שדות חתימה. SignNow תומכת בשדות חכמים — אם ה-PDF מכיל עוגנים כמו client_credentials, שדות החתימה ממוקמים אוטומטית. זה נוח יותר מאשר חישוב קואורדינטות ידני.
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 שולחת webhook. אנו רושמים את האירוע [[sig|req|signer1]] ומטפלים בו:
// Регистрация вебхука
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();
} חתימה מוטמעת: חתימה מבלי לעזוב את האתר שלכם
אם אתם צריכים שהלקוח יחתום מבלי לנווט לאתר אחר, אנו משתמשים בחתימה מוטמעת — מקבלים קישור (תקף ל-60 דקות) ומטמיעים אותו ב-iframe. זהו מאפיין מפתח לחתימה דרך 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 לאחר השלמת החתימה.
למה לבחור בחתימה מוטמעת?
חתימה מוטמעת מבטלת הפניות לשירות חיצוני — הלקוח נשאר באתר שלכם. זה מגביר אמון והמרות. הקישור תקף ל-60 דקות; לאחר החתימה, נשלח postMessage שהדף שלכם קולט. אם נדרשת התאמה אישית עמוקה יותר, SignNow מאפשרת להגדיר את ערכת הצבעים של ה-iframe.
השוואת SignNow מול DocuSign
| קריטריון | SignNow | DocuSign |
|---|---|---|
| API | REST טהור, ללא צורך ב-SDK | SDK זמין, אך OAuth מורכב יותר |
| חתימה מוטמעת | זמינה, אך עם ממשק מוגבל | מתקדמת, עם התאמה אישית |
| שדות חכמים | עוגנים ב-PDF | תמיכה בשדות דרך API |
| מחיר | זולה יותר לעסקים קטנים ובינוניים | יקרה יותר, עם יותר תכונות |
| אחסון מסמכים | אין אחסון פיסקלי | מסלול ביקורת מובנה |
SignNow משתלמת יותר לעסקים בינוניים בזכות פשטות ה-API והמחיר. העלות הממוצעת לחתימת מסמך נמוכה פי 2–3.
טעויות אינטגרציה נפוצות
- אי שמירת הטוקן במטמון — כל בקשה מקבלת טוקן חדש, מה שמאט את הפעולות.
- התעלמות מ-webhooks — בלעדיהם לא תדעו מתי מסמך נחתם.
- קידוד קואורדינטות שדות בצורה קבועה — עדיף להשתמש בעוגנים.
- אי טיפול בשגיאות — SignNow מחזירה 401 על פקיעת טוקן, 404 על מסמכים שנמחקו.
שלבי העבודה שלנו
| שלב | משך | תוצאה |
|---|---|---|
| ניתוח | יום אחד | מפרט אינטגרציה |
| הגדרת OAuth | חצי יום | טוקן עובד עם מטמון |
| העלאה ושדות | יום אחד | העלאת PDF, שדות חכמים |
| שליחה ו-webhooks | חצי יום | הזמנות, טיפול באירועים |
| חתימה מוטמעת (אם נדרש) | יום אחד | iframe עם חתימה |
| בדיקות | חצי יום | ניפוי שגיאות, טיפול בשגיאות |
מה כוללת האינטגרציה שלנו (תוצרים)
- הגדרת OAuth ושמירת טוקן במטמון
- העלאת מסמכים והטמעת שדות חכמים
- מנגנון שליחת הזמנות וטיפול ב-webhooks
- אינטגרציית חתימה מוטמעת (אם נדרש)
- בדיקות וכתיבת תיעוד
- הדרכה לצוות שלכם על השימוש במערכת
- תמיכה לאחר האינטגרציה למשך 30 יום
- גישה ללוח המחוונים שלנו לניטור לוגים של webhooks
לוחות זמנים: אינטגרציה בסיסית — 2–3 ימי עסקים, עם חתימה מוטמעת — 3–4 ימים. המחיר נקבע באופן אישי לאחר הניתוח.
קבלו ייעוץ — נעריך את הפרויקט שלכם ונציע פתרון סוהר. הניסיון של הצוות שלנו כולל עשרות אינטגרציות חתימה אלקטרונית. אנו מבטיחים אמינות ועמידה בלוחות זמנים. צרו קשר — נכין הצעה מסחרית תוך יום אחד.







