From 9a1f1c960485a2750b22b9664fe9e995d855b306 Mon Sep 17 00:00:00 2001 From: Troy Taylor <44444967+troystaylor@users.noreply.github.com> Date: Thu, 22 Dec 2022 16:45:08 -0500 Subject: [PATCH] FraudLabs Pro (Independent Publisher) (#2233) * Add files via upload * Add files via upload * Add files via upload * Add files via upload --- .../FraudLabs Pro/apiDefinition.swagger.json | 898 ++++++++++++++++++ .../FraudLabs Pro/apiProperties.json | 34 + .../FraudLabs Pro/readme.md | 21 + 3 files changed, 953 insertions(+) create mode 100644 independent-publisher-connectors/FraudLabs Pro/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/FraudLabs Pro/apiProperties.json create mode 100644 independent-publisher-connectors/FraudLabs Pro/readme.md diff --git a/independent-publisher-connectors/FraudLabs Pro/apiDefinition.swagger.json b/independent-publisher-connectors/FraudLabs Pro/apiDefinition.swagger.json new file mode 100644 index 000000000..2643036e0 --- /dev/null +++ b/independent-publisher-connectors/FraudLabs Pro/apiDefinition.swagger.json @@ -0,0 +1,898 @@ +{ + "swagger": "2.0", + "info": { + "title": "FraudLabs Pro", + "description": "FraudLabs Pro provides fraud prevention solution to protect the online businesses from payment frauds (also known as CNP frauds). It helps merchants to minimize their chargebacks or fraud losses. It also helps to increase the revenues by letting the legitimate buyers to smoothly complete the transactions while blocking the malicious fraudsters.", + "version": "1.0", + "contact": { + "name": "Troy Taylor", + "url": "https://www.hitachisolutions.com", + "email": "ttaylor@hitachisolutions.com" + } + }, + "host": "api.fraudlabspro.com", + "basePath": "/v1/order/", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/screen": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "is_country_match": { + "type": "string", + "description": "Is country a match.", + "title": "Is Country Match" + }, + "is_high_risk_country": { + "type": "string", + "description": "Is a high rick country.", + "title": "Is High Risk Country" + }, + "ip_country": { + "type": "string", + "description": "The IP country.", + "title": "IP Country" + }, + "ip_region": { + "type": "string", + "description": "The IP region.", + "title": "IP Region" + }, + "ip_city": { + "type": "string", + "description": "The IP city.", + "title": "IP City" + }, + "ip_continent": { + "type": "string", + "description": "The IP continent.", + "title": "IP Continent" + }, + "ip_latitude": { + "type": "string", + "description": "The IP latitude.", + "title": "IP Latitude" + }, + "ip_longitude": { + "type": "string", + "description": "The IP longitude.", + "title": "IP Longitude" + }, + "ip_timezone": { + "type": "string", + "description": "The IP timezone.", + "title": "IP Timezone" + }, + "ip_elevation": { + "type": "string", + "description": "The IP elevation.", + "title": "IP Elevation" + }, + "ip_domain": { + "type": "string", + "description": "The IP domain.", + "title": "IP Domain" + }, + "ip_mobile_mnc": { + "type": "string", + "description": "The IP mobile MNC.", + "title": "IP Mobile MNC" + }, + "ip_mobile_mcc": { + "type": "string", + "description": "The IP mobile MCC.", + "title": "IP Mobile MCC" + }, + "ip_mobile_brand": { + "type": "string", + "description": "The IP mobile brand.", + "title": "IP Mobile Brand" + }, + "ip_netspeed": { + "type": "string", + "description": "The IP netspeed.", + "title": "IP Netspeed" + }, + "ip_isp_name": { + "type": "string", + "description": "The IP ISP name.", + "title": "IP ISP Name" + }, + "ip_usage_type": { + "type": "string", + "description": "The IP usage type.", + "title": "IP Usage Type" + }, + "is_free_email": { + "type": "string", + "description": "Is free email.", + "title": "Is Free Email" + }, + "is_disposable_email": { + "type": "string", + "description": "Is disposable email.", + "title": "Is Disposable Email" + }, + "is_new_domain_name": { + "type": "string", + "description": "Is new domain name.", + "title": "Is New Domain Name" + }, + "is_domain_exists": { + "type": "string", + "description": "Does domain exist.", + "title": "Is Domain Exists" + }, + "is_proxy_ip_address": { + "type": "string", + "description": "Is proxy IP address.", + "title": "Is Proxy IP Address" + }, + "is_bin_found": { + "type": "string", + "description": "Is Bin found.", + "title": "Is Bin Found" + }, + "is_bin_country_match": { + "type": "string", + "description": "Is Bin country match.", + "title": "Is Bin Country Match" + }, + "is_bin_prepaid": { + "type": "string", + "description": "Is Bin prepaid.", + "title": "Is Bin Prepaid" + }, + "card_brand": { + "type": "string", + "description": "The card brand.", + "title": "Card Brand" + }, + "card_type": { + "type": "string", + "description": "The card type.", + "title": "Card Type" + }, + "card_issuing_bank": { + "type": "string", + "description": "The card issuing bank.", + "title": "Card Issuing Bank" + }, + "card_issuing_country": { + "type": "string", + "description": "The card issuing country.", + "title": "Card Issuing Country" + }, + "is_address_ship_forward": { + "type": "string", + "description": "Is address a shipping forward.", + "title": "Is Address Ship Forward" + }, + "is_bill_ship_city_match": { + "type": "string", + "description": "Is bill ship city a match.", + "title": "Is Bill Ship City Match" + }, + "is_bill_ship_state_match": { + "type": "string", + "description": "Is bill ship state a match.", + "title": "Is Bill Ship State Match" + }, + "is_bill_ship_country_match": { + "type": "string", + "description": "Is bill ship country a match.", + "title": "Is Bill Ship Country Match" + }, + "is_bill_ship_postal_match": { + "type": "string", + "description": "Is bill ship postal code a match.", + "title": "Is Bill Ship Postal Match" + }, + "is_ip_blacklist": { + "type": "string", + "description": "Is IP blacklisted.", + "title": "Is IP Blacklist" + }, + "is_email_blacklist": { + "type": "string", + "description": "Is email blacklisted.", + "title": "Is Email Blacklist" + }, + "is_credit_card_blacklist": { + "type": "string", + "description": "Is credit card blacklisted.", + "title": "Is Credit Card Blacklist" + }, + "is_device_blacklist": { + "type": "string", + "description": "Is device blacklisted.", + "title": "Is Device Blacklist" + }, + "is_user_blacklist": { + "type": "string", + "description": "Is user blacklisted.", + "title": "Is User Blacklist" + }, + "is_ship_address_blacklist": { + "type": "string", + "description": "Is ship address blacklisted.", + "title": "Is Ship Address Blacklist" + }, + "is_phone_blacklist": { + "type": "string", + "description": "Is phone blacklisted.", + "title": "Is Phone Blacklist" + }, + "is_disposable_phone_number": { + "type": "string", + "description": "Is disposable phone number.", + "title": "Is Disposable Phone Number" + }, + "is_high_risk_username": { + "type": "string", + "description": "Is high risk username.", + "title": "Is High Risk Username" + }, + "is_malware_exploit": { + "type": "string", + "description": "Is a malware exploit.", + "title": "Is Malware Exploit" + }, + "is_export_controlled_country": { + "type": "string", + "description": "Is export controlled country.", + "title": "Is Export Controlled Country" + }, + "user_order_id": { + "type": "string", + "description": "The user order identifier.", + "title": "User Order ID" + }, + "user_order_memo": { + "type": "string", + "description": "The user order memo.", + "title": "User Order Memo" + }, + "fraudlabspro_score": { + "type": "integer", + "format": "int32", + "description": "The FraudLabs Pro score.", + "title": "FraudLabs Pro Score" + }, + "fraudlabspro_status": { + "type": "string", + "description": "The FraudLabs Pro status.", + "title": "FraudLabs Pro Status" + }, + "fraudlabspro_id": { + "type": "string", + "description": "The FraudLabs Pro identifier.", + "title": "FraudLabs Pro ID" + }, + "fraudlabspro_rules": { + "type": "string", + "description": "The FraudLabs Pro rules.", + "title": "FraudLabs Pro Rules" + }, + "fraudlabspro_version": { + "type": "string", + "description": "The FraudLabs Pro version.", + "title": "FraudLabs Pro Version" + }, + "fraudlabspro_error_code": { + "type": "string", + "description": "The FraudLabs Pro code.", + "title": "FraudLabs Pro Error Code" + }, + "fraudlabspro_message": { + "type": "string", + "description": "The FraudLabs Pro message.", + "title": "FraudLabs Pro Message" + }, + "fraudlabspro_credits": { + "type": "integer", + "format": "int32", + "description": "The FraudLabs Pro credits.", + "title": "FraudLabs Pro Credits" + } + } + } + } + }, + "summary": "Screen order", + "description": "Screen an order transaction for payment fraud. This request will detect all possible fraud traits based on the input parameters supplied. The more input parameter supplied, the higher accuracy of fraud detection.", + "operationId": "ScreenPost", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "ip": { + "type": "string", + "description": "The IP address.", + "title": "IP" + }, + "last_name": { + "type": "string", + "description": "The last name.", + "title": "Last Name" + }, + "first_name": { + "type": "string", + "description": "The first name.", + "title": "First Name" + }, + "bill_addr": { + "type": "string", + "description": "The bill address.", + "title": "Bill Address" + }, + "bill_city": { + "type": "string", + "description": "The bill city.", + "title": "Bill City" + }, + "bill_state": { + "type": "string", + "description": "The bill state.", + "title": "Bill State" + }, + "bill_country": { + "type": "string", + "description": "The bill country.", + "title": "Bill Country" + }, + "bill_zip_code": { + "type": "string", + "description": "The bill zip code.", + "title": "Bill Zip Code" + }, + "ship_last_name": { + "type": "string", + "description": "The ship last name.", + "title": "Ship Last Name" + }, + "ship_first_name": { + "type": "string", + "description": "The ship first name.", + "title": "Ship First Name" + }, + "ship_addr": { + "type": "string", + "description": "The ship address.", + "title": "Ship Address" + }, + "ship_city": { + "type": "string", + "description": "The ship city.", + "title": "Ship City" + }, + "ship_state": { + "type": "string", + "description": "The ship state.", + "title": "Ship State" + }, + "ship_country": { + "type": "string", + "description": "The ship country.", + "title": "Ship Country" + }, + "ship_zip_code": { + "type": "string", + "description": "The ship zip code.", + "title": "Ship Zip Code" + }, + "user_phone": { + "type": "string", + "description": "The user phone number.", + "title": "User Phone" + }, + "email": { + "type": "string", + "description": "The email address.", + "title": "Email" + }, + "email_hash": { + "type": "string", + "description": "The email hash.", + "title": "Email Hash" + }, + "email_domain": { + "type": "string", + "description": "The email domain.", + "title": "Email Domain" + }, + "username": { + "type": "string", + "description": "The username.", + "title": "Username" + }, + "bin_no": { + "type": "string", + "description": "The bin number.", + "title": "Bin Number" + }, + "card_hash": { + "type": "string", + "description": "The card hash.", + "title": "Card Hash" + }, + "avs_result": { + "type": "string", + "description": "The AVS result.", + "title": "AVS Result" + }, + "cvv_result": { + "type": "string", + "description": "The CVV result.", + "title": "CVV Result" + }, + "user_order_id": { + "type": "string", + "description": "The user order identifier.", + "title": "User Order ID" + }, + "user_order_memo": { + "type": "string", + "description": "The user order memo.", + "title": "User Order Memo" + }, + "amount": { + "type": "number", + "format": "float", + "description": "The amount.", + "title": "Amount" + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "The quantity.", + "title": "Quantity" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + }, + "department": { + "type": "string", + "description": "The department.", + "title": "Department" + }, + "payment_gateway": { + "type": "string", + "description": "The payment gateway.", + "title": "Payment Gateway" + }, + "payment_mode": { + "type": "string", + "description": "The payment mode.", + "title": "Payment Mode", + "enum": [ + "creditcard", + "affirm", + "paypal", + "googlecheckout", + "bitcoin", + "cod", + "moneyorder", + "wired", + "bankdeposit", + "elviauthorized", + "paymitco", + "cybersource", + "sezzle", + "viabill", + "amazonpay", + "pmnts_gateway", + "giftcard", + "ewayrapid", + "others" + ] + }, + "flp_checksum": { + "type": "string", + "description": "The FLP checksum.", + "title": "FLP Checksum" + } + } + } + } + ], + "x-ms-visibility": "important" + } + }, + "/feedback": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "fraudlabspro_error_code": { + "type": "string", + "description": "The FraudLabs Pro code.", + "title": "FraudLabs Pro Error Code" + }, + "fraudlabspro_message": { + "type": "string", + "description": "The FraudLabs Pro message.", + "title": "FraudLabs Pro Message" + } + } + } + } + }, + "summary": "Give order feedback", + "description": "Update status of a transaction from pending-manual-review to APPROVE, REJECT or IGNORE. The FraudLabs Pro algorithm will improve the formula in determine the FraudLabs Pro score using the data collected.", + "operationId": "FeedbackPost", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + }, + "action": { + "type": "string", + "description": "The action.", + "title": "Action", + "default": "APPROVE", + "enum": [ + "APPROVE", + "REJECT", + "REJECT_BLACKLIST" + ] + }, + "note": { + "type": "string", + "description": "The note.", + "title": "Note" + } + } + } + } + ] + } + }, + "/result": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "is_country_match": { + "type": "string", + "description": "Is country a match.", + "title": "Is Country Match" + }, + "is_high_risk_country": { + "type": "string", + "description": "Is a high rick country.", + "title": "Is High Risk Country" + }, + "ip_country": { + "type": "string", + "description": "The IP country.", + "title": "IP Country" + }, + "ip_region": { + "type": "string", + "description": "The IP region.", + "title": "IP Region" + }, + "ip_city": { + "type": "string", + "description": "The IP city.", + "title": "IP City" + }, + "ip_continent": { + "type": "string", + "description": "The IP continent.", + "title": "IP Continent" + }, + "ip_latitude": { + "type": "string", + "description": "The IP latitude.", + "title": "IP Latitude" + }, + "ip_longitude": { + "type": "string", + "description": "The IP longitude.", + "title": "IP Longitude" + }, + "ip_timezone": { + "type": "string", + "description": "The IP timezone.", + "title": "IP Timezone" + }, + "ip_elevation": { + "type": "string", + "description": "The IP elevation.", + "title": "IP Elevation" + }, + "ip_domain": { + "type": "string", + "description": "The IP domain.", + "title": "IP Domain" + }, + "ip_mobile_mnc": { + "type": "string", + "description": "The IP mobile MNC.", + "title": "IP Mobile MNC" + }, + "ip_mobile_mcc": { + "type": "string", + "description": "The IP mobile MCC.", + "title": "IP Mobile MCC" + }, + "ip_mobile_brand": { + "type": "string", + "description": "The IP mobile brand.", + "title": "IP Mobile Brand" + }, + "ip_netspeed": { + "type": "string", + "description": "The IP netspeed.", + "title": "IP Netspeed" + }, + "ip_isp_name": { + "type": "string", + "description": "The IP ISP name.", + "title": "IP ISP Name" + }, + "ip_usage_type": { + "type": "string", + "description": "The IP usage type.", + "title": "IP Usage Type" + }, + "is_free_email": { + "type": "string", + "description": "Is free email.", + "title": "Is Free Email" + }, + "is_disposable_email": { + "type": "string", + "description": "Is disposable email.", + "title": "Is Disposable Email" + }, + "is_new_domain_name": { + "type": "string", + "description": "Is new domain name.", + "title": "Is New Domain Name" + }, + "is_domain_exists": { + "type": "string", + "description": "Does domain exist.", + "title": "Is Domain Exists" + }, + "is_proxy_ip_address": { + "type": "string", + "description": "Is proxy IP address.", + "title": "Is Proxy IP Address" + }, + "is_bin_found": { + "type": "string", + "description": "Is Bin found.", + "title": "Is Bin Found" + }, + "is_bin_country_match": { + "type": "string", + "description": "Is Bin country match.", + "title": "Is Bin Country Match" + }, + "is_bin_name_match": { + "type": "string", + "description": "Is .", + "title": "Is Bin Name Match" + }, + "is_bin_phone_match": { + "type": "string", + "description": "Is .", + "title": "Is Bin Phone Match" + }, + "is_bin_prepaid": { + "type": "string", + "description": "Is Bin prepaid.", + "title": "Is Bin Prepaid" + }, + "is_address_ship_forward": { + "type": "string", + "description": "Is address a shipping forward.", + "title": "Is Address Ship Forward" + }, + "is_bill_ship_city_match": { + "type": "string", + "description": "Is bill ship city a match.", + "title": "Is Bill Ship City Match" + }, + "is_bill_ship_state_match": { + "type": "string", + "description": "Is bill ship state a match.", + "title": "Is Bill Ship State Match" + }, + "is_bill_ship_country_match": { + "type": "string", + "description": "Is bill ship country a match.", + "title": "Is Bill Ship Country Match" + }, + "is_bill_ship_postal_match": { + "type": "string", + "description": "Is bill ship postal code a match.", + "title": "Is Bill Ship Postal Match" + }, + "is_ip_blacklist": { + "type": "string", + "description": "Is IP blacklisted.", + "title": "Is IP Blacklist" + }, + "is_email_blacklist": { + "type": "string", + "description": "Is email blacklisted.", + "title": "Is Email Blacklist" + }, + "is_credit_card_blacklist": { + "type": "string", + "description": "Is credit card blacklisted.", + "title": "Is Credit Card Blacklist" + }, + "is_device_blacklist": { + "type": "string", + "description": "Is device blacklisted.", + "title": "Is Device Blacklist" + }, + "is_user_blacklist": { + "type": "string", + "description": "Is user blacklisted.", + "title": "Is User Blacklist" + }, + "is_ship_address_blacklist": { + "type": "string", + "description": "Is ship address blacklisted.", + "title": "Is Ship Address Blacklist" + }, + "is_phone_blacklist": { + "type": "string", + "description": "Is phone blacklisted.", + "title": "Is Phone Blacklist" + }, + "is_high_risk_username_password": { + "type": "string", + "description": "Is .", + "title": "Is High Risk Username Password" + }, + "is_malware_exploit": { + "type": "string", + "description": "Is a malware exploit.", + "title": "Is Malware Exploit" + }, + "is_export_controlled_country": { + "type": "string", + "description": "Is export controlled country.", + "title": "Is Export Controlled Country" + }, + "user_order_id": { + "type": "string", + "description": "The user order identifier.", + "title": "User Order ID" + }, + "user_order_memo": { + "type": "string", + "description": "The user order memo.", + "title": "User Order Memo" + }, + "fraudlabspro_score": { + "type": "integer", + "format": "int32", + "description": "The FraudLabs Pro score.", + "title": "FraudLabs Pro Score" + }, + "fraudlabspro_distribution": { + "type": "integer", + "format": "int32", + "description": "The FraudLabs Pro .", + "title": "FraudLabs Pro Distribution" + }, + "fraudlabspro_status": { + "type": "string", + "description": "The FraudLabs Pro status.", + "title": "FraudLabs Pro Status" + }, + "fraudlabspro_id": { + "type": "string", + "description": "The FraudLabs Pro identifier.", + "title": "FraudLabs Pro ID" + }, + "fraudlabspro_message": { + "type": "string", + "description": "The FraudLabs Pro message.", + "title": "FraudLabs Pro Message" + } + } + } + } + }, + "parameters": [ + { + "name": "id", + "in": "query", + "x-ms-summary": "ID", + "description": "The identifier.", + "required": false, + "type": "string" + }, + { + "name": "id_type", + "in": "query", + "x-ms-summary": "ID Type", + "description": "The identifier type.", + "required": false, + "type": "string", + "default": "fraudlabspro_id", + "enum": [ + "fraudlabspro_id", + "user_order_id" + ] + } + ], + "description": "Retrieve an existing transaction from FraudLabs Pro fraud detection system. Please take note that this API is only available for paid plan.", + "operationId": "ResultGet", + "summary": "Get order result" + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "API Key": { + "type": "apiKey", + "in": "query", + "name": "key" + } + }, + "security": [ + { + "API Key": [] + } + ], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.fraudlabspro.com/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.fraudlabspro.com/privacy-policy" + }, + { + "propertyName": "Categories", + "propertyValue": "Commerce" + } + ] +} \ No newline at end of file diff --git a/independent-publisher-connectors/FraudLabs Pro/apiProperties.json b/independent-publisher-connectors/FraudLabs Pro/apiProperties.json new file mode 100644 index 000000000..6d5302559 --- /dev/null +++ b/independent-publisher-connectors/FraudLabs Pro/apiProperties.json @@ -0,0 +1,34 @@ +{ + "properties": { + "connectionParameters": { + "api_key": { + "type": "securestring", + "uiDefinition": { + "displayName": "API Key", + "description": "The API Key for this api", + "tooltip": "Provide your API Key", + "constraints": { + "tabIndex": 2, + "clearText": false, + "required": "true" + } + } + } + }, + "iconBrandColor": "#da3b01", + "capabilities": [], + "policyTemplateInstances": [ + { + "templateId": "setqueryparameter", + "title": "JSON Format", + "parameters": { + "x-ms-apimTemplateParameter.name": "format", + "x-ms-apimTemplateParameter.value": "json", + "x-ms-apimTemplateParameter.existsAction": "override" + } + } + ], + "publisher": "Troy Taylor", + "stackOwner": "FraudLabsPro.com" + } +} \ No newline at end of file diff --git a/independent-publisher-connectors/FraudLabs Pro/readme.md b/independent-publisher-connectors/FraudLabs Pro/readme.md new file mode 100644 index 000000000..452670894 --- /dev/null +++ b/independent-publisher-connectors/FraudLabs Pro/readme.md @@ -0,0 +1,21 @@ +# FraudLabs Pro +FraudLabs Pro provides fraud prevention solution to protect the online businesses from payment frauds (also known as CNP frauds). It helps merchants to minimize their chargebacks or fraud losses. It also helps to increase the revenues by letting the legitimate buyers to smoothly complete the transactions while blocking the malicious fraudsters. + +## Publisher: Troy Taylor, Hitachi Solutions + +## Prerequisites +You will need to [sign up](https://www.fraudlabspro.com/subscribe?id=1) for an account with FraudLabs. + +## Obtaining Credentials +You will find your API key in the account dashboard. + +## Supported Operations +### Screen order +Screen an order transaction for payment fraud. This request will detect all possible fraud traits based on the input parameters supplied. The more input parameter supplied, the higher accuracy of fraud detection. +### Give order feedback +Update status of a transaction from pending-manual-review to APPROVE, REJECT or IGNORE. The FraudLabs Pro algorithm will improve the formula in determine the FraudLabs Pro score using the data collected. +### Get order result +Retrieve an existing transaction from FraudLabs Pro fraud detection system. Please take note that this action is only available for paid plan. + +## Known Issues and Limitations +There are no known issues at this time.