Send a bundle
Sends a draft bundle of 2 to 50 documents. sajn checks every document first and sends none of them if one fails: 409 INVALID_STATE lists the reasons in userMessage. For example, a document has a blocker such as a missing signature box, needs approval, or has a party without an email address. The monthly limit counts every document.
The bundle’s status is OPEN from this call. Each party gets one invitation once every document’s PDF is ready, and the bundle fires bundle.sent.
Permission required: SEND_DOCUMENT on the workspace, and access to every document in the bundle. Requires a Team plan.
Authorizations
API key, e.g. Authorization: Bearer sajn_svc_.... Not scope-limited: acts with its owner's workspace role.
Headers
API version for this request. Without it, the request uses the organization's default version; an organization without a default is pinned to the latest version by its first request.
2026-09, 2026-10 ID of the workspace this request acts in, from GET /api/v1/workspaces. Without it, an API key acts in its default workspace. The token's user must be a member of the workspace; an OAuth token only accepts the workspace it was granted for. A workspace that doesn't exist or can't be reached returns 403 WORKSPACE_ACCESS_DENIED.
Makes retries safe. A retry with the same key and the same request replays the stored response for 24 hours (header Idempotent-Replayed: true); the same key with a different request returns 400.
255Path Parameters
The bundle ID.
Body
Body
The body is of type object.
Response
200
The bundle ID.
The bundle name, shown as the heading of the bundle page and in the invitation.
DRAFT while you build it, and again after a withdraw. OPEN from the send until every document is resolved, then COMPLETED. CANCELED after a cancel.
DRAFT, OPEN, COMPLETED, CANCELED The subject line of the invitation email.
A message included in every invitation.
The expiry date of the bundle. Every document in it gets the same one.
How the parties sign: PARALLEL, all at once, or SEQUENTIAL, one at a time in the order of each party's signingOrder. The order runs across every document in the bundle.
PARALLEL, SEQUENTIAL Language of the bundle page and the emails to the parties, an ISO 639-1 code such as sv.
sv, en, no, da, fi, de, is, es, fr, it Days between automatic reminders. 0 turns them off, and null uses the default of 3.
-9007199254740991 <= x <= 9007199254740991Whether the documents can still be signed after expiresAt.
Email addresses that receive a copy of each sealed PDF once its document is completed.
How national identity numbers are displayed to signers: FULL, PARTIAL, or NONE. null keeps each document's own setting.
FULL, PARTIAL, NONE, null Verification every party passes before the document opens: PIN, SMS, EMAIL, or an eID such as SE_BANKID. null means none. A party's own openVerification overrides it.
PIN, SMS, EMAIL, SE_BANKID, NO_BANKID_BIOMETRIC, NO_BANKID_HIGH, DK_MITID, DK_MITID_ERHVERV, FI_FTN, NL_IDIN, null Send plain text invitations only, without HTML. null inherits the workspace default.
URL to send a party to once they have signed.
Whether redirectUrl is used.
The number of documents in documents.
-9007199254740991 <= x <= 9007199254740991When the bundle was created.
When the bundle was last updated.
The documents in the bundle, oldest first.
The bundle's parties, in signing order.

