{"id":705,"date":"2026-10-20T09:05:52","date_gmt":"2026-10-20T08:05:52","guid":{"rendered":"https:\/\/wpgetpaid.com\/documentation\/article\/getpaid-payments-faq\/"},"modified":"2026-10-20T09:05:52","modified_gmt":"2026-10-20T08:05:52","slug":"getpaid-payments-faq","status":"publish","type":"gd_place","link":"https:\/\/wpgetpaid.com\/documentation\/article\/discounts\/getpaid-payments-faq\/","title":{"rendered":"GetPaid payments FAQ"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Answers to common GetPaid questions about payments. Click a question to open the answer.<\/p>\n\n\n\n<div class=\"wp-block-blockstrap-blockstrap-widget-accordion accordion mb-3\">\n<div class=\"accordion-item\" id=\"heading-stripe-invalid-email-address\"><h2 class=\"accordion-header\"><button class=\"accordion-button\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-stripe-invalid-email-address\" aria-expanded=\"true\" aria-controls=\"collapse-stripe-invalid-email-address\">Why does Stripe show &quot;Invalid email address&quot; at checkout?<\/button><\/h2><div class=\"accordion-collapse collapse show\" id=\"collapse-stripe-invalid-email-address\" aria-labelledby=\"heading-stripe-invalid-email-address\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">Stripe needs a valid email address for the customer, and GetPaid takes it from the Billing Email field on the payment form. GetPaid will not process a payment without one and shows &#8220;Provide a valid billing email.&#8221; This often only shows up when you test as a new, logged out customer, so a test as a logged in admin can work fine.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Edit the payment form under GetPaid &gt; Payment Forms and check that the Billing Email field is on the form.<\/li>\n\n\n\n<li>Update GetPaid and the Stripe add-on to the latest versions.<\/li>\n\n\n\n<li>Exclude the checkout page from any page cache, then test again in a private browser window with a real email address.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The <a href=\"https:\/\/wpgetpaid.com\/documentation\/article\/payment-gateways\/stripe\/\">Stripe setup guide<\/a> covers the rest of the gateway settings.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-recurring-limit-reached\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-recurring-limit-reached\" aria-expanded=\"false\" aria-controls=\"collapse-recurring-limit-reached\">Why did my recurring package stop after a set number of payments?<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-recurring-limit-reached\" aria-labelledby=\"heading-recurring-limit-reached\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">A recurring GeoDirectory price package can have a Recurring limit, the number of times the customer is billed. Once a subscription has been billed that many times, GetPaid marks it Complete and takes no more payments. Set the limit to 0 if you want the package to bill until it is cancelled.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Recurring packages need a payment gateway that supports subscriptions. GetPaid stops the checkout with &#8220;The selected payment gateway does not support subscription payments.&#8221; otherwise.<\/li>\n\n\n\n<li>You can see each subscription, its status and its payments under GetPaid &gt; Subscriptions. Customers see theirs on the My Subscriptions page (the <code>&#091;&lt;span&gt;&lt;\/span&gt;wpinv_subscriptions&#093;<\/code> shortcode).<\/li>\n\n\n\n<li>Subscriptions are stored in the <code>wpinv_subscriptions<\/code> table, and each payment is a renewal invoice linked to the subscription.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">If you are writing your own gateway, start with <a href=\"https:\/\/wpgetpaid.com\/documentation\/article\/developers-developers\/creating-a-payment-gateway\/\">creating a payment gateway<\/a>.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-renewal-listing-expiry-date\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-renewal-listing-expiry-date\" aria-expanded=\"false\" aria-controls=\"collapse-renewal-listing-expiry-date\">Why doesn&#x27;t a renewal payment change my GeoDirectory listing&#x27;s expiry date?<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-renewal-listing-expiry-date\" aria-labelledby=\"heading-renewal-listing-expiry-date\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">On a recurring price package, the GetPaid subscription keeps the listing live, so the expiry date is not pushed forward with each payment. The GeoDirectory Pricing Manager daily expiry check skips listings on recurring packages while the subscription runs, and each renewal invoice is recorded against the listing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The expiry date comes into play when the subscription stops. If the customer cancels, Pricing Manager sets the listing to expire at the end of the period already paid for. If the subscription expires, the listing moves to the package&#8217;s downgrade package if you set one, or expires.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If a listing on a recurring package expires while its subscription is still active, update GetPaid and Pricing Manager, then check the subscription status under GetPaid &gt; Subscriptions. See also <a href=\"https:\/\/wpgetpaid.com\/documentation\/article\/first-steps\/how-to-enable-recurring-payments\/\">how to enable recurring payments<\/a>.<\/p>\n<\/div><\/div><\/div>\n<\/div>\n<script type=\"application\/ld+json\">{\n    \"@context\": \"https:\/\/schema.org\",\n    \"@type\": \"FAQPage\",\n    \"mainEntity\": [\n        {\n            \"@type\": \"Question\",\n            \"name\": \"Why does Stripe show \\u0022Invalid email address\\u0022 at checkout?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"Stripe needs a valid email address for the customer, and GetPaid takes it from the Billing Email field on the payment form. GetPaid will not process a payment without one and shows \\u0022Provide a valid billing email.\\u0022 This often only shows up when you test as a new, logged out customer, so a test as a logged in admin can work fine.\\n\\n\\n\\n\\nEdit the payment form under GetPaid \\u003E Payment Forms and check that the Billing Email field is on the form.\\n\\n\\n\\nUpdate GetPaid and the Stripe add-on to the latest versions.\\n\\n\\n\\nExclude the checkout page from any page cache, then test again in a private browser window with a real email address.\\n\\n\\n\\n\\nThe Stripe setup guide covers the rest of the gateway settings.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"Why did my recurring package stop after a set number of payments?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"A recurring GeoDirectory price package can have a Recurring limit, the number of times the customer is billed. Once a subscription has been billed that many times, GetPaid marks it Complete and takes no more payments. Set the limit to 0 if you want the package to bill until it is cancelled.\\n\\n\\n\\n\\nRecurring packages need a payment gateway that supports subscriptions. GetPaid stops the checkout with \\u0022The selected payment gateway does not support subscription payments.\\u0022 otherwise.\\n\\n\\n\\nYou can see each subscription, its status and its payments under GetPaid \\u003E Subscriptions. Customers see theirs on the My Subscriptions page (the [\\u003Cspan\\u003E\\u003C\/span\\u003Ewpinv_subscriptions] shortcode).\\n\\n\\n\\nSubscriptions are stored in the wpinv_subscriptions table, and each payment is a renewal invoice linked to the subscription.\\n\\n\\n\\n\\nIf you are writing your own gateway, start with creating a payment gateway.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"Why doesn\\u0027t a renewal payment change my GeoDirectory listing\\u0027s expiry date?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"On a recurring price package, the GetPaid subscription keeps the listing live, so the expiry date is not pushed forward with each payment. The GeoDirectory Pricing Manager daily expiry check skips listings on recurring packages while the subscription runs, and each renewal invoice is recorded against the listing.\\n\\n\\n\\nThe expiry date comes into play when the subscription stops. If the customer cancels, Pricing Manager sets the listing to expire at the end of the period already paid for. If the subscription expires, the listing moves to the package\\u0027s downgrade package if you set one, or expires.\\n\\n\\n\\nIf a listing on a recurring package expires while its subscription is still active, update GetPaid and Pricing Manager, then check the subscription status under GetPaid \\u003E Subscriptions. See also how to enable recurring payments.\"\n            }\n        }\n    ]\n}<\/script>","protected":false},"excerpt":{"rendered":"<p>Answers to common GetPaid questions about payments. Click a question to open the answer.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"article\/tags":[],"article\/categories":[220,211],"class_list":["post-705","gd_place","type-gd_place","status-publish","hentry","gd_placecategory-discounts","gd_placecategory-tips-tricks-more"],"_links":{"self":[{"href":"https:\/\/wpgetpaid.com\/documentation\/wp-json\/wp\/v2\/article\/705","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wpgetpaid.com\/documentation\/wp-json\/wp\/v2\/article"}],"about":[{"href":"https:\/\/wpgetpaid.com\/documentation\/wp-json\/wp\/v2\/types\/gd_place"}],"author":[{"embeddable":true,"href":"https:\/\/wpgetpaid.com\/documentation\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wpgetpaid.com\/documentation\/wp-json\/wp\/v2\/comments?post=705"}],"version-history":[{"count":0,"href":"https:\/\/wpgetpaid.com\/documentation\/wp-json\/wp\/v2\/article\/705\/revisions"}],"wp:attachment":[{"href":"https:\/\/wpgetpaid.com\/documentation\/wp-json\/wp\/v2\/media?parent=705"}],"wp:term":[{"taxonomy":"gd_place_tags","embeddable":true,"href":"https:\/\/wpgetpaid.com\/documentation\/wp-json\/wp\/v2\/article\/tags?post=705"},{"taxonomy":"gd_placecategory","embeddable":true,"href":"https:\/\/wpgetpaid.com\/documentation\/wp-json\/wp\/v2\/article\/categories?post=705"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}