Online payments let you send customers a secure link to pay one invoice or several at once. Your company connects its own Stripe account, so payments settle directly into your bank account.
Overview
Configuration: Administration → 3rd Party Config → 💳 E-Payment (Stripe)
Send a link: Receivables → Receivables List → tick invoices → Generate Payment Link
💡 Key Benefits
- Your Account, Your Money: Funds settle directly to your bank - MeTEY never holds them
- One Link, Many Invoices: Send a single link covering a customer's outstanding invoices
- Automatic Reconciliation: Invoices are marked paid and allocated without manual entry
- Accounting Built In: A journal entry is posted for every online payment
- Card or Bank Transfer: Accept credit cards, ACH, or both
- Faster Collection: Customers pay from an emailed link instead of mailing a cheque
Prerequisites
- Stripe Account: Sign up free at stripe.com
- API Keys: Publishable and Secret keys from your Stripe dashboard (Developers → API keys)
- Admin Permission: Required to change payment settings in MeTEY
- Chart of Accounts: A bank clearing account named
A-BANK STRIPEmust exist
Setup
In your Stripe dashboard, open Developers → API keys. Copy the Publishable key, then reveal and copy the Secret key.
Start in Test mode using the toggle in Stripe. Switch to live keys only after a successful test payment.
Go to Administration → 3rd Party Config → 💳 E-Payment (Stripe), turn on Enable Stripe Online Payments, and leave Test Mode on while testing.
Paste your Publishable and Secret keys, then choose which payment methods to accept. Click 🔌 Test Connection to confirm the keys work.
Stripe notifies MeTEY when a customer pays. In the 🔗 Webhook Setup panel click Copy, then in Stripe go to Developers → Webhooks → Add endpoint and paste the URL.
Select these four events:
checkout.session.completedpayment_intent.succeededpayment_intent.payment_failedcharge.refunded
Copy the Signing secret (whsec_...) back into MeTEY and click 💾 Save Configuration.
In Chart of Accounts → Assets & Liabilities, click Add Account and create A-BANK STRIPE (for example, "CLEARING STRIPE ACCOUNT"). Online payments post here.
⚠️ Without the webhook, invoices will not be marked paid
The webhook is how Stripe tells MeTEY a payment succeeded. If you skip step 3, customers can still pay but their invoices will stay open in MeTEY.
Sending a Payment Link
Payment links are generated from the Receivables List, so accounting can send a link for one invoice or several in the same place.
- Open Receivables → Receivables List
- Filter by client to show that customer's open invoices
- Tick the checkbox beside each invoice to include
- Check the count and total shown in the bar at the bottom
- Click 💳 Generate Payment Link
- Copy the link and email it to your customer
💡 One customer per link
A payment link is a single checkout for a single payer. Once you tick an invoice, other customers' rows are disabled. Use Clear to switch customers. Only open invoices with an outstanding balance can be selected.
Putting the payment link on the invoice
As well as sending a link, you can print or email the invoice with a scannable QR code and the payment address on the document itself. The customer scans it with a phone and pays — no separate email needed.
- Open the invoice and choose Print
- In the print options, tick 💳 Include "Pay Online" QR code and link
- Print, or tick 📧 Email PDF — the block appears on both
💡 Good to know
- The option appears on invoices only. There is nothing to pay against a quote, and an order is not yet billed.
- Reprinting an invoice reuses the same payment link rather than creating a new one.
- If Stripe is not set up, the option is shown but greyed out, and the invoice prints normally without the block.
- Once the customer pays, the invoice is marked paid automatically, exactly as with an emailed link.
What Happens When the Customer Pays
- The payment is recorded and allocated to the invoices on the link, oldest first
- Each fully paid invoice is closed and its order marked INVOICE_PAID
- A journal entry is posted: debit A-BANK STRIPE, credit A-RECEIVABLES
- Updates normally appear within about 30 seconds
Partial payments and overpayments
If a payment does not cover everything, the oldest invoices are closed first and the next is partly paid; the rest stay open.
If a payment exceeds what is owed - for example an invoice was already settled by cheque - the surplus is kept as a customer credit rather than being forced onto an invoice.
Fees and Accounting
Journal entries are posted gross, for the full invoice amount. Stripe deducts its processing fee before the money reaches your bank, so reconcile that fee separately against your bank statement (typically to E-BANK FEES).
| Method | Typical Stripe Fee | Settlement |
|---|---|---|
| Credit / debit card | 2.9% + $0.30 | ~2 business days |
| ACH bank transfer | 0.8%, capped at $5.00 | 3-5 business days |
Fees are set by Stripe and may change. Check stripe.com/pricing for current rates.
Going Live
- Switch your Stripe dashboard out of test mode
- Create a new webhook endpoint in live mode - live mode has its own signing secret
- In MeTEY, turn Test Mode off and enter your
pk_live_/sk_live_keys plus the newwhsec_ - Click Test Connection, then Save Configuration
🔒 How your credentials are protected
- Your secret key is encrypted at rest and always displayed masked
- Leaving a masked value untouched keeps the saved key
- Every configuration change is written to the audit log
- Each company's credentials are completely separate - nothing is shared
Troubleshooting
| Problem | What to do |
|---|---|
| "Stripe payments are not set up for this company" | Enable Stripe and save a secret key in E-Payment Settings |
| "Secret key must start with sk_test_ for test mode" | Test Mode and your key type disagree - change one of them |
| "Webhook secret must start with whsec_" | You pasted an API key instead of the webhook signing secret |
| Customer paid but the invoice is still open | Check Stripe Dashboard → Webhooks → your endpoint for failed deliveries. Usually the webhook is missing or has the wrong signing secret. |
| Connection test fails | The key was mistyped or revoked - copy it again from Stripe |
| No checkbox beside an invoice | Only open invoices with an outstanding balance can be paid online |