- Callbacks - server-to-server HTTP POSTs from NSEV to your system (
CallBackUrl,NotificationCallBackUrl). - Redirects - where the end user’s browser is sent after they finish (
RedirectUrl,DefaultRedirectUrl,F2fRedirectUrl, controlled byRedirectType).
SuppressNotifications, which turns off the emails NSEV would otherwise send to an actor.
CallBackUrl - status-change callbacks
CallBackUrl is a package-level property. When you set it on the package, NSEV sends an HTTP
POST to that URL whenever the package’s status changes, so an external system can react.
When it fires. A callback is sent on end-user actions, including:
- a user changes the package from
DrafttoPending, or revokes it, in the Document Portal - a user clicks confirm in a drag-and-drop editor window
- a signer completes all their signing fields
- all signers have signed the package
- a signer rejects the package
- an approver approves the package
- form fillers complete their fields
- the system sets the package to
Failed
API requests never trigger a callback. Callbacks fire only when an end user triggers an action in
the NSEV WebPortal or Signer application. More triggers may be added in future versions.
POST body is application/json containing packageId and packageStatus:
GET /packages/{packageId} to fetch the full
package.
How to use it well.
- The
CallBackUrlmust be a valid, absolute URL with no query parameters. - The callback has a 100-second timeout. If your service does not respond in time, NSEV forces
the timeout and finishes the flow as if it had received
200 OK. Respond as quickly as possible and run any follow-up work asynchronously, so your processing never blocks the signing flow. - On error, NSEV retries the callback 3 times over 3 retry cycles by default. Administrators can customize the retry mechanism.
NotificationCallBackUrl - regenerating one-time signing links
NSEV uses one-time signing URLs: once an action link is clicked it expires, and a new link must be requested.NotificationCallBackUrl is a package-level property that, when set, calls your
remote service each time a signer requests a new link - instead of NSEV sending its usual email.
Your service then decides what to do (for example, deliver the new link through your own channel).
When it fires. Unlike CallBackUrl, which fires on major state changes, the notification
callback can fire repeatedly without an apparent status change - so the payload tells you which
kind of notification was requested. The remote service is called once per user action, with no
retry unless the end user requests another notification.
The payload. An application/json POST body containing:
Current
notificationTypeKey values:
NSEV waits for your service to finish before returning control to the end user, so it must respond
within seconds. On error, NSEV retries 3 times over 3 retry cycles by default.
NotificationCallBackUrl is separate from SuppressNotifications. The emails NSEV sends when a
package is created, revoked, and so on are governed by SuppressNotifications, not by the
notification callback.SuppressNotifications - deliver links yourself
SuppressNotifications is an actor-level property (default false). When set to true on an
actor, NSEV does not send that actor the emails it would normally send about the package.
This is the basis of the technical-user pattern: rather than letting NSEV email your signers
directly, you suppress its notifications and deliver the signing links yourself - through your own
application, email, or portal. Pair it with NotificationCallBackUrl so that when a one-time link
expires and the user requests a new one, your system is called to deliver the replacement instead
of NSEV sending an email.
Automatic reminders and expiration reminders are not affected by
SuppressNotifications: an actor
with SuppressNotifications set to true still receives automatic reminders and the expiration
reminder if those are configured on the package.RedirectUrl - where a user goes after acting
RedirectUrl is an actor-level property. When a Signer or FormFiller finishes their action,
their browser is redirected to this URL. If no RedirectUrl is set, the end user has to close the
browser tab themselves.
NSEV appends query parameters to the URL so your return endpoint knows what happened:
SessionID- the package signing session (the actor’sActorId)ExternalReference- the stakeholder’sExternalReferenceStatus-FINISHED,REJECTED, orINVALIDTOKENPackageExternalReference- the package’sExternalReference
ExternalReference values on your packages and stakeholders;
see The package model → ExternalReference.
RedirectUrl must be a valid, absolute URL with no existing query parameters.
DefaultRedirectUrl - a package-wide fallback
DefaultRedirectUrl is a package-level property. It sets the
URL stakeholders are redirected to after completing their actions when an actor has no RedirectUrl
of its own. It is applied on package submit. Use it to set one fallback redirect for the whole
package instead of repeating the same RedirectUrl on every actor.
RedirectType - when the redirect fires
RedirectType is an actor-level property that controls when the redirect happens. It applies
only to Signer and FormFiller actors, and is only valid together with a RedirectUrl - the
API rejects a RedirectType set without one. The possible values are:
RedirectType is exposed only on Signer and FormFiller actors in the API - not on Approver or
Receiver actors.F2fRedirectUrl - face-to-face signing only
F2fRedirectUrl is a package-level property for face-to-face signing in the Document
Portal only. The end user is redirected to it after all fields have been signed or rejected face
to face. Do not confuse it with the regular RedirectUrl - F2fRedirectUrl applies only to
face-to-face signing, not to remote signing sessions.
NSEV appends these query parameters:
SessionID- the package signing session (the package’s ID)Status-FINISHED,REJECTED, orINVALIDTOKENPackageExternalReference- the package’sExternalReference
F2fRedirectUrl must be a valid, absolute URL with no existing query parameters.
Close-button interaction. During asynchronous signing, a signer can normally use a Close
button to leave while signing continues in the background. When an F2fRedirectUrl is configured,
that Close button is unavailable; instead the signer sees a message telling them they will be
redirected once signing finishes.
Polling versus callbacks
There are two ways to find out when a package has progressed:- Callbacks (recommended for integrations). Set a
CallBackUrland let NSEV notify your system on each status change. This avoids repeated polling, reacts immediately, and scales better. Make sure your callback endpoint responds fast and does its real work asynchronously (remember the 100-second timeout). - Polling (fine for simple flows). Call
GET /packages/{packageId}/statusperiodically until the package reaches a terminal status such asFinished. This is simpler to build and is a reasonable choice for low-volume or one-off flows where you do not want to expose a public callback endpoint.
CallBackUrl is the recommended
approach for a production integration.