# Changelog

Current Version: **2.16.0** (2026-06-11)

> **Note on Version Numbers**
>
>
> Blueink's APIv2 uses [semantic versioning](https://semver.org/).
> The version number of each release follows the pattern
> `MAJOR.MINOR.PATCH`.
>
> All releases of APIv2 have the MAJOR version number of `2`.
>
> - Releases with the same `MAJOR` version are backwards compatible.
> - The `MINOR` version is incremented when new, backwards-compatible functionality is added.
>   - E.g. new optional fields, new endpoints
> - The `PATCH` version is incremented when backwards-compatible bug fixes are made.
>   - E.g. bug fixes, improving error messages, correcting unexpected behavior
>
> Blueink is committed to the long-term support of Blueink APIv2 and will
> continue to support it in a backward-compatible manner for the foreseeable future.
>

---

## 2.16.0 <span class="release-date">2026-06-11</span>

- Added developer-controlled `metadata` on Document Templates — attach arbitrary
  string key/value pairs to tag, organize, and filter templates. Set via the new
  `PATCH /templates/{id}/` endpoint and on template preparation sessions; filter
  with `GET /templates/?metadata[key]=value`. See the
  [Templates reference](/docs/api/templates).
- Added `teams` field on Document Templates — read-only array of team UUIDs
  indicating which teams the template is assigned to (filtered to teams
  accessible to the authenticated user).
- Added `data_flow_tag` field on Document Template fields — read-only string
  (lowercase letters, digits, and underscores; max 40 characters) that links a
  template field to a named data-flow slot in your integration.
- Added `tag_values` field on Bundle creation (`POST /bundles/`) — a map of
  Data Flow Tag names to values that pre-fills matching fields in the Bundle.
- Added embedded preparation session endpoints that return a time-limited iframe
  URL for the [Bundle preparation](/docs/api/create-bundle-preparation-session)
  (`POST /bundles/preparation_session/`) and [Document Template authoring](/docs/api/create-template-preparation-session)
  (`POST /templates/preparation_session/`) experiences.

---

## 2.15.0 <span class="release-date">2026-06-04</span>

- Added MS Office document upload support when creating a Bundle
  - `POST /bundles/` (multipart/form-data) now accepts MS Office documents — `.doc`, `.docx`, `.ppt`, `.pptx`, `.xls`, `.xlsx` — uploaded via the `file_index` path
  - Office files are converted to PDF server-side before fields are placed and the Bundle is sent
  - Requires the `MS_OFFICE_UPLOAD` account feature

- Added document verification endpoint
  - New public `POST /verify/` endpoint accepts a SHA‑256 hash and reports whether the document was produced by Blueink
  - When verified, identifies the document type as `signed_pdf`, `combined_pdf`, or `coe_pdf` (Certificate of Execution) and returns limited envelope metadata (bundle slug, status, sent/completed timestamps)
  - Does not require authentication; subject to anonymous rate limiting

- Added embedded preparation session endpoints
  - New `POST /bundles/preparation_session/` returns a short‑lived URL that hosts the document‑preparation experience in an iframe (upload PDFs, select templates, place fields, prepare a Bundle for signing)
  - New `POST /templates/preparation_session/` returns a short‑lived URL that hosts the Document Template authoring experience in an iframe (create a new template or edit an existing one)
  - `POST /templates/preparation_session/` requires the `API_PREPARE_DOC_TEMPLATE` account feature

- Fixed Team envelope defaults not being applied when creating a Bundle with a `team`

## 2.14.0 <span class="release-date">2026-05-13</span>

- Added Witness Signatures support on Packet
  - New `requires_witness` (boolean, read-only) on `Packet` indicates that this Signer requires a witness to be present and to co-sign
  - New `witness_nominated_by` (string enum, read-only) on `Packet` identifies who nominates the witness:
    - `sgn` — Signer nominates the witness at signing time
    - `snd` — Sender nominates the witness up front
    - `""` (empty) — no witness is required for this Signer

---

## 2.13.1 <span class="release-date">2026-06-04</span>

- Documented the `generate_interim_files` endpoint
  - Added `PUT /bundles/{bundleSlug}/files/` to trigger asynchronous generation of interim documents (documents containing current signing data before the Bundle is complete)
  - Updated the endpoint to return a `200 OK` status with the full `Bundle` object upon successful trigger
- Added `doc_status` to the `Bundle` schema
  - New field indicates the state of document generation: `no` (None), `pe` (Pending), `di` (Dirty), `in` (Interim), or `fi` (Final)

---

## 2.13.0 <span class="release-date">2026-04-09</span>

- Added support for HTML-to-PDF document creation when sending a Bundle
  - New `file_html` parameter on `DocumentRequest` accepts an HTML string that Blueink renders to a PDF as part of `POST /bundles/`
  - New `html_fields_mode` parameter on `DocumentRequest` controls field auto-detection:
    - `blueink` (default): detect HTML form elements and `data-blu-*` annotations and convert them to Blueink fields
    - `none`: skip field detection; render the HTML to a PDF without creating any fields
  - New `filename` parameter on `DocumentRequest` (max 50 chars) sets the resulting document's filename

- Added regex-based field validation
  - New `v_regex` (RE2 syntax, max 200 chars) and `v_regex_msg` (max 200 chars) on `FieldRequest` and on inline field updates within `UpdateableDocument`
  - `v_regex` cannot be combined with `v_pattern`; when `v_regex` is set, `v_min` and `v_max` are ignored
  - Requires the `FIELD_REGEX_VALIDATION` account feature

**Documentation Updates**

- Added the [Generate PDFs from HTML](/docs/guides/html-to-pdf/) guide
  - Documents the full HTML specification for `file_html`: page layout, supported form elements, `data-blu-*` field annotations, label detection, and the JavaScript-stripping security model
- Added section-intro descriptions to each tag in the API Reference (Bundles, Packet, Templates, Envelope Templates, Person, Webhook, WebhookEvent, WebhookExtraHeader, WebhookSecret, and Rate Limiting), with cross-links to the relevant guides
- Added an operation-level description to `POST /bundles/` (Create Bundle) covering the document-source rules (`file`, `file_url`, `file_b64`, `file_index`, `file_html`)

## 2.12.0 <span class="release-date">2026-03-11</span>

- Added `signing_brand` to `PATCH /bundles/{bundleSlug}/`
  - New nullable UUID field on `BundlePatchRequest`; set the Bundle's signing brand or pass `null` to clear it
  - The signing brand must belong to the same account as the Bundle

- Auto-placement fields now support the same validation, format, and initial-value options as regular fields
  - Added `v_pattern`, `v_min`, `v_max`, `v_attachment_types`, `format`, and `initial_value` to `AutoPlacementRequestField`

**Documentation Updates**

- Documented partial Bundle updates via `PATCH /bundles/{bundleSlug}/` in the API Reference
  - Added request schema details for the fields supported by the APIv2 Bundle patch serializer
  - Documented field-level behavior and constraints (status restrictions, feature gating, admin-only owner update, and `expires` behavior on sent Bundles)
- Documented `format` support on date-oriented field kinds
  - Clarified that `format` is supported only for `dat` (Date) and `tms` (Signing Timestamp) field kinds, with explicit allowed values for each
  - Clarified that `format` is not supported for other field kinds and will return a validation error
- Removed `sdt` (Signing Date Short) from the documented `kind` enum on `FieldRequest`, `UpdateableFieldRequest`, and `AutoPlacementRequestField`
- Removed Field Tags references from the API reference and related connector schema docs
  - Removed deprecated/unsupported `parse_tags` from documented `DocumentRequest` input

## 2.11.0 <span class="release-date">2025-11-12</span>

- Added support for `packet_declined` webhook event
  - Webhooks can now subscribe to the `packet_declined` event type to receive notifications when a signer declines to sign their packet
  - This allows applications to respond in real-time when signers decline signing requests

## 2.10.0 <span class="release-date">2025-10-24</span>

- Added support for `include` query parameter on Bundle retrieval (GET `/bundles/{bundleSlug}/`)
  - Allows fetching additional related data in a single API call instead of making separate requests
  - Supported include values:
    - `data`: Include form field data entered by signers (equivalent to the `/data` endpoint)
    - `events`: Include audit events for the bundle (equivalent to the `/events` endpoint)
    - `files`: Include downloadable files for the bundle (equivalent to the `/files` endpoint)
  - Multiple values can be combined: `?include=data,events,files`
  - Improves performance by reducing the number of API calls needed

## 2.9.0 <span class="release-date">2025-07-03</span>

- Added support for `signing_complete_redirect` field on `PacketRequest` to set a redirect URL on a Packet
  - This allows customizing the URL that signers are redirected to after completing signing
  - `signing_complete_redirect` can be set when creating a Bundle (POST `/bundles/`) or via 
    the update Packet request (PUT `/packets/[packetId]/`)

## 2.8.0 <span class="release-date">2025-06-09</span>

- Limiting delivery for test Bundles (where `is_test` is `True`) to verified email adresses. 
  - A verified email address is one that is the primary email address for a User on the account, 
    which has also been verified (by clicking a verification link in an email).
  - Exceptions available by contacting Blueink support.

## 2.7.0 <span class="release-date">2025-04-25</span>

- Added support for converting Adobe fields to Blueink fields on an uploaded document
  - This allows for the auto-placement of fields based on Adobe form fields
  - Added optional `converted_adobe_fields_to` field on `DocumentRequest`, 
    which is a signer key that specifies the signer that any converted fields should be assigned to

## 2.6.0 <span class="release-date">2025-04-02</span>

- Added support for creating a new Bundle from an Envelope Template
  - Added new endpoint `POST /bundles/create_from_envelope_template/`

## 2.5.2 <span class="release-date">2025-02-26</span>

- Added `auth_secrets` to `PacketRequest` to support secret-based authentication

## 2.5.1 <span class="release-date">2024-12-13</span>

- Improved error messages when sending Bundles. This affects:
  - Errors responses when calling `POST /bundles/{bundleId}/send/` on a Draft Bundle, 
  - Errors returned in the `errors` array when retrieving a Bundle via `GET /bundles/{bundleId}/`

## 2.5.0 <span class="release-date">2024-11-11</span>

- Added support for Payments when creating Bundles
  - Added `payment` field to `BundleRequest`
  - Added `payment` field to `Bundle`

## 2.4.1 <span class="release-date">2024-09-06</span>

- Added additional filtering options when listing Bundles (GET /bundles/)
  - New querystring parameters: `created_after` / `created_before`, `sent_after` / `sent_before`, 
    `completed_after` / `completed_before`
- Fixed bug that occurred in some corner cases when creating a Bundle without `initial_values`

## 2.4.0 <span class="release-date">2024-08-15</span>

- Added auto-placement feature to dynamically place fields on a document relative to a text pattern

## 2.3.0 <span class="release-date">2023-05-22</span>

- Added options to suppress notifications sent to signers. 
- The following fields are now supported when creating a Bundle (POST /bundles/) and when updating a Packet (PUT /packets/[packetId]/):
  -  `suppress_signing` to suppress the initial signing notification 
  -  `suppress_reminder` to suppress reminder notifications
  -  `suppress_docs_ready` to suppress "Documents Ready" notifications
  -  `suppress_all` to suppress all notifications

## 2.2.0 <span class="release-date">2022-12-28</span>

- Added support for creating Draft Bundles via APIv2
  - Added `is_draft` optional field when creating a Bundle (POST /bundles/)
  - Added new `/send/` endpoint to send a Draft Bundle (POST /bundles/[bundleId]/send/)
  - Added new `/validate/` endpoint to validate is a Draft Bundle can be sent (PUT /bundles/[bundleId]/validate/)

## 2.1.1 <span class="release-date">2022-10-12</span>

- Added additional checks and better validation messages for Base64 upload errors

## 2.1.0 <span class="release-date">2022-08-30</span>

- Added support for creating checkbox groups
- Added support for creating / managing webhooks (/webhooks/ endpoints)

## 2.0.0 <span class="release-date">2022-06-12</span>

- Initial launch of official APIv2

## 2.0.0-beta.3 <span class="release-date">2022-05-02</span>

- Modifying available error codes for Error objects

## 2.0.0-beta.2 <span class="release-date">2022-04-23</span>

- Removing DocumentTemplate.account from responses
- Adding DocumentTemplate.is_shared to responses
- Added support for reading / updating person metadata
- Adding `/bundles/{bundleId}/data/` endpoint to retrieve Bundle data

## 2.0.0-beta <span class="release-date">2022-04-04</span>

- **Initial beta release of APIv2**
