Tell us about
your business.
This creates your ZenoPay tenant — an isolated environment for your customers, billing data, and brain instance. Takes 30 seconds.
Select your
payment rails.
Choose which rails to activate. The router will score all selected rails before every charge and route to the optimal one. Start with 2–3. Add more anytime.
Define your
pricing plans.
Create at least one plan. The brain uses plan data for churn scoring, BNPL offer calibration, and upgrade intent detection.
Connect your
event stream.
Point your processor's webhooks at ZenoPay. This is how the brain gets notified of payment failures, subscription changes, and renewal events.
source= to match your processor: stripe | adyenmetadata.tenant_id = YOUR_TENANT_ID on every Stripe Customer object. ZenoPay uses this to route events to your brain instance.
// When creating a new customer in Stripe const customer = await stripe.customers.create({ email: user.email, name: user.name, metadata: { tenant_id: process.env.ZENOPAY_TENANT_ID, internal_user_id: user.id } })
Set your
boundaries.
Guardrails are hard limits enforced independently of the AI. The brain cannot exceed these values. Review the defaults below — they're conservative and can be adjusted at any time.
Ready to
activate.
Review your configuration. The platform starts in shadow mode — the brain will reason through decisions and log them, but execute no real charges until you flip the switch.
# Add to your environment variables ZENOPAY_TENANT_ID=a1b2c3d4-e5f6-7890-abcd-ef1234567890 ZENOPAY_INTAKE_KEY=your_intake_api_key ZENOPAY_BRAIN_SECRET=your_brain_agent_secret ZENOPAY_BASE_URL=https://app.zenopay.ai # Health check — verify connection curl https://app.zenopay.ai/api/health
You're connected.
Your tenant is active in shadow mode. The brain is reasoning through your customer base. Check the audit log to see what it's thinking.