{"id":252128,"date":"2025-10-17T08:29:56","date_gmt":"2025-10-17T08:29:56","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/formpays-pro\/"},"modified":"2026-10-22T07:39:58","modified_gmt":"2026-10-22T07:39:58","slug":"formpays-pro","status":"publish","type":"plugin","link":"https:\/\/arq.wordpress.org\/plugins\/formpays-pro\/","author":23361296,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.8","stable_tag":"1.2.8","tested":"7.1.3","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"FormPays Pro","header_author":"versionnext, codexdemon","header_description":"Advanced payment form with multiple payment gateways support and conditional logic","assets_banners_color":"f0f7fe","last_updated":"2026-10-22 07:39:58","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/version-next.com\/formpays-pro\/","header_author_uri":"https:\/\/version-next.com\/","rating":5,"author_block_rating":0,"active_installs":10,"downloads":743,"num_ratings":3,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.2":{"tag":"1.1.2","author":"versionnext","date":"2025-10-17 08:51:27","revision":3379954},"1.1.3":{"tag":"1.1.3","author":"versionnext","date":"2025-10-27 08:29:36","revision":3385039},"1.2.0":{"tag":"1.2.0","author":"versionnext","date":"2026-10-19 10:48:31","revision":3754540},"1.2.1":{"tag":"1.2.1","author":"versionnext","date":"2026-10-19 11:23:06","revision":3754595},"1.2.4":{"tag":"1.2.4","author":"versionnext","date":"2026-10-19 12:29:33","revision":3754722},"1.2.5":{"tag":"1.2.5","author":"codexdemon","date":"2026-10-20 14:59:12","revision":3756956},"1.2.6":{"tag":"1.2.6","author":"codexdemon","date":"2026-10-20 14:44:21","revision":3756937},"1.2.7":{"tag":"1.2.7","author":"codexdemon","date":"2026-10-21 03:12:54","revision":3757661},"1.2.8":{"tag":"1.2.8","author":"codexdemon","date":"2026-10-22 07:39:58","revision":3759482}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":3},"assets_icons":{"icon-128x128.gif":{"filename":"icon-128x128.gif","revision":3756443,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-128x128.png":{"filename":"icon-128x128.png","revision":3379945,"resolution":"128x128","location":"assets","locale":"","width":128,"height":129},"icon-256x256.gif":{"filename":"icon-256x256.gif","revision":3756443,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3379945,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3379945,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3757842,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3757842,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"formpays-pro\/payment-form":{"name":"formpays-pro\/payment-form","title":"FormPays Pro Form"}},"tagged_versions":["1.1.2","1.1.3","1.2.0","1.2.1","1.2.4","1.2.5","1.2.6","1.2.7","1.2.8"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3379945,"resolution":"1","location":"assets","locale":"","width":2666,"height":1742},"screenshot-10.jpg":{"filename":"screenshot-10.jpg","revision":3379945,"resolution":"10","location":"assets","locale":"","width":2663,"height":3121},"screenshot-11.jpg":{"filename":"screenshot-11.jpg","revision":3379945,"resolution":"11","location":"assets","locale":"","width":2656,"height":3459},"screenshot-12.jpg":{"filename":"screenshot-12.jpg","revision":3379945,"resolution":"12","location":"assets","locale":"","width":1757,"height":1478},"screenshot-13.jpg":{"filename":"screenshot-13.jpg","revision":3385037,"resolution":"13","location":"assets","locale":"","width":2694,"height":1474},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3379945,"resolution":"2","location":"assets","locale":"","width":2669,"height":2664},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3379945,"resolution":"3","location":"assets","locale":"","width":2672,"height":2752},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3379945,"resolution":"4","location":"assets","locale":"","width":2642,"height":1338},"screenshot-5.jpg":{"filename":"screenshot-5.jpg","revision":3379945,"resolution":"5","location":"assets","locale":"","width":2671,"height":1621},"screenshot-6.jpg":{"filename":"screenshot-6.jpg","revision":3379945,"resolution":"6","location":"assets","locale":"","width":2634,"height":2920},"screenshot-7.jpg":{"filename":"screenshot-7.jpg","revision":3379945,"resolution":"7","location":"assets","locale":"","width":2666,"height":5298},"screenshot-8.jpg":{"filename":"screenshot-8.jpg","revision":3379945,"resolution":"8","location":"assets","locale":"","width":2694,"height":1182},"screenshot-9.jpg":{"filename":"screenshot-9.jpg","revision":3379945,"resolution":"9","location":"assets","locale":"","width":2688,"height":1604}},"screenshots":{"1":"Dashboard with forms, submissions, payments, and revenue.","2":"Gateway settings.","3":"Common settings for payment result pages.","4":"Starting a form from a template or from scratch.","5":"Creating a payment form.","6":"Editing a payment form.","7":"A form template.","8":"A payment form on a page.","9":"The transactions list.","10":"One transaction, with receipt and refund.","11":"Analytics.","12":"Reordering form fields.","13":"Email notification templates."}},"plugin_section":[],"plugin_tags":[358,601,507,65714,5349],"plugin_category":[42,45],"plugin_contributors":[143580,249329],"plugin_business_model":[],"class_list":["post-252128","plugin","type-plugin","status-publish","hentry","plugin_tags-contact-form","plugin_tags-forms","plugin_tags-payment","plugin_tags-razorpay","plugin_tags-stripe","plugin_category-contact-forms","plugin_category-ecommerce","plugin_contributors-codexdemon","plugin_contributors-versionnext","plugin_committers-codexdemon","plugin_committers-versionnext","plugin_support_reps-codexdemon"],"banners":{"banner":"https:\/\/ps.w.org\/formpays-pro\/assets\/banner-772x250.jpg?rev=3757842","banner_2x":"https:\/\/ps.w.org\/formpays-pro\/assets\/banner-1544x500.jpg?rev=3757842","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/formpays-pro\/assets\/icon.svg?rev=3379945","icon":"https:\/\/ps.w.org\/formpays-pro\/assets\/icon.svg?rev=3379945","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/formpays-pro\/assets\/screenshot-1.jpg?rev=3379945","caption":"Dashboard with forms, submissions, payments, and revenue."},{"src":"https:\/\/ps.w.org\/formpays-pro\/assets\/screenshot-2.jpg?rev=3379945","caption":"Gateway settings."},{"src":"https:\/\/ps.w.org\/formpays-pro\/assets\/screenshot-3.jpg?rev=3379945","caption":"Common settings for payment result pages."},{"src":"https:\/\/ps.w.org\/formpays-pro\/assets\/screenshot-4.jpg?rev=3379945","caption":"Starting a form from a template or from scratch."},{"src":"https:\/\/ps.w.org\/formpays-pro\/assets\/screenshot-5.jpg?rev=3379945","caption":"Creating a payment form."},{"src":"https:\/\/ps.w.org\/formpays-pro\/assets\/screenshot-6.jpg?rev=3379945","caption":"Editing a payment form."},{"src":"https:\/\/ps.w.org\/formpays-pro\/assets\/screenshot-7.jpg?rev=3379945","caption":"A form template."},{"src":"https:\/\/ps.w.org\/formpays-pro\/assets\/screenshot-8.jpg?rev=3379945","caption":"A payment form on a page."},{"src":"https:\/\/ps.w.org\/formpays-pro\/assets\/screenshot-9.jpg?rev=3379945","caption":"The transactions list."},{"src":"https:\/\/ps.w.org\/formpays-pro\/assets\/screenshot-10.jpg?rev=3379945","caption":"One transaction, with receipt and refund."},{"src":"https:\/\/ps.w.org\/formpays-pro\/assets\/screenshot-11.jpg?rev=3379945","caption":"Analytics."},{"src":"https:\/\/ps.w.org\/formpays-pro\/assets\/screenshot-12.jpg?rev=3379945","caption":"Reordering form fields."},{"src":"https:\/\/ps.w.org\/formpays-pro\/assets\/screenshot-13.jpg?rev=3385037","caption":"Email notification templates."}],"raw_content":"<!--section=description-->\n<p>FormPays Pro builds contact forms and payment forms, then reports how people use them. A form can collect a message with no charge, or take a payment through Stripe, Adyen, Razorpay, PayU, PhonePe, PayPal, or Instamojo. Stripe and Adyen also offer Apple Pay and Google Pay. Analytics records views, submissions, and payments for each form.<\/p>\n\n<h4>Forms<\/h4>\n\n<ul>\n<li>Create any number of forms, with required fields, help text, validation, and conditional logic. Website and consent fields are included.<\/li>\n<li>Start from a template under FormPays Pro \u2192 Templates. Categories include business, ecommerce, donation, event, contact, and multi-step. Use Template creates the form and opens it in the editor.<\/li>\n<li>Add a Form Step field to split a form into steps with Previous, Next, and Submit.<\/li>\n<li>Embed a form with <code>[formpays_pro_payment_form id=\"123\"]<\/code>, the FormPays Pro Form block, or the FormPays Pro Form module in Elementor, Divi, Beaver Builder, WPBakery, and SiteOrigin.<\/li>\n<li>Turn Payment Collection off to use the form as a contact form. The submission is stored and emailed to the site admin. No gateway is called.<\/li>\n<li>Open FormPays Pro \u2192 Integrations to send a submission to a webhook, Zapier, Make, Slack, Mailchimp, Google Sheets, or the other included tools. Contact form success is included.<\/li>\n<li>Turn analytics on or off for each form. Open FormPays Pro \u2192 Analytics for views, starts, submissions, abandons, validation errors, and payment results, plus a conversion rate. Records older than 90 days are removed.<\/li>\n<\/ul>\n\n<h4>Payments<\/h4>\n\n<ul>\n<li>Charge a fixed amount, an amount the customer chooses, or one of several options.<\/li>\n<li>Show only the currencies the selected gateway accepts.<\/li>\n<li>Offer a single payment, installments, or a subscription.<\/li>\n<li>Let the customer save the form and pay later, or pick a date and time slot for the payment link.<\/li>\n<li>Apply a coupon on the server. Set a percent or fixed discount, an optional form, a minimum amount, an expiry, and a usage limit.<\/li>\n<li>Email one reminder when a checkout stays pending, and let the customer retry the same payment from a signed link.<\/li>\n<\/ul>\n\n<h4>After payment<\/h4>\n\n<ul>\n<li>Refund a successful payment, in full or in part, from the transaction screen.<\/li>\n<li>Download a PDF receipt. Turn on GST to show taxable value and CGST\/SGST or IGST. The amount collected is treated as tax-inclusive.<\/li>\n<li>Give each successful payment the next invoice number, such as FP-2026-00041.<\/li>\n<li>Download a form's transactions as CSV, JSON, PDF, or Excel, or email those files on a daily, weekly, or monthly schedule.<\/li>\n<li>Send a signed notice to a URL you choose when a payment succeeds, fails, or is refunded.<\/li>\n<\/ul>\n\n<h4>Gateways<\/h4>\n\n<ul>\n<li>Stripe: cards, Apple Pay, and Google Pay. Apple Pay and Google Pay appear on the Stripe checkout page when the customer's device supports them.<\/li>\n<li>Adyen: cards, Apple Pay, and Google Pay on an Adyen payment link.<\/li>\n<li>Razorpay: cards, UPI, net banking, and wallets.<\/li>\n<li>PayU: cards, UPI, net banking, and wallets.<\/li>\n<li>PhonePe: UPI and other Indian payment methods.<\/li>\n<li>PayPal: cards and PayPal balance.<\/li>\n<li>Instamojo: cards, UPI, and net banking.<\/li>\n<li>A test gateway for development. It accepts a payment only while test mode is on.<\/li>\n<\/ul>\n\n<p>Stripe, Razorpay, and PayPal can bill later subscription periods. PhonePe, PayU, and Instamojo email a link when the next period is due.<\/p>\n\n<h4>Security<\/h4>\n\n<ul>\n<li>The amount is calculated on the server. A submitted total cannot lower the charge.<\/li>\n<li>Return URLs and webhooks confirm the paid amount and currency before a payment is marked successful.<\/li>\n<li>Gateway credentials are encrypted.<\/li>\n<li>Checkout is rate limited, and a hidden field blocks empty spam submissions. Cloudflare Turnstile or Google reCAPTCHA can be required from Settings.<\/li>\n<li>Once an hour, a pending checkout is checked with the gateway. It is marked successful only when the amount and currency match.<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>The plugin contacts a payment gateway only when that gateway is enabled and a customer submits a form that uses it. Card numbers are handled by the gateway and are not stored on the site.<\/p>\n\n<h4>Razorpay<\/h4>\n\n<p>Razorpay processes the payment. The plugin sends the customer name, email, mobile number, amount, currency, and order details.<\/p>\n\n<ul>\n<li>Service: https:\/\/razorpay.com\/<\/li>\n<li>Terms: https:\/\/razorpay.com\/terms\/<\/li>\n<li>Privacy: https:\/\/razorpay.com\/privacy\/<\/li>\n<\/ul>\n\n<h4>PayU<\/h4>\n\n<p>PayU processes the payment. The plugin sends the customer name, email, mobile number, amount, currency, and order details.<\/p>\n\n<ul>\n<li>Service: https:\/\/payu.in\/<\/li>\n<li>Terms: https:\/\/payu.in\/terms-of-use<\/li>\n<li>Privacy: https:\/\/payu.in\/privacy-policy<\/li>\n<\/ul>\n\n<h4>PhonePe<\/h4>\n\n<p>PhonePe processes the payment. The plugin sends the customer name, email, mobile number, amount, currency, and order details.<\/p>\n\n<ul>\n<li>Service: https:\/\/www.phonepe.com\/<\/li>\n<li>Terms: https:\/\/www.phonepe.com\/terms-and-conditions\/<\/li>\n<li>Privacy: https:\/\/www.phonepe.com\/privacy-policy\/<\/li>\n<\/ul>\n\n<h4>Adyen<\/h4>\n\n<p>Adyen processes the payment, including cards, Apple Pay, and Google Pay on the Adyen payment page. The plugin sends the customer name, email, amount, currency, and order reference. Card numbers are entered on Adyen and are not stored on the site.<\/p>\n\n<ul>\n<li>Service: https:\/\/www.adyen.com\/<\/li>\n<li>Terms: https:\/\/www.adyen.com\/legal\/terms-and-conditions<\/li>\n<li>Privacy: https:\/\/www.adyen.com\/policies-and-disclaimer\/privacy-policy<\/li>\n<\/ul>\n\n<h4>Stripe<\/h4>\n\n<p>Stripe processes the payment, including Apple Pay and Google Pay on the Stripe checkout page. The plugin sends the customer email, amount, currency, and order details. Card numbers are entered on Stripe and are not stored on the site.<\/p>\n\n<ul>\n<li>Service: https:\/\/stripe.com\/<\/li>\n<li>Terms: https:\/\/stripe.com\/legal\/ssa<\/li>\n<li>Privacy: https:\/\/stripe.com\/privacy<\/li>\n<\/ul>\n\n<h4>PayPal<\/h4>\n\n<p>PayPal processes the payment. The plugin sends the customer name, email, amount, currency, and order details.<\/p>\n\n<ul>\n<li>Service: https:\/\/www.paypal.com\/<\/li>\n<li>Terms: https:\/\/www.paypal.com\/legalhub\/useragreement-full<\/li>\n<li>Privacy: https:\/\/www.paypal.com\/legalhub\/privacy-full<\/li>\n<\/ul>\n\n<h4>Instamojo<\/h4>\n\n<p>Instamojo processes the payment. The plugin sends the customer name, email, mobile number, amount, currency, and order details.<\/p>\n\n<ul>\n<li>Service: https:\/\/www.instamojo.com\/<\/li>\n<li>Terms: https:\/\/www.instamojo.com\/terms\/<\/li>\n<li>Privacy: https:\/\/www.instamojo.com\/privacy\/<\/li>\n<\/ul>\n\n<h4>Cloudflare Turnstile and Google reCAPTCHA<\/h4>\n\n<p>These run only when you select one under FormPays Pro \u2192 Settings and save its site key and secret. The checkout then loads that provider's script, and the plugin sends the visitor's token to the provider to confirm it.<\/p>\n\n<ul>\n<li>Cloudflare Turnstile: https:\/\/www.cloudflare.com\/products\/turnstile\/<\/li>\n<li>Cloudflare privacy: https:\/\/www.cloudflare.com\/privacypolicy\/<\/li>\n<li>Google reCAPTCHA: https:\/\/developers.google.com\/recaptcha<\/li>\n<li>Google privacy: https:\/\/policies.google.com\/privacy<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>In WordPress, go to Plugins \u2192 Add New \u2192 Upload Plugin and select the plugin ZIP file.<\/li>\n<li>Click Install Now, then Activate.<\/li>\n<li>Open FormPays Pro \u2192 Settings, enable a gateway, and save its credentials.<\/li>\n<li>Open FormPays Pro \u2192 Forms \u2192 Add New. Leave Payment Collection on for a payment form, or turn it off for a contact form. Save the form and place its shortcode on a page.<\/li>\n<\/ol>\n\n<p>The site needs WordPress 5.0 or later and PHP 7.4 or later. Use HTTPS when you accept live payments.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20i%20use%20it%20as%20a%20contact%20form%3F\"><h3>Can I use it as a contact form?<\/h3><\/dt>\n<dd><p>Yes. On the form, set Payment Collection to Disabled (Data Collection Only). The answers are saved and emailed to the site admin. No payment gateway is used. Contact Form and Support Ticket are available as templates.<\/p><\/dd>\n<dt id=\"where%20do%20i%20see%20analytics%3F\"><h3>Where do I see analytics?<\/h3><\/dt>\n<dd><p>Open FormPays Pro \u2192 Analytics. Each form can turn analytics on or off from its Share tab. The report shows views, submissions, abandons, and the conversion rate from views to completed submissions.<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20a%20form%20to%20a%20page%3F\"><h3>How do I add a form to a page?<\/h3><\/dt>\n<dd><p>Create the form under FormPays Pro \u2192 Forms. Copy the shortcode from the form's Share tab and paste it into a page:<\/p>\n\n<pre><code>[formpays_pro_payment_form id=\"123\"]\n<\/code><\/pre>\n\n<p>Replace 123 with the form's ID.<\/p>\n\n<p>You can also add the FormPays Pro Form block in the editor and choose the form.<\/p>\n\n<p>Elementor, Divi, Beaver Builder, WPBakery, and SiteOrigin Page Builder list FormPays Pro Form when that builder is installed. Choose the form in the module. SiteOrigin uses the FormPays Pro Form widget.<\/p><\/dd>\n<dt id=\"which%20currencies%20can%20a%20form%20use%3F\"><h3>Which currencies can a form use?<\/h3><\/dt>\n<dd><p>The currency list follows the gateway selected on that form. A currency the gateway does not accept cannot be saved.<\/p><\/dd>\n<dt id=\"how%20do%20refunds%20and%20receipts%20work%3F\"><h3>How do refunds and receipts work?<\/h3><\/dt>\n<dd><p>Open the transaction and use Refund or the receipt download. Receipts are also linked from the payment email. GST and the invoice prefix are under FormPays Pro \u2192 Coupons &amp; GST.<\/p><\/dd>\n<dt id=\"how%20do%20subscriptions%20renew%3F\"><h3>How do subscriptions renew?<\/h3><\/dt>\n<dd><p>On Stripe, Razorpay, and PayPal, the first checkout starts a subscription and later periods are billed by the gateway. For Stripe, listen for <code>checkout.session.completed<\/code> and <code>invoice.paid<\/code>. Turn on <code>subscription.charged<\/code> and <code>payment.captured<\/code> in the Razorpay webhook, and <code>PAYMENT.SALE.COMPLETED<\/code> in the PayPal webhook, so those renewals are recorded.<\/p>\n\n<p>On PhonePe, PayU, and Instamojo, the customer receives an email with a link when the next period is due.<\/p><\/dd>\n<dt id=\"how%20do%20i%20test%20a%20payment%3F\"><h3>How do I test a payment?<\/h3><\/dt>\n<dd><p>Enable test mode for the gateway and use the test credentials from that gateway's dashboard. The plugin's test gateway can complete a signed payment only while its test mode is on.<\/p><\/dd>\n<dt id=\"what%20if%20the%20form%20or%20the%20payment%20does%20not%20complete%3F\"><h3>What if the form or the payment does not complete?<\/h3><\/dt>\n<dd><p>Confirm the form is active, the shortcode ID matches the form, and the gateway credentials and webhook secret are saved. A pending payment is checked again within an hour. It is marked successful only when the gateway confirms the amount and currency.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.8<\/h4>\n\n<ul>\n<li>The Adyen icon on the gateway settings screen uses Adyen green, so the letter stays visible.<\/li>\n<li>Form fields can include help text, a website address, and a consent checkbox. Number fields can set a minimum, maximum, and step.<\/li>\n<li>Dropdown, radio, and checkbox options can use Label|value when the stored answer should differ from the label. Phone numbers may include spaces, dashes, and parentheses.<\/li>\n<li>Date, file, address, rating, slider, HTML, section, and calculation settings are saved with the field.<\/li>\n<li>Checkout protection and signed notifications are on the Settings screen. Site key and secret key appear for Turnstile or reCAPTCHA, with a link to the page that issues them. Each gateway links to the page that issues its keys. Server limits are at the bottom of Settings.<\/li>\n<li>A gateway switch turns green as soon as it is on, and gray as soon as it is off. An enabled gateway shows Production Live or Sandbox Test, and Integration Info says whether live keys or test keys are in use.<\/li>\n<li>The forms list keeps the counts together, shows each form's details on one line, and shows Not set when no gateway is chosen.<\/li>\n<li>Dragging a field stays with the pointer. Editor shortcuts use Option+Shift on Mac and Alt+Shift on Windows: N adds a field, S saves, B toggles bulk select, A selects all fields, and Esc cancels.<\/li>\n<li>Conditional logic can add a rule group. A rule shows, hides, enables, or disables a field when another field matches, and the public form applies those rules.<\/li>\n<li>The Start from Scratch and Quick Template icons line up with their labels.<\/li>\n<li>The same form can be inserted from the FormPays Pro Form block, and from Elementor, Divi, Beaver Builder, WPBakery, and SiteOrigin when that builder is active.<\/li>\n<li>Integrations is its own menu. A form can send to a webhook, Zapier, Make, Pabbly, n8n, Integrately, IFTTT, Slack, Telegram, Mailchimp, Brevo, MailerLite, ActiveCampaign, FluentCRM, MailPoet, or Google Sheets. Contact form success is included.<\/li>\n<li>Templates is its own menu. Choose a category, then use the template to create that form and open it in the editor.<\/li>\n<li>A Form Step field splits a form into steps with Previous, Next, and Submit. The Multi-step template includes those steps.<\/li>\n<li>Email notifications use the same list and detail layout as Settings.<\/li>\n<li>An empty form shows Add Field instead of the drag-and-drop notice.<\/li>\n<\/ul>\n\n<h4>1.2.7<\/h4>\n\n<ul>\n<li>Adyen payment links for cards, Apple Pay, and Google Pay. The webhook must send AUTHORISATION notifications, signed with the HMAC key.<\/li>\n<li>The FormPays Pro Form block inserts a form from the editor.<\/li>\n<\/ul>\n\n<h4>1.2.6<\/h4>\n\n<ul>\n<li>Stripe Checkout for cards, Apple Pay, and Google Pay. Apple Pay and Google Pay appear when the customer's device supports them.<\/li>\n<li>A Stripe subscription bills later periods. Listen for checkout.session.completed and invoice.paid so those payments are recorded.<\/li>\n<li>Refund a Stripe payment from the transaction screen.<\/li>\n<\/ul>\n\n<h4>1.2.5<\/h4>\n\n<ul>\n<li>Invoice numbers: a successful payment receives the next number. Set the prefix under Coupons &amp; GST.<\/li>\n<li>Pending payments: once an hour, a pending checkout is confirmed with the gateway and marked successful only when the amount and currency match.<\/li>\n<li>Spam protection: checkout includes a hidden field. Turnstile or reCAPTCHA can be required from Coupons &amp; GST.<\/li>\n<li>Notifications: a success, failure, or refund can send a signed JSON body to a URL you choose.<\/li>\n<li>Renewals: a Razorpay or PayPal subscription bills later periods automatically. If that cannot be started, the customer still receives a payment link.<\/li>\n<\/ul>\n\n<h4>1.2.4<\/h4>\n\n<ul>\n<li>The CSV export is built in memory. Plugin Check no longer reports a filesystem error for closing that stream.<\/li>\n<\/ul>\n\n<h4>1.2.3<\/h4>\n\n<ul>\n<li>Export formats selected on a form can be downloaded from that form. Auto export emails those files on the daily, weekly, or monthly schedule.<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Single payment charges the full amount. Installments charge the first share now and collect the rest from a signed link. Subscriptions charge one period now and email a link for the next period.<\/li>\n<li>Partial payments let the customer save the form and pay later from an emailed link.<\/li>\n<li>Currency conversion shows approximate amounts in the gateway's other currencies. The charge stays in the form currency.<\/li>\n<li>Payment scheduling lets the customer pick a date and time slot. The payment link is emailed when that time arrives.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Coupons &amp; GST opens its admin screen instead of the site home page.<\/li>\n<li>Plugin Check compatibility for a WordPress 6.1-only cache call, the Razorpay retry script, translator comments, and an invalid-link message.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Refund a successful payment, in full or in part, from the transaction screen.<\/li>\n<li>Download a PDF receipt. GST can show taxable value and CGST\/SGST or IGST. The amount collected is treated as tax-inclusive.<\/li>\n<li>Add coupon codes with an optional form, minimum amount, expiry, and usage limit.<\/li>\n<li>Email a customer who leaves checkout pending, with a link to continue.<\/li>\n<li>Retry a failed or pending payment from the result page or the email without creating a second transaction.<\/li>\n<\/ul>\n\n<h4>1.1.4<\/h4>\n\n<ul>\n<li>Payment amounts are calculated on the server. A submitted total cannot lower the charge.<\/li>\n<li>Return URLs and webhooks confirm the paid amount and currency before a transaction is marked successful.<\/li>\n<li>Razorpay webhooks require a valid signature. PhonePe, PayPal, Instamojo, and PayU callbacks are confirmed with the gateway before success is recorded.<\/li>\n<li>The test gateway accepts a payment only while test mode is on.<\/li>\n<li>Gateway secrets are encrypted and are not stored in plain text when encryption fails.<\/li>\n<li>Form submissions are sanitized and rate limited, and payment redirects are limited to this site or the payment gateway.<\/li>\n<li>Customer details are escaped on payment result pages and in notification emails.<\/li>\n<li>Tested with WordPress 7.1.<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Added email notifications for payment success and failure, with editable templates and a test email.<\/li>\n<li>Razorpay checkout receives the selected payment method and a formatted phone number.<\/li>\n<li>Fixed the transaction time on the success page and a deprecated dynamic property warning.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Admin redirects use wp_safe_redirect().<\/li>\n<li>Admin screens no longer overwrite the WordPress page, status, or per_page globals.<\/li>\n<li>Nonce checks cover the admin actions.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Moved inline admin scripts into files.<\/li>\n<li>Formatting and documentation updates for the WordPress coding standards.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added the PhonePe gateway.<\/li>\n<li>Stronger webhook and nonce checks.<\/li>\n<li>Admin and form builder updates.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release with Razorpay, PayU, the form builder, transactions, email notices, and webhooks.<\/li>\n<\/ul>","raw_excerpt":"Contact and payment forms with analytics, Stripe, Adyen, Apple Pay, Google Pay, and Razorpay, PayU, PhonePe, PayPal, and Instamojo.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/arq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/252128","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/arq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/arq.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/arq.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=252128"}],"author":[{"embeddable":true,"href":"https:\/\/arq.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/versionnext"}],"wp:attachment":[{"href":"https:\/\/arq.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=252128"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/arq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=252128"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/arq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=252128"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/arq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=252128"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/arq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=252128"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/arq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=252128"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}