Animal Friends OS sells real stored-value gift cards at the front desk: a staff member records the amount already collected on your own terminal, the system generates an unguessable 12-character code, and that code redeems against any client invoice later — in full or in part — exactly like cash or a card would. Selling a card never counts as revenue; redeeming it does, the moment it settles a real invoice.
Every code is 12 random characters drawn from a 32-symbol alphabet with easily-confused characters (0/O, 1/I/L) removed, for roughly 60 bits of entropy. The database never stores the plaintext code — only its SHA-256 hash — so a database leak alone cannot produce a spendable card. Balance lookups are rate-limited so a code cannot be brute-forced by guessing.
Every card, redemption, and lookup is scoped to your business. A code sold by one shop is invisible to another, and a wrong-tenant lookup returns the same "not found" response as a wrong code — so it can never confirm that a code exists at a different business.
Payments still run through Stripe only — see /os/facts for the full list of what is and is not built.
A staff member enters the dollar amount at the desk after the money has already been collected on your own terminal or till — the same pattern used for daycare package sales. The system then generates the code and balance. It does not run a card charge itself; it records a sale that already happened.
Not yet. Today, selling a gift card is a front-desk action inside the dashboard, done by owner, manager, or staff. There is no public storefront page where a client can purchase one themselves.
Each code is 12 random characters from a 32-symbol alphabet with ambiguous characters removed, giving about 60 bits of entropy. Only a SHA-256 hash of the code is stored in the database; the plaintext code is shown to staff exactly once, at the moment of sale, and cannot be retrieved again. Balance lookups are rate-limited to stop guessing.
Yes. Redemption clamps to whatever balance is left and can be applied in full or in part against an open invoice, using the same payment-application path every other tender type uses, so it shows on the invoice like cash or card.
The value goes back onto the gift card, not out as cash. If a $100 gift card paid part of an invoice and that invoice is later refunded, the refunded portion is restored to the card balance rather than handed back at the register — that is a deliberate money-safety rule, so a refund can never both empty a card and pay out cash.
Only if you set an expiry when the card is sold — anywhere from a short window up to ten years. Leaving it blank means the card never expires. Expired cards stop being redeemable but are never deleted from your records.
Owners, managers, and staff can all sell a card and redeem one — those are everyday front-desk actions. Voiding a card, and seeing the full list of every card ever sold, is restricted to owners and managers, the same split used for other judgment-call actions.
No. Selling a card only creates a liability record — it never touches the revenue queries. Revenue is recognized when the card is later redeemed against a real invoice, the same moment that charge would have been counted anyway. A card sitting unused on a shelf never inflates your numbers.