{"id":3382,"date":"2021-03-08T20:56:27","date_gmt":"2021-03-08T20:56:27","guid":{"rendered":"https:\/\/documents.openpay.mx\/?p=3382"},"modified":"2022-05-23T16:32:06","modified_gmt":"2022-05-23T16:32:06","slug":"save-card","status":"publish","type":"post","link":"https:\/\/documents-mx-dev.opdevhm.com\/en\/docs\/save-card.html","title":{"rendered":"OneClick"},"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\tThroughout the tutorial for card charge<\/a> we showed how to do a charge by first creating a token (using Openpay.js<\/a>) y luego enviarlo dentro de la petici\u00f3n de cargo.\n\nEsto es muy \u00fatil para cuando un cliente llega a nuestro sitio y solo deseamos realizarle el cargo en ese momento, pero cuando deseamos mantener los datos de la tarjeta, para que el cliente la pueda ocupar en m\u00faltiples ocasiones sin necesidad de volverla a introducir los datos, lo tenemos que hacer es guardar la tarjeta para posteriormente poder utilizarla sin necesidad de volverla a pedir al cliente.\n\nLos pasos para realizar esto son:\n
    \n \t
  1. Create a form to request the information<\/li>\n \t
  2. Create a token<\/li>\n \t
  3. Create a customer<\/li>\n \t
  4. Create a customer card using the token<\/li>\n \t
  5. Create a charge<\/a> using the token<\/li>\n<\/ol>\n

    Create a form to request the information<\/h2>\nFirst create the form to request information from your customer (name and email) and card details (number, expiration date, etc).\n
    \n
    <<\/span>form <\/span>action<\/span>=<\/span>\"\/save_customer_card\"<\/span> method<\/span>=<\/span>\"POST\"<\/span> id<\/span>=<\/span>\"customer-form\"<\/span>><\/span>\n        <<\/span>input<\/span> type<\/span>=<\/span>\"hidden\"<\/span> name<\/span>=<\/span>\"token_id\"<\/span> id<\/span>=<\/span>\"token_id\"<\/span>\/><\/span>\n        <<\/span>fieldset<\/span>><\/span>\n          <<\/span>legend<\/span>><\/span>Datos del cliente<\/<\/span><\/span>legend<\/span>><\/span>\n        <<\/span>p<\/span>><\/span>\n          <<\/span>label<\/span>><\/span>Name<\/<\/span><\/span>label<\/span>><\/span>\n          <<\/span>input <\/span>type<\/span>=<\/span>\"text\"<\/span> size<\/span>=<\/span>\"20\"<\/span> autocomplete<\/span>=<\/span>\"on\"<\/span> name<\/span>=<\/span>\"client_name\"<\/span>\/><\/span>\n        <\/<\/span><\/span>p<\/span>><\/span>\n        <<\/span>p<\/span>><\/span>\n          <<\/span>label<\/span>><\/span>Correo Electror<\/span>nico<\/<\/span><\/span>label<\/span>><\/span>\n          <<\/span>input<\/span> type<\/span>=<\/span>\"text\"<\/span> size<\/span>=<\/span>\"20\" <\/span>autocomplete<\/span>=<\/span>\"on\"<\/span> name<\/span>=<\/span>\"cliente_email\"<\/span>\/><\/span>\n        <\/<\/span><\/span>p<\/span>><\/span>\n        <\/<\/span><\/span>fieldset<\/span>><\/span>\n        <<\/span>fieldset<\/span>><\/span>\n          <<\/span>legend<\/span>><\/span>Datos de la tarjeta<\/<\/span><\/span>legend<\/span>><\/span>\n        <<\/span>p<\/span>><\/span>\n          <<\/span>label<\/span>><\/span>Name<\/<\/span><\/span>label<\/span>><\/span>\n          <<\/span>input<\/span> type<\/span>=<\/span>\"text\"<\/span> size<\/span>=<\/span>\"20\" <\/span>autocomplete<\/span>=<\/span>\"off\"<\/span>\n            data-openpay-card<\/span>=<\/span>\"holder_name\"<\/span> \/><\/span>\n        <\/<\/span><\/span>p<\/span>><\/span>\n        <<\/span>p<\/span>><\/span>\n          <<\/span>label<\/span>><\/span>N\u00fa<\/span>mero<\/<\/span><\/span>label<\/span>><\/span>\n          <<\/span>input <\/span>type<\/span>=<\/span>\"text\"<\/span> size<\/span>=<\/span>\"20\"<\/span> autocomplete<\/span>=<\/span>\"off\"<\/span>\n            data-openpay-card<\/span>=<\/span>\"card_number\"<\/span> \/><\/span>\n        <\/<\/span><\/span>p<\/span>><\/span>\n        <<\/span>p<\/span>><\/span>\n          <<\/span>label<\/span>><\/span>CVV2<\/<\/span><\/span>label<\/span>><\/span>\n          <<\/span>input <\/span>type<\/span>=<\/span>\"text\"<\/span> size<\/span>=<\/span>\"4\"<\/span> autocomplete<\/span>=<\/span>\"off\"<\/span>\n            data-openpay-card<\/span>=<\/span>\"cvv2\"<\/span> \/><\/span>\n        <\/<\/span><\/span>p<\/span>><\/span>\n        <<\/span>p<\/span>><\/span>\n          <<\/span>label<\/span>><\/span>Fecha de expiracior<\/span>n (MM\/YY)<\/<\/span><\/span>label<\/span>><\/span>\n          <<\/span>input <\/span>type<\/span>=<\/span>\"text\"<\/span> size<\/span>=<\/span>\"2\"<\/span> data-openpay-card<\/span>=<\/span>\"expiration_month\"<\/span> \/><\/span> \/\n          <<\/span>input <\/span>type<\/span>=<\/span>\"text\"<\/span> size<\/span>=<\/span>\"2\"<\/span> data-openpay-card<\/span>=<\/span>\"expiration_year\"<\/span> \/><\/span>\n        <\/<\/span><\/span>p<\/span>><\/span>\n        <\/<\/span><\/span>fieldset<\/span>><\/span>\n        <<\/span>input <\/span>type<\/span>=<\/span>\"submit\"<\/span> id<\/span>=<\/span>\"save-button\"<\/span> value<\/span>=<\/span>\"Pagar\"<\/span>\/><\/span>\n<\/<\/span><\/span>form<\/span>><\/span><\/code><\/pre>\n<\/figure>\nIt\u2019s very important that the fields used to enter the card information have the data_openpay_card<\/code> \u200bya que esto permitir\u00e1 a la librer\u00eda de Openpay encontrar la informaci\u00f3n.\n\nObserva que para los datos de la tarjeta no se est\u00e1 ocupando el atributo name<\/code> isn\u2019t being used to store the card information , this is because when you submit the form to your server the card info doesn\u2019t travel in the request because it\u2019s only used to create the token.\n

    Create a token<\/h2>\nOnce we created our form, we will set up the send button to create a token using the Openpay.js<\/a>.\n\nPrimero agregamos al head<\/code> and Openpay.js<\/a> files to the head:\n
    \n
    <<\/span>script<\/span> type<\/span>=<\/span>\"text\/javascript\"<\/span> src<\/span>=<\/span>\"https:\/\/ajax.googleapis.com\/ajax\/libs\/jquery\/1.11.0\/jquery.min.js\"<\/span>><\/<\/span><\/span>script<\/span>><\/span>\n<<\/span>script<\/span> type<\/span>=<\/span>\"text\/javascript\"<\/span> src<\/span>=<\/span>\"https:\/\/js.openpay.mx\/openpay.v1.min.js\"<\/span>><\/<\/span><\/span>script<\/span>><\/span><\/code><\/pre>\n<\/figure>\nNow let\u2019s set the merchant-id<\/code> and thepublic-key<\/code>):\n
    \n
    <<\/span>script<\/span> type<\/span>=<\/span>\"text\/javascript\"<\/span>><\/span>\n     $<\/span>(<\/span>document<\/span>).<\/span>ready<\/span>(<\/span>function<\/span>()<\/span> {<\/span>\n            OpenPay<\/span>.<\/span>setId<\/span>(<\/span>'mzdtln0bmtms6o3kck8f'<\/span>);<\/span>\n            OpenPay<\/span>.<\/span>setApiKey<\/span>(<\/span>'pk_f0660ad5a39f4912872e24a7a660370c'<\/span>);<\/span>\n            OpenPay<\/span>.<\/span>setSandboxMode<\/span>(<\/span>true<\/span>);<\/span>\n    });<\/span>\n<\/<\/span><\/span>script<\/span>><\/span><\/code><\/pre>\n<\/figure>\nAnd finally let\u2019s catch the click event of the Save<\/strong> button, so instead of submitting the form it creates the token function of the card.\n
    \n
    $<\/span>(<\/span>'#save-button'<\/span>).<\/span>on<\/span>(<\/span>'click'<\/span>,<\/span> function<\/span><\/strong>(<\/span>event<\/span>)<\/span> {<\/span>\n       event<\/span>.<\/span>preventDefault<\/span>();<\/span>\n       $<\/span>(<\/span>\"#save-button\"<\/span>).<\/span>prop<\/span>(<\/span> \"disabled\"<\/span>,<\/span> true<\/span><\/strong>);<\/span>\n       OpenPay<\/span>.<\/span>token<\/span>.<\/span>extractFormAndCreate<\/span>(<\/span>'customer-form'<\/span>,<\/span> success_callbak<\/span>,<\/span> error_callbak<\/span>);<\/span>\n});<\/span><\/code><\/pre>\n<\/figure>\nComo puedes ver estamos pasando como par\u00e1metro el nombre del formulario creado, esto para que la librer\u00eda obtengan los datos de la tarjeta y haga la petici\u00f3n a Openpay.\n\nSi todo sale bien se llamar\u00e1 el m\u00e9todo success_callback<\/code> will be called to set the token id value token_id<\/code> and the data will be sent to the server:\n
    \n
    var<\/span> <\/strong>success_callbak<\/span> =<\/span> function<\/span><\/strong>(<\/span>response<\/span>)<\/span> {<\/span>\n              var<\/span> token_id<\/span> =<\/span> response<\/span>.<\/span>data<\/span>.<\/span>id<\/span>;<\/span>\n              $<\/span>(<\/span>'#token_id'<\/span>).<\/span>val<\/span>(<\/span>token_id<\/span>);<\/span>\n              $<\/span>(<\/span>'#customer-form'<\/span>).<\/span>submit<\/span>();<\/span>\n};<\/span><\/code><\/pre>\n<\/figure>\nIf there is a problem in the request, an alert will show the error:\n
    \n
    var<\/span> <\/strong>error_callbak<\/span> =<\/span> function<\/span><\/strong>(<\/span>response<\/span>)<\/span> {<\/span>\n     var<\/span> <\/strong>desc<\/span> =<\/span> response<\/span>.<\/span>data<\/span>.<\/span>description<\/span> !=<\/span> undefined<\/span> ?<\/span><\/strong> response<\/span>.<\/span>data<\/span>.<\/span>description<\/span> :<\/span> response<\/span>.<\/span>message<\/span>;<\/span>\n     alert<\/span>(<\/span>\"ERROR [\"<\/span> +<\/span> response<\/span>.<\/span>status<\/span> +<\/span> \"] \"<\/span> +<\/span> desc<\/span>);<\/span>\n     $<\/span>(<\/span>\"#save-button\"<\/span>).<\/span>prop<\/span>(<\/span>\"disabled\"<\/span>,<\/span> false<\/span><\/strong>);<\/span>\n};<\/span><\/code><\/pre>\n<\/figure>\n

    For further reference on the use of the library, see the <\/em><\/span>Openpay.js<\/em><\/span><\/a><\/p>\n\n

    Create a customer<\/h2>\nWhen doing the implementation of the \/save_customer_card<\/strong> implementation you have to do the following in order to create the customer:\n
    \n
    \n
    \n$openpay<\/span> =<\/span> Openpay<\/span>::<\/span>getInstance<\/span>(<\/span>'mzdtln0bmtms6o3kck8f'<\/span>,<\/span> 'sk_e568c42a6c384b7ab02cd47d2e407cab'<\/span>);<\/span>\n\n$customerData<\/span> =<\/span> array<\/span><\/strong>(<\/span>\n    'name'<\/span> =><\/span> $_POST<\/span>[<\/span>\"client_name\"<\/span>],<\/span>\n    'email'<\/span> =><\/span> $_POST<\/span>[<\/span>\"cliente_email\"<\/span>],<\/span>\n    'requires_account'<\/span> =><\/span> false<\/span><\/strong>);<\/span>\n\n$customer<\/span> =<\/span> $openpay<\/span>-><\/span>customers<\/span>-><\/span>add<\/span>(<\/span>$customerData<\/span>);<\/span>\n<\/code><\/pre>\n<\/figure>\n<\/div>\nNote:<\/strong> <\/span>For this example, we create the customer using the requires_account = false\u200b<\/strong> flag which means that the account balance will not handle itself.<\/em><\/span>\n\nFor more information about the types of clients see the <\/em><\/span>customers tutorial<\/em><\/span><\/a>\n

    Create a customer card using the token<\/h2>\nNow this only requires to use the token_id<\/code> that comes with the request to save and assign the card to the customer.\n
    \n
    \n
    \n$cardData<\/span> =<\/span> array<\/span>(<\/span>\n  'token_id'<\/span> =><\/span> $_POST<\/span>[<\/span>\"token_id\"<\/span>]<\/span>\n  'device_session_id'<\/span> =><\/span> $_POST<\/span>[<\/span>\"device_session_id\"<\/span>]<\/span>\n  );<\/span>\n\n$card<\/span> =<\/span> $customer<\/span>-><\/span>cards<\/span>-><\/span>add<\/span>(<\/span>$cardData<\/span>);<\/span>\n<\/code><\/pre>\n<\/figure>\n<\/div>\nEl objeto card contiene un id, el cual debes guardar en tu servidor ya con el podr\u00e1s hacer cargos a esa tarjeta despu\u00e9s. Puedes consultar la referencia de Create Card with a Token<\/em> para mas informaci\u00f3n. \u200b\n\nNotes: <\/strong><\/span>You can simulate different results using the cards <\/em><\/span>Testing<\/em><\/span><\/a>\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":"

    En la gu\u00eda de cargo con token vimos como realizar un cargo creando primero un token (usando Openpay.js) y luego enviarlo dentro de la petici\u00f3n de cargo. Esto es muy \u00fatil para cuando un cliente llega a nuestro sitio y solo deseamos realizarle el cargo en ese momento, pero cuando deseamos mantener los datos de… Read More »OneClick<\/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-3382","post","type-post","status-publish","format-standard","hentry","category-docs"],"yoast_head":"\nOneClick | 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\/save-card.html\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"OneClick | Openpay\" \/>\n<meta property=\"og:description\" content=\"En la gu\u00eda de cargo con token vimos como realizar un cargo creando primero un token (usando Openpay.js) y luego enviarlo dentro de la petici\u00f3n de cargo. Esto es muy \u00fatil para cuando un cliente llega a nuestro sitio y solo deseamos realizarle el cargo en ese momento, pero cuando deseamos mantener los datos de… Read More »OneClick\" \/>\n<meta property=\"og:url\" content=\"https:\/\/documents-mx-dev.opdevhm.com\/en\/docs\/save-card.html\/\" \/>\n<meta property=\"og:site_name\" content=\"Openpay\" \/>\n<meta property=\"article:published_time\" content=\"2021-03-08T20:56:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-05-23T16:32:06+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\/save-card.html#article\",\"isPartOf\":{\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/docs\/save-card.html\"},\"author\":{\"name\":\"user\",\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/#\/schema\/person\/4c704d548de0c4eed7ac90530bf655a7\"},\"headline\":\"OneClick\",\"datePublished\":\"2021-03-08T20:56:27+00:00\",\"dateModified\":\"2022-05-23T16:32:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/docs\/save-card.html\"},\"wordCount\":572,\"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\/save-card.html\",\"url\":\"https:\/\/documents-mx-dev.opdevhm.com\/docs\/save-card.html\",\"name\":\"OneClick | Openpay\",\"isPartOf\":{\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/#website\"},\"datePublished\":\"2021-03-08T20:56:27+00:00\",\"dateModified\":\"2022-05-23T16:32:06+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/docs\/save-card.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/documents-mx-dev.opdevhm.com\/docs\/save-card.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/docs\/save-card.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Inicio\",\"item\":\"https:\/\/documents-mx-dev.opdevhm.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"OneClick\"}]},{\"@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":"OneClick | 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\/save-card.html\/","og_locale":"en_US","og_type":"article","og_title":"OneClick | Openpay","og_description":"En la gu\u00eda de cargo con token vimos como realizar un cargo creando primero un token (usando Openpay.js) y luego enviarlo dentro de la petici\u00f3n de cargo. Esto es muy \u00fatil para cuando un cliente llega a nuestro sitio y solo deseamos realizarle el cargo en ese momento, pero cuando deseamos mantener los datos de… Read More »OneClick","og_url":"https:\/\/documents-mx-dev.opdevhm.com\/en\/docs\/save-card.html\/","og_site_name":"Openpay","article_published_time":"2021-03-08T20:56:27+00:00","article_modified_time":"2022-05-23T16:32:06+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\/save-card.html#article","isPartOf":{"@id":"https:\/\/documents-mx-dev.opdevhm.com\/docs\/save-card.html"},"author":{"name":"user","@id":"https:\/\/documents-mx-dev.opdevhm.com\/#\/schema\/person\/4c704d548de0c4eed7ac90530bf655a7"},"headline":"OneClick","datePublished":"2021-03-08T20:56:27+00:00","dateModified":"2022-05-23T16:32:06+00:00","mainEntityOfPage":{"@id":"https:\/\/documents-mx-dev.opdevhm.com\/docs\/save-card.html"},"wordCount":572,"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\/save-card.html","url":"https:\/\/documents-mx-dev.opdevhm.com\/docs\/save-card.html","name":"OneClick | Openpay","isPartOf":{"@id":"https:\/\/documents-mx-dev.opdevhm.com\/#website"},"datePublished":"2021-03-08T20:56:27+00:00","dateModified":"2022-05-23T16:32:06+00:00","breadcrumb":{"@id":"https:\/\/documents-mx-dev.opdevhm.com\/docs\/save-card.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/documents-mx-dev.opdevhm.com\/docs\/save-card.html"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/documents-mx-dev.opdevhm.com\/docs\/save-card.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Inicio","item":"https:\/\/documents-mx-dev.opdevhm.com\/"},{"@type":"ListItem","position":2,"name":"OneClick"}]},{"@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\/3382","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=3382"}],"version-history":[{"count":0,"href":"https:\/\/documents-mx-dev.opdevhm.com\/en\/wp-json\/wp\/v2\/posts\/3382\/revisions"}],"wp:attachment":[{"href":"https:\/\/documents-mx-dev.opdevhm.com\/en\/wp-json\/wp\/v2\/media?parent=3382"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/documents-mx-dev.opdevhm.com\/en\/wp-json\/wp\/v2\/categories?post=3382"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/documents-mx-dev.opdevhm.com\/en\/wp-json\/wp\/v2\/tags?post=3382"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}