Announcing Deskie Access: No-nonsense, affordable door access control for your space.Learn more

Library bookshelves

Payments and ACH

How Deskie charges cards and US bank accounts through your own Stripe account, how members save and reuse payment methods, how ACH bank setup and mandates work, and why the only processing fee is Stripe's.

Last updated June 8, 2026

Every charge in Deskie runs through Stripe, against your workspace's own Stripe account. Deskie supports two payment methods: credit and debit cards, and ACH debits from US bank accounts. Cards work as soon as Stripe is connected; ACH is an opt-in that needs a little extra setup. This article explains how a charge is created and confirmed, how members save and reuse a card or bank account, how the ACH bank connection and mandate work, and what fees are involved. To connect Stripe in the first place, see connecting Stripe.

How a payment is created

Deskie does not store card or bank numbers. Instead it creates a Stripe payment intent for the amount owed and lets Stripe collect the sensitive details. Every charge follows the same pattern, whether it starts from an invoice, an automatic billing run, or an admin paying on a member's behalf.

  1. Deskie looks up the invoice and the member it belongs to, and resolves the Stripe customer for that payer. If the invoice is billed to a team, Deskie charges the team's Stripe customer and falls back to the member's customer if the team customer cannot be resolved.
  2. If the payer has no Stripe customer yet, Deskie creates one on the fly and saves its id back to the member profile so future charges skip that step.
  3. Deskie calculates the total to charge, including any tax or card surcharge the workspace has configured, and creates the payment intent on your Stripe account for that amount in your workspace currency.
  4. A pending payment record is written in Deskie, linked to the invoice and tagged with the Stripe payment intent id, so the charge can be tracked through to completion.

Stripe enforces a minimum charge amount per currency. Deskie validates the amount before creating the intent and returns a clear error if it is below that minimum, so a too-small charge fails fast rather than erroring deep inside Stripe.

Confirming a payment and what the statuses mean

Once a payment intent exists, it is confirmed with the chosen payment method. Deskie then reads the result back from Stripe and updates both the payment record and the invoice.

  • Succeeded: the charge cleared. The payment is marked succeeded with a paid timestamp, and the invoice is marked paid.
  • Processing: this is normal for ACH bank debits, which take several business days to settle. Deskie keeps the payment in a pending state but marks the invoice as paid right away, so the member's standing is not held up while the transfer clears. A Stripe webhook later moves the payment to succeeded once the transfer settles.
  • Failed: the charge was declined or the payment method was rejected. Deskie marks the payment failed and sends the member a charge-failed email. When Stripe provides a customer-friendly reason, Deskie passes it through; when it does not, the email does not invent one.
  • Cancelled: the payment intent was canceled, and the payment record is marked cancelled.

For successful charges, Deskie also records what Stripe actually deducted as its processing fee, along with the net amount you received. This is read from the Stripe balance transaction behind the charge and stored on both the payment and the invoice, which is what powers the fee and net columns in your payment lists.

Saved payment methods

Members can keep a card or bank account on file so future invoices can be paid without re-entering details, and so admins can charge a stored method. Deskie tracks one default payment method per member, alongside the saved card's brand, last four digits, and expiration for display.

Saving a card

When a member saves a card, Deskie attaches it to their Stripe customer and records the card's brand, last four, and expiry on their profile as the default method. If a member has no Stripe customer yet, one is created at this point. A card can also be saved as part of paying an invoice, by opting to keep it for future use, which tells Stripe to retain it for later off-session charges.

Viewing and removing methods

Deskie reads the member's saved methods directly from Stripe so the list is always current. Card methods are shown by default, and bank accounts are included when ACH is enabled for the workspace. The member's default method is flagged in the list. Removing a method detaches it from the Stripe customer; if it was the default, the stored card details on the profile are cleared as well.

Charging a saved method as an admin

Admins with billing permission can charge an unpaid invoice using the member's stored default method. Deskie detects whether that saved method is a card or a bank account so the optional card surcharge is only applied to actual card charges, then runs the same create-and-confirm flow described above. If the member has no stored method, the action stops with a clear message.

ACH bank payments

ACH lets members pay directly from a US bank account. ACH is off by default and is turned on per workspace in your Stripe settings; see connecting Stripe for how to enable it, including the Stripe webhook that ACH relies on to report when a transfer finally clears.

When ACH is enabled, Deskie adds the US bank account method alongside cards on the charges it creates, and the saved-methods list starts including connected bank accounts.

Connecting a bank account

Bank accounts are linked through Stripe Financial Connections, which verifies the account through the bank rather than relying on slow micro-deposits. The flow works like this:

  1. Deskie creates a Financial Connections session for the member's Stripe customer, limited to US bank accounts, requesting only the permission needed to use the account for payments.
  2. The member authenticates with their bank through Stripe's hosted interface and selects an account.
  3. Deskie turns the linked account into a Stripe payment method, attaches it to the member's customer, and reads back the bank name and last four digits for display.

An admin with billing permission can also start this for a member from the admin side. Even then, the member still has to authenticate with their own bank; the admin only initiates the session.

The ACH mandate

Connecting a bank account is not enough on its own to debit it later. Stripe requires a mandate, the customer's authorization to pull funds from the account, before an off-session ACH debit (such as automatic billing or an admin charging the saved method) is allowed. Attaching the account does not create one, so Deskie establishes a reusable off-session mandate immediately after the bank account is linked.

  • When the member links the account themselves, Deskie records an online acceptance, capturing the request context at the moment they completed the step in their browser.
  • When an admin links the account on the member's behalf, Deskie records an offline acceptance, reflecting that the workspace holds the member's authorization out of band.

Once the mandate exists, the automatic billing and admin charge paths reuse it automatically, with no extra step at charge time. Establishing the mandate is best-effort: if it cannot be created in the moment, the bank account stays attached and connected so the linking step is never lost. Instantly verified accounts confirm their mandate right away.

Managing connected bank accounts

Members can see their connected bank accounts, with bank name, last four, and account type, set one as their default payment method, or remove one. Setting a bank account as default clears any stored card details on the profile, since a member has a single default method. Removing a bank account detaches it from the Stripe customer and, if it was the default, clears it from the profile. Deskie verifies a bank account belongs to the member's own customer before changing or removing it.

Processing fees are Stripe's only

Deskie does not add any platform fee, application fee, or markup to your charges. Every payment intent is created directly on your own Stripe account for the exact amount being collected, and the money settles to you. The only deduction is Stripe's standard processing fee, which Stripe takes on each successful charge.

For each successful payment, Deskie reads that Stripe fee and the resulting net amount from Stripe and stores them so you can see, per transaction, what Stripe charged and what you actually received.

This is separate from any tax or optional card surcharge a workspace chooses to add to its invoices. Those are amounts you decide to collect from the member and that become part of the invoice total; the Stripe processing fee is what Stripe deducts from that total when the charge settles. The card surcharge, when configured, is only applied to card payments and is skipped for ACH. For how those configurable amounts work, see tax and card fees.

Where this fits

Payments are the settlement layer underneath the rest of billing. Charges originate from invoices, run on the schedule set by your billing cycles and auto-charge, and the saved methods described here are what make hands-off recurring billing possible. To get any of this working, your Stripe account must be connected first, as covered in connecting Stripe.

Start your 7-day free trial

Try Deskie free for 7 days.
See how easy it is to manage your entire coworking space from one platform.