API reference · v1.0.0

Nex-Sign API reference

Every endpoint in the Nex-Sign electronic signature API, with its parameters, request body, responses and error codes. Generated from the OpenAPI 3.1 specification, so this page and openapi.json never drift apart. New to the API? Start with the developer guide.

How do I authenticate with the Nex-Sign API?

Send your API token as a Bearer token on every request. Your API token. The business is inferred from the token. All endpoints are served from https://nex-sign.com over HTTPS.

curl https://nex-sign.com/v1/envelopes \
  -H "Authorization: Bearer <YOUR_TOKEN>"

Uniform envelope. Every response — success or failure — has the shape { success, data, error, meta }. Read success first, then data or error.

Envelopes

Create, track, download and cancel signing envelopes.

GET/v1/envelopes

List envelopes

Query parameters

limitinteger (1–100), default 20
cursorstring
statusEnvelopeStatus

Responses

200A page of envelopes. EnvelopeListEnvelope

POST/v1/envelopes

Create & send an envelope

Multipart request: one or more files plus a JSON payload. Returns 202; conversion, delivery and sealing run asynchronously. A field targets its document by documentIndex (0-based upload position, preferred) or documentName (a repeated filename is rejected).

Request body multipart/form-data

filesarray of string (binary)requiredOne or more DOCX files.
payloadstringrequiredJSON-encoded CreateEnvelope (see schema).

Responses

202Accepted — envelope created and dispatched. EnvelopeEnvelope
402Uniform error envelope. ErrorEnvelope
409Uniform error envelope. ErrorEnvelope
422Uniform error envelope. ErrorEnvelope

GET/v1/envelopes/{id}

Get envelope detail (recipients + documents)

Responses

200Envelope with recipients and documents. EnvelopeDetailEnvelope
404Uniform error envelope. ErrorEnvelope

GET/v1/envelopes/{id}/audit

Get the envelope audit trail

Responses

200Ordered audit events (created, sent, viewed, signed, completed, voided…).

GET/v1/envelopes/{id}/documents/{docId}/download

Get a short-lived download URL

Returns JSON { url, expiresInSeconds } (not a redirect). The URL is a pre-signed S3 link valid for 900 seconds (15 min). Fetch the docId from GET /v1/envelopes/{id} first.

Path parameters

docIdstring (uuid)required

Query parameters

typesource | rendered | signed_docx | signed_pdfrequiredsource = original DOCX · rendered = signer preview PDF · signed_docx = signed working copy · signed_pdf = sealed legal record (with audit certificate).

Responses

200A time-limited download link. DownloadEnvelope
404Uniform error envelope. ErrorEnvelope

POST/v1/envelopes/{id}/remind

Re-send the invite to recipients who haven't signed

Responses

202Reminder queued. EnvelopeEnvelope

POST/v1/envelopes/{id}/void

Void (cancel) an envelope

Cancels signing. The recipients' magic links are blocked immediately — a canceled document can no longer be signed — and an envelope.voided webhook fires.

Request body application/json

reasonstring

Responses

202Envelope voided. EnvelopeEnvelope

POST/v1/envelopes/{id}/recipients/{recipientId}/signing-link

Generate a signing link for a recipient

Issues a fresh magic signing link and returns its URL, so you can deliver it via SMS, chat, or your own portal instead of email. The link is a single-use bearer credential that expires (30 days). Works only while the envelope is open (sent/in_progress) and the recipient hasn't signed.

Path parameters

recipientIdstring (uuid)required

Responses

200A fresh signing link. SigningLinkEnvelope
404Uniform error envelope. ErrorEnvelope
409Uniform error envelope. ErrorEnvelope

Business

Per-business configuration (webhooks, branding).

PATCH/v1/business/{id}/webhook

Set the webhook URL & secret

Configure where events are POSTed and the secret used to sign them. You choose your own webhookSecret; it is HMAC-SHA256'd over the raw request body into the X-NexSign-Signature header on every delivery.

Path parameters

idstring (uuid)required

Request body application/json

webhookUrlstring (uri)
webhookSecretstring

Responses

200Updated business.

What do the API objects look like?

These are the objects the endpoints above accept and return. Enum types list every permitted value.

EnvelopeStatus

draftsentin_progresscompleteddeclinedvoidedexpired

FieldType

signaturedate_signed

AnchorType

textbookmark

ErrorCode

bad_requestvalidation_failedunauthorizedforbiddennot_foundconflictpayment_requiredrate_limitedemail_not_verifiedinternal_error

Recipient

emailstring (email)required
fullNamestringrequired
routingOrderintegerSigning order in sequential mode.

Field

Targets a document by documentIndex (preferred) or documentName. If the same anchorKeyword appears multiple times in a document it is placed at every occurrence; the signer adopts once to fill them all.

documentIndexinteger0-based position in the uploaded files. Preferred; collision-proof.
documentNamestringOriginal filename. Rejected if two uploaded files share this name.
recipientEmailstring (email)required
typeFieldTyperequired
anchorKeywordstringrequiredText token in the DOCX (e.g. $signature) or, with anchorType=bookmark, a Word bookmark name.
anchorTypeAnchorType
requiredboolean, default true

Envelope

idstring (uuid)
externalIdstring
subjectstring
messagestring
statusEnvelopeStatus
sequentialboolean
expiresAtstring (date-time)
sentAtstring (date-time)
completedAtstring (date-time)
createdAtstring (date-time)

Download

urlstring (uri)Pre-signed S3 URL.
expiresInSecondsinteger

SigningLink

recipientEmailstring (email)
recipientFullNamestring
urlstring (uri)The magic signing link to deliver via any channel.
expiresAtstring (date-time)

ApiError

codeErrorCode
messagestring
detailsobject

PaginationMeta

limitinteger
nextCursorstring
hasMoreboolean

WebhookEnvelopeSent

eventobject
envelopeIdstring
externalIdstring
subjectstring
sentAtstring (date-time)

WebhookEnvelopeVoided

eventobject
envelopeIdstring
externalIdstring
reasonstring

WebhookEnvelopeCompleted

eventobject
envelopeIdstring
externalIdstring
subjectstring
completedAtstring (date-time)
documentsarray of object

WebhookRecipient

eventrecipient.viewed | recipient.signed | recipient.bounced
envelopeIdstring
externalIdstring
recipientobject
envelopeStatusEnvelopeStatus

Ready to build?

Create an account, grab a token, and send your first 20 documents free.

Get your API token