The object hierarchy
A package contains four kinds of child object:- Documents - the files to be signed or filled in.
- Stakeholders - the parties with an interest in the package (a person, or a group).
- Actors - the specific actions a stakeholder must take (sign, approve, fill, receive). Actors belong to a stakeholder.
- Elements - the fields placed on a document (signing fields and form fields). Elements are linked to the actor that interacts with them.
A package is built up while it is in
Draft status. Uploading documents, adding stakeholders,
creating actors, and placing elements are all draft-only operations. Activating the package (by
setting its status to pending) freezes the structure and starts the signing flow. See
Best Practices → Package lifecycle for the
required order of these steps.Stakeholders
A stakeholder is an entity that has an interest in a package. A single stakeholder can carry multiple actors - that is, multiple actions it must take on the package. There are three stakeholder types, selected with theType property when you create one:
Person
A single individual. Only that person can act on the package.
Group
A group of people, defined inline through
Members. Any one member can act on behalf of the
whole group.ContactGroup
References a contact group already created in the WebPortal, by its
ContactGroupCode,
instead of listing members inline.ContactGroupCode. The
members come from that contact group rather than from your request body.
A ContactGroup stakeholder only exists while the package is in draft. When the package moves to
pending, a ContactGroup stakeholder is converted into a Group stakeholder; the contact group
code is retained on the converted stakeholder.
The undecided stakeholder
A package can also report a stakeholder of typeUndecided. This is the implicit placeholder a
package carries before a real stakeholder has been assigned to an action. It is not something you
create directly, and it cannot be deleted.
A stakeholder is not a Contact
It is easy to assume a stakeholder maps to a saved Contact, but the API has no Contact resource. Contacts exist only in the WebPortal UI, as an address-book convenience for people setting up packages by hand. When a Contact is used to set up a package, it ultimately becomes an ordinary Person stakeholder on that package - the same object you create directly through the API. So when you add a stakeholder via the API, you are always defining the party on the package itself, not referencing an address-book entry.The one place the WebPortal’s saved entities surface in the API is the ContactGroup stakeholder
type, which references a contact group by its
ContactGroupCode - and even that is converted to a
plain Group stakeholder when the package is activated.Actors
An actor represents a single action that a stakeholder must take on the package. A stakeholder can have more than one actor (for example, the same person might both approve and sign). There are four actor types:
Which elements an actor can carry depends on its type: signing fields can only be linked to
Signers, and form fields (text boxes, checkboxes, radio groups) can only be linked to
FormFillers. Approvers and Receivers do not interact with elements.
Actor status
Each actor reports aStatus that tracks its action through the flow:
Reassigning an actor
If the person appointed to an action becomes unavailable, an actor can be reassigned to a new Person stakeholder. Reassignment always targets a person (not a group), and you supply a reason for the reassignment. Where the original action used mandated signing, the replacement may need to supply the same additional identity properties (see Additional properties).Elements
Elements are the fields placed on a document’s pages. They come in two families:- Signing fields - mark where a signature must be placed. Signing fields are always mandatory, and they belong to a Signer actor.
- Form fields - inputs an end user fills in, belonging to a FormFiller actor. There are three form-field types: TextBoxField (free text), CheckBoxField (a toggle), and RadioGroup (a set of mutually exclusive options).
The full element model - placement modes (explicit coordinates, text markers, existing PDF form
fields), dimensions, legal notices, and signing methods - is covered in the API reference for the
element endpoints and in the field-positioning guide. This page covers only how elements fit into
the package hierarchy.
The process
A package’s process defines who acts and when. It is an ordered list of process steps. Within a single step, the actors act in parallel; the steps themselves run in sequence. For example, a process might be:- Approve (step 1)
- Fill in forms (step 1, alongside approval)
- Sign (step 2)
- Receive (step 3)
- Form filling and approval come first. Adding approval or form-filling data after signatures are placed would invalidate those signatures, so FormFillers and Approvers must act before any signer. They are placed in the first step.
- Receivers come last. A Receiver only gets the document once every signer has signed, so receivers are placed in the final step. The receiver step is always parallel.
- One actor type per step, with one exception: FormFillers and Approvers may share a step. Mixing other actor types within a single step is not supported.
ExternalReference
Most objects you create - packages, stakeholders, elements - accept an optionalExternalReference
(maximum length 256). It is a free-form string that your calling application controls. The
NSEV platform does not use it itself; it exists so you can correlate API objects with
records in your own system (for instance, storing your internal case ID on the package).
ExternalReference also surfaces in redirect flows. When a Signer or FormFiller actor finishes and
is redirected to a RedirectUrl, the platform appends query parameters to that URL, including the
stakeholder’s ExternalReference (as ExternalReference) and the package’s ExternalReference
(as PackageExternalReference). Setting meaningful external references therefore lets your return
endpoint identify which package and stakeholder a returning user belongs to.
Additional properties
Person stakeholders and group members can carryAdditionalProperties: extra fields configured in
your tenant’s Contact Properties Settings, holding any stakeholder information your administrator
requires (for example a national ID or a nationality). Two properties are configured by default in
every environment: BeId (a national security number) and BeLawyer (a lawyer ID).
When a mandated signing rule is applied to an additional property, that property becomes
mandatory: its value is checked against the data extracted from the signing certificate or returned
by the signing service, and the stakeholder is only mandated to sign when the data matches. To see
which additional properties are mandatory for a given signing method, call GET /signingmethods.