### Example cURL Request for Document Download Source: https://goodsign.io/api/help/downlodforce/x4mEbB0128qwMGa0ALOekPYn3aRdzp This cURL command provides a practical example of how to make a GET request to the Goodsign API for downloading a document. It includes the necessary authorization header and demonstrates how to specify parameters like 'force' and 'index', and how to save the output to a file. ```bash curl --url https://goodsign.io/api/download/?force=true&index=0 \ --header 'authorization: Bearer YOUR_API_TOKEN' \ -F '(opt)slient=true' --ouptut mydoc.pdf ``` -------------------------------- ### Postman API Examples Source: https://goodsign.io/api/help Instructions on how to configure and use Postman to explore GoodSign API examples, including setting up API keys. ```APIDOC ## Postman API Examples ### Description Postman provides a convenient way to explore and interact with the GoodSign API. Follow these steps to configure your API key in Postman and access the provided API examples. ### Method N/A (Configuration guide) ### Endpoint N/A (Configuration guide) ### Parameters N/A ### Request Example N/A ### Response N/A ### Configuration Steps: 1. Open Postman. 2. Click the small eye icon in the top right corner. 3. Click the blue `edit` link located just below the eye icon. 4. Set the `apitoken` property with your obtained API key (`YOUR_API_TOKEN`). 5. You can now explore the working API examples provided by GoodSign. ``` -------------------------------- ### Authentication Source: https://goodsign.io/api/help Explains how to authenticate API requests using Bearer token authentication and provides an example using cURL. ```APIDOC ## Authentication ### Description API requests are authenticated using Bearer token authentication. Obtain your access token from the 'Settings & API' section. This token should be included in the `Authorization` header of your requests. ### Method N/A (Authentication mechanism) ### Endpoint N/A (Authentication mechanism) ### Parameters #### Headers - **Authorization** (string) - Required - `Bearer YOUR_API_TOKEN` ### Request Example ```bash curl -H "Authorization: Bearer YOUR_API_TOKEN" https://api.goodsign.com/some/endpoint ``` ### Response #### Success Response (200) N/A (Authentication is a prerequisite for API calls) #### Response Example N/A ``` -------------------------------- ### Download Document as PDF (GET Request) Source: https://goodsign.io/api/help/downlodforce/x4mEbB0128qwMGa0ALOekPYn3aRdzp This snippet demonstrates how to download a single document as a PDF using the Goodsign API. It requires the document's UUID and the 'force=true' parameter. An optional 'index' parameter can specify which document to download if a contract has multiple. ```http GET https://goodsign.io/api/download/:uuid?force=true&index=0 ``` -------------------------------- ### GET /api/templates Source: https://goodsign.io/api/help/gettemplates/x4mEbB0128qwMGa0ALOekPYn3aRdzp Retrieves a list of all available templates. This endpoint is useful for obtaining template UUIDs needed for sending templates and for viewing their key properties. ```APIDOC ## GET /api/templates ### Description Lists all available templates via the API. This endpoint allows you to find a template's UUID for sending purposes and to view all of its key properties. ### Method GET ### Endpoint https://goodsign.io/api/templates ### Parameters #### Query Parameters None #### Path Parameters None #### Request Body None ### Request Example ```json { "example": "No request body needed for this GET request." } ``` ### Response #### Success Response (200) - **templates** (array) - A list of template objects, each containing details about a template. #### Response Example ```json { "example": "null (as specified in the provided documentation, actual response structure may vary and should be confirmed with the API provider)" } ``` ### Authentication Bearer your_api_token ``` -------------------------------- ### Handle API Success and Error Responses Source: https://goodsign.io/api/help/pdf/x4mEbB0128qwMGa0ALOekPYn3aRdzp Examples of successful API responses and error responses containing 'badtags' metadata for debugging malformed PDF tag locations. ```json { "success": true, "doc": { "uuid": "4b5238bd-eae7-4d5f-be14-f30076d4a50d", "status": "sent" } } { "success": true, "msg": "Master document has been created", "badtags": { "15": { "text": " ]", "valid": false, "loc": { "urx": 418.26, "ury": 379.37 } } } } ``` -------------------------------- ### GET /api/downloadzip/:uuid Source: https://goodsign.io/api/help/downlod/x4mEbB0128qwMGa0ALOekPYn3aRdzp Downloads all final signed documents associated with a contract as a single ZIP file. ```APIDOC ## GET /api/downloadzip/:uuid ### Description Combines all final signed documents into a single ZIP file for download. ### Method GET ### Endpoint https://goodsign.io/api/downloadzip/:uuid ### Parameters #### Path Parameters - **uuid** (string) - Required - The unique identifier of the contract/document group. ### Request Example curl --url https://goodsign.io/api/downloadzip/YOUR_UUID \ --header 'authorization: Bearer YOUR_API_TOKEN' ### Response #### Success Response (200) - **Content-type** (application/octet-stream) - The binary ZIP file content. ``` -------------------------------- ### Upload and Send PDF via API Source: https://goodsign.io/api/help/pdf/x4mEbB0128qwMGa0ALOekPYn3aRdzp Use the /uploadpdf endpoint to upload a PDF file along with a JSON payload defining document metadata and signer information. This example demonstrates a cURL request with multipart form data. ```bash curl --header 'authorization: Bearer YOUR_API_TOKEN' \ -F 'file=@./your_file_with_tags.pdf' \ -F 'xref=[input?|signer1|xref example]' \ -F 'payload={"doc_name":"your_doc_name.pdf","metadata":["any valid json works"],"webhook":"","cc_email":"","smsverify(optional)":"boolean true or false","send_in_order(optional)":"boolean true or false","duplicate(optional)":"boolean default true for manually created template, false for PDFs loaded via api","email_subject(optional)":"{fullname} has requested your signature on {docname}","email_message(optional)":"extra message to include, not required","ignore_missing_signers(optional)":false,"signers":[{"key":"signer1","name":"Jane_Smith","email":"jane@example.com","reminder_days":1}]}' \ https://goodsign.io/api/uploadpdf ``` -------------------------------- ### GET /api/download/:uuid Source: https://goodsign.io/api/help/downlod/x4mEbB0128qwMGa0ALOekPYn3aRdzp Downloads a specific document as a single PDF file using its unique UUID. ```APIDOC ## GET /api/download/:uuid ### Description Downloads a document as a single PDF file. ### Method GET ### Endpoint https://goodsign.io/api/download/:uuid ### Parameters #### Path Parameters - **uuid** (string) - Required - The unique identifier of the document. ### Request Example curl --url https://goodsign.io/api/download/YOUR_UUID \ --header 'authorization: Bearer YOUR_API_TOKEN' ### Response #### Success Response (200) - **Content-type** (application/octet-stream) - The binary PDF file content. ``` -------------------------------- ### GET /api/document/:uuid Source: https://goodsign.io/api/help/getdocument/x4mEbB0128qwMGa0ALOekPYn3aRdzp Retrieve all details about a specific document, including its current status, signer progress, and associated metadata. ```APIDOC ## GET /api/document/:uuid ### Description Retrieve all the details about a document and its signing progress, including signer status, completion times, and field input values. ### Method GET ### Endpoint https://goodsign.io/api/document/:uuid ### Parameters #### Path Parameters - **uuid** (string) - Required - The unique identifier of the document. ### Request Example ```bash curl --request GET \ --url https://goodsign.io/api/document/:uuid \ --header 'authorization: Bearer YOUR_API_TOKEN' ``` ### Response #### Success Response (200) - **master_doc** (object) - Contains document metadata, status, and signer information. - **attachments** (array) - List of files attached to the document. #### Response Example { "master_doc": { "name": "F - Depreciation Schedule.pdf", "signers": [], "fields": [], "completed_time": null, "status": "draft", "cc": null, "is_attachment": true, "istemplate": null, "webhook": null, "metadata": null, "note": null, "uuid": "", "download_pdf": "https://goodsign.io/api/download/", "download_zip": null }, "attachments": [] } ``` -------------------------------- ### GET /api/download/:uuid Source: https://goodsign.io/api/help/downlodforce/x4mEbB0128qwMGa0ALOekPYn3aRdzp Downloads a document as a PDF or a collection of documents as a ZIP file. Supports forcing a download for incomplete documents. ```APIDOC ## GET /api/download/:uuid ### Description Download a document as a PDF or a contract as a ZIP file. Use the force parameter to preview incomplete documents. ### Method GET ### Endpoint https://goodsign.io/api/download/:uuid?force=true&index=0 ### Parameters #### Path Parameters - **uuid** (string) - Required - The unique identifier of the document. #### Query Parameters - **force** (boolean) - Required - Set to true to download incomplete documents for preview. - **index** (integer) - Optional - The index of the document to download (0 for first, 1 for second, etc.). ### Request Example ```bash curl --url https://goodsign.io/api/download/:uuid?force=true&index=0 \ --header 'authorization: Bearer YOUR_API_TOKEN' \ --output mydoc.pdf ``` ### Response #### Success Response (200) - **Content-type** (application/octet-stream) - The binary PDF or ZIP file content. #### Response Example Binary stream of the requested file. ``` -------------------------------- ### Download Multiple Documents as ZIP (GET Request) Source: https://goodsign.io/api/help/downlodforce/x4mEbB0128qwMGa0ALOekPYn3aRdzp This snippet illustrates downloading all final signed documents for a contract as a single ZIP file using the Goodsign API. It requires the contract's UUID and the 'force=true' parameter. The 'index' parameter is not applicable when downloading as a ZIP. ```http GET https://goodsign.io/api/download/:uuid?force=true ``` -------------------------------- ### Retrieve Document Details via cURL Source: https://goodsign.io/api/help/getdocument/x4mEbB0128qwMGa0ALOekPYn3aRdzp Fetches the current status and metadata for a document using the GoodSign API. Requires a valid Bearer token in the Authorization header and the document UUID appended to the endpoint URL. ```shell curl --request GET \ --url https://goodsign.io/api/document/:uuid \ --header 'authorization: Bearer YOUR_API_TOKEN' ``` -------------------------------- ### POST /api/uploadpdf - Create Template from PDF Source: https://goodsign.io/api/help/template/x4mEbB0128qwMGa0ALOekPYn3aRdzp Upload a PDF document to create a template. The PDF can include text tags that will be converted into signing and input fields. This endpoint is used for the main document upload. ```APIDOC ## POST /api/uploadpdf ### Description Upload a PDF document to create a template. Text tags within the PDF (formatted as `[tag_type(?)|signer_key|default value|options]`) are converted into signing and input fields. This is the primary endpoint for uploading the main document. ### Method POST ### Endpoint https://goodsign.io/api/uploadpdf ### Parameters #### Form Data - **file** (file) - Required - The PDF file to upload. - **xref** (string) - Optional - Used to define text tags within the document, following the format `[tag_type(?)|signer_key|default value|options]`. ### Request Example ```bash curl --header 'authorization: Bearer YOUR_API_TOKEN' \ -F 'file=@./your_file_with_tags.pdf' \ -F 'xref=[input?|signer1|xref example]' \ https://goodsign.io/api/uploadpdf ``` ### Response #### Success Response (200) Returns a `send_payload` object that can be used with the Send Template endpoint. Includes `success`, `msg`, `uuid`, and `badtags`. #### Response Example (Success) ```json { "success": true, "msg": "Master document has been created", "uuid": "7a29154f-5d38-493c-b0aa-azk39283", "badtags": [], "send_payload": { "uuid": "7a29154f-5d38-493c-b0aa-azk39283", "doc_name": "goodsign_guide_v1.2.pdf", "attachment_names_in_order": [], "webhook": "", "cc_email": "", "smsverify(optional)": "boolean true or false", "send_in_order(optional)": "boolean true or false", "duplicate(optional)": "boolean default true for manually created template, false for PDFs loaded via api", "email_subject(optional)": "{fullname} has requested your signature on {docname}", "email_message(optional)": "extra message to include, not required", "signers": [ { "key": "Signer1", "name": "Jane Smith", "email": "jane_1@example.com", "reminder_days": 1 }, { "key": "Signer2", "name": "Jane Smith", "email": "jane_2@example.com", "reminder_days": 1 } ] } } ``` #### Response Example (Bad Tags) ```json { "success": true, "msg": "Master document has been created", "uuid": "2d4e37d9-d1b1-42cb-a1d2-97deff874717", "badtags": { "15": { "text": " ]", "valid": false, "loc": { "urx": 418.26, "ury": 379.37 } }, "16": { "text": " ]", "valid": false, "loc": { "urx": 418.01, "ury": 400.34 } } } } ``` ``` -------------------------------- ### POST /api/templates/send Source: https://goodsign.io/api/help?id=x4mEbB0128qwMGa0ALOekPYn3aRdzp Send an existing template for signing by specifying signer details, document metadata, and optional verification settings. ```APIDOC ## POST /api/templates/send ### Description Automates the sending of a pre-configured template. Allows full control over signer details, email content, and webhooks. ### Method POST ### Endpoint /api/templates/send ### Request Body - **template_id** (string) - Required - The ID of the template to send - **signers** (array) - Required - List of signer objects - **email_subject** (string) - Optional - Custom subject line - **email_body** (string) - Optional - Custom email message ### Request Example { "template_id": "tmpl_12345", "signers": [{"name": "John Doe", "email": "john@example.com"}], "email_subject": "Please sign this document" } ### Response #### Success Response (200) - **id** (string) - The unique ID of the sent document request - **status** (string) - Current status of the request ``` -------------------------------- ### POST /send_templates Source: https://goodsign.io/api/help/pdf/x4mEbB0128qwMGa0ALOekPYn3aRdzp Sends a document template for signature, including signer details, witness information, and optional email configurations. ```APIDOC ## POST /send_templates ### Description Sends a document template for signature. Supports adding witnesses, custom email subjects, and document metadata. ### Method POST ### Endpoint /send_templates ### Request Body - **doc_name** (string) - Required - The name of the PDF document. - **metadata** (array) - Optional - Any valid JSON metadata. - **webhook** (string) - Optional - Webhook URL for status updates. - **cc_email** (string) - Optional - Email address to CC. - **smsverify** (boolean) - Optional - Enable SMS verification. - **send_in_order** (boolean) - Optional - Send signature requests in a specific order. - **signers** (array) - Required - List of signers including keys, names, emails, and witness keys. ### Request Example { "doc_name": "your_doc_name.pdf", "signers": [ { "key": "signer1", "name": "Jane_Smith", "email": "jane@example.com", "witness_key": "witness1" } ] } ### Response #### Success Response (200) - **success** (boolean) - Indicates if the request was successful. - **doc** (object) - Contains document details like uuid, name, and status. - **credit** (integer) - Remaining credits. #### Response Example { "success": true, "doc": { "uuid": "4b5238bd-eae7-4d5f-be14-f30076d4a50d", "name": "goodsign_guide_v5.pdf", "status": "sent" }, "credit": 907 } ``` -------------------------------- ### Download Document via API Source: https://goodsign.io/api/help/downlod/x4mEbB0128qwMGa0ALOekPYn3aRdzp Retrieves a signed document as a PDF or a collection of documents as a ZIP file. Requires a valid Bearer token and the document UUID as a path parameter. ```bash curl --url https://goodsign.io/api/download/:uuid \ --header 'authorization: Bearer YOUR_API_TOKEN' ``` ```bash curl --url https://goodsign.io/api/downloadzip/:uuid \ --header 'authorization: Bearer YOUR_API_TOKEN' ``` -------------------------------- ### Attach Supplementary Document via cURL Source: https://goodsign.io/api/help/template/x4mEbB0128qwMGa0ALOekPYn3aRdzp Attaches an additional PDF document to an existing master document template. Requires the UUID of the previously created master document. ```bash curl --header 'authorization: Bearer YOUR_API_TOKEN' \ -F 'file=@./your_file_with_tags.pdf' \ -F 'uuid=UUID_OF_MAIN_DOC' \ -F 'attachment=true' \ https://goodsign.io/api/uploadpdf ``` -------------------------------- ### Retrieve all templates via GoodSign API Source: https://goodsign.io/api/help/gettemplates/x4mEbB0128qwMGa0ALOekPYn3aRdzp This endpoint returns a list of all templates available in the account. It requires a Bearer token for authentication and returns template details including UUIDs and properties. ```bash curl --request GET \ --url https://goodsign.io/api/templates \ --header 'authorization: Bearer YOUR_API_TOKEN' ``` -------------------------------- ### Configure Signer with Witness Field Source: https://goodsign.io/api/help/pdf/x4mEbB0128qwMGa0ALOekPYn3aRdzp Demonstrates how to include a witness key within the signer object of the send_payload to enable witness verification for a document. ```json { "doc_name": "your_doc_name.pdf", "signers": [ { "key": "signer1", "name": "Jane_Smith", "email": "jane@example.com", "witness_key": "witness1" } ] } ``` -------------------------------- ### Upload PDF Template via cURL Source: https://goodsign.io/api/help/template/x4mEbB0128qwMGa0ALOekPYn3aRdzp Uploads a PDF document containing text tags to the GoodSign API to initialize a template. The endpoint returns a payload containing a UUID which is required for subsequent signing operations. ```bash curl --header 'authorization: Bearer YOUR_API_TOKEN' \ -F 'file=@./your_file_with_tags.pdf' \ -F 'xref=[input?|signer1|xref example]' \ https://goodsign.io/api/uploadpdf ``` -------------------------------- ### Void Document via cURL Source: https://goodsign.io/api/help/void/x4mEbB0128qwMGa0ALOekPYn3aRdzp This cURL command demonstrates how to void a document by sending a POST request to the GoodSign API. It includes optional parameters for silent mode and custom messages. ```bash curl --url https://goodsign.io/api/document/:uuid/void \ --header 'authorization: Bearer YOUR_API_TOKEN' \ -F 'notify=false' \ -F 'msg=message to sender each signer about voided document' ``` -------------------------------- ### Define Document Tags for PDF Templates Source: https://goodsign.io/api/help/pdf/x4mEbB0128qwMGa0ALOekPYn3aRdzp Defines the JSON structure for document tags, specifying the type, coordinates, and page location for signature, date, and email fields. ```json [ { "type": "sign", "left": "10", "top": "150", "width": "210", "height": "20", "page": 1 }, { "key": "Signer1", "type": "date", "left": "10", "top": "200", "width": "210", "height": "20", "page": 1 } ] ``` -------------------------------- ### POST /api/uploadpdf Source: https://goodsign.io/api/help/pdf/x4mEbB0128qwMGa0ALOekPYn3aRdzp Upload a PDF document and send it to signers. The PDF can contain text tags that are converted into signing and input fields. You can also define extra fields via the API payload. ```APIDOC ## POST /api/uploadpdf ### Description Upload a PDF document and send it to signers. The PDF can contain text tags that are converted into signing and input fields. You can also define extra fields via the API payload. ### Method POST ### Endpoint https://goodsign.io/api/uploadpdf ### Parameters #### Query Parameters - **file** (file) - Required - The PDF file to upload. - **xref** (string) - Optional - A text tag to be placed in the document. - **payload** (object) - Required - A JSON object containing document details and signer information. #### Request Body **file**: The PDF file to upload. **xref**: A text tag to be placed in the document, e.g., `[input?|signer1|xref example]`. **payload**: A JSON object with the following structure: ```json { "doc_name": "string", "metadata": ["any valid json works"], "webhook": "string", "cc_email": "string", "smsverify(optional)": "boolean", "send_in_order(optional)": "boolean", "duplicate(optional)": "boolean", "email_subject(optional)": "string", "email_message(optional)": "string", "ignore_missing_signers(optional)": "boolean", "signers": [ { "key": "string", "name": "string", "email": "string", "reminder_days": "integer", "witness_key": "string" (optional) } ], "extrafields": [ { "key": "string", "type": "string", "opt": "string", "value": "string", "style": "string", "left": "string", "top": "string", "width": "string", "height": "string", "page": "integer" } ] } ``` ### Request Example ```bash curl --header 'authorization: Bearer YOUR_API_TOKEN' \ -F 'file=@./your_file_with_tags.pdf' \ -F 'xref=[input?|signer1|xref example]' \ -F 'payload={"doc_name":"your_doc_name.pdf","metadata":["any valid json works"],"webhook":"","cc_email":"","smsverify(optional)":"false","send_in_order(optional)":"false","duplicate(optional)":"false","email_subject(optional)":"{fullname} has requested your signature on {docname}","email_message(optional)":"extra message to include, not required","ignore_missing_signers(optional)":false,"signers":[{"key":"signer1","name":"Jane_Smith","email":"jane@example.com","reminder_days":1}]}' \ https://goodsign.io/api/uploadpdf ``` ### Response #### Success Response (200) - **message** (string) - A success message indicating the PDF was uploaded and processed. - **document_id** (string) - The unique identifier for the uploaded document. #### Response Example ```json { "message": "Document uploaded successfully.", "document_id": "doc_12345abcde" } ``` #### Error Response (400, 401, 500) - **error** (string) - An error message describing the issue. #### Error Response Example ```json { "error": "Invalid API token provided." } ``` ``` -------------------------------- ### POST /api/uploadpdf - Attach Extra Document Source: https://goodsign.io/api/help/template/x4mEbB0128qwMGa0ALOekPYn3aRdzp Attach an additional document to an existing master document created via the /uploadpdf endpoint. This is useful for including supplementary files in a template. ```APIDOC ## POST /api/uploadpdf - Attach Extra Document ### Description Attach an extra document to a previously uploaded main document. This allows for the inclusion of supplementary files within a GoodSign template. ### Method POST ### Endpoint https://goodsign.io/api/uploadpdf ### Parameters #### Form Data - **file** (file) - Required - The PDF file of the extra document to attach. - **uuid** (string) - Required - The UUID of the main document to which this file will be attached. - **attachment** (boolean) - Required - Set to `true` to indicate this is an attachment. ### Request Example ```bash curl --header 'authorization: Bearer YOUR_API_TOKEN' \ -F 'file=@./your_extra_document.pdf' \ -F 'uuid=UUID_OF_MAIN_DOC' \ -F 'attachment=true' \ https://goodsign.io/api/uploadpdf ``` ### Response #### Success Response (200) Indicates that the file was successfully attached to the master document. #### Response Example ```json { "success": true, "msg": "File was attached to your master document" } ``` ``` -------------------------------- ### POST /api/usetemplate Source: https://goodsign.io/api/help/use/x4mEbB0128qwMGa0ALOekPYn3aRdzp Send a template to signers via the API. This endpoint allows you to specify signers, document names, and various optional settings for sending documents. ```APIDOC ## POST /api/usetemplate ### Description Send this template to signers via the API. This endpoint allows you to use a template via the API. To get started, you will need to set who the signers are, name & email. You must set a signer for each role you have created. * Setting a signer also updates any name and email fields * Fields of the type _datesigned_ will automatically update when the signer signs. * A signer must have a valid email and name * Reminder days is counted in days from the document was sent eg 1 day = 24 hours from send * Duplicate (manual templates) - is always true. Duplicate template and send * Duplicate (API uploaded PDFs) - false, API consumes template and sends it. Set duplicate=true to send this document to a batch of people * You can pre-fill in form inputs and labels (eg title, role, company etc) by setting the fields array in the JSON. * You can rename the main document using 'doc_name', to rename the extra documents (_attachments_), use 'attachment_names_in_order' * Use the _metadata_ field for any custom data, arrays or objects * Any json node that starts _info__ is purely for information below, you can ommit it from you request * ignore_missing_signers (optional) - if set to true, any extra signers found in your document will be removed when the template is used. You can find the OpenAPI 3.1 specification for the JSON parameters on goodsign.stoplight.io ### Method POST ### Endpoint https://goodsign.io/api/usetemplate ### Parameters #### Request Body - **uuid** (any) - Optional - Used to specify the template UUID. If null, a new template instance is created. - **doc_name** (string) - Required - The name of the main document. - **attachment_names_in_order** (array) - Optional - An array of strings to rename extra documents in order. - **metadata** (array) - Optional - An array for any custom data, arrays, or objects. - **webhook** (string) - Optional - URL for webhook notifications. - **cc_email** (string) - Optional - Email address for CC recipients. - **smsverify** (boolean) - Optional - Enable SMS verification for signers. - **send_in_order** (boolean) - Optional - If true, send documents in a specific order. - **duplicate** (boolean) - Optional - Default true for manually created templates, false for PDFs loaded via API. Set to true to send to a batch of people. - **email_subject** (string) - Optional - The subject line for the email notification. Can use placeholders like {fullname} and {docname}. - **email_message** (string) - Optional - An additional message to include in the email. - **ignore_missing_signers** (boolean) - Optional - If true, extra signers found in the document will be removed. - **fields** (array) - Optional - An array to pre-fill form inputs and labels. ### Request Example ```json { "uuid": null, "doc_name": "F - Depreciation Schedule.pdf", "attachment_names_in_order": [], "metadata": [ "any valid json works" ], "webhook": "", "cc_email": "", "smsverify": false, "send_in_order": false, "duplicate": true, "email_subject": "{fullname} has requested your signature on {docname}", "email_message": "extra message to include, not required", "ignore_missing_signers": false, "fields": [] } ``` ### Response #### Success Response (200) - **status** (string) - Indicates the success of the operation. - **message** (string) - A confirmation message. #### Response Example ```json { "status": "success", "message": "Template sent successfully." } ``` ``` -------------------------------- ### Send Reminder via API (cURL) Source: https://goodsign.io/api/help/remind/x4mEbB0128qwMGa0ALOekPYn3aRdzp This snippet demonstrates how to send a reminder to a signer using the GoodSign API via a cURL request. It requires the document UUID, an API token for authentication, and the signer's email address as a parameter. The response indicates the success status of the reminder. ```cURL curl --url https://goodsign.io/api/document//remind \ --header 'authorization: Bearer YOUR_API_TOKEN' \ -F 'signer_email=EMAIL_ADDRESS_HERE' ``` -------------------------------- ### Configure Signer Payload with Witness Source: https://goodsign.io/api/help/pdf/x4mEbB0128qwMGa0ALOekPYn3aRdzp When a document requires a witness, the signer payload must include a 'witness_key' that corresponds to the unique key assigned to the witness field on the document. ```json { "key": "signer1", "name": "John Ballinger", "email": "john@example.com", "reminder_days": 1, "witness_key": "witness1" } ``` -------------------------------- ### Send Template via GoodSign API Source: https://goodsign.io/api/help/use/x4mEbB0128qwMGa0ALOekPYn3aRdzp Demonstrates the JSON payload structure and the corresponding cURL request required to trigger a template-based signing process via the GoodSign API. ```json { "uuid": null, "doc_name": "F - Depreciation Schedule.pdf", "attachment_names_in_order": [], "metadata": [ "any valid json works" ], "webhook": "", "cc_email": "", "smsverify(optional)": "boolean true or false", "send_in_order(optional)": "boolean true or false", "duplicate(optional)": "boolean default true for manually created template, false for PDFs loaded via api", "email_subject(optional)": "{fullname} has requested your signature on {docname}", "email_message(optional)": "extra message to include, not required", "ignore_missing_signers(optional)": false, "fields(optional)": [] } ``` ```bash curl --request POST \ --url https://goodsign.io/api/usetemplate \ --header 'authorization: Bearer YOUR_API_TOKEN' \ --data '{"uuid":null,"doc_name":"F - Depreciation Schedule.pdf","attachment_names_in_order":[],"metadata":["any valid json works"],"webhook":"","cc_email":"","smsverify(optional)":"boolean true or false","send_in_order(optional)":"boolean true or false","duplicate(optional)":"boolean default true for manually created template, false for PDFs loaded via api","email_subject(optional)":"{fullname} has requested your signature on {docname}","email_message(optional)":"extra message to include, not required","ignore_missing_signers(optional)":false}' ``` -------------------------------- ### Define Payload with Extra Fields Source: https://goodsign.io/api/help/pdf/x4mEbB0128qwMGa0ALOekPYn3aRdzp The 'extrafields' array allows for precise placement of input, checkbox, and signature fields on a PDF page using coordinates. This can be used in conjunction with or instead of document text tags. ```json { "doc_name": "your_doc_name.pdf", "signers": [ {"key": "signer1", "name": "Jane_Smith", "email": "jane@example.com", "reminder_days": 1} ], "extrafields": [ { "key": "signer1", "type": "input", "opt": "?", "value": "Value set via API", "left": "10", "top": "10", "width": "110", "height": "11", "page": 1 }, { "key": "signer1", "type": "signxl", "left": "10", "top": "100", "width": "110", "height": "11", "page": 1 } ] } ``` -------------------------------- ### Define Text Tags for PDF Fields Source: https://goodsign.io/api/help/pdf/x4mEbB0128qwMGa0ALOekPYn3aRdzp Text tags are embedded directly into your PDF document to define signing and input fields. They follow a specific syntax to map document locations to API-defined fields. ```text [tag_type(?)|signer_key|default value|options] ``` -------------------------------- ### Authentication Source: https://goodsign.io/api/help?id=x4mEbB0128qwMGa0ALOekPYn3aRdzp All API requests require authentication using a Bearer token. Retrieve your API token from the GoodSign Settings & API dashboard. ```APIDOC ## Authentication ### Description GoodSign uses Bearer token authentication for all API requests. Include the token in the Authorization header. ### Header - **Authorization**: Bearer YOUR_API_TOKEN ### Example curl -X GET "https://api.goodsign.io/v1/documents" \ -H "authorization: Bearer YOUR_API_TOKEN" ``` -------------------------------- ### Authenticate with GoodSign API using cURL Source: https://goodsign.io/api/help?id=x4mEbB0128qwMGa0ALOekPYn3aRdzp This snippet demonstrates how to authenticate requests to the GoodSign API using a Bearer token. It requires an API token obtained from the GoodSign settings page and must be included in the request header. ```bash curl -X GET "https://api.goodsign.io/v1/endpoint" \ -H "authorization: Bearer YOUR_API_TOKEN" ``` -------------------------------- ### POST /api/document/:uuid/remindall Source: https://goodsign.io/api/help/remindall/x4mEbB0128qwMGa0ALOekPYn3aRdzp Endpoint to send email reminders to all signers who have not yet completed the signing process for a specific document. ```APIDOC ## POST /api/document/:uuid/remindall ### Description Remind one or more signers that have been emailed but have not yet signed the document. ### Method POST ### Endpoint https://goodsign.io/api/document/:uuid/remindall ### Parameters #### Path Parameters - **uuid** (string) - Required - The unique identifier of the document. ### Request Example ```bash curl --url https://goodsign.io/api/document/:uuid/remindall \ --header 'authorization: Bearer YOUR_API_TOKEN' ``` ### Response #### Success Response (200) - **success** (boolean) - Indicates if the request was successful. - **msg** (string) - Confirmation message. - **status** (string) - The status of the reminder action. - **master_doc** (object) - The master document data. #### Response Example { "success": true, "msg": "Reminder Sent", "status": "sent", "master_doc": {} } ``` -------------------------------- ### POST /api/document/:uuid/void Source: https://goodsign.io/api/help/void/x4mEbB0128qwMGa0ALOekPYn3aRdzp Voids a document and optionally notifies senders. You can control notifications and provide a reason for voiding. ```APIDOC ## POST /api/document/:uuid/void ### Description Voids a document and notifies senders. There is a `notify` option that can be set to `false`. If false, the signers will not be emailed. You can also set `msg` which will be included in the email sent to signers. It's not required, but could be helpful if you have a reason for voiding. eg Correcting contract. ### Method POST ### Endpoint https://goodsign.io/api/document/:uuid/void ### Parameters #### Path Parameters - **uuid** (string) - Required - The unique identifier of the document to void. #### Query Parameters None #### Request Body - **notify** (boolean) - Optional - `true` or `false`. Defaults to `true`. If `false`, signers will not be emailed. - **msg** (string) - Optional - A message to be included in the email sent to signers, explaining the reason for voiding. ### Request Example ```json { "notify": false, "msg": "Correcting contract details" } ``` ### Response #### Success Response (200) - **success** (boolean) - Indicates if the operation was successful. - **msg** (string) - A message indicating the status of the voiding operation (e.g., "Document has been voided" or "Document was already voided, no changes made"). - **status** (string) - The current status of the document (e.g., "voided"). - **master_doc** (object) - Contains the Master Document Data. #### Response Example ```json { "success": true, "msg": "Document has been voided", "status": "voided", "master_doc": {} } ``` ``` -------------------------------- ### Delete Document API Request (cURL) Source: https://goodsign.io/api/help/delete/x4mEbB0128qwMGa0ALOekPYn3aRdzp This cURL command demonstrates how to make a POST request to the Goodsign API to delete a document. It requires an API token for authentication. ```curl curl --url https://goodsign.io/api/document//delete \ --header 'authorization: Bearer YOUR_API_TOKEN' ``` -------------------------------- ### POST /api/document/:uuid/remind Source: https://goodsign.io/api/help/remind/x4mEbB0128qwMGa0ALOekPYn3aRdzp Sends a reminder notification to a specific signer of a document by their email address. ```APIDOC ## POST /api/document/:uuid/remind ### Description Reminds a single signer about signing a document. This can also be used to push the email notification to the top of the signer's inbox. ### Method POST ### Endpoint https://goodsign.io/api/document/:uuid/remind ### Parameters #### Path Parameters - **uuid** (string) - Required - The unique identifier of the document. #### Request Body - **signer_email** (string) - Required - The email address of the signer to be reminded. ### Request Example curl --url https://goodsign.io/api/document/:uuid/remind \ --header 'authorization: Bearer YOUR_API_TOKEN' \ -F 'signer_email=john@example.com' ### Response #### Success Response (200) - **success** (boolean) - Indicates if the request was successful. - **msg** (string) - Status message confirming the action. - **status** (string) - The status of the reminder. - **master_doc** (object) - The master document data object. #### Response Example { "success": true, "msg": "Reminder Sent", "status": "sent", "master_doc": {} } ``` -------------------------------- ### Delete Document Source: https://goodsign.io/api/help/delete/x4mEbB0128qwMGa0ALOekPYn3aRdzp Deletes a document and its associated files from your account. This action is irreversible. ```APIDOC ## POST /api/document/:uuid/delete ### Description Deletes a document and all associated files and data from your account. This action cannot be undone. ### Method POST ### Endpoint https://goodsign.io/api/document/:uuid/delete ### Parameters #### Path Parameters - **uuid** (string) - Required - The unique identifier of the document to be deleted. #### Query Parameters None #### Request Body None ### Request Example ```json { "example": "No request body needed for this endpoint." } ``` ### Response #### Success Response (200) - **success** (boolean) - Indicates if the deletion was successful. - **msg** (string) - A message confirming the document deletion. #### Response Example ```json { "success": true, "msg": "Your document has been deleted" } ``` ``` -------------------------------- ### Delete Document API Response Source: https://goodsign.io/api/help/delete/x4mEbB0128qwMGa0ALOekPYn3aRdzp This JSON object represents a successful response after deleting a document. It confirms the action was successful and provides a confirmation message. ```json { "success": true, "msg": "Your document has been deleted" } ``` -------------------------------- ### Send Reminder to All Signers via cURL Source: https://goodsign.io/api/help/remindall/x4mEbB0128qwMGa0ALOekPYn3aRdzp This cURL request triggers a reminder email to all signers associated with a document who have not yet completed the signing process. It requires a valid Bearer token in the Authorization header and the document UUID in the URL path. ```bash curl --url https://goodsign.io/api/document/:uuid/remindall \ --header 'authorization: Bearer YOUR_API_TOKEN' \ --request POST ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.