Finance
Payment Gateways

Payment Gateway Setup

Payment gateways let your clients settle invoices online instead of arranging a manual transfer. Once a gateway is configured and enabled, an online payment option appears on the invoice your client opens, and the resulting payment is recorded in PMSuite against that invoice.

Gateway credentials are configured per company under Settings → Payment Credentials.

Who can use it

Company Admin. Configuring payment credentials is a company-level settings action, not something employees or clients can change.

Prerequisites

  • An account with the payment provider, with access to its API credentials (keys are generated in the provider's own dashboard).
  • A currency your provider accepts. Invoice currencies come from Settings → Currency Settings (GBP is the system default until you change it) — make sure the gateway you enable handles the currency you actually invoice in.

How to Access

Navigation: Sidebar → Settings → Payment Credentials URL: /account/settings/payment-gateway-settings

Related finance screens: Invoices at /account/invoices, Payments at /account/payments.

Which gateways actually work

These are the payment options this guide covers, and the ones to reach for when setting up online collection:

OptionType
StripeOnline gateway
MollieOnline gateway
Authorize.netOnline gateway
SquareOnline gateway
Offline Payment MethodManual — you reconcile and record the payment yourself

Tabs you may see that are not usable

The Payment Credentials screen also renders tabs for Razorpay, Paystack, Flutterwave and PayFast (some under the More dropdown). These gateways have been removed from the product: the tab still renders and will still accept credentials, but there is no working payment route behind it, so no payment can be completed through them. Do not rely on them.

Workaround: use one of the supported gateways above for card/online collection, and Offline Payment Method for any region or method a supported gateway does not cover — you record the transfer against the invoice manually once it lands, and the invoice status and reports update the same way.

Easypaisa has been removed entirely and no longer has a tab on the screen at all.

Configuring Stripe

Step 1: In the Stripe dashboard, generate your API credentials.

Step 2: In PMSuite, go to Settings → Payment Credentials → Stripe.

Step 3: Complete the fields:

FieldNotes
Environment (Test / Live)Toggle. Use Test while validating, then switch to Live.
Publishable KeyFrom your Stripe dashboard.
Secret KeyFrom your Stripe dashboard.
Webhook Signing SecretUsed to verify Stripe's callbacks to PMSuite.
Webhook URLShown by PMSuite — register this URL in Stripe.

Step 4: Save.

Keep the environment toggle and the keys consistent: test keys with Test, live keys with Live.

Configuring Mollie, Authorize.net and Square

Each has its own tab on the same Payment Credentials screen. Open the tab, enter the credentials issued by that provider's own dashboard, and save. Field names mirror whatever the provider calls them, so copy them across exactly as issued.

As with Stripe, keep sandbox/test credentials paired with the provider's test mode and switch to live credentials only when you are ready to collect real money. A payment is recorded against the invoice once the provider confirms it, not at the moment the client submits the form.

Offline Payment Method

Offline Payment Method is not a gateway — it is a manual path. The client pays you by whatever means you have agreed (bank transfer, cash, cheque), and you record the payment in PMSuite. It stays available alongside any online gateway, and it is the fallback for currencies, countries or payment rails no supported gateway handles.

Effect on other features

  • Invoices: an invoice is marked Paid only once the gateway confirms the payment (for example, PMSuite waits for Stripe's confirmation rather than assuming success at checkout). Partial settlement shows as Partially Paid.
  • Payments: gateway payments land in /account/payments with Transaction ID, Exchange Rate and Bank Account available as columns, filters and export fields.
  • Deleting a payment removes only the payment row — the invoice it was attached to is not deleted.
  • Send status vs payment status are tracked separately: an invoice can be Sent and still Unpaid, or Paid without ever being formally Sent.

Limitations

  • Removed gateways still show tabs. Razorpay, Paystack, Flutterwave and PayFast cannot process payments even though their credential tabs render. Workaround: use Stripe, Mollie, Authorize.net or Square, plus Offline Payment Method for anything they do not cover.
  • Currency coverage is the provider's, not PMSuite's. If your gateway will not settle a currency you invoice in, PMSuite cannot force it. Workaround: invoice in a currency the gateway supports, enable a second supported gateway, or collect that invoice via Offline Payment Method.
  • Sandbox activity is not real revenue. Test/sandbox payments can look like collections at a glance. Workaround: keep the environment toggle on Live for production, and check each row's Transaction ID on /account/payments against the provider's live dashboard before treating it as real revenue.

Troubleshooting

Payments never complete for Razorpay / Paystack / Flutterwave / PayFast

Cause: the gateway has been removed from PMSuite; only the credential tab remains. Fix: move the client to a supported gateway (Stripe, Mollie, Authorize.net, Square) or record the payment through Offline Payment Method.

Payments process but no real money arrives

Cause: the gateway is still in Test/sandbox — either the environment toggle or the keys themselves. Fix: in Settings → Payment Credentials, set the environment to Live and confirm the saved keys are the live keys, not test keys. Re-check the provider dashboard afterwards to confirm a real transaction appears.

Invoice still shows Unpaid after the client paid

Cause: PMSuite marks the invoice Paid on the gateway's confirmation. If webhooks are not reaching PMSuite (wrong or unregistered webhook URL, missing signing secret), that confirmation never arrives. Fix: re-copy the Webhook URL from the Stripe tab into your Stripe dashboard and re-enter the Webhook Signing Secret, then save. In the meantime, record the payment manually at /account/payments/create so the invoice and reports stay accurate.

A gateway tab you expected is missing

Cause: the tab list depends on what the company's Payment Credentials screen renders; some tabs sit under More ↓, and Easypaisa was removed outright. Fix: if the gateway you need is one of the supported options and its tab is not showing, reload the Payment Credentials page and check under More; if it is a removed gateway, it will not return — use a supported gateway or Offline Payment Method.

Currency is rejected at checkout

Cause: the provider does not settle that currency for your account. Fix: change the invoice currency to one your provider supports (Settings → Currency Settings governs the list), enable an additional supported gateway, or collect offline.

Related Articles