IDfier Developers

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=true
  • send=true emails the signers their invitation. Leave it out to show each signingUrl in your own product instead.
  • reference is your own id for the document, e.g. a booking.
  • returnUrl is 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=signed

See Signers and the signing page.

Collect 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.
}

On this page