Skip to content

POS card processing ​

Point of Sale offers three card tenders. They look similar at the register but mean different things for your books, so it's worth knowing which to reach for.

The three card tenders ​

  • Card reader: a card-present charge sent to a compatible reader registered with your connected Stripe or Square account. Elara waits for the provider to confirm capture before completing the sale. A customer is optional for product-only walk-in sales.
  • External card: a record-only tender. You run the customer's card on a standalone card terminal, then mark the sale paid here. Elara does not move any money for this tender; it only records that a card paid. Use it whenever the card is swiped, tapped, or dipped on hardware the app doesn't control.
  • Card on file: an in-app charge. Elara charges a card the customer already has saved, through your connected Stripe or Square account, for the order total. The payment is captured immediately and carries the real gateway reference, so the money actually moves and the sale can be refunded straight back to the card from Elara.

Keeping the three separate keeps revenue reporting honest: External card rows are sales settled on outside hardware, while Card reader and Card on file rows carry gateway-backed charges captured by the app.

Charging on a connected reader ​

  1. Choose Card reader.
  2. Select an available Stripe or Square reader. Offline, busy, and attention-needed readers remain visible but can't be selected.
  3. Select Charge {total} and ask the customer to tap, insert, or swipe.
  4. Keep the waiting screen open. Elara completes the sale only after it retrieves and verifies the provider payment amount, currency, location, and captured status.

The pending checkout survives a page reload. Canceling waits for the provider to prove that no payment completed, which protects against a card finishing at the same moment the cashier cancels.

If the connection drops after you select Charge, Elara keeps the exact checkout request and resends that same request rather than starting a new charge. Do not start the same sale again. Select Retry recovery instead. Each unresolved sale is tracked on its own, so another POS tab cannot overwrite it. If the tab that started it is gone, another tab can pick it up from Terminal checkout recovery available and resolve it there. You can leave an unresolved sale to take unrelated cash, External card, or Card on file payments, but Card reader stays unavailable until you resume and resolve the saved checkout.

Square can briefly report a checkout as timed out while the Terminal is still completing the payment. Elara keeps that order pending, continues checking Square in the background, and labels it Payment outcome unresolved. It does not restore the cart or inventory while a late charge remains possible. If Square still cannot provide a final answer after 30 days, the order is flagged for manual reconciliation in Recent Orders.

Connected-reader checkout requires a compatible internet-connected Stripe smart reader or Square Terminal. Offline payments, tips, surcharges, partial authorization, and split gift-card/reader tenders are not supported in this flow. Memberships also cannot use a connected reader yet because Elara does not activate an entitlement before an asynchronous reader payment settles; use Card on file or External card instead.

Square connections created before reader support was added must be reconnected once in Payment settings by an admin with brands:update. The payments:read permission used for Point of Sale does not allow provider configuration. Reconnecting grants the device permission the reader list needs, and it also sets up the events Elara uses to finish checkouts even when the POS page is closed, so there is no webhook to configure by hand.

The Sale Location remains Elara's reporting and inventory location. Stripe or Square owns a separate hardware location for the reader. Elara records which provider account and location a sale started against and checks them again before charging. If either one has changed, the sale is refused before any money moves. After the charge has been sent, a changed provider account (and, on Square, a changed location) stops the order for manual reconciliation rather than completing it against the new account.

Recovery and safety checks ​

  • A dropped connection, a timeout, or a retry never charges the customer twice. Elara resends the original request rather than opening a second payment.
  • Every completed order is checked back against the provider for amount, currency, account, and Square location before it is marked paid.
  • If the connected Stripe account, Square merchant, or Square location changes during a payment, the sale is refused or the order stops for manual reconciliation, never completed against the new account.
  • Reader hardware must already be paired with Stripe or Square before it appears in the reader list.

Stripe smart readers use Stripe's Terminal service and require an internet connection. Square devices must already be paired for the Terminal API. Reader checkout does not support provider offline mode.

Whether your account charges real cards or runs against the providers' test systems is set by Elara, not from Payment settings. If you want a test run before you take live card-present payments, ask Elara support to arrange it.

Charging a card on file ​

  1. Attach a customer to the cart, a saved card belongs to a customer, so this tender is unavailable for an anonymous sale.
  2. Choose Card on file as the payment method.
  3. Pick one of the customer's saved cards from the list. Each shows the brand, last four digits, and expiry.
  4. Select Charge {total}. The button shows Charging card… while the gateway processes it, and a Sale Complete screen confirms once the funds are captured.

The tender is only available when the customer has at least one saved card and your brand has a Stripe or Square connection. If in-app charging isn't set up, or the customer has no card on file, the panel says so and you can fall back to Card reader or External card.

If the card is declined ​

A declined charge is reported inline and nothing is captured, no sale is recorded. The cart is left intact so you can pick a different saved card and try again, or switch to another tender. Each attempt is a fresh charge, so a decline never risks a double charge.

If a Square charge stays pending ​

A timeout can happen after Square accepts the payment. Keep the original sale pending and do not ring it again. Retrying uses the saved Square payment when its reference is known; an uncertain request without a saved reference requires reconciliation instead of another charge.

Open Exceptions, choose the pending POS charge, and check the brand's Square account. Select Square payment found, enter the exact Square payment ID, then select Reconcile Square payment. Elara verifies the payment's order reference, customer, location, amount, currency and saved-card source. Only a completed payment settles the sale. A verified failed or cancelled payment reverses the pending sale; an unresolved payment stays pending.

For an older payment with no order reference, Attribute a legacy payment without a reference requires a note explaining how you matched it to the original receipt. Attribution is recorded for audit and cannot override a conflicting reference or reuse a payment already assigned to another sale.

Choose No payment was sent only when no request was dispatched. Elara must verify that state before reversing the sale; uncertainty or an in-progress request cannot be cleared by this action.

Requirements ​

  • Permission: payments:create (the same permission needed to ring any sale).
  • Provider: a connected Stripe or Square account set as the brand's payment provider. PayPal does not support in-app card-on-file charging.
  • Saved card: the customer must already have a card stored with the provider (for example from a prior online checkout or membership signup).

Refunds ​

  • External card sales refund like cash or gift-card sales: full or partial refunds are recorded in Elara, and you return the money on the terminal separately.
  • Card reader sales issue a full refund through the captured Stripe/Square reference before Elara reverses the local order. Partial refunds are not available yet. Stripe Interac and Square payments marked as requiring card presence need a separate in-person reader refund and are not yet supported in Elara; the order remains unchanged and tells you why instead of recording a refund that did not move money. Pending online refunds retain their provider reference and can be retried after settlement. A full refund issued from Stripe's or Square's own dashboard is picked up and recorded against the order here. A partial one is not: Elara leaves the order, inventory, gift card balances, and entitlements untouched and flags the order in Recent Orders so you can settle it by hand. A refund that had already been applied to the order and then fails at the provider raises the same flag, because money was returned in Elara's records but not by the provider. A refund that fails without ever having been applied clears the flag instead: nothing was changed, so there is nothing to settle.
  • Card on file sales refund at the gateway. Refunding the sale (or voiding it) reverses the charge on Stripe/Square and returns the money to the customer's card. Only full refunds and voids are supported for this tender today, partial refunds of an in-app charge are not yet available, so refund the whole sale or void it.