Sign
const url = 'https://api-sandbox.trustink.io/participant/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/signature';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"encodedSignature":"example","fieldIds":["example"],"signatures":[{"page":1,"x":1,"y":1,"width":1,"height":1,"unit":"pt"}],"pageSize":{"width":1,"height":1},"consent":{"textVersion":"example","acceptedAt":"2026-04-15T12:00:00Z"},"client":{"timezone":"example","language":"example","screen":{"width":1,"height":1},"viewedAllPages":true}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api-sandbox.trustink.io/participant/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/signature \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "encodedSignature": "example", "fieldIds": [ "example" ], "signatures": [ { "page": 1, "x": 1, "y": 1, "width": 1, "height": 1, "unit": "pt" } ], "pageSize": { "width": 1, "height": 1 }, "consent": { "textVersion": "example", "acceptedAt": "2026-04-15T12:00:00Z" }, "client": { "timezone": "example", "language": "example", "screen": { "width": 1, "height": 1 }, "viewedAllPages": true } }'Stores the participant’s signature with their consent and resumes the workflow. Either the predefined fields (fieldIds) or, without them, the signer’s rectangles (signatures); coordinates in Signature fields and coordinates, consent in Audit trail.
Authorizations
Section titled “Authorizations”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters”The participant id: the path of the signing link, or participants[].id of the case.
Header Parameters
Section titled “Header Parameters”The otpSession of POST .../otp/verify. Needed for a case with multiFactorType: the document links, the signature and the signed document.
Deprecated: the case PIN, for a case created with pin and without multiFactorType.
Request Bodyrequired
Section titled “Request Bodyrequired”object
object
object
object
object
object
Responses
Section titled “ Responses ”The signature is stored; no body.
The request failed validation: validationErrors says where and why.
object
object
object
Examplegenerated
{ "message": "example", "validationErrors": [ { "instancePath": "example", "keyword": "example", "params": { "additionalProperty": "example" }, "message": "example" } ]}The case has a multiFactorType and the request has no valid Trustink-Otp-Session, or the signing link is not valid. code: OTP_REQUIRED.
object
Examplegenerated
{ "code": "example", "message": "example"}No such participant or case.
Example
Case not foundThe participant has signed already. code: ALREADY_SIGNED.
object
Examplegenerated
{ "code": "example", "message": "example"}Nobody can sign the case any more (status says why), or a DONE case’s link has passed validUntil; senderName names who sent the request when the tenant gave a sender name. code: CASE_NOT_ACTIVE, LINK_EXPIRED.
object
Examplegenerated
{ "code": "example", "message": "example"}default
Section titled “default”Something failed on the platform, or the request timed out (code TIMEOUT, 503); try again.
object
Examplegenerated
{ "code": "example", "message": "example"}