Articles in this section
Category / Section

What does the response status "Queued" mean after editing a document via API?

Published:

The Edit Document API endpoint in BoldSign allows you to efficiently modify the properties of an existing document and draft document. This article explains how the Queued status appears in the API response when editing a document and what it means for your changes.

What does “Queued” status mean?

The Queued status indicates that:

  • The edit request was received successfully but is being processed asynchronously.
  • File modifications (e.g., add, update, or remove files) were included in the request, requiring background processing.
  • The system places the request in a processing queue to ensure edits are applied reliably and in order.
  • The system queued the request, and changes will be applied once processing completes. Think of it as the system’s way of saying: “We’ve got your request, and it’s waiting to be processed.”

Scenarios that trigger “Queued” status

  • Files: Add, update, or remove files associated with the document.
  • Signers: Change details of existing signers or add new ones (up to 50).
  • Form Fields: Add or update signature boxes, initials, text fields, checkboxes, and more.
  • Message/Instructions: Update the note that signers see when they get the document.
  • Labels: Add tags like HR, Legal, or Finance to organize documents.
  • Reminders: Set automatic reminders so signers don’t forget to complete their part.

Example Code Snippet

curl

curl -X PUT 'https://api.boldsign.com/v1-beta/document/edit?documentId=YOUR-DOCUMENT-ID' \

-H 'Content-Type: application/json' \

-H 'X-API-KEY: {API-KEY}' \

-d '{

      "files": [

    {

      "editAction": "Add",

      "fileUrl": "YOUR_FILE_URL"

    }

  ],

    "Message": "Please sign this document.",

    "Signers": [

        {

            "EditAction": "Update",

            "Id": "YOUR-SIGNER-ID",

            "AuthenticationType": "EmailOTP",

            "FormFields": [

                {

                    "EditAction": "Add",

                    "FieldType": "TextBox",

                    "Bounds": {

                        "X": 100,

                        "Y": 100,

                        "Width": 100,

                        "Height": 20

                    },

                    "IsRequired": false,

                    "PageNumber": 1

                }

            ]

        },

        {

            "EditAction": "Add",

            "Name": "Signer",

            "EmailAddress": "signer@gmail.com",

            "AuthenticationType": "AccessCode",

            "AuthenticationCode": "1234",

            "FormFields": [

                {

                    "EditAction": "Add",

                    "FieldType": "Signature",

                    "Bounds": {

                        "X": 150,

                        "Y": 150,

                        "Width": 200,

                        "Height": 30

                    },

                    "IsRequired": true,

                    "PageNumber": 1

                }

            ]

        }

    ],

    "Labels": ["Label1", "Label2"],

    "ReminderSettings": {

        "EnableAutoReminder": true,

        "ReminderDays": 2,

        "ReminderCount": 4

    }

}'

.NET

var apiClient = new ApiClient("https://api.boldsign.com", "YOUR_API_KEY");

var documentClient = new DocumentClient(apiClient);

// File to edit
var editDocumentFile = new EditDocumentFile()
{
    EditAction = EditAction.Add,
    FileUrl = new Uri("YOUR_FILE_URL")
};

var filesToEdit = new List<EditDocumentFile>()
{
    editDocumentFile
};

// First signer (update existing)
var textField = new EditFormField()
{
    EditAction = EditAction.Add,
    Type = FieldType.TextBox,
    IsRequired = false,
    Bounds = new Rectangle()
    {
        X = 100,
        Y = 100,
        Width = 100,
        Height = 20,
    },
    PageNumber = 1,
};

var signerToUpdate = new EditDocumentSigner()
{
    EditAction = EditAction.Update,
    Id = "YOUR-SIGNER-ID",
    AuthenticationType = AuthenticationType.EmailOTP,
    FormFields = new List<EditFormField>()
    {
        textField
    }
};

// Second signer (add new)
var signatureField = new EditFormField()
{
    EditAction = EditAction.Add,
    Type = FieldType.Signature,
    IsRequired = false,
    Bounds = new Rectangle()
    {
        X = 150,
        Y = 150,
        Width = 200,
        Height = 30,
    },
    PageNumber = 1,
};

var signerToAdd = new EditDocumentSigner()
{
    EditAction = EditAction.Add,
    Name = "Signer",
    EmailAddress = "signer@gmail.com",
    AuthenticationType = AuthenticationType.AccessCode,
    AuthenticationCode = "1234",
    FormFields = new List<EditFormField>()
    {
        signatureField
    }
};

var documentSigners = new List<EditDocumentSigner>()
{
    signerToUpdate,
    signerToAdd
};

// Reminder settings
var reminderSettings = new ReminderSettings()
{
    EnableAutoReminder = true,
    ReminderCount = 4,
    ReminderDays = 2,
};

// Labels
var labels = new List<string>()
{
    "Label1",
    "Label2"
};

// Final request
var editDocumentRequest = new EditDocumentRequest()
{
    DocumentId = "YOUR-DOCUMENT-ID",
    Files = filesToEdit,
    Message = "Please sign this document.",
    Signers = documentSigners,
    Labels = labels,
    ReminderSettings = reminderSettings
};

var documentEdited = documentClient.EditDocument(editDocumentRequest);

Python

import boldsign

 

configuration = boldsign.Configuration(api_key="YOUR_API_KEY")

 

with boldsign.ApiClient(configuration) as api_client:

    document_api = boldsign.DocumentApi(api_client)

    document_id = "YOUR-DOCUMENT-ID"

 

    signer1 = boldsign.EditDocumentSigner(

        edit_action="Update",

        id="YOUR-SIGNER-ID",

        authentication_type="EmailOTP",

        form_fields=[

            boldsign.EditFormField(

                edit_action="Add",

                fieldType="TextBox",

                is_required=False,

                bounds=boldsign.Rectangle(x=100, y=100, width=100, height=20),

                page_number=1

            )

        ]

    )

 

    signer2 = boldsign.EditDocumentSigner(

        edit_action="Add",

        name="Signer22",

        email_address="signer@gmail.com",

        authentication_type="AccessCode",

        authentication_code="1234",

        form_fields=[

            boldsign.EditFormField(

                edit_action="Add",

                type="Signature",

                is_required=False,

                bounds=boldsign.Rectangle(x=150, y=150, width=200, height=30),

                page_number=1

            )

        ]

    )

 

    document_file = boldsign.EditDocumentFile(

        edit_action="Add",

        file='YOUR_FILE_PATH'

    )

 

    edit_request = boldsign.EditDocumentRequest(

        message="Please sign this document.",

        files=[document_file],

        signers=[signer1, signer2],

        labels=["Label1", "Label2"],

        reminder_settings=boldsign.ReminderSettings(

            enable_auto_reminder=True,

            reminder_count=4,

            reminder_days=2

        )

    )

    response = document_api.edit_document(document_id, edit_request)

PHP

<?php require_once "vendor/autoload.php";

use BoldSign\Configuration;

use BoldSign\Api\DocumentApi;

use BoldSign\Model\EditDocumentRequest;

use BoldSign\Model\EditDocumentSigner;

use BoldSign\Model\EditFormField;

use BoldSign\Model\Rectangle;

use BoldSign\Model\ReminderSettings;

use BoldSign\Model\EditDocumentFile;

 

$config = new Configuration();

$config->setApiKey('YOUR_API_KEY');

 

$apiInstance = new DocumentApi($config);

$document_id = "YOUR-DOCUMENT-ID";

 

$formField2 = new EditFormField();

$formField2->setEditAction("Add");

$formField2->setFieldType("TextBox");

$formField2->setIsRequired(false);

$formField2->setBounds(new Rectangle([100, 100, 100, 20]));

$formField2->setPageNumber(1);

 

$signer1 = new EditDocumentSigner();

$signer1->setEditAction("Update");

$signer1->setId("YOUR-SIGNER-ID");

$signer1->setAuthenticationType("EmailOTP");

$signer1->setFormFields([$formField2]);

 

$formField3 = new EditFormField();

$formField3->setEditAction("Add");

$formField3->setFieldType("Signature");

$formField3->setBounds(new Rectangle([100, 100, 100, 70]));

$formField3->setPageNumber(1);

 

$signer2 = new EditDocumentSigner();

$signer2->setEditAction("Add");

$signer2->setName("Signer");

$signer2->setEmailAddress("signer@gmail.com");

$signer2->setAuthenticationType("AccessCode");

$signer2->setAuthenticationCode("1234");

$signer2->setFormFields([$formField3]);

 

$document1 = new EditDocumentFile();

$document1->setFileUrl("YOUR_FILE_URL");

$document1->setEditAction('Add');

 

$reminderSettings = new ReminderSettings();

$reminderSettings->setEnableAutoReminder(true);

$reminderSettings->setReminderCount(4);

$reminderSettings->setReminderDays(2);

 

$edit_document_request = new EditDocumentRequest();

$edit_document_request->setMessage('Please sign this document.');

$edit_document_request->setSigners([$signer1, $signer2]);

$edit_document_request->setFiles([$document1]);

$edit_document_request->setLabels(["Label1", "Label2"]);

$edit_document_request->setReminderSettings($reminderSettings);

$edit_document_response = $apiInstance->editDocument($document_id, $edit_document_request);

Java

ApiClient apiClient = Configuration.getDefaultApiClient();

        apiClient.setApiKey("YOUR_API_KEY");

        DocumentApi documentApi = new DocumentApi(apiClient);

 

        Rectangle bounds = new Rectangle();

        bounds.setX(50f);

        bounds.setY(100f);

        bounds.setWidth(100f);

        bounds.setHeight(60f);

 

        EditFormField formField = new EditFormField();

        formField.setEditAction(EditFormField.EditActionEnum.ADD);

        formField.setFieldType(EditFormField.FieldTypeEnum.SIGNATURE);

        formField.setPageNumber(1);

        formField.setBounds(bounds);

 

        EditDocumentSigner signers = new EditDocumentSigner();

        signers.setEmailAddress("signer@gmail.com");

        signers.setName("signername");

        signers.setFormFields(Arrays.asList(formField));

        signers.setEditAction(EditDocumentSigner.EditActionEnum.ADD);

 

        EditDocumentFile document1 = new EditDocumentFile();

        document1.setEditAction(EditDocumentFile.EditActionEnum.ADD);

        document1.setFileUrl( new URI( "YOUR_FILE_URL"));

 

        EditDocumentRequest editDocumentJsonRequest = new EditDocumentRequest();

        editDocumentJsonRequest.setSigners(Arrays.asList(signers));

        editDocumentJsonRequest.setMessage("Updated documments");

        editDocumentJsonRequest.setFiles(Arrays.asList(document1));

        String documentId = "YOUR-DOCUMENT-ID";

        documentApi.editDocument(documentId, editDocumentJsonRequest);

Node.js

import {

    DocumentApi,

    EditDocumentFile,

    EditDocumentRequest,

    EditDocumentSigner,

    EditFormField,

    Rectangle,

    ReminderSettings

} from "boldsign";

import * as fs from 'fs';

 

const documentApi = new DocumentApi();

documentApi.setApiKey("YOUR_API_KEY");

 

const documentId = "YOUR-DOCUMENT-ID";

 

const bounds1 = new Rectangle();

bounds1.x = 100;

bounds1.y = 100;

bounds1.width = 100;

bounds1.height = 20;

 

const formField1 = new EditFormField();

formField1.editAction = EditFormField.EditActionEnum.Add;

formField1.fieldType = EditFormField.FieldTypeEnum.TextBox;

formField1.isRequired = false;

formField1.bounds = bounds1;

formField1.pageNumber = 1;

 

const signer1 = new EditDocumentSigner();

signer1.editAction = EditDocumentSigner.EditActionEnum.Update;

signer1.id = "YOUR-SIGNER-ID";

signer1.authenticationType = EditDocumentSigner.AuthenticationTypeEnum.EmailOtp;

signer1.formFields = [formField1];

 

const bounds2 = new Rectangle();

bounds2.x = 150;

bounds2.y = 150;

bounds2.width = 200;

bounds2.height = 30;

 

const formField3 = new EditFormField();

formField3.editAction = EditFormField.EditActionEnum.Add;

formField3.fieldType = EditFormField.FieldTypeEnum.Signature;

formField3.isRequired = false;

formField3.bounds = bounds2;

formField3.pageNumber = 1;

 

const documentfile = new EditDocumentFile();

documentfile.file = fs.createReadStream("YOUR_FILE_PATH");

documentfile.editAction = EditDocumentFile.EditActionEnum.Add;

 

const signer2 = new EditDocumentSigner();

signer2.editAction = EditDocumentSigner.EditActionEnum.Add;

signer2.name = "Signer";

signer2.emailAddress = "signer@gmail.com";

signer2.authenticationType =EditDocumentSigner.AuthenticationTypeEnum.AccessCode;

signer2.authenticationCode = "1234";

signer2.formFields = [formField3];

 

const reminderSettings = new ReminderSettings();

reminderSettings.enableAutoReminder = true;

reminderSettings.reminderCount = 4;

reminderSettings.reminderDays = 2;

 

const editDocumentRequest = new EditDocumentRequest();

editDocumentRequest.message = "Please review and sign the attached document.";

editDocumentRequest.signers = [signer1, signer2];

editDocumentRequest.files = [documentfile];

editDocumentRequest.labels = ["Label1", "Label2"];

editDocumentRequest.reminderSettings = reminderSettings;

const editDocumentResponse = await documentApi.editDocument(documentId, editDocumentRequest);

Example Response
Here’s a sample response from the developer console:

image.png

Use cases for Queued status in Edit document API

Here are use cases for the Queued status:
1. Replace an existing file
You can upload a new version of a file to replace the old one in the document.

Example: Updating a contract PDF with the latest terms and conditions.

Details: Provide the file ID of the existing file and specify the new file to replace it.

Outcome: The request is queued for background processing, and once complete, the document will contain the updated file.

2. Add additional files
You can attach new files to an existing document.

Example: Adding an annexure or supporting document to a legal agreement.

Details: Specify the new file(s) in the request body.

Outcome: The system queues the request, merges or attaches the new files, and notifies signers once processing is complete.

3. Remove a file
You can delete an unnecessary or outdated file from the document.

Example: Removing an appendix that is no longer relevant.

Details: Provide the file ID of the file to be removed.

Outcome: The removal request is queued, and the document will be updated after background processing.

4. Large-scale edits involving files and signers
You can perform edits that involve both file changes and signer updates.

Example: Uploading a new version of a contract and adding a new signer with signature fields.

Details: Provide both file and signer details in the request body.

Outcome: The system queues the request, processes the file update, and applies signer changes once complete.

If your request only involves updates to properties such as the title, description, signers, or form fields (without any file modifications), the response status will be Completed, indicating synchronous processing and that all changes were applied instantly.

Was this article useful?
Like
Dislike
Help us improve this page
Please provide feedback or comments
Access denied
Access denied