UntangleDev.Veriphy 1.1.1

dotnet add package UntangleDev.Veriphy --version 1.1.1
                    
NuGet\Install-Package UntangleDev.Veriphy -Version 1.1.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="UntangleDev.Veriphy" Version="1.1.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="UntangleDev.Veriphy" Version="1.1.1" />
                    
Directory.Packages.props
<PackageReference Include="UntangleDev.Veriphy" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add UntangleDev.Veriphy --version 1.1.1
                    
#r "nuget: UntangleDev.Veriphy, 1.1.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package UntangleDev.Veriphy@1.1.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=UntangleDev.Veriphy&version=1.1.1
                    
Install as a Cake Addin
#tool nuget:?package=UntangleDev.Veriphy&version=1.1.1
                    
Install as a Cake Tool

UntangleDev.Veriphy

UntangleDev.Veriphy is an unofficial .NET client library for Veriphy's BankWizard and IDAML APIs. It wraps the generated OpenAPI client with typed clients for common workflows, dependency injection registration, request authentication, service-code helpers, and consistent API error handling.

This package is independently maintained by UntangleDev. It is not an official Veriphy package and is not affiliated with, sponsored by, or endorsed by Veriphy. You need your own Veriphy API credentials and API access from Veriphy to use it.

The package targets .NET 10 and supports:

  • BankWizard bank account checks
  • IDAML identity, AML, credit, HR, director-search, visa, and related checks
  • IDAML PEP/sanctions monitoring checks
  • Idiomatic request models for common workflows
  • Generated Veriphy response models from the filtered OpenAPI document

Installation

dotnet add package UntangleDev.Veriphy

Quick Start

Register both clients with dependency injection:

using Microsoft.Extensions.DependencyInjection;
using UntangleDev.Veriphy;
using UntangleDev.Veriphy.DependencyInjection;

var services = new ServiceCollection();

services.AddVeriphy(options =>
{
    options.Username = "your-username";
    options.Password = "your-password";
    options.BaseAddress = VeriphyEndpoints.Test;
});

using var provider = services.BuildServiceProvider();

var idAml = provider.GetRequiredService<IIdAmlClient>();
var bankWizard = provider.GetRequiredService<IBankWizardClient>();

var idAmlResponse = await idAml.GetIdAmlAsync("check-id");
var bankWizardResponse = await bankWizard.GetBankWizardAsync("check-id");

VeriphyEndpoints.Test is the default endpoint. For production, set BaseAddress to the production API base URL supplied by Veriphy:

services.AddVeriphy(options =>
{
    options.Username = Environment.GetEnvironmentVariable("VERIPHY_USERNAME")!;
    options.Password = Environment.GetEnvironmentVariable("VERIPHY_PASSWORD")!;
    options.BaseAddress = new Uri("https://your-production-veriphy-host/api");
    options.Timeout = TimeSpan.FromSeconds(60);
});

Without Dependency Injection

If you are not using dependency injection, create the clients directly:

using UntangleDev.Veriphy;
using UntangleDev.Veriphy.BankWizard;
using UntangleDev.Veriphy.IdAml;

var options = new VeriphyClientOptions
{
    Username = "your-username",
    Password = "your-password",
    BaseAddress = VeriphyEndpoints.Test
};

using var httpClient = new HttpClient();

IBankWizardClient bankWizard = new BankWizardClient(httpClient, options);
IIdAmlClient idAml = new IdAmlClient(httpClient, options);

API Coverage

This package supports these Veriphy operations:

  • BankWizard: GET /BankWizard, POST /BankWizard
  • IDAML: GET /IDAML, POST /IDAML
  • IDAML PEP/sanctions monitoring: GET /IDAML/MONITOR, POST /IDAML/MONITOR

The clean request models live in UntangleDev.Veriphy. The generated Veriphy transfer objects remain available in UntangleDev.Veriphy.Models for callers that need the exact schema shape.

BankWizard Examples

Fetch an existing BankWizard check:

VeriphyCCBankCheckResponseTO result = await bankWizard.GetBankWizardAsync("veriphy-check-id");

Console.WriteLine(result.VeriphyCheckId);
Console.WriteLine(result.Reference);

Run a BankWizard bank account check:

var request = new BankWizardCheckRequest
{
    Reference = "matter-123",
    ReturnPdf = true,
    Applicant = new BankWizardApplicant
    {
        ApplicantId = "applicant-1",
        DateOfBirth = new DateTimeOffset(1985, 4, 12, 0, 0, 0, TimeSpan.Zero),
        EmailAddress = "applicant@example.com",
        MobileNumber = "07123456789",
        Names =
        {
            new BankWizardName
            {
                Forename = "Jane",
                MiddleNames = "Ann",
                Surname = "Example"
            }
        },
        Addresses =
        {
            new BankWizardAddress
            {
                AddressLine1 = "1 Example Street",
                Town = "London",
                Postcode = "SW1A 1AA",
                Country = "GB"
            }
        },
        BankAccount = new BankAccountDetails
        {
            AccountNumber = "12345678",
            SortCode = "010203",
            AccountType = "Personal"
        }
    }
};

VeriphyCCBankCheckResponseTO response =
    await bankWizard.PerformBankWizardCheckAsync(request);

string? encodedPdf = response.ResponseEncodedPdf;

The BankWizard client adds AuthenticationTO and the CCBANKACC service code to check requests. The mapper also fills Veriphy-required empty string fields that are not needed by your request.

IDAML Examples

Fetch an existing IDAML check:

VeriphyIDAMLResponseTO result = await idAml.GetIdAmlAsync("veriphy-check-id");

Console.WriteLine(result.VeriphyCheckId);
Console.WriteLine(result.Reference);

Run an IDAML check:

var request = new IdAmlCheckRequest
{
    Reference = "matter-456",
    ServiceCode = IdAmlServices.IdentityAndAml,
    ReturnPdf = true,
    Applicants =
    {
        new IdAmlApplicant
        {
            ApplicantId = "applicant-1",
            Gender = "F",
            DateOfBirth = new DateTimeOffset(1985, 4, 12, 0, 0, 0, TimeSpan.Zero),
            Names =
            {
                new IdAmlName
                {
                    Title = "Ms",
                    Forename = "Jane",
                    MiddleNames = "Ann",
                    Surname = "Example"
                }
            },
            Addresses =
            {
                new IdAmlAddress
                {
                    AddressLine1 = "1 Example Street",
                    Town = "London",
                    Postcode = "SW1A 1AA",
                    Country = "GB"
                }
            },
            Contact = new IdAmlContact
            {
                MobilePhoneNumber = "07123456789",
                EmailAddress = "applicant@example.com"
            },
            BankDetails = new IdAmlBankDetails
            {
                AccountNumber = "12345678",
                SortCode = "010203"
            }
        }
    }
};

VeriphyIDAMLResponseTO response = await idAml.PerformIdAmlCheckAsync(request);

Common IDAML service-code constants:

IdAmlServices.AmlNoCredit
IdAmlServices.CreditActive
IdAmlServices.IdentityAndAml
IdAmlServices.InternationalId
IdAmlServices.HrScreen
IdAmlServices.DirectorSearch
IdAmlServices.IdentityCheck
IdAmlServices.Veriphy360
IdAmlServices.TravelVisa
IdAmlServices.HrCreditPlus

IDAML Monitoring Example

Run an IDAML PEP/sanctions monitoring check:

var monitorRequest = new IdAmlMonitoringCheckRequest
{
    Reference = "monitor-789",
    CallbackEmail = "alerts@example.com",
    CallbackUrl = "https://example.com/veriphy/callback",
    Applicants =
    {
        new IdAmlApplicant
        {
            ApplicantId = "applicant-1",
            Gender = "F",
            DateOfBirth = new DateTimeOffset(1985, 4, 12, 0, 0, 0, TimeSpan.Zero),
            Names =
            {
                new IdAmlName
                {
                    Title = "Ms",
                    Forename = "Jane",
                    MiddleNames = "Ann",
                    Surname = "Example"
                }
            },
            Addresses =
            {
                new IdAmlAddress
                {
                    AddressLine1 = "1 Example Street",
                    Town = "London",
                    Postcode = "SW1A 1AA",
                    Country = "GB"
                }
            }
        }
    }
};

VeriphyIDAMLMonitorResponseTO monitorResponse =
    await idAml.PerformIdAmlMonitorCheckAsync(monitorRequest);

long? monitorId = monitorResponse.ResponseResult?.SanctionResults?.Content?.Data?.Id;

The IDAML client adds the IDAMLNOCREDMONITOR service code to monitoring requests.

Fetch an existing monitoring check:

VeriphyIDAMLMonitorResponseTO existingMonitor =
    await idAml.GetIdAmlMonitorAsync("veriphy-check-id");

Raw Generated DTOs

The idiomatic request models are the recommended API for new code. If you need exact control over the Veriphy schema, use the generated transfer objects directly:

using UntangleDev.Veriphy.Models;

var application = new ApplicationTO
{
    Reference = "matter-456",
    Applicants = new List<ApplicantTO>
    {
        new()
        {
            Gender = "F",
            DateOfBirth = new DateTimeOffset(1985, 4, 12, 0, 0, 0, TimeSpan.Zero)
        }
    }
};

VeriphyIDAMLResponseTO response = await idAml.PerformIdAmlCheckAsync(
    application,
    VeriphyServiceCodes.IDAML,
    returnPdf: true);

When using raw DTOs, populate the required generated objects and empty string fields yourself. The clean request overloads do that mapping for you.

Error Handling

Non-success API responses are thrown as VeriphyApiException:

try
{
    VeriphyIDAMLResponseTO response = await idAml.GetIdAmlAsync("veriphy-check-id");
}
catch (VeriphyApiException exception)
{
    Console.WriteLine(exception.OperationName);
    Console.WriteLine(exception.StatusCode);
    Console.WriteLine(exception.Response);
}

Regenerating the Client

The committed Swagger snapshot is filtered from Veriphy's test OpenAPI document:

curl -fsSL https://test.veriphy.co.uk/api/docs/v1 | ruby tools/filter-openapi.rb > openapi/veriphy-bankwizard-idaml.swagger.json
nswag run nswag.json

The filter also corrects the live Swagger declaration for POST /BankWizard, which currently reports the request DTO as the 200 response schema.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.1.1 125 5/9/2026
1.1.0 117 5/9/2026
1.0.0 105 5/9/2026

Add idiomatic BankWizard and IDAML request models while preserving generated DTO overloads. This is an unofficial, unaffiliated client and is not endorsed by Veriphy.