# Customers ## Lookup a customer `CustomerV1 Customers.Get(CustomerGetParamsparameters, CancellationTokencancellationToken = default)` **get** `/v1/customers/{id}` Retrieves the details of an existing customer. Supply the unique customer ID that was returned from your 'create customer' request, and Straddle will return the corresponding customer information. ### Parameters - `CustomerGetParams parameters` - `required string id` - `string correlationID` Optional client generated identifier to trace and debug a series of requests. - `string requestID` Optional client generated identifier to trace and debug a request. - `string straddleAccountID` For use by platforms to specify an account id and set scope of a request. ### Returns - `class CustomerV1:` - `required Data Data` - `required string ID` Unique identifier for the customer. - `required DateTimeOffset CreatedAt` Timestamp of when the customer record was created. - `required string Email` The customer's email address. - `required string Name` Full name of the individual or business name. - `required string Phone` The customer's phone number in E.164 format. - `required Status Status` - `"pending"Pending` - `"review"Review` - `"verified"Verified` - `"inactive"Inactive` - `"rejected"Rejected` - `required Type Type` - `"individual"Individual` - `"business"Business` - `required DateTimeOffset UpdatedAt` Timestamp of the most recent update to the customer record. - `CustomerAddressV1? Address` An object containing the customer's address. This is optional, but if provided, all required fields must be present. - `required string Address1` Primary address line (e.g., street, PO Box). - `required string City` City, district, suburb, town, or village. - `required string State` Two-letter state code. - `required string Zip` Zip or postal code. - `string? Address2` Secondary address line (e.g., apartment, suite, unit, or building). - `ComplianceProfile? ComplianceProfile` PII required to trigger Patriot Act compliant KYC verification. - `class IndividualComplianceProfile:` PII required to trigger Patriot Act compliant KYC verification. - `required DateOnly? Dob` Masked date of birth in ****-**-** format. - `required string? Ssn` Masked Social Security Number in the format ***-**-*\***. - `class BusinessComplianceProfile:` Business registration data required to trigger Patriot Act compliant KYB verification. - `required string? Ein` Masked Employer Identification Number in the format **-**\***** - `required string? LegalBusinessName` The official registered name of the business. This name should be correlated with the `ein` value. - `IReadOnlyList? Representatives` A list of people related to the company. Only valid where customer type is 'business'. - `required string Name` - `string? Email` - `string? Phone` - `string? Website` Official business website URL. Optional but recommended for enhanced KYB. - `Config Config` - `ProcessingMethod ProcessingMethod` - `"inline"Inline` - `"background"Background` - `"skip"Skip` - `SandboxOutcome SandboxOutcome` - `"standard"Standard` - `"verified"Verified` - `"rejected"Rejected` - `"review"Review` - `Device Device` - `required string IPAddress` The customer's IP address at the time of profile creation. Use `0.0.0.0` to represent an offline customer registration. - `string? ExternalID` Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format. - `required ResponseMetadata Meta` Metadata about the API request, including an identifier and timestamp. - `required string ApiRequestID` Unique identifier for this API request, useful for troubleshooting. - `required DateTimeOffset ApiRequestTimestamp` Timestamp for this API request, useful for troubleshooting. - `required ResponseType ResponseType` Indicates the structure of the returned content. - "object" means the `data` field contains a single JSON object. - "array" means the `data` field contains an array of objects. - "error" means the `data` field contains an error object with details of the issue. - "none" means no data is returned. - `"object"Object` - `"array"Array` - `"error"Error` - `"none"None` ### Example ```csharp CustomerGetParams parameters = new() { ID = "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" }; var customerV1 = await client.Customers.Get(parameters); Console.WriteLine(customerV1); ``` #### Response ```json { "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "created_at": "2019-12-27T18:11:19.117Z", "email": "ron.swanson@pawnee.com", "name": "Ron Swanson", "phone": "+12128675309", "status": "pending", "type": "individual", "updated_at": "2019-12-27T18:11:19.117Z", "address": { "address1": "123 Main St", "city": "Anytown", "state": "CA", "zip": "12345", "address2": "Apt 1" }, "compliance_profile": { "dob": "2019-12-27", "ssn": "***-**-****" }, "config": { "processing_method": "inline", "sandbox_outcome": "standard" }, "device": { "ip_address": "192.168.1.1" }, "external_id": "external_id", "metadata": { "foo": "string" } }, "meta": { "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "api_request_timestamp": "2019-12-27T18:11:19.117Z" }, "response_type": "object" } ``` ## Update a customer `CustomerV1 Customers.Update(CustomerUpdateParamsparameters, CancellationTokencancellationToken = default)` **put** `/v1/customers/{id}` Updates an existing customer's information. This endpoint allows you to modify the customer's contact details, PII, and metadata. ### Parameters - `CustomerUpdateParams parameters` - `required string id` Path param - `required DeviceUnmaskedV1 device` Body param - `required string email` Body param: The customer's email address. - `required string name` Body param: The customer's full name or business name. - `required string phone` Body param: The customer's phone number in E.164 format. - `required Status status` Body param - `"pending"Pending` - `"review"Review` - `"verified"Verified` - `"inactive"Inactive` - `"rejected"Rejected` - `CustomerAddressV1? address` Body param: An object containing the customer's address. This is optional, but if provided, all required fields must be present. - `ComplianceProfile? complianceProfile` Body param: Individual PII data required to trigger Patriot Act compliant KYC verification. - `class IndividualComplianceProfile:` Individual PII data required to trigger Patriot Act compliant KYC verification. - `required DateOnly? Dob` Date of birth (YYYY-MM-DD). Required for Patriot Act-compliant KYC verification. - `required string? Ssn` Social Security Number (format XXX-XX-XXXX). Required for Patriot Act-compliant KYC verification. - `class BusinessComplianceProfile:` Business registration data required to trigger Patriot Act compliant KYB verification. - `required string? Ein` Employer Identification Number (format XX-XXXXXXX). Required for Patriot Act-compliant KYB verification. - `required string? LegalBusinessName` Official registered business name as listed with the IRS. This value will be matched against the 'legal_business name'. - `IReadOnlyList? Representatives` A list of people related to the company. Only valid where customer type is 'business'. - `required string Name` - `string? Email` - `string? Phone` - `string? Website` Official business website URL. Optional but recommended for enhanced KYB. - `string? externalID` Body param: Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? metadata` Body param: Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format. - `string correlationID` Header param: Optional client generated identifier to trace and debug a series of requests. - `string idempotencyKey` Header param: Optional client generated value to use for idempotent requests. - `string requestID` Header param: Optional client generated identifier to trace and debug a request. - `string straddleAccountID` Header param: For use by platforms to specify an account id and set scope of a request. ### Returns - `class CustomerV1:` - `required Data Data` - `required string ID` Unique identifier for the customer. - `required DateTimeOffset CreatedAt` Timestamp of when the customer record was created. - `required string Email` The customer's email address. - `required string Name` Full name of the individual or business name. - `required string Phone` The customer's phone number in E.164 format. - `required Status Status` - `"pending"Pending` - `"review"Review` - `"verified"Verified` - `"inactive"Inactive` - `"rejected"Rejected` - `required Type Type` - `"individual"Individual` - `"business"Business` - `required DateTimeOffset UpdatedAt` Timestamp of the most recent update to the customer record. - `CustomerAddressV1? Address` An object containing the customer's address. This is optional, but if provided, all required fields must be present. - `required string Address1` Primary address line (e.g., street, PO Box). - `required string City` City, district, suburb, town, or village. - `required string State` Two-letter state code. - `required string Zip` Zip or postal code. - `string? Address2` Secondary address line (e.g., apartment, suite, unit, or building). - `ComplianceProfile? ComplianceProfile` PII required to trigger Patriot Act compliant KYC verification. - `class IndividualComplianceProfile:` PII required to trigger Patriot Act compliant KYC verification. - `required DateOnly? Dob` Masked date of birth in ****-**-** format. - `required string? Ssn` Masked Social Security Number in the format ***-**-*\***. - `class BusinessComplianceProfile:` Business registration data required to trigger Patriot Act compliant KYB verification. - `required string? Ein` Masked Employer Identification Number in the format **-**\***** - `required string? LegalBusinessName` The official registered name of the business. This name should be correlated with the `ein` value. - `IReadOnlyList? Representatives` A list of people related to the company. Only valid where customer type is 'business'. - `required string Name` - `string? Email` - `string? Phone` - `string? Website` Official business website URL. Optional but recommended for enhanced KYB. - `Config Config` - `ProcessingMethod ProcessingMethod` - `"inline"Inline` - `"background"Background` - `"skip"Skip` - `SandboxOutcome SandboxOutcome` - `"standard"Standard` - `"verified"Verified` - `"rejected"Rejected` - `"review"Review` - `Device Device` - `required string IPAddress` The customer's IP address at the time of profile creation. Use `0.0.0.0` to represent an offline customer registration. - `string? ExternalID` Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format. - `required ResponseMetadata Meta` Metadata about the API request, including an identifier and timestamp. - `required string ApiRequestID` Unique identifier for this API request, useful for troubleshooting. - `required DateTimeOffset ApiRequestTimestamp` Timestamp for this API request, useful for troubleshooting. - `required ResponseType ResponseType` Indicates the structure of the returned content. - "object" means the `data` field contains a single JSON object. - "array" means the `data` field contains an array of objects. - "error" means the `data` field contains an error object with details of the issue. - "none" means no data is returned. - `"object"Object` - `"array"Array` - `"error"Error` - `"none"None` ### Example ```csharp CustomerUpdateParams parameters = new() { ID = "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", Device = new("192.168.1.1"), Email = "dev@stainless.com", Name = "name", Phone = "+46991022", Status = Status.Pending, }; var customerV1 = await client.Customers.Update(parameters); Console.WriteLine(customerV1); ``` #### Response ```json { "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "created_at": "2019-12-27T18:11:19.117Z", "email": "ron.swanson@pawnee.com", "name": "Ron Swanson", "phone": "+12128675309", "status": "pending", "type": "individual", "updated_at": "2019-12-27T18:11:19.117Z", "address": { "address1": "123 Main St", "city": "Anytown", "state": "CA", "zip": "12345", "address2": "Apt 1" }, "compliance_profile": { "dob": "2019-12-27", "ssn": "***-**-****" }, "config": { "processing_method": "inline", "sandbox_outcome": "standard" }, "device": { "ip_address": "192.168.1.1" }, "external_id": "external_id", "metadata": { "foo": "string" } }, "meta": { "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "api_request_timestamp": "2019-12-27T18:11:19.117Z" }, "response_type": "object" } ``` ## Delete a customer `CustomerV1 Customers.Delete(CustomerDeleteParamsparameters, CancellationTokencancellationToken = default)` **delete** `/v1/customers/{id}` Permanently removes a customer record from Straddle. This action cannot be undone and should only be used to satisfy regulatory requirements or for privacy compliance. ### Parameters - `CustomerDeleteParams parameters` - `required string id` - `string correlationID` Optional client generated identifier to trace and debug a series of requests. - `string idempotencyKey` Optional client generated value to use for idempotent requests. - `string requestID` Optional client generated identifier to trace and debug a request. - `string straddleAccountID` For use by platforms to specify an account id and set scope of a request. ### Returns - `class CustomerV1:` - `required Data Data` - `required string ID` Unique identifier for the customer. - `required DateTimeOffset CreatedAt` Timestamp of when the customer record was created. - `required string Email` The customer's email address. - `required string Name` Full name of the individual or business name. - `required string Phone` The customer's phone number in E.164 format. - `required Status Status` - `"pending"Pending` - `"review"Review` - `"verified"Verified` - `"inactive"Inactive` - `"rejected"Rejected` - `required Type Type` - `"individual"Individual` - `"business"Business` - `required DateTimeOffset UpdatedAt` Timestamp of the most recent update to the customer record. - `CustomerAddressV1? Address` An object containing the customer's address. This is optional, but if provided, all required fields must be present. - `required string Address1` Primary address line (e.g., street, PO Box). - `required string City` City, district, suburb, town, or village. - `required string State` Two-letter state code. - `required string Zip` Zip or postal code. - `string? Address2` Secondary address line (e.g., apartment, suite, unit, or building). - `ComplianceProfile? ComplianceProfile` PII required to trigger Patriot Act compliant KYC verification. - `class IndividualComplianceProfile:` PII required to trigger Patriot Act compliant KYC verification. - `required DateOnly? Dob` Masked date of birth in ****-**-** format. - `required string? Ssn` Masked Social Security Number in the format ***-**-*\***. - `class BusinessComplianceProfile:` Business registration data required to trigger Patriot Act compliant KYB verification. - `required string? Ein` Masked Employer Identification Number in the format **-**\***** - `required string? LegalBusinessName` The official registered name of the business. This name should be correlated with the `ein` value. - `IReadOnlyList? Representatives` A list of people related to the company. Only valid where customer type is 'business'. - `required string Name` - `string? Email` - `string? Phone` - `string? Website` Official business website URL. Optional but recommended for enhanced KYB. - `Config Config` - `ProcessingMethod ProcessingMethod` - `"inline"Inline` - `"background"Background` - `"skip"Skip` - `SandboxOutcome SandboxOutcome` - `"standard"Standard` - `"verified"Verified` - `"rejected"Rejected` - `"review"Review` - `Device Device` - `required string IPAddress` The customer's IP address at the time of profile creation. Use `0.0.0.0` to represent an offline customer registration. - `string? ExternalID` Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format. - `required ResponseMetadata Meta` Metadata about the API request, including an identifier and timestamp. - `required string ApiRequestID` Unique identifier for this API request, useful for troubleshooting. - `required DateTimeOffset ApiRequestTimestamp` Timestamp for this API request, useful for troubleshooting. - `required ResponseType ResponseType` Indicates the structure of the returned content. - "object" means the `data` field contains a single JSON object. - "array" means the `data` field contains an array of objects. - "error" means the `data` field contains an error object with details of the issue. - "none" means no data is returned. - `"object"Object` - `"array"Array` - `"error"Error` - `"none"None` ### Example ```csharp CustomerDeleteParams parameters = new() { ID = "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" }; var customerV1 = await client.Customers.Delete(parameters); Console.WriteLine(customerV1); ``` #### Response ```json { "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "created_at": "2019-12-27T18:11:19.117Z", "email": "ron.swanson@pawnee.com", "name": "Ron Swanson", "phone": "+12128675309", "status": "pending", "type": "individual", "updated_at": "2019-12-27T18:11:19.117Z", "address": { "address1": "123 Main St", "city": "Anytown", "state": "CA", "zip": "12345", "address2": "Apt 1" }, "compliance_profile": { "dob": "2019-12-27", "ssn": "***-**-****" }, "config": { "processing_method": "inline", "sandbox_outcome": "standard" }, "device": { "ip_address": "192.168.1.1" }, "external_id": "external_id", "metadata": { "foo": "string" } }, "meta": { "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "api_request_timestamp": "2019-12-27T18:11:19.117Z" }, "response_type": "object" } ``` ## List customers `CustomerSummaryPagedV1 Customers.List(CustomerListParams?parameters, CancellationTokencancellationToken = default)` **get** `/v1/customers` Lists or searches customers connected to your account. All supported query parameters are optional. If none are provided, the response will include all customers connected to your account. This endpoint supports advanced sorting and filtering options. ### Parameters - `CustomerListParams parameters` - `DateTimeOffset createdFrom` Query param: Start date for filtering by `created_at` date. - `DateTimeOffset createdTo` Query param: End date for filtering by `created_at` date. - `string email` Query param: Filter customers by `email` address. - `string externalID` Query param: Filter by your system's `external_id`. - `string name` Query param: Filter customers by `name` (partial match). - `Int pageNumber` Query param: Page number for paginated results. Starts at 1. - `Int pageSize` Query param: Number of results per page. Maximum: 1000. - `string searchText` Query param: General search term to filter customers. - `SortBy sortBy` Query param - `"name"Name` - `"created_at"CreatedAt` - `SortOrder sortOrder` Query param - `"asc"Asc` - `"desc"Desc` - `IReadOnlyList status` Query param: Filter customers by their current `status`. - `"pending"Pending` - `"review"Review` - `"verified"Verified` - `"inactive"Inactive` - `"rejected"Rejected` - `IReadOnlyList types` Query param: Filter by customer type `individual` or `business`. - `"individual"Individual` - `"business"Business` - `string correlationID` Header param: Optional client generated identifier to trace and debug a series of requests. - `string requestID` Header param: Optional client generated identifier to trace and debug a request. - `string straddleAccountID` Header param: For use by platforms to specify an `account_id` to set the scope of a request. ### Returns - `class CustomerSummaryPagedV1:` - `required IReadOnlyList Data` - `required string ID` Unique identifier for the customer. - `required DateTimeOffset CreatedAt` Timestamp of when the customer record was created. - `required string Email` The customer's email address. - `required string Name` Full name of the individual or business name. - `required string Phone` The customer's phone number in E.164 format. - `required Status Status` - `"pending"Pending` - `"review"Review` - `"verified"Verified` - `"inactive"Inactive` - `"rejected"Rejected` - `required Type Type` - `"individual"Individual` - `"business"Business` - `required DateTimeOffset UpdatedAt` Timestamp of the most recent update to the customer record. - `string? ExternalID` Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `required Meta Meta` - `required string ApiRequestID` Unique identifier for this API request, useful for troubleshooting. - `required DateTimeOffset ApiRequestTimestamp` Timestamp for this API request, useful for troubleshooting. - `required Int MaxPageSize` Maximum allowed page size for this endpoint. - `required Int PageNumber` Page number for paginated results. - `required Int PageSize` Number of items per page in this response. - `required string SortBy` The field that the results were sorted by. - `required SortOrder SortOrder` - `"asc"Asc` - `"desc"Desc` - `required Int TotalItems` - `required Int TotalPages` The number of pages available. - `required ResponseType ResponseType` Indicates the structure of the returned content. - "object" means the `data` field contains a single JSON object. - "array" means the `data` field contains an array of objects. - "error" means the `data` field contains an error object with details of the issue. - "none" means no data is returned. - `"object"Object` - `"array"Array` - `"error"Error` - `"none"None` ### Example ```csharp CustomerListParams parameters = new(); var page = await client.Customers.List(parameters); await foreach (var item in page.Paginate()) { Console.WriteLine(item); } ``` #### Response ```json { "data": [ { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "created_at": "2019-12-27T18:11:19.117Z", "email": "dev@stainless.com", "name": "name", "phone": "+46991022", "status": "pending", "type": "individual", "updated_at": "2019-12-27T18:11:19.117Z", "external_id": "external_id" } ], "meta": { "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "api_request_timestamp": "2019-12-27T18:11:19.117Z", "max_page_size": 0, "page_number": 0, "page_size": 0, "sort_by": "sort_by", "sort_order": "asc", "total_items": 0, "total_pages": 0 }, "response_type": "object" } ``` ## Create a customer `CustomerV1 Customers.Create(CustomerCreateParamsparameters, CancellationTokencancellationToken = default)` **post** `/v1/customers` Creates a new customer record and automatically initiates identity, fraud, and risk assessment scores. This endpoint allows you to create a customer profile and associate it with paykeys and payments. ### Parameters - `CustomerCreateParams parameters` - `required DeviceUnmaskedV1 device` Body param - `required string email` Body param: The customer's email address. - `required string name` Body param: Full name of the individual or business name. - `required string phone` Body param: The customer's phone number in E.164 format. Mobile number is preferred. - `required Type type` Body param - `"individual"Individual` - `"business"Business` - `CustomerAddressV1? address` Body param: An object containing the customer's address. **This is optional.** If used, all required fields must be present. - `ComplianceProfile? complianceProfile` Body param: An object containing the customer's compliance profile. **This is optional.** If all required fields must be present for the appropriate customer type. - `class IndividualComplianceProfile:` Individual PII data required to trigger Patriot Act compliant KYC verification. - `required DateOnly? Dob` Date of birth (YYYY-MM-DD). Required for Patriot Act-compliant KYC verification. - `required string? Ssn` Social Security Number (format XXX-XX-XXXX). Required for Patriot Act-compliant KYC verification. - `class BusinessComplianceProfile:` Business registration data required to trigger Patriot Act compliant KYB verification. - `required string? Ein` Employer Identification Number (format XX-XXXXXXX). Required for Patriot Act-compliant KYB verification. - `required string? LegalBusinessName` Official registered business name as listed with the IRS. This value will be matched against the 'legal_business name'. - `IReadOnlyList? Representatives` A list of people related to the company. Only valid where customer type is 'business'. - `required string Name` - `string? Email` - `string? Phone` - `string? Website` Official business website URL. Optional but recommended for enhanced KYB. - `Config config` Body param - `ProcessingMethod ProcessingMethod` - `"inline"Inline` - `"background"Background` - `"skip"Skip` - `SandboxOutcome SandboxOutcome` - `"standard"Standard` - `"verified"Verified` - `"rejected"Rejected` - `"review"Review` - `string? externalID` Body param: Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? metadata` Body param: Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format. - `string correlationID` Header param: Optional client generated identifier to trace and debug a series of requests. - `string idempotencyKey` Header param: Optional client generated value to use for idempotent requests. - `string requestID` Header param: Optional client generated identifier to trace and debug a request. - `string straddleAccountID` Header param: For use by platforms to specify an account id and set scope of a request. ### Returns - `class CustomerV1:` - `required Data Data` - `required string ID` Unique identifier for the customer. - `required DateTimeOffset CreatedAt` Timestamp of when the customer record was created. - `required string Email` The customer's email address. - `required string Name` Full name of the individual or business name. - `required string Phone` The customer's phone number in E.164 format. - `required Status Status` - `"pending"Pending` - `"review"Review` - `"verified"Verified` - `"inactive"Inactive` - `"rejected"Rejected` - `required Type Type` - `"individual"Individual` - `"business"Business` - `required DateTimeOffset UpdatedAt` Timestamp of the most recent update to the customer record. - `CustomerAddressV1? Address` An object containing the customer's address. This is optional, but if provided, all required fields must be present. - `required string Address1` Primary address line (e.g., street, PO Box). - `required string City` City, district, suburb, town, or village. - `required string State` Two-letter state code. - `required string Zip` Zip or postal code. - `string? Address2` Secondary address line (e.g., apartment, suite, unit, or building). - `ComplianceProfile? ComplianceProfile` PII required to trigger Patriot Act compliant KYC verification. - `class IndividualComplianceProfile:` PII required to trigger Patriot Act compliant KYC verification. - `required DateOnly? Dob` Masked date of birth in ****-**-** format. - `required string? Ssn` Masked Social Security Number in the format ***-**-*\***. - `class BusinessComplianceProfile:` Business registration data required to trigger Patriot Act compliant KYB verification. - `required string? Ein` Masked Employer Identification Number in the format **-**\***** - `required string? LegalBusinessName` The official registered name of the business. This name should be correlated with the `ein` value. - `IReadOnlyList? Representatives` A list of people related to the company. Only valid where customer type is 'business'. - `required string Name` - `string? Email` - `string? Phone` - `string? Website` Official business website URL. Optional but recommended for enhanced KYB. - `Config Config` - `ProcessingMethod ProcessingMethod` - `"inline"Inline` - `"background"Background` - `"skip"Skip` - `SandboxOutcome SandboxOutcome` - `"standard"Standard` - `"verified"Verified` - `"rejected"Rejected` - `"review"Review` - `Device Device` - `required string IPAddress` The customer's IP address at the time of profile creation. Use `0.0.0.0` to represent an offline customer registration. - `string? ExternalID` Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format. - `required ResponseMetadata Meta` Metadata about the API request, including an identifier and timestamp. - `required string ApiRequestID` Unique identifier for this API request, useful for troubleshooting. - `required DateTimeOffset ApiRequestTimestamp` Timestamp for this API request, useful for troubleshooting. - `required ResponseType ResponseType` Indicates the structure of the returned content. - "object" means the `data` field contains a single JSON object. - "array" means the `data` field contains an array of objects. - "error" means the `data` field contains an error object with details of the issue. - "none" means no data is returned. - `"object"Object` - `"array"Array` - `"error"Error` - `"none"None` ### Example ```csharp CustomerCreateParams parameters = new() { Device = new("192.168.1.1"), Email = "ron.swanson@pawnee.com", Name = "Ron Swanson", Phone = "+12128675309", Type = Type.Individual, }; var customerV1 = await client.Customers.Create(parameters); Console.WriteLine(customerV1); ``` #### Response ```json { "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "created_at": "2019-12-27T18:11:19.117Z", "email": "ron.swanson@pawnee.com", "name": "Ron Swanson", "phone": "+12128675309", "status": "pending", "type": "individual", "updated_at": "2019-12-27T18:11:19.117Z", "address": { "address1": "123 Main St", "city": "Anytown", "state": "CA", "zip": "12345", "address2": "Apt 1" }, "compliance_profile": { "dob": "2019-12-27", "ssn": "***-**-****" }, "config": { "processing_method": "inline", "sandbox_outcome": "standard" }, "device": { "ip_address": "192.168.1.1" }, "external_id": "external_id", "metadata": { "foo": "string" } }, "meta": { "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "api_request_timestamp": "2019-12-27T18:11:19.117Z" }, "response_type": "object" } ``` ## Unmask customer data `CustomerUnmaskedV1 Customers.Unmasked(CustomerUnmaskedParamsparameters, CancellationTokencancellationToken = default)` **get** `/v1/customers/{id}/unmasked` Retrieves the unmasked details, including PII, of an existing customer. Supply the unique customer ID that was returned from your 'create customer' request, and Straddle will return the corresponding customer information. This endpoint needs to be enabled by Straddle and should only be used when absolutely necessary. ### Parameters - `CustomerUnmaskedParams parameters` - `required string id` - `string correlationID` Optional client generated identifier to trace and debug a series of requests. - `string requestID` Optional client generated identifier to trace and debug a request. - `string straddleAccountID` For use by platforms to specify an account id and set scope of a request. ### Returns - `class CustomerUnmaskedV1:` - `required Data Data` - `required string ID` Unique identifier for the customer. - `required DateTimeOffset CreatedAt` Timestamp of when the customer record was created. - `required string Email` The customer's email address. - `required string Name` Full name of the individual or business name. - `required string Phone` The customer's phone number in E.164 format. - `required Status Status` - `"pending"Pending` - `"review"Review` - `"verified"Verified` - `"inactive"Inactive` - `"rejected"Rejected` - `required Type Type` - `"individual"Individual` - `"business"Business` - `required DateTimeOffset UpdatedAt` Timestamp of the most recent update to the customer record. - `CustomerAddressV1? Address` An object containing the customer's address. This is optional, but if provided, all required fields must be present. - `required string Address1` Primary address line (e.g., street, PO Box). - `required string City` City, district, suburb, town, or village. - `required string State` Two-letter state code. - `required string Zip` Zip or postal code. - `string? Address2` Secondary address line (e.g., apartment, suite, unit, or building). - `ComplianceProfile? ComplianceProfile` Individual PII data required to trigger Patriot Act compliant KYC verification. - `class IndividualComplianceProfile:` Individual PII data required to trigger Patriot Act compliant KYC verification. - `required DateOnly? Dob` Date of birth (YYYY-MM-DD). Required for Patriot Act-compliant KYC verification. - `required string? Ssn` Social Security Number (format XXX-XX-XXXX). Required for Patriot Act-compliant KYC verification. - `class BusinessComplianceProfile:` Business registration data required to trigger Patriot Act compliant KYB verification. - `required string? Ein` Employer Identification Number (format XX-XXXXXXX). Required for Patriot Act-compliant KYB verification. - `required string? LegalBusinessName` Official registered business name as listed with the IRS. This value will be matched against the 'legal_business name'. - `IReadOnlyList? Representatives` A list of people related to the company. Only valid where customer type is 'business'. - `required string Name` - `string? Email` - `string? Phone` - `string? Website` Official business website URL. Optional but recommended for enhanced KYB. - `Config Config` - `ProcessingMethod ProcessingMethod` - `"inline"Inline` - `"background"Background` - `"skip"Skip` - `SandboxOutcome SandboxOutcome` - `"standard"Standard` - `"verified"Verified` - `"rejected"Rejected` - `"review"Review` - `DeviceUnmaskedV1 Device` - `required string IPAddress` The customer's IP address at the time of profile creation. Use `0.0.0.0` to represent an offline customer registration. - `string? ExternalID` Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format. - `required ResponseMetadata Meta` Metadata about the API request, including an identifier and timestamp. - `required string ApiRequestID` Unique identifier for this API request, useful for troubleshooting. - `required DateTimeOffset ApiRequestTimestamp` Timestamp for this API request, useful for troubleshooting. - `required ResponseType ResponseType` Indicates the structure of the returned content. - "object" means the `data` field contains a single JSON object. - "array" means the `data` field contains an array of objects. - "error" means the `data` field contains an error object with details of the issue. - "none" means no data is returned. - `"object"Object` - `"array"Array` - `"error"Error` - `"none"None` ### Example ```csharp CustomerUnmaskedParams parameters = new() { ID = "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" }; var customerUnmaskedV1 = await client.Customers.Unmasked(parameters); Console.WriteLine(customerUnmaskedV1); ``` #### Response ```json { "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "created_at": "2019-12-27T18:11:19.117Z", "email": "ron.swanson@pawnee.com", "name": "Ron Swanson", "phone": "+12128675309", "status": "pending", "type": "individual", "updated_at": "2019-12-27T18:11:19.117Z", "address": { "address1": "123 Main St", "city": "Anytown", "state": "CA", "zip": "12345", "address2": "Apt 1" }, "compliance_profile": { "dob": "1969-04-20", "ssn": "123-45-6789" }, "config": { "processing_method": "inline", "sandbox_outcome": "standard" }, "device": { "ip_address": "192.168.1.1" }, "external_id": "external_id", "metadata": { "foo": "string" } }, "meta": { "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "api_request_timestamp": "2019-12-27T18:11:19.117Z" }, "response_type": "object" } ``` ## Domain Types ### Customer Address V1 - `class CustomerAddressV1:` An object containing the customer's address. This is optional, but if provided, all required fields must be present. - `required string Address1` Primary address line (e.g., street, PO Box). - `required string City` City, district, suburb, town, or village. - `required string State` Two-letter state code. - `required string Zip` Zip or postal code. - `string? Address2` Secondary address line (e.g., apartment, suite, unit, or building). ### Customer Summary Paged V1 - `class CustomerSummaryPagedV1:` - `required IReadOnlyList Data` - `required string ID` Unique identifier for the customer. - `required DateTimeOffset CreatedAt` Timestamp of when the customer record was created. - `required string Email` The customer's email address. - `required string Name` Full name of the individual or business name. - `required string Phone` The customer's phone number in E.164 format. - `required Status Status` - `"pending"Pending` - `"review"Review` - `"verified"Verified` - `"inactive"Inactive` - `"rejected"Rejected` - `required Type Type` - `"individual"Individual` - `"business"Business` - `required DateTimeOffset UpdatedAt` Timestamp of the most recent update to the customer record. - `string? ExternalID` Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `required Meta Meta` - `required string ApiRequestID` Unique identifier for this API request, useful for troubleshooting. - `required DateTimeOffset ApiRequestTimestamp` Timestamp for this API request, useful for troubleshooting. - `required Int MaxPageSize` Maximum allowed page size for this endpoint. - `required Int PageNumber` Page number for paginated results. - `required Int PageSize` Number of items per page in this response. - `required string SortBy` The field that the results were sorted by. - `required SortOrder SortOrder` - `"asc"Asc` - `"desc"Desc` - `required Int TotalItems` - `required Int TotalPages` The number of pages available. - `required ResponseType ResponseType` Indicates the structure of the returned content. - "object" means the `data` field contains a single JSON object. - "array" means the `data` field contains an array of objects. - "error" means the `data` field contains an error object with details of the issue. - "none" means no data is returned. - `"object"Object` - `"array"Array` - `"error"Error` - `"none"None` ### Customer Unmasked V1 - `class CustomerUnmaskedV1:` - `required Data Data` - `required string ID` Unique identifier for the customer. - `required DateTimeOffset CreatedAt` Timestamp of when the customer record was created. - `required string Email` The customer's email address. - `required string Name` Full name of the individual or business name. - `required string Phone` The customer's phone number in E.164 format. - `required Status Status` - `"pending"Pending` - `"review"Review` - `"verified"Verified` - `"inactive"Inactive` - `"rejected"Rejected` - `required Type Type` - `"individual"Individual` - `"business"Business` - `required DateTimeOffset UpdatedAt` Timestamp of the most recent update to the customer record. - `CustomerAddressV1? Address` An object containing the customer's address. This is optional, but if provided, all required fields must be present. - `required string Address1` Primary address line (e.g., street, PO Box). - `required string City` City, district, suburb, town, or village. - `required string State` Two-letter state code. - `required string Zip` Zip or postal code. - `string? Address2` Secondary address line (e.g., apartment, suite, unit, or building). - `ComplianceProfile? ComplianceProfile` Individual PII data required to trigger Patriot Act compliant KYC verification. - `class IndividualComplianceProfile:` Individual PII data required to trigger Patriot Act compliant KYC verification. - `required DateOnly? Dob` Date of birth (YYYY-MM-DD). Required for Patriot Act-compliant KYC verification. - `required string? Ssn` Social Security Number (format XXX-XX-XXXX). Required for Patriot Act-compliant KYC verification. - `class BusinessComplianceProfile:` Business registration data required to trigger Patriot Act compliant KYB verification. - `required string? Ein` Employer Identification Number (format XX-XXXXXXX). Required for Patriot Act-compliant KYB verification. - `required string? LegalBusinessName` Official registered business name as listed with the IRS. This value will be matched against the 'legal_business name'. - `IReadOnlyList? Representatives` A list of people related to the company. Only valid where customer type is 'business'. - `required string Name` - `string? Email` - `string? Phone` - `string? Website` Official business website URL. Optional but recommended for enhanced KYB. - `Config Config` - `ProcessingMethod ProcessingMethod` - `"inline"Inline` - `"background"Background` - `"skip"Skip` - `SandboxOutcome SandboxOutcome` - `"standard"Standard` - `"verified"Verified` - `"rejected"Rejected` - `"review"Review` - `DeviceUnmaskedV1 Device` - `required string IPAddress` The customer's IP address at the time of profile creation. Use `0.0.0.0` to represent an offline customer registration. - `string? ExternalID` Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format. - `required ResponseMetadata Meta` Metadata about the API request, including an identifier and timestamp. - `required string ApiRequestID` Unique identifier for this API request, useful for troubleshooting. - `required DateTimeOffset ApiRequestTimestamp` Timestamp for this API request, useful for troubleshooting. - `required ResponseType ResponseType` Indicates the structure of the returned content. - "object" means the `data` field contains a single JSON object. - "array" means the `data` field contains an array of objects. - "error" means the `data` field contains an error object with details of the issue. - "none" means no data is returned. - `"object"Object` - `"array"Array` - `"error"Error` - `"none"None` ### Customer V1 - `class CustomerV1:` - `required Data Data` - `required string ID` Unique identifier for the customer. - `required DateTimeOffset CreatedAt` Timestamp of when the customer record was created. - `required string Email` The customer's email address. - `required string Name` Full name of the individual or business name. - `required string Phone` The customer's phone number in E.164 format. - `required Status Status` - `"pending"Pending` - `"review"Review` - `"verified"Verified` - `"inactive"Inactive` - `"rejected"Rejected` - `required Type Type` - `"individual"Individual` - `"business"Business` - `required DateTimeOffset UpdatedAt` Timestamp of the most recent update to the customer record. - `CustomerAddressV1? Address` An object containing the customer's address. This is optional, but if provided, all required fields must be present. - `required string Address1` Primary address line (e.g., street, PO Box). - `required string City` City, district, suburb, town, or village. - `required string State` Two-letter state code. - `required string Zip` Zip or postal code. - `string? Address2` Secondary address line (e.g., apartment, suite, unit, or building). - `ComplianceProfile? ComplianceProfile` PII required to trigger Patriot Act compliant KYC verification. - `class IndividualComplianceProfile:` PII required to trigger Patriot Act compliant KYC verification. - `required DateOnly? Dob` Masked date of birth in ****-**-** format. - `required string? Ssn` Masked Social Security Number in the format ***-**-*\***. - `class BusinessComplianceProfile:` Business registration data required to trigger Patriot Act compliant KYB verification. - `required string? Ein` Masked Employer Identification Number in the format **-**\***** - `required string? LegalBusinessName` The official registered name of the business. This name should be correlated with the `ein` value. - `IReadOnlyList? Representatives` A list of people related to the company. Only valid where customer type is 'business'. - `required string Name` - `string? Email` - `string? Phone` - `string? Website` Official business website URL. Optional but recommended for enhanced KYB. - `Config Config` - `ProcessingMethod ProcessingMethod` - `"inline"Inline` - `"background"Background` - `"skip"Skip` - `SandboxOutcome SandboxOutcome` - `"standard"Standard` - `"verified"Verified` - `"rejected"Rejected` - `"review"Review` - `Device Device` - `required string IPAddress` The customer's IP address at the time of profile creation. Use `0.0.0.0` to represent an offline customer registration. - `string? ExternalID` Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format. - `required ResponseMetadata Meta` Metadata about the API request, including an identifier and timestamp. - `required string ApiRequestID` Unique identifier for this API request, useful for troubleshooting. - `required DateTimeOffset ApiRequestTimestamp` Timestamp for this API request, useful for troubleshooting. - `required ResponseType ResponseType` Indicates the structure of the returned content. - "object" means the `data` field contains a single JSON object. - "array" means the `data` field contains an array of objects. - "error" means the `data` field contains an error object with details of the issue. - "none" means no data is returned. - `"object"Object` - `"array"Array` - `"error"Error` - `"none"None` ### Device Unmasked V1 - `class DeviceUnmaskedV1:` - `required string IPAddress` The customer's IP address at the time of profile creation. Use `0.0.0.0` to represent an offline customer registration. # Review ## Review a customer's identity results `CustomerReviewV1 Customers.Review.Get(ReviewGetParamsparameters, CancellationTokencancellationToken = default)` **get** `/v1/customers/{id}/review` Retrieves and analyzes the results of a customer's identity validation and fraud score. This endpoint provides a comprehensive breakdown of the validation outcome, including: - Risk and correlation scores - Reason codes for the decision - Results of watchlist screening - Any network alerts detected Use this endpoint to gain insights into the verification process and make informed decisions about customer onboarding. ### Parameters - `ReviewGetParams parameters` - `required string id` - `string correlationID` Optional client generated identifier to trace and debug a series of requests. - `string requestID` Optional client generated identifier to trace and debug a request. - `string straddleAccountID` For use by platforms to specify an account id and set scope of a request. ### Returns - `class CustomerReviewV1:` - `required Data Data` - `required CustomerDetails CustomerDetails` - `required string ID` Unique identifier for the customer. - `required DateTimeOffset CreatedAt` Timestamp of when the customer record was created. - `required string Email` The customer's email address. - `required string Name` Full name of the individual or business name. - `required string Phone` The customer's phone number in E.164 format. - `required Status Status` - `"pending"Pending` - `"review"Review` - `"verified"Verified` - `"inactive"Inactive` - `"rejected"Rejected` - `required Type Type` - `"individual"Individual` - `"business"Business` - `required DateTimeOffset UpdatedAt` Timestamp of the most recent update to the customer record. - `CustomerAddressV1? Address` An object containing the customer's address. This is optional, but if provided, all required fields must be present. - `required string Address1` Primary address line (e.g., street, PO Box). - `required string City` City, district, suburb, town, or village. - `required string State` Two-letter state code. - `required string Zip` Zip or postal code. - `string? Address2` Secondary address line (e.g., apartment, suite, unit, or building). - `ComplianceProfile? ComplianceProfile` PII required to trigger Patriot Act compliant KYC verification. - `class IndividualComplianceProfile:` PII required to trigger Patriot Act compliant KYC verification. - `required DateOnly? Dob` Masked date of birth in ****-**-** format. - `required string? Ssn` Masked Social Security Number in the format ***-**-*\***. - `class BusinessComplianceProfile:` Business registration data required to trigger Patriot Act compliant KYB verification. - `required string? Ein` Masked Employer Identification Number in the format **-**\***** - `required string? LegalBusinessName` The official registered name of the business. This name should be correlated with the `ein` value. - `IReadOnlyList? Representatives` A list of people related to the company. Only valid where customer type is 'business'. - `required string Name` - `string? Email` - `string? Phone` - `string? Website` Official business website URL. Optional but recommended for enhanced KYB. - `Config Config` - `ProcessingMethod ProcessingMethod` - `"inline"Inline` - `"background"Background` - `"skip"Skip` - `SandboxOutcome SandboxOutcome` - `"standard"Standard` - `"verified"Verified` - `"rejected"Rejected` - `"review"Review` - `Device Device` - `required string IPAddress` The customer's IP address at the time of profile creation. Use `0.0.0.0` to represent an offline customer registration. - `string? ExternalID` Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format. - `IdentityDetails IdentityDetails` - `required Breakdown Breakdown` Detailed breakdown of the customer verification results, including decisions, risk scores, correlation score, and more. - `IdentityVerificationBreakdownV1 Address` - `IReadOnlyList? Codes` List of specific result codes from the fraud and risk screening. - `Correlation Correlation` - `"low_confidence"LowConfidence` - `"potential_match"PotentialMatch` - `"likely_match"LikelyMatch` - `"high_confidence"HighConfidence` - `Double? CorrelationScore` Represents the strength of the correlation between provided and known information. A higher score indicates a stronger correlation. - `Decision Decision` - `"accept"Accept` - `"reject"Reject` - `"review"Review` - `Double? RiskScore` Predicts the inherent risk associated with the customer for a given module. A higher score indicates a greater likelihood of fraud. - `IdentityVerificationBreakdownV1 BusinessEvaluation` - `IdentityVerificationBreakdownV1 BusinessIdentification` - `IdentityVerificationBreakdownV1 BusinessValidation` - `IdentityVerificationBreakdownV1 Email` - `IdentityVerificationBreakdownV1 Fraud` - `IdentityVerificationBreakdownV1 Phone` - `IdentityVerificationBreakdownV1 Synthetic` - `required DateTimeOffset CreatedAt` Timestamp of when the review was initiated. - `required Decision Decision` - `"accept"Accept` - `"reject"Reject` - `"review"Review` - `required string ReviewID` Unique identifier for the review. - `required DateTimeOffset UpdatedAt` Timestamp of the most recent update to the review. - `Kyc Kyc` - `required Validations Validations` Boolean values indicating the result of each validation in the KYC process. - `Boolean Address` - `Boolean City` - `Boolean Dob` - `Boolean Email` - `Boolean FirstName` - `Boolean LastName` - `Boolean Phone` - `Boolean Ssn` - `Boolean State` - `Boolean Zip` - `IReadOnlyList? Codes` List of specific result codes from the KYC screening process. - `Decision Decision` - `"accept"Accept` - `"reject"Reject` - `"review"Review` - `IReadOnlyDictionary? Messages` Dictionary of all messages from the customer verification process. - `NetworkAlerts NetworkAlerts` - `IReadOnlyList? Alerts` Any alerts or flags raised during the consortium alert screening. - `IReadOnlyList? Codes` List of specific result codes from the consortium alert screening. - `Decision Decision` - `"accept"Accept` - `"reject"Reject` - `"review"Review` - `Reputation Reputation` - `IReadOnlyList? Codes` Specific codes related to the Straddle reputation screening results. - `Decision Decision` - `"accept"Accept` - `"reject"Reject` - `"review"Review` - `Insights Insights` - `Int? AccountsActiveCount` - `Int? AccountsClosedCount` - `IReadOnlyList? AccountsClosedDates` - `Int? AccountsCount` - `Int? AccountsFraudCount` - `IReadOnlyList? AccountsFraudLabeledDates` - `Double? AccountsFraudLossTotalAmount` - `Int? AchFraudTransactionsCount` - `IReadOnlyList? AchFraudTransactionsDates` - `Double? AchFraudTransactionsTotalAmount` - `Int? AchReturnedTransactionsCount` - `IReadOnlyList? AchReturnedTransactionsDates` - `Double? AchReturnedTransactionsTotalAmount` - `Int? ApplicationsApprovedCount` - `Int? ApplicationsCount` - `IReadOnlyList? ApplicationsDates` - `Int? ApplicationsDeclinedCount` - `Int? ApplicationsFraudCount` - `Int? CardDisputedTransactionsCount` - `IReadOnlyList? CardDisputedTransactionsDates` - `Double? CardDisputedTransactionsTotalAmount` - `Int? CardFraudTransactionsCount` - `IReadOnlyList? CardFraudTransactionsDates` - `Double? CardFraudTransactionsTotalAmount` - `Int? CardStoppedTransactionsCount` - `IReadOnlyList? CardStoppedTransactionsDates` - `Int? UserActiveProfileCount` - `Int? UserAddressCount` - `Int? UserClosedProfileCount` - `Int? UserDobCount` - `Int? UserEmailCount` - `Int? UserInstitutionCount` - `Int? UserMobileCount` - `Double? RiskScore` - `WatchList WatchList` - `IReadOnlyList? Codes` Specific codes related to the Straddle watchlist screening results. - `Decision Decision` - `"accept"Accept` - `"reject"Reject` - `"review"Review` - `IReadOnlyList? Matched` Information about any matches found during screening. - `IReadOnlyList? Matches` Information about any matches found during screening. - `required Correlation Correlation` - `"low_confidence"LowConfidence` - `"potential_match"PotentialMatch` - `"likely_match"LikelyMatch` - `"high_confidence"HighConfidence` - `required string ListName` The name of the list the match was found. - `required IReadOnlyList MatchFields` Data fields that matched. - `required IReadOnlyList Urls` Relevent Urls to review. - `required ResponseMetadata Meta` Metadata about the API request, including an identifier and timestamp. - `required string ApiRequestID` Unique identifier for this API request, useful for troubleshooting. - `required DateTimeOffset ApiRequestTimestamp` Timestamp for this API request, useful for troubleshooting. - `required ResponseType ResponseType` Indicates the structure of the returned content. - "object" means the `data` field contains a single JSON object. - "array" means the `data` field contains an array of objects. - "error" means the `data` field contains an error object with details of the issue. - "none" means no data is returned. - `"object"Object` - `"array"Array` - `"error"Error` - `"none"None` ### Example ```csharp ReviewGetParams parameters = new() { ID = "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" }; var customerReviewV1 = await client.Customers.Review.Get(parameters); Console.WriteLine(customerReviewV1); ``` #### Response ```json { "data": { "customer_details": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "created_at": "2019-12-27T18:11:19.117Z", "email": "ron.swanson@pawnee.com", "name": "Ron Swanson", "phone": "+12128675309", "status": "pending", "type": "individual", "updated_at": "2019-12-27T18:11:19.117Z", "address": { "address1": "123 Main St", "city": "Anytown", "state": "CA", "zip": "12345", "address2": "Apt 1" }, "compliance_profile": { "dob": "2019-12-27", "ssn": "***-**-****" }, "config": { "processing_method": "inline", "sandbox_outcome": "standard" }, "device": { "ip_address": "192.168.1.1" }, "external_id": "external_id", "metadata": { "foo": "string" } }, "identity_details": { "breakdown": { "address": { "codes": [ "string" ], "correlation": "low_confidence", "correlation_score": 0, "decision": "accept", "risk_score": 0 }, "business_evaluation": { "codes": [ "string" ], "correlation": "low_confidence", "correlation_score": 0, "decision": "accept", "risk_score": 0 }, "business_identification": { "codes": [ "string" ], "correlation": "low_confidence", "correlation_score": 0, "decision": "accept", "risk_score": 0 }, "business_validation": { "codes": [ "string" ], "correlation": "low_confidence", "correlation_score": 0, "decision": "accept", "risk_score": 0 }, "email": { "codes": [ "string" ], "correlation": "low_confidence", "correlation_score": 0, "decision": "accept", "risk_score": 0 }, "fraud": { "codes": [ "string" ], "correlation": "low_confidence", "correlation_score": 0, "decision": "accept", "risk_score": 0 }, "phone": { "codes": [ "string" ], "correlation": "low_confidence", "correlation_score": 0, "decision": "accept", "risk_score": 0 }, "synthetic": { "codes": [ "string" ], "correlation": "low_confidence", "correlation_score": 0, "decision": "accept", "risk_score": 0 } }, "created_at": "2019-12-27T18:11:19.117Z", "decision": "accept", "review_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "updated_at": "2019-12-27T18:11:19.117Z", "kyc": { "validations": { "address": true, "city": true, "dob": true, "email": true, "first_name": true, "last_name": true, "phone": true, "ssn": true, "state": true, "zip": true }, "codes": [ "string" ], "decision": "accept" }, "messages": { "foo": "string" }, "network_alerts": { "alerts": [ "string" ], "codes": [ "string" ], "decision": "accept" }, "reputation": { "codes": [ "string" ], "decision": "accept", "insights": { "accounts_active_count": 0, "accounts_closed_count": 0, "accounts_closed_dates": [ "2019-12-27" ], "accounts_count": 0, "accounts_fraud_count": 0, "accounts_fraud_labeled_dates": [ "2019-12-27" ], "accounts_fraud_loss_total_amount": 0, "ach_fraud_transactions_count": 0, "ach_fraud_transactions_dates": [ "2019-12-27" ], "ach_fraud_transactions_total_amount": 0, "ach_returned_transactions_count": 0, "ach_returned_transactions_dates": [ "2019-12-27" ], "ach_returned_transactions_total_amount": 0, "applications_approved_count": 0, "applications_count": 0, "applications_dates": [ "2019-12-27" ], "applications_declined_count": 0, "applications_fraud_count": 0, "card_disputed_transactions_count": 0, "card_disputed_transactions_dates": [ "2019-12-27" ], "card_disputed_transactions_total_amount": 0, "card_fraud_transactions_count": 0, "card_fraud_transactions_dates": [ "2019-12-27" ], "card_fraud_transactions_total_amount": 0, "card_stopped_transactions_count": 0, "card_stopped_transactions_dates": [ "2019-12-27" ], "user_active_profile_count": 0, "user_address_count": 0, "user_closed_profile_count": 0, "user_dob_count": 0, "user_email_count": 0, "user_institution_count": 0, "user_mobile_count": 0 }, "risk_score": 0 }, "watch_list": { "codes": [ "string" ], "decision": "accept", "matched": [ "string" ], "matches": [ { "correlation": "low_confidence", "list_name": "list_name", "match_fields": [ "string" ], "urls": [ "string" ] } ] } } }, "meta": { "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "api_request_timestamp": "2019-12-27T18:11:19.117Z" }, "response_type": "object" } ``` ## Update a customer's verification status `CustomerV1 Customers.Review.Decision(ReviewDecisionParamsparameters, CancellationTokencancellationToken = default)` **patch** `/v1/customers/{id}/review` Updates the status of a customer's identity decision. This endpoint allows you to modify the outcome of a customer risk screening and is useful for correcting or updating the status of a customer's verification. Note that this endpoint is only available for customers with a current status of `review`. ### Parameters - `ReviewDecisionParams parameters` - `required string id` Path param - `required Status status` Body param: The final status of the customer review. - `"verified"Verified` - `"rejected"Rejected` - `string correlationID` Header param: Optional client generated identifier to trace and debug a series of requests. - `string idempotencyKey` Header param: Optional client generated value to use for idempotent requests. - `string requestID` Header param: Optional client generated identifier to trace and debug a request. - `string straddleAccountID` Header param: For use by platforms to specify an account id and set scope of a request. ### Returns - `class CustomerV1:` - `required Data Data` - `required string ID` Unique identifier for the customer. - `required DateTimeOffset CreatedAt` Timestamp of when the customer record was created. - `required string Email` The customer's email address. - `required string Name` Full name of the individual or business name. - `required string Phone` The customer's phone number in E.164 format. - `required Status Status` - `"pending"Pending` - `"review"Review` - `"verified"Verified` - `"inactive"Inactive` - `"rejected"Rejected` - `required Type Type` - `"individual"Individual` - `"business"Business` - `required DateTimeOffset UpdatedAt` Timestamp of the most recent update to the customer record. - `CustomerAddressV1? Address` An object containing the customer's address. This is optional, but if provided, all required fields must be present. - `required string Address1` Primary address line (e.g., street, PO Box). - `required string City` City, district, suburb, town, or village. - `required string State` Two-letter state code. - `required string Zip` Zip or postal code. - `string? Address2` Secondary address line (e.g., apartment, suite, unit, or building). - `ComplianceProfile? ComplianceProfile` PII required to trigger Patriot Act compliant KYC verification. - `class IndividualComplianceProfile:` PII required to trigger Patriot Act compliant KYC verification. - `required DateOnly? Dob` Masked date of birth in ****-**-** format. - `required string? Ssn` Masked Social Security Number in the format ***-**-*\***. - `class BusinessComplianceProfile:` Business registration data required to trigger Patriot Act compliant KYB verification. - `required string? Ein` Masked Employer Identification Number in the format **-**\***** - `required string? LegalBusinessName` The official registered name of the business. This name should be correlated with the `ein` value. - `IReadOnlyList? Representatives` A list of people related to the company. Only valid where customer type is 'business'. - `required string Name` - `string? Email` - `string? Phone` - `string? Website` Official business website URL. Optional but recommended for enhanced KYB. - `Config Config` - `ProcessingMethod ProcessingMethod` - `"inline"Inline` - `"background"Background` - `"skip"Skip` - `SandboxOutcome SandboxOutcome` - `"standard"Standard` - `"verified"Verified` - `"rejected"Rejected` - `"review"Review` - `Device Device` - `required string IPAddress` The customer's IP address at the time of profile creation. Use `0.0.0.0` to represent an offline customer registration. - `string? ExternalID` Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format. - `required ResponseMetadata Meta` Metadata about the API request, including an identifier and timestamp. - `required string ApiRequestID` Unique identifier for this API request, useful for troubleshooting. - `required DateTimeOffset ApiRequestTimestamp` Timestamp for this API request, useful for troubleshooting. - `required ResponseType ResponseType` Indicates the structure of the returned content. - "object" means the `data` field contains a single JSON object. - "array" means the `data` field contains an array of objects. - "error" means the `data` field contains an error object with details of the issue. - "none" means no data is returned. - `"object"Object` - `"array"Array` - `"error"Error` - `"none"None` ### Example ```csharp ReviewDecisionParams parameters = new() { ID = "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", Status = Status.Verified, }; var customerV1 = await client.Customers.Review.Decision(parameters); Console.WriteLine(customerV1); ``` #### Response ```json { "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "created_at": "2019-12-27T18:11:19.117Z", "email": "ron.swanson@pawnee.com", "name": "Ron Swanson", "phone": "+12128675309", "status": "pending", "type": "individual", "updated_at": "2019-12-27T18:11:19.117Z", "address": { "address1": "123 Main St", "city": "Anytown", "state": "CA", "zip": "12345", "address2": "Apt 1" }, "compliance_profile": { "dob": "2019-12-27", "ssn": "***-**-****" }, "config": { "processing_method": "inline", "sandbox_outcome": "standard" }, "device": { "ip_address": "192.168.1.1" }, "external_id": "external_id", "metadata": { "foo": "string" } }, "meta": { "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "api_request_timestamp": "2019-12-27T18:11:19.117Z" }, "response_type": "object" } ``` ## Update a customer's identity decision `CustomerV1 Customers.Review.RefreshReview(ReviewRefreshReviewParamsparameters, CancellationTokencancellationToken = default)` **put** `/v1/customers/{id}/refresh_review` Updates the decision of a customer's identity validation. This endpoint allows you to modify the outcome of a customer decision and is useful for correcting or updating the status of a customer's verification. ### Parameters - `ReviewRefreshReviewParams parameters` - `required string id` - `string correlationID` Optional client generated identifier to trace and debug a series of requests. - `string idempotencyKey` Optional client generated value to use for idempotent requests. - `string requestID` Optional client generated identifier to trace and debug a request. - `string straddleAccountID` For use by platforms to specify an account id and set scope of a request. ### Returns - `class CustomerV1:` - `required Data Data` - `required string ID` Unique identifier for the customer. - `required DateTimeOffset CreatedAt` Timestamp of when the customer record was created. - `required string Email` The customer's email address. - `required string Name` Full name of the individual or business name. - `required string Phone` The customer's phone number in E.164 format. - `required Status Status` - `"pending"Pending` - `"review"Review` - `"verified"Verified` - `"inactive"Inactive` - `"rejected"Rejected` - `required Type Type` - `"individual"Individual` - `"business"Business` - `required DateTimeOffset UpdatedAt` Timestamp of the most recent update to the customer record. - `CustomerAddressV1? Address` An object containing the customer's address. This is optional, but if provided, all required fields must be present. - `required string Address1` Primary address line (e.g., street, PO Box). - `required string City` City, district, suburb, town, or village. - `required string State` Two-letter state code. - `required string Zip` Zip or postal code. - `string? Address2` Secondary address line (e.g., apartment, suite, unit, or building). - `ComplianceProfile? ComplianceProfile` PII required to trigger Patriot Act compliant KYC verification. - `class IndividualComplianceProfile:` PII required to trigger Patriot Act compliant KYC verification. - `required DateOnly? Dob` Masked date of birth in ****-**-** format. - `required string? Ssn` Masked Social Security Number in the format ***-**-*\***. - `class BusinessComplianceProfile:` Business registration data required to trigger Patriot Act compliant KYB verification. - `required string? Ein` Masked Employer Identification Number in the format **-**\***** - `required string? LegalBusinessName` The official registered name of the business. This name should be correlated with the `ein` value. - `IReadOnlyList? Representatives` A list of people related to the company. Only valid where customer type is 'business'. - `required string Name` - `string? Email` - `string? Phone` - `string? Website` Official business website URL. Optional but recommended for enhanced KYB. - `Config Config` - `ProcessingMethod ProcessingMethod` - `"inline"Inline` - `"background"Background` - `"skip"Skip` - `SandboxOutcome SandboxOutcome` - `"standard"Standard` - `"verified"Verified` - `"rejected"Rejected` - `"review"Review` - `Device Device` - `required string IPAddress` The customer's IP address at the time of profile creation. Use `0.0.0.0` to represent an offline customer registration. - `string? ExternalID` Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format. - `required ResponseMetadata Meta` Metadata about the API request, including an identifier and timestamp. - `required string ApiRequestID` Unique identifier for this API request, useful for troubleshooting. - `required DateTimeOffset ApiRequestTimestamp` Timestamp for this API request, useful for troubleshooting. - `required ResponseType ResponseType` Indicates the structure of the returned content. - "object" means the `data` field contains a single JSON object. - "array" means the `data` field contains an array of objects. - "error" means the `data` field contains an error object with details of the issue. - "none" means no data is returned. - `"object"Object` - `"array"Array` - `"error"Error` - `"none"None` ### Example ```csharp ReviewRefreshReviewParams parameters = new() { ID = "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" }; var customerV1 = await client.Customers.Review.RefreshReview(parameters); Console.WriteLine(customerV1); ``` #### Response ```json { "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "created_at": "2019-12-27T18:11:19.117Z", "email": "ron.swanson@pawnee.com", "name": "Ron Swanson", "phone": "+12128675309", "status": "pending", "type": "individual", "updated_at": "2019-12-27T18:11:19.117Z", "address": { "address1": "123 Main St", "city": "Anytown", "state": "CA", "zip": "12345", "address2": "Apt 1" }, "compliance_profile": { "dob": "2019-12-27", "ssn": "***-**-****" }, "config": { "processing_method": "inline", "sandbox_outcome": "standard" }, "device": { "ip_address": "192.168.1.1" }, "external_id": "external_id", "metadata": { "foo": "string" } }, "meta": { "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "api_request_timestamp": "2019-12-27T18:11:19.117Z" }, "response_type": "object" } ``` ## Domain Types ### Customer Review V1 - `class CustomerReviewV1:` - `required Data Data` - `required CustomerDetails CustomerDetails` - `required string ID` Unique identifier for the customer. - `required DateTimeOffset CreatedAt` Timestamp of when the customer record was created. - `required string Email` The customer's email address. - `required string Name` Full name of the individual or business name. - `required string Phone` The customer's phone number in E.164 format. - `required Status Status` - `"pending"Pending` - `"review"Review` - `"verified"Verified` - `"inactive"Inactive` - `"rejected"Rejected` - `required Type Type` - `"individual"Individual` - `"business"Business` - `required DateTimeOffset UpdatedAt` Timestamp of the most recent update to the customer record. - `CustomerAddressV1? Address` An object containing the customer's address. This is optional, but if provided, all required fields must be present. - `required string Address1` Primary address line (e.g., street, PO Box). - `required string City` City, district, suburb, town, or village. - `required string State` Two-letter state code. - `required string Zip` Zip or postal code. - `string? Address2` Secondary address line (e.g., apartment, suite, unit, or building). - `ComplianceProfile? ComplianceProfile` PII required to trigger Patriot Act compliant KYC verification. - `class IndividualComplianceProfile:` PII required to trigger Patriot Act compliant KYC verification. - `required DateOnly? Dob` Masked date of birth in ****-**-** format. - `required string? Ssn` Masked Social Security Number in the format ***-**-*\***. - `class BusinessComplianceProfile:` Business registration data required to trigger Patriot Act compliant KYB verification. - `required string? Ein` Masked Employer Identification Number in the format **-**\***** - `required string? LegalBusinessName` The official registered name of the business. This name should be correlated with the `ein` value. - `IReadOnlyList? Representatives` A list of people related to the company. Only valid where customer type is 'business'. - `required string Name` - `string? Email` - `string? Phone` - `string? Website` Official business website URL. Optional but recommended for enhanced KYB. - `Config Config` - `ProcessingMethod ProcessingMethod` - `"inline"Inline` - `"background"Background` - `"skip"Skip` - `SandboxOutcome SandboxOutcome` - `"standard"Standard` - `"verified"Verified` - `"rejected"Rejected` - `"review"Review` - `Device Device` - `required string IPAddress` The customer's IP address at the time of profile creation. Use `0.0.0.0` to represent an offline customer registration. - `string? ExternalID` Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format. - `IdentityDetails IdentityDetails` - `required Breakdown Breakdown` Detailed breakdown of the customer verification results, including decisions, risk scores, correlation score, and more. - `IdentityVerificationBreakdownV1 Address` - `IReadOnlyList? Codes` List of specific result codes from the fraud and risk screening. - `Correlation Correlation` - `"low_confidence"LowConfidence` - `"potential_match"PotentialMatch` - `"likely_match"LikelyMatch` - `"high_confidence"HighConfidence` - `Double? CorrelationScore` Represents the strength of the correlation between provided and known information. A higher score indicates a stronger correlation. - `Decision Decision` - `"accept"Accept` - `"reject"Reject` - `"review"Review` - `Double? RiskScore` Predicts the inherent risk associated with the customer for a given module. A higher score indicates a greater likelihood of fraud. - `IdentityVerificationBreakdownV1 BusinessEvaluation` - `IdentityVerificationBreakdownV1 BusinessIdentification` - `IdentityVerificationBreakdownV1 BusinessValidation` - `IdentityVerificationBreakdownV1 Email` - `IdentityVerificationBreakdownV1 Fraud` - `IdentityVerificationBreakdownV1 Phone` - `IdentityVerificationBreakdownV1 Synthetic` - `required DateTimeOffset CreatedAt` Timestamp of when the review was initiated. - `required Decision Decision` - `"accept"Accept` - `"reject"Reject` - `"review"Review` - `required string ReviewID` Unique identifier for the review. - `required DateTimeOffset UpdatedAt` Timestamp of the most recent update to the review. - `Kyc Kyc` - `required Validations Validations` Boolean values indicating the result of each validation in the KYC process. - `Boolean Address` - `Boolean City` - `Boolean Dob` - `Boolean Email` - `Boolean FirstName` - `Boolean LastName` - `Boolean Phone` - `Boolean Ssn` - `Boolean State` - `Boolean Zip` - `IReadOnlyList? Codes` List of specific result codes from the KYC screening process. - `Decision Decision` - `"accept"Accept` - `"reject"Reject` - `"review"Review` - `IReadOnlyDictionary? Messages` Dictionary of all messages from the customer verification process. - `NetworkAlerts NetworkAlerts` - `IReadOnlyList? Alerts` Any alerts or flags raised during the consortium alert screening. - `IReadOnlyList? Codes` List of specific result codes from the consortium alert screening. - `Decision Decision` - `"accept"Accept` - `"reject"Reject` - `"review"Review` - `Reputation Reputation` - `IReadOnlyList? Codes` Specific codes related to the Straddle reputation screening results. - `Decision Decision` - `"accept"Accept` - `"reject"Reject` - `"review"Review` - `Insights Insights` - `Int? AccountsActiveCount` - `Int? AccountsClosedCount` - `IReadOnlyList? AccountsClosedDates` - `Int? AccountsCount` - `Int? AccountsFraudCount` - `IReadOnlyList? AccountsFraudLabeledDates` - `Double? AccountsFraudLossTotalAmount` - `Int? AchFraudTransactionsCount` - `IReadOnlyList? AchFraudTransactionsDates` - `Double? AchFraudTransactionsTotalAmount` - `Int? AchReturnedTransactionsCount` - `IReadOnlyList? AchReturnedTransactionsDates` - `Double? AchReturnedTransactionsTotalAmount` - `Int? ApplicationsApprovedCount` - `Int? ApplicationsCount` - `IReadOnlyList? ApplicationsDates` - `Int? ApplicationsDeclinedCount` - `Int? ApplicationsFraudCount` - `Int? CardDisputedTransactionsCount` - `IReadOnlyList? CardDisputedTransactionsDates` - `Double? CardDisputedTransactionsTotalAmount` - `Int? CardFraudTransactionsCount` - `IReadOnlyList? CardFraudTransactionsDates` - `Double? CardFraudTransactionsTotalAmount` - `Int? CardStoppedTransactionsCount` - `IReadOnlyList? CardStoppedTransactionsDates` - `Int? UserActiveProfileCount` - `Int? UserAddressCount` - `Int? UserClosedProfileCount` - `Int? UserDobCount` - `Int? UserEmailCount` - `Int? UserInstitutionCount` - `Int? UserMobileCount` - `Double? RiskScore` - `WatchList WatchList` - `IReadOnlyList? Codes` Specific codes related to the Straddle watchlist screening results. - `Decision Decision` - `"accept"Accept` - `"reject"Reject` - `"review"Review` - `IReadOnlyList? Matched` Information about any matches found during screening. - `IReadOnlyList? Matches` Information about any matches found during screening. - `required Correlation Correlation` - `"low_confidence"LowConfidence` - `"potential_match"PotentialMatch` - `"likely_match"LikelyMatch` - `"high_confidence"HighConfidence` - `required string ListName` The name of the list the match was found. - `required IReadOnlyList MatchFields` Data fields that matched. - `required IReadOnlyList Urls` Relevent Urls to review. - `required ResponseMetadata Meta` Metadata about the API request, including an identifier and timestamp. - `required string ApiRequestID` Unique identifier for this API request, useful for troubleshooting. - `required DateTimeOffset ApiRequestTimestamp` Timestamp for this API request, useful for troubleshooting. - `required ResponseType ResponseType` Indicates the structure of the returned content. - "object" means the `data` field contains a single JSON object. - "array" means the `data` field contains an array of objects. - "error" means the `data` field contains an error object with details of the issue. - "none" means no data is returned. - `"object"Object` - `"array"Array` - `"error"Error` - `"none"None` ### Identity Verification Breakdown V1 - `class IdentityVerificationBreakdownV1:` - `IReadOnlyList? Codes` List of specific result codes from the fraud and risk screening. - `Correlation Correlation` - `"low_confidence"LowConfidence` - `"potential_match"PotentialMatch` - `"likely_match"LikelyMatch` - `"high_confidence"HighConfidence` - `Double? CorrelationScore` Represents the strength of the correlation between provided and known information. A higher score indicates a stronger correlation. - `Decision Decision` - `"accept"Accept` - `"reject"Reject` - `"review"Review` - `Double? RiskScore` Predicts the inherent risk associated with the customer for a given module. A higher score indicates a greater likelihood of fraud.