Parse pipeline, end to end.
One synthetic Gmail invoice (text-layer PDF + email envelope) is POSTed to /api/parse. The server extracts → matches a seeded Schedule C category → writes a Transaction + an AuditLog row. Everything below comes from the live DB.
Inputs
Synthetic Gmail invoice + email envelope, posted to
POST /api/parseResult
Live row from the
Transaction table paired with the matched CategoryRule.Idle.