

Your invoices, estimates and what you're owed at a glance.
PaidSeal is a free WordPress invoicing and payments plugin. Add a Pay button, a Request-a-Quote form, or a Client Portal to any page or post — with a block or a shortcode, no code required. Your customers pay by card, PayPal, Venmo, Cash App, Zelle, bank transfer, or a local method like M-Pesa and MTN MoMo, and the money lands in your own account.
Unlike a single-gateway payment plugin, PaidSeal lets you accept any payment method on Earth and send professional invoices and estimates from one place. Set-up is one click: Connect PaidSeal — there are no API keys to copy and no card data ever touches your website.
You need a free PaidSeal account (https://paidseal.com). The free plan sends real invoices with working payment links.
Blocks: PaidSeal Pay Button, Request a Quote, Client Portal.
Shortcodes for existing pages:
[paidseal_pay id="INVOICE_ID"] — a Pay button for one invoice.[paidseal_quote] — a quote-request form; leads are emailed to you.[paidseal_portal client="CLIENT_ID"] — a client’s invoice portal.When an invoice is paid, PaidSeal sends a signed webhook to your site and the plugin fires WordPress hooks you can use to unlock content, notify a CRM, send an email, etc. (Requires a public HTTPS site; the event is verified with an HMAC signature, so only genuine PaidSeal events fire the hooks.)
add_action( 'paidseal_invoice_paid', function ( $data ) { /* invoice fully paid: $data['invoice']['number'], ['amount'], ['currency'] */ } );
add_action( 'paidseal_payment', function ( $data ) { /* any payment received */ } );<h3>Privacy</h3>
The plugin renders the Pay/Portal buttons and the quote form on your own server — no third-party script runs in your visitors’ browsers. Payment pages are hosted by PaidSeal; no card data is processed on your site. The plugin stores only a publishable connection key.
This plugin connects to the PaidSeal service (operated by Zenith Intelligence Technologies) to provide invoicing, payments and quote widgets. This connection is required for the plugin to work.
What is sent, and when:
Service terms and privacy policy: