Developers
Customer APIs for pricing, contact, signup, plan status, and billing — plus standard Frappe REST for resources you are permitted to use.
Base URL: https://zivvy.xyz/api
OpenAPI: openapi.json
Only the endpoints below are the intentional customer allowlist. Admin Polar setup, webhooks, and internal seeding are not public customer APIs.
Authentication
- Session — Log in at /login; browser cookies apply to
/api/method/…. - API key / token — Desk → User → API Access: send
Authorization: token api_key:api_secret. - Guest — Marked below; no login required.
Plans
Gating follows your effective tier (site subscription, or a demo override on special accounts).
- Free — $0
- Pro — $15/user/mo
- Business — $25/user/mo
Guest
/api/method/ping
Health check
Response
{"message": "pong"}
/api/method/zivvy_brand.billing.api.get_public_pricing
Public pricing matrix (Free / Pro / Business)
Response
{"message": {"free": {...}, "pro": {...}, "business": {...}}}
/api/method/zivvy_brand.analytics.contact.submit_contact
Contact form (rate-limited)
Request
{"full_name": "Ada", "email": "ada@example.com", "message": "Hello"}
Response
{"message": {"ok": true}}
/api/method/zivvy_brand.marketing.api.send_contact_message
Alternate contact form handler
Request
{"full_name": "Ada", "email": "ada@example.com", "message": "Hello"}
Response
{"message": {"ok": true}}
/api/method/zivvy_brand.auth.signup.sign_up
Website signup (auto-enabled SaaS user)
Request
{"email": "you@example.com", "full_name": "You", "zivvy_datacenter": "india", "redirect_to": "/app"}
Response
[1, "Please check your email for verification"]
Logged-in customer
/api/method/zivvy_brand.billing.api.get_my_plan
Effective plan for the current user (respects demo override)
Response
{"message": {"tier": "free", "tier_label": "Free", ...}}
/api/resource/{Doctype}
ERPNext resource CRUD — only DocTypes your roles + plan allow
Request
See Frappe REST docs; gated DocTypes return PermissionError on Free/Pro as applicable
Response
Standard Frappe resource payload
Billing manager
/api/method/zivvy_brand.billing.api.get_billing_status
Plan + Polar readiness (no secrets). Demo accounts may call this.
Response
{"message": {"tier": "pro", "polar": {"configured": true}, ...}}
/api/method/zivvy_brand.billing.api.create_checkout
Start Polar checkout — System Manager only
Requires: Pro or Business product
Request
{"plan": "pro", "seats": 3}
Response
{"message": {"url": "https://polar.sh/...", "plan": "pro"}}
/api/method/zivvy_brand.billing.api.create_portal_session
Open Polar customer portal — System Manager only
Response
{"message": {"url": "https://polar.sh/..."}}
Not customer APIs
zivvy_brand.billing.webhooks.polar_webhook— Polar server webhook (signed); not for app clients.zivvy_brand.billing.setup_polar.setup_polar_products— Admin / ops only.zivvy_brand.setup.seed_demo_accounts— Ops seeding; not public.