Soenneker.Telnyx.Validators.Signatures
4.0.75
Prefix Reserved
dotnet add package Soenneker.Telnyx.Validators.Signatures --version 4.0.75
NuGet\Install-Package Soenneker.Telnyx.Validators.Signatures -Version 4.0.75
<PackageReference Include="Soenneker.Telnyx.Validators.Signatures" Version="4.0.75" />
<PackageVersion Include="Soenneker.Telnyx.Validators.Signatures" Version="4.0.75" />
<PackageReference Include="Soenneker.Telnyx.Validators.Signatures" />
paket add Soenneker.Telnyx.Validators.Signatures --version 4.0.75
#r "nuget: Soenneker.Telnyx.Validators.Signatures, 4.0.75"
#:package Soenneker.Telnyx.Validators.Signatures@4.0.75
#addin nuget:?package=Soenneker.Telnyx.Validators.Signatures&version=4.0.75
#tool nuget:?package=Soenneker.Telnyx.Validators.Signatures&version=4.0.75
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.141)
- Soenneker.Telnyx.PublicKeys (>= 4.0.64)
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.75 | 0 | 9/16/2026 |
| 4.0.74 | 0 | 9/16/2026 |
| 4.0.73 | 0 | 9/16/2026 |
| 4.0.72 | 7 | 9/15/2026 |
| 4.0.71 | 5 | 9/15/2026 |
| 4.0.70 | 68 | 9/13/2026 |
| 4.0.69 | 66 | 9/13/2026 |
| 4.0.68 | 55 | 9/13/2026 |
| 4.0.67 | 61 | 9/13/2026 |
| 4.0.66 | 60 | 9/12/2026 |
| 4.0.65 | 66 | 9/12/2026 |
| 4.0.63 | 74 | 9/10/2026 |
| 4.0.62 | 69 | 9/10/2026 |
| 4.0.61 | 74 | 9/9/2026 |
| 4.0.60 | 68 | 9/9/2026 |
| 4.0.59 | 93 | 9/9/2026 |
| 4.0.58 | 89 | 9/9/2026 |
| 4.0.57 | 100 | 9/8/2026 |
| 4.0.56 | 89 | 9/8/2026 |
| 4.0.55 | 88 | 9/8/2026 |