{"id":381578,"date":"2026-10-06T16:39:47","date_gmt":"2026-10-06T16:39:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/payra-for-woocommerce\/"},"modified":"2026-10-06T20:09:11","modified_gmt":"2026-10-06T20:09:11","slug":"payra-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/kin.wordpress.org\/plugins\/payra-for-woocommerce\/","author":23580625,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.1.3","requires":"6.5","requires_php":"8.1","requires_plugins":null,"header_name":"Payra for WooCommerce","header_author":"Payra","header_description":"Accept card and US bank account (ACH) payments on your WooCommerce store with Payra. Card and bank details are collected by Payra Elements and never touch your server.","assets_banners_color":"","last_updated":"2026-10-06 20:09:11","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/docs.payra.com\/woocommerce","header_author_uri":"https:\/\/payra.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":152,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"marcusramospayra","date":"2026-10-06 16:39:27","revision":3731236},"1.0.1":{"tag":"1.0.1","author":"marcusramospayra","date":"2026-10-06 19:22:19","revision":3731459},"1.1.0":{"tag":"1.1.0","author":"marcusramospayra","date":"2026-10-06 20:09:11","revision":3731500}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3731236,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3731236,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3731236,"resolution":false,"location":"assets","locale":false}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.1.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[133530,11475,6593,1887,286],"plugin_category":[45],"plugin_contributors":[284752,284751],"plugin_business_model":[],"class_list":["post-381578","plugin","type-plugin","status-publish","hentry","plugin_tags-ach","plugin_tags-credit-card","plugin_tags-payment-gateway","plugin_tags-payments","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-marcusramospayra","plugin_contributors-payrasoftware","plugin_committers-marcusramospayra","plugin_committers-payrasoftware"],"banners":[],"icons":{"svg":"https:\/\/ps.w.org\/payra-for-woocommerce\/assets\/icon.svg?rev=3731236","icon":"https:\/\/ps.w.org\/payra-for-woocommerce\/assets\/icon.svg?rev=3731236","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Payra for WooCommerce adds up to three Payra payment options to your checkout, on both the classic checkout and the Checkout block: card and US bank account (ACH debit) fields inside your checkout, and the Payra checkout page, where the customer pays on a Payra page and comes back.<\/p>\n\n<ul>\n<li>Card and bank account details are entered in secure fields rendered by Payra Elements and are tokenized before they reach Payra; your store never sees a card or account number.<\/li>\n<li>A bank debit carries the account holder's ACH authorization, shown and accepted inside the secure fields. The order waits on hold until the debit settles, when the processor sends it to the bank in its next batch, and moves to processing when Payra confirms it.<\/li>\n<li>Orders are charged through the Payra API with your secret key, from your server.<\/li>\n<li>The Payra checkout page is a payment option of its own: the customer pays by card or bank account on a Payra page that shows your business name and logo, and comes back to your order confirmation. It needs your store on https.<\/li>\n<li>Customers with an account can save a card at checkout, or under My account \u2192 Payment methods, and pay later orders with it without typing it again. The card stays in Payra's vault; your store keeps a reference to it. A card removed under My account is removed in Payra too.<\/li>\n<li>Refunds, full or partial, are issued from the order screen.<\/li>\n<li>Payra tells your store about payments that change after checkout (a confirmed charge, a returned payment, a refund) through a signed webhook.<\/li>\n<li>Test mode uses your sandbox keys, so you can try the checkout without moving money.<\/li>\n<\/ul>\n\n<p>You need a Payra account with the API enabled. Keys are created in Payra under Settings \u2192 Integrations \u2192 API keys.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to Payra (https:\/\/payra.com), the payment service it exists for. It does nothing until you paste your Payra API keys in its settings; entering them is your consent to the connections below.<\/p>\n\n<ul>\n<li><strong>Card and bank account fields<\/strong>: the plugin loads Payra Elements, a JavaScript library, from the Payra API host (<code>https:\/\/api-dashboard.payra.com\/v1\/payra.js<\/code>). The library renders the card or bank account fields inside secure frames served by Payra's vault, so the card number, expiration date and security code, or the routing and account numbers, go from the customer's browser to the vault and never through your site. It also sends the customer's name and billing postal code to Payra together with the tokenized details and, for a bank account, the account type and the customer's acceptance of the ACH authorization.<\/li>\n<li><strong>Card vault (Very Good Security)<\/strong>: the secure frames are served from <code>https:\/\/js.verygoodvault.com<\/code> and the card number, expiration date and security code, or the routing and account numbers, the customer types are sent from the frames to <code>https:\/\/vgs-collect-keeper.apps.verygood.systems<\/code>, the vault Payra uses to tokenize them on its behalf. Very Good Security's terms: https:\/\/www.verygoodsecurity.com\/terms \u2014 privacy policy: https:\/\/www.verygoodsecurity.com\/privacy-policy<\/li>\n<li><strong>Your server<\/strong>: when an order is placed, the plugin sends Payra the order total, currency, order number, the store name and the tokenized card or bank account reference to charge it and, for a card, the address of your order confirmation page; when you refund from the order screen it sends the amount and the reason. Payra answers with the payment's status, which the plugin stores on the order. When the card's bank asks to verify the customer (3-D Secure), the customer is sent to their bank's page and back, through Payra, to your order confirmation page, where the plugin reads the payment's status from Payra.<\/li>\n<li><strong>Saved cards<\/strong> (customers with an account): when a customer creates an account, or first saves a card, the plugin sends Payra their email address, their first and last name when they gave one, and a reference made of your site and their user id, so Payra keeps them as a customer of your workspace. To show the saved cards at checkout and under My account, the plugin reads the customer's saved cards from Payra; a card the customer deletes under My account is removed in Payra.<\/li>\n<li><strong>Payra checkout page<\/strong> (only when you offer it): when an order is placed, the plugin sends Payra the order total, currency, order number and id, a description with the store name, the customer's email address, and the addresses of your order confirmation and order payment pages. The customer is then sent to a Payra page on <code>https:\/\/dashboard.payra.com<\/code>, enters the card or bank account details there in the same secure frames, and is sent back to your order confirmation page.<\/li>\n<li><strong>Webhook<\/strong>: Payra sends signed notifications to your site (<code>\/wp-json\/payra\/v1\/webhook<\/code>) when a payment or refund changes; the plugin verifies the signature with the secret you configured before acting.<\/li>\n<\/ul>\n\n<p>Payra's terms of service: https:\/\/payra.com\/terms \u2014 Payra's privacy policy: https:\/\/payra.com\/privacy<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin zip in Plugins \u2192 Add New \u2192 Upload Plugin, and activate it. WooCommerce 8.3 or newer must be active.<\/li>\n<li>In WooCommerce \u2192 Settings \u2192 Payments, enable Payra and open its settings. Choose the payment options you offer: cards in your checkout, bank accounts (ACH) in your checkout if your Payra workspace has an ACH processor, and the Payra checkout page. All of them share the same keys.<\/li>\n<li>Paste the publishable and secret keys from Payra (Settings \u2192 Integrations \u2192 API keys). Keep Test mode on while you try it with sandbox keys.<\/li>\n<li>In Payra (Settings \u2192 Integrations \u2192 Webhooks), add a webhook endpoint pointing at <code>https:\/\/your-store.example\/wp-json\/payra\/v1\/webhook<\/code> and paste the <code>whsec_<\/code> secret in the plugin settings.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20the%20card%20or%20bank%20account%20numbers%20pass%20through%20my%20server%3F\"><h3>Do the card or bank account numbers pass through my server?<\/h3><\/dt>\n<dd><p>No. The fields are secure frames from Payra's vault; the browser sends the details straight to the vault and your site only ever receives a session id.<\/p><\/dd>\n<dt id=\"how%20does%20a%20bank%20account%20%28ach%29%20payment%20work%3F\"><h3>How does a bank account (ACH) payment work?<\/h3><\/dt>\n<dd><p>The customer enters a US routing and account number and accepts the ACH authorization shown in the secure fields. The order is placed on hold; when the debit settles (the processor sends it to the bank in its next batch), Payra's webhook moves it to processing. Settled is not final: a debit the bank returns later fails the order with a note. Refunds are available once the debit has settled.<\/p><\/dd>\n<dt id=\"can%20customers%20save%20a%20card%3F\"><h3>Can customers save a card?<\/h3><\/dt>\n<dd><p>Yes, customers with an account. At checkout they tick the option to save the card to their account; they can also add a card under My account \u2192 Payment methods, which checks the card with the processor without an order. The next checkout offers the saved cards. Guests pay with a card they enter each time. Your Payra workspace must allow creating customers through the API; one whose customers come from an ERP integration does not, and customers then pay without saving.<\/p><\/dd>\n<dt id=\"which%20currencies%20are%20supported%3F\"><h3>Which currencies are supported?<\/h3><\/dt>\n<dd><p>Cards: USD and CAD. Bank accounts (ACH): USD only. Each method hides itself on other currencies; on the Payra checkout page, a CAD order is offered cards only.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20the%20checkout%20block%3F\"><h3>Does it work with the Checkout block?<\/h3><\/dt>\n<dd><p>Yes, and with the classic <code>[woocommerce_checkout]<\/code> shortcode as well.<\/p><\/dd>\n<dt id=\"where%20does%20the%20javascript%20source%20live%3F\"><h3>Where does the JavaScript source live?<\/h3><\/dt>\n<dd><p>The Checkout block script is built from <code>src\/blocks\/index.js<\/code>, included in the plugin, with <code>@wordpress\/scripts<\/code>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: an Appearance section in the settings, with a live preview, to match the card and bank fields to your store: colors, corner radius, height and text size.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fix: no box around the card and bank fields on the classic checkout with themes that style fieldsets.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release: card and US bank account (ACH) payments through Payra Elements on the classic checkout and the Checkout block, or on the Payra checkout page; saved cards for customers with an account; 3-D Secure verification when the card's bank asks for it; refunds from the order screen, and signed webhooks.<\/li>\n<\/ul>","raw_excerpt":"Accept card and US bank account (ACH) payments with Payra. Card and bank details are collected in secure fields and never touch your server.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kin.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/381578","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kin.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/kin.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/kin.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=381578"}],"author":[{"embeddable":true,"href":"https:\/\/kin.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/payrasoftware"}],"wp:attachment":[{"href":"https:\/\/kin.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=381578"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/kin.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=381578"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/kin.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=381578"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/kin.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=381578"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/kin.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=381578"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/kin.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=381578"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}