#### [Abblix\.SecurityEvents](https://www.abblix.com/en/docs/api/abblix-securityevents 'index')
### [Abblix\.SecurityEvents](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents 'Abblix\.SecurityEvents')

## SecurityEventTokenBuilder Class

Builds a SET whose envelope satisfies RFC 8417 by construction: the required claims are
enforced, the "typ" header is fixed, and the one claim the profile forbids cannot be written\.

```csharp
public sealed class SecurityEventTokenBuilder
```

Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → SecurityEventTokenBuilder

### Remarks
The builder is reusable: [Build\(\)](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents.SecurityEventTokenBuilder#Abblix.SecurityEvents.SecurityEventTokenBuilder.Build() 'Abblix\.SecurityEvents\.SecurityEventTokenBuilder\.Build\(\)') materializes an independent token each time, so a
transmitter may keep one builder per event shape and vary a claim between builds without the
tokens sharing state\.
### Constructors

## SecurityEventTokenBuilder\(TimeProvider\) Constructor {#Abblix.SecurityEvents.SecurityEventTokenBuilder.SecurityEventTokenBuilder(System.TimeProvider)}

Builds a SET whose envelope satisfies RFC 8417 by construction: the required claims are
enforced, the "typ" header is fixed, and the one claim the profile forbids cannot be written\.

```csharp
public SecurityEventTokenBuilder(System.TimeProvider? clock=null);
```
#### Parameters

###### `clock` [System\.TimeProvider](https://learn.microsoft.com/en-us/dotnet/api/system.timeprovider 'System\.TimeProvider') {#Abblix.SecurityEvents.SecurityEventTokenBuilder.SecurityEventTokenBuilder(System.TimeProvider).clock}

Supplies "iat" when [WithIssuedAt\(DateTimeOffset\)](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents.SecurityEventTokenBuilder#Abblix.SecurityEvents.SecurityEventTokenBuilder.WithIssuedAt(System.DateTimeOffset) 'Abblix\.SecurityEvents\.SecurityEventTokenBuilder\.WithIssuedAt\(System\.DateTimeOffset\)') is not called\. Defaults to the system clock; a
test hands in a fake to build tokens at a chosen instant\.

### Remarks
The builder is reusable: [Build\(\)](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents.SecurityEventTokenBuilder#Abblix.SecurityEvents.SecurityEventTokenBuilder.Build() 'Abblix\.SecurityEvents\.SecurityEventTokenBuilder\.Build\(\)') materializes an independent token each time, so a
transmitter may keep one builder per event shape and vary a claim between builds without the
tokens sharing state\.
### Properties

## SecurityEventTokenBuilder\.SingleEventStatement Property {#Abblix.SecurityEvents.SecurityEventTokenBuilder.SingleEventStatement}

Whether the token carries a single event statement, refusing a second where RFC 8417 would take it\.

```csharp
public bool SingleEventStatement { get; init; }
```

#### Property Value
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')

### Remarks
RFC 8417 Section 2 lets one SET carry several statements about different aspects of one transition,
and that is what this builder does by default, because it builds SETs for whatever profiles the
deployment speaks\. A profile may be tighter: the CAEP Interoperability Profile 1\.0 says "The
'events' claim of the SET MUST contain only one event", and a deployment claiming it sets this\.

Refused at the second statement - through either [WithEvent\(string, JsonObject\)](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents.SecurityEventTokenBuilder#Abblix.SecurityEvents.SecurityEventTokenBuilder.WithEvent(string,System.Text.Json.Nodes.JsonObject) 'Abblix\.SecurityEvents\.SecurityEventTokenBuilder\.WithEvent\(string, System\.Text\.Json\.Nodes\.JsonObject\)') or
[WithEvent&lt;TPayload&gt;\(string, TPayload, JsonSerializerOptions\)](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents.SecurityEventTokenBuilder#Abblix.SecurityEvents.SecurityEventTokenBuilder.WithEvent_TPayload_(string,TPayload,System.Text.Json.JsonSerializerOptions) 'Abblix\.SecurityEvents\.SecurityEventTokenBuilder\.WithEvent\<TPayload\>\(string, TPayload, System\.Text\.Json\.JsonSerializerOptions\)') - rather than at [Build\(\)](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents.SecurityEventTokenBuilder#Abblix.SecurityEvents.SecurityEventTokenBuilder.Build() 'Abblix\.SecurityEvents\.SecurityEventTokenBuilder\.Build\(\)'), so the failure names the
call that broke the rule instead of the one that noticed.
### Methods

## SecurityEventTokenBuilder\.Build\(\) Method {#Abblix.SecurityEvents.SecurityEventTokenBuilder.Build()}

Materializes the SET, verifying the claims RFC 8417 Section 2\.2 requires are in place\.

```csharp
public Abblix.SecurityEvents.SecurityEventToken Build();
```

#### Returns
[SecurityEventToken](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents.SecurityEventToken 'Abblix\.SecurityEvents\.SecurityEventToken')  
An independent token; later builder changes do not reach it\.

#### Exceptions

[System\.InvalidOperationException](https://learn.microsoft.com/en-us/dotnet/api/system.invalidoperationexception 'System\.InvalidOperationException')  
The issuer or the token identifier is missing, or no event statement was added\.

## SecurityEventTokenBuilder\.SignAsync\(ISecurityEventTokenSigner, CancellationToken\) Method {#Abblix.SecurityEvents.SecurityEventTokenBuilder.SignAsync(Abblix.SecurityEvents.Abstractions.ISecurityEventTokenSigner,System.Threading.CancellationToken)}

Materializes the SET and hands it to the signer, returning the compact serialization a
transmitter delivers\.

```csharp
public System.Threading.Tasks.Task<string> SignAsync(Abblix.SecurityEvents.Abstractions.ISecurityEventTokenSigner signer, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));
```
#### Parameters

###### `signer` [ISecurityEventTokenSigner](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents.Abstractions.ISecurityEventTokenSigner 'Abblix\.SecurityEvents\.Abstractions\.ISecurityEventTokenSigner') {#Abblix.SecurityEvents.SecurityEventTokenBuilder.SignAsync(Abblix.SecurityEvents.Abstractions.ISecurityEventTokenSigner,System.Threading.CancellationToken).signer}

The signer owning key and algorithm choice\.

###### `cancellationToken` [System\.Threading\.CancellationToken](https://learn.microsoft.com/en-us/dotnet/api/system.threading.cancellationtoken 'System\.Threading\.CancellationToken') {#Abblix.SecurityEvents.SecurityEventTokenBuilder.SignAsync(Abblix.SecurityEvents.Abstractions.ISecurityEventTokenSigner,System.Threading.CancellationToken).cancellationToken}

Cancels the signing operation mid\-flight\.

#### Returns
[System\.Threading\.Tasks\.Task&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')

## SecurityEventTokenBuilder\.WithAudience\(string\[\]\) Method {#Abblix.SecurityEvents.SecurityEventTokenBuilder.WithAudience(string[])}

Adds audiences to the "aud" claim\. RECOMMENDED \(RFC 8417 Section 2\.2\); calling more than
once accumulates\.

```csharp
public Abblix.SecurityEvents.SecurityEventTokenBuilder WithAudience(params string[] audiences);
```
#### Parameters

###### `audiences` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array') {#Abblix.SecurityEvents.SecurityEventTokenBuilder.WithAudience(string[]).audiences}

The audience identifiers to add\.

#### Returns
[SecurityEventTokenBuilder](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents.SecurityEventTokenBuilder 'Abblix\.SecurityEvents\.SecurityEventTokenBuilder')

## SecurityEventTokenBuilder\.WithClaim\(string, JsonNode\) Method {#Abblix.SecurityEvents.SecurityEventTokenBuilder.WithClaim(string,System.Text.Json.Nodes.JsonNode)}

Adds a profile\-specific envelope claim, which RFC 8417 Section 2 explicitly leaves room
for\.

```csharp
public Abblix.SecurityEvents.SecurityEventTokenBuilder WithClaim(string name, System.Text.Json.Nodes.JsonNode? value);
```
#### Parameters

###### `name` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String') {#Abblix.SecurityEvents.SecurityEventTokenBuilder.WithClaim(string,System.Text.Json.Nodes.JsonNode).name}

The claim name\.

###### `value` [System\.Text\.Json\.Nodes\.JsonNode](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonnode 'System\.Text\.Json\.Nodes\.JsonNode') {#Abblix.SecurityEvents.SecurityEventTokenBuilder.WithClaim(string,System.Text.Json.Nodes.JsonNode).value}

The claim value\.

#### Returns
[SecurityEventTokenBuilder](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents.SecurityEventTokenBuilder 'Abblix\.SecurityEvents\.SecurityEventTokenBuilder')

#### Exceptions

[System\.ArgumentException](https://learn.microsoft.com/en-us/dotnet/api/system.argumentexception 'System\.ArgumentException')  
The name is "exp", a claim a dedicated builder method manages, or a name already written
through this method \- every claim has exactly one writer\. "exp" is rejected
outright: RFC 8417 Section 2\.2 already advises against it for a token that records
history, and Sections 4\.1 and 4\.2 make its ABSENCE the wall between a SET and the ID and
access tokens an attacker would like to pass one off as \- this builder takes that defence
as its own profile rule rather than leaving it to every caller\.

## SecurityEventTokenBuilder\.WithEvent\(string, JsonObject\) Method {#Abblix.SecurityEvents.SecurityEventTokenBuilder.WithEvent(string,System.Text.Json.Nodes.JsonObject)}

Adds an event statement to the "events" claim\. At least one is required for the build to
succeed; several express aspects of the same state transition \(RFC 8417 Section 2\), such
as an extension accompanying a primary event\.

```csharp
public Abblix.SecurityEvents.SecurityEventTokenBuilder WithEvent(string eventType, System.Text.Json.Nodes.JsonObject? payload=null);
```
#### Parameters

###### `eventType` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String') {#Abblix.SecurityEvents.SecurityEventTokenBuilder.WithEvent(string,System.Text.Json.Nodes.JsonObject).eventType}

The event identifier URI\.

###### `payload` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject') {#Abblix.SecurityEvents.SecurityEventTokenBuilder.WithEvent(string,System.Text.Json.Nodes.JsonObject).payload}

The event's payload; null stands for an event with no payload claims and is written as the
empty JSON object \(RFC 8417 Section 2\)\.

#### Returns
[SecurityEventTokenBuilder](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents.SecurityEventTokenBuilder 'Abblix\.SecurityEvents\.SecurityEventTokenBuilder')

#### Exceptions

[System\.ArgumentException](https://learn.microsoft.com/en-us/dotnet/api/system.argumentexception 'System\.ArgumentException')  
A statement with the same event identifier was already added \(RFC 8417 Section 2\.2\)\.

[System\.InvalidOperationException](https://learn.microsoft.com/en-us/dotnet/api/system.invalidoperationexception 'System\.InvalidOperationException')  
A second statement was added while [SingleEventStatement](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents.SecurityEventTokenBuilder#Abblix.SecurityEvents.SecurityEventTokenBuilder.SingleEventStatement 'Abblix\.SecurityEvents\.SecurityEventTokenBuilder\.SingleEventStatement') is set\.

## SecurityEventTokenBuilder\.WithEvent\<TPayload\>\(string, TPayload, JsonSerializerOptions\) Method {#Abblix.SecurityEvents.SecurityEventTokenBuilder.WithEvent_TPayload_(string,TPayload,System.Text.Json.JsonSerializerOptions)}

Adds an event statement whose payload is a typed model, serialized here so the caller
works in terms of the profiling specification's type rather than raw JSON\.

```csharp
public Abblix.SecurityEvents.SecurityEventTokenBuilder WithEvent<TPayload>(string eventType, TPayload payload, System.Text.Json.JsonSerializerOptions? serializerOptions=null)
    where TPayload : Abblix.SecurityEvents.Events.IEventPayload;
```
#### Type parameters

###### `TPayload` {#Abblix.SecurityEvents.SecurityEventTokenBuilder.WithEvent_TPayload_(string,TPayload,System.Text.Json.JsonSerializerOptions).TPayload}

The type modelling the event's payload\.
#### Parameters

###### `eventType` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String') {#Abblix.SecurityEvents.SecurityEventTokenBuilder.WithEvent_TPayload_(string,TPayload,System.Text.Json.JsonSerializerOptions).eventType}

The event identifier URI\.

###### `payload` [TPayload](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents.SecurityEventTokenBuilder#Abblix.SecurityEvents.SecurityEventTokenBuilder.WithEvent_TPayload_(string,TPayload,System.Text.Json.JsonSerializerOptions).TPayload 'Abblix\.SecurityEvents\.SecurityEventTokenBuilder\.WithEvent\<TPayload\>\(string, TPayload, System\.Text\.Json\.JsonSerializerOptions\)\.TPayload') {#Abblix.SecurityEvents.SecurityEventTokenBuilder.WithEvent_TPayload_(string,TPayload,System.Text.Json.JsonSerializerOptions).payload}

The payload value\.

###### `serializerOptions` [System\.Text\.Json\.JsonSerializerOptions](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.jsonserializeroptions 'System\.Text\.Json\.JsonSerializerOptions') {#Abblix.SecurityEvents.SecurityEventTokenBuilder.WithEvent_TPayload_(string,TPayload,System.Text.Json.JsonSerializerOptions).serializerOptions}

Options for payload serialization; null takes the serializer's defaults\. A receiver reads
the payload back with the options its [EventTypeRegistry](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents.Events.EventTypeRegistry 'Abblix\.SecurityEvents\.Events\.EventTypeRegistry') holds, so a
transmitter and receiver sharing a dictionary package agree by construction\.

#### Returns
[SecurityEventTokenBuilder](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents.SecurityEventTokenBuilder 'Abblix\.SecurityEvents\.SecurityEventTokenBuilder')

#### Exceptions

[System\.ArgumentException](https://learn.microsoft.com/en-us/dotnet/api/system.argumentexception 'System\.ArgumentException')  
A statement with the same event identifier was already added, or the payload serialized
into something other than a JSON object, which RFC 8417 Section 2\.2 requires the value to
be\.

[System\.InvalidOperationException](https://learn.microsoft.com/en-us/dotnet/api/system.invalidoperationexception 'System\.InvalidOperationException')  
A second statement was added while [SingleEventStatement](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents.SecurityEventTokenBuilder#Abblix.SecurityEvents.SecurityEventTokenBuilder.SingleEventStatement 'Abblix\.SecurityEvents\.SecurityEventTokenBuilder\.SingleEventStatement') is set\.

## SecurityEventTokenBuilder\.WithIssuedAt\(DateTimeOffset\) Method {#Abblix.SecurityEvents.SecurityEventTokenBuilder.WithIssuedAt(System.DateTimeOffset)}

Sets the "iat" claim explicitly instead of taking the clock's reading at build time\.

```csharp
public Abblix.SecurityEvents.SecurityEventTokenBuilder WithIssuedAt(System.DateTimeOffset issuedAt);
```
#### Parameters

###### `issuedAt` [System\.DateTimeOffset](https://learn.microsoft.com/en-us/dotnet/api/system.datetimeoffset 'System\.DateTimeOffset') {#Abblix.SecurityEvents.SecurityEventTokenBuilder.WithIssuedAt(System.DateTimeOffset).issuedAt}

When the SET is issued\.

#### Returns
[SecurityEventTokenBuilder](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents.SecurityEventTokenBuilder 'Abblix\.SecurityEvents\.SecurityEventTokenBuilder')

## SecurityEventTokenBuilder\.WithIssuer\(string\) Method {#Abblix.SecurityEvents.SecurityEventTokenBuilder.WithIssuer(string)}

Sets the "iss" claim: the service provider publishing the SET\. REQUIRED
\(RFC 8417 Section 2\.2\)\.

```csharp
public Abblix.SecurityEvents.SecurityEventTokenBuilder WithIssuer(string issuer);
```
#### Parameters

###### `issuer` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String') {#Abblix.SecurityEvents.SecurityEventTokenBuilder.WithIssuer(string).issuer}

The issuer identifier\.

#### Returns
[SecurityEventTokenBuilder](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents.SecurityEventTokenBuilder 'Abblix\.SecurityEvents\.SecurityEventTokenBuilder')

## SecurityEventTokenBuilder\.WithJwtId\(string\) Method {#Abblix.SecurityEvents.SecurityEventTokenBuilder.WithJwtId(string)}

Sets the "jti" claim: the SET's unique identifier within its event feed, by which a
recipient tells a redelivery from a new event\. REQUIRED \(RFC 8417 Section 2\.2\)\.

```csharp
public Abblix.SecurityEvents.SecurityEventTokenBuilder WithJwtId(string jwtId);
```
#### Parameters

###### `jwtId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String') {#Abblix.SecurityEvents.SecurityEventTokenBuilder.WithJwtId(string).jwtId}

The token identifier\.

#### Returns
[SecurityEventTokenBuilder](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents.SecurityEventTokenBuilder 'Abblix\.SecurityEvents\.SecurityEventTokenBuilder')

## SecurityEventTokenBuilder\.WithSubject\(string\) Method {#Abblix.SecurityEvents.SecurityEventTokenBuilder.WithSubject(string)}

Sets the "sub" claim: the principal the SET is about\. OPTIONAL \(RFC 8417 Section 2\.2\), and
many profiles identify the subject inside the event payload instead \- Section 3 recommends
against "sub" when the subject is not globally unique and has a different issuer than the
SET\.

```csharp
public Abblix.SecurityEvents.SecurityEventTokenBuilder WithSubject(string subject);
```
#### Parameters

###### `subject` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String') {#Abblix.SecurityEvents.SecurityEventTokenBuilder.WithSubject(string).subject}

The subject value, in whatever form the profile defines\.

#### Returns
[SecurityEventTokenBuilder](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents.SecurityEventTokenBuilder 'Abblix\.SecurityEvents\.SecurityEventTokenBuilder')

## SecurityEventTokenBuilder\.WithSubjectId\(SubjectIdentifier\) Method {#Abblix.SecurityEvents.SecurityEventTokenBuilder.WithSubjectId(Abblix.SecurityEvents.Subjects.SubjectIdentifier)}

Sets the "sub\_id" claim: the Subject Identifier of the principal the SET is about
\(RFC 9493 Section 4\.2\)\.

```csharp
public Abblix.SecurityEvents.SecurityEventTokenBuilder WithSubjectId(Abblix.SecurityEvents.Subjects.SubjectIdentifier subjectId);
```
#### Parameters

###### `subjectId` [SubjectIdentifier](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents.Subjects.SubjectIdentifier 'Abblix\.SecurityEvents\.Subjects\.SubjectIdentifier') {#Abblix.SecurityEvents.SecurityEventTokenBuilder.WithSubjectId(Abblix.SecurityEvents.Subjects.SubjectIdentifier).subjectId}

The Subject Identifier, in any Identifier Format\.

#### Returns
[SecurityEventTokenBuilder](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents.SecurityEventTokenBuilder 'Abblix\.SecurityEvents\.SecurityEventTokenBuilder')

### Remarks
Serialization happens at [Build\(\)](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents.SecurityEventTokenBuilder#Abblix.SecurityEvents.SecurityEventTokenBuilder.Build() 'Abblix\.SecurityEvents\.SecurityEventTokenBuilder\.Build\(\)') under the identifier's runtime type, so a
profile\-specific subtype travels correctly without this builder knowing its format \- the
custom\-formats registration matters only to the reader\.

## SecurityEventTokenBuilder\.WithTimeOfEvent\(DateTimeOffset\) Method {#Abblix.SecurityEvents.SecurityEventTokenBuilder.WithTimeOfEvent(System.DateTimeOffset)}

Sets the "toe" claim: when the event itself occurred\. OPTIONAL \(RFC 8417 Section 2\.2\) \-
omitting it is the issuer's way of not sharing an event time\.

```csharp
public Abblix.SecurityEvents.SecurityEventTokenBuilder WithTimeOfEvent(System.DateTimeOffset timeOfEvent);
```
#### Parameters

###### `timeOfEvent` [System\.DateTimeOffset](https://learn.microsoft.com/en-us/dotnet/api/system.datetimeoffset 'System\.DateTimeOffset') {#Abblix.SecurityEvents.SecurityEventTokenBuilder.WithTimeOfEvent(System.DateTimeOffset).timeOfEvent}

When the event occurred; a profile may allow it to be approximate\.

#### Returns
[SecurityEventTokenBuilder](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents.SecurityEventTokenBuilder 'Abblix\.SecurityEvents\.SecurityEventTokenBuilder')

## SecurityEventTokenBuilder\.WithTransactionId\(string\) Method {#Abblix.SecurityEvents.SecurityEventTokenBuilder.WithTransactionId(string)}

Sets the "txn" claim: a transaction identifier correlating this SET with other JWTs issued
for the same transaction\. OPTIONAL \(RFC 8417 Section 2\.2\)\.

```csharp
public Abblix.SecurityEvents.SecurityEventTokenBuilder WithTransactionId(string transactionId);
```
#### Parameters

###### `transactionId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String') {#Abblix.SecurityEvents.SecurityEventTokenBuilder.WithTransactionId(string).transactionId}

The transaction identifier\.

#### Returns
[SecurityEventTokenBuilder](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents.SecurityEventTokenBuilder 'Abblix\.SecurityEvents\.SecurityEventTokenBuilder')
