Skip to content

Commit

Permalink
feat: add api documentation for selfsign
Browse files Browse the repository at this point in the history
  • Loading branch information
prafull-opensignlabs authored Dec 11, 2024
1 parent b70c473 commit 0a79807
Showing 1 changed file with 78 additions and 37 deletions.
115 changes: 78 additions & 37 deletions docs/docs/API-docs/opensign.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -244,6 +244,40 @@ paths:
$ref: '#/components/schemas/invalidtoken'
security:
- x-api-token: []
/selfsign:
post:
tags:
- Documents
summary: Self Sign
description: "The selfsign API generates a URL that enables freestyle signing of a document. You can also include optional pre-defined widgets, which the signer can edit or expand upon as needed. This provides a signing experience similar to the “Sign Yourself” flow in the OpenSign app.\n\nTip: Upload your PDF document to our [**Debug UI**](https://app.opensignlabs.com/debugpdf), where you can easily add widgets, then copy coordinates, page numbers, and more in a ready-to-use JSON format. Plus, you can directly copy the document's base64 string, making it quick to send to the API.\n\n**Supported Widgets:**\n\nBelow are the common parameters that are required with all widgets:\n- **type:** Indicates the type of widget.\n- **page:** Specifies the page number on which you want to place the respective widget.\n- **x, y:** Denotes the horizontal and vertical coordinates of the starting point of the widget. You can use the debug UI to determine these values.\n- **w, h:** Represents the width and height of the widget. You can adjust these values using the debug UI.\n- **required:** Set to false if you want to make the widget optional. By default, it's true. Not applicable for signature-type widgets.\n- **name:** Provides a different name for widgets if you are providing more than one widget.\n- **color:** Specifies the color of the widget content. Available options include black, blue, red, and yellow, with black as the default selection if no color is specified. This parameter is optional and is applicable to the following widgets: email, name, job title, company, date, textbox, checkbox.\n- **fontsize:** Specifies the fontsize of the widget content. Available options include 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, and 28, with a default fontsize of 12 if not specified. This parameter is optional and is applicable to the following widgets: email, name, job title, company, date, textbox, checkbox.\n\n**List of all supported widgets:**\n\n\n1. **signature:**\n```\n{\n \"type\":\"signature\", \n \"page\":1, \n \"x\": 327, \n \"y\": 628, \n \"w\": 114, \n \"h\": 21\n}\n```\n2. **stamp:**\n```\n{\n \"type\":\"stamp\", \n \"page\":1, \n \"x\": 327, \n \"y\": 628, \n \"w\": 114, \n \"h\": 21, \n \"options\": {\n \"required\": true, \n \"name\": \"stamp\"\n }\n}\n```\n3. **initials:**\n```\n{\n \"type\":\"initials\", \n \"page\":1, \n \"x\": 327, \n \"y\": 628, \n \"w\": 114, \n \"h\": 21, \n \"options\": {\n \"required\": true, \n \"name\": \"initials\"\n }\n}\n```\n4. **email:**\n```\n{\n \"type\":\"email\", \n \"page\":1, \n \"x\": 327, \n \"y\": 628, \n \"w\": 114, \n \"h\": 21, \n \"options\": {\n \"required\": true, \n \"name\": \"email\",\n \"color\": \"black\",\n \"fontsize\": 12\n }\n}\n```\n5. **name:**\n```\n{\n \"type\":\"name\", \n \"page\":1, \n \"x\": 327, \n \"y\": 628, \n \"w\": 114, \n \"h\": 21, \n \"options\": {\n \"required\": true, \n \"name\": \"name\",\n \"color\": \"black\",\n \"fontsize\": 12\n }\n}\n```\n6. **job title:**\n```\n{\n \"type\":\"job title\", \n \"page\":1, \n \"x\": 327, \n \"y\": 628, \n \"w\": 114, \n \"h\": 21, \n \"options\": {\n \"required\": true, \n \"name\": \"job title\",\n \"color\": \"black\",\n \"fontsize\": 12\n }\n}\n```\n7. **company:**\n```\n{\n \"type\":\"company\", \n \"page\":1, \n \"x\": 327, \n \"y\": 628, \n \"w\": 114, \n \"h\": 21, \n \"options\": {\n \"required\": true, \n \"name\": \"company\",\n \"color\": \"black\",\n \"fontsize\": 12\n }\n}\n```\n8. **date:**\n```\n{\n \"type\":\"date\", \n \"page\":1, \n \"x\": 327, \n \"y\": 628, \n \"w\": 114, \n \"h\": 21, \n \"options\": {\n \"required\": true, \n \"name\": \"date\",\n \"default\": \"04-15-2024\",\n \"format\": \"mm-dd-yyyy\",\n \"color\": \"black\",\n \"fontsize\": 12\n }\n}\n ```\n- **default:** Provide the date from which you want to start the date of the date widget. Must be provided in the specified format. By default, today's date provided.\n- **format:** Specify the date format of your choice from the options below.\n - \"dd/MM/yyyy\",\n - \"dd-mm-yyyy\", \n - \"yyyy-mm-dd\", \n - \"mm.dd.yyyy\", \n - \"mm-dd-yyyy\", \n - \"mmm dd, yyyy\", \n - \"mmmm dd, yyyy\", \n - \"dd mmm, yyyy\", \n - \"dd mmmm, yyy\"\n\n9. **textbox:**\n```\n{\n \"type\":\"textbox\", \n \"page\":1, \n \"x\": 327, \n \"y\": 628, \n \"w\": 114, \n \"h\": 21, \n \"options\": {\n \"required\": true, \n \"name\": \"textbox\",\n \"default\": \"name\",\n \"hint\": \"provide name\",\n \"regularexpression\":\"\",\n \"color\": \"black\",\n \"fontsize\": 12\n }\n}\n```\n- **default:** Provide a default value for the textbox (Optional).\n- **hint:** Provide a hint for the textbox (Optional).\n- **regularexpression:** Provide regex for custom validation, such as allowing only numbers, only capital letters, etc. (Optional).\n\n10. **checkbox:**\n```\n{\n \"type\":\"checkbox\", \n \"page\":1, \n \"x\": 327, \n \"y\": 628, \n \"w\": 114, \n \"h\": 21, \n \"options\": {\n \"required\": true, \n \"name\": \"checkbox\",\n \"values\": [\"male\", \"female\", \"other\"],\n \"selectedvalues\": [ \"male\", \"female\" ],\n \"readonly\": false, \n \"hidelabel\": false,\n \"color\": \"black\",\n \"fontsize\": 12,\n \"validation\": {\n \"minselections\": 0, \n \"maxselections\": 0 \n }\n }\n}\n```\n- **values:** Provide options for the checkbox list.\n- **selectedvalues:** Provide values that need to be selected by default (Optional).\n- **readonly:** Set to true if you want to set the checkbox as readonly. By default, it's false\n- **hidelabel:** Set to true if you want to hide labels of the checkbox. By default, it's false.\n- **minselections:** Provide the minimum number of checkboxes that must be selected by the user.\n- **maxselections:** Provide the maximum number of checkboxes that can be selected by the user.\n\n11. **image:**\n```\n{\n \"type\":\"image\", \n \"page\":1, \n \"x\": 327, \n \"y\": 628, \n \"w\": 114, \n \"h\": 21, \n \"options\": {\n \"required\": true, \n \"name\": \"image\"\n }\n}\n```\n"
operationId: selfsign
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/selfsigndocument_body'
required: true
responses:
"200":
description: Document created successfully!
content:
application/json:
schema:
$ref: '#/components/schemas/inline_response_200_1'
"400":
description: "Something went wrong, please try again later!"
content:
application/json:
schema:
$ref: '#/components/schemas/inline_response_400_1'
"405":
description: Invalid API Token!
content:
application/json:
schema:
$ref: '#/components/schemas/invalidtoken'
security:
- x-api-token: []
/createdocument:
post:
tags:
Expand Down Expand Up @@ -1426,7 +1460,7 @@ components:
type: array
items:
$ref: '#/components/schemas/contact'
draftdocument_body:
selfsigndocument_body:
required:
- file
- signers
Expand All @@ -1449,18 +1483,28 @@ components:
type: string
format: string
example: sample Note
signers:
type: array
items:
$ref: '#/components/schemas/draftdocument_body_signers'
sendInOrder:
timeToCompleteDays:
type: number
description: time to complete days is used to calculate expiry date of your document
format: number
example: 15
signer:
$ref: '#/components/schemas/selfsigndocument_body_signer'
folderId:
type: string
example: ""
send_email:
type: boolean
description: "If set to 'true', only the first signer will receive the signature request email initially. Emails to subsequent signers will be triggered sequentially, with each sent only after the previous signer has completed their signing. By default, sendInOrder is set to 'true'."
description: "This parameter allows you to specify whether you want emails to be sent to signers. The default value is \"true\". If the value of this parameter is \"true\" and no 'email_subject'/'email_body' parameters are specified default email templates will be used. \n"
example: true
enableOTP:
type: boolean
description: "true - this option will enable OTP verification. Users will receive a verification code via email, which they must enter to sign the document. false - this option will disable OTP verification, allowing users to sign the document directly without additional steps."
example: false
email_subject:
type: string
description: "Custom mail subject for signature request. Can include the following {{document_title}} {{sender_name}}, {{sender_mail}}, {{sender_phone}}, {{receiver_name}}, {{receiver_email}}, {{receiver_phone}}, {{expiry_date}}, {{company_name}}, {{signing_url}}."
example: ""
email_body:
type: string
description: "Custom signature request email body. Can include the following {{document_title}} {{sender_name}}, {{sender_mail}}, {{sender_phone}}, {{receiver_name}}, {{receiver_email}}, {{receiver_phone}}, {{expiry_date}}, {{company_name}}, {{signing_url}}."
example: ""
enableTour:
type: boolean
description: "true - this option will enable a guided tour for signers, providing instructions during the signing process. false - disable the guided tour, ensuring a faster, uninterrupted signing experience."
Expand Down Expand Up @@ -1524,17 +1568,6 @@ components:
type: boolean
description: "true - this option will enable a guided tour for signers, providing instructions during the signing process. false - disable the guided tour, ensuring a faster, uninterrupted signing experience."
example: false
inline_response_200_d:
type: object
properties:
objectId:
type: string
format: string
example: hji2zxcv2P
url:
type: string
format: string
example: https://url-to-edit-document
inline_response_200_1:
type: object
properties:
Expand Down Expand Up @@ -1865,21 +1898,6 @@ components:
type: string
format: string
example: Please setup template properly!
draftdocument_body_signers:
type: object
properties:
email:
type: string
format: string
example: [email protected]
name:
type: string
format: string
example: joe bee
phone:
type: string
format: string
example: "123121312"
createdocument_body_widgets:
type: object
properties:
Expand Down Expand Up @@ -2105,6 +2123,29 @@ components:
type: array
items:
$ref: '#/components/schemas/folder_res'
selfsigndocument_body_signer:
type: object
properties:
role:
type: string
format: string
example: ceo
email:
type: string
format: string
example: [email protected]
name:
type: string
format: string
example: joe bee
phone:
type: string
format: string
example: "123121312"
widgets:
type: array
items:
$ref: '#/components/schemas/createdocument_body_widgets'
securitySchemes:
x-api-token:
type: apiKey
Expand Down

0 comments on commit 0a79807

Please sign in to comment.