---
title: "Add LTV information to PDF signatures in C# | Nutrient .NET SDK"
canonical_url: "https://www.nutrient.io/guides/dotnet/signatures/digital-signatures/add-ltv-information-to-pdf-signatures/"
md_url: "https://www.nutrient.io/guides/dotnet/signatures/digital-signatures/add-ltv-information-to-pdf-signatures.md"
last_updated: "2026-09-22T00:00:00.000Z"
description: "Learn how to embed long-term validation information in signed PDFs using Nutrient .NET SDK."
---

# Add LTV information to PDF signatures in C#

Long-term validation (LTV) data helps signed PDFs remain verifiable after certificate status information changes or certificate authorities rotate infrastructure.

Use this workflow after creating a signature that has a certificate chain with online revocation information. Nutrient.NET SDK collects certificates and revocation data and embeds them in the document security store.

This guide shows how to:

- Sign a PDF with a P12/PFX certificate

- Add LTV information to the signed PDF

- Save the updated document as an incremental update

This sample requires network access to certificate revocation resources, such as Online Certificate Status Protocol (OCSP) responders or certificate revocation lists (CRLs). Self-signed development certificates usually don't provide usable revocation endpoints.

## Prepare the project

Register the SDK license before running signing operations. For setup details, refer to the [getting started with.NET SDK](https://www.nutrient.io/sdk/dotnet/getting-started.md) guide.

```csharp

using System;
using GdPicture14;

void CheckStatus(GdPictureStatus status, string operation)
{
    if (status!= GdPictureStatus.OK)
    {
        throw new InvalidOperationException($"{operation} failed. Status: {status}");
    }
}

LicenseManager license = new LicenseManager();
license.RegisterKEY(""); // Set your license key

```

## Sign the PDF

Load the input PDF, configure the signing certificate, and create a timestamped PAdES signature. LTV works best when the signing certificate chain exposes revocation information.

```csharp

using GdPicturePDF pdf = new GdPicturePDF();

CheckStatus(pdf.LoadFromFile(@"input.pdf", false), "LoadFromFile");
CheckStatus(pdf.SetSignatureCertificateFromP12(@"certificate.pfx", "Nutrient answers all your document needs"), "SetSignatureCertificateFromP12");
CheckStatus(pdf.SetSignatureInfo("Nutrient", "LTV signing sample", "Toulouse", "sales@nutrient.io"), "SetSignatureInfo");
CheckStatus(pdf.SetSignatureTimestampInfo("http://timestamp.digicert.com", "", ""), "SetSignatureTimestampInfo");
CheckStatus(pdf.SetSignaturePAdESLevel(PdfSignaturePAdESLevel.PAdESBaselineT), "SetSignaturePAdESLevel");
CheckStatus(pdf.ApplySignature(@"signed.pdf", PdfSignatureMode.PdfSignatureModeAdobeCADES, true), "ApplySignature");

```

`SetSignaturePAdESLevel` selects the PAdES baseline level for the signature. PAdES B-T adds a signature timestamp and creates a suitable starting point for adding validation material.

## Add LTV information

Reload the signed PDF and add validation material for its signatures:

```csharp

using GdPicturePDF signedPdf = new GdPicturePDF();

CheckStatus(signedPdf.LoadFromFile(@"signed.pdf", false), "LoadFromFile");
CheckStatus(signedPdf.SetSignatureLtvInformation(@"ltv-enabled.pdf"), "SetSignatureLtvInformation");

```

`SetSignatureLtvInformation` embeds certificates and revocation information in the PDF. The output document contains the original signature plus the added validation material.

## Error handling

Check every `GdPictureStatus` value returned by the signing methods. Common failures include an invalid certificate password, a missing certificate chain, unavailable revocation endpoints, and blocked network access.

## Conclusion

This workflow signs a PDF and then upgrades the signed output with LTV material for longer-lived validation.
---

## Related pages

- [Add a digital signature to a PDF in C#](/guides/dotnet/signatures/digital-signatures/add-a-digital-signature.md)
- [Add a document timestamp to a PDF in C#](/guides/dotnet/signatures/digital-signatures/add-document-timestamp-to-pdf.md)
- [Sign PDF documents with a certificate in C#](/guides/dotnet/signatures/digital-signatures/certify-a-document.md)
- [Create PAdES B-LT and B-LTA signatures in C#](/guides/dotnet/signatures/digital-signatures/create-pades-b-lt-and-b-lta-signatures.md)
- [Deferred two-phase PDF signing in C#](/guides/dotnet/signatures/digital-signatures/deferred-two-phase-pdf-signing.md)
- [Create a self-signed certificate with PADES extensions](/guides/dotnet/signatures/digital-signatures/sign-a-docx-as-pdf-ua.md)
- [Create a self-signed certificate with PADES extensions](/guides/dotnet/signatures/digital-signatures/sign-a-pdf-ua-document.md)
- [Sign a PDF with an ECDSA certificate in C#](/guides/dotnet/signatures/digital-signatures/sign-pdf-with-ecdsa-certificate.md)
- [Sign a PDF with PKCS#11 in C#](/guides/dotnet/signatures/digital-signatures/sign-pdf-with-pkcs11.md)

