ChargeOn post-configuration testing guide¶
Your setup is complete. This guide proves it works before real money is involved.
Work through it in order. Each part builds on the one before, and a failure early on will cause confusing failures later.
Who does this: the administrator who did the setup, or a tester working alongside them. How long: about half a day for the full run.
Use test credentials and test cards throughout
Every gateway publishes test card and bank details. Use those, on a sandbox or test account. Never use a real customer's details, and never process a live charge to see whether it works.
What you will do¶
- Confirm the setup is intact
- Test an instant card payment
- Test a bank payment
- Test a payment link, as your customer sees it
- Test a scheduled payment
- Test a recurring payment
- Test refunds
- Confirm the records and reports are right
- Prepare to go live
Part 1 — Confirm the setup is intact¶
Before testing behaviour, confirm the foundations. Each of these takes a moment and saves an hour of confused debugging.
| Check | Where | You should see |
|---|---|---|
| ChargeOn is installed | Setup → Installed Packages | ChargeOn listed |
| Permission sets are assigned | Setup → Users → your test user | ChargeOn access on the user doing the testing |
| The site is active | Setup → Sites | Active, home page set to the payment link page |
| Guest sharing rules exist | Setup → Sharing Settings | Rules for your payment object, ChargeOn, customer payment method, payment gateway, payment gateway customer, recurring payment, payment link, invoice, template configuration |
| The Charge button is present | Open a test record | The button appears |
| Your mapping is saved | Global Settings → Object and Rules | Your object, amount field, payer and gateway all populated |
| The gateway is active and verified | Global Settings → Payment Gateways | Active, with a successful verification (except NMI — see below) |
| You are pointed at the test environment | The gateway record | Sandbox or test, not production |
| Background jobs are scheduled | Setup → Scheduled Jobs | The jobs you scheduled, each with a next run time |
Do not start testing until every row passes
A missing sharing rule shows up as a payment link that fails for your customer but works for you, which is one of the harder things to diagnose after the fact.
NMI verification always fails
NMI provides no way to check credentials, so its Verify Credentials reports failure regardless. For NMI, treat a successful test payment in Part 2 as your verification.
Part 2 — Instant card payment¶
- Open a test record and click Charge.
- Choose payment type Card and payment method Instant.
- Enter the gateway's test card details.
- If the option to save the payment method is offered, run this test twice — once accepting, once declining — so you know both paths work.
- Complete the payment.
What you should see:
- A confirmation on screen.
- A new transaction in Transaction History with status Success, the right amount, the right gateway, and payment type Card.
- The same transaction in your gateway's own dashboard, for the same amount.
- Where you accepted saving the method, a stored payment method against the customer.
Part 3 — Bank payment¶
Repeat Part 2 with payment type Bank, using the gateway's test bank details.
What you should see: a transaction with payment type Bank and a correct status.
Bank payments do not settle instantly
A bank payment will often sit at Pending rather than moving straight to Success. That is normal and is not a failure. Status updates arrive later, which is what the transaction status job you scheduled is for.
Part 4 — Payment link, as your customer sees it¶
This is the most important test in the guide, because it is the only one that exercises the public access path your customers use.
- From the Charge component, choose Payment Link and enter an amount.
- Generate the link.
- Confirm a transaction is created with payment type Payment Link and a status such as Pending, carrying the link address.
- Confirm a QR code was generated.
- Copy the link and open it in a private or incognito window. This is the point of the test — it simulates someone with no Salesforce login.
- Confirm the page loads, and shows the right amount and any invoice line items.
- Pay it with test card or bank details.
- Confirm the transaction status updates to success.
- If emails are enabled, confirm your test address received the link and a receipt.
What you should see: a payment completed by a visitor who never logged in, and a transaction updated to match.
A normal browser window will not test this
In your own browser you are logged in, so the page will work for you whether or not the guest permissions are right. Private browsing is what catches the problem.
Part 5 — Scheduled payment¶
- Start a charge and choose Scheduled.
- Set a date in the near future and save.
- Confirm a record appears with status Scheduled.
- Confirm you can edit the date before it runs.
- On a second scheduled payment, use Abort, and confirm it is cancelled and never charges.
- Wait for the first one to run, and confirm it processes automatically and creates a successful transaction.
What you should see: one payment that ran on its date without anyone touching it, and one that was cancelled and did not.
If it never runs
A scheduled payment that stays at Scheduled past its date almost always means the scheduled payment job is not scheduled. Check Setup → Scheduled Jobs.
Part 6 — Recurring payment¶
- Start a charge and choose Recurring.
- Choose a basis — count, final amount, end date or subscription — and a frequency.
- Use the preview to check the schedule before confirming. Verify the dates, the amounts and the number of charges are what you expect.
- Save, and confirm the first payment processes.
- Pause the plan, and confirm no further charges occur.
- Resume it, and confirm billing continues.
- Cancel another plan, and confirm no further charges are generated.
What you should see: a plan that charges on schedule, and stops and starts on command.
Part 7 — Refunds¶
- Open a successful transaction and click Refund.
- Process a partial refund, entering an amount, a reason and a note.
- Confirm a linked transaction is created with status Refunded.
- On a different transaction, process a full refund.
- Confirm the customer receives a refund email, if emails are enabled.
- Confirm both refunds appear in your gateway's dashboard.
What you should see: refunds in ChargeOn and at the gateway agreeing on amount, with the original transaction still visible and linked.
Part 8 — Records and reports¶
- Open Transaction History and confirm every test transaction is listed with the right customer, amount, status, gateway, payment type and timestamp.
- Open the ChargeOn reports and dashboards and confirm your test transactions appear.
- Check the Unresolved Transactions tab. It should be empty. Anything sitting there is a payment that did not complete cleanly, and is worth understanding before you go live.
- Check the Error Logs. Investigate anything unexpected.
What you should see: every payment you made accounted for, and nothing unexplained.
Part 9 — Prepare to go live¶
Only once every part above has passed.
- Decide the date and who is doing it.
- Replace test credentials with live credentials on each gateway record.
- Switch each gateway record's Environment from Sandbox to Live.
- Run Verify Credentials again against the live credentials.
- Confirm your background jobs are still scheduled.
- Take one small real payment — a genuine charge of a token amount, on a real card — and refund it. This is the only test that proves the live path works end to end.
- Confirm both the charge and the refund appear at the gateway.
Clear the test data first
Test transactions in a production org distort your reporting from day one and are awkward to remove later. Decide what happens to them before you switch credentials, not after.
What you should see: one real payment taken and returned, everything reconciling, and no test data left where it will be mistaken for revenue.
If something went wrong¶
| Symptom | Likely cause | What to do |
|---|---|---|
| The payment link works for you but fails for a customer | Guest user permissions or sharing rules | Re-test in a private window. Check every sharing rule in Part 1 |
| A bank payment sits at Pending and never moves | Either normal settlement time, or the status job is not scheduled | Wait one business day, then check Setup → Scheduled Jobs |
| A scheduled or recurring payment never runs | The relevant job is not scheduled | Quick start guide, Part 7 |
| No emails arrive | Deliverability is not set to All Emails | Prerequisite guide, Part 2 |
| A refund fails at the gateway but appears to succeed in ChargeOn | The gateway does not support refunds for that payment type | Check the gateway's own dashboard. Not every gateway supports every refund path |
| A transaction is missing but the gateway took the money | The payment succeeded and recording did not | Look in Unresolved Transactions — this is exactly what it is for |
| A recurring plan charged on a different gateway than expected | The first charge failed and fell back to a backup gateway | This is by design. The plan stays on that gateway for its lifetime |