Methods to validate holder data, enroll disposable certificates, and send OTP codes.
Lean Disposable Services (26.1.0.3)
REST API for enrolling and managing lean disposable certificates for secure digital signatures.
Authenticate every request with Basic Auth credentials and a client SSL certificate (mTLS). All requests require the Content-Type: application/json header.
For the full integration guide, see the Lean Disposable documentation.
Request
Sends an OTP code to the holder via SMS or email. Use certIdOtp and deviceCode returned by enroll. See sendOtp.
OTP certificate identifier returned by enroll (certIdOtp).
- Production environmenthttps://lean.namirialtsp.com/RAWS_DISPOSABLE/api/certificate/sendOtp
- Development and testing environmenthttps://lean.test.namirialtsp.com/RAWS_DISPOSABLE/api/certificate/sendOtp
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
- SMS with custom text
- SMS with template
- Email OTP
curl -i -X POST \
-u <username>:<password> \
https://lean.namirialtsp.com/RAWS_DISPOSABLE/api/certificate/sendOtp \
-H 'Content-Type: application/json' \
-d '{
"certIdOtp": 1234567,
"deviceCode": "RHIDP0000000000000",
"smsOptions": {
"textSMS": "Your OTP code is: $OTP$"
}
}'Request
Validates the OTP code entered by the holder. See validate.
OTP certificate identifier returned by enroll (certIdOtp).
- Production environmenthttps://lean.namirialtsp.com/RAWS_DISPOSABLE/api/certificate/validate
- Development and testing environmenthttps://lean.test.namirialtsp.com/RAWS_DISPOSABLE/api/certificate/validate
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
-u <username>:<password> \
https://lean.namirialtsp.com/RAWS_DISPOSABLE/api/certificate/validate \
-H 'Content-Type: application/json' \
-d '{
"certIdOtp": 1234567,
"deviceCode": "RHIDP0000000000000",
"otpCode": "123456"
}'Request
Validates holder data, document and certificate parameters before enrolling. Optional step — use it to detect validation errors before calling enroll. See checkData.
First name of the holder (UTF-8). See allowed characters rules.
Last name of the holder (UTF-8). See allowed characters rules.
Type of identification document. Together with identificationCode and identificationCountry it composes the certificate serial number.
Unique code of the identification document. Together with identificationType and identificationCountry it composes the certificate serial number. See allowed characters rules.
Country where identification was issued. ISO 3166-1 alpha-2 code.
Date of birth in ISO 8601 format (yyyy-MM-dd). Example: 1980-01-01. Note: the date is not validated semantically by the backend.
City of birth. See allowed characters rules.
Required if otpType=SMS (provide mobile) or otpType=EMAIL (provide email).
Identity document information.
Not required if one of the following conditions is true:
DisposableIdentification.identificationTypeisAMLDisposableHolder.identificationTypeis one of:PASSPORT,PERSONAL_NUMBER,NATIONAL_IDENTITY_CARD,DRIVING_LICENSE,RESIDENCE_PERMIT,RESIDENCE_PERMIT_TEMP,EMBASSY_DOCUMENT
Identity document type. See allowed values.
Date on which the document was issued. ISO 8601 format yyyy-MM-dd. Other formats are not accepted.
Country where document was issued. ISO 3166-1 alpha-2 code.
Certificate security code.
Disposable certificate type. See allowed values. Default: DISPOSABLE.
OTP delivery method. See allowed values. Default: SMS.
- Production environmenthttps://lean.namirialtsp.com/RAWS_DISPOSABLE/api/certificate/{lraId}/checkData
- Development and testing environmenthttps://lean.test.namirialtsp.com/RAWS_DISPOSABLE/api/certificate/{lraId}/checkData
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
- otpType=SMS
- otpType=EMAIL
curl -i -X POST \
-u <username>:<password> \
'https://lean.namirialtsp.com/RAWS_DISPOSABLE/api/certificate/{lraId}/checkData' \
-H 'Content-Type: application/json' \
-d '{
"disposableHolder": {
"firstName": "Mario",
"lastName": "Rossi",
"identificationType": "ITALIAN_TAX_CODE",
"identificationCode": "RSSMRA80A01H501U",
"identificationCountry": "IT",
"birthDate": "1980-01-01",
"birthCity": "Roma"
},
"disposableDoc": {
"documentType": "CI",
"documentNr": "AA0000000",
"documentIssuer": "Comune di Roma",
"documentIssuerDate": "2020-01-01",
"documentIssuerCountry": "IT",
"documentExpirationDate": "2030-01-01"
},
"disposableCertificate": {
"password": "Password01",
"securityCode": "Security01",
"type": "DISPOSABLE",
"otpType": "SMS"
},
"disposableContacts": {
"mobile": "+390000000000"
}
}'Request
Validates holder data using an eID assertion before enrolling. Checks: mandatory fields, allowed values, LRA authorization for the eID type. See checkDataWitheIDAssertion and How to enroll with eID assertion.
eID assertion holder data. The country and eIDType together identify the eID method (e.g., IT-SPID, IT-EIDNAMIRIAL, AT-EID). The assertion format depends on the eID type.
Country code of the eID provider. ISO 3166-1 alpha-2 code. Together with eIDType identifies the eID method (e.g., IT-SPID, IT-EIDNAMIRIAL, AT-EID).
Type of eID assertion. Together with country identifies the eID method (e.g., IT-SPID, IT-EIDNAMIRIAL, AT-EID). Allowed values depend on LRA configuration.
Certificate configuration. Specifies password, security code, certificate type, and OTP type.
Certificate security code.
Disposable certificate type. See allowed values. Default: DISPOSABLE.
OTP delivery method. See allowed values. Default: SMS.
Contact information. Required if certificate.otpType=SMS (provide mobile) or certificate.otpType=EMAIL (provide email).
- Production environmenthttps://lean.namirialtsp.com/RAWS_DISPOSABLE/api/certificate/{lraId}/checkDataWitheIDAssertion
- Development and testing environmenthttps://lean.test.namirialtsp.com/RAWS_DISPOSABLE/api/certificate/{lraId}/checkDataWitheIDAssertion
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
-u <username>:<password> \
'https://lean.namirialtsp.com/RAWS_DISPOSABLE/api/certificate/{lraId}/checkDataWitheIDAssertion' \
-H 'Content-Type: application/json' \
-d '{
"eidAssertionHolder": {
"country": "IT",
"eIDType": "EIDNAMIRIAL",
"assertion": "eyJnaXZlbl9uYW1lIjoiTWFyaW8iLCJmYW1pbHlfbmFtZSI6IlJvc3NpIiwicGVyc29uX2lkZW50aWZpZXIiOiJUSU5JVC1SU1NNUkE4MEEwMUg1MDFVIiwiYmlydGhfZGF0ZSI6IjE5ODAtMDEtMDEiLCJkb2NfdHlwZSI6Ik5BVElPTkFMX0lERU5USVRZX0NBUkQiLCJjb3VudHJ5IjoiSVQiLCJycF9uYW1lIjoiTmFtaXJpYWwgVGVzdCBSUCIsInJwX2lkIjoidGVzdC1ycC0wMDEiLCJvcmlnaW5hbF9hc3NlcnRpb24iOiJiYXNlNjRfZW5jb2RlZF9zYW1sX2Fzc2VydGlvbl9oZXJlIiwiaWF0IjoxNzA5NTY4MDAwfQ=="
},
"contacts": {
"mobile": "+390000000000"
},
"certificate": {
"fullData": false,
"otpType": "SMS",
"password": "Password01",
"securityCode": "Security01",
"type": "DISPOSABLE"
}
}'Validation successful. The holder data is valid and the LRA is authorized for the specified eID type. Response body is empty.
No contentRequest
Enrolls a disposable certificate for the holder. Returns certIdOtp and deviceCode required by sendOtp and validate. See enroll.
First name of the holder (UTF-8). See allowed characters rules.
Last name of the holder (UTF-8). See allowed characters rules.
Type of identification document. Together with identificationCode and identificationCountry it composes the certificate serial number.
Unique code of the identification document. Together with identificationType and identificationCountry it composes the certificate serial number. See allowed characters rules.
Country where identification was issued. ISO 3166-1 alpha-2 code.
Date of birth in ISO 8601 format (yyyy-MM-dd). Example: 1980-01-01. Note: the date is not validated semantically by the backend.
City of birth. See allowed characters rules.
Required if otpType=SMS (provide mobile) or otpType=EMAIL (provide email).
Identity document information.
Not required if one of the following conditions is true:
DisposableIdentification.identificationTypeisAMLDisposableHolder.identificationTypeis one of:PASSPORT,PERSONAL_NUMBER,NATIONAL_IDENTITY_CARD,DRIVING_LICENSE,RESIDENCE_PERMIT,RESIDENCE_PERMIT_TEMP,EMBASSY_DOCUMENT
Identity document type. See allowed values.
Date on which the document was issued. ISO 8601 format yyyy-MM-dd. Other formats are not accepted.
Country where document was issued. ISO 3166-1 alpha-2 code.
Certificate security code.
Disposable certificate type. See allowed values. Default: DISPOSABLE.
OTP delivery method. See allowed values. Default: SMS.
- Production environmenthttps://lean.namirialtsp.com/RAWS_DISPOSABLE/api/certificate/{lraId}/enroll
- Development and testing environmenthttps://lean.test.namirialtsp.com/RAWS_DISPOSABLE/api/certificate/{lraId}/enroll
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
- otpType=SMS
- otpType=EMAIL
curl -i -X POST \
-u <username>:<password> \
'https://lean.namirialtsp.com/RAWS_DISPOSABLE/api/certificate/{lraId}/enroll' \
-H 'Content-Type: application/json' \
-d '{
"disposableHolder": {
"firstName": "Mario",
"lastName": "Rossi",
"identificationType": "ITALIAN_TAX_CODE",
"identificationCode": "RSSMRA80A01H501U",
"identificationCountry": "IT",
"birthDate": "1980-01-01",
"birthCity": "Roma"
},
"disposableDoc": {
"documentType": "CI",
"documentNr": "AA0000000",
"documentIssuer": "Comune di Roma",
"documentIssuerDate": "2020-01-01",
"documentIssuerCountry": "IT",
"documentExpirationDate": "2030-01-01"
},
"disposableCertificate": {
"password": "Password01",
"securityCode": "Security01",
"type": "DISPOSABLE",
"otpType": "SMS"
},
"disposableContacts": {
"mobile": "+390000000000"
}
}'Issued disposable certificate. See DisposableIssued.
Certificate type, as specified in disposableCertificate.type.
OTP certificate identifier. Pass this value to sendOtp and validate. null if otpType=NO_OTP or otpType=EXTERNAL_OTP.
{ "cert": "string", "certType": "DISPOSABLE", "certUsageLimit": "string", "certSerialNumber": "60F2373BFCEB569E", "certIdOtp": 1234567, "deviceCode": "RHIDP0000000000000" }
Request
Enrolls a disposable certificate using an eID assertion. Returns certificate details and OTP identifier (if otpType=SMS or otpType=EMAIL). See enrollDisposableWitheIDAssertion and How to enroll with eID assertion.
eID assertion holder data. The country and eIDType together identify the eID method (e.g., IT-SPID, IT-EIDNAMIRIAL, AT-EID). The assertion format depends on the eID type.
Country code of the eID provider. ISO 3166-1 alpha-2 code. Together with eIDType identifies the eID method (e.g., IT-SPID, IT-EIDNAMIRIAL, AT-EID).
Type of eID assertion. Together with country identifies the eID method (e.g., IT-SPID, IT-EIDNAMIRIAL, AT-EID). Allowed values depend on LRA configuration.
Certificate configuration. Specifies password, security code, certificate type, and OTP type.
Certificate security code.
Disposable certificate type. See allowed values. Default: DISPOSABLE.
OTP delivery method. See allowed values. Default: SMS.
Contact information. Required if certificate.otpType=SMS (provide mobile) or certificate.otpType=EMAIL (provide email).
- Production environmenthttps://lean.namirialtsp.com/RAWS_DISPOSABLE/api/certificate/{lraId}/enrollDisposableWitheIDAssertion
- Development and testing environmenthttps://lean.test.namirialtsp.com/RAWS_DISPOSABLE/api/certificate/{lraId}/enrollDisposableWitheIDAssertion
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
-u <username>:<password> \
'https://lean.namirialtsp.com/RAWS_DISPOSABLE/api/certificate/{lraId}/enrollDisposableWitheIDAssertion' \
-H 'Content-Type: application/json' \
-d '{
"eidAssertionHolder": {
"country": "IT",
"eIDType": "EIDNAMIRIAL",
"assertion": "eyJnaXZlbl9uYW1lIjoiTWFyaW8iLCJmYW1pbHlfbmFtZSI6IlJvc3NpIiwicGVyc29uX2lkZW50aWZpZXIiOiJUSU5JVC1SU1NNUkE4MEEwMUg1MDFVIiwiYmlydGhfZGF0ZSI6IjE5ODAtMDEtMDEiLCJkb2NfdHlwZSI6Ik5BVElPTkFMX0lERU5USVRZX0NBUkQiLCJjb3VudHJ5IjoiSVQiLCJycF9uYW1lIjoiTmFtaXJpYWwgVGVzdCBSUCIsInJwX2lkIjoidGVzdC1ycC0wMDEiLCJvcmlnaW5hbF9hc3NlcnRpb24iOiJiYXNlNjRfZW5jb2RlZF9zYW1sX2Fzc2VydGlvbl9oZXJlIiwiaWF0IjoxNzA5NTY4MDAwfQ=="
},
"contacts": {
"mobile": "+390000000000"
},
"certificate": {
"fullData": false,
"otpType": "SMS",
"password": "Password01",
"securityCode": "Security01",
"type": "DISPOSABLE"
}
}'Disposable certificate enrolled successfully. Returns certificate details and OTP identifier (if applicable). See DisposableIssued.
Certificate type, as specified in disposableCertificate.type.
OTP certificate identifier. Pass this value to sendOtp and validate. null if otpType=NO_OTP or otpType=EXTERNAL_OTP.
{ "cert": "string", "certType": "DISPOSABLE", "certUsageLimit": "string", "certSerialNumber": "60F2373BFCEB569E", "certIdOtp": 1234567, "deviceCode": "RHIDP0000000000000" }