{"id":7004,"date":"2018-05-28T00:00:00","date_gmt":"2018-05-27T16:00:00","guid":{"rendered":"https:\/\/www.fraudlabspro.com\/resources2\/tutorials\/how-to-integrate-fraudlabs-pro-fraud-detection-with-authorize-net-payment\/"},"modified":"2026-05-26T18:51:35","modified_gmt":"2026-05-26T10:51:35","password":"","slug":"how-to-integrate-fraudlabs-pro-fraud-detection-with-authorize-net-payment","status":"publish","type":"docs","link":"https:\/\/www.fraudlabspro.com\/resources\/tutorials\/how-to-integrate-fraudlabs-pro-fraud-detection-with-authorize-net-payment\/","title":{"rendered":"How to integrate FraudLabs Pro fraud detection with Authorize.Net payment"},"content":{"rendered":"<p>Description: This tutorial demonstrates how to integrate FraudLabs Pro fraud detection into Authorize.Net payment.<\/p>\n<p><i class=\"fa fa-file-code-o\"><\/i> PHP<br \/>\nCreate a new table to store the transaction value of FraudLabs Pro and Authorize.Net payment processing. This table will be used during the settlement, void or refund process.<\/p>\n<pre style=\"display: block; padding: 9.5px; margin: 0 0 10px; font-size: 13px; line-height: 1.42857143; color: #333; word-break: break-all; word-wrap: break-word; background-color: #f5f5f5; border: 1px solid #ccc; border-radius: 4px;\">CREATE TABLE `fraudlabs_pro` (\n\t`flp_transaction_id` CHAR(15) NOT NULL,\n\t`flp_status` VARCHAR(10) NOT NULL,\n\t`authorizenet_transaction_id` VARCHAR(30) NOT NULL,\n\tPRIMARY KEY (`flp_transaction_id`)\n)\nCOLLATE='utf8_general_ci'\nENGINE=MyISAM;<\/pre>\n<p>Download FraudLabs Pro PHP class from <a href=\"https:\/\/github.com\/fraudlabspro\/fraudlabspro-php\/releases\">https:\/\/github.com\/fraudlabspro\/fraudlabspro-php\/releases<\/a><\/p>\n<p>Integrate FraudLabs Pro fraud detection logic with your Authorize.Net code. This code will perform a simple validation check of one credit card purchase and perform the appropriate action based on the fraud validation result.<\/p>\n<pre style=\"display: block; padding: 9.5px; margin: 0 0 10px; font-size: 13px; line-height: 1.42857143; color: #333; word-break: break-all; word-wrap: break-word; background-color: #f5f5f5; border: 1px solid #ccc; border-radius: 4px;\">\/\/ Include FraudLabs Pro library\nrequire_once 'PATH_TO_FRAUDLABSPRO\/lib\/FraudLabsPro.php';\n\n\/\/ Include Authorize.Net library\nrequire 'vendor\/autoload.php';\nuse netauthorizeapicontractv1 as AnetAPI;\nuse netauthorizeapicontroller as AnetController;\n\n$merchantAuthentication = new AnetAPIMerchantAuthenticationType();\n$merchantAuthentication-&gt;setName(\"your_api_login_id\");\n$merchantAuthentication-&gt;setTransactionKey(\"your_transaction_key\");\n$refId = 'ref' . time();\n\nFraudLabsProConfiguration::apiKey('your_fraudlabspro_api_key');\n\n\/\/ Check this transaction for possible fraud. FraudLabs Pro support comprehensive validation check,\n\/\/ and for this example, we only perform the IP address, BIN and billing country validation.\n\/\/ For complete validation, please check our developer page at http:\/\/www.fraudlabspro.com\/developer\n$orderDetails = [\n\t'order'\t\t=&gt; [\n\t\t'amount'\t=&gt; $_POST['amount'], \n\t\t'paymentMethod'\t=&gt; FraudLabsProOrder::CREDIT_CARD,\n\t],\n\t'card'\t\t=&gt; [\n\t\t'number'\t=&gt; $_POST['number'],\n\t],\n\t'billing'\t=&gt; [\n\t\t'country'\t=&gt; $_POST['country'],\n\t],\n];\n\n\/\/ Sends the order details to FraudLabs Pro\n$fraudResult = FraudLabsProOrder::validate($orderDetails);\n\n\/\/ This transaction is legitimate, let's submit to Authorize.Net\nif ($fraudResult-&gt;fraudlabspro_status == 'APPROVE') {\n\t\/\/ Create payment data for a credit card\n\t$creditCard = new AnetAPICreditCardType();\n\t$creditCard-&gt;setCardNumber($_POST['number']);\n\t$creditCard-&gt;setExpirationDate($_POST['year'] . \"-\" . $_POST['month']);\n\t$creditCard-&gt;setCardCode($_POST['cvv']);\n\n\t\/\/ Add payment data to a paymentType object\n\t$paymentOne = new AnetAPIPaymentType();\n\t$paymentOne-&gt;setCreditCard($creditCard);\n\n\t$transactionRequestType = new AnetAPITransactionRequestType();\n\t$transactionRequestType-&gt;setTransactionType(\"authCaptureTransaction\");\n\t$transactionRequestType-&gt;setAmount($_POST['amount']);\n\t$transactionRequestType-&gt;setPayment($paymentOne);\n\n\t$request = new AnetAPICreateTransactionRequest();\n\t$request-&gt;setMerchantAuthentication($merchantAuthentication);\n\t$request-&gt;setRefId($refId);\n\t$request-&gt;setTransactionRequest($transactionRequestType);\n\n\t$controller = new AnetControllerCreateTransactionController($request);\n\t$result = $controller-&gt;executeWithApiResponse(netauthorizeapiconstantsANetEnvironment::SANDBOX);\n\n\tif ($result != null) {\n\t\tif ($result-&gt;getMessages()-&gt;getResultCode() == 'Ok') {\n\t\t\t$tresult = $result-&gt;getTransactionResponse();\n\t\t\tif (($tresult != null) &amp;&amp; ($tresult-&gt;getMessages() != null)) {\n\t\t\t\techo \" Successfully created transaction with Transaction ID: \" . $tresult-&gt;getTransId() . \"n\";\n\t\t\t\techo \" Transaction Response Code: \" . $tresult-&gt;getResponseCode() . \"n\";\n\t\t\t\techo \" Message Code: \" . $tresult-&gt;getMessages()[0]-&gt;getCode() . \"n\";\n\t\t\t\techo \" Auth Code: \" . $tresult-&gt;getAuthCode() . \"n\";\n\t\t\t\techo \" Description: \" . $tresult-&gt;getMessages()[0]-&gt;getDescription() . \"n\";\n\t\t\t} else {\n\t\t\t\techo \"Transaction Failed n\";\n\t\t\t\tif ($tresult-&gt;getErrors() != null) {\n\t\t\t\t\techo \" Error Code : \" . $tresult-&gt;getErrors()[0]-&gt;getErrorCode() . \"n\";\n\t\t\t\t\techo \" Error Message : \" . $tresult-&gt;getErrors()[0]-&gt;getErrorText() . \"n\";\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\techo \"Transaction Failed n\";\n\t\t\t$tresult = $result-&gt;getTransactionResponse();\n\n\t\t\tif ($tresult != null &amp;&amp; $tresult-&gt;getErrors() != null) {\n\t\t\t\techo \" Error Code : \" . $tresult-&gt;getErrors()[0]-&gt;getErrorCode() . \"n\";\n\t\t\t\techo \" Error Message : \" . $tresult-&gt;getErrors()[0]-&gt;getErrorText() . \"n\";\n\t\t\t} else {\n\t\t\t\techo \" Error Code : \" . $result-&gt;getMessages()-&gt;getMessage()[0]-&gt;getCode() . \"n\";\n\t\t\t\techo \" Error Message : \" . $result-&gt;getMessages()-&gt;getMessage()[0]-&gt;getText() . \"n\";\n\t\t\t}\n\t\t}\n\t} else {\n\t\techo \"No response returned n\";\n\t}\n}\n\n\/\/ Transaction has been rejected by FraudLabs Pro based on your custom validation rules.\nelseif ($fraudResult-&gt;fraudlabspro_status == 'REJECT') {\n\t\/*\n\tDo something here, try contact the customer for verification\n\t*\/\n}\n\n\/\/ Transaction is marked for a manual review by FraudLabs Pro based on your custom validation rules.\nelseif ($fraudResult-&gt;fraudlabspro_status == 'REVIEW') {\n\t\/\/ Create payment data for a credit card\n\t$creditCard = new AnetAPICreditCardType();\n\t$creditCard-&gt;setCardNumber($_POST['number']);\n\t$creditCard-&gt;setExpirationDate($_POST['year'] . \"-\" . $_POST['month']);\n\t$creditCard-&gt;setCardCode($_POST['cvv']);\n\n\t\/\/ Add payment data to a paymentType object\n\t$paymentOne = new AnetAPIPaymentType();\n\t$paymentOne-&gt;setCreditCard($creditCard);\n\n\t$transactionRequestType = new AnetAPITransactionRequestType();\n\t$transactionRequestType-&gt;setTransactionType(\"authOnlyTransaction\");\n\t$transactionRequestType-&gt;setAmount($_POST['amount']);\n\t$transactionRequestType-&gt;setPayment($paymentOne);\n\n\t$request = new AnetAPICreateTransactionRequest();\n\t$request-&gt;setMerchantAuthentication($merchantAuthentication);\n\t$request-&gt;setRefId($refId);\n\t$request-&gt;setTransactionRequest($transactionRequestType);\n\n\t$controller = new AnetControllerCreateTransactionController($request);\n\t$result = $controller-&gt;executeWithApiResponse(netauthorizeapiconstantsANetEnvironment::SANDBOX);\n\n\tif ($result != null) {\n\t\tif ($result-&gt;getMessages()-&gt;getResultCode() == 'Ok') {\n\t\t\t$tresult = $result-&gt;getTransactionResponse();\n\t\t\tif (($tresult != null) &amp;&amp; ($tresult-&gt;getMessages() != null)) {\n\t\t\t\techo \" Successfully created transaction with Transaction ID: \" . $tresult-&gt;getTransId() . \"n\";\n\t\t\t\techo \" Transaction Response Code: \" . $tresult-&gt;getResponseCode() . \"n\";\n\t\t\t\techo \" Message Code: \" . $tresult-&gt;getMessages()[0]-&gt;getCode() . \"n\";\n\t\t\t\techo \" Auth Code: \" . $tresult-&gt;getAuthCode() . \"n\";\n\t\t\t\techo \" Description: \" . $tresult-&gt;getMessages()[0]-&gt;getDescription() . \"n\";\n\n\t\t\t\ttry{\n\t\t\t\t\t\/\/ Initial MySQL connection\n\t\t\t\t\t$db = new PDO('mysql:host=your_database_host;dbname=your_database_name;charset=utf8', 'your_database_user', 'your_database_password');\n\t\t\t\t\t$db-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);\n\n\t\t\t\t\t\/\/ Store the transaction information for decision making\n\t\t\t\t\t$st = $db-&gt;prepare('INSERT INTO `fraudlabs_pro` VALUES (:flpId, :flpStatus, :authorizeNetId)');\n\t\t\t\t\t$st-&gt;execute(array(\n\t\t\t\t\t\t':flpId'=&gt;$fraudResult-&gt;fraudlabspro_id,\n\t\t\t\t\t\t':flpStatus'=&gt;$fraudResult-&gt;fraudlabspro_status,\n\t\t\t\t\t\t':authorizeNetId'=&gt;$tresult-&gt;getTransId()\n\t\t\t\t\t));\n\t\t\t\t}\n\t\t\t\tcatch(PDOException $e){\n\t\t\t\t\t\/\/ MySQL error\n\t\t\t\t\tdie($e-&gt;getFile() . ':' . $e-&gt;getLine() . ' ' . $e-&gt;getMessage());\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\techo \"Transaction Failed n\";\n\t\t\t\tif ($tresult-&gt;getErrors() != null) {\n\t\t\t\t\techo \" Error Code : \" . $tresult-&gt;getErrors()[0]-&gt;getErrorCode() . \"n\";\n\t\t\t\t\techo \" Error Message : \" . $tresult-&gt;getErrors()[0]-&gt;getErrorText() . \"n\";\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\techo \"Transaction Failed n\";\n\t\t\t$tresult = $result-&gt;getTransactionResponse();\n\n\t\t\tif ($tresult != null &amp;&amp; $tresult-&gt;getErrors() != null) {\n\t\t\t\techo \" Error Code : \" . $tresult-&gt;getErrors()[0]-&gt;getErrorCode() . \"n\";\n\t\t\t\techo \" Error Message : \" . $tresult-&gt;getErrors()[0]-&gt;getErrorText() . \"n\";\n\t\t\t} else {\n\t\t\t\techo \" Error Code : \" . $result-&gt;getMessages()-&gt;getMessage()[0]-&gt;getCode() . \"n\";\n\t\t\t\techo \" Error Message : \" . $result-&gt;getMessages()-&gt;getMessage()[0]-&gt;getText() . \"n\";\n\t\t\t}\n\t\t}\n\t} else {\n\t\techo \"No response returned n\";\n\t}\n}<\/pre>\n<p>Now, we are going to create a callback page to receive the review action, APPROVE or REJECT, performed by the merchant.<\/p>\n<p>Note: You need to configure the callback URL at the FraudLabs Pro merchant area-&gt;settings page. It has to be pointed to the location where you hosted this \u00e2\u20ac\u0153fraudlabspro-callback.php\u00e2\u20ac\u009d file. Below is the sample code for fraudlabspro-callback.php<\/p>\n<pre style=\"display: block; padding: 9.5px; margin: 0 0 10px; font-size: 13px; line-height: 1.42857143; color: #333; word-break: break-all; word-wrap: break-word; background-color: #f5f5f5; border: 1px solid #ccc; border-radius: 4px;\">\/\/ Include Authorize.Net library\nrequire 'vendor\/autoload.php';\nuse netauthorizeapicontractv1 as AnetAPI;\nuse netauthorizeapicontroller as AnetController;\n\n$id = (isset($_POST['id'])) ? $_POST['id'] : '';\n$action = (isset($_POST['action'])) ? $_POST['action'] : '';\n\nif($id &amp;&amp; in_array($action, array('APPROVE', 'REJECT'))){\n\ttry{\n\t\t\/\/ Initial MySQL connection\n\t\t$db = new PDO('mysql:host=your_database_host;dbname=your_database_name;charset=utf8', 'your_database_user', 'your_database_password');\n\t\t$db-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);\n\n\t\t\/\/ Get the Authorize.Net Transaction ID\n\t\t$st = $db-&gt;prepare('SELECT * FROM `fraudlabs_pro` WHERE `flp_transaction_id`=:flpId AND `flp_status`='REVIEW'');\n\t\t$st-&gt;execute(array(\n\t\t\t':flpId'=&gt;$id\n\t\t));\n\n\t\tif($st-&gt;rowCount() == 1){\n\t\t\t$row = $st-&gt;fetch(PDO::FETCH_ASSOC);\n\n\t\t\t$merchantAuthentication = new AnetAPIMerchantAuthenticationType();\n\t\t\t$merchantAuthentication-&gt;setName(\"your_api_login_id\");\n\t\t\t$merchantAuthentication-&gt;setTransactionKey(\"your_transaction_key\");\n\t\t\t$refId = 'ref' . time();\n\n\t\t\tif($action == 'REJECT'){\n\t\t\t\t\/\/ Merchant rejected the order. Void the transaction in Authorize.Net\n\t\t\t\t$transactionRequestType = new AnetAPITransactionRequestType();\n\t\t\t\t$transactionRequestType-&gt;setTransactionType(\"voidTransaction\"); \n\t\t\t\t$transactionRequestType-&gt;setRefTransId($row['authorizenet_transaction_id']);\n\n\t\t\t\t$request = new AnetAPICreateTransactionRequest();\n\t\t\t\t$request-&gt;setMerchantAuthentication($merchantAuthentication);\n\t\t\t\t$request-&gt;setRefId($refId);\n\t\t\t\t$request-&gt;setTransactionRequest($transactionRequestType);\n\n\t\t\t\t$controller = new AnetControllerCreateTransactionController($request);\n\t\t\t\t$controller-&gt;executeWithApiResponse(netauthorizeapiconstantsANetEnvironment::SANDBOX);\n\t\t\t}\n\t\t\telse{\n\t\t\t\t\/\/ Merchant approved the order. Submit for settlement\n\t\t\t\t$transactionRequestType = new AnetAPITransactionRequestType();\n\t\t\t\t$transactionRequestType-&gt;setTransactionType(\"priorAuthCaptureTransaction\");\n\t\t\t\t$transactionRequestType-&gt;setRefTransId($row['authorizenet_transaction_id']);\n\n\t\t\t\t$request = new AnetAPICreateTransactionRequest();\n\t\t\t\t$request-&gt;setMerchantAuthentication($merchantAuthentication);\n\t\t\t\t$request-&gt;setTransactionRequest($transactionRequestType);\n\n\t\t\t\t$controller = new AnetControllerCreateTransactionController($request);\n\t\t\t\t$controller-&gt;executeWithApiResponse(netauthorizeapiconstantsANetEnvironment::SANDBOX);\n\t\t\t}\n\n\t\t\t\/\/ Update database\n\t\t\t$st = $db-&gt;prepare('UPDATE `fraudlabs_pro` SET `flp_status`=:action WHERE `flp_transaction_id`=:flpId');\n\t\t\t$st-&gt;execute(array(\n\t\t\t\t':flpId'=&gt;$id,\n\t\t\t\t':action'=&gt;$action\n\t\t\t));\n\t\t}\n\t}\n\tcatch(PDOException $e){\n\t\t\/\/ MySQL error\n\t\tdie($e-&gt;getFile() . ':' . $e-&gt;getLine() . ' ' . $e-&gt;getMessage());\n\t}\n}<\/pre>\n<p>If there is a need to issue a refund of a settled transaction, below is the sample code of how to accomplish it.<\/p>\n<pre style=\"display: block; padding: 9.5px; margin: 0 0 10px; font-size: 13px; line-height: 1.42857143; color: #333; word-break: break-all; word-wrap: break-word; background-color: #f5f5f5; border: 1px solid #ccc; border-radius: 4px;\">\/\/ Include Authorize.Net library\nrequire 'vendor\/autoload.php';\nuse netauthorizeapicontractv1 as AnetAPI;\nuse netauthorizeapicontroller as AnetController;\n\ntry{\n\t\/\/ Initial MySQL connection\n\t$db = new PDO('mysql:host=your_database_host;dbname=your_database_name;charset=utf8', 'your_database_user', 'your_database_password');\n\t$db-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);\n\n\t\/\/ Get the Authorize.Net transaction ID based on the FraudLabs Pro ID\n\t$st = $db-&gt;prepare('SELECT * FROM `fraudlabs_pro` WHERE `flp_transaction_id`=:flpId');\n\t$st-&gt;execute(array(\n\t\t':flpId'=&gt;$_POST['flpId']\n\t));\n\n\tif($st-&gt;rowCount() == 1){\n\t\t$row = $st-&gt;fetch(PDO::FETCH_ASSOC);\n\n\t\t$merchantAuthentication = new AnetAPIMerchantAuthenticationType();\n\t\t$merchantAuthentication-&gt;setName(\"your_api_login_id\");\n\t\t$merchantAuthentication-&gt;setTransactionKey(\"your_transaction_key\");\n\t\t$refId = 'ref' . time();\n\n\t\t$creditCard = new AnetAPICreditCardType();\n\t\t\/\/ Only the last four digits of customer's credit card number are required for credit card refunds.\n\t\t$creditCard-&gt;setCardNumber(\"NNNN\");\n\t\t\/\/ For refunds, use XXXX instead of the customer's credit card expiration date.\n\t\t$creditCard-&gt;setExpirationDate(\"XXXX\");\n\t\t$paymentOne = new AnetAPIPaymentType();\n\t\t$paymentOne-&gt;setCreditCard($creditCard);\n\n\t\t$transactionRequestType = new AnetAPITransactionRequestType();\n\t\t$transactionRequestType-&gt;setTransactionType(\"refundTransaction\");\n\t\t$transactionRequestType-&gt;setAmount($amount);\n\t\t$transactionRequestType-&gt;setPayment($paymentOne);\n\t\t$transactionRequestType-&gt;setRefTransId($row['authorizenet_transaction_id']);\n\n\t\t$request = new AnetAPICreateTransactionRequest();\n\t\t$request-&gt;setMerchantAuthentication($merchantAuthentication);\n\t\t$request-&gt;setRefId($refId);\n\t\t$request-&gt;setTransactionRequest($transactionRequestType);\n\n\t\t$controller = new AnetControllerCreateTransactionController($request);\n\t\t$controller-&gt;executeWithApiResponse(netauthorizeapiconstantsANetEnvironment::SANDBOX);\n\n\t\t\/\/ Update database\n\t\t$st = $db-&gt;prepare('UPDATE `fraudlabs_pro` SET `flp_status`='REFUNDED' WHERE `flp_transaction_id`=:flpId');\n\t\t$st-&gt;execute(array(\n\t\t\t':flpId'=&gt;$_POST['flpId']\n\t\t));\n\t}\n}\ncatch(PDOException $e){\n\t\/\/ MySQL error\n\tdie($e-&gt;getFile() . ':' . $e-&gt;getLine() . ' ' . $e-&gt;getMessage());\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Description: This tutorial demonstrates how to integrate FraudLabs Pro fraud detection into Authorize.Net payment. PHP Create a new table to [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_lmt_disableupdate":"","_lmt_disable":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"doc_category":[456],"doc_tag":[],"class_list":["post-7004","docs","type-docs","status-publish","hentry","doc_category-payment-gateway"],"year_month":"2026-06","word_count":1534,"total_views":0,"reactions":{"happy":0,"normal":0,"sad":0},"author_info":{"name":"FraudLabs Pro","author_nicename":"jhchew","author_url":"https:\/\/www.fraudlabspro.com\/resources\/author\/jhchew\/"},"doc_category_info":[{"term_name":"Payment Gateway","term_url":"https:\/\/www.fraudlabspro.com\/resources\/categories\/payment-and-chargebacks\/payment-gateway\/"}],"doc_tag_info":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How to integrate FraudLabs Pro fraud detection with Authorize.Net payment -<\/title>\n<meta name=\"description\" content=\"This tutorial demonstrates how to integrate FraudLabs Pro fraud detection into Authorize.Net payment. Read about this tutorial to learn more.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.fraudlabspro.com\/resources\/tutorials\/how-to-integrate-fraudlabs-pro-fraud-detection-with-authorize-net-payment\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to integrate FraudLabs Pro fraud detection with Authorize.Net payment -\" \/>\n<meta property=\"og:description\" content=\"This tutorial demonstrates how to integrate FraudLabs Pro fraud detection into Authorize.Net payment. Read about this tutorial to learn more.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.fraudlabspro.com\/resources\/tutorials\/how-to-integrate-fraudlabs-pro-fraud-detection-with-authorize-net-payment\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-26T10:51:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.fraudlabspro.com\/resources\/wp-content\/uploads\/2018\/12\/banner-articles-and-tutorials.png\" \/>\n\t<meta property=\"og:image:width\" content=\"600\" \/>\n\t<meta property=\"og:image:height\" content=\"315\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.fraudlabspro.com\\\/resources\\\/tutorials\\\/how-to-integrate-fraudlabs-pro-fraud-detection-with-authorize-net-payment\\\/\",\"url\":\"https:\\\/\\\/www.fraudlabspro.com\\\/resources\\\/tutorials\\\/how-to-integrate-fraudlabs-pro-fraud-detection-with-authorize-net-payment\\\/\",\"name\":\"How to integrate FraudLabs Pro fraud detection with Authorize.Net payment -\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.fraudlabspro.com\\\/resources\\\/#website\"},\"datePublished\":\"2018-05-27T16:00:00+00:00\",\"dateModified\":\"2026-05-26T10:51:35+00:00\",\"description\":\"This tutorial demonstrates how to integrate FraudLabs Pro fraud detection into Authorize.Net payment. Read about this tutorial to learn more.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.fraudlabspro.com\\\/resources\\\/tutorials\\\/how-to-integrate-fraudlabs-pro-fraud-detection-with-authorize-net-payment\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.fraudlabspro.com\\\/resources\\\/tutorials\\\/how-to-integrate-fraudlabs-pro-fraud-detection-with-authorize-net-payment\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.fraudlabspro.com\\\/resources\\\/tutorials\\\/how-to-integrate-fraudlabs-pro-fraud-detection-with-authorize-net-payment\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.fraudlabspro.com\\\/resources\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Resources\",\"item\":\"https:\\\/\\\/www.fraudlabspro.com\\\/resources\\\/tutorials\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"How to integrate FraudLabs Pro fraud detection with Authorize.Net payment\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.fraudlabspro.com\\\/resources\\\/#website\",\"url\":\"https:\\\/\\\/www.fraudlabspro.com\\\/resources\\\/\",\"name\":\"\",\"description\":\"Resources About FraudLabs Pro Services\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.fraudlabspro.com\\\/resources\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to integrate FraudLabs Pro fraud detection with Authorize.Net payment -","description":"This tutorial demonstrates how to integrate FraudLabs Pro fraud detection into Authorize.Net payment. Read about this tutorial to learn more.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.fraudlabspro.com\/resources\/tutorials\/how-to-integrate-fraudlabs-pro-fraud-detection-with-authorize-net-payment\/","og_locale":"en_US","og_type":"article","og_title":"How to integrate FraudLabs Pro fraud detection with Authorize.Net payment -","og_description":"This tutorial demonstrates how to integrate FraudLabs Pro fraud detection into Authorize.Net payment. Read about this tutorial to learn more.","og_url":"https:\/\/www.fraudlabspro.com\/resources\/tutorials\/how-to-integrate-fraudlabs-pro-fraud-detection-with-authorize-net-payment\/","article_modified_time":"2026-05-26T10:51:35+00:00","og_image":[{"width":600,"height":315,"url":"https:\/\/www.fraudlabspro.com\/resources\/wp-content\/uploads\/2018\/12\/banner-articles-and-tutorials.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.fraudlabspro.com\/resources\/tutorials\/how-to-integrate-fraudlabs-pro-fraud-detection-with-authorize-net-payment\/","url":"https:\/\/www.fraudlabspro.com\/resources\/tutorials\/how-to-integrate-fraudlabs-pro-fraud-detection-with-authorize-net-payment\/","name":"How to integrate FraudLabs Pro fraud detection with Authorize.Net payment -","isPartOf":{"@id":"https:\/\/www.fraudlabspro.com\/resources\/#website"},"datePublished":"2018-05-27T16:00:00+00:00","dateModified":"2026-05-26T10:51:35+00:00","description":"This tutorial demonstrates how to integrate FraudLabs Pro fraud detection into Authorize.Net payment. Read about this tutorial to learn more.","breadcrumb":{"@id":"https:\/\/www.fraudlabspro.com\/resources\/tutorials\/how-to-integrate-fraudlabs-pro-fraud-detection-with-authorize-net-payment\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.fraudlabspro.com\/resources\/tutorials\/how-to-integrate-fraudlabs-pro-fraud-detection-with-authorize-net-payment\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.fraudlabspro.com\/resources\/tutorials\/how-to-integrate-fraudlabs-pro-fraud-detection-with-authorize-net-payment\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.fraudlabspro.com\/resources\/"},{"@type":"ListItem","position":2,"name":"Resources","item":"https:\/\/www.fraudlabspro.com\/resources\/tutorials\/"},{"@type":"ListItem","position":3,"name":"How to integrate FraudLabs Pro fraud detection with Authorize.Net payment"}]},{"@type":"WebSite","@id":"https:\/\/www.fraudlabspro.com\/resources\/#website","url":"https:\/\/www.fraudlabspro.com\/resources\/","name":"","description":"Resources About FraudLabs Pro Services","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.fraudlabspro.com\/resources\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/www.fraudlabspro.com\/resources\/wp-json\/wp\/v2\/docs\/7004","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fraudlabspro.com\/resources\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/www.fraudlabspro.com\/resources\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/www.fraudlabspro.com\/resources\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fraudlabspro.com\/resources\/wp-json\/wp\/v2\/comments?post=7004"}],"version-history":[{"count":1,"href":"https:\/\/www.fraudlabspro.com\/resources\/wp-json\/wp\/v2\/docs\/7004\/revisions"}],"predecessor-version":[{"id":7526,"href":"https:\/\/www.fraudlabspro.com\/resources\/wp-json\/wp\/v2\/docs\/7004\/revisions\/7526"}],"wp:attachment":[{"href":"https:\/\/www.fraudlabspro.com\/resources\/wp-json\/wp\/v2\/media?parent=7004"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/www.fraudlabspro.com\/resources\/wp-json\/wp\/v2\/doc_category?post=7004"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/www.fraudlabspro.com\/resources\/wp-json\/wp\/v2\/doc_tag?post=7004"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}