Skip to content
← All help articles

Account and billing

Reconcile stuck payments and check log retention

Find payments that reached the payment provider but never reached the books, and see how long each activity and event record is kept.

Before you start

  • You must be a platform admin.
  • Everything here spans every account on the platform. A single problem at the payment provider affects all of them at once, which is why it is not a per-account view.
  • The app checks with the provider automatically every hour, and clears out aged-out records every night. This page is for looking at what it found and for running either check on demand.

Find a payment that never settled

A card or pre-authorized-debit payment is recorded when the payment provider tells us it went through. If that message never arrives, the tenant's card has been charged and the payment sits unrecorded, so the rent still reads as unpaid.

  1. Open the platform admin console.
  2. Open the Reconciliation and retention tab.
  3. Read Payments waiting on the provider. Each row shows the account, the home, the tenant, the amount, and how long it has been waiting.
  4. Select Check with the provider now to re-check every waiting payment immediately. It reports back how many settled, how many failed, how many are still waiting on the payer, and how many are still stuck. Waiting on the payer means the tenant has not started paying yet, which is not a fault and is never counted as stuck.

The list starts at payments that have been waiting more than 24 hours, which is the level worth raising an alarm about. If you think something is going wrong right now, change Waiting at least to No minimum. That shows every payment still in flight, including ones only a few minutes old, which is what a problem that started this morning looks like.

Anything the provider confirms is recorded straight away, exactly as it would have been if the message had arrived on time. The receipt, the tenant balance and the books all update together.

A row that says "No provider reference, check Stripe by hand" cannot be checked automatically, because nothing was ever stored to identify it at the provider. Open that payment in the Stripe dashboard and work out what happened there.

Close a payment message that matches nothing

Sometimes the provider reports money for a payment that does not exist here. That happens if the payment record was removed, or if another environment shares the same provider account.

  1. In the same tab, read Provider events with no matching payment.
  2. Select Try to match. If the payment exists now, it is recorded through the normal path. This is safe to run more than once, so it can never record the same money twice.
  3. If the message was never yours, select Not ours to close it with a note.

An open message stays on the list until someone closes it, because it may represent real money that never reached the books.

How you get told

You do not have to remember to look. Every hour we check for both problems, and if either one is there we send an alert to every platform admin, in the app and by email. The alert names how many payments or events are affected and links straight to this console.

We send at most one alert a day for each kind of problem, so a problem that lasts a week does not fill your inbox. The alert repeats the next day if it is still there, and it stops on its own once the last stuck payment settles and the last open event is resolved or dismissed.

Check how long records are kept

  1. In the same tab, read Log retention.
  2. Each row shows a table, how long its records are kept, how many it holds, and how many the next nightly sweep will remove.
  3. Select Run the sweep now to clear out aged-out records immediately.

Tables marked Kept are never cleared out, whatever their age. Those hold your books, the money trail and consent history, which have to survive for compliance. Tables marked Pruned hold the machinery around them, such as copies of messages already delivered to other systems, and expired sign-in links. Tables marked Capped are cleared with the record they belong to. Tables marked Archived are moved to long-term storage rather than cleared, and kept there.

Look after the activity archive

The activity trail is the record of every change anyone made, and it is kept for good. Anything older than two years is moved out of the app into long-term storage, so the database stays a workable size and backups stay quick to restore.

  1. In the same tab, read Activity archive.
  2. Last moved is the figure to check. It reads Never if nothing has ever been moved, so a job that quietly stopped shows up here.
  3. Select Move old records now to run it immediately rather than waiting for the weekly job.
  4. To answer a question about something older than two years, find the month and the account in the list and select Open file.

Each file holds one account's activity for one month. Records are only removed from the app after the file has been written, read back and checked, so a storage problem can never lose a record. If a move fails you will see a warning and nothing will have been removed.

One file that cannot be written no longer stops the rest. The run skips it, carries on with the other accounts, and stops early only if several files in a row fail, which means long-term storage itself is down. A run also has a ceiling on how much it moves at once. When it reaches that ceiling it tells you how many records are still waiting, and the next weekly run carries on from there.

Good to know

  • A payment nobody has started is not an incident. Those are listed, because you may want to see them, but they are left out of the stuck count and the alerts so they cannot bury a payment that really did go wrong.
  • There is no way to mark a payment as paid by hand on this page. A payment is only recorded when the provider confirms it, so nothing here can ever put money in the books that does not exist.
  • Read notifications older than 90 days are cleared from in-app inboxes. Anything a person has not read yet is kept, however old it is.
  • The individual opens of a shared Property Passport link are cleared after a year. The "opened N times" figure an owner sees is counted separately and never changes when they go.
  • Enquiries sent from a public listing page are cleared after two years. Nothing in the app shows them after the alert email goes out, and they are in the account data export until they are cleared.
  • Help centre view and search counts are cleared after two years. They hold no personal information, only a count per article or search term per day.
  • Both checks also run on their own, hourly for payments and nightly for records, so this page is usually empty. An empty page is the normal state.
  • Changing Waiting at least only changes what you are shown. It never changes what the hourly check does, and it never changes the level the alarms are set at.

Was this helpful?

Keep reading