Blog
Guides for sending, filing, and fixing envelopes
Long-form notes on the desk that already ships: prepare a PDF, place fields, send a signing link, publish a Web Form, route several signers, lock a link, embed it, remind it, reuse the layout, file the stamped copy, and administer the envelope when the first send is not the last word. Ask Inkpacket (bottom right) can retrieve from these guides or open a page.
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.
Public API and signed webhooks for developers
Mint an org-scoped Bearer token, create envelopes from a template, send with an optional access code, and verify HMAC-SHA256 webhook signatures on the envelope lifecycle.
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.
Choosing a plan: Free vs paid lanes
How to pick an Inkpacket lane: Free at 5 packets a month and 1 published Web Form, then Starter at 20 envelopes with 3 Web Forms — more envelopes than Free. Same desk — including sequential and parallel routing — on every plan. Billing is published, not charging.
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.
Bulk send vs Web Forms: which tool starts the envelope
Choose between an Inkpacket bulk job and a published Web Form: you already have the emails, or strangers start themselves. Both count toward the monthly envelope cap — Free allows 5 packets a month.
How to read an Inkpacket audit trail
Read created, sent, viewed, signed, completed, declined, voided, corrected, and expired on an Inkpacket envelope — what each event proves, what it does not, and when webhooks or Drive export the same log.
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.
Webhook retries explained
How Inkpacket delivers signed webhook POSTs: first attempt immediately, pending retries on the hourly envelope job, 5 attempts then failed, the last-12 log, and why there is no replay button.
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.
Create an envelope from a template via the API
Mint an org-scoped Bearer token, POST /api/v1/packets with a templateId, fill known values, and send with an Idempotency-Key — one envelope toward the monthly 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.
Listen for envelope status webhooks
Subscribe to Inkpacket envelope events — sent, viewed, signed, completed, expired, declined, voided, corrected — verify HMAC-SHA256, and do not treat iframe postMessage as the server record.
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.
Planning team seats on Inkpacket
Inkpacket seat counts are planning numbers: Free 1, Starter 3, Growth 10, Agency 50. Invite does not refuse when a workspace is full. Monthly envelopes and published Web Forms are the live gates.
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.
When webhook delivery fails
Inkpacket still sends the envelope when a webhook POST misses. Pending rows retry on the hourly job, up to 5 attempts, then failed. There is no replay button. Read the last-12 log, fix the URL, and wait for the next real event.
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.
When workspace invite email soft-fails
A Team invite on Inkpacket is created even when Resend is missing. The desk shows Invite email was not sent and the invite URL. That seat-invite soft-fail is not a seat-cap refusal.
Mint and revoke API Bearer tokens
Owners and admins mint an Inkpacket ip_… secret once at Settings, send it as Authorization: Bearer, and revoke it by id. The token-mint revoke loop stores a SHA-256 hash, not the plaintext.
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.
Web Form reminders and expiry on publish
Inkpacket Web Form reminder days (0–90) and expiration (0–365) are set when you publish. Later fills inherit that pair. Envelopes already created keep the days they were born with. That is publish-cadence honesty.
Workspace team invite versus signing invite
An Inkpacket Team invite is a seat URL. A signing invite is an envelope URL. Both can say Invite email was not sent. Only the envelope counts as an envelope. That is invite-object 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.
When Free is enough
Stay on Inkpacket Free when 5 packets a month and one published Web Form cover the month. Starter is 20 envelopes — more than Free. Checkout is not open. That is stay-on-free honesty, not a competitor comparison.
When to set a Web Form access code
Set an optional PIN when you publish an Inkpacket Web Form if a public /form/SLUG would be a leak. Later fills inherit that code. Share it separately. That is web-form-pin honesty — not an envelope access code on send.
Void after a partial sign
An Inkpacket envelope stays SENT after the first signer marks it. Void still works. Later links die. You cannot un-sign or void a completed envelope. That is partial-void honesty — not a rewrite of the audit.
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.
Correct an envelope mid-flight
Correct the outstanding signer on a sent Inkpacket envelope — name, email, or phone — without minting a twin. The previous token retires when the email changes. That is mid-flight-correct honesty, not void-and-recreate.
Decline closes the envelope
One Inkpacket decline closes the whole envelope — later sequential signers are not invited, parallel links die, reminders stop. That is decline-close honesty, not a per-signer skip.
Web Form disable versus delete
Inkpacket Web Forms have Disable form and Publish again. There is no delete control. The slug stays. Existing envelopes stay. That is disable-versus-delete honesty.
API fill then send
After POST /api/v1/packets with a templateId, POST /fill with known values, then POST /send. Fill is not send. Send is the envelope. That is fill-then-send honesty — not a one-shot create that pretends the draft already went out.
Mobile desk hamburger menu map
On a phone, Inkpacket’s desk sidebar is Open desk menu — a hamburger drawer at #desk-mobile-nav. Help is not a row. That is hamburger-map honesty, not a missing Team page.
Workspace billing checkout
Inkpacket Billing at /desk/billing#checkout is not open. Checkout and the customer portal do not charge. Workspaces stay on Free. That is checkout honesty, not a live card form.
When seat-invite email soft-fails versus signing invite
A Team seat invite and a signing invite can both say Invite email was not sent. Copy inviteUrl on Team, signingUrl on the envelope. That is seat-invite-soft-fail-versus-signing honesty — same skip, different object.
Webhook signature verify checklist
Verify Inkpacket webhooks as t=<unix>,v1=<hex> with HMAC-SHA256 of timestamp.body and the workspace signing secret. Reject a mismatch. That is signature-verify honesty — not a test-send button.
Template field types overview
An Inkpacket template holds signature, date, text, initials, checkbox, and select marks — up to 80 — assigned to recipient slots 1–20. Select needs two options. That is field-types-overview honesty, not a model that reads the PDF.
Free published Web Form 402 versus envelope limit
A second Inkpacket Web Form publish on Free returns HTTP 402 and names the plan limit. A 6th send returns HTTP 402 ENVELOPE_LIMIT. That is two-402 honesty — same status, different gate.
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.
What the audit log records
An Inkpacket envelope records created, sent, viewed, signed, completed, declined, voided, corrected, and expired. It does not record PIN tries, plaintext codes, or card data. That is audit-record honesty — the desk log, not a mystery export.
Void after a partial sign versus decline
After someone has marked an Inkpacket envelope, the sender can still void. A later signer can still decline. Both close the envelope. That is void-versus-decline honesty — two verbs, one dead envelope, not an un-sign.
Email change retires the signing token
On an Inkpacket correct, changing the outstanding email retires the previous token. A name-only or phone-only fix can keep it. That is token-retire honesty — not resend, not a twin envelope.
Workspace switcher versus mobile drawer
On a phone, Inkpacket’s workspace switcher sits above Open desk menu. The drawer is #desk-mobile-nav. Help and Sign out are not rows. That is switcher-versus-drawer honesty — two chrome pieces, not a missing Team page.
Idempotency-Key on create, fill, and send
Inkpacket accepts Idempotency-Key on create, fill, fields, and send. Use a different key per step. Reusing a create key on send returns 409. That is create-fill-send-key honesty — not one key for the whole worker.
Void does not email the signer
Voiding an Inkpacket envelope kills every signing and embed link. It does not email the signer. The link simply dies. That is silent-void honesty — tell outstanding people out of band.
Resend does not rotate the signing token
Inkpacket Resend emails the existing signing link. The token stays. Only an email-change correct retires it. That is same-token-resend honesty — not a new envelope, not a new URL.
Why expired is not voided
When an Inkpacket signing window ends, status becomes expired. That is not a void and not a cancel. Envelope admin will not reopen it. That is expired-not-voided honesty — send a new envelope if the work still needs a mark.
Why expiration 0 means the link does not expire
On an Inkpacket send, expiration 0 means the signing link does not expire. It is not expire-now. Reminder interval 0 is a different zero. That is expiry-zero honesty.
Members cannot mint API tokens
Inkpacket members can send from the desk. They cannot mint or revoke org-scoped Bearer tokens. That is member-token honesty — not a plan gate, not a missing Settings page.
Reminders skip uninvited sequential signers
On a sequential Inkpacket envelope, reminders and resend only email people who already have a live invite. Later orders wait. That is uninvited-reminder honesty — not a skip, not a leak.
Phone-only correct keeps the signing token
Correcting only the phone — or only the name — on a sent Inkpacket envelope keeps the signing token. Only an email-change correct retires it. That is phone-correct honesty, not a rotate and not a twin envelope.
Why completed envelopes cannot be changed
Once an Inkpacket envelope is completed, the stamped PDF is the record. You cannot void, correct, or resend it. That is completed-lock honesty — not a hidden edit, not a rewrite of the audit.
Why GET /api/v1/health needs no Bearer token
GET /api/v1/health is public. It does not take a Bearer token. A 200 there is not permission to POST envelopes. That is health-public honesty — flags, not a secret, not a member mint.
Why the access code is not in the invite
An Inkpacket access code is a second secret. It is not in the invite email and not in the SMS. Share it separately. That is pin-channel honesty — not a missing PIN, not a mail bug.
Why webhooks have no test-send
Inkpacket Settings shows the last 12 webhook deliveries. There is no test-send or replay button. Send an envelope after saving a URL. That is no-test-send honesty — not a missing Settings card.
Why a decline reason is required
An Inkpacket decline needs a reason — 500 characters or fewer. An empty reason is rejected. That is decline-reason honesty, not a void and not a silent refusal.
Why saving a template is not an envelope
Saving an Inkpacket template does not count toward the monthly envelope cap. Sending the draft does. That is template-save honesty — not a hidden send, not a Free-plan tease.
Why a template with zero fields cannot publish
An Inkpacket Web Form starts from a workspace template. A template with zero fields cannot be published. That is zero-field-publish honesty — not a missing Settings toggle.
Why members can send but cannot invite
Inkpacket members can send envelopes but cannot invite teammates. Owner and admin create the seat invite. That is member-invite honesty — not a seat-cap 402, not a mint.
Why Bearer token required is not Invalid API token
A missing Inkpacket Authorization header returns 401 Bearer token required. A bad or revoked token returns 401 Invalid API token. That is bearer-versus-invalid honesty — two 401s, not a 429, not health.
Why only sent envelopes can use void, correct, or resend
Inkpacket void, correct, and resend work on SENT envelopes only. Draft, completed, expired, declined, and already-voided ids hide those controls. That is sent-only-admin honesty — not a missing Settings toggle.
Why you cannot delete a template a Web Form still uses
Inkpacket blocks template delete while a Web Form still uses that layout. Disable or delete the form first. That is template-delete honesty — not a hidden send, not a Free-plan tease.
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 an API token never crosses workspaces
An Inkpacket Bearer token is org-scoped. A secret from workspace A is 401 Invalid API token on workspace B. That is token-workspace honesty — not a missing header, not a 429.
Why an envelope stops at 20 recipients
An Inkpacket envelope accepts up to 20 recipients. A 21st slot is not a second envelope and not a plan unlock. That is recipient-cap honesty — not HTTP 402, not checkout.
Why a template stops at 80 fields
An Inkpacket template accepts 80 fields. An 81st mark is not a second envelope and not a plan unlock. That is field-cap honesty — not HTTP 402, not checkout.
Why a bulk send job stops at 100 unique emails
An Inkpacket bulk send job accepts 100 unique emails. A 101st address is not a plan unlock and not HTTP 402. That is job-cap honesty — not checkout, not a second template.
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 you cannot pick a Web Form slug
Inkpacket generates a Web Form slug from the title. You do not pick it. A second publish is a second URL. That is slug-generation honesty — not a hidden rename, not checkout.
Why Settings only shows the last 12 webhook deliveries
Inkpacket Settings shows the last 12 webhook deliveries with status, attempt count, and last error. Older rows are not a plan unlock. That is webhook-log honesty — not a missing replay.
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 an access code cannot contain spaces
An Inkpacket access code must be 4–32 characters with no spaces. A space is rejected on the send form. That is pin-format honesty — not a lockout, not a missing invite.
Why a webhook URL must be HTTPS
Inkpacket webhook URLs require HTTPS except on localhost or .test hosts. An http:// receiver is refused. That is webhook-https honesty — not a missing test-send, not checkout.
Why a select field needs two options
An Inkpacket select field needs at least two comma-separated options. One choice is not a menu. That is select-options honesty — not a missing model, not checkout.
Why the API token is shown only once
Inkpacket shows the full ip_… API token once at mint. After that the list shows the prefix. That is token-once honesty — not a missing export, 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 there is no template-count cap
Inkpacket has no separate template-count cap. Saving another layout is not a plan unlock. That is template-count honesty — not HTTP 402, not checkout.
Why a duplicate bulk email is one envelope
Inkpacket sends a bulk-send row once per unique email. A repeated address is not a second envelope. That is duplicate-email honesty — not HTTP 402, not checkout.
Why a checkbox stamps an X
An Inkpacket checkbox stamps an X when checked. It is not a one-option select and not a plan unlock. That is checkbox-stamp honesty — not a missing model, not checkout.
Why This envelope is already voided is not a completed lock
Inkpacket returns This envelope is already voided when you void an envelope that is already voided. That is already-voided honesty — not a completed lock, not checkout.
Why This envelope can no longer be edited is not a completed lock
Inkpacket returns This envelope can no longer be edited when fill or field replace hits a closed envelope. That is edit-lock honesty — not a completed-admin lock, 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 This envelope has no fields to fill is not a published-form cap
Inkpacket returns This envelope has no fields to fill when API fill hits an envelope with zero marks. That is no-fields-fill honesty — not a Web Form cap, not checkout.
Why Each recipient needs a unique email is not a bulk skip
Inkpacket returns Each recipient needs a unique email when two recipients on one envelope share an address. That is unique-email honesty — not a bulk skip, 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 There is no outstanding signer on this envelope is not a completed lock
Inkpacket returns There is no outstanding signer on this envelope when correct or resend finds nobody left to act. That is no-outstanding honesty — not a completed lock, not checkout.
Why This envelope was already declined is not a completed lock
Inkpacket returns This envelope was already declined on a second decline, and This envelope can no longer be declined when status is not sent. That is already-declined honesty — not a completed lock, 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 Signer name and email are required is not a unique-email 400
Inkpacket returns Signer name and email are required when send has no recipient row. That is missing-recipient honesty — not a repeated inbox, not checkout.
Why Provide at least one field value is not a published-form cap
Inkpacket returns Provide at least one field value when API fill hits an envelope that has marks but an empty body. That is empty-fill honesty — not no-fields-fill, not checkout.
Why That signer is not outstanding on this envelope is not a completed lock
Inkpacket returns That signer is not outstanding on this envelope when correct names someone who already finished. That is named-signer honesty — not an empty outstanding list, not checkout.
Why X is already a recipient on this envelope is not a unique-email 400
Inkpacket returns that address is already a recipient on this envelope when send adds an inbox that already sits on the draft. That is already-on-packet honesty — not a unique-email 400, not checkout.
Why Field X was not found on this envelope is not a published-form cap
Inkpacket returns Field X was not found on this envelope when API fill names an id or label that is not on the envelope. That is miss-fill honesty — not an empty body, not checkout.
Why a no-op correct is not a completed lock
Inkpacket returns Change the signer name, email, or phone to correct this envelope when correct posts the same values already stored. That is no-op-correct honesty — not a finished signer, 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.
Send an envelope on Free
Open a workspace, or go to the desk if you already have one. No card while Stripe is off.
Open a workspace