SignNow E-Signature Integration for Your Website

An online store manager used to spend up to 2 hours on contract approvals with clients — after integration with SignNow, the time was cut to 5 minutes. Connecting e-signature to a site often stalls due to complex JWT setup, SDKs, and lengthy approvals. SignNow from airSlate stands out with a simple

Development and maintenance of all types of websites:

Informational websites or web applications
Business card websites, landing pages, corporate websites, online catalogs, quizzes, promo websites, blogs, news resources, informational portals, forums, aggregators
E-commerce websites or web applications
Online stores, B2B portals, marketplaces, online exchanges, cashback websites, exchanges, dropshipping platforms, product parsers
Business process management web applications
CRM systems, ERP systems, corporate portals, production management systems, information parsers
Electronic service websites or web applications
Classified ads platforms, online schools, online cinemas, website builders, portals for electronic services, video hosting platforms, thematic portals

These are just some of the technical types of websites we work with, and each of them can have its own specific features and functionality, as well as be customized to meet the specific needs and goals of the client.

Our competencies:

Frequently Asked Questions

Latest works

  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1281
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1237
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    977
  • image_crm_chasseurs_493_0.webp
    CRM development for Chasseurs
    1025
  • image_website-sbh_0.webp
    Website development for SBH Partners
    1103
  • image_website-_0.webp
    Website development for Red Pear
    550

An online store manager used to spend up to 2 hours on contract approvals with clients — after integration with SignNow, the time was cut to 5 minutes. Connecting e-signature to a site often stalls due to complex JWT setup, SDKs, and lengthy approvals. SignNow from airSlate stands out with a simple REST API and affordable pricing. Our team has delivered over 30 such integrations — from small online stores to corporate portals. Average time savings on signing is up to 70%, and for a small business, that can mean saving up to $2,000 per month in manual labor costs. Contact us for a consultation — we will prepare a solution for your project.

How SignNow Reduces Document Workflow Costs

SignNow does not require purchasing an SDK or complex infrastructure. OAuth 2.0 and direct REST requests are sufficient. According to the official SignNow REST API, the system handles up to 1000 requests per minute — enough for any mid-sized business. Integration costs pay off in 2–3 months through reduced manual labor. Compare: manual contract approval takes an average of 2 hours, with SignNow — 5–10 minutes. SignNow is 3 times cheaper than DocuSign for small businesses, making it a cost-effective choice for online document workflow automation.

How to Set Up Authentication in SignNow

SignNow uses OAuth 2.0 with the client_credentials grant for server integrations. This is simpler than DocuSign — no JWT or Legacy Header needed. Here is how we obtain a token:

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(); } } 

The token lives for 3600 seconds; we cache it with a 5-minute buffer. For operations on behalf of a specific user, Password Grant is used, but in most cases client_credentials is sufficient.

Uploading a Document and Placing Fields

After authentication, we upload a PDF (max size 50 MB) and add signature fields. SignNow supports smart fields — if the PDF contains anchors like [[sig|req|signer1]], signature fields are placed automatically. This is more convenient than manually calculating coordinates.

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]); } } 

We use anchors — this reduces integration time and eliminates field positioning errors.

How to Send a Document for Signing and Get Status

To send an invitation to signers, we use the invite method. SignNow allows setting reminders and expiration:

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' => 'Please sign the document', 'message' => "Hello, {$signer['name']}! Please sign the attached document.", ]; } $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'); } 

After signing, SignNow sends a webhook. We register the document.complete event and handle it:

// Register webhook 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'), ]); // Handler 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: Sign Without Leaving Your Site

If you need the client to sign without navigating away from your site, we use embedded signing — get a link (valid 60 minutes) and embed it in an iframe. This is a key feature for iframe signing.

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'); } 

This works in most browsers, but requires handling postMessage after completion.

Why Choose Embedded Signing?

Embedded signing eliminates redirects to a third-party service — the client stays on your site. This increases trust and conversion. The link is valid for 60 minutes; after signing, a postMessage is sent that your page catches. If deeper customization is needed, SignNow allows configuring the iframe color scheme.

SignNow vs DocuSign Comparison

Criterion SignNow DocuSign
API Pure REST, no SDK required SDK available, but OAuth more complex
Embedded signing Available, but limited UI Advanced, with customization
Smart fields Anchors in PDF Field support via API
Price Cheaper for SMB More expensive, more features
Document storage No fiscal storage Built-in audit trail

SignNow is more advantageous for mid-sized businesses due to API simplicity and pricing. The average cost per document signing is 2–3 times lower.

Typical Integration Mistakes

  1. Not caching the token — each request gets a new one, slowing down operations.
  2. Ignoring webhooks — without them, you won't know when a document is signed.
  3. Hardcoding field coordinates — better to use anchors.
  4. Not handling errors — SignNow returns 401 on token expiry, 404 on deleted documents.

Our Work Stages

Stage Duration Result
Analysis 1 day Integration specification
OAuth setup 0.5 day Working token with caching
Upload and fields 1 day PDF upload, smart fields
Send and webhooks 0.5 day Invitations, event handling
Embedded signing (if needed) 1 day Iframe with signature
Testing 0.5 day Debugging, error handling

What Our Integration Includes (Deliverables)

  • OAuth setup and token caching
  • Document upload and smart fields implementation
  • Invite sending mechanism and webhook handling
  • Embedded signing integration (if required)
  • Tests and documentation writing
  • Training for your team on system usage
  • Post-integration support for 30 days
  • Access to our monitoring dashboard for webhook logs

Timelines: basic integration — 2–3 business days, with embedded signing — 3–4 days. Pricing is individual after analysis.

Get a consultation — we will assess your project and propose a turnkey solution. Our team's expertise spans dozens of e-signature integrations. We guarantee reliability and deadlines. Contact us — we will prepare a commercial proposal within one day.