# Lacuna Software documentation > Developer documentation for Lacuna Software's digital certificate, digital signature and PKI products: Web PKI, Rest PKI Core, PKI SDK, PKI Express, Signer, Amplia and related services. Every link below points at a page's Markdown version: the page URL plus ".md". For each product, the quick reference comes first: install, configuration, core operations, errors and samples on one page. Not sure which product fits? Read "Choosing a product" under Welcome. Pages marked (pt-br) are not yet available in English and link to the Portuguese version. All pages below, concatenated: https://docs.lacunasoftware.com/llms-full.txt ## Welcome - [Welcome to Lacuna Docs](https://docs.lacunasoftware.com/en-us/articles/welcome.md): Welcome to the unified Lacuna Software documentation portal for developers, with technical details on each product and a link to the PKI Solutions Guide. - [Choosing a product](https://docs.lacunasoftware.com/en-us/articles/welcome/choosing-a-product.md): Which Lacuna product fits your integration: certificates in the browser, cloud or on-premises signing, document workflows, or issuing certificates. - [Using these docs with AI agents](https://docs.lacunasoftware.com/en-us/articles/welcome/using-with-ai-agents.md): How AI coding agents read these docs: llms.txt, a Markdown version of every page, quick references, OpenAPI specs, and the demo and samples catalogs. - [Lacuna product licensing](https://docs.lacunasoftware.com/en-us/articles/welcome/licensing.md): How to obtain, activate, renew and use the licenses of Lacuna Software products: Web PKI, Rest PKI, Rest PKI Core, PKI SDK, PKI Express, Signer and Bulk Signer. - [Contributing](https://docs.lacunasoftware.com/en-us/articles/welcome/contributing.md): How to contribute to the Lacuna documentation: create an issue to report errors or gaps, and follow the guidelines for new articles. No pull requests yet. - [Privacy Policy](https://docs.lacunasoftware.com/en-us/articles/welcome/privacy-policy.md): Privacy Policy of Lacuna Software Ltda: the personal data collected through its products and websites, how it is used and shared, and your rights. ## Web PKI - [Web PKI quick reference](https://docs.lacunasoftware.com/en-us/articles/web-pki/quick-reference.md): Web PKI on one page: install the JavaScript library, set the license, list and read certificates, sign in the browser and handle errors. - [Lacuna Web PKI](https://docs.lacunasoftware.com/en-us/articles/web-pki.md): Lacuna Web PKI lets web applications use digital certificates through JavaScript: list certificates, read their properties and encoding, and sign data. - [Web PKI - Frequently Asked Questions](https://docs.lacunasoftware.com/en-us/articles/web-pki/faq.md): Frequently asked questions for developers about the Web PKI component: signData and signHash, signature output, digital signatures and SSL connections. - [How can I perform a digital signature with Web PKI?](https://docs.lacunasoftware.com/en-us/articles/web-pki/faq/digital-signature.md): Answers how to perform a digital signature with Web PKI by pointing to the Web signatures article. - [What is the signature format outputted by the functions signData and signHash?](https://docs.lacunasoftware.com/en-us/articles/web-pki/faq/sign-data-output.md): Explains that Web PKI signData and signHash return the raw output of the signature algorithm in Base64, not a CMS/CAdES, XAdES or PAdES signature. - [What is the difference between the functions signData and signHash?](https://docs.lacunasoftware.com/en-us/articles/web-pki/faq/sign-data-vs-hash.md): Difference between the Web PKI functions signData and signHash, explained through the four steps of the RSA signature algorithm. - [Does Web PKI support establishing SSL connections with the user's certificate?](https://docs.lacunasoftware.com/en-us/articles/web-pki/faq/ssl.md): Whether Web PKI can establish SSL connections with the user's certificate (yes, with sendAuthenticatedRequest) and how to transmit an NFe signed in the browser. - [Web PKI API](https://docs.lacunasoftware.com/en-us/articles/web-pki/api-reference.md): Web PKI API reference with detailed documentation for each method of the LacunaWebPKI class, plus a link to the API versions. - [API Versions](https://docs.lacunasoftware.com/en-us/articles/web-pki/api-reference/versions.md): How to use the requiredApiVersion parameter of the Web PKI init() method to request a specific API version and avoid unnecessary component updates. - [privacy-policy](https://docs.lacunasoftware.com/en-us/articles/web-pki/privacy-policy.md): Privacy Policy of the Web PKI plugin, owned by Lacuna Software Ltda, on how personal information is collected, used, shared and secured. - [Callbacks and AngularJS](https://docs.lacunasoftware.com/en-us/articles/web-pki/angularjs.md): How to pass the AngularJS $scope or the Angular2+ NgZone to the Web PKI init() method so changes made in callbacks are reflected on the view. - [Asynchronous calls](https://docs.lacunasoftware.com/en-us/articles/web-pki/async.md): How asynchronous calls work in Web PKI, using listCertificates() as an example: methods return a Promise instead of blocking the browser. - [Authenticated Request](https://docs.lacunasoftware.com/en-us/articles/web-pki/auth-request.md): Sending web requests authenticated with the user's digital certificate through mutual SSL/TLS with Web PKI, useful with Receita Federal, SEFAZ and city government services. - [Using a customized installation page](https://docs.lacunasoftware.com/en-us/articles/web-pki/brand.md): How to use a customized installation page in Web PKI by passing the brand option to the init() method. - [Browser support](https://docs.lacunasoftware.com/en-us/articles/web-pki/browser-support.md): Browsers supported by Web PKI: Chrome 44+, Firefox 50+, IE9+, Microsoft Edge 42+ and Brave 1.2+, with the operating systems each one runs on. - [Certificate properties](https://docs.lacunasoftware.com/en-us/articles/web-pki/cert-properties.md): Properties of the CertificateModel objects returned by Web PKI listCertificates(), such as subject name, email, validity end and PKI Brazil fields. - [Customizing certificate selection](https://docs.lacunasoftware.com/en-us/articles/web-pki/cert-select.md): How to customize the text shown for each certificate in a Web PKI selection list using selectOptionFormatter and the certificate properties. - [Certificate pre-validation](https://docs.lacunasoftware.com/en-us/articles/web-pki/cert-validation.md): How to pre-validate the certificate selected in Web PKI, based on its properties, before signing or logging in. It is not the full certificate validation. - [Customizing the behavior when the component is not installed](https://docs.lacunasoftware.com/en-us/articles/web-pki/customizing-not-installed.md): How to customize what Web PKI init() does when the browser is unsupported or the components are missing or outdated, instead of the default redirect. - [Custom RestPKI configuration](https://docs.lacunasoftware.com/en-us/articles/web-pki/customizing-restpki-url.md): How to set the restPkiUrl option in Web PKI init() when using a non-standard Rest PKI instance other than pki.rest. Not needed without Rest PKI. - [Default fail callback](https://docs.lacunasoftware.com/en-us/articles/web-pki/default-error-callback.md): How to register a default fail callback through defaultFail in Web PKI init(), and what each Web PKI error code means. - [Certificate filters](https://docs.lacunasoftware.com/en-us/articles/web-pki/filters.md): How to filter the certificates shown in Web PKI by passing a filter to listCertificates(), and why showing all and validating the selection is recommended. - [Get started](https://docs.lacunasoftware.com/en-us/articles/web-pki/get-started.md): Get started with Web PKI: check the prerequisites (a certificate in the Windows repository), include the JavaScript library and write the first code. - [ICPBravoAccess Replacement](https://docs.lacunasoftware.com/en-us/articles/web-pki/icpbravo-replacement.md): How to replace the discontinued ICPBravoAccess library with the Web PKI plugin without changing your existing JavaScript code. - [Installation and distribution of WEB PKI components via GPO](https://docs.lacunasoftware.com/en-us/articles/web-pki/installation-webpki-gpo.md): Automatic installation and distribution of the Web PKI plugins through GPO from a shared folder, with the Chrome and Firefox registry keys. - [Licensing](https://docs.lacunasoftware.com/en-us/articles/web-pki/licensing.md): How to set the Web PKI license, in binary or JSON format, in the LacunaWebPKI constructor. A license is required on pages outside localhost. - [Logs - Web PKI](https://docs.lacunasoftware.com/en-us/articles/web-pki/logs.md): How to enable verbose logging in Web PKI and where to find the native app log files on Windows, Mac and Linux. - [Security Attributes - Web PKI](https://docs.lacunasoftware.com/en-us/articles/web-pki/security.md): Security attributes of Web PKI: centralized installation over strict HTTPS, components signed by the browser stores, and unobfuscated code. - [Updates - Web PKI](https://docs.lacunasoftware.com/en-us/articles/web-pki/update.md): Why and how to update the Web PKI JavaScript library in your web application, using the CDN link or the NPM web-pki package. The component updates itself. ## Rest PKI (legacy) - [Rest PKI quick reference (legacy)](https://docs.lacunasoftware.com/en-us/articles/rest-pki/quick-reference.md): Rest PKI (legacy) on one page: client packages, access token, PAdES, CAdES and XML signatures with Web PKI, validation, timestamps and errors. - [Rest PKI](https://docs.lacunasoftware.com/en-us/articles/rest-pki.md): Rest PKI, a legacy product that still gets bug and security fixes: a cloud service for digital signatures and certificate authentication from any language. - [Using Rest PKI on PHP](https://docs.lacunasoftware.com/en-us/articles/rest-pki/php.md): Using Rest PKI on PHP: samples for PHP 5.5+, 5.3/5.4 and 5.2, and the lacuna/restpki-client Composer package for PHP 5.5+. - [How to convert from PKI Express to REST PKI in PHP](https://docs.lacunasoftware.com/en-us/articles/rest-pki/php/convert-from-express.md): Converting a PHP application from PKI Express to Rest PKI, with a table of equivalent signature policy names between the two products. - [PHP 5.5+ samples project](https://docs.lacunasoftware.com/en-us/articles/rest-pki/php/current.md): PHP 5.5+ samples project (including 7.x) showing Rest PKI used with Web PKI, with the Composer steps to run it locally from GitHub. - [PHP 5.3/5.4 samples project](https://docs.lacunasoftware.com/en-us/articles/rest-pki/php/legacy.md): PHP 5.3/5.4 samples project showing Rest PKI used with Web PKI, to use only when the PHP 5.5+ project is not an option, with steps to run it. - [PHP 5.2 samples project](https://docs.lacunasoftware.com/en-us/articles/rest-pki/php/legacy52.md): PHP 5.2 samples project showing Rest PKI used with Web PKI, to use only when neither the PHP 5.5+ nor the PHP 5.3/5.4 project can be used. - [Using Rest PKI on Java](https://docs.lacunasoftware.com/en-us/articles/rest-pki/java.md): Using Rest PKI on Java: Spring MVC samples for Java 7+ and Java 6, and the Maven restpki-client libraries for each Java version. - [Generating alphanumeric codes on Java](https://docs.lacunasoftware.com/en-us/articles/rest-pki/java/alpha-codes.md): Generating the alphanumeric document verification code printed on a printer-friendly copy of a signed file, in Java applications using Rest PKI. - [How to convert from PKI Express to REST PKI in Java](https://docs.lacunasoftware.com/en-us/articles/rest-pki/java/convert-from-express.md): Converting a Java application from PKI Express to Rest PKI, with a table of equivalent signature policy names between the two products. - [Java 6 Spring MVC samples project](https://docs.lacunasoftware.com/en-us/articles/rest-pki/java/mvc-java6.md): Java 6 Spring MVC samples project showing Rest PKI used with Web PKI, for Java 6 only, with the steps to run it and set up an access token. - [Java 7+ Spring MVC samples project](https://docs.lacunasoftware.com/en-us/articles/rest-pki/java/mvc.md): Java 7+ Spring MVC samples project showing Rest PKI used with Web PKI on a Spring MVC web app, with the Gradle steps to run it. - [Using Rest PKI on .NET](https://docs.lacunasoftware.com/en-us/articles/rest-pki/dotnet.md): Using Rest PKI on .NET: ASP.NET MVC, Web Forms and Core sample projects, and the Lacuna.RestPki.Client NuGet package: which version fits each platform and which exceptions it throws. - [Generating alphanumeric codes on .NET](https://docs.lacunasoftware.com/en-us/articles/rest-pki/dotnet/alpha-codes.md): Generating the alphanumeric document verification code printed on a printer-friendly copy of a signed file, in .NET applications using Rest PKI. - [ASP.NET MVC samples project](https://docs.lacunasoftware.com/en-us/articles/rest-pki/dotnet/mvc.md): ASP.NET MVC samples project showing Rest PKI used with Web PKI on ASP.NET MVC 5: how to run it from GitHub and where each feature sample lives. - [ASP.NET Core samples project](https://docs.lacunasoftware.com/en-us/articles/rest-pki/dotnet/netcore.md): ASP.NET Core samples project showing Rest PKI used with Web PKI on ASP.NET Core: how to run it from GitHub and where each feature sample lives. - [ASP.NET Web Forms samples project](https://docs.lacunasoftware.com/en-us/articles/rest-pki/dotnet/web-forms.md): ASP.NET Web Forms samples project showing Rest PKI used with Web PKI: how to run it from GitHub and where each feature sample lives. - [Using Rest PKI on Python](https://docs.lacunasoftware.com/en-us/articles/rest-pki/python.md): Using Rest PKI on Python with the restpki-client PyPI package, which supports Python 2 and 3, starting from the Python Flask samples project. - [How to convert from PKI Express to REST PKI in Python](https://docs.lacunasoftware.com/en-us/articles/rest-pki/python/convert-from-express.md): Converting a Python application from PKI Express to Rest PKI, with a table of equivalent signature policy names between the two products. - [Python Flash samples project](https://docs.lacunasoftware.com/en-us/articles/rest-pki/python/flask.md): Python Flask samples project showing Rest PKI used with Web PKI on a Flask app, with the pip install and flask run steps and a project map. - [Using Rest PKI on Node.js](https://docs.lacunasoftware.com/en-us/articles/rest-pki/nodejs.md): Using Rest PKI on Node.js: the MVC and SPA samples projects and the restpki-client NPM package, with its package.json entry and install steps. - [How to convert from PKI Express to REST PKI in NodeJs](https://docs.lacunasoftware.com/en-us/articles/rest-pki/nodejs/convert-from-express.md): Converting a Node.js application from PKI Express to Rest PKI, with a table of equivalent signature policy names between the two products. - [Node.js MVC samples project](https://docs.lacunasoftware.com/en-us/articles/rest-pki/nodejs/mvc.md): Node.js MVC samples project showing Rest PKI used with Web PKI following the Model-View-Controller pattern, with steps to run it and a project map. - [Node.js SPA samples project](https://docs.lacunasoftware.com/en-us/articles/rest-pki/nodejs/spa.md): Node.js SPA samples project showing Rest PKI used with Web PKI as a Single Page Application with AngularJS on the frontend, with steps to run it. - [Using Rest PKI on Ruby](https://docs.lacunasoftware.com/en-us/articles/rest-pki/ruby.md): Using Rest PKI on Ruby with the rest_pki gem, installed through Bundler or the command line, starting from the Ruby on Rails samples project. - [How to convert from PKI Express to REST PKI in Ruby](https://docs.lacunasoftware.com/en-us/articles/rest-pki/ruby/convert-from-express.md): Converting a Ruby application from PKI Express to Rest PKI, with a table of equivalent signature policy names between the two products. - [Ruby on Rails samples project](https://docs.lacunasoftware.com/en-us/articles/rest-pki/ruby/rails.md): Ruby on Rails samples project showing Rest PKI used with Web PKI on a Rails app, with the bundle install and rails server steps and a project map. - [Rest PKI on-premises](https://docs.lacunasoftware.com/en-us/articles/rest-pki/on-premises.md): Hosting your own Rest PKI instance when you cannot use the cloud service: Windows Server and Azure App Service are supported, Linux uses PKI Express. - [Recover admin password - Rest PKI](https://docs.lacunasoftware.com/en-us/articles/rest-pki/on-premises/admin-recover.md): Recovering the Admin password of an on-premises Rest PKI instance by running a SQL update that resets it, then changing it after signing in. - [Rest PKI - Setup on Azure App Service](https://docs.lacunasoftware.com/en-us/articles/rest-pki/on-premises/azure-setup.md): Installing an on-premises Rest PKI instance on Azure App Service, which needs the Azure binaries package and a PKI SDK binary license. - [Change license - Rest PKI](https://docs.lacunasoftware.com/en-us/articles/rest-pki/on-premises/change-license.md): Changing the Lacuna PKI SDK license of an on-premises Rest PKI instance from Administration, System status, using the Base64 binary license. - [Checking the version of Rest PKI](https://docs.lacunasoftware.com/en-us/articles/rest-pki/on-premises/check-version.md): Checking the installed version of an on-premises Rest PKI instance through its api/system/info URL, which returns an XML, and where to update it. - [Configure proxy - Rest PKI](https://docs.lacunasoftware.com/en-us/articles/rest-pki/on-premises/configure-proxy.md): Configuring a proxy for outbound internet access on an on-premises Rest PKI instance, using the proxy settings in the AppSettings.config file. - [Configure storage - Rest PKI](https://docs.lacunasoftware.com/en-us/articles/rest-pki/on-premises/configure-storage.md): Configuring where an on-premises Rest PKI instance stores temporary files (local, Azure Storage or Amazon S3), required when running on several servers. - [Configure Timestamping - Rest PKI](https://docs.lacunasoftware.com/en-us/articles/rest-pki/on-premises/configure-timestamping.md): Configuring timestamping on an on-premises Rest PKI instance for policies such as PAdES-T and CAdES Ad-RT, using an external TSP service or the Rest PKI cloud. - [Database model update - Rest PKI](https://docs.lacunasoftware.com/en-us/articles/rest-pki/on-premises/database-update.md): Updating the database of an on-premises Rest PKI instance, automatically or manually, and how the choice depends on whether the system owns the database or only reads and writes. - [Server right-sizing guide - Rest PKI](https://docs.lacunasoftware.com/en-us/articles/rest-pki/on-premises/sizing.md): Right-sizing servers for an on-premises Rest PKI instance, with a link to a Rest PKI performance test document available in Portuguese. - [Rest PKI - Setup on Windows Server](https://docs.lacunasoftware.com/en-us/articles/rest-pki/on-premises/windows-setup.md): Requirements for installing Rest PKI on Windows Server (OS, SQL Server or PostgreSQL), the files and PKI SDK license needed, and install and update links. - [Installing Rest PKI on Windows Server](https://docs.lacunasoftware.com/en-us/articles/rest-pki/on-premises/windows-setup/install.md): Installing an on-premises Rest PKI instance on Windows Server; this documentation is migrating, so it points to chapter 2 of the setup manual. - [Troubleshooting issues on Rest PKI setup](https://docs.lacunasoftware.com/en-us/articles/rest-pki/on-premises/windows-setup/troubleshoot.md): Diagnosing problems when installing or updating Rest PKI on Windows Server; the documentation is migrating, so it points to chapter 4 of the manual. - [Updating Rest PKI on Windows Server](https://docs.lacunasoftware.com/en-us/articles/rest-pki/on-premises/windows-setup/update.md): Updating an on-premises Rest PKI instance on Windows Server: back up, replace the site files except AppSettings.config and Connections.config. - [Trobleshooting issues with Rest PKI](https://docs.lacunasoftware.com/en-us/articles/rest-pki/troubleshoot.md): Troubleshooting articles for developers using Rest PKI, including the Could not get pending signature error. - [Error "Could not get pending signature"](https://docs.lacunasoftware.com/en-us/articles/rest-pki/troubleshoot/could-not-get-pending-sig.md): Diagnosing the Could not get pending signature error in web remote signatures with Rest PKI and Web PKI, common with on-premises instances. - [Certificate authentication - Rest PKI](https://docs.lacunasoftware.com/en-us/articles/rest-pki/certificate-authentication.md): Certificate authentication with Rest PKI (legacy) and Web PKI, for existing integrations: start the authentication, sign the token in the browser, complete it and read the user's certificate. - [Rest PKI changelog](https://docs.lacunasoftware.com/en-us/articles/rest-pki/changelog.md): Release history of Rest PKI, listing the changes of each version and whether it updates the database model, the latest being 1.33.9 (2026-09-08). - [Rest PKI - Configure Date and Time](https://docs.lacunasoftware.com/en-us/articles/rest-pki/configure-date.md): Changing the culture, time zone and date format used for dates on PDF signatures made with Rest PKI, from the Region and Date area of your account. - [Supported tags on PAdES visual representation](https://docs.lacunasoftware.com/en-us/articles/rest-pki/pades-tags.md): Tags supported in the PAdES visual representation of Rest PKI signatures, such as name, national ID, email and issuer, plus ICP-Brasil specific tags. - [privacy-policy](https://docs.lacunasoftware.com/en-us/articles/rest-pki/privacy-policy.md): Privacy Policy of the Rest PKI site pki.rest, operated by Lacuna Software: how personal information is collected, used and secured, effective May 25, 2018. - [Requesting timestamps from Rest PKI](https://docs.lacunasoftware.com/en-us/articles/rest-pki/requesting-timestamps.md): Using Rest PKI as an ICP-Brasil timestamp provider over the TSP protocol (RFC 3161) or the REST API, with an access token from the Rest PKI site. - [REST PKI Return Codes](https://docs.lacunasoftware.com/en-us/articles/rest-pki/return-codes.md): HTTP status codes returned by Rest PKI, including 401 for an invalid access token and 422 with return codes such as EntityNotFound. - [Rest PKI samples - Availability per project](https://docs.lacunasoftware.com/en-us/articles/rest-pki/samples-availability.md): Matrix of which Rest PKI feature samples are available in each samples project (PHP, .NET, Python, Java, Node.js, Ruby on Rails), with links. - [Validate signatures - Rest PKI](https://docs.lacunasoftware.com/en-us/articles/rest-pki/validate-signatures.md): Validating PAdES, CAdES and XML signatures with Rest PKI (legacy), for existing integrations: the signature explorers, validation policies, security contexts and the results per signer. ## Rest PKI Core - [Rest PKI Core quick reference](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/quick-reference.md): Rest PKI Core on one page: client packages, API key and endpoint, signature sessions, webhooks, timestamps, liveness, errors and test resources. - [Rest PKI Core](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core.md): Rest PKI Core adds signatures, validation, timestamping and biometric identity checks to your apps through a REST API, as a service or your own instance. - [Integration Guide - Rest PKI Core](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/integration.md): Entry point of the Rest PKI Core integration guide: start with Get started, then follow the guide for signature sessions or biometric sessions. - [Get started on integration - Rest PKI Core](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/integration/get-started.md): From nothing to a first working call to Rest PKI Core: get the endpoint and an API key, set up the client library or REST API, and make a first call. - [Rest PKI Client Tool](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/integration/client-tool.md): Rest PKI client tool (rpkitool): a command line application to sign PDFs and run other operations in desktop apps using Rest PKI Core. - [Client tool command: **allocate-keys**](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/integration/client-tool/allocate-keys.md): Reference for the rpkitool allocate-keys command, which allocates one or more document keys and writes them to stdout, one per line. - [Client tool command: **list-certs**](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/integration/client-tool/list-certs.md): Reference for the rpkitool list-certs command, which lists certificates in the current user's store, filtered by ICP-Brasil likeness or by CPF. - [Client tool command: **sign**](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/integration/client-tool/sign.md): Reference for the rpkitool sign command, which signs a document with one of the user's certificates, chosen by CPF or thumbprint. - [Signature sessions - Rest PKI Core](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/integration/signature-sessions.md): Signature sessions let Rest PKI Core users sign on a hosted page: your app gets a redirectUrl, sends the user there and fetches the signed documents. - [Background processing - Signature sessions](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/integration/signature-sessions/background-processing.md): How to turn on background processing in Rest PKI Core signature sessions so users are redirected to your app without waiting for document processing. - [Certificate requirements - Signature sessions](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/integration/signature-sessions/certificate-requirements.md): How to restrict the certificates users can choose in a Rest PKI Core signature session with certificate requirements, such as a crypto device. - [Document metadata - Signature sessions](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/integration/signature-sessions/document-metadata.md): How to associate metadata, each with a name and one or more values, to the documents created in a Rest PKI Core signature session. - [File validation - Signature sessions](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/integration/signature-sessions/file-validation.md): How to validate the files users choose in Rest PKI Core signature sessions, including a file naming rule given as a regular expression. - [PDF/A conversion - Signature sessions](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/integration/signature-sessions/pdf-a-conversion.md): How to have Rest PKI Core convert PDFs to PDF/A right before signing, in signature sessions; needs version 4.2.0 and a configured conversion service. - [Biometric sessions - Rest PKI Core](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/integration/bio-sessions.md): Rest PKI Core biometric sessions: liveness, enrollment, facial authentication and identification, and ID document capture, by redirect or widget. - [Biometric sessions - Rest PKI Core - .NET/C# Client Lib](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/integration/bio-sessions/client-libs/dotnet.md): How to set up the Rest PKI Core .NET library (.NET Standard 2.0) and use IRestBioService for biometric sessions in an ASP.NET Core application. - [Geolocation configuration (Geolocation) - Rest PKI Core](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/integration/bio-sessions/configs/geolocation.md): Setting up the geolocation capture (latitude and longitude) in Rest PKI Core biometric sessions, which is off by default. - [Subject identifier formats configuration (SubjectIdentifier) - Rest PKI Core](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/integration/bio-sessions/configs/subject-identifier-formats.md): How to restrict on the dashboard the SubjectIdentifier formats (CPF, CNPJ and e-mail) accepted in Rest PKI Core biometric sessions. - [Facial authentication (1:1 Authentication) - Rest PKI Core](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/integration/bio-sessions/authentication.md): 1:1 facial authentication in Rest PKI Core: compares the face captured with a liveness check to a biometric already enrolled. See how to create the session. - [Biometric enrollment (Enrollment) - Rest PKI Core](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/integration/bio-sessions/enrollment.md): Biometric enrollment in Rest PKI Core: registers the user's face with a liveness check and stores it encrypted. See how to create the session. - [Document capture (IdentificationDocumentCapture) - Rest PKI Core](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/integration/bio-sessions/id-capture.md): ID document capture in Rest PKI Core: gets the front, the back and the face crop of an identification document in a biometric session. - [Facial identification (1:N Identification) - Rest PKI Core](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/integration/bio-sessions/identification.md): 1:N facial identification in Rest PKI Core: searches a database of enrollments for the captured face to find whom it belongs to. It may not be enabled. - [Liveness - Rest PKI Core](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/integration/bio-sessions/liveness.md): Liveness check in Rest PKI Core: verifies that a real person is in front of the screen, detecting fraud attempts with photos, videos or masks. - [Two-step signatures - Rest PKI Core](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/integration/two-step-signatures.md): Sign with Rest PKI Core on your own page with Web PKI, or with a key held by your server: PrepareSignatureAsync returns the hash, CompleteSignatureAsync ends it. - [Error codes - Rest PKI Core](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/integration/error-codes.md): API error codes returned by Rest PKI Core, such as DocumentNotFound and BadSignatureSessionOperation, with the meaning of each. - [Referencing files - Rest PKI Core](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/integration/file-referencing.md): How to reference files by path, bytes, stream or URL when calling Rest PKI Core APIs, for instance in a signature session with predefined documents. - [Webhooks - Rest PKI Core](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/integration/webhooks.md): Webhooks of Rest PKI Core: event notifications sent to your app as HTTP POST requests, such as DocumentSignatureCompleted, with a sample payload. - [Rest PKI Core on-premises](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/on-premises.md): Rest PKI Core as a service on core.pki.rest or your own instance, with supported platforms: Windows Server, Linux, Docker and Azure App Services. - [Rest PKI Core - Setup on Linux](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/on-premises/linux.md): Setup of Rest PKI Core on Linux: supported distributions (Ubuntu Server and Rocky Linux), with links to the update and troubleshooting guides. - [Troubleshooting issues on your Rest PKI Core instance (Linux)](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/on-premises/linux/troubleshoot.md): Troubleshooting a Rest PKI Core instance on Linux, starting with checking the system logs. - [Checking the system logs (Linux) - Rest PKI Core](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/on-premises/linux/troubleshoot/check-logs.md): How to read Rest PKI Core logs on Linux with journalctl, which queries the systemd journal, including follow mode and filtering by time. - [Installing Rest PKI Core on Rocky Linux](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/on-premises/linux/install-rocky.md): How to install an on-premises instance of Rest PKI Core on Rocky Linux 8 or later, with its prerequisites and the ASP.NET Core Runtime 10.0. - [Installing Rest PKI Core on Ubuntu Server](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/on-premises/linux/install-ubuntu.md): How to install an on-premises instance of Rest PKI Core on Ubuntu Server, with its prerequisites and the ASP.NET Core Runtime 10.0 for each Ubuntu version. - [Updating Rest PKI Core on Linux](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/on-premises/linux/update.md): How to update an on-premises Rest PKI Core installation on Linux: download the package, stop the service, replace the files and start it again. - [Rest PKI Core - Command-line tool](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/on-premises/tool.md): Command-line tool of on-premises Rest PKI Core instances for administrative tasks: how to run a command from the installation directory or on Docker. - [Rest PKI Core command: **gen-enc-key**](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/on-premises/tool/gen-enc-key.md): Reference for the Rest PKI Core gen-enc-key command, which generates a 256-bit encryption key for the General__EncryptionKey setting. - [Rest PKI Core command: **hash-root-pass**](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/on-premises/tool/hash-root-pass.md): Reference for the Rest PKI Core hash-root-pass command, which computes a salted hash of the root password for the General__RootPasswordHash setting. - [Rest PKI Core command: **test-email**](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/on-premises/tool/test-email.md): Reference for the Rest PKI Core test-email command, which tests the email configuration by sending a test message to a given address. - [Rest PKI Core command: **update-db**](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/on-premises/tool/update-db.md): Reference for the Rest PKI Core update-db command, which applies migrations to the database model when running without db_owner privileges. - [Update Rest PKI Core from 2.x to 3.0](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/on-premises/update-30.md): Extra steps to update Rest PKI Core from 2.x to 3.0, which moves to ASP.NET Core 8.0: install the new runtime before updating an on-premises instance. - [Update Rest PKI Core from 3.x to 4.0](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/on-premises/update-40.md): Extra steps to update Rest PKI Core from 3.x to 4.0, including whether to create database indexes manually first on instances with millions of records. - [Update Rest PKI Core from 4.x to 5.0](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/on-premises/update-50.md): Extra steps to update Rest PKI Core from 4.x to 5.0, which moves to ASP.NET Core 10.0: nothing to install on Docker or Azure, a new runtime elsewhere. - [Rest PKI Core - Setup on Azure App Services](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/on-premises/azure.md): Setup of Rest PKI Core on Azure App Services, with links to the installation and update guides. - [Installing Rest PKI Core on Azure App Services](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/on-premises/azure/install.md): How to install an on-premises instance of Rest PKI Core on an Azure App Service, with the Azure CLI, a SQL Server and a Linux App Service Plan. - [Updating Rest PKI Core on Azure App Services](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/on-premises/azure/update.md): How to update Rest PKI Core on Azure App Services: import the new Docker image into your container registry and select the new tag in Deployment Center. - [Checking the version of Rest PKI Core](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/on-premises/check-version.md): How to check the installed version of an on-premises Rest PKI Core instance by opening its /api/system/info URL in a browser. - [Blob Storage Configuration](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/on-premises/configure-blob-storage.md): BlobStorage settings of Rest PKI Core: storing files in the file system or in an Azure Storage Account container, with examples for each. - [Configure email sending - Rest PKI Core](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/on-premises/configure-email.md): How to enable email sending in Rest PKI Core with the Email settings: SMTP server, credentials, sender, port and SSL, with configuration examples. - [Configure OpenID Connect - Rest PKI Core](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/on-premises/configure-oidc.md): How to configure OpenID Connect for Rest PKI Core user management with a GrantID subscription, creating the API connection and frontend application. - [Timestamping configuration](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/on-premises/configure-timestamp.md): Timestamping settings of Rest PKI Core, including how to migrate the configuration from 1.x to 2.x using the Aliases field to keep request history. - [Creating a subscription on Rest PKI Core](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/on-premises/create-sub.md): How to create a subscription in Rest PKI Core, each with its own users, applications, API keys and security contexts, and add an administrative user. - [Rest PKI Core - Setup on Docker](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/on-premises/docker.md): How to install an on-premises Rest PKI Core on Docker with the lacunasoftware/restpkicore image, its tags and the storage, database and licenses needed. - [Logging - Rest PKI Core](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/on-premises/logging.md): Logging in Rest PKI Core: the destinations (stdout, file, Azure Table storage), the default for each platform and the six severity levels. - [Preparing a database for installation of Rest PKI Core](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/on-premises/prepare-database.md): How to prepare a SQL Server or PostgreSQL database and connection string for an on-premises Rest PKI Core, with the collation and permissions required. - [Running Rest PKI Core without db_owner privileges](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/on-premises/unprivileged-db-user.md): How to run Rest PKI Core with read and write privileges only, without db_owner, and update the database model by command line; SQL Server only. - [Vulnerability checks - Rest PKI Core](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/on-premises/vulnerabilities.md): Vulnerability checks of the Rest PKI Core Docker image with Docker Scout: findings of medium or higher severity and the actions taken to mitigate them. - [Rest PKI Core - Setup on Windows Server](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/on-premises/windows-server.md): Installing an on-premises Rest PKI Core on Windows Server: binaries download, prerequisites (SQL Server, PKI SDK, Web PKI), database requirements and IIS. - [Operation Guide - Rest PKI Core](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/operation.md): Common operations on a Rest PKI Core instance: monitoring timestamping and requesting timestamps from Rest PKI Core. - [Monitoring timestamping - Rest PKI Core](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/operation/monitor-timestamping.md): How to monitor timestamp issuance in Rest PKI Core from Sys Admin: tiers, the requests received and their details. - [Requesting timestamps to Rest PKI Core](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/requesting-timestamps.md): How to use a Rest PKI Core instance as a timestamp provider through the TSP protocol (RFC 3161) or a REST API, including creating an app and API key. - [Rest PKI Core changelog](https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/changelog.md): Release history of Rest PKI Core: versions with their improvements and bug fixes, and whether each one updates the database model. ## PKI SDK - [PKI SDK quick reference](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/quick-reference.md): PKI SDK on one page: add the Lacuna.Pki package, load the license, validate certificates, sign PDF, CAdES and XML files, and handle errors. - [Lacuna PKI SDK](https://docs.lacunasoftware.com/en-us/articles/pki-sdk.md): PKI SDK is a .NET library for decoding and validating X.509 certificates and for creating and validating CMS/CAdES, PDF/PAdES and XmlDSig/XAdES signatures. - [Get started](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/get-started.md): Steps to start using PKI SDK: add the NuGet package to your project and configure the license, then move on to certificates and signatures. - [Licensing](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/get-started/licensing.md): Loading the PKI SDK license at application startup from a LacunaPKILicense.config file or a Base64 string, and which method suits web or desktop apps. - [Adding the nuget package](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/get-started/nuget.md): Adding the Lacuna.Pki NuGet package to your project with the NuGet Package Manager, plus a pointer to the optional packages. - [Certificates](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/certificates.md): Overview of the PKI SDK PKCertificate class, which views and manipulates X509 certificate information from BER, DER, Base64 or PEM encodings. - [Attribute Certificates](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/certificates/attribute-certs.md): Decoding, validating and issuing attribute certificates with PKI SDK, which carry roles or group membership but no key. - [Certificate authentication](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/certificates/auth.md): Authenticating users with digital certificates in PKI SDK: validating the certificate and proving key possession with a remotely signed nonce. - [Certificates with private key](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/certificates/certs-with-key.md): Loading certificates with an associated private key using the PKI SDK PKCertificateWithKey class, such as from the Windows certificate store. - [Augmenting certificate chain build](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/certificates/chain-building.md): How PKI SDK builds a certificate chain when decoding a certificate, and how to augment chain building for certificates that need help. - [Decoding certificates](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/certificates/decoding.md): Loading certificates in BER, DER, Base64 or PEM encoding with PKCertificate.Decode in PKI SDK, with code examples. - [Validating certificates](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/certificates/validation.md): Validating certificates with PKI SDK by passing an ITrustArbitrator, with arbitrators for Windows trusted roots, ICP-Brasil and PKI-Italy roots. - [Signatures](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/signatures.md): Creating PAdES, CAdES, XmlDSig and XAdES signatures with PKI SDK, starting from a basic CAdES signature example with CadesSigner. - [CAdES signatures](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/signatures/cades.md): CAdES signatures in PKI SDK with the CadesSigner class, which creates and assembles the CMS signature package of any binary file, with a basic example. - [Co-signatures](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/signatures/cades/co-sign.md): CAdES co-signatures in PKI SDK: how to group the parallel signatures of several signers of the same document in a single package, with CadesSigner. - [Signature compression](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/signatures/cades/compression.md): Compressing CAdES signatures with CadesSignatureCompression in PKI SDK, which reuses repeated CRLs and certificates and reaches over 90% compression. - [Asynchronous signature finishing](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/signatures/cades/finisher.md): Asynchronous finishing of CAdES signatures in PKI SDK: a more reliable and faster process that withstands CRL, OCSP and timestamp failures. - [PAdES signatures](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/signatures/pades.md): PAdES PDF signatures in PKI SDK with the PadesSigner class, following the ETSI 102778 specification, with a basic signature example. - [Adobe Reader validation](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/signatures/pades/adobe-validation.md): How to set Adobe Reader to also trust the Windows roots when validating signatures, including through a GPO with a Registry change. - [Serial signatures](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/signatures/pades/co-sign.md): Serial PAdES signatures in PKI SDK: each signer signs the PDF already signed by the previous one using PadesSigner, with no code changes. - [LTV (Long Term Validation)](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/signatures/pades/ltv.md): LTV (Long Term Validation) in PAdES signatures with PKI SDK: archiving certificates and revocation data in the DSS, and timestamping with PadesTimestamper. - [Visual representation](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/signatures/pades/visual-rep.md): Visual representation of PAdES signatures in PKI SDK: text or an image with signature data inside the PDF, through PadesVisualRepresentation2. - [Defining a container](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/signatures/pades/visual-rep/containers.md): Defining containers for the PAdES visual representation with PadesVisualRectangle: the Top, Bottom, Left, Right, Width and Height parameters and what each does. - [Complete examples](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/signatures/pades/visual-rep/samples.md): Complete examples of visual representation in PAdES signatures with automatic positioning, using the PKI SDK footnote and new page templates. - [Signature policies](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/signatures/policies.md): Signature policies in PKI SDK: the rules that govern how digital signatures are created and validated, ready to use or customizable, with an index of the articles. - [AD-RT signature lifecycle](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/signatures/policies/adrt-lifecycle.md): Lifecycle of an ICP-Brasil AD-RT signature, how long it stays verifiable, and how PKI SDK extends it with the AD-RC and AD-RA policies. - [Customizing policies](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/signatures/policies/customization.md): How to customize signature policies in PKI SDK: create your own policy or edit an existing one, such as AD-RT v2.1, and add trust arbitrators. - [Policies with a grace period](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/signatures/policies/grace-period.md): Policies with a grace period in PKI SDK: the time allowed for a certificate's revocation to propagate, which makes validation more reliable. - [Policy mappers](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/signatures/policies/mappers.md): PKI SDK policy mappers, which choose the policy according to the signer, by certificate or by SignerInfo. - [ICP-Brasil policies](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/signatures/policies/pki-brazil.md): ICP-Brasil signature policies already configured in PKI SDK, following DOC-ICP-15.03, available through BrazilCadesPolicySpec for CAdES signatures. - [Policies with references but no values](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/signatures/policies/revocation-refs-without-values.md): Signatures with a timestamp over revocation references but without the values (CAdES-C, CAdES-X Type 1, AD-RV): validating them with IReferencedCrlStore. - [Web remote signatures](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/signatures/web-remote.md): Creating signatures when the signer's private key is not where PKI SDK runs, such as a web app requesting a signature from a smartcard user via Web PKI. - [XML signatures](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/signatures/xml.md): XmlDSig and XAdES signatures in PKI SDK over a whole XML document, a specific element or external content, with basic examples. - [Signing external content](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/signatures/xml/detached-resources.md): XML signatures of content outside the document, local or online, with DetachedResourceXmlSigner and OnlineResourceXmlSigner in PKI SDK. - [ID resolution](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/signatures/xml/id-resolution.md): ID resolution when signing XML elements with PKI SDK, when the ID attribute has another name, set globally or locally. - [Insertion modes](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/signatures/xml/insertion.md): Insertion modes of the Signature element in XML signed with PKI SDK: each signer's default and how to set a custom insertion location. - [Optional Nuget packages](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/optional-packages.md): Optional PKI SDK nuget packages that add integration with providers and libraries, including the external storage integrations for CAdES signatures. - [Amazon Connector](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/optional-packages/amazon-connector.md): Lacuna PKI Amazon Connector, the optional PKI SDK package that stores CRLs and certificates of CAdES signatures in an AWS S3 bucket. - [Azure Connector](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/optional-packages/azure-connector.md): Lacuna PKI Azure Connector, the optional PKI SDK package for Azure Key Vault keys, Blob Storage for CAdES revocation data and Table Storage logs. - [Azure Key Vault integration](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/optional-packages/azure-connector/key-vault.md): Using certificates and keys stored in Azure Key Vault with PKI SDK to sign documents and issue certificates, with the endpoint, AppId and AppSecret. - [Entity Framework Connector](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/optional-packages/ef-connector.md): Lacuna PKI Entity Framework Connector, the optional PKI SDK package that stores CAdES revocation data and SDK logs in a database. - [NLog Connector](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/optional-packages/nlog-connector.md): Lacuna PKI NLog Connector, the optional PKI SDK package that forwards the log messages generated by the SDK to NLog, with a configuration example. - [Signing with cloud digital certificates](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/cloud-certificates.md): Signing with cloud digital certificates in PKI SDK, from providers that follow the ITI specifications, accessed through the BrazilTrustServices package. - [Generating alphanumeric codes](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/alpha-codes.md): Generating the alphanumeric document verification code printed on a printer-friendly copy of a signed file, in PKI SDK applications. - [PKI SDK changelog](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/changelog.md): Release history of PKI SDK, with the changes and fixes of each version, the latest being 2.22.7 (2026-09-28). - [Configuration](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/config.md): PKI SDK settings in the PkiConfig class: timeout of internal downloads, cache and temporary files directory, preemptive CRL download and others. - [.NET Standard / .NET Core Support](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/net-standard.md): PKI SDK support for .NET Standard 2.0 since version 2.1.0, which allows its use on .NET Core, Linux servers and Xamarin mobile apps. - [Printer-friendly version](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/printer-friendly-version.md): Generating a printer-friendly version of a signed PDF with PKI SDK: PdfMarker stamps every page with the signers and a verification code and adds a summary page. - [PKI SDK .NET API reference](https://docs.lacunasoftware.com/api.md): namespaces and types of the Lacuna.Pki .NET library; each type has a Markdown page under /api//.md ## PKI Express - [PKI Express quick reference](https://docs.lacunasoftware.com/en-us/articles/pki-express/quick-reference.md): PKI Express on one page: install the server binaries and client package, activate the license, configure, sign, validate, timestamp and handle errors. - [PKI Express](https://docs.lacunasoftware.com/en-us/articles/pki-express.md): PKI Express performs CMS/CAdES, PDF/PAdES and XmlDSig/XAdES digital signatures from virtually any language, on Windows or Linux servers. - [Install PKI Express](https://docs.lacunasoftware.com/en-us/articles/pki-express/setup.md): Choosing a platform to install PKI Express: Ubuntu/Mint, Red Hat Enterprise Linux, CentOS/Oracle/Fedora or Windows. - [Install PKI Express on CentOS, Oracle Linux or Fedora](https://docs.lacunasoftware.com/en-us/articles/pki-express/setup/linux-centos.md): Installing PKI Express on CentOS, Oracle Linux or Fedora: download and extract the package, set up the log folder, activate it with the license file and update it. - [Install PKI Express on Red Hat Enterprise Linux](https://docs.lacunasoftware.com/en-us/articles/pki-express/setup/linux-rhel.md): Installing PKI Express on Red Hat Enterprise Linux (RHEL): download and extract the package, set up the log folder and activate it with the license. - [Install PKI Express on Ubuntu or Mint](https://docs.lacunasoftware.com/en-us/articles/pki-express/setup/linux-ubuntu.md): Installing PKI Express on Ubuntu (desktop or server) or Linux Mint: download the package, set up the log folder and activate it with the license. - [Manual activation of PKI Express](https://docs.lacunasoftware.com/en-us/articles/pki-express/setup/manual-activation.md): Manually activating PKI Express on Linux when network activation fails, by exchanging an activation request and file with support. - [Install PKI Express on Windows](https://docs.lacunasoftware.com/en-us/articles/pki-express/setup/windows.md): Installing PKI Express on Windows Server 2008 R2 or Windows 7 and later with the installer, then activating it in the Configuration Manager. - [PKI Express Configuration](https://docs.lacunasoftware.com/en-us/articles/pki-express/config.md): Configuration of PKI Express with the pkie config command: view and set options such as logging, temp directory, proxy, LAPP and Azure. - [Azure Integration - PKI Express](https://docs.lacunasoftware.com/en-us/articles/pki-express/config/azure.md): Configuring PKI Express to sign with certificates and keys in Azure Key Vault using azureAppId, azureAppSecret and azureKeyVaultEndpoint. - [LAPP Integration - PKI Express](https://docs.lacunasoftware.com/en-us/articles/pki-express/config/lapp.md): Enabling LAPP, the Artifact Provider Proxy for PKI, in PKI Express to fetch CRLs and CA certificates when network access is restricted. - [PKI Express Logging](https://docs.lacunasoftware.com/en-us/articles/pki-express/config/log.md): Setting the PKI Express log directory and minimum log level, with default locations on Windows and Linux and log file rolling limits. - [Proxy configuration - PKI Express](https://docs.lacunasoftware.com/en-us/articles/pki-express/config/proxy.md): Configuring PKI Express to use a proxy for web requests with pkie config, including proxy authentication and environment variable alternatives. - [Temporary directory - PKI Express](https://docs.lacunasoftware.com/en-us/articles/pki-express/config/temp-dir.md): Changing the temporary directory PKI Express uses to cache CRLs and CA certificates, with the defaults on Windows and Linux. - [Cloud certificate services - PKI Express](https://docs.lacunasoftware.com/en-us/articles/pki-express/config/trust-services.md): Configuring PKI Express to sign with cloud digital certificates (ITI specifications), on the preconfigured services or on other services. - [Using PKI Express on PHP](https://docs.lacunasoftware.com/en-us/articles/pki-express/php.md): Using PKI Express on PHP with the lacuna/pki-express Composer package (PHP 5.5+) and the available samples projects. - [Configuring Timestamp Authority](https://docs.lacunasoftware.com/en-us/articles/pki-express/php/configuring-timestamp-authority.md): Configuring a timestamp authority for PkiExpressOperator on PHP when a signature policy requires a timestamp, including REST PKI's provider. - [How to convert from REST PKI to PKI Express in PHP](https://docs.lacunasoftware.com/en-us/articles/pki-express/php/convert-from-restpki.md): Converting a PHP application from REST PKI to PKI Express, including the equivalence between REST PKI and PKI Express policy names. - [PHP Plain Samples Project](https://docs.lacunasoftware.com/en-us/articles/pki-express/php/plain.md): PHP plain samples project showing PKI Express with Web PKI on PHP 5.5+ (including 7.x), hosted on GitHub, and the steps to run it. - [Trusting in custom certificates](https://docs.lacunasoftware.com/en-us/articles/pki-express/php/trusting-in-custom-certificates.md): Trusting non-ICP-Brasil and Lacuna test certificates in PKI Express on PHP by configuring PkiExpressOperator and trustLacunaTestRoot. - [Visual representation](https://docs.lacunasoftware.com/en-us/articles/pki-express/php/visual-rep.md): Options, parameters and customizations of the PDF signature visual representation (position, text, image) in PKI Express for PHP. - [Using PKI Express on Java](https://docs.lacunasoftware.com/en-us/articles/pki-express/java.md): Using PKI Express on Java with the Spring MVC samples project on GitHub, which also uses Web PKI, and ways to run it, such as Gradle. - [Generating alphanumeric codes on Java](https://docs.lacunasoftware.com/en-us/articles/pki-express/java/alpha-codes.md): Generating the alphanumeric document verification code for printer-friendly versions of signed files, with PKI Express on Java. - [How to convert from REST PKI to PKI Express in Java](https://docs.lacunasoftware.com/en-us/articles/pki-express/java/convert-from-restpki.md): Converting a Java application from REST PKI to PKI Express, including the equivalence between REST PKI and PKI Express policy names. - [Signature sample explained - PKI Express on Java](https://docs.lacunasoftware.com/en-us/articles/pki-express/java/how-it-works.md): Walkthrough of the PAdES signature sample in the PKI Express Java samples project, listing the controller, views and JavaScript modules involved. - [Trusting in custom certificates](https://docs.lacunasoftware.com/en-us/articles/pki-express/java/trusting-in-custom-certificates.md): Trusting non-ICP-Brasil and Lacuna test certificates in PKI Express on Java by configuring PkiExpressOperator and trustLacunaTestRoot. - [Visual representation](https://docs.lacunasoftware.com/en-us/articles/pki-express/java/visual-rep.md): Options, parameters and customizations of the PDF signature visual representation (position, text, image) in PKI Express for Java. - [Using PKI Express on Python](https://docs.lacunasoftware.com/en-us/articles/pki-express/python.md): Using PKI Express on Python with the Flask sample project on GitHub, which also uses Web PKI, and the steps to run it. - [How to convert from REST PKI to PKI Express in Python](https://docs.lacunasoftware.com/en-us/articles/pki-express/python/convert-from-restpki.md): Converting a Python application from REST PKI to PKI Express, including the equivalence between REST PKI and PKI Express policy names. - [Trusting in custom certificates](https://docs.lacunasoftware.com/en-us/articles/pki-express/python/trusting-in-custom-certificates.md): Trusting non-ICP-Brasil and Lacuna test certificates in PKI Express on Python by configuring PkiExpressOperator and trust_lacuna_test_root. - [Visual representation](https://docs.lacunasoftware.com/en-us/articles/pki-express/python/visual-rep.md): Options, parameters and customizations of the PDF signature visual representation (position, text, image) in PKI Express for Python. - [Using PKI Express on Node.js](https://docs.lacunasoftware.com/en-us/articles/pki-express/nodejs.md): Using PKI Express on Node.js with the sample project on GitHub, which also uses Web PKI, and the steps to run it with npm. - [How to convert from REST PKI to PKI Express in NodeJs](https://docs.lacunasoftware.com/en-us/articles/pki-express/nodejs/convert-from-restpki.md): Converting a NodeJs application from REST PKI to PKI Express, including the equivalence between REST PKI and PKI Express policy names. - [Trusting in custom certificates](https://docs.lacunasoftware.com/en-us/articles/pki-express/nodejs/trusting-in-custom-certificates.md): Trusting non-ICP-Brasil and Lacuna test certificates in PKI Express on Node.js by configuring PkiExpressOperator and trustLacunaTestRoot. - [Visual representation](https://docs.lacunasoftware.com/en-us/articles/pki-express/nodejs/visual-rep.md): Options, parameters and customizations of the PDF signature visual representation (position, text, image) in PKI Express for Node.js. - [Using PKI Express on Ruby](https://docs.lacunasoftware.com/en-us/articles/pki-express/ruby.md): Using PKI Express on Ruby with the pki_express gem, installed through a Gemfile or the gem command, and a link to the Rails samples project. - [How to convert from REST PKI to PKI Express in Ruby](https://docs.lacunasoftware.com/en-us/articles/pki-express/ruby/convert-from-restpki.md): Converting a Ruby application from REST PKI to PKI Express, including the equivalence between REST PKI and PKI Express policy names. - [Ruby on Rails samples project](https://docs.lacunasoftware.com/en-us/articles/pki-express/ruby/rails.md): Ruby on Rails samples project showing PKI Express with Web PKI, hosted on GitHub, and the steps to run it. - [Trusting in custom certificates](https://docs.lacunasoftware.com/en-us/articles/pki-express/ruby/trusting-in-custom-certificates.md): Trusting non-ICP-Brasil and Lacuna test certificates in PKI Express on Ruby by configuring PkiExpressOperator and trust_lacuna_test_root. - [Visual representation](https://docs.lacunasoftware.com/en-us/articles/pki-express/ruby/visual-rep.md): Options, parameters and customizations of the PDF signature visual representation (position, text, image) in PKI Express for Ruby. - [Certificate authentication - PKI Express](https://docs.lacunasoftware.com/en-us/articles/pki-express/authentication.md): Certificate authentication with PKI Express and Web PKI: PKI Express issues a nonce, Web PKI signs it with the user's certificate, and PKI Express validates the signature and the certificate. - [PKI Express changelog](https://docs.lacunasoftware.com/en-us/articles/pki-express/changelog.md): Release history of PKI Express, listing changes per version such as PKCS#11 token and HSM support, PAdES metadata and PKI SDK updates. - [PKI Express Return Codes](https://docs.lacunasoftware.com/en-us/articles/pki-express/return-codes.md): Return codes of PKI Express operations, such as Ok, BadSyntax, UnknownError, FileNotFound and BadCertificate, with the meaning of each. - [Timestamp a PDF - PKI Express](https://docs.lacunasoftware.com/en-us/articles/pki-express/timestamp-pdf.md): How to add a timestamp to a PDF with PKI Express: the PadesTimestamper class, the timestamp authority (such as Rest PKI's, with an access token) and the output file. - [Validate signatures - PKI Express](https://docs.lacunasoftware.com/en-us/articles/pki-express/validate-signatures.md): How to open and validate PAdES, CAdES and XML signatures with PKI Express: the signature explorers, which roots are trusted, validation policies and the results per signer. ## Signer - [Signer quick reference](https://docs.lacunasoftware.com/en-us/articles/signer/quick-reference.md): Lacuna Signer on one page: API key, base URLs, client packages, document creation, signing URL, status, download, webhooks and errors. - [Lacuna Signer](https://docs.lacunasoftware.com/en-us/articles/signer.md): Lacuna Signer is a document and signature manager that collects digital and electronic signatures, as SaaS or as an on-premises instance. - [Signer *on-premises*](https://docs.lacunasoftware.com/en-us/articles/signer/on-premises.md): Signer as SaaS or on your own infrastructure (on premises), with the supported environments: Windows Server, Linux, Docker and Azure App Services. - [Signer - Setup on Windows Server](https://docs.lacunasoftware.com/en-us/articles/signer/on-premises/windows.md): How to install an on-premises instance of Signer on Windows Server with IIS: binaries package, prerequisites, database requirements and installation steps. - [Signer - Setup on Linux](https://docs.lacunasoftware.com/en-us/articles/signer/on-premises/linux.md): Setup of Signer on Linux: the supported distribution (Ubuntu Server), with links to the update guide and troubleshooting. - [Troubleshooting issues on your Signer instance (Linux)](https://docs.lacunasoftware.com/en-us/articles/signer/on-premises/linux/troubleshoot.md): Troubleshooting a Signer instance on Linux: documentation still under construction, pointing to checking the system logs. - [Signer - Checking the system logs (Linux)](https://docs.lacunasoftware.com/en-us/articles/signer/on-premises/linux/troubleshoot/check-logs.md): How to read Signer logs on Linux with journalctl for the lacuna-signer service, including continuous monitoring and recent entries only. - [Installing Signer on Ubuntu Server](https://docs.lacunasoftware.com/en-us/articles/signer/on-premises/linux/install-ubuntu.md): How to install an on-premises Signer on Ubuntu Server: prerequisites (PKI SDK and Web PKI licenses, DNS, SQL Server) and the ASP.NET Core Runtime 8.0. - [Updating Signer on Linux](https://docs.lacunasoftware.com/en-us/articles/signer/on-premises/linux/update.md): How to update an on-premises Signer instance on Linux: download the package, stop the lacuna-signer service, replace the files and start it again. - [Signer - Setup on Azure App Services](https://docs.lacunasoftware.com/en-us/articles/signer/on-premises/azure.md): Installing an on-premises Signer on Azure App Services: the binaries package and creating the SQL database, the storage account and the App Service. - [Signer - Setup on Docker](https://docs.lacunasoftware.com/en-us/articles/signer/on-premises/docker.md): Setup of Signer on Docker with the lacunasoftware/signer image: SQL Server database, shared storage and OIDC server (GrantID), via env variables. - [Preparing a database for installation of Signer](https://docs.lacunasoftware.com/en-us/articles/signer/on-premises/prepare-database.md): How to prepare the SQL Server database for an on-premises Signer: required collation, db_owner credentials and the T-SQL to create it. - [Serilog Configuration](https://docs.lacunasoftware.com/en-us/articles/signer/on-premises/serilog.md): Serilog settings of Signer: how to direct logs to one or more sinks, such as File and Azure Table Storage, with configuration examples. - [Blob Storage Configuration](https://docs.lacunasoftware.com/en-us/articles/signer/on-premises/blob-storage.md): BlobStorage settings of Signer: storing files in the file system or in an Azure Storage Account container, with configuration examples for each. - [Signer Access Control](https://docs.lacunasoftware.com/en-us/articles/signer/on-premises/access-control.md): Signer user access control: an open system, where any user can sign up, and a closed system, where an administrator grants access. - [Signer Pix Authentication](https://docs.lacunasoftware.com/en-us/articles/signer/on-premises/pix-authentication.md): Pix authentication in Signer: an electronic signature in which the user authenticates with a Pix payment, using QR codes generated by the Gerencianet APIs. - [Signer Zoom Integration](https://docs.lacunasoftware.com/en-us/articles/signer/on-premises/zoom.md): Signer integration with Zoom to hold and store video conferences about documents, with the account requirements and Zoom users acting as rooms. - [Signer Payments](https://docs.lacunasoftware.com/en-us/articles/signer/on-premises/payments.md): Options for collecting payment of the invoices generated by the Signer Billing System, in which the administrator chooses which services are charged. - [iugu payment gateway](https://docs.lacunasoftware.com/en-us/articles/signer/on-premises/iugu.md): Signer integration with the iugu payment gateway, so invoices can be paid by credit card, boleto bancário or Pix, since version 1.27.0. - [Electronic Service Invoice (NFS-e)](https://docs.lacunasoftware.com/en-us/articles/signer/on-premises/nfse.md): Signer integration with NFE.io to issue and cancel NFS-e (Brazilian electronic service invoices) for paid invoices, with the first registration and setup steps. - [Whatsapp](https://docs.lacunasoftware.com/en-us/articles/signer/on-premises/whatsapp.md): Signer integration with Meta's Whatsapp Business API to send notifications via Whatsapp (since 1.56.0), with the prerequisites and account setup. - [SMS sending](https://docs.lacunasoftware.com/en-us/articles/signer/on-premises/sms.md): How to configure SMS sending in Signer for electronic signatures with a code via SMS: the SMS settings and credentials of providers such as Twilio. - [E-mail server (SMTP)](https://docs.lacunasoftware.com/en-us/articles/signer/on-premises/email-smtp.md): How to configure Signer e-mail sending in the Email settings: SMTP through MailKit by default, with Amazon SES and SendGrid also supported. - [Signer Settings](https://docs.lacunasoftware.com/en-us/articles/signer/on-premises/settings.md): Reference of Signer settings for on-premises instances, starting with the General section: SiteUrl, EncryptionKey, AutoUpdateDatabase, SupportEmailAddress. - [Signer customization](https://docs.lacunasoftware.com/en-us/articles/signer/on-premises/customization.md): Overview of Signer customization at instance and organization level: what can be customized, who configures it and where each setting is documented. - [Visual identity](https://docs.lacunasoftware.com/en-us/articles/signer/on-premises/customization/identidade-visual.md): Visual identity of a Signer instance: the color theme, chosen by a three-letter code, and the four logo files served under /theme-assets/. - [Available themes](https://docs.lacunasoftware.com/en-us/articles/signer/on-premises/customization/temas.md): List of available Signer themes, each with a three-letter code used to change the instance theme and in the Embedded Signature widget. - [Home page and footer](https://docs.lacunasoftware.com/en-us/articles/signer/on-premises/customization/home-e-footer.md): How to customize the Signer home page and footer: simple configuration of the highlight area, or advanced configuration with a static page replacing it. - [E-mails and notifications](https://docs.lacunasoftware.com/en-us/articles/signer/on-premises/customization/emails.md): How to customize Signer e-mails: logo and colors per organization, set by its administrator, and text overrides in any language, set by the system admin. - [Generated documents](https://docs.lacunasoftware.com/en-us/articles/signer/on-premises/customization/documentos.md): Customizing the files Signer generates, per organization: the printer friendly version, the validation stamp and the signature visual representation. - [Own domain](https://docs.lacunasoftware.com/en-us/articles/signer/on-premises/customization/dominio.md): How to serve a Signer instance under your own domain: add a CNAME DNS record and notify the deployment team to adjust the certificate and site. - [TrustArbitrator](https://docs.lacunasoftware.com/en-us/articles/signer/on-premises/trust-arbitrator.md): The Signer TrustArbitrator, which defines the certificates and root CAs Signer accepts, ICP-Brasil by default, and how to accept your own root CA. - [Updating Signer from 1.x to 2.x](https://docs.lacunasoftware.com/en-us/articles/signer/on-premises/update-20.md): Extra steps to update an on-premises Signer from 1.x to 2.x, such as installing the ASP.NET Core Runtime 8.0 and setting an explicit AppDiscriminator. - [Getting started with the Signer API](https://docs.lacunasoftware.com/en-us/articles/signer/get-started.md): Getting started with the Signer API: from zero to your first signed document in six steps, creating a document, collecting a signature and downloading it. - [Administration APIs](https://docs.lacunasoftware.com/en-us/articles/signer/on-premises/administration.md): Signer administration APIs to create and manage users and organizations, and how to create the administration API key in the Sys Admin organization. - [Consumption Monitoring](https://docs.lacunasoftware.com/en-us/articles/signer/on-premises/consumption-monitoring.md): Signer consumption monitoring APIs, with information and reports on user operations, and how to create the API key with the Monitor role. - [Integration Guide](https://docs.lacunasoftware.com/en-us/articles/signer/integration-guide.md): Signer Integration Guide: API key authentication and the integration options for your application to use Signer, as a reference for each use case. - [Create documents](https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents.md): How to create a document in Signer through the API: upload the file, then create the document by defining the participant flow. - [Track documents](https://docs.lacunasoftware.com/en-us/articles/signer/integration/tracking.md): How to track Signer documents by polling their status or receiving webhook notifications, and how to remind participants who have not acted yet. - [Download and list documents](https://docs.lacunasoftware.com/en-us/articles/signer/integration/download-and-list.md): How to download the versions of a Signer document, such as the original, the signed file and the printer friendly version, and how to list documents. - [Validate document's signatures](https://docs.lacunasoftware.com/en-us/articles/signer/integration/validation.md): How to validate a document's signatures in Signer with its validation key or with the signed file, which also works for documents signed elsewhere. - [Document lifecycle](https://docs.lacunasoftware.com/en-us/articles/signer/integration/lifecycle.md): Operations in the Signer document lifecycle through the API: cancel a document, refuse it, submit a new version or delete it. - [Sign documents in a batch](https://docs.lacunasoftware.com/en-us/articles/signer/integration/batch-signing.md): How to sign several Signer documents with the user's certificate in one go from your own application: Signer's public signature calls, run once per document, with Web PKI signing every hash after a single confirmation. - [Embedded signatures integration](https://docs.lacunasoftware.com/en-us/articles/signer/embedded-signature.md): How to embed Signer signing and approval in any application with the LacunaSignerWidget component, which needs a Web PKI license for the page domain. - [Webhooks](https://docs.lacunasoftware.com/en-us/articles/signer/webhooks.md): Signer webhooks: a URL of your application called with POST when documents are signed, approved, refused, concluded, canceled, expired or deleted. - [Lacuna Signer - User Guide](https://docs.lacunasoftware.com/en-us/articles/signer/user-guide.md): Lacuna Signer user guide, still under construction, with links to document generation and system administration. - [Lacuna Signer - Document generation](https://docs.lacunasoftware.com/en-us/articles/signer/user-guide/gen-docs.md): How to generate PDF documents in Signer from a template: a PDF with editable form fields, created for example in PhantomPDF. - [System administration - Lacuna Signer](https://docs.lacunasoftware.com/en-us/articles/signer/user-guide/sys-admin.md): System administration in Lacuna Signer, still under construction, with links to adding users and browsing the system's documents. - [Adding a user to system administration](https://docs.lacunasoftware.com/en-us/articles/signer/user-guide/sys-admin/add-user.md): How to add a user with the System Administrator role in Signer, by inviting them to the sys admin organization from the Administration page. - [Browsing the system's documents](https://docs.lacunasoftware.com/en-us/articles/signer/user-guide/sys-admin/browse-docs.md): How the system administrator views the documents each user submitted in Signer, from Administration, under Organizations and Personal Accounts. - [Deleting documents](https://docs.lacunasoftware.com/en-us/articles/signer/user-guide/sys-admin/del-docs.md): How to delete documents in Signer: check the document in the Documents list, select the trash can and confirm the deletion. - [Signer](https://docs.lacunasoftware.com/en-us/articles/signer/changelog.md): Release history of Signer: versions with new features, improvements and bug fixes, download links and whether each one updates the database model. ## Amplia - [Amplia quick reference](https://docs.lacunasoftware.com/en-us/articles/amplia/quick-reference.md): Amplia on one page: what it is for, client packages, API key and endpoint, the order and issuance calls, errors and test setup. - [Amplia](https://docs.lacunasoftware.com/en-us/articles/amplia.md): Overview of Amplia, a platform for creating and managing Certification Authorities (CAs) or entire Public Key Infrastructures (PKIs). - [Integration guide - Amplia](https://docs.lacunasoftware.com/en-us/articles/amplia/integration.md): Amplia API integration guide: API key, endpoint and client libraries, then the issuance flows (issue link, CSR, PKCS #12, attribute certificates), revocation and errors. - [Create certificate orders](https://docs.lacunasoftware.com/en-us/articles/amplia/integration/orders.md): How to create Amplia certificate orders through the API: endpoints by certificate format, common fields, ICP-Brasil (e-CPF, e-CNPJ) and SSL/TLS parameters, and reading, updating or deleting orders. - [Issue on the holder's machine](https://docs.lacunasoftware.com/en-us/articles/amplia/integration/issue-on-user-machine.md): How to have the holder issue an Amplia certificate on their own machine: create the order, send them to Amplia's issue page with an issue link, and read the certificate when they return. - [Issue from a CSR](https://docs.lacunasoftware.com/en-us/articles/amplia/integration/issue-from-csr.md): How to issue an Amplia certificate from a CSR made on your server or in the user's browser: key media, the issue call, e-CNPJ and SSL/TLS examples, and issuing an e-CPF after a face check. - [Issue a PKCS #12 file](https://docs.lacunasoftware.com/en-us/articles/amplia/integration/pkcs12.md): How to have Amplia generate the key pair and return the certificate in a password-protected PKCS #12 (.pfx) file, or the key and certificate in several formats. - [Attribute certificates](https://docs.lacunasoftware.com/en-us/articles/amplia/integration/attribute-certificates.md): How to issue attribute certificates with Amplia's API, such as the Brazilian student ID card (CIE): a CA for attribute certificates, the order, and issuance without a CSR. - [Revoke certificates](https://docs.lacunasoftware.com/en-us/articles/amplia/integration/revocation.md): How to revoke a certificate issued by Amplia through the API, how revocation reaches CRLs and OCSP, and what the sources say about renewal. - [Errors](https://docs.lacunasoftware.com/en-us/articles/amplia/integration/errors.md): How Amplia's API reports errors: HTTP status codes, the ErrorModel body with its error code, what the client libraries throw, and error codes seen in the samples and demos. - [Amplia on-premises](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises.md): Host your own Amplia instance: supported platforms (Windows Server, Linux, Docker, Azure App Services) and planning for key storage and CRLs. - [Amplia - Setup on Windows Server](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/windows.md): Setup of Amplia on Windows Server, with links to installation, update and troubleshooting. Article under construction. - [Installing Amplia on Windows Server](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/windows/install.md): Install an on-premises Amplia on Windows Server 2016 or newer, with prerequisites (licenses, DNS entries, database) and installation steps. - [Troubleshooting issues on your Amplia instance (Windows Server)](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/windows/troubleshoot.md): Troubleshooting Amplia on Windows Server: common issues such as HTTP Error 502.5, with links to system logs and startup errors. - [HTTP Error 502.5 - ANCM Out-Of-Process Startup Failure (Windows Server)](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/windows/troubleshoot/502-5.md): Fix HTTP Error 502.5 (ANCM Out-Of-Process Startup Failure) on Amplia on Windows Server, mainly caused by a missing ASP.NET Core 10.0 Hosting Bundle. - [Amplia - Checking the system logs on Windows Server](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/windows/troubleshoot/check-logs.md): Check Amplia system logs on Windows Server: the default log file, how to confirm the configured path and how to follow it in PowerShell. - [Troubleshooting startup errors (Windows Server)](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/windows/troubleshoot/startup-errors.md): Diagnose Amplia startup errors on Windows Server using the Application Event Log or the ASP.NET Core stdout log. - [Updating Amplia on Windows Server](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/windows/update.md): Update an on-premises Amplia on Windows Server: stop the site, back up, extract the new package, adjust appsettings.iis.json and restart. - [Amplia - Setup on Linux](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/linux.md): Install Amplia on Linux: supported distributions are Ubuntu Server, Red Hat Enterprise Linux, Oracle Linux and Rocky Linux. - [Installing Amplia on Oracle Linux](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/linux/install-oracle.md): Install an on-premises Amplia on Oracle Linux 8 or later, with prerequisites (licenses, DNS entries, database) and the ASP.NET Core Runtime 10.0. - [Installing Amplia on Red Hat Enterprise Linux](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/linux/install-rhel.md): Install an on-premises Amplia on Red Hat Enterprise Linux 8 or later, including prerequisites such as Red Hat subscription, licenses, DNS and database. - [Installing Amplia on Rocky Linux](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/linux/install-rocky.md): Install an on-premises Amplia on Rocky Linux 8.x or greater, with prerequisites (licenses, DNS entries, database) and the ASP.NET Core Runtime 10.0. - [Installing Amplia on Ubuntu Server](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/linux/install-ubuntu.md): Install an on-premises Amplia on Ubuntu Server 22.04, 24.04 or 26.04 (latest LTS recommended), with prerequisites, the ASP.NET Core Runtime 10.0 and setup steps. - [Troubleshooting issues on your Amplia instance (Linux)](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/linux/troubleshoot.md): Troubleshooting Amplia on Linux: common issues such as HTTP Error 502.5, and where to check the system logs. - [HTTP Error 502.5 - ANCM Out-Of-Process Startup Failure (Linux)](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/linux/troubleshoot/502-5.md): HTTP Error 502.5 (ANCM Out-Of-Process Startup Failure) on Amplia installed on Linux. Article under construction. - [Amplia - Checking the system logs (Linux)](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/linux/troubleshoot/check-logs.md): View Amplia logs on Linux with journalctl, which reads the systemd journal, including follow mode and time filters. - [Updating Amplia on Linux](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/linux/update.md): Update an on-premises Amplia on Linux by downloading the new package, replacing the installed files and restarting the service. - [Amplia - Setup on Docker](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/docker.md): Install an on-premises Amplia on Docker using the lacunasoftware/amplia image, with its featured tags and how to test the release candidate. - [Amplia - Setup on Azure App Services](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/azure.md): Starting point to install, update and troubleshoot Amplia on Azure App Services; the documentation in this section is under construction. - [Installing Amplia on Azure App Services](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/azure/install.md): How to install an on-premises instance of Amplia on an Azure App Service: container registry, database, storage account, domains and configuration. - [Troubleshooting issues on your Amplia instance (Azure App Services)](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/azure/troubleshoot.md): Common issues of Amplia on Azure App Services, such as HTTP Error 500.30 and 502.5 at startup, and where to look next. - [Amplia - Checking the system logs (Azure App Services)](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/azure/troubleshoot/check-logs.md): Where to find Amplia system logs on Azure App Services: the AppLogs table of the Azure Storage account, and how to confirm which one is used. - [Troubleshooting startup errors (Azure App Services)](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/azure/troubleshoot/startup-errors.md): Diagnose Amplia startup errors on Azure App Services (HTTP Error 500.30 and 502.5) by enabling startup logs in web.config. - [Updating Amplia on Azure App Services](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/azure/update.md): How to update Amplia on Azure App Services: import the new Docker image into your container registry and select the new tag in Deployment Center. - [Amplia - Command-line tool](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/tool.md): Command-line tool of on-premises Amplia for administrative tasks, and how to run its commands on Windows Server, Linux and Docker. - [Amplia command: **check-key-store-partitions-lock**](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/tool/check-key-store-partitions-lock.md): Amplia command check-key-store-partitions-lock, which checks the lock status of key store partitions against the physical HSM partitions. - [Amplia command: **gen-enc-key**](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/tool/gen-enc-key.md): Amplia command gen-enc-key, which generates a random 256-bit key for General__EncryptionKey, used to encrypt sensitive database data. - [Amplia command: **hash-root-pass**](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/tool/hash-root-pass.md): Amplia command hash-root-pass, which computes a salted hash of the root password, read from stdin, for root authentication mode. - [Amplia command: **test-email**](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/tool/test-email.md): Amplia command test-email, which tests the email configuration by sending a test message to a given address. - [Amplia command: **update-db**](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/tool/update-db.md): Amplia command update-db, which applies database migrations when running without db_owner privileges, typically with a privileged connection string. - [Key Stores - Amplia](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/key-stores.md): Key stores of Amplia: the locations where CA keys can be kept (database, HSM, USB token, Azure Key Vault) and the trade-offs of each. - [Azure Key Vault key stores - Amplia](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/key-stores/azure.md): Configure Azure Key Vault key stores in Amplia, a cloud HSM option compatible with all supported platforms, from app registration to secret. - [CAPI Key Stores - Amplia](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/key-stores/capi.md): Configure CAPI key stores in Amplia through Windows CryptoAPI providers (CSPs) such as HSMs and tokens. Windows Server only. - [CNG Key Stores - Amplia](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/key-stores/cng.md): Configure CNG key stores in Amplia through Key Storage Providers (KSPs) such as HSMs and tokens. Windows Server only. - [Database Key Store - Amplia](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/key-stores/database.md): Configure Amplia to store CA keys in the database key store by enabling DatabaseKeyStoreEnabled and optionally making it the DefaultKeyStore. - [Dinamo key stores - Amplia](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/key-stores/dinamo.md): Configure Dinamo HSM key stores in Amplia: address and credentials, with an Operator user required for PIN-protected keys used with PSC. - [Kryptus key stores - Amplia](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/key-stores/kryptus.md): Configure Kryptus kNET HSM key stores in Amplia: host, HTTPS port, and regular or VCO user credentials for CA keys or PIN-protected keys. - [PKCS #11 key stores - Amplia](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/key-stores/pkcs11.md): Configure PKCS #11 key stores in Amplia for HSMs and USB tokens: module, PIN and token selection. Windows Server and Linux only. - [Checking the version of Amplia](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/check-version.md): How to check the installed version of an on-premises Amplia instance by accessing its api/system/info URL. - [Blob Storage Configuration](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/configure-blob-storage.md): BlobStorage configuration section of Amplia: how to store files on the file system or in an Azure Storage Account container, with examples. - [Configure CA certificate templates - Amplia](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/configure-ca-cert-templates.md): Customize the profile of CA certificates issued by an on-premises Amplia through the CACertificateTemplates section, for root and intermediate CAs. - [Configure cloud certificate management - Amplia](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/configure-cert-management.md): Configure cloud certificate management in Amplia, hosting end-user certificates with their private keys through the CertificateManagement section. - [Configure email sending - Amplia](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/configure-email.md): Configure email sending in Amplia through the Email section: SMTP host, credentials, sender, port and SSL settings. - [Configure HTTPS redirection - Amplia](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/configure-https-redirect.md): Redirect users reaching an on-premises Amplia through HTTP to HTTPS by setting HttpsMode and SslPort in the Bindings section. - [OCSP configuration - Amplia](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/configure-ocsp.md): Configure the OCSP domain so certificates issued by Amplia include OCSP verification links, and what to consider when choosing it. - [Configure OpenID Connect - Amplia](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/configure-oidc.md): Configure OpenID Connect for Amplia, which requires a GrantID subscription: create an API connection and a frontend application in GrantID Console. - [Configure SMS sending - Amplia](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/configure-sms.md): Configure SMS sending in Amplia, required to confirm user identity during certificate issuance, and the providers available in the SMS section. - [CRL Propagation - Amplia](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/crl-propagation.md): CRL propagation in Amplia: example configuration publishing CRLs and CA certificates to Azure and AWS storage. Article under construction. - [Migrate Amplia instance having database keys](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/migrate-with-db-keys.md): Migrate an Amplia instance that has CA keys in the Database Key Store to a new environment, avoiding errors such as an invalid payload exception. - [Preparing a database for installation of Amplia](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/prepare-database.md): Prepare a SQL Server or PostgreSQL database for an on-premises Amplia, including the collation and db_owner credentials for SQL Server. - [Running Amplia without db_owner privileges](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/unprivileged-db-user.md): Run Amplia with only read and write database privileges instead of db_owner, updating the database model manually with the command-line tool. - [Update Amplia from 2.16 to 3.0](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/update-30.md): Update an on-premises Amplia from 2.16 to 3.0, including setting the ASPNETCORE_ENVIRONMENT variable to Windows, Linux or Azure. - [Update Amplia from 3.0-3.4 to 3.5](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/update-35.md): Update an on-premises Amplia from 3.0-3.4 to 3.5, which moves to ASP.NET Core 3.1 and requires installing its runtime. - [Update Amplia from 3.x to 4.0](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/update-40.md): Update an on-premises Amplia from 3.x to 4.0, which moves to ASP.NET Core 6.0, with a warning about index creation on large databases. - [Update Amplia from 4.x to 5.0](https://docs.lacunasoftware.com/en-us/articles/amplia/on-premises/update-50.md): Update an on-premises Amplia from 4.x to 5.0, which moves to ASP.NET Core 10.0 and updates the database model, with notes on Prometheus and Azure Key Vault. - [Operation Guide - Amplia](https://docs.lacunasoftware.com/en-us/articles/amplia/operation.md): Operation guide for Amplia, as a service or on-premises: articles on creating root, intermediate and device CAs. - [Create a CA for device certificates - Amplia](https://docs.lacunasoftware.com/en-us/articles/amplia/operation/create-device-ca.md): Create a CA on Amplia to issue certificates for devices, as needed by modules such as Amplia Reg: generate a key, then create a root CA. - [Create an intermediate CA - Amplia](https://docs.lacunasoftware.com/en-us/articles/amplia/operation/create-intermediate-ca.md): Create an intermediate CA on Amplia in centralized, distributed or other scenarios, depending on which CAs you control and where they are hosted. - [Create a root CA - Amplia](https://docs.lacunasoftware.com/en-us/articles/amplia/operation/create-root-ca.md): Create a root certification authority on Amplia: generate the root CA key, then create the root CA from the Keys and CAs menus. - [About - Amplia](https://docs.lacunasoftware.com/en-us/articles/amplia/about.md): Technical articles on characteristics of Amplia, including how serial numbers are generated for issued certificates. - [About generation of serial numbers - Amplia](https://docs.lacunasoftware.com/en-us/articles/amplia/about/serial-number-generation.md): How Amplia generates certificate serial numbers: random values of 16-17 bytes with 122 bits of entropy, and the option for CA certificates. - [Amplia changelog](https://docs.lacunasoftware.com/en-us/articles/amplia/changelog.md): Release history of Amplia, listing new features, improvements and bug fixes for each version and whether it updates the database model. ## PKI guide - [Public key infrastructure (PKI) solutions](https://docs.lacunasoftware.com/en-us/articles/pki-guide.md): Overview of Lacuna's PKI solutions (Web PKI, Rest PKI, PKI SDK and PKI Express) and guidance on choosing the right product for your scenario. - [Digital signatures](https://docs.lacunasoftware.com/en-us/articles/pki-guide/signatures.md): Introduces electronic signatures and defines digital signatures, associating a signer with an electronic document through a commitment. - [Web signatures](https://docs.lacunasoftware.com/en-us/articles/pki-guide/web-signatures.md): Web signatures are digital signatures performed on a web page with the user's certificate; compares the remote and local approaches. - [Web remote signatures](https://docs.lacunasoftware.com/en-us/articles/pki-guide/web-signatures/remote.md): Web remote signatures: the backend controls the signing process while the key of the user's certificate stays on the client; the recommended approach. - [Web local signatures](https://docs.lacunasoftware.com/en-us/articles/pki-guide/web-signatures/local.md): Web local signatures: digital signatures computed locally on a web page with a key on the client side, and why this approach needs care. - [Server signatures](https://docs.lacunasoftware.com/en-us/articles/pki-guide/server-signatures.md): Server signatures: digital signatures made with a private key on the server, performed entirely on the backend, and how to implement them per language. - [Certificate authentication](https://docs.lacunasoftware.com/en-us/articles/pki-guide/cert-auth.md): Authenticating users with X.509 public key certificates: generate a nonce, have the user sign it, verify the signature and validate the certificate. - [Test certificates](https://docs.lacunasoftware.com/en-us/articles/pki-guide/test-certs.md): Test certificates from the Lacuna Test PKI for development and staging, as ICP-Brasil mock PKCS #12 files, and how to trust them in Web PKI, Rest PKI, Rest PKI Core, PKI SDK, PKI Express and Signer; never trust this PKI in production. - [Certificates trusted by Adobe](https://docs.lacunasoftware.com/en-us/articles/pki-guide/adobe-trust.md): Which ICP-Brasil A3 certificates Adobe accepts or rejects when Adobe Reader validates PDF signatures, because of its restriction by certificate policy. ## Bulk Signer - [Lacuna Bulk Signer](https://docs.lacunasoftware.com/en-us/articles/bulk-signer.md): Lacuna Bulk Signer, an on-premises bulk digital-signing service for ICP-Brasil, with watched folders, REST upload, optional approval and a dashboard. - [Installation](https://docs.lacunasoftware.com/en-us/articles/bulk-signer/installation.md): Installing Bulk Signer on its four supported targets (Linux systemd, Windows Service, Docker Compose and console) and how to obtain the application. - [Deploying on Azure App Service — cluster mode](https://docs.lacunasoftware.com/en-us/articles/bulk-signer/azure.md): Walkthrough to deploy Bulk Signer in cluster mode on Azure App Service, from zero to a two-instance cluster verified on the dashboard Instances view. - [High availability and its limits](https://docs.lacunasoftware.com/en-us/articles/bulk-signer/high-availability.md): What Bulk Signer cluster mode does not give you: the limits of running several instances over one operational store and work share. - [Configuration](https://docs.lacunasoftware.com/en-us/articles/bulk-signer/configuration.md): Reference of every Bulk Signer appsettings.json key: type, default, environment-variable override and whether it is required, plus source precedence. - [Certificates](https://docs.lacunasoftware.com/en-us/articles/bulk-signer/certificates.md): Certificate sources for signing in Bulk Signer: how to pick a source, where to put the certificate material and how to find SHA-1 thumbprints. - [Security](https://docs.lacunasoftware.com/en-us/articles/bulk-signer/security.md): Operator security model of Bulk Signer: how secrets are stored, how authentication works and what the service does to prevent accidental disclosure. - [Operations](https://docs.lacunasoftware.com/en-us/articles/bulk-signer/operations.md): Day-2 operations for Bulk Signer: how to start, stop, restart, observe and pause the signing pipeline, with lifecycle commands per target. - [Dashboard](https://docs.lacunasoftware.com/en-us/articles/bulk-signer/dashboard.md): The Bulk Signer operator dashboard: a web application at the root path that shares its rules with the REST API, with API key or Microsoft Entra ID sign-in. - [Job statistics](https://docs.lacunasoftware.com/en-us/articles/bulk-signer/statistics.md): Per-stage job statistics on the Bulk Signer dashboard (queue wait, signing, verification, output creation): how they are calculated and read. - [Application Insights telemetry](https://docs.lacunasoftware.com/en-us/articles/bulk-signer/telemetry.md): Optional Azure Application Insights telemetry for Bulk Signer: how to enable it, what is collected and excluded, and KQL queries to find bottlenecks. - [REST API](https://docs.lacunasoftware.com/en-us/articles/bulk-signer/rest-api.md): Bulk Signer REST API guide: authentication by API key or cookie, error envelope, rate limiting and endpoint groups, with curl examples. - [Encryption — BSENC v1](https://docs.lacunasoftware.com/en-us/articles/bulk-signer/encryption.md): Optional post-signing encryption in Bulk Signer (BSENC v1): when to enable it and how recipients decrypt with PBKDF2-HMAC-SHA256 and AES-256-GCM. - [Lacuna Signer integration](https://docs.lacunasoftware.com/en-us/articles/bulk-signer/lacuna-signer.md): Operator walkthrough for routing a Bulk Signer profile through Lacuna Signer instead of a local certificate, and when to pick each signing method. - [CNAB240 payment files](https://docs.lacunasoftware.com/en-us/articles/bulk-signer/cnab240.md): CNAB240 check in Bulk Signer: parse Banco do Brasil remessa files, refuse non-compliant ones and record what they move, enabled per signing profile. - [Approvals](https://docs.lacunasoftware.com/en-us/articles/bulk-signer/approvals.md): Approval gate of Bulk Signer: a signing profile holds jobs in AwaitingApproval until enough listed approvers approve, plus how to handle approval links. - [Retention](https://docs.lacunasoftware.com/en-us/articles/bulk-signer/retention.md): What Bulk Signer ages out automatically and what it does not (logs, input, processing and output files), and how to plan disk capacity. - [Troubleshooting](https://docs.lacunasoftware.com/en-us/articles/bulk-signer/troubleshooting.md): Field guide to the most common Bulk Signer failures, with symptoms, likely causes and diagnostic commands, and where to find bootstrap errors per target. - [Samples — scripts](https://docs.lacunasoftware.com/en-us/articles/bulk-signer/samples.md): Sample scripts for Bulk Signer: decrypt BSENC v1 envelopes in Python or PowerShell, import a PFX to Azure Key Vault and provision a Microsoft Entra ID app. ## Amplia Reg - [Amplia Reg](https://docs.lacunasoftware.com/en-us/articles/amplia-reg.md): Amplia Reg, the companion system to Amplia that acts as Registration Authority (RA): it validates the holder's identity before the CA issues a certificate. - [How certificate issuance works - Amplia Reg](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/issuance.md): The path of a certificate from order to installation: who takes part, the order statuses, and how Amplia Reg (RA) and Amplia (CA) work together. - [Integration Guide - Amplia Reg](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/integration.md): Integration Guide for Amplia Reg: start with Get started, then follow the guide to create, preapprove or cancel orders and validate phone numbers. - [Cancel an order - Amplia Reg](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/integration/cancel-order.md): How to cancel an Amplia Reg order through the API when the certificate is no longer wanted, which statuses allow it and the Sales app role it needs. - [Create an order - Amplia Reg](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/integration/create-order.md): How to create an Amplia Reg order through the API, starting by listing the available certificate types to pick the one the order needs. - [Error codes - Amplia Reg](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/integration/error-codes.md): Error codes returned by the Amplia Reg API with HTTP 422 (AmpliaRegException in .NET), grouped by topic, with when each one happens. - [Referencing files - Amplia Reg](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/integration/file-referencing.md): Ways to reference files when calling Amplia Reg APIs from .NET, by path, FileInfo, bytes or stream, as when creating a preapproved order. - [Get started on integration - Amplia Reg](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/integration/get-started.md): First steps to integrate an application with Amplia Reg: get the endpoint and API key, or create an application with the Sales app role. - [Creating preapproved orders - Amplia Reg](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/integration/preapproved-orders.md): How to create preapproved Amplia Reg orders, already approved on creation, for electronic registration authorities that validate identity on their own. - [Phone number validation - Amplia Reg](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/integration/validate-phone.md): How to check a holder's phone number with the Amplia Reg validation API before creating an order, so text messages reach the holder. - [Webhooks - Amplia Reg](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/integration/webhooks.md): Webhooks of Amplia Reg: register a URL to receive a POST on every order status transition, with delivery rules and authentication headers. - [Amplia Reg on-premises](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/on-premises.md): Hosting your own Amplia Reg instead of using the SaaS: supported platforms (Windows Server, Linux, Docker, Azure App Services) and related guides. - [Amplia Reg - Setup on Linux](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/on-premises/linux.md): Linux distributions supported for installing on-premises Amplia Reg, currently Ubuntu Server, with links to update and troubleshooting. - [Troubleshooting issues on your Amplia Reg instance (Linux)](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/on-premises/linux/troubleshoot.md): Troubleshooting an Amplia Reg instance on Linux, starting with checking the system logs. - [Amplia Reg - Checking the system logs (Linux)](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/on-premises/linux/troubleshoot/check-logs.md): How to view Amplia Reg logs on Linux with journalctl, which reads the systemd journal, including follow mode and filtering by time. - [Installing Amplia Reg on Ubuntu Server](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/on-premises/linux/install-ubuntu.md): How to install an on-premises Amplia Reg instance on Ubuntu Server, with prerequisites: Amplia CAs, PKI SDK and Web PKI licenses, DNS and database. - [Updating Amplia Reg on Linux](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/on-premises/linux/update.md): How to update an on-premises Amplia Reg installation on Linux, and how to test the upcoming release candidate version. - [Amplia Reg - Command-line tool](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/on-premises/tool.md): Command-line tool of on-premises Amplia Reg for administrative tasks, and how to run a command on Windows Server, Linux or Docker. - [Amplia Reg command: **cancel-canceled-orders-enrollment-tcn**](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/on-premises/tool/cancel-canceled-orders-enrollment-tcn.md): Amplia Reg command cancel-canceled-orders-enrollment-tcn: cancels on PSBio the open enrollment TCN of canceled Brazilian orders. - [Amplia Reg command: **fill-order-transactions**](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/on-premises/tool/fill-order-transactions.md): Amplia Reg command fill-order-transactions: fills in the cost report transactions of orders created before version 7.0.0. - [Amplia Reg command: **fill-registration-agent-report-transactions**](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/on-premises/tool/fill-registration-agent-report-transactions.md): Amplia Reg command that fills in the registration agent report transactions for agents that existed before version 8.0.0. - [Amplia Reg command: **fill-registration-agents-certificate-thumbprint**](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/on-premises/tool/fill-registration-agents-certificate-thumbprint.md): Amplia Reg command that fills in the SHA-256 certificate thumbprint of registration agents registered before version 6.3.0. - [Amplia Reg command: **fill-video-identification-transactions**](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/on-premises/tool/fill-video-identification-transactions.md): Amplia Reg command that creates the event and cost transaction of video identification orders completed before version 8.0.0. - [Amplia Reg command: **gen-enc-key**](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/on-premises/tool/gen-enc-key.md): Amplia Reg command gen-enc-key: generates a random 256-bit key for the General__EncryptionKey setting, used to encrypt sensitive database data. - [Amplia Reg command: **hash-root-pass**](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/on-premises/tool/hash-root-pass.md): Amplia Reg command hash-root-pass: computes a salted hash of the root password, read from stdin, for the General__RootPasswordHash setting. - [Amplia Reg command: **migrate-data**](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/on-premises/tool/migrate-data.md): Amplia Reg command migrate-data: schedules a background job that migrates application data to a new schema version, with a batch size option. - [Amplia Reg command: **test-cert-renewal-alert**](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/on-premises/tool/test-certificate-renewal-alert.md): Amplia Reg command test-cert-renewal-alert: sends a test certificate renewal email for an issued order, with simulated days before expiration. - [Amplia Reg command: **test-email**](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/on-premises/tool/test-email.md): Amplia Reg command test-email: tests the email configuration by sending a test message to the given address. - [Amplia Reg command: **update-db**](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/on-premises/tool/update-db.md): Amplia Reg command update-db: applies the database model migrations when running without db_owner privileges, using a privileged connection string. - [Amplia Reg Settings](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/on-premises/settings.md): Reference of Amplia Reg on-premises settings, starting with the General section: SiteUrl, EncryptionKey, RootPasswordHash, Flavour and others. - [Blob Storage Configuration](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/on-premises/settings/configure-blob-storage.md): Settings of the Amplia Reg BlobStorage section, which defines how files are stored: a file system path or an Azure Storage Account container. - [Configure certificate renewal alert - Amplia Reg](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/on-premises/settings/configure-certificate-renewal-alert.md): How to enable certificate renewal emails in Amplia Reg with the CertificateRenewalAlert section: Enabled, EmailScheduleDays and DefaultUrl. - [Configure email sending - Amplia Reg](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/on-premises/settings/configure-email.md): How to enable email sending in Amplia Reg with the Email configuration section: SMTP server, port, SSL, credentials and sender settings. - [Configure HTTPS redirection - Amplia Reg](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/on-premises/settings/configure-https-redirect.md): How to redirect HTTP users to the HTTPS endpoint of an on-premises Amplia Reg with the HttpsMode and SslPort settings of the Bindings section. - [Configure OpenID Connect - Amplia Reg](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/on-premises/settings/configure-oidc.md): How to configure OpenID Connect sign-in for Amplia Reg with a GrantID subscription: username type, API connection and frontend application. - [Configure reCAPTCHA - Amplia Reg](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/on-premises/settings/configure-recaptcha.md): How to protect the Amplia Reg API from abuse with Google reCAPTCHA: create an invisible reCAPTCHA v2 project and set its keys in the configuration. - [Configure SMS sending - Amplia Reg](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/on-premises/settings/configure-sms.md): How to configure SMS sending in Amplia Reg with the SMS section and its Type setting, with settings for providers such as Twilio and TotalVoice. - [Add document types - Amplia Reg](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/on-premises/add-doc-types.md): How to add custom holder file types to Amplia Reg with the HolderFileTypes configuration section, and how to reference them in the API. - [Checking the version of Amplia Reg](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/on-premises/check-version.md): How to check the installed version of an on-premises Amplia Reg instance by opening the api/system/info URL in a web browser. - [Post-installation steps - Amplia Reg](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/on-premises/post-install.md): Steps after installing on-premises Amplia Reg: register the first user, run init-data with the Amplia CA Id, and restart the service. - [Preparing a database for installation of Amplia Reg](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/on-premises/prepare-database.md): How to prepare a SQL Server or PostgreSQL database and connection string for on-premises Amplia Reg, including collation and db_owner requirements. - [Running Amplia Reg without db_owner privileges](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/on-premises/unprivileged-db-user.md): How to run Amplia Reg with only read and write database privileges, creating unprivileged credentials and updating the database model by command line. - [Update Amplia Reg from 2.x to 3.0](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/on-premises/update-30.md): Extra steps before updating on-premises Amplia Reg from 2.x to 3.0, which moves to ASP.NET Core 8.0 and needs its runtime installed first. - [Update Amplia Reg from 3.x to 4.0](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/on-premises/update-40.md): Steps to update on-premises Amplia Reg from 3.x to 4.0: update to version 4.0.7 and run migrate-data, plus a pre-update check for Brazil. - [Amplia Reg changelog](https://docs.lacunasoftware.com/en-us/articles/amplia-reg/changelog.md): Amplia Reg changelog: improvements and bug fixes in each version, and whether it updates the database model. ## PSC - [Lacuna PSC](https://docs.lacunasoftware.com/en-us/articles/psc.md): Lacuna PSC is a companion system to Amplia that stores and manages cloud certificates, compatible with DOC-ICP-17.01, as SaaS or on-premises. - [Lacuna PSC on-premises](https://docs.lacunasoftware.com/en-us/articles/psc/on-premises.md): Hosting your own Lacuna PSC instance instead of using the SaaS: supported platforms (Windows Server, Linux, Docker, Azure App Services) and related guides. - [Lacuna PSC - Setup on Linux](https://docs.lacunasoftware.com/en-us/articles/psc/on-premises/linux.md): Installing Lacuna PSC on Linux: Ubuntu Server and Rocky Linux are the supported distributions, with links to the update and troubleshooting guides. - [Troubleshooting issues on your Lacuna PSC instance (Linux)](https://docs.lacunasoftware.com/en-us/articles/psc/on-premises/linux/troubleshoot.md): Starting point for troubleshooting a Lacuna PSC instance on Linux, which begins with checking the system logs. - [Lacuna PSC - Checking the system logs (Linux)](https://docs.lacunasoftware.com/en-us/articles/psc/on-premises/linux/troubleshoot/check-logs.md): Viewing Lacuna PSC logs on Linux with journalctl, since the app sends them to the systemd journal, including follow mode and the since option. - [Installing Lacuna PSC on Rocky Linux](https://docs.lacunasoftware.com/en-us/articles/psc/on-premises/linux/install-rocky.md): Installing an on-premises Lacuna PSC instance on Rocky Linux 8.x or later: Amplia, GrantID, PKI SDK license and database prerequisites, then the steps. - [Installing Lacuna PSC on Ubuntu Server](https://docs.lacunasoftware.com/en-us/articles/psc/on-premises/linux/install-ubuntu.md): Installing an on-premises Lacuna PSC instance on Ubuntu Server: Amplia, GrantID, PKI SDK license and database prerequisites, then the setup steps. - [Updating Lacuna PSC on Linux](https://docs.lacunasoftware.com/en-us/articles/psc/on-premises/linux/update.md): Updating an on-premises Lacuna PSC installation on Linux: stop the service, replace the files, restart it, and test the release candidate. - [Lacuna PSC - Command-line tool](https://docs.lacunasoftware.com/en-us/articles/psc/on-premises/tool.md): Using the Lacuna PSC command-line tool on on-premises instances for administrative tasks, run with dotnet from the installation directory or on Docker. - [Lacuna PSC command: **gen-cert**](https://docs.lacunasoftware.com/en-us/articles/psc/on-premises/tool/gen-cert.md): Reference for the Lacuna PSC gen-cert command, which generates a self-signed certificate to sign OAuth tokens, with syntax for dotnet and Docker. - [Lacuna PSC command: **gen-enc-key**](https://docs.lacunasoftware.com/en-us/articles/psc/on-premises/tool/gen-enc-key.md): Reference for the Lacuna PSC gen-enc-key command, which generates a random 256-bit key for the General__EncryptionKey setting that encrypts sensitive data. - [Lacuna PSC command: **hash-root-pass**](https://docs.lacunasoftware.com/en-us/articles/psc/on-premises/tool/hash-root-pass.md): Reference for the Lacuna PSC hash-root-pass command, which computes a salted hash of the root password for the General__RootPasswordHash setting. - [Lacuna PSC command: **put-blob**](https://docs.lacunasoftware.com/en-us/articles/psc/on-premises/tool/put-blob.md): Reference for the Lacuna PSC put-blob command, which copies one or more local files to the configured Blob Storage, overwriting files of the same name. - [Lacuna PSC command: **test-email**](https://docs.lacunasoftware.com/en-us/articles/psc/on-premises/tool/test-email.md): Reference for the Lacuna PSC test-email command, which tests the email configuration by sending a test message to a given address. - [Lacuna PSC command: **update-db**](https://docs.lacunasoftware.com/en-us/articles/psc/on-premises/tool/update-db.md): Reference for the Lacuna PSC update-db command, which applies migrations to the database model when running without db_owner privileges. - [Checking the version of Lacuna PSC](https://docs.lacunasoftware.com/en-us/articles/psc/on-premises/check-version.md): How to check the installed version of an on-premises Lacuna PSC instance through its api/system/info URL, which returns a JSON. - [Blob Storage Configuration](https://docs.lacunasoftware.com/en-us/articles/psc/on-premises/configure-blob-storage.md): Configuring the BlobStorage section of Lacuna PSC, which defines how files are stored and retrieved, such as File System and Azure Storage Account. - [Configure email sending - Lacuna PSC](https://docs.lacunasoftware.com/en-us/articles/psc/on-premises/configure-email.md): Enabling email sending in Lacuna PSC by filling the Email configuration section: SMTP server, SSL, port, credentials and sender address. - [Configure Firebase - Lacuna PSC](https://docs.lacunasoftware.com/en-us/articles/psc/on-premises/configure-firebase.md): Configuring Google Firebase App Check in Lacuna PSC so API requests are accepted only from the official mobile app on an authentic device. - [Configure HTTPS redirection - Lacuna PSC](https://docs.lacunasoftware.com/en-us/articles/psc/on-premises/configure-https-redirect.md): Redirecting users who reach an on-premises Lacuna PSC instance over HTTP to the HTTPS endpoint, using HttpsMode and SslPort in the Bindings section. - [Configure OpenID Connect - Lacuna PSC](https://docs.lacunasoftware.com/en-us/articles/psc/on-premises/configure-oidc.md): Configuring OpenID Connect for Lacuna PSC, which requires a GrantID subscription: creating the subscription and an API connection in GrantID Console. - [Configure reCAPTCHA - Lacuna PSC](https://docs.lacunasoftware.com/en-us/articles/psc/on-premises/configure-recaptcha.md): Configuring Google reCAPTCHA in Lacuna PSC so API requests from the website come from a human, not a bot, using an invisible reCAPTCHA v2 site. - [Preparing a database for installation of Lacuna PSC](https://docs.lacunasoftware.com/en-us/articles/psc/on-premises/prepare-database.md): Preparing a SQL Server or PostgreSQL database and its connection string for an on-premises Lacuna PSC installation, including collation and db_owner user. - [Running Lacuna PSC without db_owner privileges](https://docs.lacunasoftware.com/en-us/articles/psc/on-premises/unprivileged-db-user.md): Running Lacuna PSC with only read and write privileges on the database, using unprivileged credentials and a command line tool to update the model. - [Lacuna PSC changelog](https://docs.lacunasoftware.com/en-us/articles/psc/changelog.md): Release history of Lacuna PSC, listing new features, improvements and bug fixes of each version, up to the upcoming 1.5.0. - [Lacuna PSC mobile app changelog](https://docs.lacunasoftware.com/en-us/articles/psc/app-changelog.md): Release history of the Lacuna PSC mobile app, listing new features, improvements, bug fixes and the minimum backend version of each release. ## TSA - [Lacuna TSA](https://docs.lacunasoftware.com/en-us/articles/tsa.md): Lacuna TSA is a Time Stamping Server that conforms to the Time-Stamp Protocol (RFC 3161), with links to on-premises hosting and the changelog. - [Lacuna TSA on-premises](https://docs.lacunasoftware.com/en-us/articles/tsa/on-premises.md): Hosting your own Lacuna TSA instance instead of using the SaaS service, with supported platforms: Windows Server, Linux, Docker and Azure App Services. - [Setup on Linux - Lacuna TSA](https://docs.lacunasoftware.com/en-us/articles/tsa/on-premises/linux.md): Linux distributions on which Lacuna TSA can be installed, Ubuntu Server and Rocky Linux, with links to the update and troubleshooting articles. - [Troubleshooting (Linux) - Lacuna TSA](https://docs.lacunasoftware.com/en-us/articles/tsa/on-premises/linux/troubleshoot.md): Troubleshooting an on-premises Lacuna TSA instance on Linux, starting with checking the system logs. - [Checking the system logs (Linux) - Lacuna TSA](https://docs.lacunasoftware.com/en-us/articles/tsa/on-premises/linux/troubleshoot/check-logs.md): How to view Lacuna TSA logs on Linux, which go to the systemd journal, using journalctl with the follow and since options. - [Installing Lacuna TSA on Rocky Linux](https://docs.lacunasoftware.com/en-us/articles/tsa/on-premises/linux/install-rocky.md): How to install an on-premises Lacuna TSA instance on Rocky Linux 8.x or greater, with the ASP.NET Core Runtime 6.0, PKI SDK license and TSA certificate. - [Installing Lacuna TSA on Ubuntu Server](https://docs.lacunasoftware.com/en-us/articles/tsa/on-premises/linux/install-ubuntu.md): How to install an on-premises Lacuna TSA instance on Ubuntu Server, with the ASP.NET Core Runtime 6.0 steps for each Ubuntu version and the prerequisites. - [Updating Lacuna TSA on Linux](https://docs.lacunasoftware.com/en-us/articles/tsa/on-premises/linux/update.md): How to update an on-premises Lacuna TSA installation on Linux: download the new package, stop the service, replace the files and start it again. - [Checking the version of Lacuna TSA](https://docs.lacunasoftware.com/en-us/articles/tsa/on-premises/check-version.md): How to check the installed version of an on-premises Lacuna TSA instance by opening the api/system/info URL in a browser and reading the JSON. - [Configure authentication - Lacuna TSA](https://docs.lacunasoftware.com/en-us/articles/tsa/on-premises/configure-auth.md): Optional authentication settings for Lacuna TSA: register users with Basic or BearerToken credentials, or disable authentication, which is off by default. - [Configure NTP synchronization - Lacuna TSA](https://docs.lacunasoftware.com/en-us/articles/tsa/on-premises/configure-ntp.md): How to configure NTP servers as the time source for Lacuna TSA timestamps instead of the system clock, with host, port, priority and timeout settings. - [Changelog - Lacuna TSA](https://docs.lacunasoftware.com/en-us/articles/tsa/changelog.md): Release history of Lacuna TSA from 1.0.0 to 1.2.1, with new features, improvements and bug fixes such as the NTP synchronization changes. ## Digiploma - [Digiploma](https://docs.lacunasoftware.com/en-us/articles/digiploma.md): Digiploma issues, registers and publishes digital diplomas per Portaria MEC 554/2019, with transcripts, curriculums, annulment lists and inspection files. - [Signatures and Lacuna Signer](https://docs.lacunasoftware.com/en-us/articles/digiploma/signatures.md): How Digiploma collects the ICP-Brasil signatures of MEC documents through Lacuna Signer: signature flows, signing stages and who signs what. - [Diploma revalidation](https://docs.lacunasoftware.com/en-us/articles/digiploma/revalidation.md): Why digital diploma signatures need revalidation, and how Digiploma restamps the archive timestamp automatically to keep them verifiable. - [Digiploma API](https://docs.lacunasoftware.com/en-us/articles/digiploma/api.md): Overview of the Digiploma REST API: what it covers, where the Swagger reference is and which guide to start with for each organization type. - [Templates and signature flows](https://docs.lacunasoftware.com/en-us/articles/digiploma/api/templates-and-flows.md): Templates for the visual representations of diplomas, transcripts and curriculums, and signature flows that define who signs each Digiploma document. - [Batches](https://docs.lacunasoftware.com/en-us/articles/digiploma/api/batches.md): Digiploma batches: create many diplomas, emissions, registration requests, academic transcripts or curriculums from one file, generated in the background. - [Issue and register diplomas](https://docs.lacunasoftware.com/en-us/articles/digiploma/api/degrees.md): How institutions of type Emissora e Registradora issue and register their own diplomas in Digiploma: XML files, signatures, RVDD and final transcript. - [Issue diplomas (issuer only)](https://docs.lacunasoftware.com/en-us/articles/digiploma/api/emissions.md): How issuer-only institutions create emissions in Digiploma: academic documentation XML, issuer signatures and the diploma XML returned by the registrar. - [Register diplomas (registrar only)](https://docs.lacunasoftware.com/en-us/articles/digiploma/api/registrations.md): How registrar institutions handle registration requests in Digiploma: how requests arrive, the diploma XML and signatures collected in Lacuna Signer. - [Academic transcripts](https://docs.lacunasoftware.com/en-us/articles/digiploma/api/academic-transcripts.md): How to issue digital academic transcripts in Digiploma: the signed XML and its RVHE per Portaria MEC 1095/2018, with signatures collected in Lacuna Signer. - [Curriculums](https://docs.lacunasoftware.com/en-us/articles/digiploma/api/curriculums.md): How to create digital curriculums in Digiploma: the signed XML and its RVCE, signatures in Lacuna Signer, prerequisites and publication. - [Public validation](https://docs.lacunasoftware.com/en-us/articles/digiploma/api/validation.md): Public validation in Digiploma: validation code formats and how to check diplomas, transcripts and curriculums on the validation page or API, no API key. - [Lists of annulled diplomas](https://docs.lacunasoftware.com/en-us/articles/digiploma/api/cancellation-lists.md): Digiploma lists of annulled diplomas: the signed ListaDiplomasAnulados XML a registrar publishes for each institution, and its public file URL. - [Inspection files](https://docs.lacunasoftware.com/en-us/articles/digiploma/api/inspection-files.md): How to create Digiploma inspection files for MEC supervision: signed ArquivoFiscalizacao XML of diplomas issued or registered, of type Issuer or Registry. - [Restamps](https://docs.lacunasoftware.com/en-us/articles/digiploma/api/restamps.md): Digiploma restamps: how signed XML files get a new archive timestamp before the timestamp authority certificate expires, keeping signatures verifiable. - [Institutions](https://docs.lacunasoftware.com/en-us/articles/digiploma/api/institutes.md): Institutions in Digiploma: higher education institutions identified by MEC code, how to create one and how its supporting documents are signed. - [Webhooks](https://docs.lacunasoftware.com/en-us/articles/digiploma/api/webhooks.md): Digiploma webhooks: receive a POST when a document changes instead of polling the API, configured per organization and per institution. - [Digiploma *on-premises*](https://docs.lacunasoftware.com/en-us/articles/digiploma/on-premises.md): Running your own Digiploma instance on Windows (IIS) or Linux, with .NET 8 and SQL Server, working together with a Lacuna Signer instance. - [Digiploma settings](https://docs.lacunasoftware.com/en-us/articles/digiploma/on-premises/settings.md): Requirements and settings of an on-premises Digiploma instance: JSON file per platform, environment variable overrides and settings grouped by purpose. - [Set up the Signer integration](https://docs.lacunasoftware.com/en-us/articles/digiploma/on-premises/signer-setup.md): How to connect an on-premises Digiploma to Lacuna Signer with API keys on both sides, so Digiploma creates documents in Signer and Signer sends webhooks. - [Digiploma changelog](https://docs.lacunasoftware.com/en-us/articles/digiploma/changelog.md): Version history of Digiploma with the most recent changes, bug fixes and whether each release updates the database model. ## GrantID - [GrantID](https://docs.lacunasoftware.com/en-us/articles/grant-id.md): GrantID adds Single Sign On, multiple authentication factors and analytics to your apps, as a service (SaaS) or on-premises. - [GrantID on-premises](https://docs.lacunasoftware.com/en-us/articles/grant-id/on-premises.md): Hosting your own GrantID instance: supported platforms (Windows Server, Linux, Azure App Services, Docker) and domains to define before installing. - [Installing GrantID on Windows Server](https://docs.lacunasoftware.com/en-us/articles/grant-id/on-premises/windows.md): Installing GrantID on Windows Server: IIS setup and .NET Core setup steps; the documentation is still under construction. - [GrantID - Setup on Linux](https://docs.lacunasoftware.com/en-us/articles/grant-id/on-premises/linux.md): GrantID setup on Linux: Ubuntu Server and Rocky Linux are the supported distributions, with links to updating and troubleshooting. - [Installing GrantID on Rocky Linux](https://docs.lacunasoftware.com/en-us/articles/grant-id/on-premises/linux/install-rocky.md): Installing an on-premises GrantID on Rocky Linux 8.x or greater: prerequisites such as licenses, DNS entries and database, then Nginx. - [Installing GrantID on Ubuntu Server](https://docs.lacunasoftware.com/en-us/articles/grant-id/on-premises/linux/install-ubuntu.md): Installing an on-premises GrantID on Ubuntu Server: prerequisites such as licenses, DNS entries and database, then the ASP.NET Core Runtime 8.0. - [Troubleshooting issues on your GrantID instance (Linux)](https://docs.lacunasoftware.com/en-us/articles/grant-id/on-premises/linux/troubleshoot.md): Common issues on a GrantID instance on Linux, such as HTTP Error 502.5, and a pointer to checking the system logs. - [HTTP Error 502.5 - ANCM Out-Of-Process Startup Failure (Linux)](https://docs.lacunasoftware.com/en-us/articles/grant-id/on-premises/linux/troubleshoot/502-5.md): Troubleshooting HTTP Error 502.5 (ANCM Out-Of-Process Startup Failure) on GrantID for Linux; the documentation is still under construction. - [GrantID - Checking the system logs (Linux)](https://docs.lacunasoftware.com/en-us/articles/grant-id/on-premises/linux/troubleshoot/check-logs.md): Checking GrantID logs on Linux with journalctl for the Identity Service, Auth Server and Console services, plus useful parameters. - [Updating GrantID on Linux](https://docs.lacunasoftware.com/en-us/articles/grant-id/on-premises/linux/update.md): Updating an on-premises GrantID on Linux: download the package, stop the services, replace the binaries and start the services again. - [GrantID - Setup on Docker](https://docs.lacunasoftware.com/en-us/articles/grant-id/on-premises/docker.md): Installing an on-premises GrantID on Docker with the lacunasoftware/grantid image, its tags and requirements such as shared blob storage. - [Updating GrantID on Docker](https://docs.lacunasoftware.com/en-us/articles/grant-id/on-premises/docker/update.md): Updating an on-premises GrantID on Docker: image tags and guidelines such as reading the changelog and handling database model changes. - [Installing GrantID on Azure App Services](https://docs.lacunasoftware.com/en-us/articles/grant-id/on-premises/azure.md): Setup of GrantID on Azure App Services; this documentation is still under construction, so contact us for missing information. - [Configuration for usage in iframes - GrantID](https://docs.lacunasoftware.com/en-us/articles/grant-id/on-premises/allow-iframe.md): Configure a GrantID instance to show implicit flow authentication inside iframes with SameSiteNoneOnAntiforgeryTokens and AllowedIFrameDomains. - [Blob Storage Configuration](https://docs.lacunasoftware.com/en-us/articles/grant-id/on-premises/blob-storage.md): BlobStorage settings that define how GrantID stores and retrieves files, with File System and Azure Storage Account options and examples. - [Configure email sending - GrantID](https://docs.lacunasoftware.com/en-us/articles/grant-id/on-premises/configure-email.md): How to enable email sending in GrantID by filling the Email configuration section: SMTP host, credentials, sender, port and SSL. - [Configure SMS sending - GrantID](https://docs.lacunasoftware.com/en-us/articles/grant-id/on-premises/configure-sms.md): Configuring SMS sending in GrantID to validate users' mobile phones, with the SMS section settings for providers such as Amazon SNS and Comtele. - [Configure SPA Applications](https://docs.lacunasoftware.com/en-us/articles/grant-id/on-premises/configure-spa-app.md): Setting up Rest PKI Core, Signer, Amplia, Amplia Reg, Scanner and Digiploma as SPA applications on GrantID to enable user management. - [LDAP Integration (Preview)](https://docs.lacunasoftware.com/en-us/articles/grant-id/on-premises/ldap.md): Integrating LDAP with GrantID as an external identity provider for application login, with the LDAP server settings to provide (Preview). - [GrantID post-installation steps](https://docs.lacunasoftware.com/en-us/articles/grant-id/on-premises/post-install.md): Steps after installing an on-premises GrantID: register on the console, activate your account by email and create the first subscription. - [Preparing a database for installation of GrantID](https://docs.lacunasoftware.com/en-us/articles/grant-id/on-premises/prepare-database.md): Preparing a SQL Server or PostgreSQL database and connection string for an on-premises GrantID, including collation and db_owner requirements. - [SAML 2 Integration](https://docs.lacunasoftware.com/en-us/articles/grant-id/on-premises/saml2.md): Configuring SAML 2 integration for GrantID console login in the Saml2 settings section: EntityId, MetadataUrl, DisplayName and more. - [Serilog Configuration](https://docs.lacunasoftware.com/en-us/articles/grant-id/on-premises/serilog.md): Serilog configuration for GrantID: defining one or more sinks to direct the logs to, such as File and Azure Table Storage, with examples. - [GrantID Settings](https://docs.lacunasoftware.com/en-us/articles/grant-id/on-premises/settings.md): GrantID settings reference, starting with the Application section: product name, service URLs, reverse proxy and token signing certificate. - [Troubleshooting - GrantID](https://docs.lacunasoftware.com/en-us/articles/grant-id/on-premises/troubleshoot.md): Diagnosing problems on an on-premises GrantID, such as the nginx 502 Bad Gateway on the authorize callback during authentication, and its fix. - [GrantID changelog](https://docs.lacunasoftware.com/en-us/articles/grant-id/changelog.md): Release history of GrantID, listing improvements, bug fixes and whether each version updates the database model. ## Scanner - [Lacuna Scanner Service](https://docs.lacunasoftware.com/en-us/articles/scanner.md): Lacuna Scanner Service: a microservice that adds document scanning, straight from the browser, to web applications, in line with Brazilian Decree 10,278/2020. - [Integration Guide - Scanner Service](https://docs.lacunasoftware.com/en-us/articles/scanner/integration.md): Integrating with the Lacuna Scanner Service: scanning happens on a page of the service, which handles the scanners and the Decree 10,278/2020 metadata. - [Integration Guide on .NET](https://docs.lacunasoftware.com/en-us/articles/scanner/integration/dotnet.md): Integrating a .NET application with the Lacuna Scanner Service using the Lacuna.Scanner.Client package: creating the ScannerClient and scan sessions. - [REST API Integration - Lacuna Scanner](https://docs.lacunasoftware.com/en-us/articles/scanner/integration/other.md): Integrating with the Lacuna Scanner REST API from any language: API key in the X-Api-Key header and session creation with POST /api/v2/scan-sessions. - [Integration Guide on PHP](https://docs.lacunasoftware.com/en-us/articles/scanner/integration/php.md): Integrating a PHP application with the Lacuna Scanner Service using the lacuna/scanner-client package: creating the ScannerClient and scan sessions. - [Scanning device simulator](https://docs.lacunasoftware.com/en-us/articles/scanner/simulator.md): How to test the Scanner Service without a physical scanner, using the TWAIN2 FreeImage Software Scanner simulator, which always scans the same sample page. ## TrustBridge - [Lacuna TrustBridge](https://docs.lacunasoftware.com/en-us/articles/trustbridge.md): Lacuna TrustBridge is a remote signature platform for ICP-Brasil certificates held by people, signing PDFs through the SignSession Contract REST API. - [Concepts](https://docs.lacunasoftware.com/en-us/articles/trustbridge/concepts.md): The vocabulary of TrustBridge, defined once: platform terms such as Server, Workstation Service and Tray App, as used by the admin console, API and logs. - [Server installation](https://docs.lacunasoftware.com/en-us/articles/trustbridge/server-installation.md): How to install the TrustBridge Server, distributed as a Linux container image, with Docker on Linux and exactly one instance, using the deployment package. - [Azure App Service](https://docs.lacunasoftware.com/en-us/articles/trustbridge/azure.md): Running the TrustBridge Server as a Linux custom container on Azure App Service, a single instance using Azure SQL with a managed identity and no password. - [Server configuration](https://docs.lacunasoftware.com/en-us/articles/trustbridge/configuration.md): Every key the TrustBridge Server binds: its default, whether an Administrator can change it at runtime, whether it needs a restart, and its sources. - [Workstation installation](https://docs.lacunasoftware.com/en-us/articles/trustbridge/workstation-installation.md): How to install the TrustBridge workstation components, Workstation Service and Tray App, with one MSI and one msiexec line, plus Group Policy templates. - [Workstation configuration](https://docs.lacunasoftware.com/en-us/articles/trustbridge/workstation-configuration.md): Every setting of the TrustBridge Workstation Service and how a fleet install supplies it; the Tray App has no configuration file. - [Admin console](https://docs.lacunasoftware.com/en-us/articles/trustbridge/admin-console.md): The TrustBridge admin console at /admin on the Server: a Blazor web app in English or Brazilian Portuguese, with second-factor sign-in and audited changes. - [REST API: the SignSession Contract](https://docs.lacunasoftware.com/en-us/articles/trustbridge/rest-api.md): The TrustBridge REST API implementing the SignSession Contract: authentication, session lifecycle, operations, errors and differences from the reference. - [Security](https://docs.lacunasoftware.com/en-us/articles/trustbridge/security.md): Security of TrustBridge: what protects what, where each secret lives, what an operator must keep, and the Certificate Vault as the exception to local keys. - [Operations](https://docs.lacunasoftware.com/en-us/articles/trustbridge/operations.md): Day-2 operations for a deployed TrustBridge: what to monitor, what to read in the logs, how a restart behaves and the recurring maintenance owed. - [Troubleshooting](https://docs.lacunasoftware.com/en-us/articles/trustbridge/troubleshooting.md): TrustBridge failure modes by where they are noticed, what each looks like and where to read the cause, using the X-Correlation-Id of each response. ## CrossPKI - [CrossPKI for CEF — Integration Guide](https://docs.lacunasoftware.com/en-us/articles/crosspki.md): Integration guide for CrossPKI for CEF, which gives a Chromium application JavaScript access to certificates in the Windows store or macOS keychain. ## API specifications - [Rest PKI Core API](https://docs.lacunasoftware.com/openapi/rest-pki-core.json): OpenAPI 3.0.1 copy of the Rest PKI Core API spec of the cloud service (version 5.0.4); live spec: https://core.pki.rest/swagger/api/swagger.json - [Signer API](https://docs.lacunasoftware.com/openapi/signer.json): OpenAPI 3.0.1 copy of the Signer API spec of the cloud service (version 2.16.1); live spec: https://www.dropsigner.com/swagger/api/swagger.json - [Amplia API](https://docs.lacunasoftware.com/openapi/amplia.json): OpenAPI 3.0.1 copy of the Amplia API spec of the cloud service (version 5.0.1 RTM); live spec: https://amplia.lacunasoftware.com/swagger/api/swagger.json - [Amplia Reg API](https://docs.lacunasoftware.com/openapi/amplia-reg.json): OpenAPI 3.0.1 copy of the Amplia Reg API spec of the cloud service (version 4.12.0 RTM); live spec: https://ar.lacunasoftware.com/swagger/api/swagger.json - [CloudHub API](https://docs.lacunasoftware.com/openapi/cloudhub.json): OpenAPI 3.0.4 copy of the CloudHub API spec of the cloud service (version v1); live spec: https://cloudhub.lacunasoftware.com/swagger/v1/swagger.json - [Digiploma API](https://docs.lacunasoftware.com/openapi/digiploma.json): OpenAPI 3.0.1 copy of the Digiploma API spec of the cloud service (version 3.1.5); live spec: https://www.digiploma.com.br/swagger/api/swagger.json - [Scanner API](https://docs.lacunasoftware.com/openapi/scanner.json): OpenAPI 3.0.1 copy of the Scanner API spec of the cloud service (version 2.1.0); live spec: https://scn.lacunasoftware.com/swagger/api/swagger.json - [Rest PKI API (legacy)](https://docs.lacunasoftware.com/openapi/rest-pki.json): Swagger 2.0 copy of the Rest PKI API (legacy) spec of the cloud service (version v1); live spec: https://pki.rest/swagger/docs/v1 ## Optional - [Documentação em português](https://docs.lacunasoftware.com/pt-br/llms.txt): the same index for the Portuguese (pt-BR) pages