Inbound payments — technical reference
Purpose of this document: Full technical context for the inbound payment pairing system. Use this when answering detailed support questions about why a payment was or was not paired, how the AI evaluation works, or how to configure business rules and filters effectively. For the admin-facing setup guide, see Inbound payments — setup and pairing.
System overview
Inbound payments ingests bank transfers from three sources (GoCardless, bank email, CSV), parses each into a standardised format, runs a deterministic pairing algorithm, applies ignore filters, and then uses an LLM layer for duplicate detection and pairing validation. The result is either automatic pairing (payment recorded on a registration) or a manual review queue.
Every payment eventually reaches one of four statuses:
| Status | Meaning |
|---|---|
staging | Saved, awaiting LLM evaluation |
new | LLM returned "manual" or pairing failed — waiting for admin action |
paired | Accepted and written to the payments ledger |
ignore | Not a Zooza payment — filtered, LLM-decided, or admin-ignored |