Withdraw a bundle
Takes an OPEN bundle back to DRAFT so you can change it and send it again. Every document returns to DRAFT and stays in the bundle, and every signature is cleared, so everyone signs again after the next send. Each document fires document.withdrawn.
A bundle with a document that is already completed returns 409 INVALID_STATE. To stop a bundle for good, cancel it with POST /api/v1/bundles/{id}/cancel.
Permission required: WITHDRAW_DOCUMENT on the workspace, and access to every document in the bundle.
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
Why the bundle is withdrawn, included in the email to the parties.
1000Response
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.

