# How to Onboard our API

{% hint style="info" %}
For more information about our API, please [read the documentation here](https://docs.sign.singpass.gov.sg/for-relying-parties/api-documentation).
{% endhint %}

## Onboarding Steps

{% stepper %}
{% step %}

### Before you start (Prerequisites)

#### Download Singpass Staging App ([guide here](https://docs.developer.singpass.gov.sg/docs/testing/testing-with-singpass-app))

* You need a Singpass Staging App to test that your application is successfully redirecting users to the Sign portal, and that they can sign with their Singpass app.

#### Gather information about your use case

* Description of use case and estimated transaction volume
* Sample of document(s) to be signed
  {% endstep %}

{% step %}

### Design & UX Setup

#### Prepare your application details

* Prepare your application's [**display name**](#user-content-fn-1)[^1] and [**logo**](#user-content-fn-2)[^2] for display to users on our Sign portal

#### Prepare the Sign with Singpass button

* The Sign button is available to download in 2 sizes here.

{% file src="<https://372330916-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXnljQgt54HuOtH3cKCRP%2Fuploads%2F6Kf4wHQ2LZQ2y74nEf6E%2FSign%20with%20Singpass%20btn%20-%202%20sizes.zip?alt=media&token=6017bab5-debf-411a-ab7d-6fce9774c449>" %}

* If you want to customise the Sign button e.g. change the button font to your brand font, please consult the section [#implementing-the-sign-with-singpass-button](https://docs.sign.singpass.gov.sg/ux-guidelines#implementing-the-sign-with-singpass-button "mention") in our [ux-guidelines](https://docs.sign.singpass.gov.sg/for-relying-parties/ux-guidelines "mention")on how to implement the button in your application
  {% endstep %}

{% step %}

### Technical Integration

Set up the following on your (staging) application:

* [**Webhook URL**](https://docs.sign.singpass.gov.sg/for-relying-parties/api-documentation/sign-v3/accept-success-signing-webhook)
* [**JWKS URL**](https://docs.sign.singpass.gov.sg/for-relying-parties/api-documentation/sign-v3/jwks-specification)
* [**Redirect URL**](https://docs.sign.singpass.gov.sg/for-relying-parties/api-documentation/sign-v3/redirect-from-sign-with-singpass)&#x20;
  {% endstep %}

{% step %}

### Request for Staging access

{% hint style="warning" %}
Please complete steps 1 to 3 before requesting for staging access. You will need that information to fill in the onboarding form.&#x20;
{% endhint %}

Submit a **staging onboarding** form at: <https://go.gov.sg/sign-onboarding>&#x20;

**You will receive a confirmation email when your request to onboard has been approved.** You may then proceed to call the API endpoints.&#x20;

If you encounter any issues, please submit a request at [partnersupport.singpass.gov.sg](http://partnersupport.singpass.gov.sg/).&#x20;
{% endstep %}

{% step %}

### Test your integration

Once you have received access to the endpoints, we recommend performing these tasks:

* [ ] Check that you can [initiate a signing request](https://docs.sign.singpass.gov.sg/for-relying-parties/api-documentation/sign-v3/initiate-sign-request)
* [ ] Complete a signing request (with your Staging Singpass app) and check that your application's webhook is successfully called
* [ ] Retrieve the signed document from the [webhook call](https://docs.sign.singpass.gov.sg/for-relying-parties/api-documentation/sign-v3/accept-success-signing-webhook)
* [ ] Check that you can call the [get signing result endpoint](https://docs.sign.singpass.gov.sg/for-relying-parties/api-documentation/sign-v3/get-signing-result)
* [ ] (Upon smooth integration) [Record your user journey (video + images)](#user-content-fn-3)[^3] as part of production onboarding requirements
  {% endstep %}

{% step %}

### Request for Production Access

Once your staging implementation is complete and you are ready to go live, please submit our **production onboarding form** at: <https://go.gov.sg/sign-onboarding>

{% hint style="warning" %}
You should only submit the onboarding form when you have your **User Journey** ready, and your system's JWKS, webhook, and redirect page are **functioning in production.**
{% endhint %}
{% endstep %}
{% endstepper %}

[^1]: **Display name**

    Use the name that your users recognise. You may consider shorter versions of your company's official name for e.g. instead of *"ABC Solutions Pte Ltd", use "ABC Solutions"*

[^2]: **Logo**

    * Ensure that your logo can be displayed clearly within square dimensions, similar to a favicon.  [See examples here](https://docs.sign.singpass.gov.sg/for-relying-parties/broken-reference)
    * Preferred file type: SVG&#x20;
    * Alternative file type: PNG with a max width and height of about 100 pixels each

[^3]: **User Journey requirement for Production Onboarding**\
    \
    As part of production onboarding we would require:&#x20;

    1. A screen recording of your user's journey to sign a document with Singpass successfully on your website.

    2) Screenshots of what your user will see if they had an unsuccessful signing attempt with Singpass.\
       \
       More details can be found on the onboarding form <https://go.gov.sg/sign-onboarding>
