{"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":"
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\t\t

General questions.<\/h2>

What is the anti fraud tool?<\/strong><\/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>

How it works?<\/strong><\/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>

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>

How do I start using it?<\/strong><\/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>

What does the API responds when a transaction is marked as fraudulent?<\/strong><\/p>

In this case the API will respond an error object with the following data:<\/p>

Response:<\/strong><\/p>

{<\/span>\n    \"category\"<\/span>:<\/span> \"gateway\"<\/span>,<\/span>\n    \"description\"<\/span>:<\/span> \"The card was declined by fraud system\"<\/span>,<\/span>\n    \"http_code\"<\/span>:<\/span> 402<\/span>,<\/span>\n    \"error_code\"<\/span>:<\/span> 3005<\/span>,<\/span>\n    \"request_id\"<\/span>:<\/span> \"4fc452d8-5ddc-4464-ae70-e03569622850\"<\/span>\n}<\/span><\/code><\/pre><\/figure>

See the error page for more information on the format of the error object.<\/em><\/span><\/p>

What can I do if I want that a transaction marked as fraudulent to be approved?<\/strong><\/p>

There\u2019s no other choice but to tell the client to retry the payment with another card.<\/p>

Javascript implementation.<\/h2>

1.- Load and setup<\/strong><\/p>

The library is loaded and the value for device_session_id is initialized with the following code:<\/p>

<<\/span>script <\/span>type<\/span>=<\/span>'text\/javascript'<\/span> src<\/span>=<\/span>\"https:\/\/js.openpay.mx\/openpay-data.v1.min.js\"<\/span>><\/<\/span><\/span>script<\/span>><\/span>\n<<\/span>script <\/span>type<\/span>=<\/span>\"text\/javascript\"<\/span>><\/span>\n  var<\/span> deviceSessionId<\/span> =<\/span> OpenPay<\/span>.<\/span>deviceData<\/span>.<\/span>setup<\/span>(<\/span>\"formId\"<\/span>,<\/span> \"deviceIdHiddenFieldName\"<\/span>);<\/span>\n<\/<\/span><\/span>script<\/span>><\/span><\/code><\/pre><\/figure>

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>

Parameter 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 device_session_id<\/span><\/code>.<\/p>

Parameter deviceIdHiddenFieldName<\/span><\/code><\/span>, needs the hidden field name than will store 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>

Another way to handle the 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>

<<\/span>script <\/span>type<\/span>=<\/span>'text\/javascript'<\/span> src<\/span>=<\/span>\"https:\/\/js.openpay.mx\/openpay-data.v1.min.js\"<\/span>><\/<\/span><\/span>script<\/span>><\/span>\n<<\/span>script <\/span>type<\/span>=<\/span>\"text\/javascript\"<\/span>><\/span>\n  var<\/span> deviceSessionId<\/span> =<\/span> OpenPay<\/span>.<\/span>deviceData<\/span>.<\/span>setup<\/span>();<\/span>\n<\/<\/span><\/span>script<\/span>><\/span><\/code><\/pre><\/figure>

2.- Server side handling<\/strong><\/p>

Every time someone comes to your page or website, the data will be collected directly from the device accessing it and the device_session_id<\/span><\/code>will be generated. Once your customer makes the charge to the card, be sure of sending the device_session_id<\/span><\/code>.<\/p>

Once the data has been received by your server, send the device_session_id<\/span><\/code> to the openpay servers as part of the request, see example below:<\/p>

 'method'<\/span> =><\/span> 'card'<\/span>,\n<\/span> 'source_id'<\/span> =><\/span> $POST<\/em><\/span>[<\/span>\"source_id\"<\/span>],\n<\/span> 'amount'<\/span> =><\/span> (<\/span>float<\/span>)<\/span>$<\/span><\/em>POST[<\/span>\"amount\"<\/span>],\n<\/span> 'description'<\/span> =><\/span> $POST<\/em><\/span>[<\/span>\"description\"<\/span>],\n<\/span> 'order_id'<\/span> =><\/span> 'ORDEN-00071'<\/span>,\n<\/span> 'device_session_id'<\/span> =><\/span> $<\/span><\/em>POST[<\/span>\"deviceIdHiddenFieldName\"<\/span>]\n<\/span> );<\/span><\/code><\/pre>

\u00a0<\/p>

$charge<\/span><\/span> =<\/span> $openpay<\/span>-><\/span>charges<\/span>-><\/span>create<\/span>(<\/span>$chargeData<\/span>);<\/span>\n?><\/span><\/code><\/code><\/pre><\/figure>

To see a complete example on how to make a charge, please check the Charges Tutorial.<\/p>

Android Implementation<\/h2>

Download and install the library: https:\/\/github.com\/open-pay\/openpay-android<\/a><\/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>

Before using the anti-fraud tool on your android project, you need to enable the following permissions on the AndroidManifest.xml file:<\/p>

<uses-permission<\/span><\/span> android:name<\/span>=<\/span>\"android.permission.INTERNET\"<\/span>><\/uses-permission<\/span>><\/span>\n<uses-permission<\/span><\/span> android:name<\/span>=<\/span>\"android.permission.ACCESS_NETWORK_STATE\"<\/span> ><\/uses-permission<\/span>><\/span><\/code><\/pre><\/figure>

\u200b1.- Load and setup<\/strong><\/p>

To make the StatusListener default implementation use the following code to load the library and initialize the device_session_id<\/span><\/code>:<\/p>

Openpay<\/span> openpay<\/span> =<\/span> new<\/span> <\/strong>Openpay<\/span>(<\/span><\/strong>\"MERCHANT_ID\"<\/span>,<\/span> \"PUBLIC_API_KEY\"<\/span>,<\/span> productionMode<\/span>)<\/strong>;<\/span>\nString<\/span> deviceSessionId<\/span> =<\/span> openpay<\/span>.<\/span>getDeviceCollectorDefaultImpl<\/span>()<\/span><\/strong>\n    .<\/span>setup<\/span>(<\/span>this<\/span><\/strong>.<\/span>getActivity<\/span>())<\/strong>;<\/span><\/code><\/pre><\/figure>

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 fragment.getActivity()<\/code>.<\/em><\/span><\/p>

2.- Server side handling<\/strong><\/p>

At the moment of processing the payment from the android device be sure of sending the device_session_id<\/span><\/code> to the servers, and also send it as part of the api request.<\/p>

 CreateCardChargeParams<\/span> charge<\/span> =<\/span> new<\/span> <\/strong>CreateCardChargeParams<\/span>()<\/span><\/strong>\n                .<\/span>cardId<\/span>(<\/span>this<\/span><\/strong>.<\/span>registeredCard<\/span>.<\/span>getId<\/span>())<\/span><\/strong>\n                .<\/span>amount<\/span>(<\/span><\/strong>amount<\/span>)<\/span><\/strong>\n                .<\/span>description<\/span>(<\/span><\/strong>desc<\/span>)<\/span><\/strong>\n                .<\/span>orderId<\/span>(<\/span><\/strong>orderId<\/span>)<\/span><\/strong>\n                .<\/span>capture<\/span>(<\/span>false<\/span>)<\/span><\/strong>\n                .<\/span>deviceSessionId<\/span>(<\/span>deviceSessionId<\/span>);<\/span>\n        Charge<\/span> transaction<\/span> =<\/span> this<\/span><\/strong>.<\/span>api<\/span>.<\/span>charges<\/span>()<\/strong>.<\/span>create<\/span>(<\/span><\/strong>charge<\/span>)<\/strong>;<\/span><\/code><\/pre><\/figure>

Additional parameters<\/strong><\/p>

a) Timeout configuration<\/p>

long <\/span>millis<\/span>=<\/span>300000<\/span>;<\/span> \/\/5 min<\/span>\nopenpay<\/span>.<\/span>getDeviceCollectorDefaultImpl<\/span>()<\/strong>.<\/span>setCancelSetupTime<\/span>(<\/span><\/strong>millis<\/span>)<\/strong>;<\/span><\/code><\/pre><\/figure>

b) Error Catching<\/p>

String<\/span> errors<\/span> =<\/span> openpay<\/span>.<\/span>getDeviceCollectorDefaultImpl<\/span>()<\/strong>.<\/span>getErrorMessage<\/span>()<\/strong>;<\/span>\nLog<\/span>.<\/span>d<\/span>(<\/span>this<\/span><\/strong>.<\/span>getClass<\/span>()<\/strong>.<\/span>getName<\/span>()<\/strong>,<\/span> errors<\/span>)<\/strong>;<\/span><\/code><\/pre><\/figure>

iOS Implementation<\/h2>

Download and install the library: https:\/\/github.com\/open-pay\/openpay-ios<\/a><\/p>

1.- Load and setup<\/strong><\/p>

Create a Openpay class instance and call the method createDeviceSessionId<\/span><\/code><\/p>

Openpay<\/span> *<\/span>openpayAPI<\/span> =<\/span> [[<\/span>Openpay<\/span> alloc<\/span>]<\/span> initWithMerchantId<\/span>:<\/span>MERCHANT_ID<\/span>\n                                                   apyKey<\/span>:<\/span>API_KEY<\/span>\n                                         isProductionMode<\/span>:<\/span>NO<\/span>];<\/span><\/code><\/pre>

NSString<\/span> *<\/span>sessionId<\/span>=<\/span> [<\/span>openpayAPI<\/span> createDeviceSessionId<\/span>];<\/span><\/code><\/p><\/figure>

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":"

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… Read More »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":"\nAnti-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… Read More »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… Read More »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}]}}