Files
OpenSign/assets/js/9b0b43bf.14ed211e.js
T

1 line
10 KiB
JavaScript

"use strict";(globalThis.webpackChunkOpenSign_Docs=globalThis.webpackChunkOpenSign_Docs||[]).push([[2823],{32146(e,n,s){s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>i,toc:()=>a});const i=JSON.parse('{"id":"API-docs/v1.2/intro","title":"Overview","description":"OpenSign\u2122 API v1.2 \u2014 the open-source DocuSign alternative, built for developers and trusted by enterprises.","source":"@site/docs/API-docs/v1.2/intro.md","sourceDirName":"API-docs/v1.2","slug":"/API-docs/v1.2/intro","permalink":"/docs/API-docs/v1.2/intro","draft":false,"unlisted":false,"editUrl":"https://github.com/opensignlabs/opensign/tree/feat-docs/docs/docs/API-docs/v1.2/intro.md","tags":[],"version":"current","frontMatter":{}}');var r=s(74848),t=s(28453);const l={},o="Overview",d={},a=[{value:"Available Environments",id:"available-environments",level:2}];function c(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",hr:"hr",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"overview",children:"Overview"})}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"OpenSign\u2122 API v1.2 \u2014 the open-source DocuSign alternative, built for developers and trusted by enterprises."})}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"The OpenSign\u2122 API is a production-ready, RESTful interface for embedding legally binding electronic signatures and end-to-end document workflows into any application. Send documents for signature, build reusable templates, automate signing pipelines, and track every event in real time \u2014 all from a single, well-documented API, with no vendor lock-in."}),"\n",(0,r.jsx)(n.p,{children:"Whether you are digitising a single contract flow or powering signatures across an entire enterprise, v1.2 gives you the building blocks to move fast while staying compliant with global e-signature standards (ESIGN, UETA, eIDAS)."}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h1,{id:"key-features",children:"Key Features"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Documents"})," \u2014 Create, send, update, revoke, and delete signature requests with fine-grained control over signers, ordering, and reminders."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Templates"})," \u2014 Build reusable templates with pre-placed widgets and dispatch them to one or many signers in a single call."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Self-Sign"})," \u2014 Generate self-signed documents instantly, without an invitation or signer flow."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Public Templates"})," \u2014 Publish a shareable signing link for open intake forms \u2014 no pre-defined signer list required."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Draft Workflow"})," \u2014 Persist documents and templates as drafts, iterate, and finalise them on your own schedule."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Signer Roles"})," \u2014 Assign each recipient a role: ",(0,r.jsx)(n.code,{children:"signer"}),", ",(0,r.jsx)(n.code,{children:"viewer"})," (read-only), or ",(0,r.jsx)(n.code,{children:"approver"})," (everything except a signature)."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Password-Protected PDFs"})," \u2014 Work seamlessly with encrypted source files via the ",(0,r.jsx)(n.code,{children:"file_password"})," parameter."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Offline Signing Control"})," \u2014 Toggle offline signing per template with ",(0,r.jsx)(n.code,{children:"allow_offline_sign"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Contacts & Folders"})," \u2014 Manage your signer contact book and organise documents in OpenSign Drive programmatically."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Webhooks"})," \u2014 Receive real-time event notifications at your own endpoint for every document lifecycle change."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Users & Credits"})," \u2014 Retrieve account information and monitor available credits on demand."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Security & Compliance"})," \u2014 TLS-encrypted transport, audit trails, IP logging, and tamper-evident signed PDFs aligned with international legal standards."]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h1,{id:"whats-new-in-v12",children:"What\u2019s New in v1.2"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Cleaner Template Retrieval"})," \u2014 ",(0,r.jsx)(n.code,{children:"GET /template/:id"})," and ",(0,r.jsx)(n.code,{children:"GET /templatelist"})," now return prefill data separately from signer parameters, with redundant fields removed for easier consumption."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Password-Protected PDF Support"})," \u2014 Pass ",(0,r.jsx)(n.code,{children:"file_password"})," on document, template, draft, and self-sign creation routes."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Offline Signing Control"})," \u2014 Explicitly enable or disable offline signing per template."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Signer Roles"})," \u2014 A new ",(0,r.jsx)(n.code,{children:"signer_role"})," field on the ",(0,r.jsx)(n.code,{children:"signers"})," object unlocks viewer and approver flows alongside the default signer behaviour."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Fully Backwards-Compatible"})," \u2014 All v1 and v1.1 endpoints remain available on the v1.2 base URL. New parameters are optional unless otherwise documented."]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h1,{id:"getting-started",children:"Getting Started"}),"\n",(0,r.jsxs)(n.p,{children:["Every request must include your API token in the ",(0,r.jsx)(n.code,{children:"x-api-token"})," header:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"x-api-token: <your-api-token>\n"})}),"\n",(0,r.jsxs)(n.p,{children:["\u2192 ",(0,r.jsx)(n.a,{href:"https://docs.opensignlabs.com/docs/help/Settings/APIToken",children:"How to generate your API token"})]}),"\n",(0,r.jsxs)(n.p,{children:["Prototype risk-free in the ",(0,r.jsx)(n.strong,{children:"sandbox environment"})," before going live."]}),"\n",(0,r.jsx)(n.h2,{id:"available-environments",children:"Available Environments"}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Environment"}),(0,r.jsx)(n.th,{children:"Base URL"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"Sandbox"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"https://sandbox.opensignlabs.com/api/v1.2"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"Production"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"https://app.opensignlabs.com/api/v1.2"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"EU Region"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"https://eu-app.opensignlabs.com/api/v1.2"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"Staging"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"https://staging-app.opensignlabs.com/api/v1.2"})})]})]})]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h1,{id:"target-audience",children:"Target Audience"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Developers & IT Teams"})," \u2014 Embedding signatures and document automation into web, mobile, or backend systems."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Product & SaaS Companies"})," \u2014 Adding white-labelled e-signature flows to their own platforms."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Enterprises & Operations"})," \u2014 Standardising secure, auditable document workflows across departments."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Legal & Compliance Teams"})," \u2014 Meeting ESIGN, UETA, and eIDAS requirements with verifiable audit trails."]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h1,{id:"usage-scenarios",children:"Usage Scenarios"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Automating contract creation, dispatch, and signing across sales and procurement pipelines."}),"\n",(0,r.jsx)(n.li,{children:"Powering HR onboarding \u2014 offer letters, NDAs, and policy acknowledgements at scale."}),"\n",(0,r.jsx)(n.li,{children:"Collecting structured input via public template links for intake forms, waivers, and applications."}),"\n",(0,r.jsxs)(n.li,{children:["Orchestrating multi-party approval flows using mixed ",(0,r.jsx)(n.code,{children:"signer"}),", ",(0,r.jsx)(n.code,{children:"approver"}),", and ",(0,r.jsx)(n.code,{children:"viewer"})," roles."]}),"\n",(0,r.jsx)(n.li,{children:"Standardising legal, financial, and government document workflows with reusable templates."}),"\n",(0,r.jsx)(n.li,{children:"Integrating signing events into downstream systems through real-time webhooks."}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h1,{id:"useful-links",children:"Useful Links"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://www.opensignlabs.com",children:"OpenSign Website"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://docs.opensignlabs.com",children:"Full Documentation"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://github.com/opensignlabs/opensign",children:"GitHub Repository"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://docs.opensignlabs.com/docs/help/Settings/APIToken",children:"Generate API Token"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://www.opensignlabs.com/terms/",children:"Terms of Service"})}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}}}]);