Estonian ID-card signing
Signicat's ESTEID signing method enables certificate-based electronic signatures with an Estonian ID card. Signing with ESTEID is supported through the Sign API v2 PKISIGNING flow. This guide details how to configure and invoke the flow.
This guide focuses on electronic signing. To learn more about the identity provider and authentication, see our Estonian ID-card documentation.
Supported capabilities
| Capability | Support |
|---|---|
| Vendor | ESTEID |
| Signing flow | PKISIGNING |
| Input format | PDF (application/pdf) |
| Result format | PAdES-BASELINE-LT (application/pdf) |
| Multiple documents | Supported; one signed PDF is produced for each input PDF. |
Packaging with packageTo | Not supported. |
Estonian ID-card signing accepts PDF documents only.
Signer requirements
The signer needs all of the following:
- an Estonian ID card with a valid and enabled signing certificate
- a compatible card reader and supported ID card software or browser integration
- the card's PIN2.
Signing setup
In your HTTP POST request to the Signing sessions endpoint, set the signingSetup parameter as follows:
[
{
"vendor": "ESTEID",
"signingFlow": "PKISIGNING",
"identityProviders": [],
"requestedAttributes": [
"nin"
]
}
]
Signer attributes
The verified signer name and identity provider name are returned by default. The national identity number is returned only when nin is requested.
| Requested value | Output field | Description |
|---|---|---|
nin | output.userInfo.nin | Estonian personal identification code |
The Estonian ID-card signing certificate does not contain a date of birth attribute.
Attribute response
| Output field | Description |
|---|---|
signingTime | Signature time in ISO 8601 format, including an offset when available |
fullName, firstName, lastName | Verified signer name |
idpName | esteid |
nin | Estonian personal identification code; present when requested |
uniqueId | ETSI EN 319 412-1 natural person identifier in the format <type><country>-<identifier>; for Estonian ID-card, for example PNOEE-49001010033 |
extra | Values under extra, including client IP and user agent. |
Restrict signing to a known person
To require a particular Estonian personal identification code, request nin and enable national identity number validation:
[
{
"signer": {
"nationalIdentificationNumber": "49001010033",
"prefill": [],
"validations": [
"NATIONAL_IDENTIFICATION_NUMBER"
]
},
"signingSetup": [
{
"vendor": "ESTEID",
"signingFlow": "PKISIGNING",
"identityProviders": [],
"requestedAttributes": [
"nin"
]
}
]
}
]
The session is rejected if the identity number in the Estonian ID-card signing result differs from the configured value. Setting nationalIdentificationNumber without "validations": ["NATIONAL_IDENTIFICATION_NUMBER"] does not enforce a match. Identity prefill is not supported because the signer is identified by the card used during the signing ceremony.
Signing result
A completed session contains one PAdES result (PAdES-BASELINE-LT) for each signed input document:
{
"lifecycle": {
"state": "SIGNED",
"stateIsFinal": true
},
"output": {
"signatures": [
{
"resultDocumentId": "01a08ac4-37a4-79e1-9bc7-b8eb37295b13",
"originalDocumentId": "01a08ac1-b34c-72c7-86af-1e80e87c8537",
"signatureType": "PADES"
}
],
"packages": [],
"userInfo": {
"signingTime": "2026-08-11T14:24:18+03:00",
"fullName": "Mari Tamm",
"idpName": "esteid",
"nin": "49001010033",
"uniqueId": "PNOEE-49001010033",
"firstName": "Mari",
"lastName": "Tamm",
"extra": {
"client-ip": "203.0.113.42",
"user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 Chrome/148.0.0.0 Safari/537.36"
}
},
"seals": []
}
}
Use resultDocumentId to retrieve the signed PDF. For multiple documents, match each result to its input using originalDocumentId rather than array order.
Limitations
- The
ESTEIDvendor can currently be enabled only for sandbox accounts. - Only PDF documents are supported.
packageTocannot be used with Estonian ID-cardPKISIGNING.
Test accounts
The Estonian ID-card signing method does not provide a personal-code-only simulator. Testing the signing functionality requires a physical Estonian test ID card.