Blog
Get paid online with Stripe
Customers can now pay an invoice by card through Stripe, and Devias records the payment on the invoice by itself. How it works, and the care we took so that no payment is lost or counted twice.
· 3 min read

An invoice is only half the job. The other half is getting paid, and then keeping the books right: who paid, how much, and what is still owed. Done by hand, that means checking your bank, finding the invoice and typing the payment in.
So we connected Devias to Stripe. A customer can now pay an invoice by card from a link, and Devias records the payment on the invoice the moment Stripe reports it.
A payment link on every invoice
Open an invoice that has been sent and you will find an Online payment section. Press Create payment link and Devias asks Stripe for a link for what is left to pay on that invoice. The link is saved on the invoice, with a button to copy it, and it is printed under Pay online on the invoice’s PDF.
If the customer pays only part of it, press Update link. You get a new link for what is still owed, and the old one is switched off so nobody pays an outdated amount.
The payment records itself
When the customer pays, Stripe tells Devias. Devias adds the payment to that invoice: the amount, the date, the card as the method, and Stripe’s reference. If it covers what was owed, the invoice is paid in full, and the link is switched off so it cannot take the money a second time. The owners and admins of your workspace get a message saying that the invoice was paid online, and whether it is paid in full.
Nobody typed anything, and nobody had to check a bank statement.
Care for the awkward cases
Money is where small mistakes cost the most, so most of the work went into what happens when things are not simple.
- A payment is never counted twice. Stripe sometimes repeats a report, and Devias can be asked to handle one again. Each payment carries its own reference, and one that is already on the invoice is not added again.
- Slow payments count when they arrive. A bank debit can take days to clear. Devias records it when the money has gone through, not when the customer started paying.
- Money for an invoice that owes nothing is held back. If a payment arrives for an invoice that is already paid or is not open, Devias does not record it. The owners and admins are told, once, so they can refund it in Stripe or record it by hand.
- A different currency is not recorded. If the customer somehow paid in a currency other than the invoice’s, Devias stops with a clear message instead of recording a wrong amount.
- Only real reports are believed. Stripe signs everything it sends. Devias checks the signature, and ignores a report that is too old, so a copy of an old one cannot be played back later. Without your signing secret, reports are refused rather than trusted blindly.
Your Stripe account
You bring your own Stripe account, and what customers pay goes straight to it. Devias never holds the money. A few minutes of setup:
- Add the Payments via Stripe module. It works with the Invoicing module, so install that first.
- Paste in your secret key from Stripe. Start with a test key if you like, or use a restricted key that can create prices and payment links.
- Test the connection. Devias tells you whether it is connected in test mode or live mode, so you know where you are before a real customer pays.
- To have payments recorded, add the web address Devias shows you under Webhooks in Stripe, choose the checkout events, and paste the signing secret into the connection.
Every payment report is handled by an automation that comes with the module, so you can see each one in that workflow’s history.
What it does not do yet
It takes card payments for invoices. Refunds and failed payments are also reported to Devias, and you can start your own automations from them, but the module does not change an invoice for them by itself.
Try it
Add the Invoicing module, then Payments via Stripe, connect a test key and send yourself an invoice. Like the rest of Devias it is open source, and you can read how it is made if you are curious.