Invoicing with Stripe
Stripe is the default way to accept card, Apple Pay, Google Pay and Link payments on your Myra invoices, subscriptions and payment links. Each client connects its own Stripe account so money lands directly in your bank.
What Stripe can do in Myra
- One-off invoices - hosted Stripe checkout, cards + wallets.
- Recurring subscriptions - monthly / yearly plans on a contact.
- Payment links - reusable links you can drop into emails, texts or landing pages.
- Off-session charges - charge a saved customer on demand (contracts, top-ups).
- Auto-reconciliation - Stripe webhooks mark invoices paid the moment the customer pays.
Prerequisites
- A Stripe account: https://dashboard.stripe.com/register.
- Business details verified in Stripe (needed before you can accept live payments).
- Access to Payments → Integrations in Myra.
Connect Stripe to your client
Myra connects to Stripe with a restricted API key that you create in Stripe and paste into Myra once. There is no Stripe onboarding wizard and no redirect - you stay in Myra the whole time.
- In Myra go to Payments → Integrations.
- On the Stripe card click Connect Stripe.
- In Stripe, go to Developers → API keys → Create restricted key.
- Give the key the permissions below - and nothing more. Stripe shows two columns: set the Permissions column (left) as listed, and leave the Connect Permissions column (right) as None on every row. Anything not in this table should also stay None - Myra never needs balances, transfers, payouts, refunds, disputes or account settings.
| Permission | Level | Why Myra needs it |
|---|---|---|
| Invoices | Write | Create and send invoices |
| Invoice Items | Write | Add line items to invoices |
| Customers | Write | Create customer records for billing |
| Payment Links | Write | Generate hosted pay links |
| Products | Write | Sync your product catalogue |
| Prices | Write | Sync price points and currencies |
| Charges | Read | Show paid / failed status on invoices |
| Payment Intents | Read | Show paid / failed status on invoices |
- Copy the key - it starts with
rk_live_…orrk_test_…- paste it into the dialog in Myra and click Verify & connect.
Myra checks the key by listing a single customer from your Stripe account. If that works, the key is saved and the card shows Connected.
Myra also tries to read your Stripe account name, email and account ID so it can show them on the card. Restricted keys usually cannot read account details, so those fields often show a dash. That is expected and does not mean the connection failed - invoicing only needs the permissions in the table above.
Replacing or rotating the key
Restricted keys can be revoked at any time from Stripe → Developers → API keys. If you revoke one, or need to issue a fresh key:
- Create a new restricted key in Stripe with exactly the permissions in the table above.
- In Myra go to Payments → Integrations and click Replace key on the Stripe card.
- Paste the new key and click Verify & connect. Invoices and payment links you have already sent keep working.
You do not need to disconnect first - replacing the key swaps it in place.
Test mode vs live mode
- New Stripe accounts start in test mode. Use test cards (
4242 4242 4242 4242) to try the flow end-to-end. - Myra follows the key you paste, not your dashboard toggle. An
rk_test_…key runs everything in test mode; anrk_live_…key takes real payments. To go live, create a live restricted key in Stripe and use Replace key.
Send a Stripe invoice
- Open Payments → Invoices → New invoice.
- Under Payment method choose Stripe (cards + wallets).
- Pick the contact, add line items, set a due date.
- Click Create. Myra:
- Creates the invoice in Stripe.
- Emails / SMSs the customer the hosted pay link.
- Marks the invoice paid automatically once Stripe confirms the payment.
Recurring subscriptions
- Go to Payments → Recurring → New subscription.
- Pick the contact and a product/price (or create one on the fly).
- Choose Stripe as the provider.
- Myra sends the customer a hosted checkout link. On completion, Stripe creates the subscription and starts renewing automatically.
Payment links
Payments → Links → New link creates a Stripe payment link that anyone with the URL can pay. Perfect for tripwires, deposits, or a "Book a call" landing page.
Troubleshooting
- "Could not verify Stripe key" - the key is missing a permission, or was revoked. Check it against the permission table above, and make sure you copied the whole key. Create a fresh restricted key if in doubt.
- Connected, but the account name and ID show a dash - normal for a restricted key, which cannot read account details. Invoicing is unaffected.
- Payout on hold - that's Stripe holding the money on your account, not Myra. Check the yellow banner in your Stripe dashboard.
- Customer says the pay page is broken - most often the invoice is already paid or was voided. Open the invoice in Myra and check its status.
What we store
Your restricted API key, encrypted at rest - only Myra's server can decrypt it, and the page never shows more than the last 4 characters. Alongside it we store your Stripe account ID, name and email when the key can read them, plus invoice metadata (amount, status, hosted URL). We never see raw card numbers - the customer types them straight into Stripe's hosted page.
