Skip to content

Documentation

Documentation for real workflow questions.

Setup guides, export formats, recovery playbooks, billing help, and product access for Board Export+, Card Vault+, and the Nikaj platform.

Account & billing

Manage billing through Paddle

Upgrade products, open the customer portal, and manage subscriptions through Paddle Billing.

Manage billing through Paddle

Nikaj uses Paddle Billing as Merchant of Record for Trello Power-Up subscriptions when checkout is activated for a plan.

Paid entitlements apply per verified Trello member identity, not per Trello workspace or board. Connect and verify your Trello member in the dashboard before checkout.

Checkout may show as unavailable on /pricing while Paddle domain approval and price configuration are pending. Nikaj does not treat a successful browser redirect as payment proof — verified Paddle webhooks unlock access.

Upgrade a product

  1. Sign in at /login.
  2. Connect and verify your Trello member identity from the dashboard.
  3. Open /pricing or choose a product plan from the dashboard.
  4. Complete payment in the Paddle checkout session when checkout is available.
  5. Return to the dashboard — access appears after Paddle webhooks are verified (not immediately on redirect).

Manage subscriptions

From the dashboard you can open the Paddle customer portal to:

  • Update payment method
  • View invoices and receipts
  • Cancel or change plans

Portal sessions are created fresh on each request and are never cached.

Troubleshooting

SymptomLikely cause
Checkout blockedTrello member identity not verified yet
No upgrade buttonProduct may be coming soon or checkout is unavailable pending Paddle approval/configuration
Checkout error after sign-inConfirm sandbox/live Paddle env matches NEXT_PUBLIC_APP_URL
Access not unlocked yetWait for webhook delivery; refresh dashboard after a minute

Sandbox setup checklist

  1. Create or use a Paddle Sandbox account.
  2. Create sandbox products for Board Export+, Card Vault+, Doc Flow+, and the Nikaj Power-Ups Bundle.
  3. Create monthly and annual sandbox prices for each product and the bundle.
  4. Create a sandbox client-side token (NEXT_PUBLIC_PADDLE_CLIENT_TOKEN).
  5. Create a restricted server API key (PADDLE_API_KEY).
  6. Register webhook destination https://nikaj.dev/api/webhooks/paddle (or ngrok for local sandbox).
  7. Select required events: customer.created, customer.updated, transaction.completed, subscription.created, subscription.updated, plus lifecycle events as needed.
  8. Copy the webhook secret into PADDLE_WEBHOOK_SECRET.
  9. Configure customer portal branding/settings.
  10. Approve https://nikaj.dev as a checkout domain when moving beyond localhost testing.
  11. Copy price IDs into the PADDLE_PRICE_* environment variables and run npm run db:seed if needed.

Default payment link page

Nikaj includes a /pay page that loads Paddle.js for Paddle default payment links that include a transaction ID (/pay?_ptxn=txn_...). The page intentionally stays unavailable until Paddle checkout is activated, the live domain is approved, and the client token is configured.

Hosted checkout sessions created from the dashboard or pricing page remain the primary purchase path for customers.

See also: Understand product access.