# `zappier/portal` **Package:** `zappier` **Source:** `packages/zappier/src/portal.ts` **Lines:** 337 ## What this module is Implementation module in `zappier`. The tables below are extracted from the source (signatures + JSDoc). ## Exports `PaymentResult`, `PaymentClient`, `PortalDeps`, `portalRouter` ## Types / interfaces / classes | Kind | Name | |------|------| | interface | `PaymentResult` | | interface | `PaymentClient` | | interface | `PortalDeps` | ## Functions | Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | |------|------------|---------------------|---------|-----------------------------| | `publicProfile` | `c: Customer` | — | `unknown` | see Call graph | | | _Profile payload safe to return to the customer (no hashes/secrets)._ | | | | | `sessionAuth` | `deps: PortalDeps` | — | `unknown` | see Call graph | | `save` | `deps: PortalDeps, customer: Customer` | — | `unknown` | see Call graph | | `portalRouter` | `deps: PortalDeps` | — | `unknown` | see Call graph | ## Methods (class / object) | Name | Parameters | |------|------------| | `reload` | `customer: Customer, amountCents: number` | | `return` | `req, res, next` | ## What it imports / requires - `crypto` - `express` - `./accounts` - `./admin` - `./auth` - `./billing/credit` - `./invoicing` - `./pricing` - `./usage` - `./credits` - `./statement` - `./billing-nats` - `./verae-bind` - `./ledger` ## Call graph (identifiers invoked) `now`, `reload`, `customer`, `publicProfile`, `sessionAuth`, `header`, `startsWith`, `slice`, `get`, `list`, `find`, `status`, `json`, `next`, `save`, `portalRouter`, `post`, `async`, `trim`, `test`, `hashPassword`, `findByEmail`, `randomBytes`, `toString`, `bindVeraeUser`, `create`, `verifyPassword`, `verifyTotp`, `use`, `delete`, `setUTCDate`, `setUTCHours`, `summaryFor`, `tiers`, `applyMonthlyCredit`, `rateCard`, `ledgerStatement`, `composeStatement`, `listFor`, `type`, `send`, `renderInvoiceHtml`, `generateTotpSecret`, `totpUri`, `qr`, `isInteger`, `ledgerAdjust`, `booksConfigured`, `natsPublish`, `put` Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s MD for parameter and return types. ## Return values (how to read this) - HTTP route handlers return Express `res.json(...)` bodies (see route docs). - Zapier `perform` functions return a **single object** (creates) or an **array** (triggers/searches). - Pricing functions return integer **cents** on `Quote.totalCents`.