When you need a higher level of signature, let the counterparty sign with a personal certificate — just assign them the sign_certificate role.
The role must be enabled in the workspace; depending on the workspace settings, a qualified certificate may be required. See Signing roles.
Example
{
"people": [
{ "is_proposer": true, "email": "vas@email.cz", "contract_role": "approve" },
{ "is_proposer": false, "email": "protistrana@email.cz", "contract_role": "sign_certificate",
"first_name": "Jan", "last_name": "Novák", "person_type": "nature",
"positions": [ { "x": 50, "y": 80, "page": 0 } ] }
],
"file": "uploaded_file_key"
}
curl -X POST "https://api.signi.com/api/v1/contract/" \
-H "x-api-key: VAS_API_KLIC" \
-F "data=@dokument.json;type=application/json" \
-F "uploaded_file_key=@dokument.pdf"
The response is the same as for a regular creation (contract_id, notifications with links). The difference is on the signer's side — in the signing wizard they sign with their certificate instead of a drawn signature.
Other third-party roles work the same way: sign_bank_id_sign (Bank iD) and sign_remote_sign (I.CA RemoteSign) — see the roles overview.
Where to go next
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article