Soenneker.Telnyx.Validators.Signatures
4.0.70
Prefix Reserved
dotnet add package Soenneker.Telnyx.Validators.Signatures --version 4.0.70
NuGet\Install-Package Soenneker.Telnyx.Validators.Signatures -Version 4.0.70
<PackageReference Include="Soenneker.Telnyx.Validators.Signatures" Version="4.0.70" />
<PackageVersion Include="Soenneker.Telnyx.Validators.Signatures" Version="4.0.70" />
<PackageReference Include="Soenneker.Telnyx.Validators.Signatures" />
paket add Soenneker.Telnyx.Validators.Signatures --version 4.0.70
#r "nuget: Soenneker.Telnyx.Validators.Signatures, 4.0.70"
#:package Soenneker.Telnyx.Validators.Signatures@4.0.70
#addin nuget:?package=Soenneker.Telnyx.Validators.Signatures&version=4.0.70
#tool nuget:?package=Soenneker.Telnyx.Validators.Signatures&version=4.0.70
Soenneker.Telnyx.Validators.Signatures
Validates Telnyx webhook signatures and rejects stale timestamps that could be replayed.
Installation
dotnet add package Soenneker.Telnyx.Validators.Signatures
Registration
using Soenneker.Telnyx.Validators.Signatures.Registrars;
services.AddTelnyxSignatureValidatorAsSingleton();
Configure the Telnyx API token used to retrieve the account's webhook-signing public key:
{
"Telnyx": {
"Token": "KEY..."
}
}
Usage
Pass the raw request body and the two Telnyx signature headers to the validator:
string payload = await reader.ReadToEndAsync(cancellationToken);
string signature = request.Headers["telnyx-signature-ed25519"].ToString();
string timestamp = request.Headers["telnyx-timestamp"].ToString();
bool valid = await validator.Validate(payload, signature, timestamp, cancellationToken);
The request body must be validated before it is parsed and reserialized. Telnyx signs the exact
{timestamp}|{payload} content. Timestamps more than five minutes in the past or future are rejected.
If verification fails, the validator conditionally refreshes the cached public key and retries once. Conditional refreshes are single-flight and rate-limited so invalid traffic cannot cause an unbounded number of Telnyx API requests.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Soenneker.Cryptography.Ed25519 (>= 4.0.138)
- Soenneker.Telnyx.PublicKeys (>= 4.0.62)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 4.0.70 | 42 | 9/13/2026 |
| 4.0.69 | 49 | 9/13/2026 |
| 4.0.68 | 37 | 9/13/2026 |
| 4.0.67 | 43 | 9/13/2026 |
| 4.0.66 | 43 | 9/12/2026 |
| 4.0.65 | 49 | 9/12/2026 |
| 4.0.63 | 55 | 9/10/2026 |
| 4.0.62 | 52 | 9/10/2026 |
| 4.0.61 | 56 | 9/9/2026 |
| 4.0.60 | 49 | 9/9/2026 |
| 4.0.59 | 72 | 9/9/2026 |
| 4.0.58 | 68 | 9/9/2026 |
| 4.0.57 | 78 | 9/8/2026 |
| 4.0.56 | 69 | 9/8/2026 |
| 4.0.55 | 78 | 9/8/2026 |
| 4.0.54 | 84 | 9/8/2026 |
| 4.0.53 | 88 | 9/8/2026 |
| 4.0.52 | 93 | 9/7/2026 |
| 4.0.51 | 96 | 9/7/2026 |
| 4.0.50 | 102 | 9/7/2026 |