Digio eSign API

DigiSign - Aadhaar and OTP based legally-valid electronic signatures.

OpenAPI Specification

digio-esign-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Digio Documents eSign API
  description: Digio is an India-based digital trust and paperwork automation platform offering legally-valid Aadhaar/OTP eSign, eStamping, KYC (CKYC, KRA, DigiLocker, offline Aadhaar, Video KYC), eNACH/NACH eMandates, UPI Autopay, AML/CFT screening, and document/agreement management over a REST API. All requests use HTTPS with HTTP Basic authentication (Base64 of client_id:client_secret). Asynchronous status updates are delivered via HTTP webhooks; there is no WebSocket surface.
  version: '1.0'
  contact:
    name: Digio Developer Support
    url: https://documentation.digio.in/
    email: tech@digio.in
  termsOfService: https://www.digio.in/
servers:
- url: https://api.digio.in
  description: Production
- url: https://ext.digio.in
  description: Sandbox / Test
security:
- basicAuth: []
tags:
- name: eSign
  description: DigiSign - Aadhaar and OTP based legally-valid electronic signatures.
paths:
  /v2/client/document/upload:
    post:
      operationId: uploadDocumentForSign
      tags:
      - eSign
      summary: Upload a document and create an eSign request
      description: Uploads a PDF file and creates a signature request for one or more signers (identified by a single email or phone number). Returns a document id prefixed with DID.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UploadDocumentRequest'
      responses:
        '200':
          description: Sign request created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SignDocument'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v2/client/document/uploadpdf:
    post:
      operationId: uploadPdfForSign
      tags:
      - eSign
      summary: Create an eSign request from a base64 PDF
      description: Creates a signature request from a base64-encoded PDF payload rather than a multipart file upload.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UploadPdfRequest'
      responses:
        '200':
          description: Sign request created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SignDocument'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v2/client/document/{document_id}:
    get:
      operationId: getDocument
      tags:
      - eSign
      summary: Get eSign request details
      description: Retrieves the current status and signer details of a signature request.
      parameters:
      - $ref: '#/components/parameters/DocumentId'
      responses:
        '200':
          description: Document details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SignDocument'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v2/client/document/download/{document_id}:
    get:
      operationId: downloadSignedDocument
      tags:
      - eSign
      summary: Download a signed document
      description: Downloads the completed, signed PDF for a signature request.
      parameters:
      - $ref: '#/components/parameters/DocumentId'
      responses:
        '200':
          description: Signed PDF
          content:
            application/pdf:
              schema:
                type: string
                format: binary
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  parameters:
    DocumentId:
      name: document_id
      in: path
      required: true
      description: Signature request identifier (DID...).
      schema:
        type: string
  schemas:
    Error:
      type: object
      properties:
        code:
          type: integer
        message:
          type: string
        details:
          type: string
    SignDocument:
      type: object
      properties:
        id:
          type: string
          description: Document identifier (DID...).
        is_agreement:
          type: boolean
        agreement_type:
          type: string
        signing_parties:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              identifier:
                type: string
              status:
                type: string
                enum:
                - requested
                - signed
                - expired
        file_name:
          type: string
        created_at:
          type: string
          format: date-time
        agreement_status:
          type: string
          enum:
          - requested
          - completed
          - expired
    UploadDocumentRequest:
      type: object
      properties:
        signers:
          type: array
          items:
            $ref: '#/components/schemas/Signer'
        expire_in_days:
          type: integer
        display_on_page:
          type: string
          enum:
          - first
          - last
          - all
          - custom
        notify_signers:
          type: boolean
        send_sign_link:
          type: boolean
        file_name:
          type: string
        file_data:
          type: string
          description: Base64-encoded PDF content.
      required:
      - signers
      - file_name
    UploadPdfRequest:
      allOf:
      - $ref: '#/components/schemas/UploadDocumentRequest'
    Signer:
      type: object
      properties:
        identifier:
          type: string
          description: A single signer identifier - either an email address or a phone number.
        name:
          type: string
        reason:
          type: string
          description: Reason for signing.
        sign_type:
          type: string
          description: Signature type.
          enum:
          - aadhaar
          - electronic
          - dsc
      required:
      - identifier
  responses:
    Unauthorized:
      description: Missing or invalid Basic authentication credentials.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: 'HTTP Basic authentication. Send the header Authorization: Basic Base64(client_id:client_secret).'