Skip to content

.NET Client

Class in Verifiabl.Client

Allowance allowance_type values for au.payslip.v2.

public static class AustralianAllowanceTypes

Inheritance: System.Object

Field

The cents_per_km code.

public const string CentsPerKm = "cents_per_km"

Returns: System.String

Field

The award_transport code.

public const string AwardTransport = "award_transport"

Returns: System.String

Field

The laundry code.

public const string Laundry = "laundry"

Returns: System.String

Field

The overtime_meal code.

public const string OvertimeMeal = "overtime_meal"

Returns: System.String

Field

The travel code.

public const string Travel = "travel"

Returns: System.String

Field

The tools code.

public const string Tools = "tools"

Returns: System.String

Field

The tasks code.

public const string Tasks = "tasks"

Returns: System.String

Field

The qualifications code.

public const string Qualifications = "qualifications"

Returns: System.String

Field

The other code.

public const string Other = "other"

Returns: System.String

Field

Every accepted value, in contract order.

public static readonly IReadOnlyList<string> All

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

Class in Verifiabl.Client

Deduction type values for au.payslip.v2.

public static class AustralianDeductionTypes

Inheritance: System.Object

Field

The union_professional_fees code.

public const string UnionProfessionalFees = "union_professional_fees"

Returns: System.String

Field

The workplace_giving code.

public const string WorkplaceGiving = "workplace_giving"

Returns: System.String

Field

The child_support_deduction code.

public const string ChildSupportDeduction = "child_support_deduction"

Returns: System.String

Field

The child_support_garnishee code.

public const string ChildSupportGarnishee = "child_support_garnishee"

Returns: System.String

Field

The other_post_tax code.

public const string OtherPostTax = "other_post_tax"

Returns: System.String

Field

Every accepted value, in contract order.

public static readonly IReadOnlyList<string> All

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

Class in Verifiabl.Client

Earnings line type values for au.payslip.v2.

public static class AustralianEarningsTypes

Inheritance: System.Object

Field

The paid_leave code.

public const string PaidLeave = "paid_leave"

Returns: System.String

Field

The allowance code.

public const string Allowance = "allowance"

Returns: System.String

Field

The ordinary code.

public const string Ordinary = "ordinary"

Returns: System.String

Field

The overtime code.

public const string Overtime = "overtime"

Returns: System.String

Field

The bonus_commission code.

public const string BonusCommission = "bonus_commission"

Returns: System.String

Field

The directors_fees code.

public const string DirectorsFees = "directors_fees"

Returns: System.String

Field

The lump_sum code.

public const string LumpSum = "lump_sum"

Returns: System.String

Field

The return_to_work code.

public const string ReturnToWork = "return_to_work"

Returns: System.String

Field

The other code.

public const string Other = "other"

Returns: System.String

Field

Every accepted value, in contract order.

public static readonly IReadOnlyList<string> All

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

Class in Verifiabl.Client

employment_basis values for au.payslip.v2.

public static class AustralianEmploymentBases

Inheritance: System.Object

Field

The full_time code.

public const string FullTime = "full_time"

Returns: System.String

Field

The part_time code.

public const string PartTime = "part_time"

Returns: System.String

Field

The casual code.

public const string Casual = "casual"

Returns: System.String

Field

The labour_hire code.

public const string LabourHire = "labour_hire"

Returns: System.String

Field

The voluntary_agreement code.

public const string VoluntaryAgreement = "voluntary_agreement"

Returns: System.String

Field

The death_beneficiary code.

public const string DeathBeneficiary = "death_beneficiary"

Returns: System.String

Field

The non_employee code.

public const string NonEmployee = "non_employee"

Returns: System.String

Field

Every accepted value, in contract order.

public static readonly IReadOnlyList<string> All

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

Class in Verifiabl.Client

engagement_type values for au.payslip.v2.

public static class AustralianEngagementTypes

Inheritance: System.Object

Field

The permanent code.

public const string Permanent = "permanent"

Returns: System.String

Field

The fixed_term code.

public const string FixedTerm = "fixed_term"

Returns: System.String

Field

Every accepted value, in contract order.

public static readonly IReadOnlyList<string> All

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

Class in Verifiabl.Client

other_category values for an other allowance in au.payslip.v2.

public static class AustralianOtherAllowanceCategories

Inheritance: System.Object

Field

The home_office code.

public const string HomeOffice = "home_office"

Returns: System.String

Field

The non_deductible code.

public const string NonDeductible = "non_deductible"

Returns: System.String

Field

The transport_fares code.

public const string TransportFares = "transport_fares"

Returns: System.String

Field

The uniform code.

public const string Uniform = "uniform"

Returns: System.String

Field

The private_vehicle code.

public const string PrivateVehicle = "private_vehicle"

Returns: System.String

Field

The general code.

public const string General = "general"

Returns: System.String

Field

Every accepted value, in contract order.

public static readonly IReadOnlyList<string> All

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

Class in Verifiabl.Client

Paid leave leave_type values for au.payslip.v2.

public static class AustralianPaidLeaveTypes

Inheritance: System.Object

Field

The cash_out_in_service code.

public const string CashOutInService = "cash_out_in_service"

Returns: System.String

Field

The unused_on_termination code.

public const string UnusedOnTermination = "unused_on_termination"

Returns: System.String

Field

The paid_parental code.

public const string PaidParental = "paid_parental"

Returns: System.String

Field

The workers_compensation code.

public const string WorkersCompensation = "workers_compensation"

Returns: System.String

Field

The ancillary_defence code.

public const string AncillaryDefence = "ancillary_defence"

Returns: System.String

Field

The other_paid_leave code.

public const string OtherPaidLeave = "other_paid_leave"

Returns: System.String

Field

Every accepted value, in contract order.

public static readonly IReadOnlyList<string> All

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

Class in Verifiabl.Client

pay_frequency values for au.payslip.v2.

public static class AustralianPayFrequencies

Inheritance: System.Object

Field

The weekly code.

public const string Weekly = "weekly"

Returns: System.String

Field

The fortnightly code.

public const string Fortnightly = "fortnightly"

Returns: System.String

Field

The monthly code.

public const string Monthly = "monthly"

Returns: System.String

Field

The quarterly code.

public const string Quarterly = "quarterly"

Returns: System.String

Field

The four_weekly code.

public const string FourWeekly = "four_weekly"

Returns: System.String

Field

The semi_monthly code.

public const string SemiMonthly = "semi_monthly"

Returns: System.String

Field

Every accepted value, in contract order.

public static readonly IReadOnlyList<string> All

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

Class in Verifiabl.Client

Generated AU/NZ v2 non-PII wire fields; the API validates values.

public sealed class AustralianPayslipV2

Inheritance: System.Object

Property

Wire field period_start: DateOnly on .NET 8 and later, a YYYY-MM-DD string on .NET Framework.

[JsonPropertyName("period_start")]
[JsonConverter(typeof(PayslipDateConverter))]
public DateOnly? PeriodStart { get; init; }

Returns: System.Nullable{System.DateOnly}

Property

Wire field period_end: DateOnly on .NET 8 and later, a YYYY-MM-DD string on .NET Framework.

[JsonPropertyName("period_end")]
[JsonConverter(typeof(PayslipDateConverter))]
public required DateOnly PeriodEnd { get; init; }

Returns: System.DateOnly

Property

Wire field payment_date: DateOnly on .NET 8 and later, a YYYY-MM-DD string on .NET Framework.

[JsonPropertyName("payment_date")]
[JsonConverter(typeof(PayslipDateConverter))]
public required DateOnly PaymentDate { get; init; }

Returns: System.DateOnly

Property

Wire field currency; see Verifiabl.Client.PayslipCurrencies.

[JsonPropertyName("currency")]
public required string Currency { get; init; }

Returns: System.String

Property

Wire field gross.

[JsonPropertyName("gross")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public required decimal Gross { get; init; }

Returns: System.Decimal

Property

Wire field paygw.

[JsonPropertyName("paygw")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public required decimal Paygw { get; init; }

Returns: System.Decimal

Property

Wire field net.

[JsonPropertyName("net")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public required decimal Net { get; init; }

Returns: System.Decimal

Property

Wire field ytd_gross.

[JsonPropertyName("ytd_gross")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? YtdGross { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field ytd_paygw.

[JsonPropertyName("ytd_paygw")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? YtdPaygw { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field pay_frequency; see Verifiabl.Client.AustralianPayFrequencies.

[JsonPropertyName("pay_frequency")]
public string? PayFrequency { get; init; }

Returns: System.String

Property

Wire field employment_basis; see Verifiabl.Client.AustralianEmploymentBases.

[JsonPropertyName("employment_basis")]
public string? EmploymentBasis { get; init; }

Returns: System.String

Property

Wire field engagement_type; see Verifiabl.Client.AustralianEngagementTypes.

[JsonPropertyName("engagement_type")]
public string? EngagementType { get; init; }

Returns: System.String

Property

Wire field award.

[JsonPropertyName("award")]
public string? Award { get; init; }

Returns: System.String

Property

Wire field hourly.

[JsonPropertyName("hourly")]
public AustralianPayslipV2Hourly? Hourly { get; init; }

Returns: Verifiabl.Client.AustralianPayslipV2Hourly

Property

Wire field annual_rate.

[JsonPropertyName("annual_rate")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? AnnualRate { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field taxable_gross.

[JsonPropertyName("taxable_gross")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? TaxableGross { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field stsl_withholding.

[JsonPropertyName("stsl_withholding")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? StslWithholding { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field earnings.

[JsonPropertyName("earnings")]
public IReadOnlyList<AustralianPayslipV2EarningsItem>? Earnings { get; init; }

Returns: System.Collections.Generic.IReadOnlyList{Verifiabl.Client.AustralianPayslipV2EarningsItem}

Property

Wire field salary_sacrifice.

[JsonPropertyName("salary_sacrifice")]
public IReadOnlyList<AustralianPayslipV2SalarySacrificeItem>? SalarySacrifice { get; init; }

Returns: System.Collections.Generic.IReadOnlyList{Verifiabl.Client.AustralianPayslipV2SalarySacrificeItem}

Property

Wire field deductions.

[JsonPropertyName("deductions")]
public IReadOnlyList<AustralianPayslipV2DeductionsItem>? Deductions { get; init; }

Returns: System.Collections.Generic.IReadOnlyList{Verifiabl.Client.AustralianPayslipV2DeductionsItem}

Property

Wire field superannuation.

[JsonPropertyName("superannuation")]
public IReadOnlyList<AustralianPayslipV2SuperannuationItem>? Superannuation { get; init; }

Returns: System.Collections.Generic.IReadOnlyList{Verifiabl.Client.AustralianPayslipV2SuperannuationItem}

Property

Wire field reimbursements.

[JsonPropertyName("reimbursements")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? Reimbursements { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field ytd.

[JsonPropertyName("ytd")]
public AustralianPayslipV2Ytd? Ytd { get; init; }

Returns: Verifiabl.Client.AustralianPayslipV2Ytd

Class in Verifiabl.Client

Generated AU/NZ v2 non-PII wire fields; the API validates values.

public sealed class AustralianPayslipV2DeductionsItem

Inheritance: System.Object

Property

Wire field type; see Verifiabl.Client.AustralianDeductionTypes.

[JsonPropertyName("type")]
public required string Type { get; init; }

Returns: System.String

Property

Wire field amount.

[JsonPropertyName("amount")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public required decimal Amount { get; init; }

Returns: System.Decimal

Property

Wire field ytd_amount.

[JsonPropertyName("ytd_amount")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? YtdAmount { get; init; }

Returns: System.Nullable{System.Decimal}

Class in Verifiabl.Client

Generated AU/NZ v2 non-PII wire fields; the API validates values.

public sealed class AustralianPayslipV2EarningsItem

Inheritance: System.Object

PaidLeave(string, decimal, decimal?, decimal?, decimal?)

Section titled “PaidLeave(string, decimal, decimal?, decimal?, decimal?)”

Method

Create an earnings line of type paid_leave.

public static AustralianPayslipV2EarningsItem PaidLeave(string leaveType, decimal amount, decimal? units = null, decimal? rate = null, decimal? ytdAmount = null)
Parameter Type Description
leaveType System.String One of Verifiabl.Client.AustralianPaidLeaveTypes.
amount System.Decimal Wire field amount.
units System.Nullable{System.Decimal} Wire field units.
rate System.Nullable{System.Decimal} Wire field rate.
ytdAmount System.Nullable{System.Decimal} Wire field ytd_amount.

Returns: Verifiabl.Client.AustralianPayslipV2EarningsItem

Allowance(string, decimal, decimal?, decimal?, decimal?)

Section titled “Allowance(string, decimal, decimal?, decimal?, decimal?)”

Method

Create an allowance line of any type except other; use Verifiabl.Client.AustralianPayslipV2EarningsItem.OtherAllowance(System.String,System.Decimal,System.Nullable&#123;System.Decimal&#125;,System.Nullable&#123;System.Decimal&#125;,System.Nullable&#123;System.Decimal&#125;) for that type.

public static AustralianPayslipV2EarningsItem Allowance(string allowanceType, decimal amount, decimal? units = null, decimal? rate = null, decimal? ytdAmount = null)
Parameter Type Description
allowanceType System.String One of Verifiabl.Client.AustralianAllowanceTypes.
amount System.Decimal Wire field amount.
units System.Nullable{System.Decimal} Wire field units.
rate System.Nullable{System.Decimal} Wire field rate.
ytdAmount System.Nullable{System.Decimal} Wire field ytd_amount.

Returns: Verifiabl.Client.AustralianPayslipV2EarningsItem

OtherAllowance(string, decimal, decimal?, decimal?, decimal?)

Section titled “OtherAllowance(string, decimal, decimal?, decimal?, decimal?)”

Method

Create an allowance line of type other with its required category.

public static AustralianPayslipV2EarningsItem OtherAllowance(string otherCategory, decimal amount, decimal? units = null, decimal? rate = null, decimal? ytdAmount = null)
Parameter Type Description
otherCategory System.String One of Verifiabl.Client.AustralianOtherAllowanceCategories.
amount System.Decimal Wire field amount.
units System.Nullable{System.Decimal} Wire field units.
rate System.Nullable{System.Decimal} Wire field rate.
ytdAmount System.Nullable{System.Decimal} Wire field ytd_amount.

Returns: Verifiabl.Client.AustralianPayslipV2EarningsItem

Ordinary(decimal, decimal?, decimal?, decimal?)

Section titled “Ordinary(decimal, decimal?, decimal?, decimal?)”

Method

Create an earnings line of type ordinary.

public static AustralianPayslipV2EarningsItem Ordinary(decimal amount, decimal? units = null, decimal? rate = null, decimal? ytdAmount = null)
Parameter Type Description
amount System.Decimal Wire field amount.
units System.Nullable{System.Decimal} Wire field units.
rate System.Nullable{System.Decimal} Wire field rate.
ytdAmount System.Nullable{System.Decimal} Wire field ytd_amount.

Returns: Verifiabl.Client.AustralianPayslipV2EarningsItem

Overtime(decimal, decimal?, decimal?, decimal?)

Section titled “Overtime(decimal, decimal?, decimal?, decimal?)”

Method

Create an earnings line of type overtime.

public static AustralianPayslipV2EarningsItem Overtime(decimal amount, decimal? units = null, decimal? rate = null, decimal? ytdAmount = null)
Parameter Type Description
amount System.Decimal Wire field amount.
units System.Nullable{System.Decimal} Wire field units.
rate System.Nullable{System.Decimal} Wire field rate.
ytdAmount System.Nullable{System.Decimal} Wire field ytd_amount.

Returns: Verifiabl.Client.AustralianPayslipV2EarningsItem

BonusCommission(decimal, decimal?, decimal?, decimal?)

Section titled “BonusCommission(decimal, decimal?, decimal?, decimal?)”

Method

Create an earnings line of type bonus_commission.

public static AustralianPayslipV2EarningsItem BonusCommission(decimal amount, decimal? units = null, decimal? rate = null, decimal? ytdAmount = null)
Parameter Type Description
amount System.Decimal Wire field amount.
units System.Nullable{System.Decimal} Wire field units.
rate System.Nullable{System.Decimal} Wire field rate.
ytdAmount System.Nullable{System.Decimal} Wire field ytd_amount.

Returns: Verifiabl.Client.AustralianPayslipV2EarningsItem

DirectorsFees(decimal, decimal?, decimal?, decimal?)

Section titled “DirectorsFees(decimal, decimal?, decimal?, decimal?)”

Method

Create an earnings line of type directors_fees.

public static AustralianPayslipV2EarningsItem DirectorsFees(decimal amount, decimal? units = null, decimal? rate = null, decimal? ytdAmount = null)
Parameter Type Description
amount System.Decimal Wire field amount.
units System.Nullable{System.Decimal} Wire field units.
rate System.Nullable{System.Decimal} Wire field rate.
ytdAmount System.Nullable{System.Decimal} Wire field ytd_amount.

Returns: Verifiabl.Client.AustralianPayslipV2EarningsItem

LumpSum(decimal, decimal?, decimal?, decimal?)

Section titled “LumpSum(decimal, decimal?, decimal?, decimal?)”

Method

Create an earnings line of type lump_sum.

public static AustralianPayslipV2EarningsItem LumpSum(decimal amount, decimal? units = null, decimal? rate = null, decimal? ytdAmount = null)
Parameter Type Description
amount System.Decimal Wire field amount.
units System.Nullable{System.Decimal} Wire field units.
rate System.Nullable{System.Decimal} Wire field rate.
ytdAmount System.Nullable{System.Decimal} Wire field ytd_amount.

Returns: Verifiabl.Client.AustralianPayslipV2EarningsItem

ReturnToWork(decimal, decimal?, decimal?, decimal?)

Section titled “ReturnToWork(decimal, decimal?, decimal?, decimal?)”

Method

Create an earnings line of type return_to_work.

public static AustralianPayslipV2EarningsItem ReturnToWork(decimal amount, decimal? units = null, decimal? rate = null, decimal? ytdAmount = null)
Parameter Type Description
amount System.Decimal Wire field amount.
units System.Nullable{System.Decimal} Wire field units.
rate System.Nullable{System.Decimal} Wire field rate.
ytdAmount System.Nullable{System.Decimal} Wire field ytd_amount.

Returns: Verifiabl.Client.AustralianPayslipV2EarningsItem

Other(decimal, decimal?, decimal?, decimal?)

Section titled “Other(decimal, decimal?, decimal?, decimal?)”

Method

Create an earnings line of type other.

public static AustralianPayslipV2EarningsItem Other(decimal amount, decimal? units = null, decimal? rate = null, decimal? ytdAmount = null)
Parameter Type Description
amount System.Decimal Wire field amount.
units System.Nullable{System.Decimal} Wire field units.
rate System.Nullable{System.Decimal} Wire field rate.
ytdAmount System.Nullable{System.Decimal} Wire field ytd_amount.

Returns: Verifiabl.Client.AustralianPayslipV2EarningsItem

Property

Wire field type; see Verifiabl.Client.AustralianEarningsTypes.

[JsonPropertyName("type")]
public required string Type { get; init; }

Returns: System.String

Property

Wire field leave_type; see Verifiabl.Client.AustralianPaidLeaveTypes.

[JsonPropertyName("leave_type")]
public string? LeaveType { get; init; }

Returns: System.String

Property

Wire field amount.

[JsonPropertyName("amount")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public required decimal Amount { get; init; }

Returns: System.Decimal

Property

Wire field units.

[JsonPropertyName("units")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? Units { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field rate.

[JsonPropertyName("rate")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? Rate { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field ytd_amount.

[JsonPropertyName("ytd_amount")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? YtdAmount { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field allowance_type; see Verifiabl.Client.AustralianAllowanceTypes.

[JsonPropertyName("allowance_type")]
public string? AllowanceType { get; init; }

Returns: System.String

Property

Wire field other_category; see Verifiabl.Client.AustralianOtherAllowanceCategories.

[JsonPropertyName("other_category")]
public string? OtherCategory { get; init; }

Returns: System.String

Class in Verifiabl.Client

Generated AU/NZ v2 non-PII wire fields; the API validates values.

public sealed class AustralianPayslipV2Hourly

Inheritance: System.Object

Property

Wire field ordinary_rate.

[JsonPropertyName("ordinary_rate")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public required decimal OrdinaryRate { get; init; }

Returns: System.Decimal

Property

Wire field hours.

[JsonPropertyName("hours")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public required decimal Hours { get; init; }

Returns: System.Decimal

Property

Wire field amount.

[JsonPropertyName("amount")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public required decimal Amount { get; init; }

Returns: System.Decimal

Class in Verifiabl.Client

Generated AU/NZ v2 non-PII wire fields; the API validates values.

public sealed class AustralianPayslipV2SalarySacrificeItem

Inheritance: System.Object

Property

Wire field type; see Verifiabl.Client.AustralianSalarySacrificeTypes.

[JsonPropertyName("type")]
public required string Type { get; init; }

Returns: System.String

Property

Wire field amount.

[JsonPropertyName("amount")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public required decimal Amount { get; init; }

Returns: System.Decimal

Property

Wire field ytd_amount.

[JsonPropertyName("ytd_amount")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? YtdAmount { get; init; }

Returns: System.Nullable{System.Decimal}

Class in Verifiabl.Client

Generated AU/NZ v2 non-PII wire fields; the API validates values.

public sealed class AustralianPayslipV2SuperannuationItem

Inheritance: System.Object

Property

Wire field contribution_type; see Verifiabl.Client.AustralianSuperContributionTypes.

[JsonPropertyName("contribution_type")]
public required string ContributionType { get; init; }

Returns: System.String

Property

Wire field amount.

[JsonPropertyName("amount")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public required decimal Amount { get; init; }

Returns: System.Decimal

Property

Wire field rate.

[JsonPropertyName("rate")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? Rate { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field ytd_amount.

[JsonPropertyName("ytd_amount")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? YtdAmount { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field usi.

[JsonPropertyName("usi")]
public string? Usi { get; init; }

Returns: System.String

Class in Verifiabl.Client

Generated AU/NZ v2 non-PII wire fields; the API validates values.

public sealed class AustralianPayslipV2Ytd

Inheritance: System.Object

Property

Wire field taxable.

[JsonPropertyName("taxable")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? Taxable { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field super.

[JsonPropertyName("super")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? Super { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field non_taxable.

[JsonPropertyName("non_taxable")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? NonTaxable { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field post_tax_deductions.

[JsonPropertyName("post_tax_deductions")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? PostTaxDeductions { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field reimbursements.

[JsonPropertyName("reimbursements")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? Reimbursements { get; init; }

Returns: System.Nullable{System.Decimal}

Class in Verifiabl.Client

Salary sacrifice type values for au.payslip.v2.

public static class AustralianSalarySacrificeTypes

Inheritance: System.Object

Field

The super code.

public const string Super = "super"

Returns: System.String

Field

The other code.

public const string Other = "other"

Returns: System.String

Field

Every accepted value, in contract order.

public static readonly IReadOnlyList<string> All

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

Class in Verifiabl.Client

Superannuation contribution_type values for au.payslip.v2.

public static class AustralianSuperContributionTypes

Inheritance: System.Object

Field

The superannuation_guarantee code.

public const string SuperannuationGuarantee = "superannuation_guarantee"

Returns: System.String

Field

The resc code.

public const string Resc = "resc"

Returns: System.String

Field

The salary_sacrifice code.

public const string SalarySacrifice = "salary_sacrifice"

Returns: System.String

Field

Every accepted value, in contract order.

public static readonly IReadOnlyList<string> All

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

Class in Verifiabl.Client

A barcode image returned by the API.

public sealed class BarcodeImage

Inheritance: System.Object

Property

Image format. Currently always “png”.

public string Format { get; }

Returns: System.String

Property

Base64-encoded image bytes.

public string Data { get; }

Returns: System.String

Class in Verifiabl.Client

One record in a Verifiabl.Client.IVerifiablClient.RegisterNonPiiBatchAsync(System.Collections.Generic.IEnumerable&#123;Verifiabl.Client.BatchRecord&#125;,System.Threading.CancellationToken) request: the same fields as Verifiabl.Client.RegisterNonPiiRequest plus a provider-generated Verifiabl reference from Verifiabl.VerifiablReference.Generate.

public sealed class BatchRecord

Inheritance: System.Object

Property

Provider-generated Verifiabl reference for this record.

public required string VerifiablReference { get; set; }

Returns: System.String

Property

Optional caller-supplied correlation id. The API echoes it back on the matching result and never stores it, so you can line up results (and error logs) with your own payslip records by your own id.

public string? ExternalId { get; set; }

Returns: System.String

Property

Non-PII payslip schema identifier, e.g. “au.payslip.v2”. This does not select a PII format.

public required string Schema { get; set; }

Returns: System.String

Property

When the payslip was issued. Sent to the API as an ISO 8601 UTC timestamp; values with an offset are converted to UTC first.

public required DateTimeOffset IssuedAt { get; set; }

Returns: System.DateTimeOffset

Property

Non-PII payslip data.

public required PayslipNonPii PayslipNonPii { get; set; }

Returns: Verifiabl.Client.PayslipNonPii

Property

Decryption metadata from Verifiabl.VerifiablCrypto.EncryptPii(System.String,System.Byte[]).

public required EncryptionMetadata EncryptionMetadata { get; set; }

Returns: Verifiabl.EncryptionMetadata

Class in Verifiabl.Client

Per-record outcome of a batch registration, in the same order as the submitted records (so Results[i] is the outcome of record i). Verifiabl.Client.BatchRecordResult.Code and Verifiabl.Client.BatchRecordResult.Detail accompany an “error” status. One bad record never fails the whole batch. Correlate by position, by the record’s Verifiabl.Client.BatchRecordResult.ExternalId, or by Verifiabl.Client.BatchRecordResult.VerifiablReference.

public sealed class BatchRecordResult

Inheritance: System.Object

Property

Per-record status. Compare against Verifiabl.Client.BatchRecordStatuses; the API may add statuses over time, so an unknown status flows through rather than failing the whole response.

public string Status { get; }

Returns: System.String

Property

The Verifiabl reference submitted with this record.

public string VerifiablReference { get; }

Returns: System.String

Property

The record’s caller-supplied external id, echoed back when one was supplied.

public string? ExternalId { get; }

Returns: System.String

Property

Machine-readable error code, present when Verifiabl.Client.BatchRecordResult.Status is “error”.

public string? Code { get; }

Returns: System.String

Property

Human-readable error detail, present when Verifiabl.Client.BatchRecordResult.Status is “error”.

public string? Detail { get; }

Returns: System.String

Property

True when the API rejected this record because its encryption IV is already registered to your issuer, either against a stored record or against an earlier record in the same batch (that first record still registers).

The two cases differ only in Verifiabl.Client.BatchRecordResult.Detail, so match on this rather than on the wording.

The SDK does not re-encrypt and resubmit the record for you. Encrypt the payslip again with Verifiabl.VerifiablCrypto.EncryptPii(System.String,System.Byte[]) to get a new IV, resend the record with the new encryption metadata, and rebuild any barcode that you rendered from the previous ciphertext. Resending the record unchanged gives the same result.

public bool IsIvReused { get; }

Returns: System.Boolean

Class in Verifiabl.Client

Per-record outcome statuses the API returns today. The API may add statuses over time, so treat anything not listed here as a generic outcome rather than an error in your integration.

public static class BatchRecordStatuses

Inheritance: System.Object

Field

The record was newly registered.

public const string Created = "created"

Returns: System.String

Field

An idempotent resend of identical content.

public const string Duplicate = "duplicate"

Returns: System.String

Field

The record failed; see the result’s Code and Detail.

public const string Error = "error"

Returns: System.String

Interface in Verifiabl.Client

The Verifiabl issuer API. Implemented by Verifiabl.Client.VerifiablClient; take a dependency on this interface so tests can substitute a fake.

Every failure these methods report derives from Verifiabl.VerifiablException, so one catch (VerifiablException) covers API errors, auth failures, timeouts, and transport faults. Invalid arguments still throw System.ArgumentException before anything is sent, and cancelling the token you passed still throws System.OperationCanceledException.

Implementations cache OAuth tokens, so register a single instance and reuse it.

public interface IVerifiablClient

RegisterNonPiiAsync(RegisterNonPiiRequest, CancellationToken)

Section titled “RegisterNonPiiAsync(RegisterNonPiiRequest, CancellationToken)”

Method

Register non-PII payslip data and decryption metadata. Returns the Verifiabl reference to embed in a locally generated barcode.

Task<RegisterNonPiiResponse> RegisterNonPiiAsync(RegisterNonPiiRequest request, CancellationToken cancellationToken = default)
Parameter Type Description
request Verifiabl.Client.RegisterNonPiiRequest The payslip registration.
cancellationToken System.Threading.CancellationToken Cancels the call.

Returns: System.Threading.Tasks.Task{Verifiabl.Client.RegisterNonPiiResponse}

Exceptions

Type Condition
System.ArgumentException The request is incomplete or malformed.
Verifiabl.Client.VerifiablIvReuseException The record’s encryption IV is already registered to this issuer.
Verifiabl.Client.VerifiablApiException The API returned a non-2xx response.
Verifiabl.Client.VerifiablAuthException An OAuth token could not be obtained.
Verifiabl.Client.VerifiablTimeoutException The call exceeded the configured timeout.
Verifiabl.Client.VerifiablTransportException A network fault prevented a response, or the response was not usable JSON.
System.OperationCanceledException cancellationToken was cancelled.

RegisterAndBuildBarcodeAsync(RegisterAndBuildBarcodeRequest, CancellationToken)

Section titled “RegisterAndBuildBarcodeAsync(RegisterAndBuildBarcodeRequest, CancellationToken)”

Method

Register non-PII payslip data and have the API build the barcode. Sends the encrypted PII alongside the non-PII data.

Task<RegisterAndBuildBarcodeResponse> RegisterAndBuildBarcodeAsync(RegisterAndBuildBarcodeRequest request, CancellationToken cancellationToken = default)
Parameter Type Description
request Verifiabl.Client.RegisterAndBuildBarcodeRequest The payslip registration, including the ciphertext.
cancellationToken System.Threading.CancellationToken Cancels the call.

Returns: System.Threading.Tasks.Task{Verifiabl.Client.RegisterAndBuildBarcodeResponse}

Exceptions

Type Condition
System.ArgumentException The request is incomplete or malformed.
Verifiabl.Client.VerifiablIvReuseException The record’s encryption IV is already registered to this issuer.
Verifiabl.Client.VerifiablApiException The API returned a non-2xx response.
Verifiabl.Client.VerifiablAuthException An OAuth token could not be obtained.
Verifiabl.Client.VerifiablTimeoutException The call exceeded the configured timeout.
Verifiabl.Client.VerifiablTransportException A network fault prevented a response, or the response was not usable JSON.
System.OperationCanceledException cancellationToken was cancelled.

RegisterNonPiiBatchAsync(IEnumerable&lt;BatchRecord&gt;, CancellationToken)

Section titled “RegisterNonPiiBatchAsync(IEnumerable&lt;BatchRecord&gt;, CancellationToken)”

Method

Register a batch of non-PII payslip records in a single request, up to Verifiabl.Client.VerifiablClient.MaxBatchRecords records. Each record carries a provider-generated Verifiabl reference (from Verifiabl.VerifiablReference.Generate) and the same fields as Verifiabl.Client.IVerifiablClient.RegisterNonPiiAsync(Verifiabl.Client.RegisterNonPiiRequest,System.Threading.CancellationToken). The response contains a per-record result index-aligned to the input: one bad record never fails the batch. A record whose encryption IV is already registered to this issuer, or is repeated within this batch, comes back as an error result matched by Verifiabl.Client.BatchRecordResult.IsIvReused.

Task<RegisterNonPiiBatchResponse> RegisterNonPiiBatchAsync(IEnumerable<BatchRecord> records, CancellationToken cancellationToken = default)
Parameter Type Description
records System.Collections.Generic.IEnumerable{Verifiabl.Client.BatchRecord} The records to register.
cancellationToken System.Threading.CancellationToken Cancels the call.

Returns: System.Threading.Tasks.Task{Verifiabl.Client.RegisterNonPiiBatchResponse}

Exceptions

Type Condition
System.ArgumentNullException records is null.
System.ArgumentException The batch is empty, oversized, or a record is malformed.
Verifiabl.Client.VerifiablApiException The API returned a non-2xx response.
Verifiabl.Client.VerifiablAuthException An OAuth token could not be obtained.
Verifiabl.Client.VerifiablTimeoutException The call exceeded the configured timeout.
Verifiabl.Client.VerifiablTransportException A network fault prevented a response, or the response was not usable JSON.
System.OperationCanceledException cancellationToken was cancelled.

Class in Verifiabl.Client

Allowance allowance_type values for nz.payslip.v2.

public static class NewZealandAllowanceTypes

Inheritance: System.Object

Field

The meal code.

public const string Meal = "meal"

Returns: System.String

Field

The travel code.

public const string Travel = "travel"

Returns: System.String

Field

The accommodation code.

public const string Accommodation = "accommodation"

Returns: System.String

Field

The vehicle code.

public const string Vehicle = "vehicle"

Returns: System.String

Field

The phone code.

public const string Phone = "phone"

Returns: System.String

Field

The tools code.

public const string Tools = "tools"

Returns: System.String

Field

The uniform code.

public const string Uniform = "uniform"

Returns: System.String

Field

The on_call code.

public const string OnCall = "on_call"

Returns: System.String

Field

The shift code.

public const string Shift = "shift"

Returns: System.String

Field

The first_aid code.

public const string FirstAid = "first_aid"

Returns: System.String

Field

The higher_duties code.

public const string HigherDuties = "higher_duties"

Returns: System.String

Field

The qualification code.

public const string Qualification = "qualification"

Returns: System.String

Field

The other code.

public const string Other = "other"

Returns: System.String

Field

Every accepted value, in contract order.

public static readonly IReadOnlyList<string> All

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

Class in Verifiabl.Client

Deduction type values for nz.payslip.v2.

public static class NewZealandDeductionTypes

Inheritance: System.Object

Field

The union_fees code.

public const string UnionFees = "union_fees"

Returns: System.String

Field

The payroll_donation code.

public const string PayrollDonation = "payroll_donation"

Returns: System.String

Field

The attachment_order code.

public const string AttachmentOrder = "attachment_order"

Returns: System.String

Field

The ir_arrears code.

public const string IrArrears = "ir_arrears"

Returns: System.String

Field

The other_post_tax code.

public const string OtherPostTax = "other_post_tax"

Returns: System.String

Field

Every accepted value, in contract order.

public static readonly IReadOnlyList<string> All

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

Class in Verifiabl.Client

Earnings line type values for nz.payslip.v2.

public static class NewZealandEarningsTypes

Inheritance: System.Object

Field

The paid_leave code.

public const string PaidLeave = "paid_leave"

Returns: System.String

Field

The allowance code.

public const string Allowance = "allowance"

Returns: System.String

Field

The ordinary code.

public const string Ordinary = "ordinary"

Returns: System.String

Field

The overtime code.

public const string Overtime = "overtime"

Returns: System.String

Field

The penal_rate code.

public const string PenalRate = "penal_rate"

Returns: System.String

Field

The piece_work code.

public const string PieceWork = "piece_work"

Returns: System.String

Field

The bonus_commission code.

public const string BonusCommission = "bonus_commission"

Returns: System.String

Field

The extra_pay code.

public const string ExtraPay = "extra_pay"

Returns: System.String

Field

The schedular_payment code.

public const string SchedularPayment = "schedular_payment"

Returns: System.String

Field

The directors_fees code.

public const string DirectorsFees = "directors_fees"

Returns: System.String

Field

The pay_as_you_go_holiday_pay code.

public const string PayAsYouGoHolidayPay = "pay_as_you_go_holiday_pay"

Returns: System.String

Field

The leave_compensation_payment code.

public const string LeaveCompensationPayment = "leave_compensation_payment"

Returns: System.String

Field

The annual_holiday_cash_out code.

public const string AnnualHolidayCashOut = "annual_holiday_cash_out"

Returns: System.String

Field

The alternative_holiday_cash_out code.

public const string AlternativeHolidayCashOut = "alternative_holiday_cash_out"

Returns: System.String

Field

The holiday_pay_on_termination code.

public const string HolidayPayOnTermination = "holiday_pay_on_termination"

Returns: System.String

Field

The other code.

public const string Other = "other"

Returns: System.String

Field

Every accepted value, in contract order.

public static readonly IReadOnlyList<string> All

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

Class in Verifiabl.Client

Leave balance unit values for nz.payslip.v2.

public static class NewZealandLeaveBalanceUnits

Inheritance: System.Object

Field

The hours code.

public const string Hours = "hours"

Returns: System.String

Field

The days code.

public const string Days = "days"

Returns: System.String

Field

The weeks code.

public const string Weeks = "weeks"

Returns: System.String

Field

Every accepted value, in contract order.

public static readonly IReadOnlyList<string> All

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

Class in Verifiabl.Client

Paid leave leave_type values for nz.payslip.v2.

public static class NewZealandPaidLeaveTypes

Inheritance: System.Object

Field

The annual_holiday code.

public const string AnnualHoliday = "annual_holiday"

Returns: System.String

Field

The public_holiday code.

public const string PublicHoliday = "public_holiday"

Returns: System.String

Field

The alternative_holiday code.

public const string AlternativeHoliday = "alternative_holiday"

Returns: System.String

Field

The sick_leave code.

public const string SickLeave = "sick_leave"

Returns: System.String

Field

The bereavement_leave code.

public const string BereavementLeave = "bereavement_leave"

Returns: System.String

Field

The other_paid_leave code.

public const string OtherPaidLeave = "other_paid_leave"

Returns: System.String

Field

Every accepted value, in contract order.

public static readonly IReadOnlyList<string> All

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

Class in Verifiabl.Client

Generated AU/NZ v2 non-PII wire fields; the API validates values.

public sealed class NewZealandPayslipV2

Inheritance: System.Object

Property

Wire field period_start: DateOnly on .NET 8 and later, a YYYY-MM-DD string on .NET Framework.

[JsonPropertyName("period_start")]
[JsonConverter(typeof(PayslipDateConverter))]
public DateOnly? PeriodStart { get; init; }

Returns: System.Nullable{System.DateOnly}

Property

Wire field period_end: DateOnly on .NET 8 and later, a YYYY-MM-DD string on .NET Framework.

[JsonPropertyName("period_end")]
[JsonConverter(typeof(PayslipDateConverter))]
public required DateOnly PeriodEnd { get; init; }

Returns: System.DateOnly

Property

Wire field payment_date: DateOnly on .NET 8 and later, a YYYY-MM-DD string on .NET Framework.

[JsonPropertyName("payment_date")]
[JsonConverter(typeof(PayslipDateConverter))]
public required DateOnly PaymentDate { get; init; }

Returns: System.DateOnly

Property

Wire field currency; see Verifiabl.Client.PayslipCurrencies.

[JsonPropertyName("currency")]
public required string Currency { get; init; }

Returns: System.String

Property

Wire field gross.

[JsonPropertyName("gross")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public required decimal Gross { get; init; }

Returns: System.Decimal

Property

Wire field paye.

[JsonPropertyName("paye")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public required decimal Paye { get; init; }

Returns: System.Decimal

Property

Wire field net.

[JsonPropertyName("net")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public required decimal Net { get; init; }

Returns: System.Decimal

Property

Wire field ytd_gross.

[JsonPropertyName("ytd_gross")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? YtdGross { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field ytd_paye.

[JsonPropertyName("ytd_paye")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? YtdPaye { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field pay_cycle.

[JsonPropertyName("pay_cycle")]
public string? PayCycle { get; init; }

Returns: System.String

Property

Wire field tax_code.

[JsonPropertyName("tax_code")]
public string? TaxCode { get; init; }

Returns: System.String

Property

Wire field employment_type.

[JsonPropertyName("employment_type")]
public string? EmploymentType { get; init; }

Returns: System.String

Property

Wire field hours_paid.

[JsonPropertyName("hours_paid")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? HoursPaid { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field hourly.

[JsonPropertyName("hourly")]
public NewZealandPayslipV2Hourly? Hourly { get; init; }

Returns: Verifiabl.Client.NewZealandPayslipV2Hourly

Property

Wire field annual_rate.

[JsonPropertyName("annual_rate")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? AnnualRate { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field earnings_not_liable_for_acc.

[JsonPropertyName("earnings_not_liable_for_acc")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? EarningsNotLiableForAcc { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field earnings.

[JsonPropertyName("earnings")]
public IReadOnlyList<NewZealandPayslipV2EarningsItem>? Earnings { get; init; }

Returns: System.Collections.Generic.IReadOnlyList{Verifiabl.Client.NewZealandPayslipV2EarningsItem}

Property

Wire field employee_share_scheme.

[JsonPropertyName("employee_share_scheme")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? EmployeeShareScheme { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field prior_period_gross_adjustment.

[JsonPropertyName("prior_period_gross_adjustment")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? PriorPeriodGrossAdjustment { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field prior_period_paye_adjustment.

[JsonPropertyName("prior_period_paye_adjustment")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? PriorPeriodPayeAdjustment { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field payroll_donation_tax_credit.

[JsonPropertyName("payroll_donation_tax_credit")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? PayrollDonationTaxCredit { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field student_loan.

[JsonPropertyName("student_loan")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? StudentLoan { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field slcir.

[JsonPropertyName("slcir")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? Slcir { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field slbor.

[JsonPropertyName("slbor")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? Slbor { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field child_support.

[JsonPropertyName("child_support")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? ChildSupport { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field kiwisaver_employee_deduction.

[JsonPropertyName("kiwisaver_employee_deduction")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? KiwisaverEmployeeDeduction { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field kiwisaver_employee_rate.

[JsonPropertyName("kiwisaver_employee_rate")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? KiwisaverEmployeeRate { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field kiwisaver_employer_contribution.

[JsonPropertyName("kiwisaver_employer_contribution")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? KiwisaverEmployerContribution { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field esct.

[JsonPropertyName("esct")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? Esct { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field deductions.

[JsonPropertyName("deductions")]
public IReadOnlyList<NewZealandPayslipV2DeductionsItem>? Deductions { get; init; }

Returns: System.Collections.Generic.IReadOnlyList{Verifiabl.Client.NewZealandPayslipV2DeductionsItem}

Property

Wire field reimbursements.

[JsonPropertyName("reimbursements")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? Reimbursements { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field leave_balances.

[JsonPropertyName("leave_balances")]
public NewZealandPayslipV2LeaveBalances? LeaveBalances { get; init; }

Returns: Verifiabl.Client.NewZealandPayslipV2LeaveBalances

Property

Wire field ytd.

[JsonPropertyName("ytd")]
public NewZealandPayslipV2Ytd? Ytd { get; init; }

Returns: Verifiabl.Client.NewZealandPayslipV2Ytd

Class in Verifiabl.Client

Generated AU/NZ v2 non-PII wire fields; the API validates values.

public sealed class NewZealandPayslipV2DeductionsItem

Inheritance: System.Object

Property

Wire field type; see Verifiabl.Client.NewZealandDeductionTypes.

[JsonPropertyName("type")]
public required string Type { get; init; }

Returns: System.String

Property

Wire field amount.

[JsonPropertyName("amount")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public required decimal Amount { get; init; }

Returns: System.Decimal

Property

Wire field ytd_amount.

[JsonPropertyName("ytd_amount")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? YtdAmount { get; init; }

Returns: System.Nullable{System.Decimal}

Class in Verifiabl.Client

Generated AU/NZ v2 non-PII wire fields; the API validates values.

public sealed class NewZealandPayslipV2EarningsItem

Inheritance: System.Object

PaidLeave(string, decimal, decimal?, decimal?, decimal?)

Section titled “PaidLeave(string, decimal, decimal?, decimal?, decimal?)”

Method

Create an earnings line of type paid_leave.

public static NewZealandPayslipV2EarningsItem PaidLeave(string leaveType, decimal amount, decimal? units = null, decimal? rate = null, decimal? ytdAmount = null)
Parameter Type Description
leaveType System.String One of Verifiabl.Client.NewZealandPaidLeaveTypes.
amount System.Decimal Wire field amount.
units System.Nullable{System.Decimal} Wire field units.
rate System.Nullable{System.Decimal} Wire field rate.
ytdAmount System.Nullable{System.Decimal} Wire field ytd_amount.

Returns: Verifiabl.Client.NewZealandPayslipV2EarningsItem

Allowance(string, decimal, decimal?, decimal?, decimal?)

Section titled “Allowance(string, decimal, decimal?, decimal?, decimal?)”

Method

Create an earnings line of type allowance.

public static NewZealandPayslipV2EarningsItem Allowance(string allowanceType, decimal amount, decimal? units = null, decimal? rate = null, decimal? ytdAmount = null)
Parameter Type Description
allowanceType System.String One of Verifiabl.Client.NewZealandAllowanceTypes.
amount System.Decimal Wire field amount.
units System.Nullable{System.Decimal} Wire field units.
rate System.Nullable{System.Decimal} Wire field rate.
ytdAmount System.Nullable{System.Decimal} Wire field ytd_amount.

Returns: Verifiabl.Client.NewZealandPayslipV2EarningsItem

Ordinary(decimal, decimal?, decimal?, decimal?)

Section titled “Ordinary(decimal, decimal?, decimal?, decimal?)”

Method

Create an earnings line of type ordinary.

public static NewZealandPayslipV2EarningsItem Ordinary(decimal amount, decimal? units = null, decimal? rate = null, decimal? ytdAmount = null)
Parameter Type Description
amount System.Decimal Wire field amount.
units System.Nullable{System.Decimal} Wire field units.
rate System.Nullable{System.Decimal} Wire field rate.
ytdAmount System.Nullable{System.Decimal} Wire field ytd_amount.

Returns: Verifiabl.Client.NewZealandPayslipV2EarningsItem

Overtime(decimal, decimal?, decimal?, decimal?)

Section titled “Overtime(decimal, decimal?, decimal?, decimal?)”

Method

Create an earnings line of type overtime.

public static NewZealandPayslipV2EarningsItem Overtime(decimal amount, decimal? units = null, decimal? rate = null, decimal? ytdAmount = null)
Parameter Type Description
amount System.Decimal Wire field amount.
units System.Nullable{System.Decimal} Wire field units.
rate System.Nullable{System.Decimal} Wire field rate.
ytdAmount System.Nullable{System.Decimal} Wire field ytd_amount.

Returns: Verifiabl.Client.NewZealandPayslipV2EarningsItem

PenalRate(decimal, decimal?, decimal?, decimal?)

Section titled “PenalRate(decimal, decimal?, decimal?, decimal?)”

Method

Create an earnings line of type penal_rate.

public static NewZealandPayslipV2EarningsItem PenalRate(decimal amount, decimal? units = null, decimal? rate = null, decimal? ytdAmount = null)
Parameter Type Description
amount System.Decimal Wire field amount.
units System.Nullable{System.Decimal} Wire field units.
rate System.Nullable{System.Decimal} Wire field rate.
ytdAmount System.Nullable{System.Decimal} Wire field ytd_amount.

Returns: Verifiabl.Client.NewZealandPayslipV2EarningsItem

PieceWork(decimal, decimal?, decimal?, decimal?)

Section titled “PieceWork(decimal, decimal?, decimal?, decimal?)”

Method

Create an earnings line of type piece_work.

public static NewZealandPayslipV2EarningsItem PieceWork(decimal amount, decimal? units = null, decimal? rate = null, decimal? ytdAmount = null)
Parameter Type Description
amount System.Decimal Wire field amount.
units System.Nullable{System.Decimal} Wire field units.
rate System.Nullable{System.Decimal} Wire field rate.
ytdAmount System.Nullable{System.Decimal} Wire field ytd_amount.

Returns: Verifiabl.Client.NewZealandPayslipV2EarningsItem

BonusCommission(decimal, decimal?, decimal?, decimal?)

Section titled “BonusCommission(decimal, decimal?, decimal?, decimal?)”

Method

Create an earnings line of type bonus_commission.

public static NewZealandPayslipV2EarningsItem BonusCommission(decimal amount, decimal? units = null, decimal? rate = null, decimal? ytdAmount = null)
Parameter Type Description
amount System.Decimal Wire field amount.
units System.Nullable{System.Decimal} Wire field units.
rate System.Nullable{System.Decimal} Wire field rate.
ytdAmount System.Nullable{System.Decimal} Wire field ytd_amount.

Returns: Verifiabl.Client.NewZealandPayslipV2EarningsItem

ExtraPay(decimal, decimal?, decimal?, decimal?)

Section titled “ExtraPay(decimal, decimal?, decimal?, decimal?)”

Method

Create an earnings line of type extra_pay.

public static NewZealandPayslipV2EarningsItem ExtraPay(decimal amount, decimal? units = null, decimal? rate = null, decimal? ytdAmount = null)
Parameter Type Description
amount System.Decimal Wire field amount.
units System.Nullable{System.Decimal} Wire field units.
rate System.Nullable{System.Decimal} Wire field rate.
ytdAmount System.Nullable{System.Decimal} Wire field ytd_amount.

Returns: Verifiabl.Client.NewZealandPayslipV2EarningsItem

SchedularPayment(decimal, decimal?, decimal?, decimal?)

Section titled “SchedularPayment(decimal, decimal?, decimal?, decimal?)”

Method

Create an earnings line of type schedular_payment.

public static NewZealandPayslipV2EarningsItem SchedularPayment(decimal amount, decimal? units = null, decimal? rate = null, decimal? ytdAmount = null)
Parameter Type Description
amount System.Decimal Wire field amount.
units System.Nullable{System.Decimal} Wire field units.
rate System.Nullable{System.Decimal} Wire field rate.
ytdAmount System.Nullable{System.Decimal} Wire field ytd_amount.

Returns: Verifiabl.Client.NewZealandPayslipV2EarningsItem

DirectorsFees(decimal, decimal?, decimal?, decimal?)

Section titled “DirectorsFees(decimal, decimal?, decimal?, decimal?)”

Method

Create an earnings line of type directors_fees.

public static NewZealandPayslipV2EarningsItem DirectorsFees(decimal amount, decimal? units = null, decimal? rate = null, decimal? ytdAmount = null)
Parameter Type Description
amount System.Decimal Wire field amount.
units System.Nullable{System.Decimal} Wire field units.
rate System.Nullable{System.Decimal} Wire field rate.
ytdAmount System.Nullable{System.Decimal} Wire field ytd_amount.

Returns: Verifiabl.Client.NewZealandPayslipV2EarningsItem

PayAsYouGoHolidayPay(decimal, decimal?, decimal?, decimal?)

Section titled “PayAsYouGoHolidayPay(decimal, decimal?, decimal?, decimal?)”

Method

Create an earnings line of type pay_as_you_go_holiday_pay.

public static NewZealandPayslipV2EarningsItem PayAsYouGoHolidayPay(decimal amount, decimal? units = null, decimal? rate = null, decimal? ytdAmount = null)
Parameter Type Description
amount System.Decimal Wire field amount.
units System.Nullable{System.Decimal} Wire field units.
rate System.Nullable{System.Decimal} Wire field rate.
ytdAmount System.Nullable{System.Decimal} Wire field ytd_amount.

Returns: Verifiabl.Client.NewZealandPayslipV2EarningsItem

LeaveCompensationPayment(decimal, decimal?, decimal?, decimal?)

Section titled “LeaveCompensationPayment(decimal, decimal?, decimal?, decimal?)”

Method

Create an earnings line of type leave_compensation_payment.

public static NewZealandPayslipV2EarningsItem LeaveCompensationPayment(decimal amount, decimal? units = null, decimal? rate = null, decimal? ytdAmount = null)
Parameter Type Description
amount System.Decimal Wire field amount.
units System.Nullable{System.Decimal} Wire field units.
rate System.Nullable{System.Decimal} Wire field rate.
ytdAmount System.Nullable{System.Decimal} Wire field ytd_amount.

Returns: Verifiabl.Client.NewZealandPayslipV2EarningsItem

AnnualHolidayCashOut(decimal, decimal?, decimal?, decimal?)

Section titled “AnnualHolidayCashOut(decimal, decimal?, decimal?, decimal?)”

Method

Create an earnings line of type annual_holiday_cash_out.

public static NewZealandPayslipV2EarningsItem AnnualHolidayCashOut(decimal amount, decimal? units = null, decimal? rate = null, decimal? ytdAmount = null)
Parameter Type Description
amount System.Decimal Wire field amount.
units System.Nullable{System.Decimal} Wire field units.
rate System.Nullable{System.Decimal} Wire field rate.
ytdAmount System.Nullable{System.Decimal} Wire field ytd_amount.

Returns: Verifiabl.Client.NewZealandPayslipV2EarningsItem

AlternativeHolidayCashOut(decimal, decimal?, decimal?, decimal?)

Section titled “AlternativeHolidayCashOut(decimal, decimal?, decimal?, decimal?)”

Method

Create an earnings line of type alternative_holiday_cash_out.

public static NewZealandPayslipV2EarningsItem AlternativeHolidayCashOut(decimal amount, decimal? units = null, decimal? rate = null, decimal? ytdAmount = null)
Parameter Type Description
amount System.Decimal Wire field amount.
units System.Nullable{System.Decimal} Wire field units.
rate System.Nullable{System.Decimal} Wire field rate.
ytdAmount System.Nullable{System.Decimal} Wire field ytd_amount.

Returns: Verifiabl.Client.NewZealandPayslipV2EarningsItem

HolidayPayOnTermination(decimal, decimal?, decimal?, decimal?)

Section titled “HolidayPayOnTermination(decimal, decimal?, decimal?, decimal?)”

Method

Create an earnings line of type holiday_pay_on_termination.

public static NewZealandPayslipV2EarningsItem HolidayPayOnTermination(decimal amount, decimal? units = null, decimal? rate = null, decimal? ytdAmount = null)
Parameter Type Description
amount System.Decimal Wire field amount.
units System.Nullable{System.Decimal} Wire field units.
rate System.Nullable{System.Decimal} Wire field rate.
ytdAmount System.Nullable{System.Decimal} Wire field ytd_amount.

Returns: Verifiabl.Client.NewZealandPayslipV2EarningsItem

Other(decimal, decimal?, decimal?, decimal?)

Section titled “Other(decimal, decimal?, decimal?, decimal?)”

Method

Create an earnings line of type other.

public static NewZealandPayslipV2EarningsItem Other(decimal amount, decimal? units = null, decimal? rate = null, decimal? ytdAmount = null)
Parameter Type Description
amount System.Decimal Wire field amount.
units System.Nullable{System.Decimal} Wire field units.
rate System.Nullable{System.Decimal} Wire field rate.
ytdAmount System.Nullable{System.Decimal} Wire field ytd_amount.

Returns: Verifiabl.Client.NewZealandPayslipV2EarningsItem

Property

Wire field type; see Verifiabl.Client.NewZealandEarningsTypes.

[JsonPropertyName("type")]
public required string Type { get; init; }

Returns: System.String

Property

Wire field leave_type; see Verifiabl.Client.NewZealandPaidLeaveTypes.

[JsonPropertyName("leave_type")]
public string? LeaveType { get; init; }

Returns: System.String

Property

Wire field amount.

[JsonPropertyName("amount")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public required decimal Amount { get; init; }

Returns: System.Decimal

Property

Wire field units.

[JsonPropertyName("units")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? Units { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field rate.

[JsonPropertyName("rate")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? Rate { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field ytd_amount.

[JsonPropertyName("ytd_amount")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? YtdAmount { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field allowance_type; see Verifiabl.Client.NewZealandAllowanceTypes.

[JsonPropertyName("allowance_type")]
public string? AllowanceType { get; init; }

Returns: System.String

Class in Verifiabl.Client

Generated AU/NZ v2 non-PII wire fields; the API validates values.

public sealed class NewZealandPayslipV2Hourly

Inheritance: System.Object

Property

Wire field ordinary_rate.

[JsonPropertyName("ordinary_rate")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public required decimal OrdinaryRate { get; init; }

Returns: System.Decimal

Property

Wire field hours.

[JsonPropertyName("hours")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public required decimal Hours { get; init; }

Returns: System.Decimal

Property

Wire field amount.

[JsonPropertyName("amount")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public required decimal Amount { get; init; }

Returns: System.Decimal

Class in Verifiabl.Client

Generated AU/NZ v2 non-PII wire fields; the API validates values.

public sealed class NewZealandPayslipV2LeaveBalances

Inheritance: System.Object

Property

Wire field annual.

[JsonPropertyName("annual")]
public NewZealandPayslipV2LeaveBalancesAnnual? Annual { get; init; }

Returns: Verifiabl.Client.NewZealandPayslipV2LeaveBalancesAnnual

Property

Wire field annual_accrued_this_period.

[JsonPropertyName("annual_accrued_this_period")]
public NewZealandPayslipV2LeaveBalancesAnnualAccruedThisPeriod? AnnualAccruedThisPeriod { get; init; }

Returns: Verifiabl.Client.NewZealandPayslipV2LeaveBalancesAnnualAccruedThisPeriod

Property

Wire field sick.

[JsonPropertyName("sick")]
public NewZealandPayslipV2LeaveBalancesSick? Sick { get; init; }

Returns: Verifiabl.Client.NewZealandPayslipV2LeaveBalancesSick

Property

Wire field sick_accrued_this_period.

[JsonPropertyName("sick_accrued_this_period")]
public NewZealandPayslipV2LeaveBalancesSickAccruedThisPeriod? SickAccruedThisPeriod { get; init; }

Returns: Verifiabl.Client.NewZealandPayslipV2LeaveBalancesSickAccruedThisPeriod

Property

Wire field alternative.

[JsonPropertyName("alternative")]
public NewZealandPayslipV2LeaveBalancesAlternative? Alternative { get; init; }

Returns: Verifiabl.Client.NewZealandPayslipV2LeaveBalancesAlternative

NewZealandPayslipV2LeaveBalancesAlternative

Section titled “NewZealandPayslipV2LeaveBalancesAlternative”

Class in Verifiabl.Client

Generated AU/NZ v2 non-PII wire fields; the API validates values.

public sealed class NewZealandPayslipV2LeaveBalancesAlternative

Inheritance: System.Object

Property

Wire field amount.

[JsonPropertyName("amount")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public required decimal Amount { get; init; }

Returns: System.Decimal

Property

Wire field unit; see Verifiabl.Client.NewZealandLeaveBalanceUnits.

[JsonPropertyName("unit")]
public required string Unit { get; init; }

Returns: System.String

Class in Verifiabl.Client

Generated AU/NZ v2 non-PII wire fields; the API validates values.

public sealed class NewZealandPayslipV2LeaveBalancesAnnual

Inheritance: System.Object

Property

Wire field amount.

[JsonPropertyName("amount")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public required decimal Amount { get; init; }

Returns: System.Decimal

Property

Wire field unit; see Verifiabl.Client.NewZealandLeaveBalanceUnits.

[JsonPropertyName("unit")]
public required string Unit { get; init; }

Returns: System.String

NewZealandPayslipV2LeaveBalancesAnnualAccruedThisPeriod

Section titled “NewZealandPayslipV2LeaveBalancesAnnualAccruedThisPeriod”

Class in Verifiabl.Client

Generated AU/NZ v2 non-PII wire fields; the API validates values.

public sealed class NewZealandPayslipV2LeaveBalancesAnnualAccruedThisPeriod

Inheritance: System.Object

Property

Wire field amount.

[JsonPropertyName("amount")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public required decimal Amount { get; init; }

Returns: System.Decimal

Property

Wire field unit; see Verifiabl.Client.NewZealandLeaveBalanceUnits.

[JsonPropertyName("unit")]
public required string Unit { get; init; }

Returns: System.String

Class in Verifiabl.Client

Generated AU/NZ v2 non-PII wire fields; the API validates values.

public sealed class NewZealandPayslipV2LeaveBalancesSick

Inheritance: System.Object

Property

Wire field amount.

[JsonPropertyName("amount")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public required decimal Amount { get; init; }

Returns: System.Decimal

Property

Wire field unit; see Verifiabl.Client.NewZealandLeaveBalanceUnits.

[JsonPropertyName("unit")]
public required string Unit { get; init; }

Returns: System.String

NewZealandPayslipV2LeaveBalancesSickAccruedThisPeriod

Section titled “NewZealandPayslipV2LeaveBalancesSickAccruedThisPeriod”

Class in Verifiabl.Client

Generated AU/NZ v2 non-PII wire fields; the API validates values.

public sealed class NewZealandPayslipV2LeaveBalancesSickAccruedThisPeriod

Inheritance: System.Object

Property

Wire field amount.

[JsonPropertyName("amount")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public required decimal Amount { get; init; }

Returns: System.Decimal

Property

Wire field unit; see Verifiabl.Client.NewZealandLeaveBalanceUnits.

[JsonPropertyName("unit")]
public required string Unit { get; init; }

Returns: System.String

Class in Verifiabl.Client

Generated AU/NZ v2 non-PII wire fields; the API validates values.

public sealed class NewZealandPayslipV2Ytd

Inheritance: System.Object

Property

Wire field student_loan.

[JsonPropertyName("student_loan")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? StudentLoan { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field kiwisaver_employee.

[JsonPropertyName("kiwisaver_employee")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? KiwisaverEmployee { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field kiwisaver_employer.

[JsonPropertyName("kiwisaver_employer")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? KiwisaverEmployer { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field child_support.

[JsonPropertyName("child_support")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? ChildSupport { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field non_taxable.

[JsonPropertyName("non_taxable")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? NonTaxable { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field post_tax_deductions.

[JsonPropertyName("post_tax_deductions")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? PostTaxDeductions { get; init; }

Returns: System.Nullable{System.Decimal}

Property

Wire field reimbursements.

[JsonPropertyName("reimbursements")]
[JsonConverter(typeof(PayslipDecimalConverter))]
public decimal? Reimbursements { get; init; }

Returns: System.Nullable{System.Decimal}

Class in Verifiabl.Client

Currency codes accepted by the AU2 and NZ2 payslip schemas. Verifiabl.Client.PayslipCurrencies.All lists every accepted ISO 4217 code; the named constants are common codes.

public static class PayslipCurrencies

Inheritance: System.Object

Field

Every accepted ISO 4217 currency code, in alphabetical order.

public static readonly IReadOnlyList<string> All

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

Field

Australian dollar.

public const string Aud = "AUD"

Returns: System.String

Field

New Zealand dollar.

public const string Nzd = "NZD"

Returns: System.String

Field

United States dollar.

public const string Usd = "USD"

Returns: System.String

Field

Pound sterling.

public const string Gbp = "GBP"

Returns: System.String

Field

Euro.

public const string Eur = "EUR"

Returns: System.String

Field

Canadian dollar.

public const string Cad = "CAD"

Returns: System.String

Field

Singapore dollar.

public const string Sgd = "SGD"

Returns: System.String

Field

Hong Kong dollar.

public const string Hkd = "HKD"

Returns: System.String

Field

Swiss franc.

public const string Chf = "CHF"

Returns: System.String

Field

South African rand.

public const string Zar = "ZAR"

Returns: System.String

Class in Verifiabl.Client

Non-PII payslip data. Verifiabl.Client.PayslipNonPii.PeriodEnd is required (YYYY-MM-DD). Verifiabl.Client.PayslipNonPii.PeriodStart is required for v1 schemas and optional for v2.

Use Verifiabl.Client.PayslipNonPii.FromAustralianV2(Verifiabl.Client.AustralianPayslipV2) or Verifiabl.Client.PayslipNonPii.FromNewZealandV2(Verifiabl.Client.NewZealandPayslipV2) for v2 payloads. They serialize only generated fields, send each amount as an exact decimal string and each date as YYYY-MM-DD, and require an ISO 4217 currency; the API validates the other values. Verifiabl.Client.PayslipNonPii.AdditionalData is for legacy or future-schema pass-through.

public sealed class PayslipNonPii

Inheritance: System.Object

Property

First day of the pay period, YYYY-MM-DD. Required for v1 schemas and omitted for a v2 payslip that prints only a period end.

For a typed v2 payload this is a copy of the payload’s date. The request sends the payload, so setting this property has no effect.

public string? PeriodStart { get; set; }

Returns: System.String

Property

Last day of the pay period, YYYY-MM-DD.

For a typed v2 payload this is a copy of the payload’s date. The request sends the payload, so setting this property has no effect.

public required string PeriodEnd { get; set; }

Returns: System.String

Property

Free-form non-PII fields for v1 or future schemas, not supported for known v2 profiles.

Values may be <a href=“https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null"&gt;null&lt;/a>, System.String, System.Boolean, numeric primitives (System.SByte, System.Byte, System.Int16, System.UInt16, System.Int32, System.UInt32, System.Int64, System.UInt64, System.Single, System.Double, System.Decimal), nested string-keyed dictionaries, or sequences of these values. Other types (including dates and custom objects) throw an System.ArgumentException naming the offending key.

public IDictionary<string, object?>? AdditionalData { get; set; }

Returns: System.Collections.Generic.IDictionary{System.String,System.Object}

Method

Create a typed Australian v2 payload without free-form fields.

public static PayslipNonPii FromAustralianV2(AustralianPayslipV2 payload)
Parameter Type Description
payload Verifiabl.Client.AustralianPayslipV2

Returns: Verifiabl.Client.PayslipNonPii

Method

Create a typed New Zealand v2 payload without free-form fields.

public static PayslipNonPii FromNewZealandV2(NewZealandPayslipV2 payload)
Parameter Type Description
payload Verifiabl.Client.NewZealandPayslipV2

Returns: Verifiabl.Client.PayslipNonPii

Class in Verifiabl.Client

Canonical payslip schema identifiers accepted by the issuer API.

public static class PayslipSchemas

Inheritance: System.Object

Field

Frozen Australian v1 schema.

public const string AustralianV1 = "au.payslip.v1"

Returns: System.String

Field

Australian v2 schema.

public const string AustralianV2 = "au.payslip.v2"

Returns: System.String

Field

Frozen New Zealand v1 schema.

public const string NewZealandV1 = "nz.payslip.v1"

Returns: System.String

Field

New Zealand v2 schema.

public const string NewZealandV2 = "nz.payslip.v2"

Returns: System.String

Class in Verifiabl.Client

Request for Verifiabl.Client.IVerifiablClient.RegisterAndBuildBarcodeAsync(Verifiabl.Client.RegisterAndBuildBarcodeRequest,System.Threading.CancellationToken). This API-managed flow also sends the ciphertext, and the server returns a ready-made barcode image.

public sealed class RegisterAndBuildBarcodeRequest

Inheritance: System.Object

Property

Non-PII payslip schema identifier, e.g. “au.payslip.v2”. This does not select a PII format.

public required string Schema { get; set; }

Returns: System.String

Property

When the payslip was issued. Sent to the API as an ISO 8601 UTC timestamp; values with an offset are converted to UTC first.

public required DateTimeOffset IssuedAt { get; set; }

Returns: System.DateTimeOffset

Property

Non-PII payslip data.

public required PayslipNonPii PayslipNonPii { get; set; }

Returns: Verifiabl.Client.PayslipNonPii

Property

Decryption metadata from Verifiabl.VerifiablCrypto.EncryptPii(System.String,System.Byte[]).

public required EncryptionMetadata EncryptionMetadata { get; set; }

Returns: Verifiabl.EncryptionMetadata

Property

AES-256-GCM ciphertext bytes of the formatted PII plaintext.

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

Returns: System.Byte[]

Class in Verifiabl.Client

Response from Verifiabl.Client.IVerifiablClient.RegisterAndBuildBarcodeAsync(Verifiabl.Client.RegisterAndBuildBarcodeRequest,System.Threading.CancellationToken).

public sealed class RegisterAndBuildBarcodeResponse

Inheritance: System.Object

Property

22-character base64url Verifiabl reference embedded in the returned barcode.

public string VerifiablReference { get; }

Returns: System.String

Property

The server-generated barcode image.

public BarcodeImage Barcode { get; }

Returns: Verifiabl.Client.BarcodeImage

Class in Verifiabl.Client

Response from Verifiabl.Client.IVerifiablClient.RegisterNonPiiBatchAsync(System.Collections.Generic.IEnumerable&#123;Verifiabl.Client.BatchRecord&#125;,System.Threading.CancellationToken).

public sealed class RegisterNonPiiBatchResponse

Inheritance: System.Object

Property

Per-record outcomes, in the same order as the submitted records.

public IReadOnlyList<BatchRecordResult> Results { get; }

Returns: System.Collections.Generic.IReadOnlyList{Verifiabl.Client.BatchRecordResult}

Class in Verifiabl.Client

Request for Verifiabl.Client.IVerifiablClient.RegisterNonPiiAsync(Verifiabl.Client.RegisterNonPiiRequest,System.Threading.CancellationToken). The encrypted PII stays with you and goes into a locally generated barcode; only non-PII data and decryption metadata are sent.

public sealed class RegisterNonPiiRequest

Inheritance: System.Object

Property

Optional provider-generated Verifiabl reference (from Verifiabl.VerifiablReference.Generate). When unset, the SDK generates one per call. Sending the reference makes registration idempotent: resending identical data under the same reference returns the stored record instead of creating a duplicate, which is what lets the SDK retry ambiguous failures safely.

public string? VerifiablReference { get; set; }

Returns: System.String

Property

Non-PII payslip schema identifier, e.g. “au.payslip.v2”. This does not select a PII format.

public required string Schema { get; set; }

Returns: System.String

Property

When the payslip was issued. Sent to the API as an ISO 8601 UTC timestamp; values with an offset are converted to UTC first.

public required DateTimeOffset IssuedAt { get; set; }

Returns: System.DateTimeOffset

Property

Non-PII payslip data.

public required PayslipNonPii PayslipNonPii { get; set; }

Returns: Verifiabl.Client.PayslipNonPii

Property

Decryption metadata from Verifiabl.VerifiablCrypto.EncryptPii(System.String,System.Byte[]).

public required EncryptionMetadata EncryptionMetadata { get; set; }

Returns: Verifiabl.EncryptionMetadata

Class in Verifiabl.Client

Response from Verifiabl.Client.IVerifiablClient.RegisterNonPiiAsync(Verifiabl.Client.RegisterNonPiiRequest,System.Threading.CancellationToken).

public sealed class RegisterNonPiiResponse

Inheritance: System.Object

Property

22-character base64url Verifiabl reference to embed in the barcode.

public string VerifiablReference { get; }

Returns: System.String

Class in Verifiabl.Client

Thrown for any non-2xx Verifiabl API response. Match on Verifiabl.Client.VerifiablApiException.Code (stable) rather than System.Exception.Message (may change).

Verifiabl.Client.VerifiablApiException.Code is Verifiabl.Client.VerifiablErrorCodes.InternalError when the response carried no parseable Verifiabl error body (e.g. a gateway error page); check Verifiabl.Client.VerifiablApiException.Status for the raw HTTP status in that case.

A few codes have their own derived type, currently only Verifiabl.Client.VerifiablIvReuseException. Catching this type still covers them. The constructors are internal, so the SDK owns the whole hierarchy.

public class VerifiablApiException : VerifiablException, ISerializable

Inheritance: System.Object → System.Exception → Verifiabl.VerifiablException

Implements: System.Runtime.Serialization.ISerializable

Property

HTTP status code of the failed response.

public int Status { get; }

Returns: System.Int32

Property

Stable machine-readable error code. See Verifiabl.Client.VerifiablErrorCodes.

public string Code { get; }

Returns: System.String

Property

The parsed error body, when the response carried one.

public VerifiablErrorBody? Body { get; }

Returns: Verifiabl.Client.VerifiablErrorBody

Property

Request ID to quote to Verifiabl support, when the response carried one.

public string? RequestId { get; }

Returns: System.String

Class in Verifiabl.Client

How the client authenticates to the Verifiabl API.

Pass the OAuth2 client ID and secret issued during onboarding via Verifiabl.Client.VerifiablAuth.ClientCredentials(System.String,System.String,System.Uri) and the client fetches, caches, and refreshes access tokens automatically.

public abstract class VerifiablAuth

Inheritance: System.Object

Method

OAuth2 client credentials issued by Verifiabl during onboarding.

public static VerifiablAuth ClientCredentials(string clientId, string clientSecret, Uri? tokenUrl = null)
Parameter Type Description
clientId System.String OAuth client ID.
clientSecret System.String OAuth client secret. Load from a secrets manager; never hard-code it.
tokenUrl System.Uri OAuth token endpoint (default: the environment’s auth service, e.g. https://auth.verifiabl.io/oauth/token). Overrides must use a Verifiabl auth host, or localhost for local development.

Returns: Verifiabl.Client.VerifiablAuth

Class in Verifiabl.Client

Thrown when an OAuth access token cannot be obtained. Verifiabl.Client.VerifiablAuthException.Status is the HTTP status returned by the token endpoint, or null when the request itself failed or the response was unparseable.

public sealed class VerifiablAuthException : VerifiablException, ISerializable

Inheritance: System.Object → System.Exception → Verifiabl.VerifiablException

Implements: System.Runtime.Serialization.ISerializable

Property

HTTP status returned by the token endpoint, when one was received.

public int? Status { get; }

Returns: System.Nullable{System.Int32}

Class in Verifiabl.Client

Typed client for the Verifiabl issuer API.

With OAuth client credentials the client fetches, caches, and refreshes access tokens automatically; a request that fails with 401 is retried exactly once with a fresh token. The client is thread-safe and intended to be created once and reused.

Every failure an API call reports derives from Verifiabl.VerifiablException, so one catch (VerifiablException) covers API errors, auth failures, timeouts, and transport faults.

Depend on Verifiabl.Client.IVerifiablClient where you need to substitute a fake.

public sealed class VerifiablClient : IVerifiablClient

Inheritance: System.Object

Implements: Verifiabl.Client.IVerifiablClient

Field

Maximum records per batch request. Matches the API’s limit.

public const int MaxBatchRecords = 1000

Returns: System.Int32

Constructor

Create a client. See Verifiabl.Client.VerifiablClientOptions.

public VerifiablClient(VerifiablClientOptions options)
Parameter Type Description
options Verifiabl.Client.VerifiablClientOptions

RegisterNonPiiAsync(RegisterNonPiiRequest, CancellationToken)

Section titled “RegisterNonPiiAsync(RegisterNonPiiRequest, CancellationToken)”

Method

Register non-PII payslip data and decryption metadata. Returns the Verifiabl reference to embed in a locally generated barcode.

public Task<RegisterNonPiiResponse> RegisterNonPiiAsync(RegisterNonPiiRequest request, CancellationToken cancellationToken = default)
Parameter Type Description
request Verifiabl.Client.RegisterNonPiiRequest The payslip registration.
cancellationToken System.Threading.CancellationToken Cancels the call.

Returns: System.Threading.Tasks.Task{Verifiabl.Client.RegisterNonPiiResponse}

Exceptions

Type Condition
System.ArgumentException The request is incomplete or malformed.
Verifiabl.Client.VerifiablIvReuseException The record’s encryption IV is already registered to this issuer.
Verifiabl.Client.VerifiablApiException The API returned a non-2xx response.
Verifiabl.Client.VerifiablAuthException An OAuth token could not be obtained.
Verifiabl.Client.VerifiablTimeoutException The call exceeded the configured timeout.
Verifiabl.Client.VerifiablTransportException A network fault prevented a response, or the response was not usable JSON.
System.OperationCanceledException cancellationToken was cancelled.

RegisterAndBuildBarcodeAsync(RegisterAndBuildBarcodeRequest, CancellationToken)

Section titled “RegisterAndBuildBarcodeAsync(RegisterAndBuildBarcodeRequest, CancellationToken)”

Method

Register non-PII payslip data and have the API build the barcode. Sends the encrypted PII alongside the non-PII data.

public Task<RegisterAndBuildBarcodeResponse> RegisterAndBuildBarcodeAsync(RegisterAndBuildBarcodeRequest request, CancellationToken cancellationToken = default)
Parameter Type Description
request Verifiabl.Client.RegisterAndBuildBarcodeRequest The payslip registration, including the ciphertext.
cancellationToken System.Threading.CancellationToken Cancels the call.

Returns: System.Threading.Tasks.Task{Verifiabl.Client.RegisterAndBuildBarcodeResponse}

Exceptions

Type Condition
System.ArgumentException The request is incomplete or malformed.
Verifiabl.Client.VerifiablIvReuseException The record’s encryption IV is already registered to this issuer.
Verifiabl.Client.VerifiablApiException The API returned a non-2xx response.
Verifiabl.Client.VerifiablAuthException An OAuth token could not be obtained.
Verifiabl.Client.VerifiablTimeoutException The call exceeded the configured timeout.
Verifiabl.Client.VerifiablTransportException A network fault prevented a response, or the response was not usable JSON.
System.OperationCanceledException cancellationToken was cancelled.

RegisterNonPiiBatchAsync(IEnumerable&lt;BatchRecord&gt;, CancellationToken)

Section titled “RegisterNonPiiBatchAsync(IEnumerable&lt;BatchRecord&gt;, CancellationToken)”

Method

Register a batch of non-PII payslip records in a single request, up to Verifiabl.Client.VerifiablClient.MaxBatchRecords records. Each record carries a provider-generated Verifiabl reference (from Verifiabl.VerifiablReference.Generate) and the same fields as Verifiabl.Client.IVerifiablClient.RegisterNonPiiAsync(Verifiabl.Client.RegisterNonPiiRequest,System.Threading.CancellationToken). The response contains a per-record result index-aligned to the input: one bad record never fails the batch. A record whose encryption IV is already registered to this issuer, or is repeated within this batch, comes back as an error result matched by Verifiabl.Client.BatchRecordResult.IsIvReused.

public Task<RegisterNonPiiBatchResponse> RegisterNonPiiBatchAsync(IEnumerable<BatchRecord> records, CancellationToken cancellationToken = default)
Parameter Type Description
records System.Collections.Generic.IEnumerable{Verifiabl.Client.BatchRecord} The records to register.
cancellationToken System.Threading.CancellationToken Cancels the call.

Returns: System.Threading.Tasks.Task{Verifiabl.Client.RegisterNonPiiBatchResponse}

Exceptions

Type Condition
System.ArgumentNullException records is null.
System.ArgumentException The batch is empty, oversized, or a record is malformed.
Verifiabl.Client.VerifiablApiException The API returned a non-2xx response.
Verifiabl.Client.VerifiablAuthException An OAuth token could not be obtained.
Verifiabl.Client.VerifiablTimeoutException The call exceeded the configured timeout.
Verifiabl.Client.VerifiablTransportException A network fault prevented a response, or the response was not usable JSON.
System.OperationCanceledException cancellationToken was cancelled.

Class in Verifiabl.Client

Options for constructing a Verifiabl.Client.VerifiablClient.

public sealed class VerifiablClientOptions

Inheritance: System.Object

Property

How to authenticate. Required. See Verifiabl.Client.VerifiablAuth.

public VerifiablAuth? Auth { get; set; }

Returns: Verifiabl.Client.VerifiablAuth

Property

API environment. Defaults to production.

public VerifiablEnvironment Environment { get; set; }

Returns: Verifiabl.VerifiablEnvironment

Property

Advanced local development override for issuer API calls. Most integrations should leave this unset and use Verifiabl.Client.VerifiablClientOptions.Environment instead. Must use https, except localhost may use http.

public Uri? IssuerBaseUrl { get; set; }

Returns: System.Uri

Property

Timeout applied to each API call. Defaults to 30 seconds.

public TimeSpan Timeout { get; set; }

Returns: System.TimeSpan

Property

Maximum automatic retries for a failed request, on top of the first attempt. Defaults to 2; set 0 to disable.

Retries use exponential backoff with jitter and honour a Retry-After header. Calls that carry a client-generated reference (Verifiabl.Client.IVerifiablClient.RegisterNonPiiAsync(Verifiabl.Client.RegisterNonPiiRequest,System.Threading.CancellationToken), which mints one per call, and Verifiabl.Client.IVerifiablClient.RegisterNonPiiBatchAsync(System.Collections.Generic.IEnumerable&#123;Verifiabl.Client.BatchRecord&#125;,System.Threading.CancellationToken)) deduplicate on the server, so they retry on throttling, timeouts, 5xx, and network faults. Verifiabl.Client.IVerifiablClient.RegisterAndBuildBarcodeAsync(Verifiabl.Client.RegisterAndBuildBarcodeRequest,System.Threading.CancellationToken) uses a server-minted reference that cannot deduplicate a resend, so it retries only 429, which the API enforces before any processing. All retries share the call Verifiabl.Client.VerifiablClientOptions.Timeout as an overall deadline.

public int MaxRetries { get; set; }

Returns: System.Int32

Property

The System.Net.Http.HttpClient to send requests with; the SDK never disposes it. When unset, a shared internal client is used. The SDK manages its own per-request timeouts, so the supplied client’s Timeout should be left at its default or set to infinite.

The Verifiabl.Issuer.Extensions.DependencyInjection package wires this to IHttpClientFactory for you.

public HttpClient? HttpClient { get; set; }

Returns: System.Net.Http.HttpClient

Property

Called before each Verifiabl API request. Bodies are not included.

public Action<VerifiablRequestEvent>? OnRequest { get; set; }

Returns: System.Action{Verifiabl.Client.VerifiablRequestEvent}

Property

Called after each Verifiabl API response. Bodies are not included.

public Action<VerifiablResponseEvent>? OnResponse { get; set; }

Returns: System.Action{Verifiabl.Client.VerifiablResponseEvent}

Property

Called when an issuer API request fails before receiving a response.

public Action<VerifiablErrorEvent>? OnError { get; set; }

Returns: System.Action{Verifiabl.Client.VerifiablErrorEvent}

Class in Verifiabl.Client

Body shape of every non-2xx JSON response from the Verifiabl API.

public sealed class VerifiablErrorBody

Inheritance: System.Object

Property

Human-readable error summary. May change; match on Verifiabl.Client.VerifiablErrorBody.Code instead.

public string Error { get; }

Returns: System.String

Property

Stable machine-readable error code. See Verifiabl.Client.VerifiablErrorCodes.

public string Code { get; }

Returns: System.String

Property

Optional human-readable detail.

public string? Detail { get; }

Returns: System.String

Property

Per-field validation errors, present on validation failures. Null when the response carried none.

public IReadOnlyList<VerifiablFieldError>? FieldErrors { get; }

Returns: System.Collections.Generic.IReadOnlyList{Verifiabl.Client.VerifiablFieldError}

Class in Verifiabl.Client

Error codes the API is known to return today, for matching against Verifiabl.Client.VerifiablApiException.Code. The API may add codes over time; treat anything not listed here as a generic failure rather than rejecting the response.

public static class VerifiablErrorCodes

Inheritance: System.Object

Field

The request failed validation; see the exception’s field errors.

public const string ValidationFailed = "VALIDATION_FAILED"

Returns: System.String

Field

The ciphertext could not be decrypted with the registered key.

public const string DecryptionFailed = "DECRYPTION_FAILED"

Returns: System.String

Field

The request was not authenticated.

public const string Unauthorized = "UNAUTHORIZED"

Returns: System.String

Field

The authenticated caller may not perform this operation.

public const string Forbidden = "FORBIDDEN"

Returns: System.String

Field

The Verifiabl reference is already registered with different data. A resend of identical content is an idempotent replay and succeeds instead.

public const string Conflict = "CONFLICT"

Returns: System.String

Field

The record’s encryption IV is already registered to this issuer. Surfaces as Verifiabl.Client.VerifiablIvReuseException on a single registration, and as an error result matched by Verifiabl.Client.BatchRecordResult.IsIvReused in a batch.

public const string IvReused = "IV_REUSED"

Returns: System.String

Field

The referenced key version is not available for this provider.

public const string KeyVersionUnavailable = "KEY_VERSION_UNAVAILABLE"

Returns: System.String

Field

An unexpected server error, or a non-JSON error response.

public const string InternalError = "INTERNAL_ERROR"

Returns: System.String

Field

The service is temporarily unavailable.

public const string ServiceUnavailable = "SERVICE_UNAVAILABLE"

Returns: System.String

Class in Verifiabl.Client

Details of a failed issuer API request, for observability hooks.

public sealed class VerifiablErrorEvent : VerifiablRequestEvent

Inheritance: System.Object → Verifiabl.Client.VerifiablRequestEvent

Property

Elapsed time in milliseconds.

public double ElapsedMs { get; }

Returns: System.Double

Property

The exception that failed the request.

public Exception Error { get; }

Returns: System.Exception

Class in Verifiabl.Client

A per-field validation error returned by the API.

public sealed class VerifiablFieldError

Inheritance: System.Object

Property

Dot-delimited field path, or “” when not field-specific.

public string Path { get; }

Returns: System.String

Property

Human-readable message for this field.

public string Message { get; }

Returns: System.String

Class in Verifiabl.Client

Thrown when a single registration is rejected because the record’s encryption IV is already registered to your issuer. Derives from Verifiabl.Client.VerifiablApiException with Verifiabl.Client.VerifiablApiException.Code of Verifiabl.Client.VerifiablErrorCodes.IvReused, so an existing catch (VerifiablApiException) still covers it.

Verifiabl.VerifiablCrypto.EncryptPii(System.String,System.Byte[]) draws a fresh IV on every call, so this occurs when stored encryption metadata is sent again with new content.

The SDK does not re-encrypt and retry for you. Encrypt the payslip again, resend the record with the new encryption metadata, and rebuild any barcode that you rendered from the previous ciphertext. Resending the record unchanged gives the same result.

public sealed class VerifiablIvReuseException : VerifiablApiException, ISerializable

Inheritance: System.Object → System.Exception → Verifiabl.VerifiablException → Verifiabl.Client.VerifiablApiException

Implements: System.Runtime.Serialization.ISerializable

Class in Verifiabl.Client

Details of an outgoing issuer API request, for observability hooks.

public class VerifiablRequestEvent

Inheritance: System.Object

Property

HTTP method. Always “POST”.

public string Method { get; }

Returns: System.String

Property

Full request URL.

public string Url { get; }

Returns: System.String

Property

Request path, e.g. “/v1/registerNonPII”.

public string Path { get; }

Returns: System.String

Class in Verifiabl.Client

Details of a completed issuer API response, for observability hooks.

public sealed class VerifiablResponseEvent : VerifiablRequestEvent

Inheritance: System.Object → Verifiabl.Client.VerifiablRequestEvent

Property

HTTP status code.

public int Status { get; }

Returns: System.Int32

Property

Elapsed time in milliseconds.

public double ElapsedMs { get; }

Returns: System.Double

Property

Request ID returned by the API, when present.

public string? RequestId { get; }

Returns: System.String

Class in Verifiabl.Client

Thrown when an API call exceeds Verifiabl.Client.VerifiablClientOptions.Timeout. The deadline covers the whole operation: token fetch, request, the 401 refresh, and every retry with its backoff.

A cancellation you requested surfaces as System.OperationCanceledException instead, so the two are never confused.

public sealed class VerifiablTimeoutException : VerifiablException, ISerializable

Inheritance: System.Object → System.Exception → Verifiabl.VerifiablException

Implements: System.Runtime.Serialization.ISerializable

Property

The configured per-call timeout that was exceeded.

public TimeSpan Timeout { get; }

Returns: System.TimeSpan

Class in Verifiabl.Client

Thrown when a call never produced a usable response: a network fault (with the underlying System.Net.Http.HttpRequestException as System.Exception.InnerException), or a 2xx response whose body was empty, not JSON, or not the shape this SDK version expects.

For a retryable call this is only raised once the retries are exhausted.

public sealed class VerifiablTransportException : VerifiablException, ISerializable

Inheritance: System.Object → System.Exception → Verifiabl.VerifiablException

Implements: System.Runtime.Serialization.ISerializable