Only this pageAll pages
Powered by GitBook
1 of 26

Signify User Guide

Introduction

Loading...

Loading...

Loading...

Loading...

User Guides

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Frequently asked questions

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Contact Us

What data can Signify handle?

Signify can handle up to Restricted and Sensitive Normal data.

Feature roadmap

This page shows our projected timelines for upcoming features. Do check back for regular updates!

Released

Feature

🆕 Fixed signing locations

Description

Place and assign signatures to recipients.

Feature

Personalised instructions to signatory

Description

Allow admins to provide personalised instructions to signatory (e.g 'Please make sure the details on Page X are correct, please sign on page Y)

Feature

Document filling/CSV upload

Description

Allow filling of fields within document. Read more .

Feature

APIs

Description

Support programmatic access Read more .

Feature

Multiple Signatures per Person

Description

Allow each signatory to sign more than once on a document

here
here

What can you use Signify for?

Features

Signify currently offers the following features:

  • Secure electronic signatures (read difference between OES and SES)

  • End-to-end workflow to send out invitations and collect Sign with Singpass signatures

  • Admin dashboard to track signatures

  • Mobile support

  • Multi-party collaborative signing on the same document

  • Document filling/CSV upload ()

  • Fixed signing locations

You can use Signify for any use cases that require Secure Electronic Signatures (SES).

Under the Electronics Transaction Act, the following are excluded:

  1. The creation or execution of a will

  2. The creation, performance or enforcement of an indenture, declaration of trust or power of attorney, with the exception of implied, constructive and resulting trusts and a lasting power of attorney defined under section 2(1) of the Mental Capacity Act 2008

  3. Any contract for the sale or other disposition of immovable property, or any interest in such property

(source: )

Signify

16 September 2025 Update: Signify will continue to be available to all users. New users may log in to Signify directly.

Signify is a document hub that provides collaborative SES (secured electronic signing) capability in accordance with Electronic Transactions Act.

Signify is powered by Sign by Singpass where signing certificates are issued by the National Certification Authority. Signatures made using the Sign with Singpass will be regarded as secure electronic signatures under Singapore's Electronic Transactions Act. More details on Sign with Singpass are available on the Singpass website.

All government agencies, as well as public healthcare institutions in Singapore, can use Signify. It is currently used by over 100 government agencies and public healthcare institutions. You can log in with your agency email address at .

The conveyance of immovable property or the transfer of any interest in immovable property
read more
Singapore Statutes Online
www.signify.gov.sg

Basic Guide

Certificate Guide

API Guide

This page is for users/developers who wish to use Signify programmatically.

Advanced Guide

Signer

The signer (or signee) refers to the recipients of the signable document. This can be members of the public or internal staff and they do not need to login to signify.gov.sg to perform the signing.

Signers can only access the signable document from a Singapore IP address.

Video Tutorial: Signer

Text Tutorial: Signer

  1. Receive sign-able document sent by Signify through email or link

  2. Press on the "Click to sign" boxes

  3. Scan Singpass and approve

    Verify reference code and approve. Do note that once this approve button is confirmed, the document is legally binding with a secure electronic signature. Image below is for reference and may not match the code above.

If the document has multiple signatures required from the signer, they will be required to use the Singpass app to sign multiple times.
  • Download signed document for safe-keeping

  • Verifying Sign with Singpass signatures

    Sign with Singpass signatures can be verified using the Adobe Acrobat Reader application. This should already be installed on your government devices. However, if you are verifying on a non-government device, please:

    • download Adobe Acrobat Reader here

    • load Singpass root signing certificates

    Please ensure that your agency does not modify the file in transit (content disarm and reconstruction) as this will render the file not verifiable.


    Verifying signatures

    Please follow the steps below to verify a Sign with Singpass signature.

    1. Open up signed document on Adobe Acrobat Reader

    2. Check if green tick with "Signed and all signatures are valid"

    If you see "Certificate validity is unknown", this is because you do not have the Singpass root signing certificate on your device. Please refer to this to install the Singpass root signing certificate.

    1. Go to signature panel

    In signature panel, each signature should show:

    • Document has not been modified

    • Signer's identity is valid

    • The signature includes an embedded timestamp

    • Signature is long term validation (LTV) enabled

    Document owner should "click to view this version" to visually inspect that the contents of the document version is signed correctly.

    1. Click on each signature and inspect certificate

    Go into signature properties

    Show signer's certificate

    Certificate should include the following:

    • Singapore National Root CA - G1

    • Singapore NDI Intermediate CA 1 - G2

    • Signer's full name (as per NRIC)

    Click the full name and then "details"

    Check under subject that signer's name and last 4 characters of NRIC is correct.

    Developers

    When signee receives the email to sign via email, which email do they see?

    The email address mentioned will be the email address that generated the API key.

    Can Signify provide progress of the workflow?

    You may use the "Get Single Document" API which will include expiry dates, document status, signees signing statuses.

    Signature is invalid: there are errors in the formatting or information contained in this signature

    It is likely the intranet has a firewall which does "Content disarm and reconstruction (CDR)". When the file goes through the firewall, the firewall processes and rewrites the content in what it considers to be a "safer format". However, that unfortunately modifies the Singpass signature and renders it invalid. You may need to ask your IT department to help with this, and either disable the CDR functionality for such pdf files, or else update their CDR code so that it does not modify Singpass signatures in PDF files.

    How to get the X & Y coordinates through Signify's APIs?

    You can create the document using our UI and inspect the network call.

    Signer

    Will the signer receive a copy of the document?

    Yes, the document will be available for download 30 days before it is removed.

    What data can be seen in the document?

    In the signature, your full name will be recorded. In the embedded signing certificate, the last four characters of NRIC will also be embedded in the document.

    Can someone sign on a person's behalf?

    Yes, if the signer is legally authorised to sign on behalf of another person. The signer would use his own Singpass account to sign, similar to what he would do for wet ink signature.

    Can I sign on Signify without Singpass?

    No. Singpass is required. This is because the Electronic Transactions Act recognises signatures made using certificates issued by Accredited Certificate Authorities (CA) as . Sign with Singpass uses signing certificates issued by an accredited CA, Assurity.

    How long will documents be available for download for signee?

    If the document is not deleted by the admin through the platform or APIs, they will be available for 30 days after all signatories have signed the document.

    Can more than 1 person sign at the same time?

    While the invitation to sign can be sent to more than 1 person, only one person can sign at a given time. There will be an error message that pops up to try again later if a signing session is ongoing.

    Is bulk signing possible?

    This is not supported at the Sign with Singpass protocol does not allow signing on multiple documents or place multiple signatures at a time yet. If this is made possible in future, we will also consider!

    Errors or issues

    Here are some known errors and issues

    If you experience issues uploading PDF

    If you experience errors uploading the PDF, the PDF might have been generated using an older version of PDF that cannot be signed.

    To fix this, you will need to regenerate the PDF file. One way to do so is to open the PDF file in Chrome, click on Print, and then Save as PDF. This will fix any issues.

    Example: Open and Print a PDF using Edge/Chrome

    Step 1: Open the file in Chrome and click on Print

    Secure Electronic Signatures
    guide

    FAQ

    Step 2: Choose Save as PDF to regenerate the PDF file

    Alternatively, you can also re-save the original .doc file using a newer version of Microsoft Word.

    Why are my signatures rotated?

    A possible reason is that the document was actually scanned / created in landscape first, and then rotated 90 degrees in Adobe Acrobat. There is a limitation currently in the Signify application that cannot handle this setup. To fix this, please re-scan the document in portrait A4.

    Admin

    Admin refers to the officer who signs in to signify.gov.sg and creates the workflow.

    Video Tutorial: Admin

    This video is currently outdated as there are now two modes (email and link) and also fixed signing location feature. The interface in the video will look slightly different but still relevant.

    📃 Text Tutorial: Admin

    Step 1: Login to

    Step 2: Click on Start New This will create a new signing workflow.

    Loading timestamp root certificate

    This only applies to documents signed on 11 and 12 June 2025

    The timestamp certificate proves that your document was signed at the stated time. In order to verify that the timestamp certificate in your downloaded document is valid, you might need to load in the timestamp root certificate.

    To load it in, please follow the steps below:

    1. Download the GlobalSign root certificate from here.

      1. If you're unable to access that link, please visit GlobalSign's CA repository and download the R6 GlobalSign Root Certificate.

    2. In your folder that you have chosen, you should find the file root-r6.crt

    3. Open Adobe PDF reader. If you do not have this, you may download and install .

    4. Click "Acrobat Reader" on the top left.

    5. Navigate to "Preferences"

    6. Under Categories, find and click "Signatures".

    7. Click "more" under Identities and Trusted Certificates.

    8. Click on "Trusted Certificates"

    9. Click Import

    10. Under contacts, click "Browse" and choose the certificate you have downloaded in the earlier step.

    11. Under certificates, click on GlobalSign and then click Trust

    12. Check "Use this certificate as a trusted root" with a tick and press OK

    1. Click on Import

    2. You should now be able to see that the signature includes an embedded timestamp

    All done!

    Document owner

    Is there a limit to how many individual signers you can have?

    Each document can have up to 30 signatures on it.

    There is no limit on how many documents you can send out for signing. However, 1 signature using Signify can apply to the entire document. Hence it may be worthwhile changing processes (such as having 1 signature on each page).

    General

    What is Signify?

    Signify is a Singapore government product to allow agencies to collect Sign with Singpass signatures on documents.

    Who can use Signify?

    All government agencies, as well as public healthcare institutions in Singapore, can use Signify. You can log in with your agency email address at www.signify.gov.sg.

    The documents can be sent to anyone with a Singpass account for signing.

    Is there any cost to using Signify?

    No, there is no cost. Signify is free of charge.

    Is there any onboarding required to use Signify? Do I need to be whitelisted?

    All government agencies, as well as public healthcare institutions in Singapore, have been automatically whitelisted and there is no need to request for whitelisting. Log in with your agency email address at www.signify.gov.sg.

    If you are unable to log in and wish to apply for whitelisting, please contact us at: https://go.gov.sg/signify-support.

    What is the advantage of Sign with Singpass signatures?

    Sign with Singpass signatures are recognised as Secure Electronic Signatures under the Electronic Transactions Act. This means that the signature may benefit from certain legal presumptions that (a) the secure electronic signature is the signature of the person to whom it correlates; and (b) the secure electronic signature was affixed by that person with the intention of signing or approving the electronic record (refer to the Electronic Transactions Act).

    As we are unable to provide legal advice, please consult your agency legal department for legal advice on Secure Electronic Signatures and the Electronic Transactions Act.

    Can the signatory contact the document owner?

    Yes. When the owner sends the link to them, there is an email address included in the email.

    Can I use without Singpass app?

    Currently no as it is required for Sign with Singpass to get secure electronic signatures.

    Is Corppass signing supported?

    Unfortunately no as there are no Corppass certificates available yet. The individual can still represent the organisation to sign. You could consider adding a line on the document itself which says Company Representative under the signature.

    Where is the data hosted?

    The data is hosted in Singapore.

    here
    Step 3: Enter document name and upload PDF document

    The document name is important for you to identify which workflow you are referring to. Upload only PDF documents. If you have other file types like word and excel, please convert them to PDF before uploading.

    You will also be given a choice between sending to emails to recipients inputted by yourself or to share later via a link.

    If you experience errors uploading the PDF, the PDF might have been generated using an older version. To fix this, regenerate this PDF file and try again e.g. using a newer version of Microsoft Word or open it in a web browser like Edge/Chrome.

    Step 4: Add recipients If "Email to recipient" mode was chosen, you will be asked to specify which recipients to send to. All the recipients have to digitally sign the document in order for the workflow to be completed. Signify also ensures that only one person can sign at a time.

    Next, you will be asked to indicate where recipients should be signing on your document.

    Click on where you would like the signatures to be and boxes will appear. Do note that signature boxes cannot overlap each other and you may also delete the boxes. Signature boxes are 72px by 208px.

    Minimally, each recipient you have indicated on the previous page needs to be assigned to a signature box, otherwise you will not be allowed to proceed.

    Please note that typically 1 signature is sufficient as Signify signatures applies to the entire document. If you have a workflow today that requires capturing a signature on every single page, do consider making changes as it is no longer necessary.

    Step 5: Edit custom message sent to signers

    If "Email to recipient" mode was chosen, you will be allow to send a message (instructions, notes) to each recipient.

    Step 6: Await signatures from signers

    Workflows that say "need to sign" and in yellow means that a signature is still required. You may click "View" for more details.

    Here, you can see that the status, recipients and document. You would also notice that the document will be purged after 30 days.

    Step 7: Receive email once all parties have completed signing

    The status will also change to "Completed".

    signify.gov.sg
    Can we have repeated email addresses?

    There cannot be duplicated email addresses.

    Can my signatory sign on Signify if they do not have a Singpass account?

    No, a signatory must have a Singpass account to sign on Signify. The reason is because the Singpass signing certificates are issued by Assurity, an Accredited Certificate Authority under the Electronic Transactions Act (2010) (ETA), and signatures made using Sign with Singpass are recognised as Secure Electronic Signatures.

    If a signature is made without a valid certificate under the ETA (e.g. if the signatory simply used an e-pen to sign digitally), this does not have the effect of a Secure Electronic Signature.

    Can we stop the signing process once there are enough signers?

    Currently, Signify's workflow is meant for every signer you sent out to sign. As a workaround, once you have enough signatures, you may download the in-progress document and then delete it on the dashboard so no one else can sign.

    Will we be able to save the document?

    Yes, documents can be download for up to 30 days, after all the signatories have completed signing. Once the dates have passed, the document will be expired and it can no longer be downloaded from Signify. However, download documents' certificates are still verifiable.

    Can the admin be one of the signees

    Yes.

    Can the document be in other formats other than PDF?

    No it must be in PDF, hence you need to convert it to PDF.

    Can we have both email and link modes in one workflow?

    This is currently not possible.

    Is a timestamp included?

    Yes the timestamp is included as part of the signature.

    What information do we get from signees?

    The full name, last 4 characters of NRIC and timestamp of signature.

    Can the signature box be resized?

    Currently no as the Sign with Singpass signature follows a standard specification.

    Can you support other types of signatures (e.g. deed stamp?)

    It is currently not possible.

    Can I password protect documents?

    It is not possible as this modifies the document and its validity.

    Is it possible for my document recipient to sign multiple pages at once?

    This is not possible as Singpass only allows signing one at a time. As a Sign with Singpass signature is applied to the entire document, do consider making changes to your document to require less signatures. You may also clearly explain to the signer (verbally and/or within document) that by providing the signature, they are acknowledging that they have read and agreed to all the contents of the document.

    The signer has sent me a document directly! Is this valid?

    Completed signatures will be sent by Signify from [email protected] instead.

    This is the only document you should trust. If the signer sends you another document directly, you need to check and verify the authenticity. See image below and more information on verifying certificates.

    In this case, our suggestion is to have clearer instructions to the signer via your personalised messages or uploaded document that you will only accept Singpass signatures.

    Loading Singpass root signing certificate

    In order to verify if a Sign with Singpass signature is valid, see here.

    From February 2025 onwards, some Singpass Signing Certificates will be issued by a new Root CA. Please ensure that you load both Root CA Certificates (Step 1a and 1b) in your Adobe Acrobat Reader in order to validate your documents.

    Before that, the Singpass root signing certificates must be installed on your device. If you do not have the Singpass root signing certificates on your device, please follow the steps below.

    For government agencies, this should already be automatically available on your GSIB. If it is not, please raise a ticket to AFM to push “GSSP_Acrobat Reader Digital Signature Fix_2.0” to the agency's GSIBs. For the rest of the agencies, you may follow the steps below or approach your IT department to push the certificates so that it applies across your agency.

    1. There are 2 Singpass root signing certificates that you should download.

      1. Go to IMDA's and download Root CA: Singapore National Root CA - G1 Certificate.

        In your folder that you have chosen, you should find the file SNRCA-G1.cer.

      2. Download the GovTech Root CA - B1 Certificate

    1. Open Adobe PDF reader. If you do not have this, you may download and install .

    1. Click "Acrobat Reader" on the top left.

    1. Navigate to "Preferences"

    1. Under Categories, find and click "Signatures".

    1. Click "more" under Identities and Trusted Certificates.

    1. Click on "Trusted Certificates"

    1. Click Import

    1. Under contacts, click "Browse" and choose the certificates you have downloaded in earlier step.

    1. Under certificates, click on Singapore National Root CA - G1 and then click Trust

    1. Check "Use this certificate as a trusted root" with a tick and press OK

    1. Click on Import

    You should now be able to see Singapore National Root CA - G1 under your Trusted Certificates.

    Repeat the same steps for the 2nd root certificate. At the end of the steps, you should be able to see Singapore National Root CA - B1 under your Trusted Certificates

    1. Enable certification revocation checking This can be found under preferences > signatures > verification

    All done!

    Document filling

    Signify collaborates with docCentral (built by CPF) for FormSG <> Signify integration.

    With docCentral, admins can create custom Signify documents through 2 ways:

    1. FormSG collected data

    2. uploaded CSV of data rows

    ▶️ Document filling demo with docCentral

    In this example, we are using FormSG to send out signable documents. This can be used internally or shared externally. The workflow starts with a respondent filling in the form.

    Notice that there is an email field labelled as "signee_1".

    Upon submission, a signing invitation is sent via email to the email entered in email field. The signee will click on "Review document".

    They will be brought to Signify page to proceed with signing with Singpass.

    🕹️ Interactive guide: docCentral set-up

    Part 1: Setting up FormSG

    Part 2: Setting up Word template, docCentral and Signify

    is available for all public officers / PHIs to use for free.

    • Refer to the docCentral ,

    • Fill this to contact the docCentral team directly

    from
    . In your folder that you have chosen, you should find the file RCA-B1.crt.

  • In your folder that you have chosen, you should find the files

    1. SNRCA-G1.cer.

    1. RCA-B1.crt

  • website
    here
    NCA
    docCentral
    user guide
    form

    Authenticity

    Are the signatures authentic?

    Yes. The signature is signed using Sign with Singpass. The signing certificates are issued by Assurity, an Accredited Certificate Authority under the Electronic Transactions Act (2010), and signatures made using Sign with Singpass are recognised as Secure Electronic Signatures.

    How to verify signatures?

    You can refer to on verifying signatures. Please ensure that the agency you are sending to does not modify the file in transit (content disarm and reconstruction).

    "Certificate validity is unknown"?

    If you see "Certificate validity is unknown", this is because you do not have the Singpass root signing certificate on your device. Please refer to this to install the Singpass root signing certificate.

    Can the signed document be edited?

    After a document has been signed, if there are any edits made, there will be a warning that the signed document has been edited after it was signed, when you open the file in Adobe PDF reader.

    You will also be able to see the exact copy of the document that was signed, before the changes were made.

    Will the signature expire?

    Signatures do not expire. Documents are signed by Signify using the PDF Advanced Electronic Signatures Long-Term Validation (PAdES-LTV) standard.

    If a signer migrates, will the signature still be valid?

    Yes. The document can be traced back to the signer.

    What is the difference between Signify and FormSG + Singpass?

    Signing in through Singpass on FormSG only provides Ordinary Electronic Signatures (OES) and not Secure Electronic Signatures (SES).

    Difference between Secure Electronic Signatures and Ordinary Electronic Signatures?

    Ordinary Electronic Signatures (OES) is a broad category that refers to electronic signatures that are not SES.

    The key difference between a secure electronic signature and an ordinary electronic signature is that while both are accorded legal effect under the ETA, only secure electronic signatures are accorded the following presumptions:

    • It is the signature of the person to whom it correlates;

    • It is affixed by that person with the intention of signing or approving the electronic record; and

    • It is authentic and has integrity.

    Login with Singpass in Signify provides proof of identity, since the login is verified against his Singpass account.

    These presumptions are important in disputes over the validity of electronic signatures, as they will automatically apply for secure electronic signatures. The disputing party will then have to adduce evidence to the contrary if it is claiming that the electronic signature is not valid.

    If I print the document out, does the document still hold legal effect?

    A digital signature consists of a transformation of an electronic record using an asymmetric cryptosystem and a hash function such that a person having the initial untransformed electronic record and the signer’s public key can accurately determine whether the:

    1. transformation was created using the private key that corresponds to the signer’s public key and

    2. if the initial electronic record has been altered since the transformation was made.

    The digital signature is not the picture that we see affixed on the document. The signature is the electronic record behind the image. Hence, a printed copy of the document is not valid as the digital signature cannot be authenticated.

    This is true for all platforms and all digital signatures governed under the Electronic Transactions Act.

    If I password protect the document, will it alter the electronic signature?

    Yes, PDFs uploaded onto Signify cannot be password protected, as this will change the file and make the signature invalid.

    guide
    guide
    Source
    Last updated: Dec 2023

    API v2

    This page is for users/developers who wish to use Signify programmatically. This page documents API version 2.

    The main difference compared to API version 1 is that users can now create documents with fixed signature locations in POST v2/documents.

    API Documentation

    This page is meant for developers, vendors, and IT administrators to understand how to generate the bearer token to access our API to create documents for signing.

    Bearer Token & API Key Generation

    Bearer authentication (also called token authentication) is an HTTP authentication scheme that involves security tokens called bearer tokens. Signify uses bearer authentication.

    To generate the token, click on "API Integration" in the navigation bar. From there, click on Generate API key and copy the token. Use this key to start using Signify's API.

    Keep the bearer token safe: You should not share the bearer token with anyone. Use services like 1Password to store it.

    Authentication

    Signify's API uses API Key for authentication. User can view and manage API Keys in Signify API Dashboard.

    Production secret keys will have production_v1_version prefix.

    Authentication to the API is performed via bearer auth.

    Sample CURL request:

    All API requests must be made over HTTPS. Calls made over plain HTTP will fail and requests without authentication will also fail.

    Errors

    Signify API uses conventional API Error to indicate the success or failure of an API request.

    Status Codes
    Description

    Rate Limits

    For all of Signify's APIs, Signify allows up to 100 requests per 10 seconds (subject to change).

    Endpoints

    Environment
    Endpoint

    Create Document

    POST /v2/documents

    Content type

    The request must be of type multipart/form-data.

    Signing modes

    We support two modes of signing invitation: (1) signing by email and (2) signing by link.

    • In signing by email, the API caller supplies the email addresses of the signatories, and an email invite is sent out by Signify to the signatories to sign the document.

    • In signing by link, no email addresses are supplied by the API caller. Signing links are returned to the API caller, who can then redirect their users to the signing link.

    The signing mode is specified in the documentMode property of the request body.

    Both signing modes require the API caller to specify the location of the signature placeholders.

    Signing by Email

    The mandatory fields in request body are:

    1. documentName - the document name

    2. recipients - an array of {email: string, requiredSignatures: requiredSignature[], customMessage?: string}

    3. file - the file binary

    The optional fields in the request body are:

    1. documentMode - For signing by email, you may specify this to be email. If not specified, this will default to email.

    2. redirectUrl - Signify will redirect to this redirectUrl upon completion of signing (by each email receipient). Only URLs with a https protocol, and a .gov.sg domain will be accepted.

    Property
    Type
    Required?
    Restrictions

    How to obtain positionX and positionY:

    One way to obtain positionX and positionY is to

    1. Create a document via Signify web

    2. Inspect the network call to , extract positionX and positionY from the payload

    3. Use these values in your API call

    Sample CURL request:

    Returns:

    Explanation of fields returned:

    Field returned
    What it means
    Example

    Signing by Link

    The mandatory fields in request body are:

    1. documentName - the document name

    2. totalSignaturesByLink - a length 1 array of {requiredSignatures: requiredSignature[]}

    3. file - the file binary

    The optional fields in the request body are:

    1. redirectUrl - Signify will redirect to this redirectUrl upon completion of signing. Only URLs with a https protocol, and a .gov.sg domain will be accepted.

    Property
    Type
    Required?
    Restrictions

    How to obtain positionX and positionY:

    One way to obtain positionX and positionY is to

    1. Create a document via Signify web

    2. Inspect the network call to , extract positionX and positionY from the payload

    3. Use these values in your API call

    Sample CURL request:

    Returns:

    Explanation of fields returned:

    Field returned
    What it means
    Example

    Get Documents

    GET /v2/documents

    Sample CURL request:

    Returns:

    Explanation of fields returned:

    Field returned
    What it means
    Example

    Get Single Document

    GET /v2/documents/:id

    Sample CURL request:

    Returns:

    For signing by email:

    For signing by link:

    Explanation of fields returned:

    Field returned
    What it means
    Example

    Delete Document

    DELETE /v2/documents/:id

    Sample CURL request:

    Returns:

    Too many requests hit the API too quickly. We recommend an exponential backoff of your requests.

    500, 502, 503, 504 - Server Errors

    Something went wrong on Signify's end.

    Yes

    Up to 10MB

    documentMode

    email literal

    No, optional

    redirectUrl

    string

    No, optional

    Must have a https protocol and a .gov.sg domain

    documentMode - this must be specified as link

    Yes

    Up to 10MB

    documentMode

    link literal

    Yes

    redirectUrl

    string

    No, optional

    Must have a https protocol and a .gov.sg domain

    The creation time of the document

    2023-11-19T08:23:20.488Z

    status

    The status of the document. Either signed if all signatures required have been completed, or draft otherwise

    signed

    documentMode

    Type of signing for this document. Either link if the document is signing by link, or email otherwise

    link

    The expiry time of the document, after which it can no longer be accessed

    2023-12-19T15:59:59.999Z

    createdAt

    The creation time of the document

    2023-11-19T08:23:20.488Z

    status

    The status of the document. Either signed if all signatures required have been completed, or draft otherwise

    signed

    signingInvitations

    Details of the signing invitations sent out. signatory - Email address of the signatory (only for signing by email)

    signingLink - Link for signing (only for signing by link)

    totalSignatures - Number of signatures required from this invite

    status - signed if all signatures have been collected for this invite, draft otherwise

    completedSignatures - details of the signatures already collected

    documentMode

    Type of signing for this document. Either link if the document is signing by link, or email otherwise

    link

    200 - OK

    Everything worked as expected.

    400 - Bad Request

    The request was unacceptable, often due to missing a required parameter.

    401 - Unauthorized

    No valid API key provided.

    402 - Request Failed

    The parameters were valid but the request failed.

    404 - Not Found

    The requested resource doesn't exist.

    Production

    https://app.signify.gov.sg/public/

    Staging

    https://staging.signify.gov.sg/public/

    documentName

    string

    Yes

    Must have at least 4 characters and at most 100 characters. Only the following character set is allowed:

    recipients

    An array of {email: string, requiredSignatures: requiredSignature[], customMessage?: string}

    Yes

    Email addresses must be unique. requiredSignatures is an array of the requiredSignature object, which has the type:

    • page represents the page that the fixed signature placeholder is located

    • positionX and positionY are numbers between 0 to 1. They represent the location of the fixed signature as a percentage of the total document's width and height respectively. Refer below for instructions on how to retrieve these coordinates.

    • requiredSignature array has a max length of 20 per email recipient

    customMessage is an optional attribute of 1 to 1000 characters. The message will be sent out as part of the email invitation to the recipient.

    file

    documentId

    The unique identifier of the document

    5

    documentName

    string

    Yes

    Must have at least 4 characters and at most 100 characters. Only the following character set is allowed:

    totalSignaturesByLink

    A length 1 array of {requiredSignatures: requiredSignature[]}

    Yes

    Array must be of length exactly 1

    requiredSignature has the type

    • page represents the page that the fixed signature placeholder is located

    • positionX and positionY are numbers between 0 to 1. They represent the location of the fixed signature as a percentage of the total document's width and height respectively. Refer below for instructions on how to retrieve these coordinates.

    • requiredSignature array has a max length of 20

    file

    documentId

    The unique identifier of the document

    3

    signingLinks

    The signing links for this document, in an array. For each link, signingLink is the link URL, and totalSignatures is the number of signatures required for that link, as specified during document creation.

    id

    The unique identifier of the document

    6

    documentName

    The name of the document, as specified during document creation

    Document 1

    expiresAt

    The expiry time of the document, after which it can no longer be accessed

    2023-12-19T15:59:59.999Z

    id

    The unique identifier of the document

    6

    documentName

    The name of the document, as specified during document creation

    Document 1

    documentUrl

    The url where the document file can be retrieved.

    ⚠️ The document file URL is only guaranteed to be valid for 30 minutes. You should refetch the URL again after that time.

    https://app.signify.gov.sg/api/v1/bucket/01hfkatk5tc2mgxq1wefhyn52d

    https://signify.gov.sg/
    https://app.signify.gov.sg/api/v1/documents/upload
    https://signify.gov.sg/
    https://app.signify.gov.sg/api/v1/documents/upload-link

    429 - Too Many Requests

    binary

    binary

    createdAt

    expiresAt

    curl -X POST "https://app.signify.gov.sg/public/v1/documents" \
      -H 'Authorization: Bearer <API_KEY>' \
      -H 'Content-Type: multipart/form-data' \
      -F 'documentName=Testing API' \
      -F 'recipients=[{"email":"<EMAIL_1>","requiredSignatures":[{"page":1, "positionX":0.1, "positionY":0.2}, {"page":1, "positionX":0.2, "positionY":0.3}], "customMessage": "Please sign on Page 3."},{"email":"<EMAIL_2>","requiredSignatures":[{"page":1, "positionX":0.5, "positionY":0.5}]}]' \
      -F 'file=@"<FILE_PATH>"'
    {
      "message": "Unauthorized"
    }
    a-zA-Z0-9_\-./() &`;'"
    { page: number,
    positionX: number,
    positionY: number }
    curl -X POST "https://app.signify.gov.sg/public/v2/documents" \
      -H 'Authorization: Bearer <API_KEY>' \
      -H 'Content-Type: multipart/form-data' \
      -F 'documentName=Testing API' \
      -F 'recipients=[{"email":"<EMAIL_1>","requiredSignatures":[{"page":1, "positionX":0.1, "positionY":0.2}, {"page":1, "positionX":0.2, "positionY":0.3}], "customMessage": "Please sign on Page 3."},{"email":"<EMAIL_2>","requiredSignatures":[{"page":1, "positionX":0.5, "positionY":0.5}]}]' \
      -F 'file=@"<FILE_PATH>"'
    {
        "documentId": 20
    }
    a-zA-Z0-9_\-./() &`;'"
    { page: number,
    positionX: number,
    positionY: number }
    curl -X POST "https://app.signify.gov.sg/public/v2/documents" \
      -H 'Authorization: Bearer <API_KEY>' \
      -H 'Content-Type: multipart/form-data' \
      -F 'documentName="Document 1"' \
      -F 'totalSignaturesByLink="[{"requiredSignatures": [{"page": 1, "positionX": 0, "positionY": 0}, {"page": 2, "positionX": 0.2, "positionY": 0.3}]} \
      -F 'documentMode="link"' \
      -F 'file=@"<FILE_PATH>"'
    
    {
        "documentId": "3",
        "signingLinks": [
            {
                "signingLink": "https://app.signify.gov.sg/documents/sign/01hfk78xjafvn9n8xn084a9rsn",
                "totalSignatures": 2
            }
        ]
    }
    [
        {
            "signingLink": "https://app.signify.gov.sg/documents/sign/01hfk78xjafvn9n8xn084a9rsn",
            "totalSignatures": 3
        }
    ]
    curl -X GET "https://app.signify.gov.sg/public/v2/documents" \
      -H 'Authorization: Bearer <API_KEY>'
    [
        {
            "id": 3,
            "documentName": "Document 1",
            "expiresAt": "2023-12-19T15:59:59.999Z",
            "createdAt": "2023-11-19T07:21:14.065Z",
            "status": "draft",
            "documentMode": "link"
        },
        {
            "id": 4,
            "documentName": "Document 2",
            "expiresAt": "2023-12-19T15:59:59.999Z",
            "createdAt": "2023-11-19T07:22:21.272Z",
            "status": "draft",
            "documentMode": "email"
        },
        {
            "id": 5,
            "documentName": "Document 3",
            "expiresAt": "2023-12-19T15:59:59.999Z",
            "createdAt": "2023-11-19T08:23:07.277Z",
            "status": "draft",
            "documentMode": "email"
        }
    ]
    curl -X GET "https://app.signify.gov.sg/public/v2/documents/6" \
      -H 'Authorization: Bearer <API_KEY>'
    {
        "id": 6,
        "documentName": "Document 1",
        "documentUrl": "https://app.signify.gov.sg/api/v1/bucket/01hfkatk5tc2mgxq1wefhyn52d",
        "expiresAt": "2023-12-19T15:59:59.999Z",
        "createdAt": "2023-11-19T08:23:20.488Z",
        "status": "draft",
        "signingInvitations": [
            {
                "signatory": "[email protected]",
                "totalSignatures": 3,
                "status": "draft",
                "completedSignatures": []
            },
            {
                "signatory": "[email protected]",
                "totalSignatures": 1,
                "status": "signed",
                "completedSignatures": [
                    {
                        "name": "MY NAME",
                        "timeStamp": "2023-11-19T08:31:36.000Z"
                    }
                ]
            }
        ],
        "documentMode": "email"
    }
    {
        "id": 313,
        "documentName": "Document 1",
        "documentUrl": "https://app.signify.gov.sg/api/v1/bucket/01hfna3nxdxf9nzvev5hw7aaf1",
        "expiresAt": "2023-12-20T15:59:59.999Z",
        "createdAt": "2023-11-20T02:49:17.105Z",
        "status": "signed",
        "signingInvitations": [
            {
                "signingLink": "https://app.signify.gov.sg/documents/sign/01hfna3p1f095s5aqph2dsjr07",
                "totalSignatures": 3,
                "status": "signed",
                "completedSignatures": [
                    {
                        "name": "MY NAME",
                        "timeStamp": "2023-11-20T02:49:37.000Z"
                    },
                    {
                        "name": "MY NAME",
                        "timeStamp": "2023-11-20T02:50:00.000Z"
                    },
                    {
                        "name": "MY NAME",
                        "timeStamp": "2023-11-20T02:53:04.000Z"
                    }
                ]
            }
        ],
        "documentMode": "link"
    }
    curl -X DELETE "https://app.signify.gov.sg/public/v2/documents/6" \
      -H 'Authorization: Bearer <API_KEY>'
    {
        "message": "Document deleted"
    }
    {
        "signatory": "email2open.gov.sg",
        "totalSignatures": 1,
        "status": "signed",
        "completedSignatures": [
            {
                "name": "MY NAME",
                "timeStamp": "2023-11-19T08:31:36.000Z"
            }
        ]
    }
    docCentral x Signify document filling demodocCentral x Signify document filling demo
    Logo