{"id":3503,"date":"2021-03-10T16:31:39","date_gmt":"2021-03-10T16:31:39","guid":{"rendered":"https:\/\/documents.openpay.mx\/?p=3503"},"modified":"2022-02-18T16:29:49","modified_gmt":"2022-02-18T16:29:49","slug":"fraud-tool","status":"publish","type":"post","link":"https:\/\/documents-mx-dev.opdevhm.com\/en\/docs\/fraud-tool.html","title":{"rendered":"Anti-Fraud"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"3503\" class=\"elementor elementor-3503\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b798b1c elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b798b1c\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e65f3ef\" data-id=\"e65f3ef\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-14fd145 elementor-widget elementor-widget-text-editor\" data-id=\"14fd145\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<h2 id=\"tocAnchor-1-1-1\">General questions.<\/h2><p><strong>What is the anti fraud tool?<\/strong><\/p><p>It is the tool that Openpay provides for the prevention of fraud in card charges and it\u2019s provided to all businesses registered on Openpay through the implementation of the openpay-data.js library with no extra charges.<\/p><p><strong>How it works?<\/strong><\/p><p>Once the openpay-data.js library or the android \/ iOS library is implemented on your website, each card transaction will be run some rules to determine if the transaction is fraudulent or legitimate. The entire process is performed within milliseconds, making it almost invisible to your customers.<\/p><p>The advanced set of rules that filters the transactions verify several factors including the credit \/ debit number, card address, email and device information used on the transaction.<\/p><p><strong>How do I start using it?<\/strong><\/p><p>If the transactions are made from a web page, the anti-fraud tool must be implemented using a JavaScript library. If the transactions are from a mobile device you can use our SDKs to implement it.<\/p><p><strong>What does the API responds when a transaction is marked as fraudulent?<\/strong><\/p><p>In this case the API will respond an error object with the following data:<\/p><p><strong>Response:<\/strong><\/p><figure class=\"highlight\"><pre><code class=\"language-json\" data-lang=\"json\"><span class=\"p\">{<\/span>\n    <span class=\"nt\" style=\"color: #000080;\">\"category\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\" style=\"color: #e41182;\">\"gateway\"<\/span><span class=\"p\">,<\/span>\n    <span class=\"nt\" style=\"color: #000080;\">\"description\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\" style=\"color: #e41182;\">\"The card was declined by fraud system\"<\/span><span class=\"p\">,<\/span>\n    <span class=\"nt\" style=\"color: #000080;\">\"http_code\"<\/span><span class=\"p\">:<\/span> <span class=\"mi\" style=\"color: #008080;\">402<\/span><span class=\"p\">,<\/span>\n    <span class=\"nt\" style=\"color: #000080;\">\"error_code\"<\/span><span class=\"p\">:<\/span> <span class=\"mi\" style=\"color: #008080;\">3005<\/span><span class=\"p\">,<\/span>\n    <span class=\"nt\" style=\"color: #000080;\">\"request_id\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\" style=\"color: #e41182;\">\"4fc452d8-5ddc-4464-ae70-e03569622850\"<\/span>\n<span class=\"p\">}<\/span><\/code><\/pre><\/figure><p style=\"text-align: center;\"><span style=\"font-size: 10pt;\"><em>See the error page for more information on the format of the error object.<\/em><\/span><\/p><p><strong>What can I do if I want that a transaction marked as fraudulent to be approved?<\/strong><\/p><p>There\u2019s no other choice but to tell the client to retry the payment with another card.<\/p><h2 id=\"tocAnchor-1-1-2\">Javascript implementation.<\/h2><p><strong>1.- Load and setup<\/strong><\/p><p>The library is loaded and the value for device_session_id is initialized with the following code:<\/p><figure class=\"highlight\"><pre><code class=\"language-html\" data-lang=\"html\"><span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">script <\/span><span class=\"na\" style=\"color: #008080;\">type<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">'text\/javascript'<\/span> <span class=\"na\" style=\"color: #008080;\">src<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"https:\/\/js.openpay.mx\/openpay-data.v1.min.js\"<\/span><span class=\"p\">&gt;&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">script<\/span><span class=\"p\">&gt;<\/span>\n<span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">script <\/span><span class=\"na\" style=\"color: #008080;\">type<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"text\/javascript\"<\/span><span class=\"p\">&gt;<\/span>\n  <span class=\"kd\">var<\/span> <span class=\"nx\">deviceSessionId<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">OpenPay<\/span><span class=\"p\">.<\/span><span class=\"nx\">deviceData<\/span><span class=\"p\">.<\/span><span class=\"nx\">setup<\/span><span class=\"p\">(<\/span><span class=\"s2\" style=\"color: #e41182;\">\"formId\"<\/span><span class=\"p\">,<\/span> <span class=\"s2\" style=\"color: #e41182;\">\"deviceIdHiddenFieldName\"<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">script<\/span><span class=\"p\">&gt;<\/span><\/code><\/pre><\/figure><p><span style=\"font-size: 10pt;\"><em><span style=\"color: #004481;\"><strong>Note:<\/strong><\/span> openpay-data.js depends on the openpay.js library. Watch to run the setSandboxMode() method from the openpay.js library first and the method setup after.<\/em><\/span><\/p><p>Parameter <span style=\"color: #e41182;\"><code><span style=\"color: #e41182;\">formId<\/span><\/code><\/span>, must store the form id which contains charge information to send. Say to he library this form contains the hidden field with the <code><span style=\"color: #e41182;\">device_session_id<\/span><\/code>.<\/p><p>Parameter <span style=\"color: #e41182;\"><code><span style=\"color: #e41182;\">deviceIdHiddenFieldName<\/span><\/code><\/span>, needs the hidden field name than will store <span style=\"color: #e41182;\"><code><span style=\"color: #e41182;\">device_session_id<\/span><\/code><\/span>. This field is important if you will need to recover the fiel value then send it with submit action.<\/p><p>Another way to handle the <code><span style=\"color: #e41182;\">device_session_id<\/span><\/code> value is to store it in a variable and then attach it to an ajax request. This is a manual process:<\/p><figure class=\"highlight\"><pre><code class=\"language-html\" data-lang=\"html\"><span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">script <\/span><span class=\"na\" style=\"color: #008080;\">type<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">'text\/javascript'<\/span> <span class=\"na\">src<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"https:\/\/js.openpay.mx\/openpay-data.v1.min.js\"<\/span><span class=\"p\">&gt;&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">script<\/span><span class=\"p\">&gt;<\/span>\n<span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">script <\/span><span class=\"na\" style=\"color: #008080;\">type<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"text\/javascript\"<\/span><span class=\"p\">&gt;<\/span>\n  <span class=\"kd\">var<\/span> <span class=\"nx\">deviceSessionId<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">OpenPay<\/span><span class=\"p\">.<\/span><span class=\"nx\">deviceData<\/span><span class=\"p\">.<\/span><span class=\"nx\">setup<\/span><span class=\"p\">();<\/span>\n<span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">script<\/span><span class=\"p\">&gt;<\/span><\/code><\/pre><\/figure><p><strong>2.- Server side handling<\/strong><\/p><p>Every time someone comes to your page or website, the data will be collected directly from the device accessing it and the <code><span style=\"color: #e41182;\">device_session_id<\/span><\/code>will be generated. Once your customer makes the charge to the card, be sure of sending the <code><span style=\"color: #e41182;\">device_session_id<\/span><\/code>.<\/p><p>Once the data has been received by your server, send the <code><span style=\"color: #e41182;\">device_session_id<\/span><\/code> to the openpay servers as part of the request, see example below:<\/p><figure class=\"highlight\"><pre><code class=\"language-php\" data-lang=\"php\"><!--?php &lt;\/span&gt; &lt;span class=\"nv\" style=\"color: #008080;\"&gt;$openpay&lt;\/span&gt; &lt;span class=\"o\"&gt;=&lt;\/span&gt; &lt;span class=\"nx\"&gt;Openpay&lt;\/span&gt;&lt;span class=\"o\"&gt;::&lt;\/span&gt;&lt;span class=\"na\" style=\"color: #008080;\"&gt;getInstance&lt;\/span&gt;&lt;span class=\"p\"&gt;(&lt;\/span&gt;&lt;span class=\"s1\" style=\"color: #e41182;\"&gt;'merchant_id'&lt;\/span&gt;&lt;span class=\"p\"&gt;,&lt;\/span&gt; &lt;span class=\"s1\" style=\"color: #e41182;\"&gt;'private_key'&lt;\/span&gt;&lt;span class=\"p\"&gt;);&lt;\/span&gt;&lt;\/code&gt;&lt;\/p&gt; &lt;p&gt;&lt;span class=\"nv\" style=\"color: #008080;\"&gt;$chargeData&lt;\/span&gt; &lt;span class=\"o\"&gt;=&lt;\/span&gt; &lt;strong&gt;&lt;span class=\"k\"&gt;array&lt;\/span&gt;&lt;\/strong&gt;&lt;span class=\"p\"&gt;(&lt;br ?--> <span class=\"s1\" style=\"color: #e41182;\">'method'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s1\" style=\"color: #e41182;\">'card'<\/span><span class=\"p\">,\n<\/span> <span class=\"s1\" style=\"color: #e41182;\">'source_id'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nv\" style=\"color: #008080;\">$<em>POST<\/em><\/span><em><span class=\"p\">[<\/span><span class=\"s2\" style=\"color: #e41182;\">\"source_id\"<\/span><span class=\"p\">],\n<\/span> <span class=\"s1\" style=\"color: #e41182;\">'amount'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">(<\/span><span class=\"nx\">float<\/span><span class=\"p\">)<\/span><span class=\"nv\" style=\"color: #008080;\">$<\/span><\/em>POST<span class=\"p\">[<\/span><span class=\"s2\" style=\"color: #e41182;\">\"amount\"<\/span><span class=\"p\">],\n<\/span> <span class=\"s1\" style=\"color: #e41182;\">'description'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nv\" style=\"color: #008080;\">$<em>POST<\/em><\/span><em><span class=\"p\">[<\/span><span class=\"s2\" style=\"color: #e41182;\">\"description\"<\/span><span class=\"p\">],\n<\/span> <span class=\"s1\" style=\"color: #e41182;\">'order_id'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s1\" style=\"color: #e41182;\">'ORDEN-00071'<\/span><span class=\"p\">,\n<\/span> <span class=\"s1\" style=\"color: #e41182;\">'device_session_id'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nv\" style=\"color: #008080;\">$<\/span><\/em>POST<span class=\"p\">[<\/span><span class=\"s2\" style=\"color: #e41182;\">\"deviceIdHiddenFieldName\"<\/span><span class=\"p\">]\n<\/span> <span class=\"p\">);<\/span><\/code><\/pre><p>\u00a0<\/p><pre><code class=\"language-php\" data-lang=\"php\"><code class=\"language-php\" data-lang=\"php\"><span class=\"nv\"><span style=\"color: #008080;\">$charge<\/span><\/span> <span class=\"o\">=<\/span> <span class=\"nv\" style=\"color: #008080;\">$openpay<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\" style=\"color: #008080;\">charges<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\" style=\"color: #008080;\">create<\/span><span class=\"p\">(<\/span><span class=\"nv\" style=\"color: #008080;\">$chargeData<\/span><span class=\"p\">);<\/span>\n<span class=\"cp\">?&gt;<\/span><\/code><\/code><\/pre><\/figure><p>To see a complete example on how to make a charge, please check the Charges Tutorial.<\/p><h2 id=\"tocAnchor-1-1-3\">Android Implementation<\/h2><p>Download and install the library: <a href=\"https:\/\/github.com\/open-pay\/openpay-android\">https:\/\/github.com\/open-pay\/openpay-android<\/a><\/p><p>The openpay-android library allows to use the anti-fraud tool in two different ways. First, using the implementation given by default, and the second one, is creating a custom implementation. Let\u2019s see how to do it.<\/p><p>Before using the anti-fraud tool on your android project, you need to enable the following permissions on the AndroidManifest.xml file:<\/p><figure class=\"highlight\"><pre><code class=\"language-xml\" data-lang=\"xml\"><span class=\"nt\">&lt;<span style=\"color: #000080;\">uses-permission<\/span><\/span> <span class=\"na\"><span style=\"color: #008080;\">android:name<\/span>=<\/span><span class=\"s\" style=\"color: #e41182;\">\"android.permission.INTERNET\"<\/span><span class=\"nt\">&gt;&lt;<span style=\"color: #000080;\">\/uses-permission<\/span>&gt;<\/span>\n<span class=\"nt\">&lt;<span style=\"color: #000080;\">uses-permission<\/span><\/span> <span class=\"na\"><span style=\"color: #008080;\">android:name<\/span>=<\/span><span class=\"s\" style=\"color: #e41182;\">\"android.permission.ACCESS_NETWORK_STATE\"<\/span> <span class=\"nt\">&gt;&lt;<span style=\"color: #000080;\">\/uses-permission<\/span>&gt;<\/span><\/code><\/pre><\/figure><p>\u200b<strong>1.- Load and setup<\/strong><\/p><p>To make the StatusListener default implementation use the following code to load the library and initialize the <code><span style=\"color: #e41182;\">device_session_id<\/span><\/code>:<\/p><figure class=\"highlight\"><pre><code class=\"language-java\" data-lang=\"java\"><span class=\"n\">Openpay<\/span> <span class=\"n\">openpay<\/span> <span class=\"o\">=<\/span> <strong><span class=\"k\">new<\/span> <\/strong><span class=\"n\">Openpay<\/span><strong><span class=\"o\">(<\/span><\/strong><span class=\"s\" style=\"color: #e41182;\">\"MERCHANT_ID\"<\/span><span class=\"o\">,<\/span> <span class=\"s\" style=\"color: #e41182;\">\"PUBLIC_API_KEY\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">productionMode<\/span><span class=\"o\"><strong>)<\/strong>;<\/span>\n<span class=\"n\">String<\/span> <span class=\"n\">deviceSessionId<\/span> <span class=\"o\">=<\/span> <span class=\"n\">openpay<\/span><span class=\"o\">.<\/span><span class=\"na\" style=\"color: #008080;\">getDeviceCollectorDefaultImpl<\/span><strong><span class=\"o\">()<\/span><\/strong>\n    <span class=\"o\">.<\/span><span class=\"na\" style=\"color: #008080;\">setup<\/span><strong><span class=\"o\">(<\/span><span class=\"k\">this<\/span><\/strong><span class=\"o\">.<\/span><span class=\"na\" style=\"color: #008080;\">getActivity<\/span><span class=\"o\"><strong>())<\/strong>;<\/span><\/code><\/pre><\/figure><p><span style=\"font-size: 10pt;\"><em><span style=\"color: #004481;\"><strong>Note:<\/strong> <\/span>The setup method requires to have the Activity object being used. In case this object is being called from a fragment, you can get the Activity object by using the <code>fragment.getActivity()<\/code>.<\/em><\/span><\/p><p><strong>2.- Server side handling<\/strong><\/p><p>At the moment of processing the payment from the android device be sure of sending the <code><span style=\"color: #e41182;\">device_session_id<\/span><\/code> to the servers, and also send it as part of the api request.<\/p><figure class=\"highlight\"><pre><code class=\"language-java\" data-lang=\"java\"> <span class=\"n\">CreateCardChargeParams<\/span> <span class=\"n\">charge<\/span> <span class=\"o\">=<\/span> <strong><span class=\"k\">new<\/span> <\/strong><span class=\"n\">CreateCardChargeParams<\/span><strong><span class=\"o\">()<\/span><\/strong>\n                <span class=\"o\">.<\/span><span class=\"na\" style=\"color: #008080;\">cardId<\/span><strong><span class=\"o\">(<\/span><span class=\"k\">this<\/span><\/strong><span class=\"o\">.<\/span><span class=\"na\" style=\"color: #008080;\">registeredCard<\/span><span class=\"o\">.<\/span><span class=\"na\" style=\"color: #008080;\">getId<\/span><strong><span class=\"o\">())<\/span><\/strong>\n                <span class=\"o\">.<\/span><span class=\"na\" style=\"color: #008080;\">amount<\/span><strong><span class=\"o\">(<\/span><\/strong><span class=\"n\">amount<\/span><strong><span class=\"o\">)<\/span><\/strong>\n                <span class=\"o\">.<\/span><span class=\"na\" style=\"color: #008080;\">description<\/span><strong><span class=\"o\">(<\/span><\/strong><span class=\"n\">desc<\/span><strong><span class=\"o\">)<\/span><\/strong>\n                <span class=\"o\">.<\/span><span class=\"na\" style=\"color: #008080;\">orderId<\/span><strong><span class=\"o\">(<\/span><\/strong><span class=\"n\">orderId<\/span><strong><span class=\"o\">)<\/span><\/strong>\n                <span class=\"o\">.<\/span><span class=\"na\" style=\"color: #008080;\">capture<\/span><strong><span class=\"o\">(<\/span><span class=\"kc\">false<\/span><span class=\"o\">)<\/span><\/strong>\n                <span class=\"o\">.<\/span><span class=\"na\" style=\"color: #008080;\">deviceSessionId<\/span><span class=\"o\">(<\/span><span class=\"n\">deviceSessionId<\/span><span class=\"o\">);<\/span>\n        <span class=\"n\">Charge<\/span> <span class=\"n\">transaction<\/span> <span class=\"o\">=<\/span> <strong><span class=\"k\">this<\/span><\/strong><span class=\"o\">.<\/span><span class=\"na\" style=\"color: #008080;\">api<\/span><span class=\"o\">.<\/span><span class=\"na\" style=\"color: #008080;\">charges<\/span><span class=\"o\"><strong>()<\/strong>.<\/span><span class=\"na\" style=\"color: #008080;\">create<\/span><strong><span class=\"o\">(<\/span><\/strong><span class=\"n\">charge<\/span><span class=\"o\"><strong>)<\/strong>;<\/span><\/code><\/pre><\/figure><p><strong>Additional parameters<\/strong><\/p><p>a) Timeout configuration<\/p><figure class=\"highlight\"><pre><code class=\"language-java\" data-lang=\"java\"><span class=\"kt\" style=\"color: #000080;\">long <\/span><span class=\"n\">millis<\/span><span class=\"o\">=<\/span><span class=\"mi\" style=\"color: #008080;\">300000<\/span><span class=\"o\">;<\/span> <span class=\"c1\">\/\/5 min<\/span>\n<span class=\"n\">openpay<\/span><span class=\"o\">.<\/span><span class=\"na\" style=\"color: #008080;\">getDeviceCollectorDefaultImpl<\/span><span class=\"o\"><strong>()<\/strong>.<\/span><span class=\"na\" style=\"color: #008080;\">setCancelSetupTime<\/span><strong><span class=\"o\">(<\/span><\/strong><span class=\"n\">millis<\/span><span class=\"o\"><strong>)<\/strong>;<\/span><\/code><\/pre><\/figure><p>b) Error Catching<\/p><figure class=\"highlight\"><pre><code class=\"language-java\" data-lang=\"java\"><span class=\"n\">String<\/span> <span class=\"n\">errors<\/span> <span class=\"o\">=<\/span> <span class=\"n\">openpay<\/span><span class=\"o\">.<\/span><span class=\"na\" style=\"color: #008080;\">getDeviceCollectorDefaultImpl<\/span><span class=\"o\"><strong>()<\/strong>.<\/span><span class=\"na\" style=\"color: #008080;\">getErrorMessage<\/span><span class=\"o\"><strong>()<\/strong>;<\/span>\n<span class=\"n\">Log<\/span><span class=\"o\">.<\/span><span class=\"na\" style=\"color: #008080;\">d<\/span><strong><span class=\"o\">(<\/span><span class=\"k\">this<\/span><\/strong><span class=\"o\">.<\/span><span class=\"na\" style=\"color: #008080;\">getClass<\/span><span class=\"o\"><strong>()<\/strong>.<\/span><span class=\"na\" style=\"color: #008080;\">getName<\/span><span class=\"o\"><strong>()<\/strong>,<\/span> <span class=\"n\">errors<\/span><span class=\"o\"><strong>)<\/strong>;<\/span><\/code><\/pre><\/figure><h2 id=\"tocAnchor-1-1-4\">iOS Implementation<\/h2><p>Download and install the library: <a href=\"https:\/\/github.com\/open-pay\/openpay-ios\">https:\/\/github.com\/open-pay\/openpay-ios<\/a><\/p><p><strong>1.- Load and setup<\/strong><\/p><p>Create a Openpay class instance and call the method <code><span style=\"color: #e41182;\">createDeviceSessionId<\/span><\/code><\/p><figure class=\"highlight\"><pre><code class=\"language-objectivec\" data-lang=\"objectivec\"><span class=\"n\">Openpay<\/span> <span class=\"o\">*<\/span><span class=\"n\">openpayAPI<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[[<\/span><span class=\"n\">Openpay<\/span> <span class=\"n\">alloc<\/span><span class=\"p\">]<\/span> <span class=\"nl\">initWithMerchantId<\/span><span class=\"p\">:<\/span><span class=\"n\">MERCHANT_ID<\/span>\n                                                   <span class=\"nl\">apyKey<\/span><span class=\"p\">:<\/span><span class=\"n\">API_KEY<\/span>\n                                         <span class=\"nl\">isProductionMode<\/span><span class=\"p\">:<\/span><span class=\"nb\" style=\"color: #008080;\">NO<\/span><span class=\"p\">];<\/span><\/code><\/pre><p><code class=\"language-objectivec\" data-lang=\"objectivec\"><span class=\"bp\">NSString<\/span> <span class=\"o\">*<\/span><span class=\"n\">sessionId<\/span><span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"n\">openpayAPI<\/span> <span class=\"n\">createDeviceSessionId<\/span><span class=\"p\">];<\/span><\/code><\/p><\/figure><p><span style=\"font-size: 10pt;\"><em><span style=\"color: #004481;\"><strong>Note:<\/strong> <\/span>Create the Openpay variable at class level not method level.<\/em><\/span><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Preguntas generales \u00bfQu\u00e9 es la herramienta antifraudes? Es la herramienta que Openpay proporcionan para la prevenci\u00f3n de fraudes en cargos a tarjetas y se proporciona a todos los comercios registrados en Openpay por medio de la implementaci\u00f3n de la librer\u00eda openpay-data.js sin cargos extra por su uso. \u00bfC\u00f3mo funciona? Una vez implementada la librer\u00eda openpay-data.js&hellip;&nbsp;<a href=\"https:\/\/documents-mx-dev.opdevhm.com\/en\/docs\/fraud-tool.html\" rel=\"bookmark\">Read More &raquo;<span class=\"screen-reader-text\">Anti-Fraud<\/span><\/a><\/p>","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"categories":[133],"tags":[],"class_list":["post-3503","post","type-post","status-publish","format-standard","hentry","category-docs"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Anti-Fraudes | Openpay<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/documents-mx-dev.opdevhm.com\/en\/docs\/fraud-tool.html\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Anti-Fraudes | Openpay\" \/>\n<meta property=\"og:description\" content=\"Preguntas generales \u00bfQu\u00e9 es la herramienta antifraudes? Es la herramienta que Openpay proporcionan para la prevenci\u00f3n de fraudes en cargos a tarjetas y se proporciona a todos los comercios registrados en Openpay por medio de la implementaci\u00f3n de la librer\u00eda openpay-data.js sin cargos extra por su uso. \u00bfC\u00f3mo funciona? Una vez implementada la librer\u00eda openpay-data.js&hellip;&nbsp;Read More &raquo;Anti-Fraudes\" \/>\n<meta property=\"og:url\" content=\"https:\/\/documents-mx-dev.opdevhm.com\/en\/docs\/fraud-tool.html\/\" \/>\n<meta property=\"og:site_name\" content=\"Openpay\" \/>\n<meta property=\"article:published_time\" content=\"2021-03-10T16:31:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-02-18T16:29:49+00:00\" \/>\n<meta name=\"author\" content=\"user\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"user\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/docs\/fraud-tool.html#article\",\"isPartOf\":{\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/docs\/fraud-tool.html\"},\"author\":{\"name\":\"user\",\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/#\/schema\/person\/4c704d548de0c4eed7ac90530bf655a7\"},\"headline\":\"Anti-Fraudes\",\"datePublished\":\"2021-03-10T16:31:39+00:00\",\"dateModified\":\"2022-02-18T16:29:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/docs\/fraud-tool.html\"},\"wordCount\":789,\"publisher\":{\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/#organization\"},\"articleSection\":[\"Documentaci\u00f3n\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/docs\/fraud-tool.html\",\"url\":\"https:\/\/documents-mx-dev.opdevhm.com\/docs\/fraud-tool.html\",\"name\":\"Anti-Fraudes | Openpay\",\"isPartOf\":{\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/#website\"},\"datePublished\":\"2021-03-10T16:31:39+00:00\",\"dateModified\":\"2022-02-18T16:29:49+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/docs\/fraud-tool.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/documents-mx-dev.opdevhm.com\/docs\/fraud-tool.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/docs\/fraud-tool.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Inicio\",\"item\":\"https:\/\/documents-mx-dev.opdevhm.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Anti-Fraudes\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/#website\",\"url\":\"https:\/\/documents-mx-dev.opdevhm.com\/\",\"name\":\"Openpay\",\"description\":\"Openpay a BBVA Company\",\"publisher\":{\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/documents-mx-dev.opdevhm.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/#organization\",\"name\":\"Openpay Soporte\",\"url\":\"https:\/\/documents-mx-dev.opdevhm.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/documents-mx-dev.opdevhm.com\/wp-content\/uploads\/2020\/05\/logo.png\",\"contentUrl\":\"https:\/\/documents-mx-dev.opdevhm.com\/wp-content\/uploads\/2020\/05\/logo.png\",\"width\":290,\"height\":90,\"caption\":\"Openpay Soporte\"},\"image\":{\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/#\/schema\/person\/4c704d548de0c4eed7ac90530bf655a7\",\"name\":\"user\",\"url\":\"https:\/\/documents-mx-dev.opdevhm.com\/en\/docs\/author\/berni\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Anti-Fraudes | Openpay","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:\/\/documents-mx-dev.opdevhm.com\/en\/docs\/fraud-tool.html\/","og_locale":"en_US","og_type":"article","og_title":"Anti-Fraudes | Openpay","og_description":"Preguntas generales \u00bfQu\u00e9 es la herramienta antifraudes? Es la herramienta que Openpay proporcionan para la prevenci\u00f3n de fraudes en cargos a tarjetas y se proporciona a todos los comercios registrados en Openpay por medio de la implementaci\u00f3n de la librer\u00eda openpay-data.js sin cargos extra por su uso. \u00bfC\u00f3mo funciona? Una vez implementada la librer\u00eda openpay-data.js&hellip;&nbsp;Read More &raquo;Anti-Fraudes","og_url":"https:\/\/documents-mx-dev.opdevhm.com\/en\/docs\/fraud-tool.html\/","og_site_name":"Openpay","article_published_time":"2021-03-10T16:31:39+00:00","article_modified_time":"2022-02-18T16:29:49+00:00","author":"user","twitter_card":"summary_large_image","twitter_misc":{"Written by":"user","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/documents-mx-dev.opdevhm.com\/docs\/fraud-tool.html#article","isPartOf":{"@id":"https:\/\/documents-mx-dev.opdevhm.com\/docs\/fraud-tool.html"},"author":{"name":"user","@id":"https:\/\/documents-mx-dev.opdevhm.com\/#\/schema\/person\/4c704d548de0c4eed7ac90530bf655a7"},"headline":"Anti-Fraudes","datePublished":"2021-03-10T16:31:39+00:00","dateModified":"2022-02-18T16:29:49+00:00","mainEntityOfPage":{"@id":"https:\/\/documents-mx-dev.opdevhm.com\/docs\/fraud-tool.html"},"wordCount":789,"publisher":{"@id":"https:\/\/documents-mx-dev.opdevhm.com\/#organization"},"articleSection":["Documentaci\u00f3n"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/documents-mx-dev.opdevhm.com\/docs\/fraud-tool.html","url":"https:\/\/documents-mx-dev.opdevhm.com\/docs\/fraud-tool.html","name":"Anti-Fraudes | Openpay","isPartOf":{"@id":"https:\/\/documents-mx-dev.opdevhm.com\/#website"},"datePublished":"2021-03-10T16:31:39+00:00","dateModified":"2022-02-18T16:29:49+00:00","breadcrumb":{"@id":"https:\/\/documents-mx-dev.opdevhm.com\/docs\/fraud-tool.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/documents-mx-dev.opdevhm.com\/docs\/fraud-tool.html"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/documents-mx-dev.opdevhm.com\/docs\/fraud-tool.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Inicio","item":"https:\/\/documents-mx-dev.opdevhm.com\/"},{"@type":"ListItem","position":2,"name":"Anti-Fraudes"}]},{"@type":"WebSite","@id":"https:\/\/documents-mx-dev.opdevhm.com\/#website","url":"https:\/\/documents-mx-dev.opdevhm.com\/","name":"Openpay","description":"Openpay a BBVA Company","publisher":{"@id":"https:\/\/documents-mx-dev.opdevhm.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/documents-mx-dev.opdevhm.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/documents-mx-dev.opdevhm.com\/#organization","name":"Openpay Soporte","url":"https:\/\/documents-mx-dev.opdevhm.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/documents-mx-dev.opdevhm.com\/#\/schema\/logo\/image\/","url":"https:\/\/documents-mx-dev.opdevhm.com\/wp-content\/uploads\/2020\/05\/logo.png","contentUrl":"https:\/\/documents-mx-dev.opdevhm.com\/wp-content\/uploads\/2020\/05\/logo.png","width":290,"height":90,"caption":"Openpay Soporte"},"image":{"@id":"https:\/\/documents-mx-dev.opdevhm.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/documents-mx-dev.opdevhm.com\/#\/schema\/person\/4c704d548de0c4eed7ac90530bf655a7","name":"user","url":"https:\/\/documents-mx-dev.opdevhm.com\/en\/docs\/author\/berni"}]}},"_links":{"self":[{"href":"https:\/\/documents-mx-dev.opdevhm.com\/en\/wp-json\/wp\/v2\/posts\/3503","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/documents-mx-dev.opdevhm.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/documents-mx-dev.opdevhm.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/documents-mx-dev.opdevhm.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/documents-mx-dev.opdevhm.com\/en\/wp-json\/wp\/v2\/comments?post=3503"}],"version-history":[{"count":0,"href":"https:\/\/documents-mx-dev.opdevhm.com\/en\/wp-json\/wp\/v2\/posts\/3503\/revisions"}],"wp:attachment":[{"href":"https:\/\/documents-mx-dev.opdevhm.com\/en\/wp-json\/wp\/v2\/media?parent=3503"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/documents-mx-dev.opdevhm.com\/en\/wp-json\/wp\/v2\/categories?post=3503"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/documents-mx-dev.opdevhm.com\/en\/wp-json\/wp\/v2\/tags?post=3503"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}