Recording Payments
A payment record in PMSuite is how money received against an invoice gets logged. Each payment captures the invoice it settles, the date and amount, the currency and exchange rate used, and the reference details you need later for reconciliation — transaction ID, payment gateway, bank account and a receipt file.
Payments live in the Revenue group of the Finance module, alongside Invoices and Recurring Invoices. Invoices carry three payment statuses — Unpaid, Paid and Partially Paid — so a single invoice can be settled across several payment records.
Who can use it
Company Admin, plus any role granted permission to the Finance module in Settings → Roles & Permissions.
Prerequisites
- At least one invoice must exist to link the payment to.
- If you want to attribute the payment to a bank or cash account, create it first under Bank Account (
/account/bankaccounts). Accounts are of type Bank or Cash. - If the payment is in a currency other than your company default, have the exchange rate to hand — it is recorded per payment.
How to Access
Payments list: Sidebar → Finance → Payments (/account/payments)
Add a payment: /account/payments/create, or the Add Payment quick-create action.
Finance dashboard: /account/finance-dashboard
Payment fields
| Field | Description |
|---|---|
| Project | The project the payment relates to. |
| Invoice | The invoice this payment settles. |
| Paid On | The date the payment was received. |
| Amount | The amount received. Enter the actual amount — less than the invoice total records a partial payment. |
| Currency | The currency the payment was made in. |
| Exchange Rate | The rate used to convert the payment into your company's base currency. |
| Transaction ID | Your reference for the payment — bank reference, cheque number or gateway transaction reference. |
| Payment Gateway | The gateway or method the money came through. |
| Bank Account | The bank or cash account the money landed in. |
| Receipt upload | Attach a receipt or proof of payment file. |
| Remark | Free-text note about the payment. |
Recording a payment
- Go to Finance → Payments and open Add Payment (
/account/payments/create). - Select the Project and the Invoice the money is against.
- Set Paid On to the date the money was actually received, not the date you are entering it.
- Enter the Amount, then the Currency and Exchange Rate if the payment was not in your base currency.
- Fill in Transaction ID, Payment Gateway and Bank Account so the entry can be reconciled later.
- Upload the Receipt and add a Remark if there is context worth keeping.
- Save.
The linked invoice's payment status reflects what has been received: Partially Paid while a balance remains, Paid once the invoice is fully settled.
Partial payments
Record each instalment as its own payment against the same invoice. The invoice sits at Partially Paid until the total received covers it, then moves to Paid.
Deleting a payment
Deleting a payment row removes only that payment — the invoice it was attached to is left intact and its payment status recalculates from the remaining payments.
Filtering, columns and export
The Payments list shows Project, Invoice #, Client, Order #, Amount, Paid On, Payment Gateway and Status. You can narrow the list by date range, status, project and client, and the search box matches on project name, project code, invoice number and amount.
Reference fields such as Transaction ID, Exchange Rate and Bank Account are stored on the payment record itself — open the payment to see them. The Excel export mirrors the visible columns, so if you need those reference fields alongside the list, note them in Remark as well, since Remark is carried on the record you open.
Payments recorded automatically by gateways
When a client pays through a configured online gateway, the payment is captured by PMSuite rather than entered by hand:
- Stripe — the invoice is marked Paid only once Stripe confirms the payment, so an in-flight or failed charge never flips an invoice to Paid prematurely.
- Square — the payment is marked complete when Square reports the order as
COMPLETED(a Payment Link order counts once its state confirms payment). Payments taken against a Square sandbox environment are labelled[SANDBOX]so they are not mistaken for real revenue.
Gateway credentials are configured in Settings → Payment Credentials. Note that some gateway tabs still render in that screen but are no longer wired to process payments — Razorpay, Paystack, Flutterwave and PayFast cannot take a payment even if their tab is visible. Configure one of the working gateways instead, or record the money manually as a payment using the steps above.
Effect on other features
- Invoices: payments drive the Unpaid / Partially Paid / Paid status. Payment status is tracked separately from send status — an invoice can be Sent and still Unpaid, or Paid without ever having been formally sent.
- Bank Accounts: the selected bank or cash account ties the payment to where the money actually arrived.
- Finance reports: payments feed the Finance Report (
/account/finance-report) and Income vs Expense report (/account/income-expense-report). - Notifications: Payment is one of the event types you can enable in Settings → Notification Settings, including on the Slack tab, which posts PMSuite notifications one-way into a Slack channel via an incoming webhook.
Limitations
- No live FX lookup. The exchange rate is a value you enter per payment; PMSuite does not fetch rates for you. Workaround: agree one source of rates (your bank's settlement rate, for example) and enter it consistently, noting the source in Remark.
- A payment record is tied to one invoice. A single lump sum covering several invoices cannot be entered as one record. Workaround: split it into one payment per invoice, entering the same Transaction ID on each and naming the bank credit in Remark, so the group can be matched back to the single bank credit when you open the records.
- Some gateway tabs appear but do not work. Razorpay, Paystack, Flutterwave and PayFast are visible in Payment Credentials without being able to process payments. Workaround: use a gateway that is actively supported, or collect payment outside PMSuite and record it manually.
- Corrections are not versioned. Editing or deleting a payment leaves no side-by-side history of the original values. Workaround: for anything affecting client balances, issue a Credit Note rather than deleting the payment, so the adjustment is visible on its own record.
Troubleshooting
The invoice still shows Unpaid after an online payment.
For Stripe, the invoice only flips to Paid after Stripe confirms the charge succeeded for that invoice; a pending or failed charge is recorded as a failed payment row and leaves the invoice Unpaid. For Square, confirm Square reported the order as COMPLETED. If the money has definitively left the client's account, record the payment manually with the gateway's transaction reference in Transaction ID.
The invoice shows Partially Paid but I recorded the full amount. Check the Amount and Exchange Rate on the payment — a payment in a foreign currency converts using the rate you entered, so an incorrect rate leaves a residual balance. Correct the rate on the payment record.
I can't find a payment in the list. Narrow the list by date range, status, project or client rather than scrolling, or search by invoice number, project name or amount. If you only have a bank reference, find the invoice first and open its payments from there.
I deleted a payment — did I lose the invoice? No. Deleting a payment row deletes only the payment; the invoice remains and its status recalculates from the payments that are left.
A gateway tab is visible but payments never arrive. Confirm the gateway is one that can still process payments. Razorpay, Paystack, Flutterwave and PayFast tabs render without being functional; switch to a supported gateway or record payments manually.