Start with the API
From account to first signature request in one call, with your development key.
Create your API key
Full quick start
To add electronic signatures to an application with IgniSign: create an account and a development API key, call the one-call signature-request endpoint with the document and the signers, let the signer sign in your embedded page or from the link IgniSign sends, then receive the proof through a webhook or download it from the API.
1. Get a development API key
Create an account
Sign up in the console and confirm your email. An application is created for you with three environments: development, staging and production.
Create the key
In your application, open "API Keys", choose the development environment and create a key. It starts with skv2_ and authenticates every API call.
Development is free
Signatures, SMS codes and identity checks are simulated in development and nothing is billed. Move to staging or production when you are ready.
2. Create a signature request in one call
Document, signers, signature profile: one request. IgniSign emails the signer, or you embed the signing page.
curl -X POST \
https://api.ignisign.io/v4/signature-requests/one-call-sign \
-H 'Authorization: Bearer skv2_your_api_key_here' \
-H 'Content-Type: application/json' \
-d '{
"title": "Contract signature",
"signatureMethod": "SIMPLE_STD",
"signers": [
{
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe"
}
],
"documents": [
{
"originalName": "contract.pdf",
"mimeType": "application/pdf",
"base64": "JVBERi0xLjcKJb...[Base64 encoded content]"
}
]
}'const { IgnisignClient } = require('ignisign-node');
const client = new IgnisignClient({
applicationId: 'your-application-id',
apiKey: 'skv2_your_api_key_here'
});
const signatureRequest = await client.createSignatureRequestInOneCall({
title: "Contract signature",
signatureMethod: "SIMPLE_STD",
signers: [
{ email: "[email protected]", firstName: "John", lastName: "Doe" }
],
documents: [
{
originalName: "contract.pdf",
mimeType: "application/pdf",
base64: "JVBERi0xLjcKJb...[Base64 encoded content]"
}
]
});import requests
url = "https://api.ignisign.io/v4/signature-requests/one-call-sign"
headers = {
"Authorization": "Bearer skv2_your_api_key_here",
"Content-Type": "application/json"
}
payload = {
"title": "Contract signature",
"signatureMethod": "SIMPLE_STD",
"signers": [
{"email": "[email protected]", "firstName": "John", "lastName": "Doe"}
],
"documents": [
{
"originalName": "contract.pdf",
"mimeType": "application/pdf",
"base64": "JVBERi0xLjcKJb...[Base64 encoded content]"
}
]
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())One-call endpoint reference
3. Choose how the signer signs
Embedded
When: your users are already authenticated in your application and should not leave it.
How: the signing page runs in an iframe; your page and the iframe exchange window messages; the signer's first factor is a secret your backend received by webhook.
BySide (hosted link)
When: the signer is outside your application, or you want the fastest integration.
How: IgniSign emails an invitation with a link to a hosted signing page in your colours and language; you receive the proof when it is done.
Bare signature
When: the document must never leave your systems.
How: your application sends the SHA-256 hash through an OAuth2 authorization-code flow with PKCE; IgniSign returns a PKCS#7 signature that you place into the document yourself.
Machine-to-machine seal
When: a system, not a person, must seal documents or data.
How: a machine credential bound to an approver of your organization; the seal is returned synchronously.
4. Get the proof
Webhooks
Topics
Signature request completed, expired or cancelled; signature created; signature proof generated; signer created; application settings updated.
Event log and manual resend
Every delivery is logged in the console with its status. IgniSign does not retry a failed delivery automatically: resend it from the log, or poll the API.
Verification
Each delivery carries a verification token that your endpoint checks back against the API.
Proof files
Signed PDF
The document with the signatures and a signature page, bound together (PAdES).
Signature files
PKCS#7, XMLDSig or JWS for data and hash-only documents; each signature file is retrievable per document.
Audit log
Timestamped record of the signing session, from the API or the console.
Webhooks documentation
Signature proofs
Environments, keys and the signer experience
Three environments per application
Development
Free, with simulated SMS codes and identity checks.
Staging
Real verification services; signatures are free, SMS and identity verification are billed.
Production
Standard prices. Each environment has its own API keys, webhooks and settings.
Brandable signer experience
Your logo, colours, support contact and default language
Set per application in the console.
30+ languages
The signer interface follows the language you set on the request.
Authentication
Email link, one-time SMS code, TOTP, passkey, or your own SSO for the signer.
See pricing
Look and feel
Developer questions
Do I need a payment method to start?
No. The development environment is free and not billed. A payment method is required before you use staging or production beyond the 5 free simple signatures per organization and per month.
Does IgniSign retry a failed webhook delivery?
No. A failed delivery is recorded in the event log of the console, where you can resend it manually; you can also poll the API for the status of a signature request.
Can the signer sign without leaving my application?
Yes. In embedded mode the signing page runs in an iframe inside your application and talks to your page through window messages. Alternatively, IgniSign can email the signer a link to a hosted signing page (BySide).
Can I sign a document that IgniSign must not receive?
Yes. With a bare signature your application sends only the hash of the document through an OAuth2 authorization-code flow with PKCE; IgniSign returns a PKCS#7 signature and never receives the file.
Next steps
Quick start
API reference
Guides
SDKs
Examples on GitHub
Create your API key