Record payments by hand
For invoices, bank transfers and deals closed off-platform: add a payment from the Revenue page in a few seconds.
Not every sale goes through a checkout. Consulting invoices, bank transfers, annual deals agreed over email and any provider Statsy has no webhook for can all be entered directly, so your revenue reports match your actual revenue.
Add a payment
Open Revenue and press Record payment
The button sits in the header of the Revenue page, next to the attribution controls.
Fill in the amount, currency, type and date
Type is One-time payment, Subscription renewal or Refund. Enter the amount in normal money —
49.00, not4900. The date cannot be in the future.Add the buyer's email
This is the field that does the work. With it, Statsy can match the payment to the visitor who was on your site and credit the channel that found them. Without it, the payment counts toward revenue but no channel gets the credit.
More matching options
Under the collapsed section you can give Statsy two stronger hints than an email:
- Customer id — your own id for this customer. Use the same one every time and their payments roll up into one customer record with a lifetime value.
- Visitor id — the value
statsy.visitorId()returned in that person's browser. If you ever capture it on a form, this is the most exact match there is.
Note. A recorded payment goes through exactly the same matching and attribution as a webhook payment. It is not a second-class figure; it is the same kind of row, entered by hand.
Use the real date
Attribution looks at the touches in the lookback window before the payment. Entering last quarter's invoice with today's date credits whatever brought that person to your site this week, which is almost certainly wrong. Backdate it.
What you cannot do
Recorded payments cannot be edited or deleted from the dashboard. Check the amount and the date before saving. If you need to correct one, record a refund for the mistaken amount, then record the payment again correctly.
Entering more than a handful at a time is a job for the Payment API, which is idempotent and safe to run from a nightly script.
Last updated · Markdown version