LunadeskLunadesk

Connect Stripe for billing context

Bring subscriptions, MRR and invoices into the ticket sidebar by connecting Stripe with a restricted API key — a step-by-step, illustrated guide.

Published 7/9/2026Updated 9/9/2026
Integrations · Stripe
Connect Stripe for billing context

Bring subscriptions, MRR and invoices into the ticket sidebar by connecting Stripe with a restricted API key — a step-by-step, illustrated guide.

About five minutesAdmin onlyRestricted key (rk_live_…)Read-only by default
Stripe
Stripe billing
Lifetime€1,240
MRR€49 / mo
StatusActive
PlanPro

Connecting Stripe enriches every ticket with the customer's real billing context — their subscriptions, invoices and revenue — pulled in automatically. Agents stop tab-hopping, and your AI-drafted replies become billing-aware. This guide walks you through it end to end in about five minutes.

What you get

Once Stripe is connected, Lunadesk quietly attaches billing data to the customer on each ticket:

  • ·A “Stripe billing” card in the ticket sidebar — lifetime value, MRR, subscription status, a “Payment overdue” flag when the customer is delinquent, and each subscription with its recent invoices.
  • ·Billing-aware AI drafts — the assistant reads that same context, so suggested replies already know whether the customer is on the Pro plan or has an unpaid invoice.
  • ·A full integration workspace — Overview, Customers, Subscriptions, Invoices and Catalog tabs, with a one-click Resync.
i

Read-only by default. Out of the box Lunadesk only reads your Stripe data to display context — it never changes anything in your account unless you deliberately turn on the actions mode described below.

Before you begin

  • ✓You're a Lunadesk admin (Settings → Integrations is admin-only).
  • ✓You have access to your company's Stripe Dashboard with permission to create API keys.
  • ✓You'll create a restricted API key — a scoped, least-privilege key. Never paste a full secret key (sk_live_…); a restricted key (rk_live_…) is safer and all Lunadesk needs.

Step 1 — Create a restricted key in Stripe

In your Stripe Dashboard, head to the API keys page and mint a new restricted key. Here's the exact path:

dashboard.stripe.com › developers › api keys
Developers
API keys
Webhooks
Events
Restricted keys
+ Create restricted key
Open Developers → API keys

In the Stripe Dashboard, click Developers (bottom-left), then API keys.

Developers›API keys
Create restricted key

Under Restricted keys, click Create restricted key.

Name it

Give it a descriptive name so you recognise it later.

Example lunadesk-billing
Set the permissions

Set each resource below to Read (or Write for the actions mode). Every other resource stays None.

Create the key & verify

Click Create key and complete Stripe's two-factor verification if asked.

Copy it now

Stripe shows the key (rk_live_…) only once. Copy it — you'll paste it into Lunadesk next.

Permissions to grant

Set these resources on the key. This is the exact set Lunadesk needs to read your billing context (plus permission to register its sync webhook):

restricted key · permissions
Customers
NoneRead
Subscriptions
NoneRead
Invoices
NoneRead
Products
NoneRead
Prices
NoneRead
Events
NoneRead
Webhook Endpoints
NoneWrite
✓

Shortcut: when Stripe asks what the key is for, pick “Providing this key to a third-party application”. Stripe pre-fills a sensible preset — just confirm the rows above are set. Webhook Endpoints → Write lets Lunadesk register the webhook that keeps your data fresh in real time.

Step 2 — Connect it in Lunadesk

Back in Lunadesk, go to Settings → Integrations, click Add an integration, and choose Stripe. You'll land on the Connect Stripe screen.

Open the Connect Stripe screen

Go to Settings → Integrations, click Add an integration, and choose Stripe.

Settings›Integrations›Add an integration›Stripe
Pick a connection mode

Choose how much access Lunadesk has. Read-only is the default and right for most teams.

Paste your key and connect

Paste the rk_live_… key you copied from Stripe and click Connect Stripe.

Pick a connection mode

lunadesk · settings › integrations › connect stripe
Connection mode
Read-onlyRead + actions
Read-only — Lunadesk reads billing data to show context on tickets. It never writes to your Stripe account. Grant Read on Customers, Subscriptions, Invoices, Products, Prices.
Read + actions — everything above, plus agents can act from the ticket. Also grant Write on Charges (refunds), Subscriptions (cancel) and Invoices (retry payment).

Paste your key and connect

connect stripe
Restricted API key
rk_live_51H8xQ2Pk
Connect Stripe
✓ Stripe connected — syncing your billing data…
i

Live vs test is automatic. Lunadesk detects the mode from the key prefix: an rk_live_… key reads your real, live data; an rk_test_… key only ever touches sandbox data. The key must have at least Read on Customers or the connection is rejected.

What happens after you connect

Lunadesk immediately backfills your customers, subscriptions, invoices, products and prices, then keeps them fresh via webhooks. On the integration's detail page you can:

  • ·Browse synced data across the Overview, Customers, Subscriptions, Invoices and Catalog tabs — the Overview shows customer count, subscriptions by status, MRR, and paid/open invoices.
  • ·Hit Resync any time to pull the latest from Stripe on demand.
  • ·Disconnect to remove the stored credentials — billing context simply stops appearing on tickets.

Read-only vs Read + actions

CapabilityRead-onlyRead + actions
Billing context on tickets (LTV, MRR, status)✓✓
Billing-aware AI drafts✓✓
Browse customers, subscriptions, invoices, catalog✓✓
Issue refunds from a ticket—✓
Cancel a subscription—✓
Retry / collect an unpaid invoice—✓
Stripe key permissions neededRead onlyRead + Write on Charges, Subscriptions, Invoices
!

Match the mode to the key. Actions mode only works if your restricted key actually has the Write scopes. If you pick “Read + actions” but the key is read-only, the refund or cancel will fail at Stripe. You can always reconnect later with a wider key.

Keep your key secure

  • ·Least privilege. Grant only the resources listed above — nothing more. A restricted key can't create charges or move money it wasn't given access to.
  • ·Shown once. Stripe reveals the key a single time. Store it in a password manager if you need a copy; otherwise just create a new one.
  • ·One key per tool. Use a dedicated key for Lunadesk so you can revoke it independently of your other integrations.
  • ·Rotate & revoke. If a key is ever exposed, roll it in Stripe and reconnect. Lunadesk stores your key encrypted and never exposes it back to you or over the API.

Troubleshooting

“Could not validate the Stripe key”
The key is missing Read access to Customers, or it was mistyped. Re-check the Customers permission on the restricted key in Stripe, then paste the key again.
“Stripe actions are not enabled”
You're on Read-only mode. To issue refunds or cancel subscriptions, reconnect in Read + actions mode using a key that has the required Write scopes.
The Account ID shows “—”
Harmless. Restricted keys often can't read account details. Lunadesk routes everything by integration, so syncing and enrichment still work normally.
Data looks stale
Open the integration's detail page and click Resync to pull the latest from Stripe immediately. Live webhook updates also flow in automatically once connected.
I don't see Stripe under integrations
The Stripe integration may not be enabled for your workspace yet. Reach out to support and we'll switch it on.
That's it.

Open any ticket from a paying customer and you'll see their Stripe billing card in the sidebar — with the AI drafting replies that already understand their plan and payment status.

Was this article helpful?