Quickstart
Your first signed contract in four calls.
Get an API key
In IDfier Sign, a company owner or admin creates a key under Company → API. They choose which person the key acts as and, if you like, one workspace it is limited to. The key is shown once: keep it on your server.
export IDFIER_SIGN_KEY=isk_live_…Create the contract
Upload the PDF with the signers:
curl https://sign.idfier.com/api/v1/documents \
-H "Authorization: Bearer $IDFIER_SIGN_KEY" \
-H "Idempotency-Key: booking-1042" \
-F file=@contract.pdf \
-F title="Babysitting agreement" \
-F reference=booking-1042 \
-F returnUrl=https://yourapp.example/bookings/1042 \
-F 'signers=[{"email":"parent@example.com"},{"email":"sitter@example.com"}]' \
-F send=truesend=trueemails the signers their invitation. Leave it out to show eachsigningUrlin your own product instead.referenceis your own id for the document, e.g. a booking.returnUrlis where signers go afterwards.
201 Created:
{
"id": "6654…",
"title": "Babysitting agreement",
"reference": "booking-1042",
"status": "in_signature",
"verificationMethods": ["idfier"],
"signers": [
{ "email": "parent@example.com", "status": "pending", "signingUrl": "https://sign.idfier.com/sign/e3cf…" },
{ "email": "sitter@example.com", "status": "pending", "signingUrl": "…" }
],
"delivery": { "sent": ["parent@example.com", "sitter@example.com"], "notSent": [] }
}Signers verify and sign
Each signer opens their link, verifies with IDfier, reads the contract and
signs on one focused page. Then they return to your returnUrl:
https://yourapp.example/bookings/1042?idfiersign_document=6654…&idfiersign_status=signedCollect the signed PDF
Look the document up by your reference (or by id) until its status is
completed, then download /signed-file, sealed with the signers' verified
identities, and /certificate:
const headers = { Authorization: `Bearer ${process.env.IDFIER_SIGN_KEY}` };
const res = await fetch('https://sign.idfier.com/api/v1/documents?reference=booking-1042', { headers });
const { data } = await res.json();
if (data[0]?.status === 'completed') {
const pdf = await fetch(`https://sign.idfier.com/api/v1/documents/${data[0].id}/signed-file`, { headers });
// Store the sealed PDF with the booking.
}