swagger: '2.0' info: description: >- Legalesign powers eSignature and form workflows. This connector contains the endpoints for the Legalesign REST interface and Webhooks. version: 1.0.0 title: Legalesign termsOfService: https://legalesign.com/opn/terms/ contact: email: sales@legalesign.com name: API support url: https://legalesign.com/contact/ consumes: - application/json produces: - application/json x-ms-connector-metadata: categories: - eSignature visibility: important host: eu-api.legalesign.com basePath: /api/v1 schemes: - https tags: - name: attachment description: Static email attachments - name: document description: Signing documents - name: recipient description: Document signers, approvers or witnesses - name: templatepdf description: Uploaded files for signing - name: group description: Groups (aka teams) contain everything - name: user description: Users are email-linked accounts - name: trigger description: Event notifications/webhooks externalDocs: description: Information about webhooks url: https://apidocs.legalesign.com/docs/webhooks - name: member description: Users within a group externalDocs: description: Find out more about Legalesign url: https://apidocs.legalesign.com/ security: - api_key: [] definitions: PermissionsEnum: type: integer description: Permission options x-enum-varnames: - permissionAdmin - permissionTeamCreateSend - permissionTeamSend - permissionSoloSend - permissionSoloCreateSend - permissionReadOnly x-enum-descriptions: - Administrator - Team visible create and send - Team visible send only - Team not visible send only - Team not visible create and send - Team visible read only enum: - 1 - 2 - 3 - 4 - 5 - 6 WebhookEventFilterEnum: type: string description: Event filters enum: - '' - document.* - document.created - document.rejected - document.finalPdfCreated - recipient.* - recipient.completed - recipient.rejected - recipient.emailOpened - recipient.visiting - recipient.bounced CallbackDeletePost: type: object description: Delete a webhook required: - url properties: url: type: string pattern: ^(http|https):// description: URL to remove, it must match any registered callback exactly eventFilter: $ref: '#/definitions/WebhookEventFilterEnum' group: description: If a group filter is applied refer to it with slug or resource_uri type: integer ListMeta: type: object description: Meta information about listing properties: limit: type: integer format: int32 description: Maximum length of these objects next: type: string x-nullable: true description: URL for next set of objects offset: type: integer format: int32 description: Number of items from the start of the resultset previous: type: string x-nullable: true description: URL for previous set of objects total_count: type: integer format: int32 description: Total number of objects GroupListResponse: type: object description: Groups listing properties: meta: $ref: '#/definitions/ListMeta' objects: type: array items: type: object properties: created: type: string format: date-time description: Created is_active: type: boolean description: Active modified: type: string format: date-time description: Modified name: type: string description: Name public_name: type: string description: Public name resource_uri: type: string description: URI slug: type: string description: Unique name user: type: string description: Creator URI xframe_allow: type: boolean description: Allow embed signing xframe_allow_pdf_edit: type: boolean description: Allow embed edit example: created: 2020-05-20T:15:10 is_active: true modified: 2020-05-20T:15:10 name: my group public_name: global exports resource_uri: /api/v1/group/my-group/ slug: my-group user: /api/v1/user/u0u0u0u0-u0u0-u0u0-u0u0-u0u0u0u0u0u0/ xframe_allow: false xframe_allow_pdf_edit: false GroupPost: type: object description: Create a group input required: - name properties: name: type: string minLength: 4 maxLength: 60 description: Group name xframe_allow: type: boolean description: Set to true if you want to embed your signing page. default: false GroupResponse: type: object properties: created: type: string format: date-time description: Created default_email: type: string description: Default email default_extraemail: type: string description: Default extra email footer: type: string description: Html of text footer footer_height: type: integer description: Footer height header: type: string description: Html of text header is_active: type: boolean description: Active members: type: array description: List of members uris items: type: string description: Members uri modified: type: string format: date-time description: Modified name: type: string description: Name pagesize: type: integer format: int32 description: Page-size public_name: type: string description: Public name resource_uri: type: string description: Resource URI slug: type: string description: Unique name user: type: string description: Creator URI xframe_allow: type: boolean description: Allow embed signing xframe_allow_pdf_edit: type: boolean description: Allow embed edit example: created: 2020-05-20T:15:10 default_email: None default_extraemail: None footer: None footer_height: None header: None is_active: true members: - >- /api/v1/user/u0u0u0u0-u0u0-u0u0-u0u0-u0u0u0u0u0u0/, /api/v1/user/u1u1u1u1-u1u1-u1u1-u1u1-u1u1u1u1u1u1/ modified: 2020-05-20T:15:10 name: my group pagesize: 1 public_name: global exports resource_uri: /api/v1/group/my-group/ slug: my-group user: /api/v1/user/u0u0u0u0-u0u0-u0u0-u0u0-u0u0u0u0u0u0/ xframe_allow: false xframe_allow_pdf_edit: false TemplatePdfListResponse: type: object description: Template listings properties: meta: $ref: '#/definitions/ListMeta' objects: type: array items: $ref: '#/definitions/TemplatePdfResponse' TemplatePdfResponse: type: object description: Template details properties: created: type: string format: date-time description: Created group: type: string description: Group URI modified: type: string format: date-time description: Modified parties: type: string description: JSON stringified array of document parties page_count: type: integer description: Page count resource_uri: type: string description: Resource URI signer_count: type: integer description: Signer count title: type: string description: Title user: type: string description: Resource URI of creator uuid: type: string description: Id valid: type: boolean description: Is able to be sent (if fields do not validate) example: created: 2020-05-20T:15:10 group: /api/v1/group/my-group/ modified: 2020-05-20T:15:10 page_count: 10 parties: '["Signer", "Witness", "Approvers"]' resource_uri: api/v1/templatepdf/p0p0p0p0-p0p0-p0p0-p0p0-p0p0p0p0p0p0/ title: Template Supplier Agreement user: /api/v1/user/34034334ab34334333rh33434334f9/ uuid: p0p0p0p0-p0p0-p0p0-p0p0-p0p0p0p0p0p0 valid: true TemplatePdfFieldPost: type: object description: Input for fields required: - group - pdf_file properties: archive_upon_send: type: boolean description: Archive PDF when sent group: type: string pattern: ^/api/v1/group/[-\w]{1,50}/$ description: Resource URI for group pdf_file: type: string format: byte description: Base64 encoded PDF file data process_tags: type: boolean description: Process any file tags title: type: string maxLength: 120 description: Title user: type: string description: Assign to group member if not api user DocumentListResponse: type: object description: Document listings properties: meta: $ref: '#/definitions/ListMeta' objects: type: array items: type: object description: Document items properties: archived: type: boolean description: Archived auto_archive: type: boolean description: Archive after sending cc_emails: type: string description: Comma-delimited list emails to cc upon completion created: type: string format: date-time description: Created do_email: type: boolean description: Use Legalesign emails download_final: type: boolean description: Is ready to download after completion group: type: string pattern: ^/api/v1/group/[-\w]{1,50}/$ description: Resource URI of group modified: type: string format: date-time description: Modified name: type: string description: Document name pdftext: type: string description: Sender field values redirect: type: string description: URL to redirect recipient after signing resource_uri: type: string description: Resource URI return_signer_links: type: boolean description: Add recipient links to response signers: type: array description: Nested arrays with signer details items: type: array items: {} description: >- Always contains [signer URI, first name, last name, email, sms number, has_fields, status, signer order (0-indexed)] signers_in_order: type: integer format: int32 enum: - 0 - 1 minLength: 1 description: Email recipients simulataneously or sequentially status: $ref: '#/definitions/DocumentStatusEnum' tag: type: string pattern: ^[-\w\[\]\:\;\/\.\, _]{0,250}$ description: Tag document tag1: type: string pattern: ^[-\w\[\]\:\;\/\.\, _]{0,250}$ description: Tag document tag2: type: string pattern: ^[-\w\[\]\:\;\/\.\, _]{0,250}$ description: Tag document template: type: string pattern: ^/api/v1/template/[-\w]{1,60}/$ description: Template resource uri if used x-nullable: true templatepdf: type: string pattern: ^/api/v1/templatepdf/[-\w]{1,60}/$ x-nullable: true description: PDF template resource uri text: type: string x-nullable: true description: Text for signing user: type: string pattern: ^/api/v1/user/[-\w]{1,60}/$ description: Creator URI uuid: type: string format: uuid description: Identifier example: - archived: false auto_archive: true cc_emails: None created: 2020-05-20T:15:10 do_email: false download_final: false group: /api/v1/group/my-group/ modified: 2020-05-20T:15:10 name: test cs_agreement pdftext: None redirect: https://example.com/redirect-receive/ resource_uri: /api/v1/document/d0d0d0d0-d0fd0-d0d0-d0d0-d0d0d0d0d0d0/ signers: - >- /api/v1/signers/s0s0s0s0-s0s0-s0s0-s0s0-s0s0s0s0s0s0/, Joe, Biggins, joe.biggins@widgets.com, '', true, 20, 0 - >- /api/v1/signers/s1s1s1s1-s1s1-s1s1-s1s1-s1s1s1s1s1s1/, Betty, MacLean, betty.maclean@widgets.comma, '', true, 10, 1 signer_in_order: true status: 10 tag: contract2020myref tag1: my_other_ref tag2: andFinalRef template: None templatepdf: /api/v1/templatepdf/p0p0p0p0-p0p0-p0p0-p0p0-p0p0p0p0p0p0/ text: '' user: /api/v1/user/u0u0u0u0-u0u0-u0u0-u0u0-u0u0u0u0u0u0/ uuid: d0d0d0d0-d0fd0-d0d0-d0d0-d0d0d0d0d0d0 DocumentStatusEnum: type: integer description: | Document status options: * 10 - Initial state, check signer status for sent/unsent * 20 - Fields completed * 30 - Signed * 40 - Removed (before signing) * 50 - Rejected x-enum-varnames: - docCreated - docFieldsComplete - docSigned - docRemoved - docRejected x-enum-descriptions: - Created - Fields completed - Signed - Removed - Rejected enum: - 10 - 20 - 30 - 40 - 50 DocumentPost: type: object required: - group - name - signers - templatepdf description: >- Send a document to be signed. Recommend settings - do_email, auto_archive and pdftext properties: group: type: string pattern: ^/api/v1/group/[-\w]{1,50}/$ description: Group URI name: type: string minLength: 1 maxLength: 60 description: Name templatepdf: type: string pattern: ^/api/v1/templatepdf/[-\w]{1,60}/$ description: >- Resource URI of templatepdf. This API call must contain either one of the attributes text, templatepdf, template. signers: type: array items: $ref: '#/definitions/DocumentSignerPost' signature_type: type: integer description: >- Use 4 to get your executed PDF Certified. Recommended. Defaults to 1 (uses a sha256 hash for document integrity). default: 1 append_pdf: type: boolean description: >- Append Legalesign validation info to final PDF. If not included uses the group default. default: false auto_archive: type: boolean description: Send to archive soon after signing. Keeps web app clutter free default: true do_email: type: boolean description: >- Use Legalesign email to send notification emails. If false suppresses all emails. default: false cc_emails: type: string description: >- Comma delimited string of email addresses that are notified of signing or rejection. convert_sender_to_signer: type: boolean description: >- If any sender fields are left blank, convert them to fields for the first recipient. pdf_password: type: string pattern: ^[-\w ]{0,150}$ description: >- Set a password. Must be ascii encode-able, you must also set signature_type to 4 and choose a pdf_password_type. pdf_password_type: type: integer x-enum-varnames: - passtype1 - passtype2 enum: - 1 - 2 description: >- 1 to store password, 2 for to delete from our records upon final signing. pdftext: type: object description: >- Assign values to PDF sender fields, use the template's field label or its uuid as object keys. See templatepdf/:id/fields/ and filter for element_type="admin", to get relevant fields with their label or uuid. See also strict_fields. additionalProperties: type: string redirect: type: string maxLength: 250 pattern: ^https:// description: >- URL to send the signer to after signing (instead of download page). Your URL will include query parameters with ID and state information as follows: YOUR-URL?signer=[signer_uid]&doc=[doc_id]&group=[group_id]&signer_state=[signer_status]&doc_state=[doc_status] reminders: type: string pattern: ^(default|)$ description: >- Put 'default' if you wish to use the default reminder schedule in the group (go to web app to set default schedule) return_signer_links: type: boolean description: Return document links for signers in the response BODY. signers_in_order: type: boolean description: >- Notify signers in their order sequence. If false all are notified simulataneously. signertext: type: object description: >- Add custom placeholders to signer fields. Use field labels or uuid as keys in the object (as for pdftext). See templatepdf/:id/fields/ and filter for element_type = "text" to get relevant fields with their labels or uuid. additionalProperties: type: string strict_fields: type: boolean description: >- pdftext fails silently for invalid field value, set to true to return an error tag: type: string pattern: ^[-\w\[\]\:\;\/\.\, _]{0,250}$ maxLength: 250 description: Tag tag1: type: string pattern: ^[-\w\[\]\:\;\/\.\, _]{0,250}$ maxLength: 250 description: Tag tag2: type: string pattern: ^[-\w\[\]\:\;\/\.\, _]{0,250}$ maxLength: 250 description: Tag user: type: string description: Assign document another user in the group. DocumentSignerPost: type: object description: Recipient details required: - email - firstname - lastname properties: email: type: string maxLength: 75 format: email description: Email firstname: type: string maxLength: 60 pattern: ^[-\w' ]{1,60} description: First name lastname: type: string maxLength: 60 pattern: ^[-\w' ]{1,60} description: Last name attachments: type: array description: List of attachment resource URIs items: type: string pattern: ^/api/v1/attachment/[-\w]{1,60}/$ decide_later: type: boolean description: >- Add this you want the previous signer or approver to decide who the next person should be. Commonly used for witnesses (see \"role\"). If you use this leave all other attributes blank. First signer cannot use this attribute. expires: type: string format: date-time description: ISO8601 formed datetime, set to TZ of sender or timezone if used x-nullable: true message: type: string description: >- Your personal message for the party, entered in the centre of the group email template. Use the name of a saved email template preceeded by a hash symbol to use that template. If there is more than one template of the same name it will select the one last modified. reviewers: type: array items: $ref: '#/definitions/ReviewersPost' sms: type: string description: >- Use international format number to add SMS verification. Required if a witness or a witnessed signer. subject: type: string maxLength: 150 description: Subject line for outbound email timezone: type: string description: >- TZ of the signer, must be valid TZ as per timezoneenum (see User for timezoneenum details). If blank uses tz of the sender. ReviewersPost: type: object description: >- Create a reviewer. A reviewer is linked to a signer and receives emailed copies of draft and signed documents. N.B. they only receive them if their associated signer does. Therefore make sure your admin/experience settings are set to attach PDFs to your signer emails. You can set to include the signing link to a reviewer, and thereby hit the use case to send a document to a group of people where the first who signs, signs. required: - email properties: firstname: type: string maxLength: 60 description: First name lastname: type: string maxLength: 60 description: Last name email: type: string format: email description: Email include_link: type: boolean default: false description: Include a link to the signing pages enabling a reviewer to sign SignerResponse: type: object description: Recipient details properties: document: type: string description: Document email: type: string description: Recipient email first_name: type: string description: Recipient first name last_name: type: string description: Recipient last name has_fields: type: boolean description: Recipient has fields order: type: integer format: int32 description: Recipient order resource_uri: type: string description: Resource URI for recipient status: $ref: '#/definitions/SignerStatusEnum' example: document: /api/v1/document/d0d0d0d0-d0fd0-d0d0-d0d0-d0d0d0d0d0d0/ email: joe.biggins@widgets.com first_name: Joe has_fields: true last_name: Biggins order: 0 resource_uri: /api/v1/signers/s0s0s0s0-s0s0-s0s0-s0s0-s0s0s0s0s0s0/ status: 20 SignerStatusEnum: type: integer description: | Signer status options: * 4 - unsent * 5 - scheduled to be sent * 10 - sent * 15 - email opened * 20 - visited * 30 - fields complete * 35 - fields complete ex signature * 39 - waiting for witness to complete * 40 - signed * 50 - downloaded * 60 - rejected x-enum-varnames: - N4 - N5 - N10 - N15 - N20 - N30 - N35 - N39 - N40 - N50 - N60 x-enum-descriptions: - Unsent - Schedule to send - Sent - Email opened - Visited - Fields completed - Fields complete except signature - Witness to sign - Signed - Downloaded - Rejected enum: - 4 - 5 - 10 - 15 - 20 - 30 - 35 - 39 - 40 - 50 - 60 SendReminderPost: type: object description: Send a remidner properties: text: type: string maxLength: 10000 description: Custom message text SignerResetResponse: type: object description: Signer reset required: - email properties: email: type: string description: Email of signer to revert to. notify: type: boolean description: Email notify current signer access is being withdrawn DocumentResponseDetail: type: object description: Document detail properties: archived: type: boolean description: Is archived auto_archive: type: boolean description: Send document archive after signing. default: true cc_emails: type: string description: Who will be cc'd with sender on email notification when signed created: type: string format: date-time description: Created do_email: type: boolean description: Use Legalesign emails download_final: type: boolean description: Final PDF is available to download footer: type: string description: HTML docs - text for footer if used footer_height: type: integer description: HTMl docs - px height of footer if used group: type: string description: Resource URI of group has_fields: type: boolean description: Document has fields hash_value: type: string description: >- SHA256 checksum of final doc, use this to validate your final PDF download header: type: string description: HTML docs - text for header if used header_height: type: integer description: HTMl docs - px height of header if used modified: type: string format: date-time description: Modified name: type: string description: Document name pdf_password: type: string description: PDF password pdf_password_type: type: string description: If pdf password is retained pdftext: type: string description: Ignore this redirect: type: string description: URL for recipient redirect after signing resource_uri: type: string description: Resource URI return_signer_links: type: boolean description: Ignore sign_mouse: type: boolean description: ignore sign_time: type: string format: date-time description: Sign time sign_type: type: boolean description: legacy sign_upload: type: boolean description: legacy signature_placement: type: integer description: legacy signature_type: type: integer description: legacy - always 4 signers: type: array description: Nested arrays with signer details items: type: array items: {} description: >- Always contains [signer URI, first name, last name, email, sms number, has_fields, status, signer order (0-indexed)] signers_in_order: type: boolean description: Email recipients simulataneously or sequentially status: $ref: '#/definitions/DocumentStatusEnum' tag: type: string description: Your reference tag1: type: string description: Your reference tag2: type: string description: Your reference template: type: string description: Resource URI for text template if used templatepdf: type: string description: Resource URI for pdf template if used text: type: string description: Text for document if used user: type: string description: Resource URI of useraccount uuid: type: string format: uuid description: Identifier example: - archived: false auto_archive: true cc_emails: None created: 2020-05-20T:15:10 do_email: false download_final: false footer: '' footer_height: null group: /api/v1/group/my-group/ has_fields: true hash_value: None header: '' header_height: None modified: 2020-05-20T:15:10 name: test cs_agreement pdf_password: None pdf_password_type: None pdftext: None redirect: https://example.com/redirect-receive/ resource_uri: /api/v1/document/d0d0d0d0-d0fd0-d0d0-d0d0-d0d0d0d0d0d0/ return_signer_links: false sign_mouse: true sign_time: None sign_type: true sign_upload: true signature_placement: 2 signature_type: 4 signers: - >- /api/v1/signers/s0s0s0s0-s0s0-s0s0-s0s0-s0s0s0s0s0s0/, John, Smith, john.smith@example.comma, '', true, 20, 0 - >- /api/v1/signers/s1s1s1s1-s1s1-s1s1-s1s1-s1s1s1s1s1s1/, Betty, MacLean, betty.maclean@example.comma, '', true, 10, 1 signer_in_order: true status: 10 tag: contract2020myref tag1: my_other_ref tag2: andFinalRef template: None templatepdf: /api/v1/templatepdf/p0p0p0p0-p0p0-p0p0-p0p0-p0p0p0p0p0p0/ text: '' user: /api/v1/user/u0u0u0u0-u0u0-u0u0-u0u0-u0u0u0u0u0u0/ uuid: d0d0d0d0-d0fd0-d0d0-d0d0-d0d0d0d0d0d0 MemberResponse: type: object properties: created: type: string format: date-time description: Created group: type: string description: Group resource URI modified: type: string format: date-time description: Modified permission: $ref: '#/definitions/PermissionsEnum' resource_uri: type: string description: Resource URI user: type: string description: User resource uri example: created: 2020-05-20T:15:10 modified: 2020-05-20T:15:10 permission: 1 resource_uri: /api/v1/member/m0m0m0m0-m0m0-m0m0-m0m0-m0m0m0m0m0m0/ user: /api/v1/user/u0u0u0u0-u0u0-u0u0-u0u0-u0u0u0u0u0u0/ AttachmentResponse: type: object description: Attach item properties: created: type: string format: date-time description: Created description: type: string description: Description filename: type: string description: File name group: type: string description: Group resource_uri: type: string description: Attach resource uri user: type: string description: Resource uri for useraccount uuid: type: string format: uuid description: Id for attach example: created: 2020-05-20T:15:10 description: Attach for supplier contract filename: attach1.pdf resource_uri: /api/v1/attachment/f0f0f0f0-f0f0-f0f0-f0f0-f0f0f0f0f0f0/ uuid: f0f0f0f0-f0f0-f0f0-f0f0-f0f0f0f0f0f0 AttachmentListResponse: type: object description: Attachment Listing properties: meta: $ref: '#/definitions/ListMeta' objects: type: array description: Listing items: type: object properties: created: type: string format: date-time description: Created description: type: string description: Description filename: type: string description: File name group: type: string description: Group resource_uri: type: string description: Resource URI user: type: string description: Useraccount resource URI uuid: type: string format: uuid description: Id for attach item example: meta: limit: 20 next: /api/v1/attachment/?offset=20&limit=20 previous: None total_count: 26 objects: - created: 2020-05-20T:15:10 description: Attachment for supplier contract filename: attach1.pdf resource_uri: /api/v1/attachment/f0f0f0f0-f0f0-f0f0-f0f0-f0f0f0f0f0f0/ uuid: f0f0f0f0-f0f0-f0f0-f0f0-f0f0f0f0f0f0 AttachmentPost: type: object description: Attachment required: - filename - group - pdf_file properties: group: type: string description: URI of the group name pattern: ^/api/v1/group/[-\w]{1,50}/$ maxLength: 90 pdf_file: type: string format: byte description: >- Base64 encoded PDF file data, max size is a group setting, 5MB by default filename: type: string pattern: ^[-\w]{1,250}.pdf$ description: Simple alphanumeric name ending .pdf maxLength: 250 user: type: string description: Assign to another accountuser pattern: ^/api/v1/user/[-\w]{1,75}/$ description: type: string maxLength: 250 UserDetailResponse: type: object description: Accountuser properties: date_joined: type: string format: date-time description: Date joined email: type: string format: email description: Email first_name: type: string description: First name groups: type: array description: List of groups accountuser has joined items: type: string last_login: type: string format: date-time description: Last login last_name: type: string description: Last name resource_uri: type: string description: Resource URI timezone: type: string description: Timezone username: type: string description: Username securityDefinitions: api_key: type: apiKey in: header name: Authorization paths: /user/{userId}/: get: tags: - user summary: Get useraccount operationId: GetUser parameters: - name: userId in: path required: true type: string format: uuid description: Accountuser Id responses: '200': description: Success schema: $ref: '#/definitions/UserDetailResponse' produces: - application/json description: Get useraccount details /member/{memberId}/: get: tags: - member parameters: - name: memberId in: path description: Member id required: true type: string format: uuid summary: Accountuser within a group operationId: GetMember responses: '200': description: success schema: $ref: '#/definitions/MemberResponse' produces: - application/json description: Details of an accountuser within a group /attachment/{attachId}/: get: parameters: - name: attachId in: path description: attach id required: true type: string format: uuid tags: - attachment summary: Attach details operationId: GetAttachment responses: '200': description: Success, result in response. schema: $ref: '#/definitions/AttachmentResponse' produces: - application/json description: Get attach details delete: parameters: - name: attachId in: path description: Attach Id required: true type: string format: uuid tags: - attachment summary: Delete an attach operationId: DeleteAttachment responses: '204': description: Success attach deleted description: Delete an attach /attachment/: get: tags: - attachment summary: Get attachments description: List attachments operationId: GetAttachments parameters: - name: group in: query description: Filter by a specific group required: false type: string x-example: my-group - name: limit in: query description: Use with offset to iterate through results. required: false type: integer default: 20 - name: offset in: query description: Use with limit to iterate through results. required: false type: integer responses: '200': description: Success, result in response. schema: $ref: '#/definitions/AttachmentListResponse' '400': description: Invalid status value produces: - application/json post: tags: - attachment summary: Upload PDF attach operationId: PostAttachment parameters: - name: body in: body description: Name, group and b64encoded file required: true schema: $ref: '#/definitions/AttachmentPost' responses: '201': description: xxxxx consumes: - application/json produces: - application/json description: Save a pdf to attach to a recipient email /document/{docId}/fields/: get: parameters: - name: docId in: path description: Document id required: true type: string format: uuid tags: - document summary: Get document fields operationId: GetDocumentFields responses: '200': description: success schema: type: array description: List of document fields items: type: object properties: element_type: type: string description: Element type fieldorder: type: integer x-nullable: true description: Field order label: type: string description: Label label_extra: type: string x-nullable: true description: Extra label signer: type: integer description: Recipient state: type: boolean validation: type: integer x-nullable: true description: Validation identifier value: type: string description: Value produces: - application/json description: The fields from the document /document/{docId}/auditlog/: get: parameters: - name: docId in: path description: Document id required: true type: string format: uuid tags: - document summary: Download the document auditlog operationId: AuditLog responses: '200': description: A PDF binary of the auditlog schema: type: file produces: - application/pdf description: PDF of only the document auditlog /pdf/{docId}/: get: tags: - document summary: Download PDF description: >- Get the draft or final PDF for a signing document, depending on its status. Note a 200 or 302 response is possible. operationId: GetDocumentPdf parameters: - name: docId in: path required: true type: string format: uuid description: Document Id responses: '200': description: A PDF file schema: type: file '201': description: Being de-archived, available in 4 hours '302': description: Redirect to the download location headers: location: description: A short-lease URL for document download type: string produces: - application/pdf /document/{docId}/delete/: delete: parameters: - name: docId in: path description: Document id required: true type: string format: uuid tags: - document summary: Permanently delete signing document description: Permanently deletes data and files operationId: DeleteDocument responses: '200': description: Something went wrong, you may need to allow automated deletions. '204': description: Successful operation /document/{docId}/: get: parameters: - name: docId in: path description: Document id required: true type: string format: uuid tags: - document summary: Get document operationId: GetDocument responses: '200': description: Success schema: $ref: '#/definitions/DocumentResponseDetail' produces: - application/json description: Return a specific document delete: tags: - document summary: Void/archive signing document description: >- Delete does not remove permanently but sets it with status 40 (removed) and archives it. operationId: ArchiveDocument parameters: - name: docId in: path description: Document id required: true type: string format: uuid - name: email in: query description: >- If set to true or 1 the recipients are notified the document is voided. required: false type: string responses: '204': description: Success /signer/{signerId}/: get: tags: - recipient summary: Get signer description: Get status and details of an individual signer operationId: GetSigner parameters: - name: signerId in: path description: Id of signer required: true type: string format: uuid responses: '200': description: Success schema: $ref: '#/definitions/SignerResponse' produces: - application/json /signer/{signerId}/send-reminder/: post: tags: - recipient summary: Send signer reminder email operationId: PostSignerReminder parameters: - name: signerId in: path required: true type: string format: uuid description: Signer Id - name: body in: body description: Message text required: true schema: $ref: '#/definitions/SendReminderPost' responses: '200': description: Success '401': description: Failed to send consumes: - application/json description: Send a recipient a reminder email /signer/{signerId}/new-link/: get: tags: - recipient summary: Get signer link description: One-use link for recipient to go to signing pages operationId: GetSignerLink parameters: - name: signerId in: path description: ID of signer required: true type: string format: uuid responses: '201': description: operation sucessful headers: Location: description: New URL for signing type: string /signer/{signerId}/fields1/: get: tags: - recipient summary: Get signer form fields operationId: GetSignerFields parameters: - name: signerId in: path description: Signer Id required: true type: string format: uuid responses: '200': description: operation successful schema: type: array items: type: object properties: label: type: string description: Label label_extra: type: string description: Extra label state: type: boolean description: State fieldorder: type: integer x-nullable: true description: Field order value: type: string x-nullable: true description: >- If the field is a signer file this value will be a short lived download URL produces: - application/json description: Return the form fields from a specific recipient /signer/{signerId}/reset/: post: tags: - recipient summary: Reset to earlier signer description: Reset to an earlier signer if forwarded operationId: PostSignerReset parameters: - name: signerId in: path required: true type: string format: uuid description: Signer Id - name: body in: body description: Email of the earlier signer, notify current signer by email of event required: true schema: $ref: '#/definitions/SignerResetResponse' responses: '200': description: Success '400': description: >- Document either signed, or email is same as existing, or if previous email not found. Read response body for error information. consumes: - application/json /signer/{signerId}/rejection/: get: tags: - recipient summary: Get signer rejection reason description: Returns the reason signer gave for rejecting a document operationId: GetSignerRejection parameters: - name: signerId in: path required: true type: string format: uuid description: Signer Id responses: '200': description: Success schema: type: object properties: status: type: integer description: Recipient statues reason: type: string description: Reject reason produces: - application/json /document/: get: tags: - document summary: Get documents description: List unarchived signing documents. operationId: GetDocuments parameters: - name: group in: query description: Filter by a specific group, required. required: true type: string - name: archived in: query description: >- Filter on archived status, default is unarchived, use value all in this parameter to query all documents required: false type: string - name: email in: query description: Filter by signer email required: false type: string - name: limit in: query description: >- Length of dataset to return. Use with offset query to iterate through results. required: false type: integer default: 20 - name: offset in: query description: >- Offset from start of dataset. Use with the limit query to iterate through dataset. required: false type: integer - name: status in: query description: Filter on document status required: false type: integer - name: nosigners in: query description: Add value 1 to remove signers information for a faster query required: false type: string - name: created_gt in: query description: Filter for those documents created after a certain time required: false type: string format: date-time - name: modified_gt in: query description: Filter for those documents modified after a certain time required: false type: string format: date-time responses: '200': description: successful operation, list of document objects schema: $ref: '#/definitions/DocumentListResponse' '400': description: Invalid status value produces: - application/json post: tags: - document summary: Create signing document operationId: PostDocument parameters: - name: body in: body description: Send a document to be signed required: true schema: $ref: '#/definitions/DocumentPost' responses: '201': description: >- Success. Document URI will be in Location header. If return_signer_links was set to true, the body will contain a JSON dict containing the signing links. headers: Location: description: New document resource uri type: string schema: type: object properties: signer_1: type: string description: Recipient link examples: application/json: signer_1: https://app1.legalesign.com/esign/... '400': description: Bad Request, read response for error information examples: application/json: document: name: - This field is required. '401': description: Unauthorized '429': description: Throttled '500': description: Usually unparseable JSON, or mis-referenced object consumes: - application/json produces: - application/json description: Send a document for signature or approval /templatepdf/{pdfId}/: get: parameters: - name: pdfId in: path description: Uploaded PDF id required: true type: string format: uuid tags: - templatepdf summary: Get PDF template operationId: GetPdfTemplate responses: '200': description: PDF template details schema: $ref: '#/definitions/TemplatePdfResponse' produces: - application/json description: Details of a specific PDF template /templatepdf/{pdfId}/edit-link/: get: tags: - templatepdf summary: Get PDF embeddable link operationId: GetPdfTemplateEditLink parameters: - name: pdfId in: path description: uploaded PDF id required: true type: string format: uuid - name: hide_sender_fields in: query description: hide sender fields from rendered page required: false type: boolean - name: css_body_backgroundcolor in: query description: use hex code excluding hash symbol to change background color required: false type: string responses: '201': description: One-use link for embedding the pdf edit page headers: location: description: One-use link to pdf edit page. type: string schema: type: string produces: - application/json description: Return a one-use link to embed PDF editor /templatepdf/: get: tags: - templatepdf summary: Get PDF templates operationId: GetPdfTemplates parameters: - name: group in: query description: can be full resource_uri or only id required: false type: string - name: limit in: query description: >- Length of dataset to return. Use with offset query to iterate through results. required: false type: integer default: 20 - name: offset in: query description: >- Offset from start of dataset. Use with the limit query to iterate through dataset. required: false type: integer responses: '200': description: Success schema: $ref: '#/definitions/TemplatePdfListResponse' produces: - application/json description: List PDF templates post: tags: - templatepdf summary: Create PDF template description: Upload a PDF document you want to send to be signed operationId: PostPdfTemplate parameters: - name: body in: body description: Data for PDF upload required: true schema: $ref: '#/definitions/TemplatePdfFieldPost' responses: '201': description: Success headers: location: description: Resource uri for new pdf template type: string consumes: - application/json /group/: get: tags: - group summary: Get groups description: List groups the api user belongs to operationId: GetGroups parameters: - name: offset in: query description: >- Offset from start of dataset. Use with the limit query to iterate through dataset. required: false type: integer - name: limit in: query description: >- Length of dataset to return. Use with offset query to iterate through results. required: false type: integer responses: '200': description: Success schema: $ref: '#/definitions/GroupListResponse' produces: - application/json post: tags: - group summary: Create group operationId: PostGroup parameters: - name: body in: body required: true schema: $ref: '#/definitions/GroupPost' responses: '201': description: Success headers: location: description: resource_uri for new group type: string '400': description: Groups allowance exceeded or api permissions upgrade required consumes: - application/json description: Create a new group /group/{groupId}/: get: tags: - group summary: Get group operationId: GetGroup parameters: - name: groupId in: path description: Group ID required: true type: string responses: '200': description: ok schema: $ref: '#/definitions/GroupResponse' produces: - application/json description: Get the details of a group /unsubscribe/: post: tags: - trigger summary: Delete webhook operationId: DeleteWebhook externalDocs: description: Information about callbacks url: >- https://legalesign.com/articles/esignature-api/callbacks-on-the-api-v1/ parameters: - name: body in: body required: true schema: $ref: '#/definitions/CallbackDeletePost' responses: '200': description: Success, will return 200 whether url is subscribed or not '400': description: Bad request - not json data or not a valid url consumes: - application/json description: Delete a webhook permanently x-ms-visibility: internal /subscribe/recipient/: x-ms-notification-content: description: Recipient event occurs schema: type: object properties: version: type: string description: Version object: type: string description: Object data: type: object properties: tag: type: string description: Tag tag1: type: string description: Tag1 tag2: type: string description: Tag2 uuid: type: string description: Recipient uuid email: type: string description: Email group: type: string description: Group order: type: integer format: int32 description: Order status: type: integer format: int32 description: Status document: type: string description: Document lastname: type: string description: Last name roleText: type: string description: Role text firstname: type: string description: First name statusText: type: string description: Status text emailBounce: type: integer format: int32 description: Email did bounce resourceUri: type: string description: Recipient resource uri documentName: type: string description: Document name rejectReason: type: string description: Reject reason groupResourceUri: type: string description: Group resource uri emailBounceMessage: type: string description: Email bounce message documentResourceUri: type: string description: Document resource uri description: Data created: type: integer format: int32 description: Created id: type: string description: ID event: type: string description: Event headers: Content-Type: description: Content-Type type: string X-Hmac-Sha256: description: X-Hmac-Sha256 type: string X-Signed-Sha256: description: X-Signed-Sha256 type: string post: tags: - trigger responses: '201': description: Webhook created headers: Location: description: URL to delete this webhook type: string summary: Recipient event operationId: RecipientTrigger description: Trigger for when a recipient event occurs x-ms-trigger: single parameters: - name: Content-Type in: header required: true type: string default: application/json x-ms-visibility: internal - name: body in: body required: false schema: type: object properties: url: type: string description: url title: '' x-ms-notification-url: true x-ms-visibility: internal notify: type: string description: Notify title: '' x-ms-visibility: internal default: realtime eventFilter: type: string description: Event filter title: '' enum: - recipient.* - recipient.completed - recipient.rejected - recipient.emailOpened - recipient.visiting - recipient.bounced default: recipient.* x-ms-visibility: important group: type: string description: Group filter title: '' x-ms-dynamic-values: operationId: GetGroups value-path: slug value-collection: objects value-title: name required: - eventFilter - url - notify /unsubscribe/{webhookId}/: delete: tags: - trigger responses: '200': description: Webhook removed summary: Delete Webhook By Id description: Delete a webhook operationId: DeleteWebhookById x-ms-visibility: internal parameters: - name: webhookId in: path required: true type: integer default: 0 x-ms-visibility: internal format: int64 description: Webhook ID /subscribe/: x-ms-notification-content: description: Document event occurs schema: type: object properties: version: type: string description: Version object: type: string description: Object data: type: object properties: tag1: type: string description: Tag recipients: type: array items: type: object properties: uuid: type: string description: Recipient uuid email: type: string description: Recipient email order: type: integer format: int32 description: Recipient order number status: type: integer format: int32 description: Recipient status lastname: type: string description: Recipient lastname roleText: type: string description: Recipient role text firstname: type: string description: Recipient first name statusText: type: string description: Recipient statusText resourceUri: type: string description: Recipient resource uri rejectReason: type: string description: rejectReason description: Recipients groupResourceUri: type: string description: Group resource uri statusText: type: string description: Document status text name: type: string description: Document name tag: type: string description: Tag resourceUri: type: string description: Resource uri uuid: type: string description: Document ID tag2: type: string description: Tag2 group: type: string description: Group status: type: integer format: int32 description: Document status description: data created: type: integer format: int32 description: Created id: type: string description: Did event: type: string description: Event headers: Content-Type: description: Content-Type type: string X-Hmac-Sha256: description: X-Hmac-Sha256 type: string X-Signed-Sha256: description: X-Signed-Sha256 type: string post: tags: - trigger responses: '201': description: Webhook created headers: Location: description: URL to delete this webhook type: string summary: Document event description: Trigger for a document event occurs operationId: DocumentTrigger x-ms-trigger: single parameters: - name: Content-Type in: header required: true type: string description: ContentType default: application/json x-ms-visibility: internal - name: body in: body required: true schema: type: object properties: url: type: string description: url x-ms-notification-url: true x-ms-visibility: internal title: '' notify: type: string description: Notify method title: '' default: realtime x-ms-visibility: internal eventFilter: type: string description: Event filter title: '' x-ms-visibility: important enum: - document.* - document.created - document.rejected - document.finalPdfCreated default: document.* group: type: string description: Group filter title: '' x-ms-dynamic-values: operationId: GetGroups value-path: slug value-collection: objects value-title: name required: - url - notify - eventFilter