Customer Portal
A branded, self-service portal on your own domain where clients accept proposals, pay invoices, manage subscriptions, sign contracts, and submit reports themselves. Every action syncs back to Enlivy in real time.
Start Today
- Your brand
- On your domain
- Passwordless
- One-time email code
- Real-time
- always in sync
WHAT IT IS
One Branded Home for the Whole Client Relationship
The Enlivy customer portal is a secure, on-brand web app you give to your clients. Instead of chasing approvals and payments over email, you send a link.
-
Clients view and pay invoices, accept and pay for proposals, and manage subscriptions
-
They sign contracts, download receipts and documents, and submit reports
-
Every action flows straight back into your Enlivy workspace in real time
-
No double entry, nothing to reconcile by hand
What can be different
Less Admin for You, More Control for Them
Chasing approvals, resending documents, and marking invoices paid by hand is work that should not be yours. The portal turns that back-and-forth into something clients handle themselves.
| In the Portal | Over Email Today | |
|---|---|---|
| Approvals & proposals | Clients review a proposal, accept, and pay the deposit in one flow. | Proposals sent as PDFs, deposits promised for “next week,” every deal needs a follow-up. |
| Getting paid | Clients pay invoices online with a card on file, no chasing. | You mark invoices paid by hand, wait on transfers, and send reminders. |
| Account changes | Clients change their card, upgrade, pause, or cancel on their own terms. | “Change my card,” “pause my plan” lands in your inbox and waits on you. |
| Documents & records | Contracts, receipts, e-invoices, and reports live in one place clients return to anytime. | Invoices in email, contracts in a drive, documents who-knows-where. |
| Your brand | The portal carries your logo, your colors, and your own domain. | A generic third-party tool, or a plain email thread. |
| Staying in sync | Every payment, acceptance, or profile update hits your Enlivy workspace instantly. | Exports, re-keying, and reconciling by hand. |
HOW IT WORKS
Live in Four Steps
Your brand is already in Enlivy, so the portal is mostly ready the moment you turn it on.
- Turn on Branding
Your logo, icon, and colors already live in Enlivy. Add a custom domain in settings, or use a branded subdomain out of the box.
- Give a client access
Send a proposal or contract and the recipient is onboarded automatically, or invite a client directly. They log in with an email code.
- They self-serve
Clients accept proposals, pay invoices, manage subscriptions, sign contracts, grab documents, and submit reports.
- Open up only what you want
Documents, reports, and project access are permissioned, so each client sees exactly what is intended and nothing more.
MAKE IT YOURS
Your Brand, Your Domain, Zero DevOps
The portal feels like a native part of your business, because it is built from your brand.
No third-party logos, no generic login screens, no friction for your clients.
-
Your branding:
the portal pulls your logo, icon, and brand colors straight from your Enlivy workspace.
-
Your own domain:
run it on a custom domain with automated DNS and SSL verification, or use a ready-to-go Enlivy subdomain.
-
Frictionless login:
clients sign in with their email and a one-time code, no passwords to manage. Magic links give instant access from an email.
-
Private by design:
every client sees only their own invoices, proposals, contracts, and documents, scoped to your organization.

SELF-SERVICE
Everything Your Clients Can Do Themselves
From accepting a proposal to signing a contract to filing a report, clients handle it in the portal, scoped to exactly what you allow them to see.
- Proposals & quotes
- View proposals with line items and totals
- Accept or reject online
- Complete their own billing details before paying
- Pay by transfer or card right after accepting
- Invoices & Payments
- See all invoices, paid and unpaid
- Download each as a PDF or e-invoice file
- Pay an unpaid invoice in one click
- Manage saved cards securely via Stripe
- Subscriptions
- View active subscriptions and what is coming up
- Change the card a subscription bills to
- Reconfigure and preview the change first
- Pause, resume, or cancel at period end
- Contracts
- View and download contracts as PDFs
- E-sign through a guided signing flow
- Email or SMS verification on every signature
- A full notification and audit trail
- Documents & e-invoices
- Open and download guidelines and playbooks
- Full revision history on shared documents
- Retrieve PEPPOL e-invoices on demand
- The XML, the PDF, and the signature file
- Reports & account
- Fill in and submit your custom report forms
- Save drafts and review past submissions
- Maintain their own billing profile
- A billing readiness check flags missing details
API Reference
Authentication Sessions from the API
Create and retrieve customer-portal authentication sessions for your users, straight from the admin API. A session grants one of your organization’s users scoped, time-boxed access to the customer application (the portal), authenticated by email, phone, or a magic link. Find the user, open a session (by id or by email), then read it back.
Retrieve the users you can open a session for. Filter by email, run a free-text search, or page through the full list to find the right person.
const organizationId = "your_org_id";
const token = "YOUR_TOKEN_HERE";
fetch(
`https://api.enlivy.com/organizations/${organizationId}/users?page=1&limit=20` +
// filters: email, created_at_from/to, updated_at_from/to, ids, or q=... for free-text search
`&email=jane@acme.example`,
{
method: "GET",
headers: {
Authorization: `Bearer ${token}`,
"Content-Type": "application/json"
}
}
); Open a session for a specific user by referencing their organization_user_id. This targets exactly one identity, so the session proceeds straight to authentication with no ambiguity.
const organizationId = "your_org_id";
const token = "YOUR_TOKEN_HERE";
fetch(`https://api.enlivy.com/organizations/${organizationId}/user-client-portal-sessions`, {
method: "POST",
headers: {
Authorization: `Bearer ${token}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
// reference the exact user identity
organization_user_id: "org_user_id",
name: "Jane Doe", // required: display name for the session
// how the user proves identity: email | phone | magic_authentication
authentication_method: "email",
// scope what the session may access in the portal
// options: invoices | receipts | network_exchanges | contracts | reports | payment_methods
permissions: ["invoices", "receipts", "payment_methods"],
// lifetime: set validity_hours OR expires_at (bounded by the server maximum)
validity_hours: 72
})
});
// Response includes: token, status, magic_authentication_url (for magic_authentication),
// authentication_verification_code (for email / phone), permissions, expires_at. Open a session by email instead of a specific id, handy when you only know the address. If the email maps to a single user, the session proceeds directly. If the same email belongs to multiple identities, the session is created in the awaiting_user_selection state and the user is prompted in the portal to choose which identity to authenticate as before continuing.
const organizationId = "your_org_id";
const token = "YOUR_TOKEN_HERE";
fetch(`https://api.enlivy.com/organizations/${organizationId}/user-client-portal-sessions`, {
method: "POST",
headers: {
Authorization: `Bearer ${token}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
// reference the user by email
email: "jane@acme.example",
name: "Jane Doe", // required: display name for the session
// how the user proves identity: email | phone | magic_authentication
authentication_method: "email",
// scope what the session may access in the portal
// options: invoices | receipts | network_exchanges | contracts | reports | payment_methods
permissions: ["invoices", "receipts", "payment_methods"],
// lifetime: set validity_hours OR expires_at (bounded by the server maximum)
validity_hours: 72
})
});
// Single match -> the session proceeds to authentication.
// Multiple matches -> status "awaiting_user_selection"; the user picks which
// identity to authenticate as in the portal before continuing. Read a session back: its current status, when it was last used, when it expires, and the user it belongs to. Poll the status to see the user move through authentication (including identity selection when the session was opened by email).
const organizationId = "your_org_id";
const sessionId = "your_session_id";
const token = "YOUR_TOKEN_HERE";
fetch(
`https://api.enlivy.com/organizations/${organizationId}/user-client-portal-sessions/${sessionId}` +
// includes: organization_user, organization
`?include=organization_user`,
{
method: "GET",
headers: {
Authorization: `Bearer ${token}`,
"Content-Type": "application/json"
}
}
);
// status: pending | email_verification_sent | awaiting_user_selection | success | expired Works together with
- Contracts Draft contracts from templates, send them for signature with SMS or email identity verification, and track every signature and renewal. Signed copies are delivered automatically.
- Guidelines Document best practices and policies in one place. Keep your team aligned with clear, accessible guidelines.
- Invoices Create a compliant invoice in seconds, send it, and watch it link itself to the contract, payment, and bank transaction it belongs to. EU e-invoicing is built in, so the work between issuing and getting paid happens in one place.
- Network Exchanges Send and receive e-invoices automatically, straight through ANAF eFactura today, with PEPPOL and other EU platforms on the same rails. Incoming invoices pull in on their own, outgoing ones push out on your schedule, and every exchange keeps a full history. No XML files, no manual uploads.
- Payslips Build a payslip template once with the fields your business needs, then generate payslips for every employee in minutes. Each one links to its contract, payment, and bank transaction, so the whole record stays connected and traceable.
- Playbooks Design, execute, and refine step-by-step procedures for any workflow. Ensure consistency, reduce errors, and guide your team through repeatable tasks with built-in structure and clarity.
- Prospects Track every opportunity from first contact to paid invoice, with a complete activity history, automatic status-driven emails, and client collaboration built in.
- Reports Replace scattered updates in chat and email with structured reports your team fills in on schedule. You define the questions once with a reusable schema, the right people get the right report at the right time, and every answer lands in one place, ready to compare.
- Receipts Receipts gives you a structured record of every payment, money in and money out: linked to your invoices and contracts, with your cashflow always up to date.
- Users Easily customize roles and permissions in Enlivy for clients, partners, accountants, and administrators, ensuring secure and efficient access with full audit trails for compliance.
- MCP Connect Enlivy to Claude, ChatGPT, Cursor, or any AI assistant through MCP. Ask about your invoices, contracts, and pipeline, and get real work done, safely scoped to exactly what your own account can already do.