**Source URL:** https://limited.veevavault.dev/rn/25r3.md

# Developer Features in 25R3

We are pleased to bring you the following additions and enhancements to Developer Portal features in 25R3.

## Service Announcements {#service-announcements}

<ReleaseNote id="OOU0000000P1022" lr="25R3.0" label="25R3.0 Wave 1" app_family="platform" version="25r3">### DigiCert G2 certificate {#OOU0000000P1022}

In 25R3, Veeva will migrate from the DigiCert Legacy Root Certificate to the DigiCert G2 Root Certificate for signing Vault SSL Certificates. This is to align with [DigiCert and Mozilla's end of life for the Legacy Root Certificate in April 2026](https://knowledge.digicert.com/general-information/digicert-root-and-intermediate-ca-certificate-updates-2023). Customers with integrations built on Java 1.7 and below may be affected, and are encouraged to evaluate their integrations for G2 certificate support.

</ReleaseNote>
<ReleaseNote id="OOU0000000NS016" lr="25R2.2" app_family="platform" version="25r3">### TLS 1.3 Support for Legacy FTPS {#OOU0000000NS016}

TLS 1.3 is now supported on Legacy FTPS connections. New integrations should use [File Staging API](/vault-api/api-reference/25.3/file-staging).

</ReleaseNote>
<ReleaseNote id="OOU0000000P7002" lr="25R2.2" app_family="platform" version="25r3">### Validate Document Creations after Event Actions {#OOU0000000P7002}

For documents created using Vault API or Vault Java SDK, field validation will now take place after any existing Event Actions. Previously, validation occurred before Event Actions were invoked, preventing document creation if an empty mandatory field was intended to be populated by an Event Action.

</ReleaseNote>
<ReleaseNote id="OOU0000000OP020" lr="25R2.2" app_family="platform" version="25r3">### Spark Signing Certificate Public Access {#OOU0000000OP020}

Integrations can now retrieve the Spark signing certificate from Vault API without a Vault session ID. This allows developers to build integrations that can accept a Spark message and verify the signature without needing authenticated access to Vault. This change applies to all Vault API versions prior to and after v25.3.

</ReleaseNote>
<ReleaseNote id="NONE_YET" label="26R3" app_family="platform" version="25r3">### Upcoming Deprecation of Submission Archive Export APIs {#upcoming-deprecation-of-submission-archive-export-apis}

As part of our ongoing efforts to ensure future scalability and continued performance of Submissions Archive, the following RIM Submissions Archive API endpoints will be deprecated in all versions of the API and no longer supported as of 26R3:

* [Export Submission](/vault-api/api-reference/25.3/rim-submissions-archive/export-submission)

* [Export Partial Submission](/vault-api/api-reference/25.3/rim-submissions-archive/export-partial-submission)

* [Retrieve Submission Import Results](/vault-api/api-reference/25.3/rim-submissions-archive/retrieve-submission-import-results)

* [Retrieve Submission Export Results](/vault-api/api-reference/25.3/rim-submissions-archive/retrieve-submission-export-results)

These endpoints will be replaced by new Submissions Archive Export API endpoints. For customers with existing integrations, the new API endpoints will be available starting with 26R2, enabling you to prepare for the upcoming 26R3 deprecation.

</ReleaseNote>

## Release Highlights {#release-highlights}

<ReleaseNote id="OOU0000000OQ052" lr="25R2.2" app_family="platform" version="25r3">### Label Sets {#OOU0000000OQ052}

Label Sets allows alternative labels to be displayed in the Vault UI within a single language to support use cases where different groups of users within a given country or region may have different terminology. Learn more about the [user and Admin-facing functionality of this feature in Vault Help](https://rn.veevavault.help/en/lr/new-in-25r3/#OOU0000000OQ052).

Developers can create new Labelset configurations using MDL, and integrations can import and export labels for the label sets using Vault API.

<Endpoint path="/api/{version}/messages/{message_type}/label_set/{name}/actions/export" method="POST"></Endpoint></ReleaseNote>
<ReleaseNote id="OOU0000000OM021" lr="25R2.2" app_family="platform" version="25r3">### Asynchronous Workflow Tasks {#OOU0000000OM021}

Vault Admins can now configure workflow steps that execute a specified job. Jobs can be configured to automatically complete the job step once the job has finished, or developers can use the WorkflowInstanceService to complete the job task. This allows admin and developers to build asynchronous steps into their workflows. Developers can also use Spark and HTTP Callout to execute logic externally, and use the new Complete Workflow Job Step API to complete the workflow task. Additionally, workflow job steps can be queried using VQL to obtain relevant details about the job step.

</ReleaseNote>

## Vault API v25.3 {#Vault_API_v25.3}

### Direct Data API {#direct-data-api}

<ReleaseNote id="OOU0000000PT010" lr="25R2.3" app_family="platform" version="25r3">#### Picklist Rename Tracking {#OOU0000000PT010}

When a picklist value associated with an object or document field is renamed, Direct Data API now includes the old value in the object or document's delete CSV file. This helps developers remove the old value from downstream systems. The new value will continue to be included in the update CSV file.

</ReleaseNote>
<ReleaseNote id="OOU0000000P1024" lr="25R2.2" app_family="platform" version="25r3">#### Include Inactive Object Fields {#OOU0000000P1024}

Direct Data API now includes inactive object fields in Full and Incremental file extracts. This allows developers to load historic Vault data into their downstream systems.

</ReleaseNote>
<ReleaseNote id="OOU0000000P6021" lr="25R2.2" app_family="platform" version="25r3">#### Additional Attributes for Object Audit Extract {#OOU0000000P6021}

Direct Data API now includes integration-focused attributes in object audit trails, including object and field API names, old and new API values, and audit group IDs. These new attributes can be used to join audit records to data records in downstream systems.

</ReleaseNote>
<ReleaseNote id="OOU0000000PA017" lr="25R2.2" app_family="platform" version="25r3">#### Include All Queryable Document Fields {#OOU0000000PA017}

Direct Data API now includes all queryable document fields. The additional fields will be included in the Full and Incremental files created after the 25R3 release.

</ReleaseNote>
<ReleaseNote id="OOU0000000P9016" lr="25R2.2" app_family="platform" version="25r3">#### Enhanced Background Processing {#OOU0000000P9016}

Direct Data API is built for resiliency and will automatically retry when errors occur. The Vault Admin UI no longer displays job operations for Direct Data API, and the jobs are excluded from VQL targets. Admins and developers can determine success and retry status using the [Retrieve Available Direct Data Files](/vault-api/api-reference/25.3/direct-data/retrieve-available-direct-data-files) endpoint.

</ReleaseNote>

### New Endpoints {#new-endpoints}

<ReleaseNote id="OOU0000000OK056" lr="25R2.3" app_family="platform" version="25r3">#### Export Attachment Field Files API {#OOU0000000OK056}

Developers can now export attachment fields files in bulk for a given Vault object and for up to 500 record IDs. Attachment field files are collected asynchronously and zipped for easy download.
Learn more about this endpoint in the [v25.3 API Reference](/vault-api/api-reference/25.3/vault-objects/object-attachment-fields/export-attachment-field-files).

</ReleaseNote>
<ReleaseNote id="OOU0000000P9016" lr="25R2.2" app_family="platform" version="25r3">#### Bulk-cancel Jobs in Queued or Queueing State {#OOU0000000P9016}

Developers can now cancel jobs in Scheduled, Queued, or Queueing state using Vault API. Not all Queued or Queueing jobs can be cancelled and cancellation is best-effort. Vault API will return errors for jobs that cannot be cancelled.
Learn more about this endpoint in the [v25.3 API Reference](/vault-api/api-reference/25.3/jobs/cancel-job).

</ReleaseNote>

### Existing Endpoints {#existing-endpoints}

<ReleaseNote id="OOU0000000PH090" lr="25R2.3" app_family="platform" version="25r3">#### Support for Picklist Names in Single Document and Binder Updates {#OOU0000000PH090}

Vault API now supports using picklist names when updating single documents and binders. Previously, only Picklist labels were supported. This means developers can use consistent values instead of labels that can change per the user’s language.

</ReleaseNote>
<ReleaseNote id="OOU0000000P2010" lr="25R2.2" app_family="platform" version="25r3">#### Bulk Support for Document Text Export {#OOU0000000P2010}

The [Export Documents](/vault-api/api-reference/25.3/documents/export-documents/export-documents) and [Export Document Versions](/vault-api/api-reference/25.3/documents/export-documents/export-document-versions) endpoints now support exporting document text in bulk. When developers include `text=true` in their API request, Vault creates a "text" folder containing a text file (`text_file.txt`) with the extracted text for each exported document version.

</ReleaseNote>
<ReleaseNote id="OOU0000000P4010" lr="25R2.2" app_family="platform" version="25r3">#### Create Single Document Version API: Return Major and Minor Version in Response when File Parameter is Used {#OOU0000000P4010}

Vault API now returns the major and minor version of new document versions created using the [Create Single Document Version](/vault-api/api-reference/25.3/documents/update-documents/create-single-document-version) endpoint and the `file` body parameter. This new document metadata is only available for Vault API v25.3+.

</ReleaseNote>
<ReleaseNote id="OOU0000000PH049" lr="25R2.2" app_family="platform" version="25r3">#### Delegate Access: Vault Owner Group Restriction {#OOU0000000PH049}

The system-provided *Vault Owners* group now allows editing the **Delegate access allowed only among group members** configuration. Developers can use Vault API to change the value of this attribute.

</ReleaseNote>
<ReleaseNote id="OOU0000000MT007" lr="25R2.3" app_family="platform" version="25r3">#### Notifications Suppressed in Migration Mode {#OOU0000000MT007}

When using Migration Mode with document and Vault object APIs, including Vault Loader, Vault will suppress any notifications related to the request. This helps reduce load on Vault and unnecessary emails to end-users.

</ReleaseNote>

### Vault Loader {#vault-loader}

<ReleaseNote id="OOU0000000LF028" lr="25R2.3" app_family="platform" version="25r3">#### Support for Changing Object Type {#OOU0000000LF028}

Vault Loader now supports changing object types on object records. This allows developers to use Vault Loader API, CLI, and UI to easily change object types in bulk.

</ReleaseNote>
<ReleaseNote id="OOU0000000PQ007" lr="25R2.3" app_family="platform" version="25r3">#### Document Text Export {#OOU0000000PQ007}

Vault Loader now supports including document text when exporting documents. A document’s text can be used to train AI models and perform comprehensive searches outside of Vault. This enhancement is included in Vault Loader API, CLI, and Vault UI.

</ReleaseNote>

## VQL {#vql}

<ReleaseNote id="OOU0000000PH071" lr="25R2.3" app_family="platform" version="25r3">### Object & Document Attachments & External ID {#OOU0000000PH071}

A new field, `attachment_external_id__sys`, has been added to the `attachments__sysr` relationship for documents and object record attachments. This allows developers to query for external IDs and use them when updating attachments using Vault API and Vault SDK.

</ReleaseNote>
<ReleaseNote id="OOU0000000OY014" lr="25R2.2" app_family="platform" version="25r3">### Enhanced Display Formatting in VQL {#OOU0000000OY014}

The `TODISPLAYFORMAT()` function in VQL now reflects how data is displayed in Vault UI, even for text and number fields without format masks configured. This can ensure consistency between data retrieved via VQL queries and the visual representation for number fields in Vault UI.

</ReleaseNote>
<ReleaseNote id="OOU0000000P7016" lr="25R2.2" app_family="platform" version="25r3">### Enhancements to FIND {#OOU0000000P7016}

The `FIND` clause has been enhanced to support using the scope modifier on relationships from the `SELECT` clause.

```
SELECT id, product__vr.name__v 
FROM study__v 
FIND ('Trial' SCOPE product__vr.name__v)

```
Additionally, the `FIND` clause can now be used in subqueries. Note: the `FIND` clause is not supported on attachment subqueries.

```
SELECT id, (SELECT name__v from study__vr FIND ('US')) 
FROM product__v

```

```
SELECT id 
FROM product__v 
WHERE id IN (SELECT id FROM study__vr FIND ('US'))

```
</ReleaseNote>

## Vault Java SDK {#vault-java-sdk}

<ReleaseNote id="OOU0000000OZ014" lr="25R2.3" app_family="platform" version="25r3">### Customizable Timeout Period for SDK Jobs {#OOU0000000OZ014}

A new attribute, `timeout_duration`, has been added to the `Jobmetadata` component. This attribute allows developers to override the existing default timeout to a lower maximum timeout for SDK jobs. Allowed values are defined in minutes and include: `60` (1 hr), `240` (4 hrs), `480` (8 hrs), `720` (12 hrs), `1380` (23 hrs). If set, this attribute overrides the existing default timeout, which is 23 hours (1380 minutes) for one-time jobs or 72 hours (4320 minutes) for scheduled jobs.

</ReleaseNote>
<ReleaseNote id="OOU0000000PX007" lr="25R2.2" app_family="platform" version="25r3">### Jobs SDK: Support for a List of String field types {#OOU0000000PX007}

In this release, the `JobParamValueType` interface now supports a List of String field types as input when setting job parameters when invoking a job. Additionally, the `JobValueType` interface now supports a List of String field types as input when setting parameters during job initialization and processing. This allows developers to directly provide a list of Strings as input and eliminates the need for extra custom code.

</ReleaseNote>
<ReleaseNote id="OOU0000000PX003" lr="25R2.3" app_family="platform" version="25r3">### SDK Record Role Support for Removing Inactive Users {#OOU0000000PX003}

`RecordRoleService` now supports removing inactive users from object record roles. Previously, attempting to remove a user would throw an exception if the user was inactive.

</ReleaseNote>
<ReleaseNote id="OOU0000000P0004" lr="25R2.2" app_family="platform" version="25r3">### Document Field Metadata SDK Enhancements {#OOU0000000P0004}

Developers can now inspect all metadata for document fields using Vault Java SDK. This allows developers to build logic based on Docfield attributes such as min/max length for Strings and min/max values for Numbers.

</ReleaseNote>
<ReleaseNote id="OOU0000000P7015" lr="25R2.2" app_family="platform" version="25r3">### QueryDescribe for SHOW statements {#OOU0000000P7015}

Query Describe for SDK now supports `SHOW` statements. This allows developers to inspect the data types and labels of query targets.

</ReleaseNote>

## Veeva Quality {#veeva-quality}

<ReleaseNote id="OOU0000000PG021" lr="25R2.3" app_family="quality" version="25r3">### Auditor Profile API {#OOU0000000PG021}

Veeva QMS now supports associating *Auditor Roles* to *Auditor Profiles* in bulk. Developers can submit a CSV with up to 500 *Auditor Role* and *Auditor Profile* pairs, and Vault asynchronously associates the *Auditor Role* to the *Auditor Profile*.
Learn more about this endpoint in the [v25.3 API Reference](/vault-api/api-reference/25.3/workflows/workflow-tasks).

</ReleaseNote>
<ReleaseNote id="OOU0000000PE053" lr="25R2.2" app_family="quality" version="25r3">### Quality Teams Migration API {#OOU0000000PE053}

Veeva Quality now supports creating *Quality Team* members for migration purposes. A new endpoint has been introduced that accepts the object record’s external ID, the user name, and API name for the team role to be added. Vault API now supports creating these configurations in bulk, and performs the operations asynchronously. The creation of the team members is optimized for performance.
Learn more about this endpoint in the [v25.3 API Reference](/vault-api/api-reference/25.3/workflows/workflow-tasks).

</ReleaseNote>
<ReleaseNote id="OOU0000000OK054" lr="25R2.3" app_family="quality" version="25r3">### Action Path Enhancements: Improved Flexibility and UI {#OOU0000000OK054}

New attributes have been added to the `Qmsactionpathconfiguration` components in Veeva QMS. The `allow_in_progress_changes` attribute supports *Change Actions* to be associated with the *Action Step* in the *In Progress* state. The `hide_other_actions` attribute allows developers  to define whether or not the *Other Actions* section shall be displayed from the *Action Step* app section.

</ReleaseNote>

## Veeva RIM {#veeva-rim}

<ReleaseNote id="OOU0000000NR041" lr="25R2.2" app_family="rim" version="25r3">### HAQ Response Automations {#OOU0000000NR041}

This feature streamlines the process of responding to Health Authority Questions (HAQs) by introducing the Initiate Response action, allowing RIM users to create a response record, start a submission, auto-generate a content plan, and create a response document from a single, guided flow. Learn more about the user and admin-facing functionality of this feature in the [Vault Help Release Notes](https://rn.veevavault.help/en/lr/new-in-25r3/#OOU0000000NR041).

To support this functionality, the MDL for the Rimdoctypeconfig component now includes the new `response_document_type` boolean attribute.

</ReleaseNote>
<ReleaseNote id="OOU0000000PL002" lr="25R2.3" app_family="rim" version="25r3">### Export API: Support for Published Submissions {#OOU0000000PL002}

Veeva RIM now supports exporting published submissions using the existing [Export Submissions](/vault-api/api-reference/25.3/rim-submissions-archive/export-submission) endpoint. Previously, only imported submissions were supported.

</ReleaseNote>

## Veeva Clinical {#veeva-clinical}

<ReleaseNote id="OOU0000000OH004" lr="25R2.3" app_family="clinical" version="25r3">### Data Change Request API {#OOU0000000OH004}

Veeva Clinical Operations now supports submitting a *Data Change Request* (DCR) to Vault and OpenData Clinical. With this, OpenData Clinical customers who are using the entire dataset in separate systems can remotely raise DCRs in their Vault and track their resolution.
Learn more about this endpoint in the [v25.3 API Reference](/vault-api/api-reference/25.3/clinical-operations/submit-data-change-request).

</ReleaseNote>