Sales
Order Payments

Order Payments

Orders in PMSuite record what a client has agreed to buy — the products, the discount, the tax and the order total. Collecting the money against that order is handled in the Finance → Payments module, where each payment carries its own date, amount, transaction reference, gateway and bank account. This article explains how orders and payment records relate, how to record a payment, and what the supported payment gateways do.

Orders and payments are separate modules on purpose: an order can sit at Pending while money has already been received, and a payment can be recorded before or after the order is fulfilled.

Who can use it

  • Company Admin.
  • Other roles only if the Orders and Payments permissions have been granted to them under Settings → Roles & Permissions.

Prerequisites

  • The Orders and Payments modules must be enabled under Settings → Module Settings (both appear in the toggleable module list).
  • The order must already exist. See Creating Orders.
  • To take money online rather than record it manually, at least one payment gateway must be configured under Settings → Payment Credentials (see Payment Gateways).

How to Access

WhatPath
Orders listSales → Orders — /account/orders
Payments listFinance → Payments — /account/payments
Add a payment/account/payments/create (also available from the Add Payment quick-create menu)
Gateway credentialsSettings → Payment Credentials

What an order record holds

An order is auto-numbered in the format ODR#00 and contains:

  • Order Number (auto-generated; the prefix is configurable under Settings → Finance Settings → Prefix Settings, which covers orders independently of invoices, credit notes, estimates, estimate requests and proposals)
  • Client
  • Billing Address and Shipping Address
  • Project
  • Generated By
  • Status — defaults to Pending until you change it
  • Line items — Product selection, Discount, Tax, Total

Recording a payment

Go to Finance → Payments and click to create a payment (/account/payments/create). The payment form captures:

FieldDescription
ProjectThe project the money belongs to.
InvoiceThe invoice this payment settles, if the order has been invoiced.
Paid OnThe date the payment was received.
AmountThe amount received.
Currency / Exchange RateThe currency the client paid in and the rate used to convert it.
Transaction IDBank reference, cheque number or gateway transaction reference — used for reconciliation.
Payment GatewayWhich gateway or method the money came through.
Bank AccountThe account the money landed in.
ReceiptFile upload for the proof of payment.
RemarkFree-text note about the payment.

Because Transaction ID, Exchange Rate and Bank Account are captured on every payment record, the Payments list gives you the references you need for month-end reconciliation.

Partial payments and payment status

Payment state is tracked on the invoice, which has three values:

  • Unpaid — nothing collected yet.
  • Partially Paid — some money received, balance outstanding.
  • Paid — settled in full.

Record each instalment as its own payment row and the invoice moves from Unpaid to Partially Paid to Paid as the collected total rises.

Payment status is independent of the invoice Send status (Not Sent / Sent). An invoice can be Sent and still Unpaid, or never formally Sent yet Paid because the payment was recorded manually. Likewise, order status (Pending and onwards) is independent of both.

Online payments and gateways

Gateways are configured under Settings → Payment Credentials. The gateways to rely on are:

GatewayNotes
StripeConfigure with Publishable Key, Secret Key and Webhook Signing Secret; you can switch between Test and Live before going live. An invoice is marked Paid only once Stripe confirms the payment.
MollieNative gateway.
Authorize.netNative gateway.
SquareNative gateway. A Square payment is marked complete once Square reports the payment (or its order) as COMPLETED via webhook. Payments taken against Sandbox credentials are tagged with a [SANDBOX] marker in the payment remarks so they are not mistaken for real revenue.
Offline Payment MethodFor bank transfer, cash and cheque — you reconcile and record these manually.

Tabs that are visible but cannot process a payment: Razorpay, Paystack, Flutterwave and PayFast still render credential tabs, but the underlying routes have been removed, so they cannot take money. Do not configure them. Workaround: use Stripe, Mollie, Authorize.net or Square for card/online collection, or Offline Payment Method with a manual payment record. Easypaisa has no credential tab at all.

Effect on other features

  • Orders — an order captures the commercial agreement; see Creating Orders.
  • Invoices — payment status (Unpaid / Partially Paid / Paid) lives on the invoice, so invoice the order if you want that status to be meaningful. See Creating an Invoice.
  • Products — the "Client can purchase" toggle on a product under Sales → Products controls whether clients can buy it themselves; turn it off to take a product out of client-facing purchase.
  • Notifications — Order, Payment and Product Purchase are separate configurable event types under Settings → Notification Settings, including on the Slack tab, so you can alert your team when an order is placed or a payment lands. See Slack.
  • Bank Accounts — the Bank Account field on the payment ties collections to the account they were deposited into.

Limitations

  • Payment status is not held on the order record. The order carries a status that defaults to Pending, not a payment state. Workaround: invoice the order and track Unpaid / Partially Paid / Paid on the invoice, and use the payment's Remark field to reference the order number.
  • Four gateway tabs are dead. Razorpay, Paystack, Flutterwave and PayFast render but cannot process payments. Workaround: use Stripe, Mollie, Authorize.net, Square or Offline Payment Method.
  • Manual payments are not verified by anyone. Offline payments are only as accurate as what was typed in. Workaround: make Transaction ID and the Receipt upload mandatory practice for your team, then reconcile using the Payments list filters.

Troubleshooting

A Stripe payment went through but the invoice still shows Unpaid. The invoice is only marked Paid after Stripe confirms the payment. Check that the Webhook Signing Secret in Settings → Payment Credentials → Stripe matches the endpoint configured in your Stripe dashboard, and that you are not still in Test mode while taking live payments.

A Square payment is not showing as completed. Square payments are completed off Square's webhook once the payment or its order reports COMPLETED. Confirm the webhook is reaching PMSuite. If the payment was taken against Sandbox credentials, its remarks are prefixed with [SANDBOX] and it should not be treated as collected revenue.

A gateway tab exists but nothing happens when clients try to pay. Razorpay, Paystack, Flutterwave and PayFast tabs still appear, but their payment routes have been removed. Switch the client to Stripe, Mollie, Authorize.net or Square, or record the payment manually as an offline payment.

I deleted a payment — did I lose the invoice? No. Deleting a payment row removes only the payment; the invoice remains. Re-record the payment if it was deleted in error, and keep the receipt upload so the original evidence survives.

I cannot find the Payments module. Check Settings → Module Settings — Payments and Orders are both toggleable modules — and check your role's permissions under Settings → Roles & Permissions.

Related Articles