> For the complete documentation index, see [llms.txt](https://docs.sign.singpass.gov.sg/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sign.singpass.gov.sg/for-relying-parties/api-documentation/transaction-signing.md).

# Transaction Signing

## Transaction Signing API Specifications

This document outlines the technical specifications for the **Singpass Transaction Signing API**, designed to enable secure and seamless transaction signing for applications integrating with Singpass. It details the API endpoints, authentication mechanisms, request/response structures, and security protocols to ensure integrity, confidentiality, and user trust.

This specification serves as a guide for developers and system integrators to facilitate smooth implementation and interoperability.

## Flow Diagram

Refer to this diagram for an overview of the transaction signing flow and the interactions between RP, Singpass and other dependencies.

<figure><img src="/files/vEIdH6PDyK39jv0JpvV1" alt=""><figcaption></figcaption></figure>

RPs are expected to implement the following steps referenced from the flow diagram above:

<table><thead><tr><th width="105">Step(s)</th><th width="140">Component</th><th>Summary</th><th width="247">Specifications</th></tr></thead><tbody><tr><td>1</td><td>Frontend</td><td>Retrieve Singpass transaction signing javascript (Singpass JS)</td><td><a href="/pages/O7Z7oyKMnxlOvWGkBNGi">Embedding Singpass JS</a></td></tr><tr><td>2</td><td>Frontend</td><td>Initialise a transaction signing session via Singpass JS</td><td><a href="/pages/TbzsUsZlGu1vdK5FB2rm">Init Transaction Signing</a></td></tr><tr><td>6</td><td>Backend</td><td>After receiving the sign code, invoke Singpass API to exchange it for the user-signed transaction hash</td><td><a href="/pages/d5LVIk1uuB0sFDnsCYTh">Exchange Transaction Signature</a></td></tr></tbody></table>
