From 61d3ad88ed90ab20bd60e9266443a5b8e248b3c5 Mon Sep 17 00:00:00 2001 From: Raghu Kumar Date: Wed, 26 Aug 2026 10:54:36 -0700 Subject: [PATCH 1/2] [NEB-4778] Add KYC, geo, and bot-detection structured fields --- CHANGES.MD | 7 + README.md | 2 +- .../ComplexTypes/bot_identification.json | 17 ++ Sift/Schema/ComplexTypes/geo.json | 17 ++ Sift/Schema/ComplexTypes/kyc.json | 19 ++ Sift/Schema/create_account.json | 24 ++ Sift/Schema/create_order.json | 18 ++ Sift/Schema/login.json | 12 + Sift/Schema/transaction.json | 18 ++ Sift/Schema/update_account.json | 24 ++ Sift/Schema/update_order.json | 18 ++ Sift/Schema/verification.json | 6 + Sift/Sift.csproj | 4 +- Test/Test.cs | 263 ++++++++++++++++++ 14 files changed, 446 insertions(+), 3 deletions(-) create mode 100644 Sift/Schema/ComplexTypes/bot_identification.json create mode 100644 Sift/Schema/ComplexTypes/geo.json create mode 100644 Sift/Schema/ComplexTypes/kyc.json diff --git a/CHANGES.MD b/CHANGES.MD index c5ea4eb..11afa13 100644 --- a/CHANGES.MD +++ b/CHANGES.MD @@ -1,5 +1,12 @@ # CHANGES +## 1.8.0 (2026-08-25) + +### Added +- **`$nationality`**, **`$year_of_birth`** fields in `$create_account`, `$update_account` events +- **`$kyc`** complex type in `$create_account`, `$update_account`, `$transaction`, `$create_order`, `$update_order`, `$verification` events +- **`$geo`**, **`$bot_identification`** complex types in `$create_account`, `$update_account`, `$login`, `$transaction`, `$create_order`, `$update_order` events + ## 1.7.0 (2025-12-03) ### Added diff --git a/README.md b/README.md index f5e2940..4055804 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ The official Sift .NET client, supporting .NET Standard 2.0+ -## Latest Release (v1.7.0) +## Latest Release (v1.8.0) See [CHANGES.MD](CHANGES.MD) for full release history. diff --git a/Sift/Schema/ComplexTypes/bot_identification.json b/Sift/Schema/ComplexTypes/bot_identification.json new file mode 100644 index 0000000..4f47d33 --- /dev/null +++ b/Sift/Schema/ComplexTypes/bot_identification.json @@ -0,0 +1,17 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema", + "title": "BotIdentification", + "type": "object", + "required": [ + "$result", + "$provider" + ], + "properties": { + "$result": { + "type": [ "string", "null" ] + }, + "$provider": { + "type": [ "string", "null" ] + } + } +} diff --git a/Sift/Schema/ComplexTypes/geo.json b/Sift/Schema/ComplexTypes/geo.json new file mode 100644 index 0000000..8f6524c --- /dev/null +++ b/Sift/Schema/ComplexTypes/geo.json @@ -0,0 +1,17 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema", + "title": "Geo", + "type": "object", + "required": [ + "$uuid", + "$provider" + ], + "properties": { + "$uuid": { + "type": [ "string", "null" ] + }, + "$provider": { + "type": [ "string", "null" ] + } + } +} diff --git a/Sift/Schema/ComplexTypes/kyc.json b/Sift/Schema/ComplexTypes/kyc.json new file mode 100644 index 0000000..01a13ad --- /dev/null +++ b/Sift/Schema/ComplexTypes/kyc.json @@ -0,0 +1,19 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema", + "title": "Kyc", + "type": "object", + "properties": { + "$names_match": { + "type": [ "boolean", "null" ] + }, + "$kyc_level": { + "type": [ "string", "null" ] + }, + "$bin_nationality_match": { + "type": [ "boolean", "null" ] + }, + "$provider": { + "type": [ "string", "null" ] + } + } +} diff --git a/Sift/Schema/create_account.json b/Sift/Schema/create_account.json index ebd1a4c..b092945 100644 --- a/Sift/Schema/create_account.json +++ b/Sift/Schema/create_account.json @@ -85,6 +85,30 @@ }, "$ip": { "type": [ "string", "null" ] + }, + "$nationality": { + "type": [ "string", "null" ] + }, + "$year_of_birth": { + "type": [ "integer", "null" ] + }, + "$kyc": { + "oneOf": [ + { "$ref": "ComplexTypes/kyc.json" }, + { "type": "null" } + ] + }, + "$geo": { + "oneOf": [ + { "$ref": "ComplexTypes/geo.json" }, + { "type": "null" } + ] + }, + "$bot_identification": { + "oneOf": [ + { "$ref": "ComplexTypes/bot_identification.json" }, + { "type": "null" } + ] } } } diff --git a/Sift/Schema/create_order.json b/Sift/Schema/create_order.json index a971cc0..f982826 100644 --- a/Sift/Schema/create_order.json +++ b/Sift/Schema/create_order.json @@ -120,6 +120,24 @@ }, "$ip": { "type": [ "string", "null" ] + }, + "$kyc": { + "oneOf": [ + { "$ref": "ComplexTypes/kyc.json" }, + { "type": "null" } + ] + }, + "$geo": { + "oneOf": [ + { "$ref": "ComplexTypes/geo.json" }, + { "type": "null" } + ] + }, + "$bot_identification": { + "oneOf": [ + { "$ref": "ComplexTypes/bot_identification.json" }, + { "type": "null" } + ] } } } diff --git a/Sift/Schema/login.json b/Sift/Schema/login.json index c982564..6fa109a 100644 --- a/Sift/Schema/login.json +++ b/Sift/Schema/login.json @@ -59,6 +59,18 @@ }, "$verification_phone_number": { "type": [ "string", "null" ] + }, + "$geo": { + "oneOf": [ + { "$ref": "ComplexTypes/geo.json" }, + { "type": "null" } + ] + }, + "$bot_identification": { + "oneOf": [ + { "$ref": "ComplexTypes/bot_identification.json" }, + { "type": "null" } + ] } } } diff --git a/Sift/Schema/transaction.json b/Sift/Schema/transaction.json index 8c9e9e7..63f37cc 100644 --- a/Sift/Schema/transaction.json +++ b/Sift/Schema/transaction.json @@ -162,6 +162,24 @@ "$new_balance": { "type": [ "integer", "null" ], "format": "long" + }, + "$kyc": { + "oneOf": [ + { "$ref": "ComplexTypes/kyc.json" }, + { "type": "null" } + ] + }, + "$geo": { + "oneOf": [ + { "$ref": "ComplexTypes/geo.json" }, + { "type": "null" } + ] + }, + "$bot_identification": { + "oneOf": [ + { "$ref": "ComplexTypes/bot_identification.json" }, + { "type": "null" } + ] } } } diff --git a/Sift/Schema/update_account.json b/Sift/Schema/update_account.json index 0c48edc..fb520fe 100644 --- a/Sift/Schema/update_account.json +++ b/Sift/Schema/update_account.json @@ -88,6 +88,30 @@ }, "$ip": { "type": [ "string", "null" ] + }, + "$nationality": { + "type": [ "string", "null" ] + }, + "$year_of_birth": { + "type": [ "integer", "null" ] + }, + "$kyc": { + "oneOf": [ + { "$ref": "ComplexTypes/kyc.json" }, + { "type": "null" } + ] + }, + "$geo": { + "oneOf": [ + { "$ref": "ComplexTypes/geo.json" }, + { "type": "null" } + ] + }, + "$bot_identification": { + "oneOf": [ + { "$ref": "ComplexTypes/bot_identification.json" }, + { "type": "null" } + ] } } } diff --git a/Sift/Schema/update_order.json b/Sift/Schema/update_order.json index e4e133e..2ae8a7c 100644 --- a/Sift/Schema/update_order.json +++ b/Sift/Schema/update_order.json @@ -119,6 +119,24 @@ }, "$ip": { "type": [ "string", "null" ] + }, + "$kyc": { + "oneOf": [ + { "$ref": "ComplexTypes/kyc.json" }, + { "type": "null" } + ] + }, + "$geo": { + "oneOf": [ + { "$ref": "ComplexTypes/geo.json" }, + { "type": "null" } + ] + }, + "$bot_identification": { + "oneOf": [ + { "$ref": "ComplexTypes/bot_identification.json" }, + { "type": "null" } + ] } } diff --git a/Sift/Schema/verification.json b/Sift/Schema/verification.json index 6f9c1c9..9fea523 100644 --- a/Sift/Schema/verification.json +++ b/Sift/Schema/verification.json @@ -55,6 +55,12 @@ }, "$ip": { "type": [ "string", "null" ] + }, + "$kyc": { + "oneOf": [ + { "$ref": "ComplexTypes/kyc.json" }, + { "type": "null" } + ] } } } diff --git a/Sift/Sift.csproj b/Sift/Sift.csproj index 76009fc..7dbe498 100644 --- a/Sift/Sift.csproj +++ b/Sift/Sift.csproj @@ -4,8 +4,8 @@ Sift Sift Sift - 1.7.0 - Release 1.7.0 + 1.8.0 + Release 1.8.0 netstandard2.0 Sift sift;siftscience;client;api;client;async diff --git a/Test/Test.cs b/Test/Test.cs index 35648b2..cc738d8 100644 --- a/Test/Test.cs +++ b/Test/Test.cs @@ -313,6 +313,46 @@ public void TestTransactionEvent() Uri.UnescapeDataString(eventRequest.Request.RequestUri!.ToString())); } + [Fact] + public void TestTransactionStructuredFieldsEvent() + { + var transaction = new Transaction + { + user_id = "test_dotnet_transaction_structured_fields", + amount = 506790000, + currency_code = "USD", + kyc = new Kyc + { + names_match = true, + bin_nationality_match = true, + provider = "lexisnexis" + }, + geo = new Geo + { + uuid = "gc-abc-123", + provider = "geocomply" + }, + bot_identification = new BotIdentification + { + result = "$suspected", + provider = "human_security" + } + }; + + Assert.Equal("{\"$type\":\"$transaction\",\"$user_id\":\"test_dotnet_transaction_structured_fields\"," + + "\"$amount\":506790000,\"$currency_code\":\"USD\",\"$kyc\":{\"$names_match\":true," + + "\"$bin_nationality_match\":true,\"$provider\":\"lexisnexis\"},\"$geo\":{\"$uuid\":\"gc-abc-123\"," + + "\"$provider\":\"geocomply\"},\"$bot_identification\":{\"$result\":\"$suspected\",\"$provider\":\"human_security\"}}", + transaction.ToJson()); + + EventRequest eventRequest = new EventRequest + { + Event = transaction + }; + + Assert.Equal("https://api.sift.com/v205/events", eventRequest.Request.RequestUri!.ToString()); + } + [Fact] public void TestTransactionEventWithCryptoFields() { @@ -1209,6 +1249,46 @@ public void TestCreateAccountEvent() Uri.UnescapeDataString(eventRequest.Request.RequestUri!.ToString())); } + [Fact] + public void TestCreateAccountStructuredFieldsEvent() + { + var createAccount = new CreateAccount + { + user_id = "test_dotnet_create_account_structured_fields", + nationality = "US", + year_of_birth = 1985, + kyc = new Kyc + { + names_match = true, + kyc_level = "$basic", + provider = "lexisnexis" + }, + geo = new Geo + { + uuid = "gc-abc-123", + provider = "geocomply" + }, + bot_identification = new BotIdentification + { + result = "$human", + provider = "datadome" + } + }; + + Assert.Equal("{\"$type\":\"$create_account\",\"$user_id\":\"test_dotnet_create_account_structured_fields\"," + + "\"$nationality\":\"US\",\"$year_of_birth\":1985,\"$kyc\":{\"$names_match\":true,\"$kyc_level\":\"$basic\"," + + "\"$provider\":\"lexisnexis\"},\"$geo\":{\"$uuid\":\"gc-abc-123\",\"$provider\":\"geocomply\"}," + + "\"$bot_identification\":{\"$result\":\"$human\",\"$provider\":\"datadome\"}}", + createAccount.ToJson()); + + EventRequest eventRequest = new EventRequest + { + Event = createAccount + }; + + Assert.Equal("https://api.sift.com/v205/events", eventRequest.Request.RequestUri!.ToString()); + } + [Fact] public void TestUpdateAccountEvent() { @@ -1272,6 +1352,46 @@ public void TestUpdateAccountEvent() Uri.UnescapeDataString(eventRequest.Request.RequestUri!.ToString())); } + [Fact] + public void TestUpdateAccountStructuredFieldsEvent() + { + var updateAccount = new UpdateAccount + { + user_id = "test_dotnet_update_account_structured_fields", + nationality = "US", + year_of_birth = 1985, + kyc = new Kyc + { + names_match = true, + kyc_level = "$full", + provider = "prove" + }, + geo = new Geo + { + uuid = "gc-abc-123", + provider = "geocomply" + }, + bot_identification = new BotIdentification + { + result = "$human", + provider = "datadome" + } + }; + + Assert.Equal("{\"$type\":\"$update_account\",\"$user_id\":\"test_dotnet_update_account_structured_fields\"," + + "\"$nationality\":\"US\",\"$year_of_birth\":1985,\"$kyc\":{\"$names_match\":true,\"$kyc_level\":\"$full\"," + + "\"$provider\":\"prove\"},\"$geo\":{\"$uuid\":\"gc-abc-123\",\"$provider\":\"geocomply\"}," + + "\"$bot_identification\":{\"$result\":\"$human\",\"$provider\":\"datadome\"}}", + updateAccount.ToJson()); + + EventRequest eventRequest = new EventRequest + { + Event = updateAccount + }; + + Assert.Equal("https://api.sift.com/v205/events", eventRequest.Request.RequestUri!.ToString()); + } + [Fact] public void TestLoginEvent() { @@ -1325,6 +1445,38 @@ public void TestLoginEvent() Uri.UnescapeDataString(eventRequest.Request.RequestUri!.ToString())); } + [Fact] + public void TestLoginStructuredFieldsEvent() + { + var login = new Login + { + user_id = "test_dotnet_login_structured_fields", + login_status = "$success", + geo = new Geo + { + uuid = "gc-abc-123", + provider = "geocomply" + }, + bot_identification = new BotIdentification + { + result = "$human", + provider = "datadome" + } + }; + + Assert.Equal("{\"$type\":\"$login\",\"$user_id\":\"test_dotnet_login_structured_fields\",\"$login_status\":\"$success\"," + + "\"$geo\":{\"$uuid\":\"gc-abc-123\",\"$provider\":\"geocomply\"}," + + "\"$bot_identification\":{\"$result\":\"$human\",\"$provider\":\"datadome\"}}", + login.ToJson()); + + EventRequest eventRequest = new EventRequest + { + Event = login + }; + + Assert.Equal("https://api.sift.com/v205/events", eventRequest.Request.RequestUri!.ToString()); + } + [Fact] public void TestScorePercentile() { @@ -2297,6 +2449,47 @@ public void TestCreateOrderEvent() Uri.UnescapeDataString(eventRequest.Request.RequestUri!.ToString())); } + [Fact] + public void TestCreateOrderStructuredFieldsEvent() + { + var createOrder = new CreateOrder + { + user_id = "test_dotnet_create_order_structured_fields", + order_id = "ORDER-NEB4778-001", + amount = 115940000, + currency_code = "USD", + kyc = new Kyc + { + names_match = true, + kyc_level = "$basic", + provider = "lexisnexis" + }, + geo = new Geo + { + uuid = "gc-abc-123", + provider = "geocomply" + }, + bot_identification = new BotIdentification + { + result = "$human", + provider = "datadome" + } + }; + string createorderbody = "{\"$type\":\"$create_order\",\"$user_id\":\"test_dotnet_create_order_structured_fields\"," + + "\"$order_id\":\"ORDER-NEB4778-001\",\"$amount\":115940000,\"$currency_code\":\"USD\",\"$kyc\":{\"$names_match\":true," + + "\"$kyc_level\":\"$basic\",\"$provider\":\"lexisnexis\"},\"$geo\":{\"$uuid\":\"gc-abc-123\",\"$provider\":\"geocomply\"}," + + "\"$bot_identification\":{\"$result\":\"$human\",\"$provider\":\"datadome\"}}"; + + Assert.Equal(createorderbody, createOrder.ToJson()); + + EventRequest eventRequest = new EventRequest + { + Event = createOrder + }; + + Assert.Equal("https://api.sift.com/v205/events", eventRequest.Request.RequestUri!.ToString()); + } + [Fact] public void TestUpdateOrderEvent() { @@ -2455,6 +2648,46 @@ public void TestUpdateOrderEvent() Uri.UnescapeDataString(eventRequest.Request.RequestUri!.ToString())); } + [Fact] + public void TestUpdateOrderStructuredFieldsEvent() + { + var updateOrder = new UpdateOrder + { + user_id = "test_dotnet_update_order_structured_fields", + order_id = "ORDER-NEB4778-002", + amount = 115940000, + currency_code = "USD", + kyc = new Kyc + { + names_match = true, + kyc_level = "$basic", + provider = "lexisnexis" + }, + geo = new Geo + { + uuid = "gc-abc-123", + provider = "geocomply" + }, + bot_identification = new BotIdentification + { + result = "$human", + provider = "datadome" + } + }; + string updateorderbody = "{\"$type\":\"$update_order\",\"$user_id\":\"test_dotnet_update_order_structured_fields\"," + + "\"$order_id\":\"ORDER-NEB4778-002\",\"$amount\":115940000,\"$currency_code\":\"USD\",\"$kyc\":{\"$names_match\":true," + + "\"$kyc_level\":\"$basic\",\"$provider\":\"lexisnexis\"},\"$geo\":{\"$uuid\":\"gc-abc-123\",\"$provider\":\"geocomply\"}," + + "\"$bot_identification\":{\"$result\":\"$human\",\"$provider\":\"datadome\"}}"; + + Assert.Equal(updateorderbody, updateOrder.ToJson()); + + EventRequest eventRequest = new EventRequest + { + Event = updateOrder + }; + + Assert.Equal("https://api.sift.com/v205/events", eventRequest.Request.RequestUri!.ToString()); + } [Fact] public void TestCreateContentCommentEvent() @@ -2565,6 +2798,36 @@ public void TestVerificationEvent() Uri.UnescapeDataString(eventRequest.Request.RequestUri!.ToString())); } + [Fact] + public void TestVerificationStructuredFieldsEvent() + { + var verification = new Verification + { + user_id = "test_dotnet_verification_structured_fields", + status = "$success", + verification_type = "$kyc", + kyc = new Kyc + { + names_match = true, + kyc_level = "$basic", + bin_nationality_match = false, + provider = "lexisnexis" + } + }; + + Assert.Equal("{\"$type\":\"$verification\",\"$user_id\":\"test_dotnet_verification_structured_fields\"," + + "\"$status\":\"$success\",\"$verification_type\":\"$kyc\",\"$kyc\":{\"$names_match\":true," + + "\"$kyc_level\":\"$basic\",\"$bin_nationality_match\":false,\"$provider\":\"lexisnexis\"}}", + verification.ToJson()); + + EventRequest eventRequest = new EventRequest + { + Event = verification + }; + + Assert.Equal("https://api.sift.com/v205/events", eventRequest.Request.RequestUri!.ToString()); + } + [Fact] public void TestUpdatePasswordEvent() { From 0f5f5ddba60cb9842c0af9f0da5a0813bc11c2f6 Mon Sep 17 00:00:00 2001 From: Raghu Kumar Date: Wed, 2 Sep 2026 12:08:14 -0700 Subject: [PATCH 2/2] Add structured fields to integration test suites --- Test.Integration.Net/EventsAPI/Account.cs | 19 ++++++++++ Test.Integration.Net/EventsAPI/LoginLogout.cs | 12 +++++- Test.Integration.Net/EventsAPI/Order.cs | 32 ++++++++++++++++ .../EventsAPI/Transactions.cs | 16 ++++++++ .../EventsAPI/Verifications.cs | 7 ++++ Test.Integration.NetFx48/EventsAPI/Account.cs | 38 +++++++++++++++++++ .../EventsAPI/LoginLogout.cs | 12 +++++- Test.Integration.NetFx48/EventsAPI/Order.cs | 32 ++++++++++++++++ .../EventsAPI/Transactions.cs | 18 ++++++++- .../EventsAPI/Verifications.cs | 9 ++++- 10 files changed, 191 insertions(+), 4 deletions(-) diff --git a/Test.Integration.Net/EventsAPI/Account.cs b/Test.Integration.Net/EventsAPI/Account.cs index 2471004..4e7bceb 100644 --- a/Test.Integration.Net/EventsAPI/Account.cs +++ b/Test.Integration.Net/EventsAPI/Account.cs @@ -116,6 +116,25 @@ public void CreateAccount() } }, + nationality = "US", + year_of_birth = 1985, + kyc = new Kyc + { + names_match = true, + kyc_level = "$basic", + bin_nationality_match = true, + provider = "lexisnexis" + }, + geo = new Geo + { + uuid = "gc-abc-123", + provider = "geocomply" + }, + bot_identification = new BotIdentification + { + result = "$human", + provider = "datadome" + }, ip = "1.2.3.4" }; EventRequest eventRequest = new EventRequest() diff --git a/Test.Integration.Net/EventsAPI/LoginLogout.cs b/Test.Integration.Net/EventsAPI/LoginLogout.cs index 5ed1ad4..54e4e46 100644 --- a/Test.Integration.Net/EventsAPI/LoginLogout.cs +++ b/Test.Integration.Net/EventsAPI/LoginLogout.cs @@ -44,7 +44,17 @@ public void Login() account_types = new ObservableCollection() { "merchant", "premium" }, brand_name = "sift", site_domain = "sift.com", - site_country = "US" + site_country = "US", + geo = new Geo + { + uuid = "gc-abc-123", + provider = "geocomply" + }, + bot_identification = new BotIdentification + { + result = "$human", + provider = "datadome" + } }; EventRequest eventRequest = new EventRequest() { diff --git a/Test.Integration.Net/EventsAPI/Order.cs b/Test.Integration.Net/EventsAPI/Order.cs index a3898b8..38a39d9 100644 --- a/Test.Integration.Net/EventsAPI/Order.cs +++ b/Test.Integration.Net/EventsAPI/Order.cs @@ -175,6 +175,22 @@ private EventResponse CreateOrder(Client sift) accept_language = "en-US", content_language = "en-GB" }, + kyc = new Kyc + { + names_match = true, + kyc_level = "$basic", + provider = "lexisnexis" + }, + geo = new Geo + { + uuid = "gc-abc-123", + provider = "geocomply" + }, + bot_identification = new BotIdentification + { + result = "$human", + provider = "datadome" + }, ip = "1.2.3.4" }; EventRequest eventRequest = new EventRequest() @@ -299,6 +315,22 @@ private EventResponse UpdateOrder(Client sift) accept_language = "en-US", content_language = "en-GB" }, + kyc = new Kyc + { + names_match = true, + kyc_level = "$basic", + provider = "lexisnexis" + }, + geo = new Geo + { + uuid = "gc-abc-123", + provider = "geocomply" + }, + bot_identification = new BotIdentification + { + result = "$human", + provider = "datadome" + }, ip = "1.2.3.4" }; EventRequest eventRequest = new EventRequest() diff --git a/Test.Integration.Net/EventsAPI/Transactions.cs b/Test.Integration.Net/EventsAPI/Transactions.cs index d02eb8b..a3bad8e 100644 --- a/Test.Integration.Net/EventsAPI/Transactions.cs +++ b/Test.Integration.Net/EventsAPI/Transactions.cs @@ -176,6 +176,22 @@ public void TransactionTest() } }, receiver_external_address = true, + kyc = new Kyc + { + names_match = true, + bin_nationality_match = true, + provider = "lexisnexis" + }, + geo = new Geo + { + uuid = "gc-abc-123", + provider = "geocomply" + }, + bot_identification = new BotIdentification + { + result = "$suspected", + provider = "human_security" + }, ip = "1.2.3.4" }; EventRequest eventRequest = new EventRequest() diff --git a/Test.Integration.Net/EventsAPI/Verifications.cs b/Test.Integration.Net/EventsAPI/Verifications.cs index fe0d294..45b8593 100644 --- a/Test.Integration.Net/EventsAPI/Verifications.cs +++ b/Test.Integration.Net/EventsAPI/Verifications.cs @@ -42,6 +42,13 @@ public void VerificationTest() brand_name = "sift", site_domain = "sift.com", site_country = "US", + kyc = new Kyc + { + names_match = true, + kyc_level = "$basic", + bin_nationality_match = false, + provider = "lexisnexis" + }, ip = "1.2.3.4" }; EventRequest eventRequest = new EventRequest() diff --git a/Test.Integration.NetFx48/EventsAPI/Account.cs b/Test.Integration.NetFx48/EventsAPI/Account.cs index 691cf1d..bbafb80 100644 --- a/Test.Integration.NetFx48/EventsAPI/Account.cs +++ b/Test.Integration.NetFx48/EventsAPI/Account.cs @@ -123,6 +123,25 @@ public void CreateAccount() zipcode = "03257" } + }, + nationality = "US", + year_of_birth = 1985, + kyc = new Kyc + { + names_match = true, + kyc_level = "$basic", + bin_nationality_match = true, + provider = "lexisnexis" + }, + geo = new Geo + { + uuid = "gc-abc-123", + provider = "geocomply" + }, + bot_identification = new BotIdentification + { + result = "$human", + provider = "datadome" } }; EventRequest eventRequest = new EventRequest() @@ -231,6 +250,25 @@ public void UpdateAccount() zipcode = "03257" } + }, + nationality = "US", + year_of_birth = 1985, + kyc = new Kyc + { + names_match = true, + kyc_level = "$full", + bin_nationality_match = true, + provider = "prove" + }, + geo = new Geo + { + uuid = "gc-abc-123", + provider = "geocomply" + }, + bot_identification = new BotIdentification + { + result = "$human", + provider = "datadome" } }; EventRequest eventRequest = new EventRequest() diff --git a/Test.Integration.NetFx48/EventsAPI/LoginLogout.cs b/Test.Integration.NetFx48/EventsAPI/LoginLogout.cs index 6312d66..8b7a557 100644 --- a/Test.Integration.NetFx48/EventsAPI/LoginLogout.cs +++ b/Test.Integration.NetFx48/EventsAPI/LoginLogout.cs @@ -42,7 +42,17 @@ public void Login() account_types = new ObservableCollection() { "merchant", "premium" }, brand_name = "sift", site_domain = "sift.com", - site_country = "US" + site_country = "US", + geo = new Geo + { + uuid = "gc-abc-123", + provider = "geocomply" + }, + bot_identification = new BotIdentification + { + result = "$human", + provider = "datadome" + } }; EventRequest eventRequest = new EventRequest() { diff --git a/Test.Integration.NetFx48/EventsAPI/Order.cs b/Test.Integration.NetFx48/EventsAPI/Order.cs index 2b7ef68..53270f4 100644 --- a/Test.Integration.NetFx48/EventsAPI/Order.cs +++ b/Test.Integration.NetFx48/EventsAPI/Order.cs @@ -158,6 +158,22 @@ public void CreateOrder() user_agent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36", accept_language = "en-US", content_language = "en-GB" + }, + kyc = new Kyc + { + names_match = true, + kyc_level = "$basic", + provider = "lexisnexis" + }, + geo = new Geo + { + uuid = "gc-abc-123", + provider = "geocomply" + }, + bot_identification = new BotIdentification + { + result = "$human", + provider = "datadome" } }; EventRequest eventRequest = new EventRequest() @@ -283,6 +299,22 @@ public void UpdateOrder() user_agent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36", accept_language = "en-US", content_language = "en-GB" + }, + kyc = new Kyc + { + names_match = true, + kyc_level = "$basic", + provider = "lexisnexis" + }, + geo = new Geo + { + uuid = "gc-abc-123", + provider = "geocomply" + }, + bot_identification = new BotIdentification + { + result = "$human", + provider = "datadome" } }; EventRequest eventRequest = new EventRequest() diff --git a/Test.Integration.NetFx48/EventsAPI/Transactions.cs b/Test.Integration.NetFx48/EventsAPI/Transactions.cs index 19eca2a..c3336d3 100644 --- a/Test.Integration.NetFx48/EventsAPI/Transactions.cs +++ b/Test.Integration.NetFx48/EventsAPI/Transactions.cs @@ -171,7 +171,23 @@ public void TransactionTest() digital_asset = "BTC" } }, - receiver_external_address = true + receiver_external_address = true, + kyc = new Kyc + { + names_match = true, + bin_nationality_match = true, + provider = "lexisnexis" + }, + geo = new Geo + { + uuid = "gc-abc-123", + provider = "geocomply" + }, + bot_identification = new BotIdentification + { + result = "$suspected", + provider = "human_security" + } }; EventRequest eventRequest = new EventRequest() { diff --git a/Test.Integration.NetFx48/EventsAPI/Verifications.cs b/Test.Integration.NetFx48/EventsAPI/Verifications.cs index a83a7ce..677a96c 100644 --- a/Test.Integration.NetFx48/EventsAPI/Verifications.cs +++ b/Test.Integration.NetFx48/EventsAPI/Verifications.cs @@ -39,7 +39,14 @@ public void VerificationTest() reason = "$user_setting", brand_name = "sift", site_domain = "sift.com", - site_country = "US" + site_country = "US", + kyc = new Kyc + { + names_match = true, + kyc_level = "$basic", + bin_nationality_match = false, + provider = "lexisnexis" + } }; EventRequest eventRequest = new EventRequest() {