# Customers ## Lookup a customer `client.Customers.Get(ctx, id, query) (*CustomerV1, error)` **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 - `id string` - `query CustomerGetParams` - `CorrelationID param.Field[string]` Optional client generated identifier to trace and debug a series of requests. - `RequestID param.Field[string]` Optional client generated identifier to trace and debug a request. - `StraddleAccountID param.Field[string]` For use by platforms to specify an account id and set scope of a request. ### Returns - `type CustomerV1 struct{…}` - `Data CustomerV1Data` - `ID string` Unique identifier for the customer. - `CreatedAt Time` Timestamp of when the customer record was created. - `Email string` The customer's email address. - `Name string` Full name of the individual or business name. - `Phone string` The customer's phone number in E.164 format. - `Status string` - `const CustomerV1DataStatusPending CustomerV1DataStatus = "pending"` - `const CustomerV1DataStatusReview CustomerV1DataStatus = "review"` - `const CustomerV1DataStatusVerified CustomerV1DataStatus = "verified"` - `const CustomerV1DataStatusInactive CustomerV1DataStatus = "inactive"` - `const CustomerV1DataStatusRejected CustomerV1DataStatus = "rejected"` - `Type string` - `const CustomerV1DataTypeIndividual CustomerV1DataType = "individual"` - `const CustomerV1DataTypeBusiness CustomerV1DataType = "business"` - `UpdatedAt Time` Timestamp of the most recent update to the customer record. - `Address CustomerAddressV1` An object containing the customer's address. This is optional, but if provided, all required fields must be present. - `Address1 string` Primary address line (e.g., street, PO Box). - `City string` City, district, suburb, town, or village. - `State string` Two-letter state code. - `Zip string` Zip or postal code. - `Address2 string` Secondary address line (e.g., apartment, suite, unit, or building). - `ComplianceProfile CustomerV1DataComplianceProfileUnion` PII required to trigger Patriot Act compliant KYC verification. - `type CustomerV1DataComplianceProfileIndividualComplianceProfile struct{…}` PII required to trigger Patriot Act compliant KYC verification. - `Dob Time` Masked date of birth in ****-**-** format. - `Ssn string` Masked Social Security Number in the format ***-**-*\***. - `type CustomerV1DataComplianceProfileBusinessComplianceProfile struct{…}` Business registration data required to trigger Patriot Act compliant KYB verification. - `Ein string` Masked Employer Identification Number in the format **-**\***** - `LegalBusinessName string` The official registered name of the business. This name should be correlated with the `ein` value. - `Representatives []CustomerV1DataComplianceProfileBusinessComplianceProfileRepresentative` A list of people related to the company. Only valid where customer type is 'business'. - `Name string` - `Email string` - `Phone string` - `Website string` Official business website URL. Optional but recommended for enhanced KYB. - `Config CustomerV1DataConfig` - `ProcessingMethod string` - `const CustomerV1DataConfigProcessingMethodInline CustomerV1DataConfigProcessingMethod = "inline"` - `const CustomerV1DataConfigProcessingMethodBackground CustomerV1DataConfigProcessingMethod = "background"` - `const CustomerV1DataConfigProcessingMethodSkip CustomerV1DataConfigProcessingMethod = "skip"` - `SandboxOutcome string` - `const CustomerV1DataConfigSandboxOutcomeStandard CustomerV1DataConfigSandboxOutcome = "standard"` - `const CustomerV1DataConfigSandboxOutcomeVerified CustomerV1DataConfigSandboxOutcome = "verified"` - `const CustomerV1DataConfigSandboxOutcomeRejected CustomerV1DataConfigSandboxOutcome = "rejected"` - `const CustomerV1DataConfigSandboxOutcomeReview CustomerV1DataConfigSandboxOutcome = "review"` - `Device CustomerV1DataDevice` - `IPAddress string` The customer's IP address at the time of profile creation. Use `0.0.0.0` to represent an offline customer registration. - `ExternalID string` Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `Metadata map[string, string]` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format. - `Meta ResponseMetadata` Metadata about the API request, including an identifier and timestamp. - `APIRequestID string` Unique identifier for this API request, useful for troubleshooting. - `APIRequestTimestamp Time` Timestamp for this API request, useful for troubleshooting. - `ResponseType CustomerV1ResponseType` 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. - `const CustomerV1ResponseTypeObject CustomerV1ResponseType = "object"` - `const CustomerV1ResponseTypeArray CustomerV1ResponseType = "array"` - `const CustomerV1ResponseTypeError CustomerV1ResponseType = "error"` - `const CustomerV1ResponseTypeNone CustomerV1ResponseType = "none"` ### Example ```go package main import ( "context" "fmt" "github.com/straddleio/straddle-go" "github.com/straddleio/straddle-go/option" ) func main() { client := straddle.NewClient( option.WithAPIKey("My API Key"), ) customerV1, err := client.Customers.Get( context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", straddle.CustomerGetParams{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", customerV1.Data) } ``` #### 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 `client.Customers.Update(ctx, id, params) (*CustomerV1, error)` **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 - `id string` - `params CustomerUpdateParams` - `Device param.Field[DeviceUnmaskedV1]` Body param - `Email param.Field[string]` Body param: The customer's email address. - `Name param.Field[string]` Body param: The customer's full name or business name. - `Phone param.Field[string]` Body param: The customer's phone number in E.164 format. - `Status param.Field[CustomerUpdateParamsStatus]` Body param - `const CustomerUpdateParamsStatusPending CustomerUpdateParamsStatus = "pending"` - `const CustomerUpdateParamsStatusReview CustomerUpdateParamsStatus = "review"` - `const CustomerUpdateParamsStatusVerified CustomerUpdateParamsStatus = "verified"` - `const CustomerUpdateParamsStatusInactive CustomerUpdateParamsStatus = "inactive"` - `const CustomerUpdateParamsStatusRejected CustomerUpdateParamsStatus = "rejected"` - `Address param.Field[CustomerAddressV1]` Body param: An object containing the customer's address. This is optional, but if provided, all required fields must be present. - `ComplianceProfile param.Field[CustomerUpdateParamsComplianceProfileUnion]` Body param: Individual PII data required to trigger Patriot Act compliant KYC verification. - `type CustomerUpdateParamsComplianceProfileIndividualComplianceProfile struct{…}` Individual PII data required to trigger Patriot Act compliant KYC verification. - `Dob Time` Date of birth (YYYY-MM-DD). Required for Patriot Act-compliant KYC verification. - `Ssn string` Social Security Number (format XXX-XX-XXXX). Required for Patriot Act-compliant KYC verification. - `type CustomerUpdateParamsComplianceProfileBusinessComplianceProfile struct{…}` Business registration data required to trigger Patriot Act compliant KYB verification. - `Ein string` Employer Identification Number (format XX-XXXXXXX). Required for Patriot Act-compliant KYB verification. - `LegalBusinessName string` Official registered business name as listed with the IRS. This value will be matched against the 'legal_business name'. - `Representatives []CustomerUpdateParamsComplianceProfileBusinessComplianceProfileRepresentative` A list of people related to the company. Only valid where customer type is 'business'. - `Name string` - `Email string` - `Phone string` - `Website string` Official business website URL. Optional but recommended for enhanced KYB. - `ExternalID param.Field[string]` Body param: Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `Metadata param.Field[map[string, string]]` Body param: Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format. - `CorrelationID param.Field[string]` Header param: Optional client generated identifier to trace and debug a series of requests. - `IdempotencyKey param.Field[string]` Header param: Optional client generated value to use for idempotent requests. - `RequestID param.Field[string]` Header param: Optional client generated identifier to trace and debug a request. - `StraddleAccountID param.Field[string]` Header param: For use by platforms to specify an account id and set scope of a request. ### Returns - `type CustomerV1 struct{…}` - `Data CustomerV1Data` - `ID string` Unique identifier for the customer. - `CreatedAt Time` Timestamp of when the customer record was created. - `Email string` The customer's email address. - `Name string` Full name of the individual or business name. - `Phone string` The customer's phone number in E.164 format. - `Status string` - `const CustomerV1DataStatusPending CustomerV1DataStatus = "pending"` - `const CustomerV1DataStatusReview CustomerV1DataStatus = "review"` - `const CustomerV1DataStatusVerified CustomerV1DataStatus = "verified"` - `const CustomerV1DataStatusInactive CustomerV1DataStatus = "inactive"` - `const CustomerV1DataStatusRejected CustomerV1DataStatus = "rejected"` - `Type string` - `const CustomerV1DataTypeIndividual CustomerV1DataType = "individual"` - `const CustomerV1DataTypeBusiness CustomerV1DataType = "business"` - `UpdatedAt Time` Timestamp of the most recent update to the customer record. - `Address CustomerAddressV1` An object containing the customer's address. This is optional, but if provided, all required fields must be present. - `Address1 string` Primary address line (e.g., street, PO Box). - `City string` City, district, suburb, town, or village. - `State string` Two-letter state code. - `Zip string` Zip or postal code. - `Address2 string` Secondary address line (e.g., apartment, suite, unit, or building). - `ComplianceProfile CustomerV1DataComplianceProfileUnion` PII required to trigger Patriot Act compliant KYC verification. - `type CustomerV1DataComplianceProfileIndividualComplianceProfile struct{…}` PII required to trigger Patriot Act compliant KYC verification. - `Dob Time` Masked date of birth in ****-**-** format. - `Ssn string` Masked Social Security Number in the format ***-**-*\***. - `type CustomerV1DataComplianceProfileBusinessComplianceProfile struct{…}` Business registration data required to trigger Patriot Act compliant KYB verification. - `Ein string` Masked Employer Identification Number in the format **-**\***** - `LegalBusinessName string` The official registered name of the business. This name should be correlated with the `ein` value. - `Representatives []CustomerV1DataComplianceProfileBusinessComplianceProfileRepresentative` A list of people related to the company. Only valid where customer type is 'business'. - `Name string` - `Email string` - `Phone string` - `Website string` Official business website URL. Optional but recommended for enhanced KYB. - `Config CustomerV1DataConfig` - `ProcessingMethod string` - `const CustomerV1DataConfigProcessingMethodInline CustomerV1DataConfigProcessingMethod = "inline"` - `const CustomerV1DataConfigProcessingMethodBackground CustomerV1DataConfigProcessingMethod = "background"` - `const CustomerV1DataConfigProcessingMethodSkip CustomerV1DataConfigProcessingMethod = "skip"` - `SandboxOutcome string` - `const CustomerV1DataConfigSandboxOutcomeStandard CustomerV1DataConfigSandboxOutcome = "standard"` - `const CustomerV1DataConfigSandboxOutcomeVerified CustomerV1DataConfigSandboxOutcome = "verified"` - `const CustomerV1DataConfigSandboxOutcomeRejected CustomerV1DataConfigSandboxOutcome = "rejected"` - `const CustomerV1DataConfigSandboxOutcomeReview CustomerV1DataConfigSandboxOutcome = "review"` - `Device CustomerV1DataDevice` - `IPAddress string` The customer's IP address at the time of profile creation. Use `0.0.0.0` to represent an offline customer registration. - `ExternalID string` Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `Metadata map[string, string]` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format. - `Meta ResponseMetadata` Metadata about the API request, including an identifier and timestamp. - `APIRequestID string` Unique identifier for this API request, useful for troubleshooting. - `APIRequestTimestamp Time` Timestamp for this API request, useful for troubleshooting. - `ResponseType CustomerV1ResponseType` 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. - `const CustomerV1ResponseTypeObject CustomerV1ResponseType = "object"` - `const CustomerV1ResponseTypeArray CustomerV1ResponseType = "array"` - `const CustomerV1ResponseTypeError CustomerV1ResponseType = "error"` - `const CustomerV1ResponseTypeNone CustomerV1ResponseType = "none"` ### Example ```go package main import ( "context" "fmt" "github.com/straddleio/straddle-go" "github.com/straddleio/straddle-go/option" ) func main() { client := straddle.NewClient( option.WithAPIKey("My API Key"), ) customerV1, err := client.Customers.Update( context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", straddle.CustomerUpdateParams{ Device: straddle.DeviceUnmaskedV1Param{ IPAddress: "192.168.1.1", }, Email: "dev@stainless.com", Name: "name", Phone: "+46991022", Status: straddle.CustomerUpdateParamsStatusPending, }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", customerV1.Data) } ``` #### 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 `client.Customers.Delete(ctx, id, body) (*CustomerV1, error)` **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 - `id string` - `body CustomerDeleteParams` - `CorrelationID param.Field[string]` Optional client generated identifier to trace and debug a series of requests. - `IdempotencyKey param.Field[string]` Optional client generated value to use for idempotent requests. - `RequestID param.Field[string]` Optional client generated identifier to trace and debug a request. - `StraddleAccountID param.Field[string]` For use by platforms to specify an account id and set scope of a request. ### Returns - `type CustomerV1 struct{…}` - `Data CustomerV1Data` - `ID string` Unique identifier for the customer. - `CreatedAt Time` Timestamp of when the customer record was created. - `Email string` The customer's email address. - `Name string` Full name of the individual or business name. - `Phone string` The customer's phone number in E.164 format. - `Status string` - `const CustomerV1DataStatusPending CustomerV1DataStatus = "pending"` - `const CustomerV1DataStatusReview CustomerV1DataStatus = "review"` - `const CustomerV1DataStatusVerified CustomerV1DataStatus = "verified"` - `const CustomerV1DataStatusInactive CustomerV1DataStatus = "inactive"` - `const CustomerV1DataStatusRejected CustomerV1DataStatus = "rejected"` - `Type string` - `const CustomerV1DataTypeIndividual CustomerV1DataType = "individual"` - `const CustomerV1DataTypeBusiness CustomerV1DataType = "business"` - `UpdatedAt Time` Timestamp of the most recent update to the customer record. - `Address CustomerAddressV1` An object containing the customer's address. This is optional, but if provided, all required fields must be present. - `Address1 string` Primary address line (e.g., street, PO Box). - `City string` City, district, suburb, town, or village. - `State string` Two-letter state code. - `Zip string` Zip or postal code. - `Address2 string` Secondary address line (e.g., apartment, suite, unit, or building). - `ComplianceProfile CustomerV1DataComplianceProfileUnion` PII required to trigger Patriot Act compliant KYC verification. - `type CustomerV1DataComplianceProfileIndividualComplianceProfile struct{…}` PII required to trigger Patriot Act compliant KYC verification. - `Dob Time` Masked date of birth in ****-**-** format. - `Ssn string` Masked Social Security Number in the format ***-**-*\***. - `type CustomerV1DataComplianceProfileBusinessComplianceProfile struct{…}` Business registration data required to trigger Patriot Act compliant KYB verification. - `Ein string` Masked Employer Identification Number in the format **-**\***** - `LegalBusinessName string` The official registered name of the business. This name should be correlated with the `ein` value. - `Representatives []CustomerV1DataComplianceProfileBusinessComplianceProfileRepresentative` A list of people related to the company. Only valid where customer type is 'business'. - `Name string` - `Email string` - `Phone string` - `Website string` Official business website URL. Optional but recommended for enhanced KYB. - `Config CustomerV1DataConfig` - `ProcessingMethod string` - `const CustomerV1DataConfigProcessingMethodInline CustomerV1DataConfigProcessingMethod = "inline"` - `const CustomerV1DataConfigProcessingMethodBackground CustomerV1DataConfigProcessingMethod = "background"` - `const CustomerV1DataConfigProcessingMethodSkip CustomerV1DataConfigProcessingMethod = "skip"` - `SandboxOutcome string` - `const CustomerV1DataConfigSandboxOutcomeStandard CustomerV1DataConfigSandboxOutcome = "standard"` - `const CustomerV1DataConfigSandboxOutcomeVerified CustomerV1DataConfigSandboxOutcome = "verified"` - `const CustomerV1DataConfigSandboxOutcomeRejected CustomerV1DataConfigSandboxOutcome = "rejected"` - `const CustomerV1DataConfigSandboxOutcomeReview CustomerV1DataConfigSandboxOutcome = "review"` - `Device CustomerV1DataDevice` - `IPAddress string` The customer's IP address at the time of profile creation. Use `0.0.0.0` to represent an offline customer registration. - `ExternalID string` Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `Metadata map[string, string]` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format. - `Meta ResponseMetadata` Metadata about the API request, including an identifier and timestamp. - `APIRequestID string` Unique identifier for this API request, useful for troubleshooting. - `APIRequestTimestamp Time` Timestamp for this API request, useful for troubleshooting. - `ResponseType CustomerV1ResponseType` 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. - `const CustomerV1ResponseTypeObject CustomerV1ResponseType = "object"` - `const CustomerV1ResponseTypeArray CustomerV1ResponseType = "array"` - `const CustomerV1ResponseTypeError CustomerV1ResponseType = "error"` - `const CustomerV1ResponseTypeNone CustomerV1ResponseType = "none"` ### Example ```go package main import ( "context" "fmt" "github.com/straddleio/straddle-go" "github.com/straddleio/straddle-go/option" ) func main() { client := straddle.NewClient( option.WithAPIKey("My API Key"), ) customerV1, err := client.Customers.Delete( context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", straddle.CustomerDeleteParams{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", customerV1.Data) } ``` #### 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 `client.Customers.List(ctx, params) (*PageNumberSchema[CustomerSummaryPagedV1Data], error)` **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 - `params CustomerListParams` - `CreatedFrom param.Field[Time]` Query param: Start date for filtering by `created_at` date. - `CreatedTo param.Field[Time]` Query param: End date for filtering by `created_at` date. - `Email param.Field[string]` Query param: Filter customers by `email` address. - `ExternalID param.Field[string]` Query param: Filter by your system's `external_id`. - `Name param.Field[string]` Query param: Filter customers by `name` (partial match). - `PageNumber param.Field[int64]` Query param: Page number for paginated results. Starts at 1. - `PageSize param.Field[int64]` Query param: Number of results per page. Maximum: 1000. - `SearchText param.Field[string]` Query param: General search term to filter customers. - `SortBy param.Field[CustomerListParamsSortBy]` Query param - `const CustomerListParamsSortByName CustomerListParamsSortBy = "name"` - `const CustomerListParamsSortByCreatedAt CustomerListParamsSortBy = "created_at"` - `SortOrder param.Field[CustomerListParamsSortOrder]` Query param - `const CustomerListParamsSortOrderAsc CustomerListParamsSortOrder = "asc"` - `const CustomerListParamsSortOrderDesc CustomerListParamsSortOrder = "desc"` - `Status param.Field[[]string]` Query param: Filter customers by their current `status`. - `const CustomerListParamsStatusPending CustomerListParamsStatus = "pending"` - `const CustomerListParamsStatusReview CustomerListParamsStatus = "review"` - `const CustomerListParamsStatusVerified CustomerListParamsStatus = "verified"` - `const CustomerListParamsStatusInactive CustomerListParamsStatus = "inactive"` - `const CustomerListParamsStatusRejected CustomerListParamsStatus = "rejected"` - `Types param.Field[[]string]` Query param: Filter by customer type `individual` or `business`. - `const CustomerListParamsTypeIndividual CustomerListParamsType = "individual"` - `const CustomerListParamsTypeBusiness CustomerListParamsType = "business"` - `CorrelationID param.Field[string]` Header param: Optional client generated identifier to trace and debug a series of requests. - `RequestID param.Field[string]` Header param: Optional client generated identifier to trace and debug a request. - `StraddleAccountID param.Field[string]` Header param: For use by platforms to specify an `account_id` to set the scope of a request. ### Returns - `type CustomerSummaryPagedV1Data struct{…}` - `ID string` Unique identifier for the customer. - `CreatedAt Time` Timestamp of when the customer record was created. - `Email string` The customer's email address. - `Name string` Full name of the individual or business name. - `Phone string` The customer's phone number in E.164 format. - `Status string` - `const CustomerSummaryPagedV1DataStatusPending CustomerSummaryPagedV1DataStatus = "pending"` - `const CustomerSummaryPagedV1DataStatusReview CustomerSummaryPagedV1DataStatus = "review"` - `const CustomerSummaryPagedV1DataStatusVerified CustomerSummaryPagedV1DataStatus = "verified"` - `const CustomerSummaryPagedV1DataStatusInactive CustomerSummaryPagedV1DataStatus = "inactive"` - `const CustomerSummaryPagedV1DataStatusRejected CustomerSummaryPagedV1DataStatus = "rejected"` - `Type string` - `const CustomerSummaryPagedV1DataTypeIndividual CustomerSummaryPagedV1DataType = "individual"` - `const CustomerSummaryPagedV1DataTypeBusiness CustomerSummaryPagedV1DataType = "business"` - `UpdatedAt Time` Timestamp of the most recent update to the customer record. - `ExternalID string` Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. ### Example ```go package main import ( "context" "fmt" "github.com/straddleio/straddle-go" "github.com/straddleio/straddle-go/option" ) func main() { client := straddle.NewClient( option.WithAPIKey("My API Key"), ) page, err := client.Customers.List(context.TODO(), straddle.CustomerListParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", page) } ``` #### 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 `client.Customers.New(ctx, params) (*CustomerV1, error)` **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 - `params CustomerNewParams` - `Device param.Field[DeviceUnmaskedV1]` Body param - `Email param.Field[string]` Body param: The customer's email address. - `Name param.Field[string]` Body param: Full name of the individual or business name. - `Phone param.Field[string]` Body param: The customer's phone number in E.164 format. Mobile number is preferred. - `Type param.Field[CustomerNewParamsType]` Body param - `const CustomerNewParamsTypeIndividual CustomerNewParamsType = "individual"` - `const CustomerNewParamsTypeBusiness CustomerNewParamsType = "business"` - `Address param.Field[CustomerAddressV1]` Body param: An object containing the customer's address. **This is optional.** If used, all required fields must be present. - `ComplianceProfile param.Field[CustomerNewParamsComplianceProfileUnion]` 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. - `type CustomerNewParamsComplianceProfileIndividualComplianceProfile struct{…}` Individual PII data required to trigger Patriot Act compliant KYC verification. - `Dob Time` Date of birth (YYYY-MM-DD). Required for Patriot Act-compliant KYC verification. - `Ssn string` Social Security Number (format XXX-XX-XXXX). Required for Patriot Act-compliant KYC verification. - `type CustomerNewParamsComplianceProfileBusinessComplianceProfile struct{…}` Business registration data required to trigger Patriot Act compliant KYB verification. - `Ein string` Employer Identification Number (format XX-XXXXXXX). Required for Patriot Act-compliant KYB verification. - `LegalBusinessName string` Official registered business name as listed with the IRS. This value will be matched against the 'legal_business name'. - `Representatives []CustomerNewParamsComplianceProfileBusinessComplianceProfileRepresentative` A list of people related to the company. Only valid where customer type is 'business'. - `Name string` - `Email string` - `Phone string` - `Website string` Official business website URL. Optional but recommended for enhanced KYB. - `Config param.Field[CustomerNewParamsConfig]` Body param - `ProcessingMethod string` - `const CustomerNewParamsConfigProcessingMethodInline CustomerNewParamsConfigProcessingMethod = "inline"` - `const CustomerNewParamsConfigProcessingMethodBackground CustomerNewParamsConfigProcessingMethod = "background"` - `const CustomerNewParamsConfigProcessingMethodSkip CustomerNewParamsConfigProcessingMethod = "skip"` - `SandboxOutcome string` - `const CustomerNewParamsConfigSandboxOutcomeStandard CustomerNewParamsConfigSandboxOutcome = "standard"` - `const CustomerNewParamsConfigSandboxOutcomeVerified CustomerNewParamsConfigSandboxOutcome = "verified"` - `const CustomerNewParamsConfigSandboxOutcomeRejected CustomerNewParamsConfigSandboxOutcome = "rejected"` - `const CustomerNewParamsConfigSandboxOutcomeReview CustomerNewParamsConfigSandboxOutcome = "review"` - `ExternalID param.Field[string]` Body param: Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `Metadata param.Field[map[string, string]]` Body param: Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format. - `CorrelationID param.Field[string]` Header param: Optional client generated identifier to trace and debug a series of requests. - `IdempotencyKey param.Field[string]` Header param: Optional client generated value to use for idempotent requests. - `RequestID param.Field[string]` Header param: Optional client generated identifier to trace and debug a request. - `StraddleAccountID param.Field[string]` Header param: For use by platforms to specify an account id and set scope of a request. ### Returns - `type CustomerV1 struct{…}` - `Data CustomerV1Data` - `ID string` Unique identifier for the customer. - `CreatedAt Time` Timestamp of when the customer record was created. - `Email string` The customer's email address. - `Name string` Full name of the individual or business name. - `Phone string` The customer's phone number in E.164 format. - `Status string` - `const CustomerV1DataStatusPending CustomerV1DataStatus = "pending"` - `const CustomerV1DataStatusReview CustomerV1DataStatus = "review"` - `const CustomerV1DataStatusVerified CustomerV1DataStatus = "verified"` - `const CustomerV1DataStatusInactive CustomerV1DataStatus = "inactive"` - `const CustomerV1DataStatusRejected CustomerV1DataStatus = "rejected"` - `Type string` - `const CustomerV1DataTypeIndividual CustomerV1DataType = "individual"` - `const CustomerV1DataTypeBusiness CustomerV1DataType = "business"` - `UpdatedAt Time` Timestamp of the most recent update to the customer record. - `Address CustomerAddressV1` An object containing the customer's address. This is optional, but if provided, all required fields must be present. - `Address1 string` Primary address line (e.g., street, PO Box). - `City string` City, district, suburb, town, or village. - `State string` Two-letter state code. - `Zip string` Zip or postal code. - `Address2 string` Secondary address line (e.g., apartment, suite, unit, or building). - `ComplianceProfile CustomerV1DataComplianceProfileUnion` PII required to trigger Patriot Act compliant KYC verification. - `type CustomerV1DataComplianceProfileIndividualComplianceProfile struct{…}` PII required to trigger Patriot Act compliant KYC verification. - `Dob Time` Masked date of birth in ****-**-** format. - `Ssn string` Masked Social Security Number in the format ***-**-*\***. - `type CustomerV1DataComplianceProfileBusinessComplianceProfile struct{…}` Business registration data required to trigger Patriot Act compliant KYB verification. - `Ein string` Masked Employer Identification Number in the format **-**\***** - `LegalBusinessName string` The official registered name of the business. This name should be correlated with the `ein` value. - `Representatives []CustomerV1DataComplianceProfileBusinessComplianceProfileRepresentative` A list of people related to the company. Only valid where customer type is 'business'. - `Name string` - `Email string` - `Phone string` - `Website string` Official business website URL. Optional but recommended for enhanced KYB. - `Config CustomerV1DataConfig` - `ProcessingMethod string` - `const CustomerV1DataConfigProcessingMethodInline CustomerV1DataConfigProcessingMethod = "inline"` - `const CustomerV1DataConfigProcessingMethodBackground CustomerV1DataConfigProcessingMethod = "background"` - `const CustomerV1DataConfigProcessingMethodSkip CustomerV1DataConfigProcessingMethod = "skip"` - `SandboxOutcome string` - `const CustomerV1DataConfigSandboxOutcomeStandard CustomerV1DataConfigSandboxOutcome = "standard"` - `const CustomerV1DataConfigSandboxOutcomeVerified CustomerV1DataConfigSandboxOutcome = "verified"` - `const CustomerV1DataConfigSandboxOutcomeRejected CustomerV1DataConfigSandboxOutcome = "rejected"` - `const CustomerV1DataConfigSandboxOutcomeReview CustomerV1DataConfigSandboxOutcome = "review"` - `Device CustomerV1DataDevice` - `IPAddress string` The customer's IP address at the time of profile creation. Use `0.0.0.0` to represent an offline customer registration. - `ExternalID string` Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `Metadata map[string, string]` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format. - `Meta ResponseMetadata` Metadata about the API request, including an identifier and timestamp. - `APIRequestID string` Unique identifier for this API request, useful for troubleshooting. - `APIRequestTimestamp Time` Timestamp for this API request, useful for troubleshooting. - `ResponseType CustomerV1ResponseType` 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. - `const CustomerV1ResponseTypeObject CustomerV1ResponseType = "object"` - `const CustomerV1ResponseTypeArray CustomerV1ResponseType = "array"` - `const CustomerV1ResponseTypeError CustomerV1ResponseType = "error"` - `const CustomerV1ResponseTypeNone CustomerV1ResponseType = "none"` ### Example ```go package main import ( "context" "fmt" "github.com/straddleio/straddle-go" "github.com/straddleio/straddle-go/option" ) func main() { client := straddle.NewClient( option.WithAPIKey("My API Key"), ) customerV1, err := client.Customers.New(context.TODO(), straddle.CustomerNewParams{ Device: straddle.DeviceUnmaskedV1Param{ IPAddress: "192.168.1.1", }, Email: "ron.swanson@pawnee.com", Name: "Ron Swanson", Phone: "+12128675309", Type: straddle.CustomerNewParamsTypeIndividual, }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", customerV1.Data) } ``` #### 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 `client.Customers.Unmasked(ctx, id, query) (*CustomerUnmaskedV1, error)` **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 - `id string` - `query CustomerUnmaskedParams` - `CorrelationID param.Field[string]` Optional client generated identifier to trace and debug a series of requests. - `RequestID param.Field[string]` Optional client generated identifier to trace and debug a request. - `StraddleAccountID param.Field[string]` For use by platforms to specify an account id and set scope of a request. ### Returns - `type CustomerUnmaskedV1 struct{…}` - `Data CustomerUnmaskedV1Data` - `ID string` Unique identifier for the customer. - `CreatedAt Time` Timestamp of when the customer record was created. - `Email string` The customer's email address. - `Name string` Full name of the individual or business name. - `Phone string` The customer's phone number in E.164 format. - `Status string` - `const CustomerUnmaskedV1DataStatusPending CustomerUnmaskedV1DataStatus = "pending"` - `const CustomerUnmaskedV1DataStatusReview CustomerUnmaskedV1DataStatus = "review"` - `const CustomerUnmaskedV1DataStatusVerified CustomerUnmaskedV1DataStatus = "verified"` - `const CustomerUnmaskedV1DataStatusInactive CustomerUnmaskedV1DataStatus = "inactive"` - `const CustomerUnmaskedV1DataStatusRejected CustomerUnmaskedV1DataStatus = "rejected"` - `Type string` - `const CustomerUnmaskedV1DataTypeIndividual CustomerUnmaskedV1DataType = "individual"` - `const CustomerUnmaskedV1DataTypeBusiness CustomerUnmaskedV1DataType = "business"` - `UpdatedAt Time` Timestamp of the most recent update to the customer record. - `Address CustomerAddressV1` An object containing the customer's address. This is optional, but if provided, all required fields must be present. - `Address1 string` Primary address line (e.g., street, PO Box). - `City string` City, district, suburb, town, or village. - `State string` Two-letter state code. - `Zip string` Zip or postal code. - `Address2 string` Secondary address line (e.g., apartment, suite, unit, or building). - `ComplianceProfile CustomerUnmaskedV1DataComplianceProfileUnion` Individual PII data required to trigger Patriot Act compliant KYC verification. - `type CustomerUnmaskedV1DataComplianceProfileIndividualComplianceProfile struct{…}` Individual PII data required to trigger Patriot Act compliant KYC verification. - `Dob Time` Date of birth (YYYY-MM-DD). Required for Patriot Act-compliant KYC verification. - `Ssn string` Social Security Number (format XXX-XX-XXXX). Required for Patriot Act-compliant KYC verification. - `type CustomerUnmaskedV1DataComplianceProfileBusinessComplianceProfile struct{…}` Business registration data required to trigger Patriot Act compliant KYB verification. - `Ein string` Employer Identification Number (format XX-XXXXXXX). Required for Patriot Act-compliant KYB verification. - `LegalBusinessName string` Official registered business name as listed with the IRS. This value will be matched against the 'legal_business name'. - `Representatives []CustomerUnmaskedV1DataComplianceProfileBusinessComplianceProfileRepresentative` A list of people related to the company. Only valid where customer type is 'business'. - `Name string` - `Email string` - `Phone string` - `Website string` Official business website URL. Optional but recommended for enhanced KYB. - `Config CustomerUnmaskedV1DataConfig` - `ProcessingMethod string` - `const CustomerUnmaskedV1DataConfigProcessingMethodInline CustomerUnmaskedV1DataConfigProcessingMethod = "inline"` - `const CustomerUnmaskedV1DataConfigProcessingMethodBackground CustomerUnmaskedV1DataConfigProcessingMethod = "background"` - `const CustomerUnmaskedV1DataConfigProcessingMethodSkip CustomerUnmaskedV1DataConfigProcessingMethod = "skip"` - `SandboxOutcome string` - `const CustomerUnmaskedV1DataConfigSandboxOutcomeStandard CustomerUnmaskedV1DataConfigSandboxOutcome = "standard"` - `const CustomerUnmaskedV1DataConfigSandboxOutcomeVerified CustomerUnmaskedV1DataConfigSandboxOutcome = "verified"` - `const CustomerUnmaskedV1DataConfigSandboxOutcomeRejected CustomerUnmaskedV1DataConfigSandboxOutcome = "rejected"` - `const CustomerUnmaskedV1DataConfigSandboxOutcomeReview CustomerUnmaskedV1DataConfigSandboxOutcome = "review"` - `Device DeviceUnmaskedV1` - `IPAddress string` The customer's IP address at the time of profile creation. Use `0.0.0.0` to represent an offline customer registration. - `ExternalID string` Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `Metadata map[string, string]` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format. - `Meta ResponseMetadata` Metadata about the API request, including an identifier and timestamp. - `APIRequestID string` Unique identifier for this API request, useful for troubleshooting. - `APIRequestTimestamp Time` Timestamp for this API request, useful for troubleshooting. - `ResponseType CustomerUnmaskedV1ResponseType` 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. - `const CustomerUnmaskedV1ResponseTypeObject CustomerUnmaskedV1ResponseType = "object"` - `const CustomerUnmaskedV1ResponseTypeArray CustomerUnmaskedV1ResponseType = "array"` - `const CustomerUnmaskedV1ResponseTypeError CustomerUnmaskedV1ResponseType = "error"` - `const CustomerUnmaskedV1ResponseTypeNone CustomerUnmaskedV1ResponseType = "none"` ### Example ```go package main import ( "context" "fmt" "github.com/straddleio/straddle-go" "github.com/straddleio/straddle-go/option" ) func main() { client := straddle.NewClient( option.WithAPIKey("My API Key"), ) customerUnmaskedV1, err := client.Customers.Unmasked( context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", straddle.CustomerUnmaskedParams{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", customerUnmaskedV1.Data) } ``` #### 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 - `type CustomerAddressV1 struct{…}` An object containing the customer's address. This is optional, but if provided, all required fields must be present. - `Address1 string` Primary address line (e.g., street, PO Box). - `City string` City, district, suburb, town, or village. - `State string` Two-letter state code. - `Zip string` Zip or postal code. - `Address2 string` Secondary address line (e.g., apartment, suite, unit, or building). ### Customer Summary Paged V1 - `type CustomerSummaryPagedV1 struct{…}` - `Data []CustomerSummaryPagedV1Data` - `ID string` Unique identifier for the customer. - `CreatedAt Time` Timestamp of when the customer record was created. - `Email string` The customer's email address. - `Name string` Full name of the individual or business name. - `Phone string` The customer's phone number in E.164 format. - `Status string` - `const CustomerSummaryPagedV1DataStatusPending CustomerSummaryPagedV1DataStatus = "pending"` - `const CustomerSummaryPagedV1DataStatusReview CustomerSummaryPagedV1DataStatus = "review"` - `const CustomerSummaryPagedV1DataStatusVerified CustomerSummaryPagedV1DataStatus = "verified"` - `const CustomerSummaryPagedV1DataStatusInactive CustomerSummaryPagedV1DataStatus = "inactive"` - `const CustomerSummaryPagedV1DataStatusRejected CustomerSummaryPagedV1DataStatus = "rejected"` - `Type string` - `const CustomerSummaryPagedV1DataTypeIndividual CustomerSummaryPagedV1DataType = "individual"` - `const CustomerSummaryPagedV1DataTypeBusiness CustomerSummaryPagedV1DataType = "business"` - `UpdatedAt Time` Timestamp of the most recent update to the customer record. - `ExternalID string` Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `Meta CustomerSummaryPagedV1Meta` - `APIRequestID string` Unique identifier for this API request, useful for troubleshooting. - `APIRequestTimestamp Time` Timestamp for this API request, useful for troubleshooting. - `MaxPageSize int64` Maximum allowed page size for this endpoint. - `PageNumber int64` Page number for paginated results. - `PageSize int64` Number of items per page in this response. - `SortBy string` The field that the results were sorted by. - `SortOrder string` - `const CustomerSummaryPagedV1MetaSortOrderAsc CustomerSummaryPagedV1MetaSortOrder = "asc"` - `const CustomerSummaryPagedV1MetaSortOrderDesc CustomerSummaryPagedV1MetaSortOrder = "desc"` - `TotalItems int64` - `TotalPages int64` The number of pages available. - `ResponseType CustomerSummaryPagedV1ResponseType` 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. - `const CustomerSummaryPagedV1ResponseTypeObject CustomerSummaryPagedV1ResponseType = "object"` - `const CustomerSummaryPagedV1ResponseTypeArray CustomerSummaryPagedV1ResponseType = "array"` - `const CustomerSummaryPagedV1ResponseTypeError CustomerSummaryPagedV1ResponseType = "error"` - `const CustomerSummaryPagedV1ResponseTypeNone CustomerSummaryPagedV1ResponseType = "none"` ### Customer Unmasked V1 - `type CustomerUnmaskedV1 struct{…}` - `Data CustomerUnmaskedV1Data` - `ID string` Unique identifier for the customer. - `CreatedAt Time` Timestamp of when the customer record was created. - `Email string` The customer's email address. - `Name string` Full name of the individual or business name. - `Phone string` The customer's phone number in E.164 format. - `Status string` - `const CustomerUnmaskedV1DataStatusPending CustomerUnmaskedV1DataStatus = "pending"` - `const CustomerUnmaskedV1DataStatusReview CustomerUnmaskedV1DataStatus = "review"` - `const CustomerUnmaskedV1DataStatusVerified CustomerUnmaskedV1DataStatus = "verified"` - `const CustomerUnmaskedV1DataStatusInactive CustomerUnmaskedV1DataStatus = "inactive"` - `const CustomerUnmaskedV1DataStatusRejected CustomerUnmaskedV1DataStatus = "rejected"` - `Type string` - `const CustomerUnmaskedV1DataTypeIndividual CustomerUnmaskedV1DataType = "individual"` - `const CustomerUnmaskedV1DataTypeBusiness CustomerUnmaskedV1DataType = "business"` - `UpdatedAt Time` Timestamp of the most recent update to the customer record. - `Address CustomerAddressV1` An object containing the customer's address. This is optional, but if provided, all required fields must be present. - `Address1 string` Primary address line (e.g., street, PO Box). - `City string` City, district, suburb, town, or village. - `State string` Two-letter state code. - `Zip string` Zip or postal code. - `Address2 string` Secondary address line (e.g., apartment, suite, unit, or building). - `ComplianceProfile CustomerUnmaskedV1DataComplianceProfileUnion` Individual PII data required to trigger Patriot Act compliant KYC verification. - `type CustomerUnmaskedV1DataComplianceProfileIndividualComplianceProfile struct{…}` Individual PII data required to trigger Patriot Act compliant KYC verification. - `Dob Time` Date of birth (YYYY-MM-DD). Required for Patriot Act-compliant KYC verification. - `Ssn string` Social Security Number (format XXX-XX-XXXX). Required for Patriot Act-compliant KYC verification. - `type CustomerUnmaskedV1DataComplianceProfileBusinessComplianceProfile struct{…}` Business registration data required to trigger Patriot Act compliant KYB verification. - `Ein string` Employer Identification Number (format XX-XXXXXXX). Required for Patriot Act-compliant KYB verification. - `LegalBusinessName string` Official registered business name as listed with the IRS. This value will be matched against the 'legal_business name'. - `Representatives []CustomerUnmaskedV1DataComplianceProfileBusinessComplianceProfileRepresentative` A list of people related to the company. Only valid where customer type is 'business'. - `Name string` - `Email string` - `Phone string` - `Website string` Official business website URL. Optional but recommended for enhanced KYB. - `Config CustomerUnmaskedV1DataConfig` - `ProcessingMethod string` - `const CustomerUnmaskedV1DataConfigProcessingMethodInline CustomerUnmaskedV1DataConfigProcessingMethod = "inline"` - `const CustomerUnmaskedV1DataConfigProcessingMethodBackground CustomerUnmaskedV1DataConfigProcessingMethod = "background"` - `const CustomerUnmaskedV1DataConfigProcessingMethodSkip CustomerUnmaskedV1DataConfigProcessingMethod = "skip"` - `SandboxOutcome string` - `const CustomerUnmaskedV1DataConfigSandboxOutcomeStandard CustomerUnmaskedV1DataConfigSandboxOutcome = "standard"` - `const CustomerUnmaskedV1DataConfigSandboxOutcomeVerified CustomerUnmaskedV1DataConfigSandboxOutcome = "verified"` - `const CustomerUnmaskedV1DataConfigSandboxOutcomeRejected CustomerUnmaskedV1DataConfigSandboxOutcome = "rejected"` - `const CustomerUnmaskedV1DataConfigSandboxOutcomeReview CustomerUnmaskedV1DataConfigSandboxOutcome = "review"` - `Device DeviceUnmaskedV1` - `IPAddress string` The customer's IP address at the time of profile creation. Use `0.0.0.0` to represent an offline customer registration. - `ExternalID string` Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `Metadata map[string, string]` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format. - `Meta ResponseMetadata` Metadata about the API request, including an identifier and timestamp. - `APIRequestID string` Unique identifier for this API request, useful for troubleshooting. - `APIRequestTimestamp Time` Timestamp for this API request, useful for troubleshooting. - `ResponseType CustomerUnmaskedV1ResponseType` 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. - `const CustomerUnmaskedV1ResponseTypeObject CustomerUnmaskedV1ResponseType = "object"` - `const CustomerUnmaskedV1ResponseTypeArray CustomerUnmaskedV1ResponseType = "array"` - `const CustomerUnmaskedV1ResponseTypeError CustomerUnmaskedV1ResponseType = "error"` - `const CustomerUnmaskedV1ResponseTypeNone CustomerUnmaskedV1ResponseType = "none"` ### Customer V1 - `type CustomerV1 struct{…}` - `Data CustomerV1Data` - `ID string` Unique identifier for the customer. - `CreatedAt Time` Timestamp of when the customer record was created. - `Email string` The customer's email address. - `Name string` Full name of the individual or business name. - `Phone string` The customer's phone number in E.164 format. - `Status string` - `const CustomerV1DataStatusPending CustomerV1DataStatus = "pending"` - `const CustomerV1DataStatusReview CustomerV1DataStatus = "review"` - `const CustomerV1DataStatusVerified CustomerV1DataStatus = "verified"` - `const CustomerV1DataStatusInactive CustomerV1DataStatus = "inactive"` - `const CustomerV1DataStatusRejected CustomerV1DataStatus = "rejected"` - `Type string` - `const CustomerV1DataTypeIndividual CustomerV1DataType = "individual"` - `const CustomerV1DataTypeBusiness CustomerV1DataType = "business"` - `UpdatedAt Time` Timestamp of the most recent update to the customer record. - `Address CustomerAddressV1` An object containing the customer's address. This is optional, but if provided, all required fields must be present. - `Address1 string` Primary address line (e.g., street, PO Box). - `City string` City, district, suburb, town, or village. - `State string` Two-letter state code. - `Zip string` Zip or postal code. - `Address2 string` Secondary address line (e.g., apartment, suite, unit, or building). - `ComplianceProfile CustomerV1DataComplianceProfileUnion` PII required to trigger Patriot Act compliant KYC verification. - `type CustomerV1DataComplianceProfileIndividualComplianceProfile struct{…}` PII required to trigger Patriot Act compliant KYC verification. - `Dob Time` Masked date of birth in ****-**-** format. - `Ssn string` Masked Social Security Number in the format ***-**-*\***. - `type CustomerV1DataComplianceProfileBusinessComplianceProfile struct{…}` Business registration data required to trigger Patriot Act compliant KYB verification. - `Ein string` Masked Employer Identification Number in the format **-**\***** - `LegalBusinessName string` The official registered name of the business. This name should be correlated with the `ein` value. - `Representatives []CustomerV1DataComplianceProfileBusinessComplianceProfileRepresentative` A list of people related to the company. Only valid where customer type is 'business'. - `Name string` - `Email string` - `Phone string` - `Website string` Official business website URL. Optional but recommended for enhanced KYB. - `Config CustomerV1DataConfig` - `ProcessingMethod string` - `const CustomerV1DataConfigProcessingMethodInline CustomerV1DataConfigProcessingMethod = "inline"` - `const CustomerV1DataConfigProcessingMethodBackground CustomerV1DataConfigProcessingMethod = "background"` - `const CustomerV1DataConfigProcessingMethodSkip CustomerV1DataConfigProcessingMethod = "skip"` - `SandboxOutcome string` - `const CustomerV1DataConfigSandboxOutcomeStandard CustomerV1DataConfigSandboxOutcome = "standard"` - `const CustomerV1DataConfigSandboxOutcomeVerified CustomerV1DataConfigSandboxOutcome = "verified"` - `const CustomerV1DataConfigSandboxOutcomeRejected CustomerV1DataConfigSandboxOutcome = "rejected"` - `const CustomerV1DataConfigSandboxOutcomeReview CustomerV1DataConfigSandboxOutcome = "review"` - `Device CustomerV1DataDevice` - `IPAddress string` The customer's IP address at the time of profile creation. Use `0.0.0.0` to represent an offline customer registration. - `ExternalID string` Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `Metadata map[string, string]` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format. - `Meta ResponseMetadata` Metadata about the API request, including an identifier and timestamp. - `APIRequestID string` Unique identifier for this API request, useful for troubleshooting. - `APIRequestTimestamp Time` Timestamp for this API request, useful for troubleshooting. - `ResponseType CustomerV1ResponseType` 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. - `const CustomerV1ResponseTypeObject CustomerV1ResponseType = "object"` - `const CustomerV1ResponseTypeArray CustomerV1ResponseType = "array"` - `const CustomerV1ResponseTypeError CustomerV1ResponseType = "error"` - `const CustomerV1ResponseTypeNone CustomerV1ResponseType = "none"` ### Device Unmasked V1 - `type DeviceUnmaskedV1 struct{…}` - `IPAddress string` 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 `client.Customers.Review.Get(ctx, id, query) (*CustomerReviewV1, error)` **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 - `id string` - `query CustomerReviewGetParams` - `CorrelationID param.Field[string]` Optional client generated identifier to trace and debug a series of requests. - `RequestID param.Field[string]` Optional client generated identifier to trace and debug a request. - `StraddleAccountID param.Field[string]` For use by platforms to specify an account id and set scope of a request. ### Returns - `type CustomerReviewV1 struct{…}` - `Data CustomerReviewV1Data` - `CustomerDetails CustomerReviewV1DataCustomerDetails` - `ID string` Unique identifier for the customer. - `CreatedAt Time` Timestamp of when the customer record was created. - `Email string` The customer's email address. - `Name string` Full name of the individual or business name. - `Phone string` The customer's phone number in E.164 format. - `Status string` - `const CustomerReviewV1DataCustomerDetailsStatusPending CustomerReviewV1DataCustomerDetailsStatus = "pending"` - `const CustomerReviewV1DataCustomerDetailsStatusReview CustomerReviewV1DataCustomerDetailsStatus = "review"` - `const CustomerReviewV1DataCustomerDetailsStatusVerified CustomerReviewV1DataCustomerDetailsStatus = "verified"` - `const CustomerReviewV1DataCustomerDetailsStatusInactive CustomerReviewV1DataCustomerDetailsStatus = "inactive"` - `const CustomerReviewV1DataCustomerDetailsStatusRejected CustomerReviewV1DataCustomerDetailsStatus = "rejected"` - `Type string` - `const CustomerReviewV1DataCustomerDetailsTypeIndividual CustomerReviewV1DataCustomerDetailsType = "individual"` - `const CustomerReviewV1DataCustomerDetailsTypeBusiness CustomerReviewV1DataCustomerDetailsType = "business"` - `UpdatedAt Time` Timestamp of the most recent update to the customer record. - `Address CustomerAddressV1` An object containing the customer's address. This is optional, but if provided, all required fields must be present. - `Address1 string` Primary address line (e.g., street, PO Box). - `City string` City, district, suburb, town, or village. - `State string` Two-letter state code. - `Zip string` Zip or postal code. - `Address2 string` Secondary address line (e.g., apartment, suite, unit, or building). - `ComplianceProfile CustomerReviewV1DataCustomerDetailsComplianceProfileUnion` PII required to trigger Patriot Act compliant KYC verification. - `type CustomerReviewV1DataCustomerDetailsComplianceProfileIndividualComplianceProfile struct{…}` PII required to trigger Patriot Act compliant KYC verification. - `Dob Time` Masked date of birth in ****-**-** format. - `Ssn string` Masked Social Security Number in the format ***-**-*\***. - `type CustomerReviewV1DataCustomerDetailsComplianceProfileBusinessComplianceProfile struct{…}` Business registration data required to trigger Patriot Act compliant KYB verification. - `Ein string` Masked Employer Identification Number in the format **-**\***** - `LegalBusinessName string` The official registered name of the business. This name should be correlated with the `ein` value. - `Representatives []CustomerReviewV1DataCustomerDetailsComplianceProfileBusinessComplianceProfileRepresentative` A list of people related to the company. Only valid where customer type is 'business'. - `Name string` - `Email string` - `Phone string` - `Website string` Official business website URL. Optional but recommended for enhanced KYB. - `Config CustomerReviewV1DataCustomerDetailsConfig` - `ProcessingMethod string` - `const CustomerReviewV1DataCustomerDetailsConfigProcessingMethodInline CustomerReviewV1DataCustomerDetailsConfigProcessingMethod = "inline"` - `const CustomerReviewV1DataCustomerDetailsConfigProcessingMethodBackground CustomerReviewV1DataCustomerDetailsConfigProcessingMethod = "background"` - `const CustomerReviewV1DataCustomerDetailsConfigProcessingMethodSkip CustomerReviewV1DataCustomerDetailsConfigProcessingMethod = "skip"` - `SandboxOutcome string` - `const CustomerReviewV1DataCustomerDetailsConfigSandboxOutcomeStandard CustomerReviewV1DataCustomerDetailsConfigSandboxOutcome = "standard"` - `const CustomerReviewV1DataCustomerDetailsConfigSandboxOutcomeVerified CustomerReviewV1DataCustomerDetailsConfigSandboxOutcome = "verified"` - `const CustomerReviewV1DataCustomerDetailsConfigSandboxOutcomeRejected CustomerReviewV1DataCustomerDetailsConfigSandboxOutcome = "rejected"` - `const CustomerReviewV1DataCustomerDetailsConfigSandboxOutcomeReview CustomerReviewV1DataCustomerDetailsConfigSandboxOutcome = "review"` - `Device CustomerReviewV1DataCustomerDetailsDevice` - `IPAddress string` The customer's IP address at the time of profile creation. Use `0.0.0.0` to represent an offline customer registration. - `ExternalID string` Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `Metadata map[string, string]` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format. - `IdentityDetails CustomerReviewV1DataIdentityDetails` - `Breakdown CustomerReviewV1DataIdentityDetailsBreakdown` Detailed breakdown of the customer verification results, including decisions, risk scores, correlation score, and more. - `Address IdentityVerificationBreakdownV1` - `Codes []string` List of specific result codes from the fraud and risk screening. - `Correlation IdentityVerificationBreakdownV1Correlation` - `const IdentityVerificationBreakdownV1CorrelationLowConfidence IdentityVerificationBreakdownV1Correlation = "low_confidence"` - `const IdentityVerificationBreakdownV1CorrelationPotentialMatch IdentityVerificationBreakdownV1Correlation = "potential_match"` - `const IdentityVerificationBreakdownV1CorrelationLikelyMatch IdentityVerificationBreakdownV1Correlation = "likely_match"` - `const IdentityVerificationBreakdownV1CorrelationHighConfidence IdentityVerificationBreakdownV1Correlation = "high_confidence"` - `CorrelationScore float64` Represents the strength of the correlation between provided and known information. A higher score indicates a stronger correlation. - `Decision IdentityVerificationBreakdownV1Decision` - `const IdentityVerificationBreakdownV1DecisionAccept IdentityVerificationBreakdownV1Decision = "accept"` - `const IdentityVerificationBreakdownV1DecisionReject IdentityVerificationBreakdownV1Decision = "reject"` - `const IdentityVerificationBreakdownV1DecisionReview IdentityVerificationBreakdownV1Decision = "review"` - `RiskScore float64` Predicts the inherent risk associated with the customer for a given module. A higher score indicates a greater likelihood of fraud. - `BusinessEvaluation IdentityVerificationBreakdownV1` - `BusinessIdentification IdentityVerificationBreakdownV1` - `BusinessValidation IdentityVerificationBreakdownV1` - `Email IdentityVerificationBreakdownV1` - `Fraud IdentityVerificationBreakdownV1` - `Phone IdentityVerificationBreakdownV1` - `Synthetic IdentityVerificationBreakdownV1` - `CreatedAt Time` Timestamp of when the review was initiated. - `Decision string` - `const CustomerReviewV1DataIdentityDetailsDecisionAccept CustomerReviewV1DataIdentityDetailsDecision = "accept"` - `const CustomerReviewV1DataIdentityDetailsDecisionReject CustomerReviewV1DataIdentityDetailsDecision = "reject"` - `const CustomerReviewV1DataIdentityDetailsDecisionReview CustomerReviewV1DataIdentityDetailsDecision = "review"` - `ReviewID string` Unique identifier for the review. - `UpdatedAt Time` Timestamp of the most recent update to the review. - `KYC CustomerReviewV1DataIdentityDetailsKYC` - `Validations CustomerReviewV1DataIdentityDetailsKYCValidations` Boolean values indicating the result of each validation in the KYC process. - `Address bool` - `City bool` - `Dob bool` - `Email bool` - `FirstName bool` - `LastName bool` - `Phone bool` - `Ssn bool` - `State bool` - `Zip bool` - `Codes []string` List of specific result codes from the KYC screening process. - `Decision string` - `const CustomerReviewV1DataIdentityDetailsKYCDecisionAccept CustomerReviewV1DataIdentityDetailsKYCDecision = "accept"` - `const CustomerReviewV1DataIdentityDetailsKYCDecisionReject CustomerReviewV1DataIdentityDetailsKYCDecision = "reject"` - `const CustomerReviewV1DataIdentityDetailsKYCDecisionReview CustomerReviewV1DataIdentityDetailsKYCDecision = "review"` - `Messages map[string, string]` Dictionary of all messages from the customer verification process. - `NetworkAlerts CustomerReviewV1DataIdentityDetailsNetworkAlerts` - `Alerts []string` Any alerts or flags raised during the consortium alert screening. - `Codes []string` List of specific result codes from the consortium alert screening. - `Decision string` - `const CustomerReviewV1DataIdentityDetailsNetworkAlertsDecisionAccept CustomerReviewV1DataIdentityDetailsNetworkAlertsDecision = "accept"` - `const CustomerReviewV1DataIdentityDetailsNetworkAlertsDecisionReject CustomerReviewV1DataIdentityDetailsNetworkAlertsDecision = "reject"` - `const CustomerReviewV1DataIdentityDetailsNetworkAlertsDecisionReview CustomerReviewV1DataIdentityDetailsNetworkAlertsDecision = "review"` - `Reputation CustomerReviewV1DataIdentityDetailsReputation` - `Codes []string` Specific codes related to the Straddle reputation screening results. - `Decision string` - `const CustomerReviewV1DataIdentityDetailsReputationDecisionAccept CustomerReviewV1DataIdentityDetailsReputationDecision = "accept"` - `const CustomerReviewV1DataIdentityDetailsReputationDecisionReject CustomerReviewV1DataIdentityDetailsReputationDecision = "reject"` - `const CustomerReviewV1DataIdentityDetailsReputationDecisionReview CustomerReviewV1DataIdentityDetailsReputationDecision = "review"` - `Insights CustomerReviewV1DataIdentityDetailsReputationInsights` - `AccountsActiveCount int64` - `AccountsClosedCount int64` - `AccountsClosedDates []Time` - `AccountsCount int64` - `AccountsFraudCount int64` - `AccountsFraudLabeledDates []Time` - `AccountsFraudLossTotalAmount float64` - `ACHFraudTransactionsCount int64` - `ACHFraudTransactionsDates []Time` - `ACHFraudTransactionsTotalAmount float64` - `ACHReturnedTransactionsCount int64` - `ACHReturnedTransactionsDates []Time` - `ACHReturnedTransactionsTotalAmount float64` - `ApplicationsApprovedCount int64` - `ApplicationsCount int64` - `ApplicationsDates []Time` - `ApplicationsDeclinedCount int64` - `ApplicationsFraudCount int64` - `CardDisputedTransactionsCount int64` - `CardDisputedTransactionsDates []Time` - `CardDisputedTransactionsTotalAmount float64` - `CardFraudTransactionsCount int64` - `CardFraudTransactionsDates []Time` - `CardFraudTransactionsTotalAmount float64` - `CardStoppedTransactionsCount int64` - `CardStoppedTransactionsDates []Time` - `UserActiveProfileCount int64` - `UserAddressCount int64` - `UserClosedProfileCount int64` - `UserDobCount int64` - `UserEmailCount int64` - `UserInstitutionCount int64` - `UserMobileCount int64` - `RiskScore float64` - `WatchList CustomerReviewV1DataIdentityDetailsWatchList` - `Codes []string` Specific codes related to the Straddle watchlist screening results. - `Decision string` - `const CustomerReviewV1DataIdentityDetailsWatchListDecisionAccept CustomerReviewV1DataIdentityDetailsWatchListDecision = "accept"` - `const CustomerReviewV1DataIdentityDetailsWatchListDecisionReject CustomerReviewV1DataIdentityDetailsWatchListDecision = "reject"` - `const CustomerReviewV1DataIdentityDetailsWatchListDecisionReview CustomerReviewV1DataIdentityDetailsWatchListDecision = "review"` - `Matched []string` Information about any matches found during screening. - `Matches []CustomerReviewV1DataIdentityDetailsWatchListMatch` Information about any matches found during screening. - `Correlation string` - `const CustomerReviewV1DataIdentityDetailsWatchListMatchCorrelationLowConfidence CustomerReviewV1DataIdentityDetailsWatchListMatchCorrelation = "low_confidence"` - `const CustomerReviewV1DataIdentityDetailsWatchListMatchCorrelationPotentialMatch CustomerReviewV1DataIdentityDetailsWatchListMatchCorrelation = "potential_match"` - `const CustomerReviewV1DataIdentityDetailsWatchListMatchCorrelationLikelyMatch CustomerReviewV1DataIdentityDetailsWatchListMatchCorrelation = "likely_match"` - `const CustomerReviewV1DataIdentityDetailsWatchListMatchCorrelationHighConfidence CustomerReviewV1DataIdentityDetailsWatchListMatchCorrelation = "high_confidence"` - `ListName string` The name of the list the match was found. - `MatchFields []string` Data fields that matched. - `URLs []string` Relevent Urls to review. - `Meta ResponseMetadata` Metadata about the API request, including an identifier and timestamp. - `APIRequestID string` Unique identifier for this API request, useful for troubleshooting. - `APIRequestTimestamp Time` Timestamp for this API request, useful for troubleshooting. - `ResponseType CustomerReviewV1ResponseType` 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. - `const CustomerReviewV1ResponseTypeObject CustomerReviewV1ResponseType = "object"` - `const CustomerReviewV1ResponseTypeArray CustomerReviewV1ResponseType = "array"` - `const CustomerReviewV1ResponseTypeError CustomerReviewV1ResponseType = "error"` - `const CustomerReviewV1ResponseTypeNone CustomerReviewV1ResponseType = "none"` ### Example ```go package main import ( "context" "fmt" "github.com/straddleio/straddle-go" "github.com/straddleio/straddle-go/option" ) func main() { client := straddle.NewClient( option.WithAPIKey("My API Key"), ) customerReviewV1, err := client.Customers.Review.Get( context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", straddle.CustomerReviewGetParams{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", customerReviewV1.Data) } ``` #### 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 `client.Customers.Review.Decision(ctx, id, params) (*CustomerV1, error)` **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 - `id string` - `params CustomerReviewDecisionParams` - `Status param.Field[CustomerReviewDecisionParamsStatus]` Body param: The final status of the customer review. - `const CustomerReviewDecisionParamsStatusVerified CustomerReviewDecisionParamsStatus = "verified"` - `const CustomerReviewDecisionParamsStatusRejected CustomerReviewDecisionParamsStatus = "rejected"` - `CorrelationID param.Field[string]` Header param: Optional client generated identifier to trace and debug a series of requests. - `IdempotencyKey param.Field[string]` Header param: Optional client generated value to use for idempotent requests. - `RequestID param.Field[string]` Header param: Optional client generated identifier to trace and debug a request. - `StraddleAccountID param.Field[string]` Header param: For use by platforms to specify an account id and set scope of a request. ### Returns - `type CustomerV1 struct{…}` - `Data CustomerV1Data` - `ID string` Unique identifier for the customer. - `CreatedAt Time` Timestamp of when the customer record was created. - `Email string` The customer's email address. - `Name string` Full name of the individual or business name. - `Phone string` The customer's phone number in E.164 format. - `Status string` - `const CustomerV1DataStatusPending CustomerV1DataStatus = "pending"` - `const CustomerV1DataStatusReview CustomerV1DataStatus = "review"` - `const CustomerV1DataStatusVerified CustomerV1DataStatus = "verified"` - `const CustomerV1DataStatusInactive CustomerV1DataStatus = "inactive"` - `const CustomerV1DataStatusRejected CustomerV1DataStatus = "rejected"` - `Type string` - `const CustomerV1DataTypeIndividual CustomerV1DataType = "individual"` - `const CustomerV1DataTypeBusiness CustomerV1DataType = "business"` - `UpdatedAt Time` Timestamp of the most recent update to the customer record. - `Address CustomerAddressV1` An object containing the customer's address. This is optional, but if provided, all required fields must be present. - `Address1 string` Primary address line (e.g., street, PO Box). - `City string` City, district, suburb, town, or village. - `State string` Two-letter state code. - `Zip string` Zip or postal code. - `Address2 string` Secondary address line (e.g., apartment, suite, unit, or building). - `ComplianceProfile CustomerV1DataComplianceProfileUnion` PII required to trigger Patriot Act compliant KYC verification. - `type CustomerV1DataComplianceProfileIndividualComplianceProfile struct{…}` PII required to trigger Patriot Act compliant KYC verification. - `Dob Time` Masked date of birth in ****-**-** format. - `Ssn string` Masked Social Security Number in the format ***-**-*\***. - `type CustomerV1DataComplianceProfileBusinessComplianceProfile struct{…}` Business registration data required to trigger Patriot Act compliant KYB verification. - `Ein string` Masked Employer Identification Number in the format **-**\***** - `LegalBusinessName string` The official registered name of the business. This name should be correlated with the `ein` value. - `Representatives []CustomerV1DataComplianceProfileBusinessComplianceProfileRepresentative` A list of people related to the company. Only valid where customer type is 'business'. - `Name string` - `Email string` - `Phone string` - `Website string` Official business website URL. Optional but recommended for enhanced KYB. - `Config CustomerV1DataConfig` - `ProcessingMethod string` - `const CustomerV1DataConfigProcessingMethodInline CustomerV1DataConfigProcessingMethod = "inline"` - `const CustomerV1DataConfigProcessingMethodBackground CustomerV1DataConfigProcessingMethod = "background"` - `const CustomerV1DataConfigProcessingMethodSkip CustomerV1DataConfigProcessingMethod = "skip"` - `SandboxOutcome string` - `const CustomerV1DataConfigSandboxOutcomeStandard CustomerV1DataConfigSandboxOutcome = "standard"` - `const CustomerV1DataConfigSandboxOutcomeVerified CustomerV1DataConfigSandboxOutcome = "verified"` - `const CustomerV1DataConfigSandboxOutcomeRejected CustomerV1DataConfigSandboxOutcome = "rejected"` - `const CustomerV1DataConfigSandboxOutcomeReview CustomerV1DataConfigSandboxOutcome = "review"` - `Device CustomerV1DataDevice` - `IPAddress string` The customer's IP address at the time of profile creation. Use `0.0.0.0` to represent an offline customer registration. - `ExternalID string` Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `Metadata map[string, string]` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format. - `Meta ResponseMetadata` Metadata about the API request, including an identifier and timestamp. - `APIRequestID string` Unique identifier for this API request, useful for troubleshooting. - `APIRequestTimestamp Time` Timestamp for this API request, useful for troubleshooting. - `ResponseType CustomerV1ResponseType` 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. - `const CustomerV1ResponseTypeObject CustomerV1ResponseType = "object"` - `const CustomerV1ResponseTypeArray CustomerV1ResponseType = "array"` - `const CustomerV1ResponseTypeError CustomerV1ResponseType = "error"` - `const CustomerV1ResponseTypeNone CustomerV1ResponseType = "none"` ### Example ```go package main import ( "context" "fmt" "github.com/straddleio/straddle-go" "github.com/straddleio/straddle-go/option" ) func main() { client := straddle.NewClient( option.WithAPIKey("My API Key"), ) customerV1, err := client.Customers.Review.Decision( context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", straddle.CustomerReviewDecisionParams{ Status: straddle.CustomerReviewDecisionParamsStatusVerified, }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", customerV1.Data) } ``` #### 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 `client.Customers.Review.RefreshReview(ctx, id, body) (*CustomerV1, error)` **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 - `id string` - `body CustomerReviewRefreshReviewParams` - `CorrelationID param.Field[string]` Optional client generated identifier to trace and debug a series of requests. - `IdempotencyKey param.Field[string]` Optional client generated value to use for idempotent requests. - `RequestID param.Field[string]` Optional client generated identifier to trace and debug a request. - `StraddleAccountID param.Field[string]` For use by platforms to specify an account id and set scope of a request. ### Returns - `type CustomerV1 struct{…}` - `Data CustomerV1Data` - `ID string` Unique identifier for the customer. - `CreatedAt Time` Timestamp of when the customer record was created. - `Email string` The customer's email address. - `Name string` Full name of the individual or business name. - `Phone string` The customer's phone number in E.164 format. - `Status string` - `const CustomerV1DataStatusPending CustomerV1DataStatus = "pending"` - `const CustomerV1DataStatusReview CustomerV1DataStatus = "review"` - `const CustomerV1DataStatusVerified CustomerV1DataStatus = "verified"` - `const CustomerV1DataStatusInactive CustomerV1DataStatus = "inactive"` - `const CustomerV1DataStatusRejected CustomerV1DataStatus = "rejected"` - `Type string` - `const CustomerV1DataTypeIndividual CustomerV1DataType = "individual"` - `const CustomerV1DataTypeBusiness CustomerV1DataType = "business"` - `UpdatedAt Time` Timestamp of the most recent update to the customer record. - `Address CustomerAddressV1` An object containing the customer's address. This is optional, but if provided, all required fields must be present. - `Address1 string` Primary address line (e.g., street, PO Box). - `City string` City, district, suburb, town, or village. - `State string` Two-letter state code. - `Zip string` Zip or postal code. - `Address2 string` Secondary address line (e.g., apartment, suite, unit, or building). - `ComplianceProfile CustomerV1DataComplianceProfileUnion` PII required to trigger Patriot Act compliant KYC verification. - `type CustomerV1DataComplianceProfileIndividualComplianceProfile struct{…}` PII required to trigger Patriot Act compliant KYC verification. - `Dob Time` Masked date of birth in ****-**-** format. - `Ssn string` Masked Social Security Number in the format ***-**-*\***. - `type CustomerV1DataComplianceProfileBusinessComplianceProfile struct{…}` Business registration data required to trigger Patriot Act compliant KYB verification. - `Ein string` Masked Employer Identification Number in the format **-**\***** - `LegalBusinessName string` The official registered name of the business. This name should be correlated with the `ein` value. - `Representatives []CustomerV1DataComplianceProfileBusinessComplianceProfileRepresentative` A list of people related to the company. Only valid where customer type is 'business'. - `Name string` - `Email string` - `Phone string` - `Website string` Official business website URL. Optional but recommended for enhanced KYB. - `Config CustomerV1DataConfig` - `ProcessingMethod string` - `const CustomerV1DataConfigProcessingMethodInline CustomerV1DataConfigProcessingMethod = "inline"` - `const CustomerV1DataConfigProcessingMethodBackground CustomerV1DataConfigProcessingMethod = "background"` - `const CustomerV1DataConfigProcessingMethodSkip CustomerV1DataConfigProcessingMethod = "skip"` - `SandboxOutcome string` - `const CustomerV1DataConfigSandboxOutcomeStandard CustomerV1DataConfigSandboxOutcome = "standard"` - `const CustomerV1DataConfigSandboxOutcomeVerified CustomerV1DataConfigSandboxOutcome = "verified"` - `const CustomerV1DataConfigSandboxOutcomeRejected CustomerV1DataConfigSandboxOutcome = "rejected"` - `const CustomerV1DataConfigSandboxOutcomeReview CustomerV1DataConfigSandboxOutcome = "review"` - `Device CustomerV1DataDevice` - `IPAddress string` The customer's IP address at the time of profile creation. Use `0.0.0.0` to represent an offline customer registration. - `ExternalID string` Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `Metadata map[string, string]` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format. - `Meta ResponseMetadata` Metadata about the API request, including an identifier and timestamp. - `APIRequestID string` Unique identifier for this API request, useful for troubleshooting. - `APIRequestTimestamp Time` Timestamp for this API request, useful for troubleshooting. - `ResponseType CustomerV1ResponseType` 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. - `const CustomerV1ResponseTypeObject CustomerV1ResponseType = "object"` - `const CustomerV1ResponseTypeArray CustomerV1ResponseType = "array"` - `const CustomerV1ResponseTypeError CustomerV1ResponseType = "error"` - `const CustomerV1ResponseTypeNone CustomerV1ResponseType = "none"` ### Example ```go package main import ( "context" "fmt" "github.com/straddleio/straddle-go" "github.com/straddleio/straddle-go/option" ) func main() { client := straddle.NewClient( option.WithAPIKey("My API Key"), ) customerV1, err := client.Customers.Review.RefreshReview( context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", straddle.CustomerReviewRefreshReviewParams{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", customerV1.Data) } ``` #### 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 - `type CustomerReviewV1 struct{…}` - `Data CustomerReviewV1Data` - `CustomerDetails CustomerReviewV1DataCustomerDetails` - `ID string` Unique identifier for the customer. - `CreatedAt Time` Timestamp of when the customer record was created. - `Email string` The customer's email address. - `Name string` Full name of the individual or business name. - `Phone string` The customer's phone number in E.164 format. - `Status string` - `const CustomerReviewV1DataCustomerDetailsStatusPending CustomerReviewV1DataCustomerDetailsStatus = "pending"` - `const CustomerReviewV1DataCustomerDetailsStatusReview CustomerReviewV1DataCustomerDetailsStatus = "review"` - `const CustomerReviewV1DataCustomerDetailsStatusVerified CustomerReviewV1DataCustomerDetailsStatus = "verified"` - `const CustomerReviewV1DataCustomerDetailsStatusInactive CustomerReviewV1DataCustomerDetailsStatus = "inactive"` - `const CustomerReviewV1DataCustomerDetailsStatusRejected CustomerReviewV1DataCustomerDetailsStatus = "rejected"` - `Type string` - `const CustomerReviewV1DataCustomerDetailsTypeIndividual CustomerReviewV1DataCustomerDetailsType = "individual"` - `const CustomerReviewV1DataCustomerDetailsTypeBusiness CustomerReviewV1DataCustomerDetailsType = "business"` - `UpdatedAt Time` Timestamp of the most recent update to the customer record. - `Address CustomerAddressV1` An object containing the customer's address. This is optional, but if provided, all required fields must be present. - `Address1 string` Primary address line (e.g., street, PO Box). - `City string` City, district, suburb, town, or village. - `State string` Two-letter state code. - `Zip string` Zip or postal code. - `Address2 string` Secondary address line (e.g., apartment, suite, unit, or building). - `ComplianceProfile CustomerReviewV1DataCustomerDetailsComplianceProfileUnion` PII required to trigger Patriot Act compliant KYC verification. - `type CustomerReviewV1DataCustomerDetailsComplianceProfileIndividualComplianceProfile struct{…}` PII required to trigger Patriot Act compliant KYC verification. - `Dob Time` Masked date of birth in ****-**-** format. - `Ssn string` Masked Social Security Number in the format ***-**-*\***. - `type CustomerReviewV1DataCustomerDetailsComplianceProfileBusinessComplianceProfile struct{…}` Business registration data required to trigger Patriot Act compliant KYB verification. - `Ein string` Masked Employer Identification Number in the format **-**\***** - `LegalBusinessName string` The official registered name of the business. This name should be correlated with the `ein` value. - `Representatives []CustomerReviewV1DataCustomerDetailsComplianceProfileBusinessComplianceProfileRepresentative` A list of people related to the company. Only valid where customer type is 'business'. - `Name string` - `Email string` - `Phone string` - `Website string` Official business website URL. Optional but recommended for enhanced KYB. - `Config CustomerReviewV1DataCustomerDetailsConfig` - `ProcessingMethod string` - `const CustomerReviewV1DataCustomerDetailsConfigProcessingMethodInline CustomerReviewV1DataCustomerDetailsConfigProcessingMethod = "inline"` - `const CustomerReviewV1DataCustomerDetailsConfigProcessingMethodBackground CustomerReviewV1DataCustomerDetailsConfigProcessingMethod = "background"` - `const CustomerReviewV1DataCustomerDetailsConfigProcessingMethodSkip CustomerReviewV1DataCustomerDetailsConfigProcessingMethod = "skip"` - `SandboxOutcome string` - `const CustomerReviewV1DataCustomerDetailsConfigSandboxOutcomeStandard CustomerReviewV1DataCustomerDetailsConfigSandboxOutcome = "standard"` - `const CustomerReviewV1DataCustomerDetailsConfigSandboxOutcomeVerified CustomerReviewV1DataCustomerDetailsConfigSandboxOutcome = "verified"` - `const CustomerReviewV1DataCustomerDetailsConfigSandboxOutcomeRejected CustomerReviewV1DataCustomerDetailsConfigSandboxOutcome = "rejected"` - `const CustomerReviewV1DataCustomerDetailsConfigSandboxOutcomeReview CustomerReviewV1DataCustomerDetailsConfigSandboxOutcome = "review"` - `Device CustomerReviewV1DataCustomerDetailsDevice` - `IPAddress string` The customer's IP address at the time of profile creation. Use `0.0.0.0` to represent an offline customer registration. - `ExternalID string` Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `Metadata map[string, string]` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format. - `IdentityDetails CustomerReviewV1DataIdentityDetails` - `Breakdown CustomerReviewV1DataIdentityDetailsBreakdown` Detailed breakdown of the customer verification results, including decisions, risk scores, correlation score, and more. - `Address IdentityVerificationBreakdownV1` - `Codes []string` List of specific result codes from the fraud and risk screening. - `Correlation IdentityVerificationBreakdownV1Correlation` - `const IdentityVerificationBreakdownV1CorrelationLowConfidence IdentityVerificationBreakdownV1Correlation = "low_confidence"` - `const IdentityVerificationBreakdownV1CorrelationPotentialMatch IdentityVerificationBreakdownV1Correlation = "potential_match"` - `const IdentityVerificationBreakdownV1CorrelationLikelyMatch IdentityVerificationBreakdownV1Correlation = "likely_match"` - `const IdentityVerificationBreakdownV1CorrelationHighConfidence IdentityVerificationBreakdownV1Correlation = "high_confidence"` - `CorrelationScore float64` Represents the strength of the correlation between provided and known information. A higher score indicates a stronger correlation. - `Decision IdentityVerificationBreakdownV1Decision` - `const IdentityVerificationBreakdownV1DecisionAccept IdentityVerificationBreakdownV1Decision = "accept"` - `const IdentityVerificationBreakdownV1DecisionReject IdentityVerificationBreakdownV1Decision = "reject"` - `const IdentityVerificationBreakdownV1DecisionReview IdentityVerificationBreakdownV1Decision = "review"` - `RiskScore float64` Predicts the inherent risk associated with the customer for a given module. A higher score indicates a greater likelihood of fraud. - `BusinessEvaluation IdentityVerificationBreakdownV1` - `BusinessIdentification IdentityVerificationBreakdownV1` - `BusinessValidation IdentityVerificationBreakdownV1` - `Email IdentityVerificationBreakdownV1` - `Fraud IdentityVerificationBreakdownV1` - `Phone IdentityVerificationBreakdownV1` - `Synthetic IdentityVerificationBreakdownV1` - `CreatedAt Time` Timestamp of when the review was initiated. - `Decision string` - `const CustomerReviewV1DataIdentityDetailsDecisionAccept CustomerReviewV1DataIdentityDetailsDecision = "accept"` - `const CustomerReviewV1DataIdentityDetailsDecisionReject CustomerReviewV1DataIdentityDetailsDecision = "reject"` - `const CustomerReviewV1DataIdentityDetailsDecisionReview CustomerReviewV1DataIdentityDetailsDecision = "review"` - `ReviewID string` Unique identifier for the review. - `UpdatedAt Time` Timestamp of the most recent update to the review. - `KYC CustomerReviewV1DataIdentityDetailsKYC` - `Validations CustomerReviewV1DataIdentityDetailsKYCValidations` Boolean values indicating the result of each validation in the KYC process. - `Address bool` - `City bool` - `Dob bool` - `Email bool` - `FirstName bool` - `LastName bool` - `Phone bool` - `Ssn bool` - `State bool` - `Zip bool` - `Codes []string` List of specific result codes from the KYC screening process. - `Decision string` - `const CustomerReviewV1DataIdentityDetailsKYCDecisionAccept CustomerReviewV1DataIdentityDetailsKYCDecision = "accept"` - `const CustomerReviewV1DataIdentityDetailsKYCDecisionReject CustomerReviewV1DataIdentityDetailsKYCDecision = "reject"` - `const CustomerReviewV1DataIdentityDetailsKYCDecisionReview CustomerReviewV1DataIdentityDetailsKYCDecision = "review"` - `Messages map[string, string]` Dictionary of all messages from the customer verification process. - `NetworkAlerts CustomerReviewV1DataIdentityDetailsNetworkAlerts` - `Alerts []string` Any alerts or flags raised during the consortium alert screening. - `Codes []string` List of specific result codes from the consortium alert screening. - `Decision string` - `const CustomerReviewV1DataIdentityDetailsNetworkAlertsDecisionAccept CustomerReviewV1DataIdentityDetailsNetworkAlertsDecision = "accept"` - `const CustomerReviewV1DataIdentityDetailsNetworkAlertsDecisionReject CustomerReviewV1DataIdentityDetailsNetworkAlertsDecision = "reject"` - `const CustomerReviewV1DataIdentityDetailsNetworkAlertsDecisionReview CustomerReviewV1DataIdentityDetailsNetworkAlertsDecision = "review"` - `Reputation CustomerReviewV1DataIdentityDetailsReputation` - `Codes []string` Specific codes related to the Straddle reputation screening results. - `Decision string` - `const CustomerReviewV1DataIdentityDetailsReputationDecisionAccept CustomerReviewV1DataIdentityDetailsReputationDecision = "accept"` - `const CustomerReviewV1DataIdentityDetailsReputationDecisionReject CustomerReviewV1DataIdentityDetailsReputationDecision = "reject"` - `const CustomerReviewV1DataIdentityDetailsReputationDecisionReview CustomerReviewV1DataIdentityDetailsReputationDecision = "review"` - `Insights CustomerReviewV1DataIdentityDetailsReputationInsights` - `AccountsActiveCount int64` - `AccountsClosedCount int64` - `AccountsClosedDates []Time` - `AccountsCount int64` - `AccountsFraudCount int64` - `AccountsFraudLabeledDates []Time` - `AccountsFraudLossTotalAmount float64` - `ACHFraudTransactionsCount int64` - `ACHFraudTransactionsDates []Time` - `ACHFraudTransactionsTotalAmount float64` - `ACHReturnedTransactionsCount int64` - `ACHReturnedTransactionsDates []Time` - `ACHReturnedTransactionsTotalAmount float64` - `ApplicationsApprovedCount int64` - `ApplicationsCount int64` - `ApplicationsDates []Time` - `ApplicationsDeclinedCount int64` - `ApplicationsFraudCount int64` - `CardDisputedTransactionsCount int64` - `CardDisputedTransactionsDates []Time` - `CardDisputedTransactionsTotalAmount float64` - `CardFraudTransactionsCount int64` - `CardFraudTransactionsDates []Time` - `CardFraudTransactionsTotalAmount float64` - `CardStoppedTransactionsCount int64` - `CardStoppedTransactionsDates []Time` - `UserActiveProfileCount int64` - `UserAddressCount int64` - `UserClosedProfileCount int64` - `UserDobCount int64` - `UserEmailCount int64` - `UserInstitutionCount int64` - `UserMobileCount int64` - `RiskScore float64` - `WatchList CustomerReviewV1DataIdentityDetailsWatchList` - `Codes []string` Specific codes related to the Straddle watchlist screening results. - `Decision string` - `const CustomerReviewV1DataIdentityDetailsWatchListDecisionAccept CustomerReviewV1DataIdentityDetailsWatchListDecision = "accept"` - `const CustomerReviewV1DataIdentityDetailsWatchListDecisionReject CustomerReviewV1DataIdentityDetailsWatchListDecision = "reject"` - `const CustomerReviewV1DataIdentityDetailsWatchListDecisionReview CustomerReviewV1DataIdentityDetailsWatchListDecision = "review"` - `Matched []string` Information about any matches found during screening. - `Matches []CustomerReviewV1DataIdentityDetailsWatchListMatch` Information about any matches found during screening. - `Correlation string` - `const CustomerReviewV1DataIdentityDetailsWatchListMatchCorrelationLowConfidence CustomerReviewV1DataIdentityDetailsWatchListMatchCorrelation = "low_confidence"` - `const CustomerReviewV1DataIdentityDetailsWatchListMatchCorrelationPotentialMatch CustomerReviewV1DataIdentityDetailsWatchListMatchCorrelation = "potential_match"` - `const CustomerReviewV1DataIdentityDetailsWatchListMatchCorrelationLikelyMatch CustomerReviewV1DataIdentityDetailsWatchListMatchCorrelation = "likely_match"` - `const CustomerReviewV1DataIdentityDetailsWatchListMatchCorrelationHighConfidence CustomerReviewV1DataIdentityDetailsWatchListMatchCorrelation = "high_confidence"` - `ListName string` The name of the list the match was found. - `MatchFields []string` Data fields that matched. - `URLs []string` Relevent Urls to review. - `Meta ResponseMetadata` Metadata about the API request, including an identifier and timestamp. - `APIRequestID string` Unique identifier for this API request, useful for troubleshooting. - `APIRequestTimestamp Time` Timestamp for this API request, useful for troubleshooting. - `ResponseType CustomerReviewV1ResponseType` 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. - `const CustomerReviewV1ResponseTypeObject CustomerReviewV1ResponseType = "object"` - `const CustomerReviewV1ResponseTypeArray CustomerReviewV1ResponseType = "array"` - `const CustomerReviewV1ResponseTypeError CustomerReviewV1ResponseType = "error"` - `const CustomerReviewV1ResponseTypeNone CustomerReviewV1ResponseType = "none"` ### Identity Verification Breakdown V1 - `type IdentityVerificationBreakdownV1 struct{…}` - `Codes []string` List of specific result codes from the fraud and risk screening. - `Correlation IdentityVerificationBreakdownV1Correlation` - `const IdentityVerificationBreakdownV1CorrelationLowConfidence IdentityVerificationBreakdownV1Correlation = "low_confidence"` - `const IdentityVerificationBreakdownV1CorrelationPotentialMatch IdentityVerificationBreakdownV1Correlation = "potential_match"` - `const IdentityVerificationBreakdownV1CorrelationLikelyMatch IdentityVerificationBreakdownV1Correlation = "likely_match"` - `const IdentityVerificationBreakdownV1CorrelationHighConfidence IdentityVerificationBreakdownV1Correlation = "high_confidence"` - `CorrelationScore float64` Represents the strength of the correlation between provided and known information. A higher score indicates a stronger correlation. - `Decision IdentityVerificationBreakdownV1Decision` - `const IdentityVerificationBreakdownV1DecisionAccept IdentityVerificationBreakdownV1Decision = "accept"` - `const IdentityVerificationBreakdownV1DecisionReject IdentityVerificationBreakdownV1Decision = "reject"` - `const IdentityVerificationBreakdownV1DecisionReview IdentityVerificationBreakdownV1Decision = "review"` - `RiskScore float64` Predicts the inherent risk associated with the customer for a given module. A higher score indicates a greater likelihood of fraud.