Getting Started

Welcome to the QuickSign API documentation. This guide will help you integrate digital signature functionality into your applications quickly and securely.

Base URL

All API requests should be made to the following base URL:

Base URLtext
https://api.quicksign.com.au/external/api/v1

API Version

The current API version is v1. The version is included in the base URL path.

Authentication

All API requests require authentication using an API key. Include your API key in the request header:

Authentication Headertext
X-API-KEY: your-api-key-here

Getting Your API Key

To obtain an API key:

  1. Log in to your QuickSign account at app.quicksign.com.au
  2. Navigate to Settings → API Settings
  3. Click Generate API Key
  4. Copy and securely store your API key

Keep Your API Key Secure

  • Never expose your API key in client-side code
  • Don't commit API keys to version control
  • Use environment variables to store keys
  • Regenerate your key if it's compromised

For more details, see the Authentication documentation.

Quick Start

Here's a minimal example to test your API key:

Test Your API Keybash
curl -X GET https://api.quicksign.com.au/external/api/v1/documents/YOUR_DOCUMENT_ID/audit \
  -H "X-API-KEY: your-api-key-here"

If your API key is valid, you'll receive a successful response with the document's audit trail.

Complete Workflow

A typical document signing workflow consists of the following steps:

1

Create Document

First, create a document via the QuickSign web interface or main API. Upload your PDF and you'll receive a document ID (UUID format).

Note

Document creation via the external API is not yet available. Use the web interface to upload documents.
2

Add Recipients

Add recipients (signers and viewers) to your document using the POST /documents/:id/recipients endpoint.

Add Recipientsbash
curl -X POST https://api.quicksign.com.au/external/api/v1/documents/abc123/recipients \
  -H "X-API-KEY: your-api-key-here" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "name": "John Doe",
      "email": "john@example.com",
      "role": "SIGNER"
    }
  ]'
3

Add Fields

Position signature fields, text fields, or date fields on your document using the POST /documents/:id/fields endpoint.

Add Fieldsbash
curl -X POST https://api.quicksign.com.au/external/api/v1/documents/abc123/fields \
  -H "X-API-KEY: your-api-key-here" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "recipientEmail": "john@example.com",
      "type": "SIGNATURE",
      "page": 1,
      "x": 100,
      "y": 200
    }
  ]'

Coordinate System

Fields are positioned using x/y coordinates in pixels. The origin (0,0) is at the top-left corner of each page.
4

Send Document

Send the document to recipients for signing using the POST /documents/:id/send endpoint.

Send Documentbash
curl -X POST https://api.quicksign.com.au/external/api/v1/documents/abc123/send \
  -H "X-API-KEY: your-api-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "message": "Please sign this document",
    "description": "Important contract",
    "expiryDate": "2024-12-31T23:59:59Z"
  }'
5

Track Progress

Monitor document status by retrieving the audit trail using the GET /documents/:id/audit endpoint.

Get Audit Trailbash
curl -X GET https://api.quicksign.com.au/external/api/v1/documents/abc123/audit \
  -H "X-API-KEY: your-api-key-here"

Alternatively, configure a webhook URL to receive real-time notifications when documents are completed. See Webhooks documentation.

Rate Limits

To ensure fair usage and system stability, API requests are rate-limited per user account. The rate limit is tracked using the apiUsageCount and apiUsageLimitfields in your user account.

Rate Limit Details

  • Default Limit: Contact your administrator for your account's limit
  • Rate Limit Headers: Currently not included in responses
  • Exceeded Limit: Returns HTTP 429 (Too Many Requests)

Best Practices

  • Batch requests: Add multiple recipients or fields in a single API call
  • Cache responses: Store audit trail data to reduce repeated requests
  • Use webhooks: Instead of polling for document status, use webhooks
  • Implement retry logic: Handle rate limit errors with exponential backoff

Next Steps