Skip to main content

See an order through to paid

Goal​

Know where every purchase stands — paid, waiting, failed — and touch only the ones that need a person: an invoice raised for a purchase order, or a card that stopped working.

Before you start​

You need the Finance role to change an order (Support and Sales can read them). Open Parsware Commerce from the Platform Shell; orders and payment events are under Money.

What happens without you​

When a customer presses Buy on parsware.com, the platform opens an Order at Awaiting payment, priced from the plan — the first year for the environments chosen, and what every later year will cost. The customer pays on Stripe's page, never on ours. When Stripe confirms the payment, a Payment event is recorded and the order becomes Paid on its own; the customer's trial subscription becomes the paid one (a second row is not added), and for a platform trial the tenant's end date is removed. Nothing on the card path is set by hand, and Paid on a card order is Stripe's word, not ours.

Steps — the invoice path​

For a purchase order, the card path is not used:

  1. Orders → New. Set the customer, the plan, the environments and the amount; set Payment method to Invoice and Status to Invoiced. Save, and send the invoice from your own system — the platform does not print one.
  2. When the money arrives, open the order, set Status to Paid and Paid on to the day, and save.
  3. Create or extend the customer's Subscription by hand — the plan, the environments, the end date one year on — because only the card path writes one automatically. For a Power Apps customer, put their Entra tenant on the subscription, or the licence cannot be activated.

When a payment fails​

A renewal that fails moves the subscription to Past due and records a payment event saying so. Nothing is switched off: the customer keeps working and keeps downloading, and Stripe retries the card on its own schedule. The customer can change their card from Invoices and payment method on their account's Billing page. Talk to them if it stays past due; only a cancelled subscription — theirs to do, from that same page — ends anything.

Reading a payment event​

Every message Stripe sent is a row under Payment events, newest first, with what it touched and an Outcome in words: order paid; trial converted, invoice.payment_failed applied to subscription …, or ignored for a kind of event the platform does not act on. A message delivered twice is recorded once. If an outcome says no order matches the session, the order the customer paid for could not be found — open a ticket for the site's owner rather than creating one by hand, because the payment exists on Stripe and must be matched, not duplicated.

What you will not see​

  • A refund button. Refunds are issued in the Stripe dashboard; the platform records what Stripe then sends.
  • A price on the order form to edit. The amount on a card order is what was paid; on an invoice order it is what you typed.

Troubleshooting​

  • The order says Awaiting payment long after the customer paid. The webhook has not arrived, or was refused. Check Payment events for a row naming the order; if there is none, the site's owner checks the Stripe dashboard's webhook log — a refused delivery is retried by Stripe for three days.
  • Two subscriptions for one company after a purchase. The purchase did not find the trial to convert — usually a Power Apps order placed without its Entra tenant. Merge by hand: keep the paid row, cancel the trial row.