Skip to content

.NET Core

Class in Verifiabl

Structured Australian employee address. Country is omitted because AU2 identifies the jurisdiction.

public sealed class AustralianAddress

Inheritance: System.Object

Property

Address lines before the locality line, such as a unit and street. Empty lines are omitted from the encoded display value.

public IReadOnlyList<string>? Lines { get; set; }

Returns: System.Collections.Generic.IReadOnlyList{System.String}

Property

Suburb or locality.

public string? Suburb { get; set; }

Returns: System.String

Property

State or territory as supplied by the provider.

public string? StateOrTerritory { get; set; }

Returns: System.String

Property

Postcode as supplied by the provider.

public string? Postcode { get; set; }

Returns: System.String

Class in Verifiabl

Employee PII for an Australian payslip. Every field is optional and is carried only inside the encrypted AU2 barcode payload.

public sealed class AustralianPiiFields

Inheritance: System.Object

Property

Employee full name as printed on the payslip.

public string? EmployeeName { get; set; }

Returns: System.String

Property

Employee position or job title.

public string? Position { get; set; }

Returns: System.String

Property

Employee department.

public string? Department { get; set; }

Returns: System.String

Property

Employer name as printed on the payslip. Used when Verifiabl.AustralianPiiFields.EmployerAbn is absent.

public string? EmployerName { get; set; }

Returns: System.String

Property

Employer ABN as printed on the payslip. When supplied, this is encoded instead of Verifiabl.AustralianPiiFields.EmployerName.

public string? EmployerAbn { get; set; }

Returns: System.String

Property

Bank State Branch code as printed, including masking or separators.

public string? Bsb { get; set; }

Returns: System.String

Property

Payment account number as printed, including masking or separators.

public string? AccountNumber { get; set; }

Returns: System.String

Property

Payment account name as printed.

public string? AccountName { get; set; }

Returns: System.String

Property

Structured Australian address collapsed into one AU2 display field.

public AustralianAddress? Address { get; set; }

Returns: Verifiabl.AustralianAddress

Enum in Verifiabl

QR error-correction levels used by the barcode renderer.

public enum BarcodeErrorCorrectionLevel

Field

~7% damage recovery. Produces larger modules at the cost of damage tolerance.

Low = 0

Returns: Verifiabl.BarcodeErrorCorrectionLevel

Field

~15% damage recovery. The default ceiling.

Medium = 1

Returns: Verifiabl.BarcodeErrorCorrectionLevel

Field

~25% damage recovery, at the cost of a denser code.

Quartile = 2

Returns: Verifiabl.BarcodeErrorCorrectionLevel

Enum in Verifiabl

Badge arrangements for the barcode renderer.

public enum BarcodeLayout

Field

The navy “Secured by Verifiabl” header above the QR code. The default.

Vertical = 0

Returns: Verifiabl.BarcodeLayout

Field

A light-tinted “Secured by Verifiabl” frame to the right of the QR code, for short, wide spaces.

Horizontal = 1

Returns: Verifiabl.BarcodeLayout

Class in Verifiabl

The two values embedded in every locally generated barcode.

public sealed class BarcodeParts

Inheritance: System.Object

Constructor

Pairs a Verifiabl reference with its encrypted PII ciphertext.

public BarcodeParts(string verifiablReference, byte[] encryptedPii)
Parameter Type Description
verifiablReference System.String Verifiabl reference returned by Verifiabl.Client.VerifiablClient.RegisterNonPiiAsync(Verifiabl.Client.RegisterNonPiiRequest,System.Threading.CancellationToken) (or generated with Verifiabl.VerifiablReference.Generate for batches).
encryptedPii System.Byte[] Encrypted PII ciphertext bytes from Verifiabl.VerifiablCrypto.EncryptPii(System.String,System.Byte[]).

Property

Verifiabl reference registered for this payslip.

public string VerifiablReference { get; }

Returns: System.String

Property

Encrypted PII ciphertext bytes.

public byte[] EncryptedPii { get; }

Returns: System.Byte[]

Class in Verifiabl

Result of Verifiabl.VerifiablBarcode.CreatePng(Verifiabl.BarcodeParts,Verifiabl.BarcodeSvgOptions,System.Int32).

public sealed class BarcodePngResult

Inheritance: System.Object

Property

PNG image bytes.

public byte[] Png { get; }

Returns: System.Byte[]

Property

Bitmap width in pixels.

public int Width { get; }

Returns: System.Int32

Property

Bitmap height in pixels.

public int Height { get; }

Returns: System.Int32

Property

The exact string encoded in the QR code.

public string Content { get; }

Returns: System.String

Property

Error-correction level actually used. Normally the configured ceiling (Verifiabl.BarcodeSvgOptions.MaxErrorCorrection, default Medium); drops below it only for unusually long PII so the code still fits the fixed frame.

public BarcodeErrorCorrectionLevel ErrorCorrectionLevel { get; }

Returns: Verifiabl.BarcodeErrorCorrectionLevel

Property

QR symbol version (1-40), for scanner-fixture attribution.

public int QrVersion { get; }

Returns: System.Int32

Property

Rendered size of one QR module, in output pixels.

public double ModulePx { get; }

Returns: System.Double

Property

True when the renderer had to trade scan robustness to fit the payload (error correction below the configured ceiling, or modules below the ideal size). False for essentially all real records. Log this to observe the long tail at scale.

public bool Degraded { get; }

Returns: System.Boolean

Class in Verifiabl

Options for Verifiabl.VerifiablBarcode.CreateSvg(Verifiabl.BarcodeParts,Verifiabl.BarcodeSvgOptions).

public sealed class BarcodeSvgOptions

Inheritance: System.Object

Property

API environment for the public QR scan URL. Defaults to production.

public VerifiablEnvironment Environment { get; set; }

Returns: Verifiabl.VerifiablEnvironment

Property

Advanced override for the public QR scan URL origin. Defaults to the selected environment’s scan URL origin. Must use https.

public Uri? ScanBaseUrl { get; set; }

Returns: System.Uri

Property

Badge arrangement (default: Verifiabl.BarcodeLayout.Vertical).

public BarcodeLayout Layout { get; set; }

Returns: Verifiabl.BarcodeLayout

Property

Total badge width in SVG user units / px. Unless set, this is the minimum for Verifiabl.BarcodeSvgOptions.Layout: 480 for the vertical layout and 940 for the horizontal layout. Both minimums render the QR code at the same size.

public double Width { get; set; }

Returns: System.Double

Property

Highest QR error-correction level to use: Verifiabl.BarcodeErrorCorrectionLevel.Low, Verifiabl.BarcodeErrorCorrectionLevel.Medium (the default), or Verifiabl.BarcodeErrorCorrectionLevel.Quartile. The renderer still steps below this only when the payload would not otherwise fit the fixed frame.

Medium (~15% damage recovery) balances module size and recovery. Choose Low (~7% recovery) to make dense payload modules larger, accepting less resilience to wear. Choose Quartile (~25% recovery) for documents expected to take heavy print wear, accepting a denser code (one or two QR versions larger).

public BarcodeErrorCorrectionLevel MaxErrorCorrection { get; set; }

Returns: Verifiabl.BarcodeErrorCorrectionLevel

Class in Verifiabl

Result of Verifiabl.VerifiablBarcode.CreateSvg(Verifiabl.BarcodeParts,Verifiabl.BarcodeSvgOptions).

public sealed class BarcodeSvgResult

Inheritance: System.Object

Property

Complete standalone SVG document.

public string Svg { get; }

Returns: System.String

Property

Badge width in SVG user units / px.

public double Width { get; }

Returns: System.Double

Property

Badge height in SVG user units / px.

public double Height { get; }

Returns: System.Double

Property

The exact string encoded in the QR code.

public string Content { get; }

Returns: System.String

Property

Error-correction level actually used. Normally the configured ceiling (Verifiabl.BarcodeSvgOptions.MaxErrorCorrection, default Medium); drops below it only for unusually long PII so the code still fits the fixed frame.

public BarcodeErrorCorrectionLevel ErrorCorrectionLevel { get; }

Returns: Verifiabl.BarcodeErrorCorrectionLevel

Property

QR symbol version (1-40), for scanner-fixture attribution.

public int QrVersion { get; }

Returns: System.Int32

Property

Rendered size of one QR module, in output pixels.

public double ModulePx { get; }

Returns: System.Double

Property

True when the renderer had to trade scan robustness to fit the payload (error correction below the configured ceiling, or modules below the ideal size). False for essentially all real records. Log this to observe the long tail at scale.

public bool Degraded { get; }

Returns: System.Boolean

Class in Verifiabl

Result of Verifiabl.VerifiablCrypto.EncryptPii(System.String,System.Byte[]).

public sealed class EncryptedPii

Inheritance: System.Object

Property

AES-256-GCM ciphertext bytes to store or pass to the barcode and client APIs. The SDK applies Base32 or base64url encoding at the relevant output boundary.

public byte[] Ciphertext { get; }

Returns: System.Byte[]

Property

Server-side decryption metadata for the registration endpoints.

public EncryptionMetadata Metadata { get; }

Returns: Verifiabl.EncryptionMetadata

Class in Verifiabl

Decryption metadata stored server-side at registration time: the AES-GCM IV and authentication tag. Verifiabl finds the decryption key at verification time; no key identifier is sent.

public sealed class EncryptionMetadata

Inheritance: System.Object

Property

96-bit (12-byte) IV.

public required byte[] Iv { get; set; }

Returns: System.Byte[]

Property

128-bit (16-byte) GCM authentication tag.

public required byte[] Tag { get; set; }

Returns: System.Byte[]

Class in Verifiabl

Structured New Zealand employee address. Country is omitted because NZ2 identifies the jurisdiction.

public sealed class NewZealandAddress

Inheritance: System.Object

Property

Address lines before the suburb and city lines, such as a unit and street. Empty lines are omitted from the encoded display value.

public IReadOnlyList<string>? Lines { get; set; }

Returns: System.Collections.Generic.IReadOnlyList{System.String}

Property

Suburb, when shown.

public string? Suburb { get; set; }

Returns: System.String

Property

Town or city.

public string? City { get; set; }

Returns: System.String

Property

Postcode as supplied by the provider.

public string? Postcode { get; set; }

Returns: System.String

Class in Verifiabl

Employee PII for a New Zealand payslip. Every field is optional and is carried only inside the encrypted NZ2 barcode payload.

public sealed class NewZealandPiiFields

Inheritance: System.Object

Property

Employee full name as printed on the payslip.

public string? EmployeeName { get; set; }

Returns: System.String

Property

Employee IRD number as printed, including masking or separators.

public string? IrdNumber { get; set; }

Returns: System.String

Property

Employee position or job title.

public string? Position { get; set; }

Returns: System.String

Property

Employee department.

public string? Department { get; set; }

Returns: System.String

Property

Employer name as printed on the payslip.

public string? EmployerName { get; set; }

Returns: System.String

Property

Payment account number as printed, including masking or separators.

public string? AccountNumber { get; set; }

Returns: System.String

Property

Payment account name as printed.

public string? AccountName { get; set; }

Returns: System.String

Property

Structured New Zealand address collapsed into one NZ2 display field.

public NewZealandAddress? Address { get; set; }

Returns: Verifiabl.NewZealandAddress

Class in Verifiabl

Formats employee PII into Verifiabl’s compact plaintext wire format and back.

The wire format is a pipe-delimited plaintext string. It is encrypted before being embedded in the barcode and is never sent to the Verifiabl API in plaintext.

Verifiabl.Pii.Format(Verifiabl.PiiFields) retains the existing P2 compatibility layout. Verifiabl.Pii.FormatAustralian(Verifiabl.AustralianPiiFields) and Verifiabl.Pii.FormatNewZealand(Verifiabl.NewZealandPiiFields) write the AU2 and NZ2 jurisdiction profiles.

Legacy P1 plaintext remains readable through Verifiabl.Pii.Parse(System.String) for existing documents, but cannot be generated.

public static class Pii

Inheritance: System.Object

Method

Format employee PII as the current P2 plaintext. The result is what you encrypt with Verifiabl.VerifiablCrypto.EncryptPii(System.String,System.Byte[]) before embedding it in a barcode.

public static string Format(PiiFields fields)
Parameter Type Description
fields Verifiabl.PiiFields

Returns: System.String

Method

Format Australian employee PII as the fixed-arity AU2 plaintext paired with au.payslip.v2.

public static string FormatAustralian(AustralianPiiFields fields)
Parameter Type Description
fields Verifiabl.AustralianPiiFields

Returns: System.String

Method

Format New Zealand employee PII as the fixed-arity NZ2 plaintext paired with nz.payslip.v2.

public static string FormatNewZealand(NewZealandPiiFields fields)
Parameter Type Description
fields Verifiabl.NewZealandPiiFields

Returns: System.String

Method

Parse Verifiabl’s compact PII wire format back into named fields. Empty segments are left null, mirroring Verifiabl’s scan-time behaviour.

Useful for round-trip testing your integration; not needed in the normal issuance flow.

public static PiiFields Parse(string plaintext)
Parameter Type Description
plaintext System.String

Returns: Verifiabl.PiiFields

Exceptions

Type Condition
System.FormatException The input is not a valid P1 or P2 PII string.

Class in Verifiabl

Employee PII fields carried in the encrypted barcode payload. All fields are optional; omitted fields are encoded as empty segments and skipped by Verifiabl.

P2 values must contain valid Unicode and must not contain the pipe character | (the wire delimiter) or Unicode General Categories Cc (control), Cf (format), Zl (line separator), or Zp (paragraph separator). The complete P2 plaintext, including framing and delimiters, is limited to 1024 UTF-8 bytes when written. Values are preserved without Unicode normalization.

public class PiiFields

Inheritance: System.Object

Property

Employee full name as printed on the payslip.

public string? EmployeeName { get; set; }

Returns: System.String

Property

Employee position or job title.

public string? Position { get; set; }

Returns: System.String

Property

Employee department.

public string? Department { get; set; }

Returns: System.String

Property

Employer Australian Business Number.

public string? EmployerAbn { get; set; }

Returns: System.String

Property

Bank State Branch code of the payment account.

public string? Bsb { get; set; }

Returns: System.String

Property

Payment account number.

public string? AccountNumber { get; set; }

Returns: System.String

Property

Payment account name.

public string? AccountName { get; set; }

Returns: System.String

Property

Optional unstructured address, preserved verbatim. P2 has no address-specific limit; the complete newly written P2 plaintext, including framing and delimiters, is limited to 1024 UTF-8 bytes.

public string? Address { get; set; }

Returns: System.String

Class in Verifiabl

A locally encrypted v2 issuance, with a persistent self-managed reference.

public sealed class PreparedV2Payslip

Inheritance: System.Object

Property

Persist with the registration for self-managed retries across processes.

public string VerifiablReference { get; }

Returns: System.String

Property

Self-managed request; also suitable for a batch record with this reference.

public RegisterNonPiiRequest Registration { get; }

Returns: Verifiabl.Client.RegisterNonPiiRequest

Property

The API-managed flow allocates its own reference and cannot retry ambiguous failures.

public RegisterAndBuildBarcodeRequest ApiManagedRegistration { get; }

Returns: Verifiabl.Client.RegisterAndBuildBarcodeRequest

Method

Pair the registration response reference with this issuance’s ciphertext.

public BarcodeParts BarcodeParts(string reference)
Parameter Type Description
reference System.String

Returns: Verifiabl.BarcodeParts

Class in Verifiabl

Options for Verifiabl.VerifiablBarcode.BuildScanUrl(Verifiabl.BarcodeParts,Verifiabl.ScanUrlOptions).

public sealed class ScanUrlOptions

Inheritance: System.Object

Property

API environment for the public QR scan URL. Defaults to production.

public VerifiablEnvironment Environment { get; set; }

Returns: Verifiabl.VerifiablEnvironment

Property

Advanced override for the public QR scan URL origin. Defaults to the selected environment’s scan URL origin. Must use https. This URL is printed on payslip documents and cannot be changed after issuance.

public Uri? ScanBaseUrl { get; set; }

Returns: System.Uri

Class in Verifiabl

Recommended jurisdiction-specific v2 path; low-level APIs remain available.

public static class V2Issuance

Inheritance: System.Object

PrepareAustralian(AustralianPiiFields, AustralianPayslipV2, DateTimeOffset, byte[], string?)

Section titled “PrepareAustralian(AustralianPiiFields, AustralianPayslipV2, DateTimeOffset, byte[], string?)”

Method

Validate and encrypt an Australian v2 payslip using the AU2 PII profile.

public static PreparedV2Payslip PrepareAustralian(AustralianPiiFields pii, AustralianPayslipV2 payslip, DateTimeOffset issuedAt, byte[] key, string? verifiablReference = null)
Parameter Type Description
pii Verifiabl.AustralianPiiFields
payslip Verifiabl.Client.AustralianPayslipV2
issuedAt System.DateTimeOffset
key System.Byte[]
verifiablReference System.String

Returns: Verifiabl.PreparedV2Payslip

PrepareNewZealand(NewZealandPiiFields, NewZealandPayslipV2, DateTimeOffset, byte[], string?)

Section titled “PrepareNewZealand(NewZealandPiiFields, NewZealandPayslipV2, DateTimeOffset, byte[], string?)”

Method

Validate and encrypt a New Zealand v2 payslip using the NZ2 PII profile.

public static PreparedV2Payslip PrepareNewZealand(NewZealandPiiFields pii, NewZealandPayslipV2 payslip, DateTimeOffset issuedAt, byte[] key, string? verifiablReference = null)
Parameter Type Description
pii Verifiabl.NewZealandPiiFields
payslip Verifiabl.Client.NewZealandPayslipV2
issuedAt System.DateTimeOffset
key System.Byte[]
verifiablReference System.String

Returns: Verifiabl.PreparedV2Payslip

Class in Verifiabl

Builds the payload and scan URL embedded in Verifiabl barcodes, and renders the branded “Secured by Verifiabl” QR badge as SVG.

public static class VerifiablBarcode

Inheritance: System.Object

Field

XMP namespace for the PDF metadata copy of the barcode payload. The namespace is permanent: it is embedded in already-issued PDFs, so it must not change.

Write the barcode payload (Verifiabl.VerifiablBarcode.BuildPayload(Verifiabl.BarcodeParts)) into the payslip PDF’s XMP metadata in addition to the QR code, so a verifier can read the payload even when the QR itself cannot be scanned. Both hold the identical encrypted 2|verifiablReference|&amp;lt;Base32 ciphertext&amp;gt; value by default; never write plaintext PII to metadata, which is not encrypted. Write the value with any PDF toolchain that can set a custom XMP property; the SDK only provides the keys.

public const string PdfPayloadXmpNamespace = "https://verifiabl.io/ns/"

Returns: System.String

Field

XMP property name for the PDF metadata copy of the payload.

public const string PdfPayloadXmpProperty = "payload"

Returns: System.String

Method

Build the default v2 barcode payload: 2|&amp;lt;verifiablReference&amp;gt;|&amp;lt;Base32 ciphertext&amp;gt;.

This is the bare wire format, and the value to write into the PDF’s XMP metadata. For QR codes intended to be scanned by phones, prefer Verifiabl.VerifiablBarcode.BuildScanUrl(Verifiabl.BarcodeParts,Verifiabl.ScanUrlOptions), which carries the same reference and ciphertext as a public scan-redirect URL.

public static string BuildPayload(BarcodeParts parts)
Parameter Type Description
parts Verifiabl.BarcodeParts

Returns: System.String

BuildScanUrl(BarcodeParts, ScanUrlOptions?)

Section titled “BuildScanUrl(BarcodeParts, ScanUrlOptions?)”

Method

Build the URL encoded into Verifiabl QR codes. The default is: https://v.verifiabl.io/v/&amp;lt;verifiablReference&amp;gt;#2.&amp;lt;Base32 ciphertext&amp;gt;. The scan URL sends scanners to Verifiabl instead of exposing raw ciphertext in a phone camera preview.

The ciphertext rides in the fragment, which no client transmits to a server, so it cannot reach a request log at Verifiabl or at any intermediary. Every character stays inside the URI-safe Base32 or base64url alphabets plus ., which keeps scanners treating this as a URL and offering tap-to-open rather than showing it as plain text.

public static string BuildScanUrl(BarcodeParts parts, ScanUrlOptions? options = null)
Parameter Type Description
parts Verifiabl.BarcodeParts
options Verifiabl.ScanUrlOptions

Returns: System.String

CreateSvg(BarcodeParts, BarcodeSvgOptions?)

Section titled “CreateSvg(BarcodeParts, BarcodeSvgOptions?)”

Method

Render the branded Verifiabl barcode as a standalone SVG suitable for embedding in a payslip PDF.

Takes the Verifiabl reference from Verifiabl.Client.VerifiablClient.RegisterNonPiiAsync(Verifiabl.Client.RegisterNonPiiRequest,System.Threading.CancellationToken) and the encrypted PII ciphertext from Verifiabl.VerifiablCrypto.EncryptPii(System.String,System.Byte[]). SVG scales to any size without losing quality; if your document pipeline needs a raster image, use Verifiabl.VerifiablBarcode.CreatePng(Verifiabl.BarcodeParts,Verifiabl.BarcodeSvgOptions,System.Int32) rather than rasterising the SVG yourself, so module edges stay crisp and scannable.

public static BarcodeSvgResult CreateSvg(BarcodeParts parts, BarcodeSvgOptions? options = null)
Parameter Type Description
parts Verifiabl.BarcodeParts
options Verifiabl.BarcodeSvgOptions

Returns: Verifiabl.BarcodeSvgResult

CreatePng(BarcodeParts, BarcodeSvgOptions?, int)

Section titled “CreatePng(BarcodeParts, BarcodeSvgOptions?, int)”

Method

Render the branded Verifiabl barcode as a PNG.

The PNG is composited deterministically from a pre-rasterised frame plus exact pixel-aligned QR modules - no vector rasteriser and no native dependencies - so the same record produces the byte-identical raster in every Verifiabl SDK. Because the frame is pre-rasterised, PNG output exists only at pixel widths 480, 720, 960 and 1440 for the vertical layout, and 940, 1410, 1880 and 2820 for the horizontal layout. Both width sets render the QR code at the same sizes. The physical print size is set where the image is placed in the PDF. If you need a different size, prefer Verifiabl.VerifiablBarcode.CreateSvg(Verifiabl.BarcodeParts,Verifiabl.BarcodeSvgOptions), which scales continuously. Verifiabl.BarcodeSvgOptions.Width is ignored here; pixelWidth controls the bitmap size.

public static BarcodePngResult CreatePng(BarcodeParts parts, BarcodeSvgOptions? options = null, int pixelWidth = 0)
Parameter Type Description
parts Verifiabl.BarcodeParts The Verifiabl reference and encrypted PII ciphertext.
options Verifiabl.BarcodeSvgOptions Scan URL, layout and error-correction options.
pixelWidth System.Int32 Output bitmap width in pixels. The default, 0, selects 720 for the vertical layout and 1410 for the horizontal layout.

Returns: Verifiabl.BarcodePngResult

Class in Verifiabl

PII encryption helper.

Verifiabl decrypts barcode ciphertext with AES-256-GCM using a 96-bit IV and a 128-bit authentication tag. Verifiabl.VerifiablCrypto.EncryptPii(System.String,System.Byte[]) returns the IV, tag, and ciphertext as bytes; the SDK applies the required encoding when it sends an API request or builds a barcode.

Each provider has its own encryption key, so a ciphertext can only be decrypted with the key of the provider that issued it.

Key handling rules (ISO 27001-aligned, these are your obligations as a provider): the 32-byte key must come from a KMS or secrets manager — never hard-code it, commit it, or log it. The formatted plaintext string is PII; keep it in memory only, never log it or persist it.

On .NET Framework (the net472 build) AES-GCM is provided by Microsoft.Bcl.Cryptography and is supported on Windows only.

public static class VerifiablCrypto

Inheritance: System.Object

Method

Encrypt a formatted PII string with AES-256-GCM. The GCM authentication tag, returned in the metadata, lets the verifier detect any tampering with the ciphertext at scan time.

Every call draws a fresh random IV, which is what keeps AES-256-GCM safe under one key. Never store the returned Verifiabl.EncryptedPii.Metadata and send it again with different content: registration rejects a repeated IV as Verifiabl.Client.VerifiablIvReuseException, or in a batch as an error result matched by Verifiabl.Client.BatchRecordResult.IsIvReused.

public static EncryptedPii EncryptPii(string plaintext, byte[] key)
Parameter Type Description
plaintext System.String The formatted string from Verifiabl.Pii.Format(Verifiabl.PiiFields).
key System.Byte[] Your 32-byte provider encryption key.

Returns: Verifiabl.EncryptedPii

Class in Verifiabl

Issuer API and public scan URL origins for each Verifiabl environment.

public static class VerifiablEndpoints

Inheritance: System.Object

Field

Production issuer API origin used by issuing integrations.

public const string ProductionIssuerBaseUrl = "https://register.verifiabl.io"

Returns: System.String

Field

Production origin of the public QR scan URL printed on documents.

public const string ProductionScanBaseUrl = "https://v.verifiabl.io"

Returns: System.String

Field

Sandbox issuer API origin, selected via Verifiabl.VerifiablEnvironment.Sandbox.

public const string SandboxIssuerBaseUrl = "https://register.sandbox.verifiabl.io"

Returns: System.String

Field

Sandbox origin of the public QR scan URL.

public const string SandboxScanBaseUrl = "https://v.sandbox.verifiabl.io"

Returns: System.String

Enum in Verifiabl

The Verifiabl API environment a client or barcode targets.

public enum VerifiablEnvironment

Field

Production endpoints. The default.

Production = 0

Returns: Verifiabl.VerifiablEnvironment

Field

Sandbox endpoints, for integration testing with sandbox credentials.

Sandbox = 1

Returns: Verifiabl.VerifiablEnvironment

Class in Verifiabl

Base type for every failure a Verifiabl API call can report, so one catch (VerifiablException) covers the whole surface.

Caller mistakes still surface as System.ArgumentException before anything is sent, and a cancellation you requested still surfaces as System.OperationCanceledException; neither is a Verifiabl failure.

public abstract class VerifiablException : Exception, ISerializable

Inheritance: System.Object → System.Exception

Implements: System.Runtime.Serialization.ISerializable

Class in Verifiabl

Helpers for Verifiabl references: the 22-character base64url identifiers embedded in every barcode. References are issued by the API and must be used verbatim.

public static class VerifiablReference

Inheritance: System.Object

Field

Exact length of a Verifiabl reference in base64url characters.

public const int Length = 22

Returns: System.Int32

Method

Generate a fresh Verifiabl reference: 16 cryptographically random bytes (128 bits) encoded as 22 base64url characters without padding. Matches the server’s algorithm, so a provider-generated reference is indistinguishable from one issued by the API.

Use this for Verifiabl.Client.VerifiablClient.RegisterNonPiiBatchAsync(System.Collections.Generic.IEnumerable&#123;Verifiabl.Client.BatchRecord&#125;,System.Threading.CancellationToken), where providers generate their own references up-front so a whole pay run can be submitted in one request. Single-record registration does not need it; the API generates a reference for you and returns it.

public static string Generate()

Returns: System.String

Method

True when value is a well-formed Verifiabl reference.

public static bool IsValid(string? value)
Parameter Type Description
value System.String

Returns: System.Boolean