Supply Checkout

Privacy Policy

This policy explains what Main Street Logic, LLC, a Virginia limited liability company ("we", "us"), collects when you use Supply Checkout, why, who else handles it, how long we keep it, and the choices you have. It covers the website at supplycheckout.com, the web app, the iOS and Android apps, and related services (together, "the Service"). It is part of our Terms of Service.

The Service is for businesses in the United States. We store and process data in the United States.

The short version

1. Who is responsible for what

2. What we collect

You give us

WhatExamplesWhere it comes from
Account detailsEmail address, first and last name, sign-in method (email code, password, passkey, or Google or Apple sign-in), whether two-step sign-in is onYou, at sign-up and in Account settings. If you sign in with Google or Apple, they send us your email address, whether it is verified, and your name.
Team detailsTeam name, members and their roles, invitations (the invited email address and role)Owners
Your team's dataInventory items (names, barcodes, prices, costs, stock counts, pack sizes), checkout projects, client or job names, dates, notes, stock history, CSV files you importOwners and members
ReceiptsReceipt photos you scan, and the lines, prices and totals read from themMembers who scan receipts
Billing detailsBilling contact name, email and address, tax ID, the plan and seats, invoices and payment statusOwners, entered on Stripe's pages. We never see or store your full card number.
Messages to usSupport emails and what you tell us in themYou

Please don't put sensitive information in the Service, such as payment card numbers, bank account numbers, government ID numbers, health information or passwords (Acceptable Use Policy).

We collect automatically

WhatDetails
Server logsWhen your device talks to our servers we record the time, your IP address, your browser's user agent, the page or API route, the result, and your account's internal ID. Our application logs record IDs and counts, not your email address, name or team data.
Error and performance reportsIn the web app, JavaScript errors (the error message and where in our code it happened) and page speed measurements, tagged with the app version, through Amazon CloudWatch RUM. Before a report leaves your browser we remove web address query strings and anything that looks like an email address or sign-in token. Reports aren't linked to your account, and RUM records the browser, operating system and device type and may derive a coarse location (such as country) from your IP address. We don't record clicks, keystrokes or screen recordings.
Security recordsRecords of sign-ins, sign-in failures, and administrative actions in our cloud account, used to protect the Service and investigate problems.
Usage countsTotals such as how many receipts a team read this month (for the plan's receipt limit), and how many teams were created or closed.
Which link brought you hereIf you arrive from a link or ad we made with campaign tags (utm_source, utm_medium and utm_campaign, for example google, cpc and the name of the ad), your browser keeps those short labels for up to 7 days, and we save them with your account and your first team when you create it, so we can tell which channel a sign-up came from. We store only those three labels, never the full web address, the page you came from or anything about the ad network's profile of you, and we don't use them to follow you across sites. No ad network or analytics provider gets a pixel, script or cookie from us.

Barcodes are read on your device. Barcode photos are not sent to us.

We don't collect

3. How we use it

We send transactional email only. We don't send marketing email.

4. Receipt reading and AI

5. Who we share it with

We don't sell your personal information, and we don't share it for cross-context behavioral advertising. We share it only with:

WhoWhat forWhat they receive
Amazon Web Services (United States)Hosting, database, file storage, backups, sign-in (Amazon Cognito), live updates, logs and error reports (Amazon CloudWatch, including CloudWatch RUM), and securityEverything we store, encrypted at rest and in transit
Amazon Bedrock (part of AWS)Reading receipt photosThe receipt photo, your team's inventory names and prices, and our instructions, for each scan
Amazon Simple Email Service (part of AWS)Sending sign-in codes, invitations and noticesThe recipient's email address and the message
StripePayments, subscriptions, invoices and the billing portalThe team name, the billing contact details owners enter, the plan and seat count, and payment details, which go straight to Stripe. Stripe's privacy policy applies to what it collects.
Google and Apple, only if you choose to sign in with themSigning you inWhat their sign-in pages collect under their own privacy policies. They send us your email address, whether it's verified, and your name.
Google FontsLoading the app's typefacesYour browser asks Google's servers for the font files, which sends Google your IP address and browser details. No cookies are set.

We may also share information:

A current list of the service providers that handle customer data is at supplycheckout.com/subprocessors.

6. Support access

7. How long we keep it

DataHow long
Your account (email, name, sign-in methods)Until you delete your account. Then it's deleted straight away.
Your team's dataWhile the team is open. When an owner closes the team, it's deleted 30 days later, or up to 44 days later in rare cases where its Stripe subscription can't be ended. Owners can reopen the team until an hour before then.
A team whose subscription ended or whose trial ended without a planRead-only for 30 days so owners can export, then deleted, as the Terms describe.
InvitationsUntil accepted or revoked, or 7 days, whichever comes first. They're deleted when the team is closed.
The team's activity history (for example, who closed or reopened a team)1 year, or until the team is deleted if that's sooner. It names people by internal ID, not email.
Records of support actions on a team2 years, including after the team is deleted. They name support staff and the team by internal ID.
Campaign tags (which link a sign-up came from)With the account and the team they were saved with: deleted with the account (the account's copy) and with the team (the team's copy).
Short-lived records (in-progress imports and stock changes, sign-in code checks, daily limits)From a few hours to 7 days
Deletion records400 days. When an account or team is deleted, we keep a record of its internal ID and the time (and for a team, the IDs Stripe gave its customer and subscription), and nothing else, so that restoring a backup can't bring it back and a deleted team's Stripe customer can still be found.
BackupsUp to 35 days. Deleted data stays in backups for up to 35 days after it's deleted, then the backups holding it expire. We use backups only to recover from mistakes and outages, and if we restore one we delete again every account and team deleted since it was taken.
Server logs and web access logs (including IP addresses)1 year
Security records of our cloud account400 days
Error and performance reports30 days
Email delivery problemsIf a message to an address bounces permanently or is marked as spam, we stop sending to that address until its owner asks us to start again. Details of an undeliverable message are kept for up to 7 days.
Billing records at StripeWhen a team's data is deleted, we delete its Stripe customer. Stripe keeps payment and invoice records it must keep by law, under its own privacy policy. We keep our own tax and accounting records for 7 years.
Support emailsUp to 2 years after the conversation ends, and longer only where billing or the law needs it

When you delete your account, what you added to a team (items, projects, receipts) stays with the team, because it belongs to the team. If you were the only member of a team, deleting your account closes that team, and it's deleted 30 days later. If you are the only owner of a team that has other members, make someone else an owner first.

8. Cookies and storage on your device

We don't use advertising or tracking cookies, and we don't use third-party analytics.

Cookies

NameSet byWhat forHow long
__Secure-sc_refreshOur API (api.supplycheckout.com)Keeps you signed in. It's only sent to our sign-in endpoints and can't be read by scripts.30 days, renewed as you use the app; removed when you sign out
cognitoAmazon Cognito, on our sign-in page (auth.supplycheckout.com)Remembers that you just signed in, so you aren't asked again straight awayAbout an hour; removed when you sign out
csrf-state, csrf-state-legacyAmazon Cognito, on our sign-in pageProtects the sign-in form against forged requestsA few minutes
XSRF-TOKEN, page-data, langAmazon Cognito, on our sign-in pageProtect the sign-in form against forged requests, carry the page's settings, and remember the page languageUntil you close your browser

Storage in your browser (these stay on your device and aren't sent to us)

KeyWhat forHow long
supplyCheckout.teamThe team you last usedUntil you sign out, or someone else signs in on the device
supplyCheckout.receiptDraft.<team>An unsaved receipt review for that team (the lines read, not the photo)Until you save or discard it, sign out, or someone else signs in
supplyCheckout.ownerWhich account the saved team and receipt drafts belong to, so the next person to sign in can't see themUntil you sign out
supplyCheckout.firstRun.<team>Whether you've finished or dismissed the getting-started checklistUntil you clear your browser's data
supplyCheckout.themeLight or dark mode, if you chose oneUntil you clear your browser's data
supplyCheckout.campaignThe campaign tags (utm_source, utm_medium, utm_campaign) from the link you arrived by, kept until you create your team, then removed. On our website and demo it's kept for the tab only.Up to 7 days, or until the tab is closed on the website
supplyCheckout.signIn, supplyCheckout.invite (this tab only)Finishing a sign-in, and an invitation link you opened, across the trip to the sign-in pageUntil the tab is closed or sign-in finishes
cwr_i, cwr_cAnonymous, short-lived credentials the error reporter uses to send reports. They don't identify you.Until they expire or you clear your browser's data

These are all needed for the app to work as you'd expect, so there's no setting to turn them off. You can clear them in your browser at any time. We don't respond to "Do Not Track" signals differently, because we don't track you across sites. We treat a Global Privacy Control signal as a request to opt out of the sale or sharing of personal information, which we don't do anyway.

9. Your choices and rights

In the app

California residents

The California Consumer Privacy Act (CCPA) gives California residents these rights about their personal information:

In the last 12 months we have collected these categories of personal information, from the sources and for the purposes in sections 2 and 3, and disclosed them for business purposes to the service providers in section 5: identifiers (name, email address, IP address, account ID); customer records (billing contact details); commercial information (plan, subscription and invoices); internet activity (logs and error reports); and professional information (team membership and role). We collect account login credentials, which are sensitive personal information, only to sign you in.

To use these rights, email hello@supplycheckout.com or use the in-app tools above. We'll confirm your request within 10 business days and answer within 45 days (we may extend that by another 45 days and will tell you if we do). We verify requests by checking that they come from the email address on the account, and may ask for more if we need it. An authorized agent may make a request for you with your signed permission, and we may ask you to confirm it directly. If your information is in a team's data, we may pass your request to that team, since we hold that data for them.

Other states

Residents of other states with consumer privacy laws (for example Colorado, Connecticut, Virginia, Oregon and Texas) may have similar rights, including to appeal a decision we make about a request. Email hello@supplycheckout.com with "Appeal" in the subject line.

10. Security

No system is perfectly secure. If a breach affects your personal information, we will tell you and the authorities as the law requires. To report a security problem, see the Acceptable Use Policy.

11. Children

The Service is for businesses, and users must be at least 18. It isn't directed at children, and we don't knowingly collect personal information from anyone under 13. If you think a child has given us personal information, contact us at hello@supplycheckout.com and we will delete it.

12. Where data is stored

We store and process data in the United States, in AWS's US East (N. Virginia) region. The Service isn't offered outside the United States.

13. Changes to this policy

If we change this policy in a way that matters, we will email team owners and show a notice in the app at least 30 days before the change takes effect. The date at the top shows when it last changed. We won't use personal information in a materially different way from what this policy described when we collected it without your consent.

14. Contact

Main Street Logic, LLC Privacy questions and requests: hello@supplycheckout.com Support: support@supplycheckout.com