Documentation

Find documentation for our Joomla extensions on this page.

JoomInvoice - Payment Gateways

JoomInvoice supports several online payment gateways, plus offline/manual payments. Each gateway is a separate Joomla plugin that you can enable and configure independently.

Managing Payment Gateways

  1. Go to Extensions > Plugins.
  2. Search for joominvoice.
  3. You will see the available payment plugins. Enable the ones you want to use.
  4. Click on a plugin to configure its settings.

You can also access payment plugin settings from Components > JoomInvoice > Payment Options in the sidebar.


PayPal

Accepts payments through PayPal. Clients are redirected to PayPal's checkout page to complete the payment.

Setup

  1. Enable the Payment - PayPal plugin.
  2. Configure:
    • PayPal Email - Your PayPal merchant email address.
    • Sandbox Mode - Enable this for testing. Disable for live payments.
  3. Save.

How It Works

  1. Client clicks "Pay Now" on an unpaid payment.
  2. They are redirected to PayPal to complete the payment.
  3. PayPal sends a notification back to your site confirming the payment.
  4. JoomInvoice automatically marks the payment as paid.

Setting Up PayPal IPN

PayPal uses Instant Payment Notification (IPN) to confirm payments. This is handled automatically - no additional configuration is needed on your site. Just make sure your server can receive incoming HTTP requests from PayPal.


Stripe

Accepts credit card payments through Stripe's hosted checkout page. This is the recommended gateway for credit card payments.

Setup

  1. Enable the Payment - Stripe plugin.
  2. Configure:
    • Test Secret Key and Test Publishable Key - From your Stripe Dashboard (for testing).
    • Live Secret Key and Live Publishable Key - From your Stripe Dashboard (for real payments).
    • Mode - Set to Test while setting up, switch to Live when ready.
    • Use Webhooks - Recommended. Ensures payments are recorded even if the client closes their browser.
    • Webhook Secret - Required if using webhooks (see below).
    • Billing Address - Whether to ask for the client's billing address during checkout.
    • Description - Optional text shown on the payment form.
  3. Save.

How Payments Work

  1. Client clicks "Pay Now".
  2. JoomInvoice creates a Stripe Checkout session.
  3. The client is redirected to Stripe's secure checkout page.
  4. After payment, Stripe confirms the transaction.
  5. JoomInvoice marks the payment as paid.

Setting Up Stripe Webhooks (Recommended)

Webhooks are the most reliable way to confirm payments. Without them, if a client closes their browser before being redirected back to your site, the payment might not be recorded.

  1. Log in to your Stripe Dashboard.
  2. Go to Developers > Webhooks.
  3. Click Add endpoint.
  4. Enter this URL (replace with your site's address):
    https://yoursite.com/index.php?option=com_joominvoice&task=process_payment&ptype=payment_stripe&paction=webhook
    
  5. Select the event checkout.session.completed.
  6. Click Add endpoint.
  7. Copy the Signing secret that Stripe shows you.
  8. Paste it into the plugin's Webhook Secret field.
  9. Save the plugin.

Without Webhooks

If you do not use webhooks, payments are confirmed when the client is redirected back to your site after paying. This works in most cases but is less reliable if the client closes their browser during the redirect.

Stripe Customer Linking

When a client pays with Stripe, their Stripe customer ID is saved to their JoomInvoice contact. This links returning customers to their Stripe account automatically.


Square

Accepts card payments through Square's hosted checkout page (Square Payment Links). Clients are redirected to a Square-hosted page to pay, then returned to your site.

Setup

  1. Enable the Payment - Square plugin.
  2. Configure:
    • Mode - Sandbox for testing, Production for real payments.
    • Sandbox Access Token and Sandbox Location ID - from the Square Developer Dashboard (Sandbox); used in Sandbox mode.
    • Access Token and Location ID - your live credentials; used in Production mode.
    • Enable Webhooks - Recommended. Ensures payments are recorded even if the client closes their browser.
    • Webhook Signature Key - Required if using webhooks (see below).
    • Require shipping address - Whether Square asks the buyer for a shipping address.
    • Tab title / Description - Label and text shown on the payment form.
  3. Save.

Important - currency must match your Square location. Square only accepts payments in the currency of your Square account's country (for example, a US Square account accepts only USD). The invoice currency must match, or Square rejects the payment.

How Payments Work

  1. Client clicks "Pay Now".
  2. JoomInvoice creates a Square payment link (hosted checkout).
  3. The client is redirected to Square's secure checkout page.
  4. After payment, the client returns to your site; JoomInvoice verifies the order directly with Square and marks the payment as paid.

Setting Up Square Webhooks (Recommended)

Webhooks are the most reliable way to confirm payments - they record the payment even if the client closes their browser before returning to your site.

  1. Log in to the Square Developer Dashboard and open your application.
  2. Go to Webhooks > Subscriptions and click Add Endpoint.
  3. Enter this Notification URL (replace with your site's address; it must be HTTPS and match your site's canonical URL exactly):
    https://yoursite.com/index.php?option=com_joominvoice&task=process_payment&ptype=payment_square&paction=webhook
    
  4. Subscribe to the event payment.updated.
  5. Save, then copy the Signature Key.
  6. Paste it into the plugin's Webhook Signature Key field, set Enable Webhooks to Yes, and save.

Authorize.net

Two Authorize.net integration plugins are available. Configure them with your Authorize.net API credentials.

Enable the appropriate plugin and enter your API Login ID and Transaction Key from your Authorize.net merchant account.

Offline / Manual Payments

For bank transfers, checks, cash, or any payment method handled outside of JoomInvoice.

Setup

  1. Enable the Payment - Offline plugin.
  2. Configure the payment instructions text. This is what the client sees when they choose to pay offline (e.g., your bank account number, payment reference format, mailing address for checks).
  3. Save.

How It Works

  1. Client sees the offline payment instructions on the payment page.
  2. Client makes the payment outside of JoomInvoice (bank transfer, check, etc.).
  3. You manually mark the payment as Paid in the admin panel once you receive it.

Testing Payments

Before going live, test your payment setup:

  1. Enable Test or Sandbox mode on the payment plugin.
  2. Use the test credentials provided by the gateway (Stripe test keys, PayPal sandbox account, etc.).
  3. Create a test invoice with a payment.
  4. Publish the invoice.
  5. Open the payment link on the frontend (you can find the link in the invoice detail or by copying the payment URL).
  6. Complete the test payment.
  7. Check the admin panel to verify the payment status updated correctly.
  8. Once everything works, switch the plugin to Live mode and enter your real credentials.

Square sandbox note: In Sandbox mode, clicking the Square pay button opens Square's Checkout API Sandbox Testing Panel (a simulator) instead of a card form. Click through Overview → Test Payment → Checkout Complete to simulate a successful payment, then you are redirected back to JoomInvoice. (In Production, clients see the normal Square card checkout.)

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.

Ok