BlogTag
Sending envelopes
Upload a PDF, place fields, send a signing link, and reuse a template when the same form goes out again.
Related product pages
Guides
What is electronic signature software?
A plain-language pillar on electronic signature software: envelopes, fields, signing links, audit events, and the workspace features that keep a send on track.
How to send a document for signature in under 5 minutes
A timed walkthrough: open a workspace, upload a PDF, place signature fields, set reminder and expiry, and send a signing link — including the copy-link fallback when mail is not configured.
Envelope admin: void, correct, resend, and when signers decline
How Inkpacket handles an in-flight envelope: signer decline with a reason, void (links stop), correct the recipient on the same envelope, and resend the existing signing link.
Access codes for sensitive envelopes
How Inkpacket access codes lock a signing link: optional PIN on send or bulk send, hash at rest, lockout after wrong guesses, and why you share the code on a second channel.
Bulk send for HR and sales envelopes
Send one Inkpacket template to a list of names and emails: CSV or paste, column mapping, one envelope per unique address, shared reminders, expiry, and optional access code.
Embedded signing on your own site
Iframe an Inkpacket signing token on a host page you already operate: /embed/sign/TOKEN, frame-ancestors, EMBED_ALLOWED_ORIGINS, and postMessage events for viewed, signed, and completed.
Reminders and expiry so envelopes don’t stall
Set a reminder interval and an expiration on every Inkpacket send — workspace defaults of 3 and 14 days, interval 0 to skip nudges, and hourly expiry so outstanding links cannot sit forever.
Templates that reuse field layouts
Save an Inkpacket PDF and its signature, date, text, initials, checkbox, and select marks once. Start the next envelope from that workspace template — or bulk send it — without placing fields again.
Publish a Web Form from a template
Turn an Inkpacket workspace template into a public /form/SLUG. The filler does not sign in. Each submission creates an envelope and counts as one monthly envelope — Free includes 1 published Web Form at 5 packets a month.
Sequential vs parallel signing on one envelope
Add up to 20 recipients on one Inkpacket envelope. Sequential routing invites the current order first; parallel invites everyone at once. One decline still closes the whole envelope.
How to place signature fields on a PDF
Place signature, date, text, initials, checkbox, and select marks on an Inkpacket PDF. Coordinates are page percentages. Suggest starting layout is a page-count heuristic, not a model that reads the file.
What a completed envelope includes
After every Inkpacket signer finishes, pdf-lib stamps values onto a second stored PDF. Download it from the envelope, read the audit events, and optionally archive to Drive when credentials are set.
SMS signing invites are coming soon
Coming soon. Text-message (SMS) reminders are coming soon, and reminders go out by email today. Inkpacket does not text a signing link. The desk still shows the signing URL.
How to choose an envelope expiry
A decision guide for Inkpacket expiration: when to keep the 14-day default, when to set 0, how bulk and Web Forms inherit a window, and why expiry is a clock — not a void.
API vs desk: who should send the envelope
When an ops team should send from the Inkpacket desk and when to mint a Bearer token: templates, Idempotency-Key retries, the monthly envelope cap, and mail, SMS, and checkout are not open without credentials.
What is a signing envelope?
A signing envelope is the Inkpacket envelope around one PDF: fields, recipients, a tokenized link, and an audit trail from draft to filed copy — not a chain of forwarded files.
Web Form intake when you don’t have the emails
Use an Inkpacket Web Form when strangers should start the envelope: publish /form/SLUG from a template, collect name and email, and count each fill toward the monthly envelope cap — Free allows 5 packets a month.
How to send one envelope to multiple signers
Collect several signatures on one Inkpacket envelope: add up to 20 recipients, assign marks to each slot, choose sequential or parallel routing, and keep the audit on a single envelope id.
Assign fields to each signer on one envelope
Assign signature, date, text, initials, checkbox, and select marks to recipient slots on an Inkpacket envelope so a multi-signer PDF files with the right mark in the right box.
What happens after a signing reminder fires
After Inkpacket sends a reminder, the envelope stays SENT, the token stays the same, and only already-invited signers are nudged — until they sign, decline, you void, or the window expires.
When to void, correct, or resend an envelope
Pick the Inkpacket envelope-admin verb that keeps the same envelope id: void when the deal is off, correct when the recipient is wrong, resend when the link never arrived.
When to require an access code
Decide whether an Inkpacket signing link needs a PIN: require one when a forwarded URL would be a leak, share it on a second channel, and know the five-try, 15-minute lockout.
Embed signing versus a signing link
Choose an Inkpacket iframe or an invite URL: same token, same audit, different chrome. Embed when you already operate the host page; send a link when the inbox is the door.
Templates versus one-off envelopes
Choose an Inkpacket workspace template when you will send the same PDF again, or upload once when the file is unique. Bulk send and Web Forms need a saved layout; a one-off envelope does not create one.
Where uploaded PDFs are stored
Inkpacket stores each uploaded PDF on the envelope — S3-compatible when the S3_* keys are set, otherwise Local fallback. Drive archive is a separate completed-packet export and reports Drive not configured without credentials.
The Free plan 5-packet cap
Free allows 5 packets a month on Inkpacket. Lists burn the cap faster on Free. That live cap is shared by desk send, bulk rows, Web Form fills, and API send. Hitting it returns HTTP 402 ENVELOPE_LIMIT. Starter is 20 packets — more than Free.
Text-message reminders are coming soon
Coming soon. Text-message (SMS) reminders are coming soon, and reminders go out by email today. Inkpacket does not text a signing link. The envelope and the signing URL still exist.
Bulk send CSV column mapping
How Inkpacket maps a CSV or paste of names and emails on Bulk send: guessed columns, unique addresses, skipped rows, a 100-row job, and why preview exists before you spend the monthly envelope cap.
Operating a Web Form share link
After you publish an Inkpacket Web Form, the work is the share link: copy /form/SLUG, keep the PIN off the same page, close the form when intake should stop, and treat each fill as one envelope toward the monthly cap.
When parallel beats sequential routing
Pick parallel routing on one Inkpacket envelope when nobody should wait on another inbox. Sequential still owns countersigns. One decline closes the whole envelope either way — and one envelope is still one envelope.
Idempotency-Key on API sends
Send an Idempotency-Key on Inkpacket create, fill, fields, and send so a retried POST replays the original response. The same key with a different body returns 409. Void, resend, and correct do not use that header.
Payments honesty
Coming soon. Inkpacket can store a payment request on send. Without Stripe keys, or when STRIPE_CHECKOUT is off, the desk reports Payments not live / not configured. The signer was not charged. Signing still completes.
When Drive archive soft-fails
Coming soon. Google Drive archive copies a completed Inkpacket PDF and audit JSON to a folder you choose. Without credentials the desk reports Drive not configured and does not pretend the upload happened. The envelope still completes.
Embedded iframe parent page checklist
A parent-page checklist for Inkpacket embedded signing: allowlist the host, iframe /embed/sign/TOKEN, listen for inkpacket postMessage, keep the PIN off the page, and treat webhooks as the server record.
Access-code lockout recovery
After five incorrect Inkpacket access-code tries the page locks for 15 minutes and returns HTTP 429. Wait it out. There is no desk unlock. That 429 is a PIN lockout, not an API send cap.
Correct, void, or decline an envelope
Pick the Inkpacket verb that matches the mess: correct when the recipient is wrong, void when you stop the deal, decline when the signer refuses. One decline closes the envelope. Completed envelopes cannot be changed.
Free vs Starter envelope math
Inkpacket envelope arithmetic: Free is 5 sends a month, Starter is 20 — more than Free — plus 3 published Web Forms versus 1. Checkout is not open, so the workspace stays on Free.
Public form closed copy
Disable an Inkpacket Web Form and the public page says Form closed — This Web Form is no longer accepting submissions. Existing envelopes stay. That closed-copy honesty is not a void.
First-signer waiting message
After a sequential Inkpacket send the desk says First signer was invited. A later signer who opens early sees This envelope is waiting for an earlier signer. That waiting-page honesty is not a void.
Reminder cadence versus envelope expiry
Inkpacket reminder cadence and envelope expiry are two send fields, not one. Cadence nudges a SENT envelope. Expiry closes the link. Interval 0 skips nudges. Days 0 skips the window. That is cadence-versus-expiry honesty.
Resend after a soft-fail email
When Inkpacket skip-logs a signing invite, Envelope admin Resend emails the same token again — or logs again. The envelope stays. That resend-after-soft-fail honesty is not a second envelope and not a seat invite.
Web Form Free published-form cap
Free includes 1 published Inkpacket Web Form. A second publish returns HTTP 402 and names the plan limit — not ENVELOPE_LIMIT. Disable one, or stay on Free while checkout is not open. That is published-form-cap honesty.
Settings storage: S3 versus local
Inkpacket Settings → File storage shows S3-compatible when the S3_* keys are set, otherwise Local fallback. Uploads still work. GET /api/v1/health reports storage.configured and storage.backend. That is settings-storage honesty — not Drive.
Security headers and embed framing
Inkpacket sends nosniff, Referrer-Policy, and Permissions-Policy on every path. HSTS only when VERCEL_ENV=production. /sign and /embed omit X-Frame-Options and send frame-ancestors. Other routes stay SAMEORIGIN. That is embed-framing honesty.
Bulk send Free envelope math
Each unique Inkpacket bulk-send row is one envelope toward Free’s 5. Preview the count. A row that would exceed it returns HTTP 402 ENVELOPE_LIMIT. Starter is 20 — more than Free. That is list-math honesty.
Document list aging and status honesty
Inkpacket Documents lists draft, sent, completed, voided, expired, and declined. The hourly cron marks overdue SENT envelopes expired so the list stays honest. Aging is a status change, not a delete. That is list-aging honesty.
What counts as an envelope
An Inkpacket envelope is a created-and-sent envelope. Desk send, each unique bulk row, each Web Form fill, and API send count. Preview, publish, remind, resend, and Team invites do not. That is envelope-count honesty.
Copy the signing link after mail skips
When Inkpacket skip-logs a signing invite, copy the token from the envelope. The envelope already counted. That is copy-link honesty — not Envelope admin Resend, not a twin send, not a seat URL.
Settings email From and Reply-To
Inkpacket Settings → Outbound email shows emailConfigured only. From is RESEND_FROM_EMAIL or Inkpacket <noreply@inkpacket.com>. There is no workspace Reply-To field. That is from-line honesty — not a branded inbox you type in Settings.
When recipients share a sequential order
On sequential Inkpacket routing, recipients who share the same Order (1–20) sign in parallel, then the envelope advances. That is shared-order honesty — not a second routing mode and not fifty envelopes.
Access-code 429 versus API rate limit
Too many incorrect access codes returns HTTP 429 and Try again in 15 minutes. Send volume over the monthly cap is HTTP 402 ENVELOPE_LIMIT, not 429. A token over 120 requests per minute per token returns HTTP 429. That is pin-429 honesty — a PIN lockout, not a traffic throttle.
Bulk send: job created but send unfinished
If an Inkpacket bulk start fails after create, the desk says Job created, but sending did not finish. Open that job and retry. That is unfinished-job honesty — not a second CSV and not ENVELOPE_LIMIT by itself.
Embed iframe versus popup framing
Iframe Inkpacket at /embed/sign/TOKEN for compact chrome, or open /sign/TOKEN in a popup. Same token. Same access code. That is iframe-versus-popup honesty — two frames, not two envelopes.
Why a rejected PDF upload is not an envelope
An Inkpacket upload that is empty, not a PDF, unreadable, or over 15 MB is rejected. That refusal does not count toward the monthly envelope cap. That is rejected-upload honesty — not a hidden send.
Why Suggest starting layout does not read the PDF
Inkpacket Suggest starting layout places a signature, initials, and date from page count and recipient count. It does not read the PDF or guess labels with a model. That is suggest-layout honesty — not a missing AI setting.
Why File storage is unavailable is not a rejected upload
Inkpacket File storage is unavailable is an unreachable bucket after a PDF was accepted. It is not a picker reject and not a spend. That is storage-down honesty — not HTTP 402, not checkout.
Why a PDF has no page-count cap
An Inkpacket PDF needs at least one readable page. There is no separate page-count cap. Extra pages are not a plan unlock. That is page-count honesty — not HTTP 402, not checkout.
Why This envelope can no longer be sent is not an envelope limit
Inkpacket returns This envelope can no longer be sent when send hits an expired, voided, or declined envelope. That is send-lock honesty — not HTTP 402, not checkout.
Why The stored PDF is empty is not a rejected upload
Inkpacket returns The stored PDF is empty when a zero-byte object already landed. That is empty-store honesty — not a picker refusal, not checkout.
Why This PDF could not be opened is not a rejected upload
Inkpacket shows This PDF could not be opened on a damaged Documents row and offers Upload another PDF. That is list-open honesty — not a picker refusal, not checkout.
Why The PDF could not be loaded from storage is not a rejected upload
Inkpacket returns The PDF could not be loaded from storage when a stored object is missing. That is missing-store honesty — not a picker refusal, not checkout.
Why Only completed envelopes can be archived to Drive is not a Drive soft-fail
Inkpacket returns Only completed envelopes can be archived to Drive when Archive to Drive hits an envelope that is not completed. That is drive-complete honesty — not Drive not configured, not checkout.
Why Upload a PDF first is not a rejected upload
Inkpacket shows Upload a PDF first when a send-form hash opens Documents → new before a file is stored. That is hash-before-file honesty — not a picker refusal, not checkout.
Why Place at least one field before sending is not a published-form cap
Inkpacket returns Place at least one field before sending when desk or API send hits a draft with zero marks. That is send-needs-mark honesty — not a Web Form cap, not checkout.
Why This envelope does not request a payment is not a payment-not-live state
Inkpacket returns This envelope does not request a payment when a signer hits pay on an envelope that never collected. That is no-pay honesty — not Payments not live, not checkout.
Why Phone number must be a valid E.164 number is not an SMS soft-fail
Inkpacket returns Phone number must be a valid E.164 number when send or correct stores a phone that is not E.164. That is e164-phone honesty — not a text, and not checkout. Text-message (SMS) is coming soon.
Why Collecting a payment requires a positive amount is not a payment-not-live state
Inkpacket returns Collecting a payment requires a positive amount when send turns on collectPayment with no cents. That is amount-pay honesty — not Payments not live, not checkout.