Sabt — store submission kit

Everything Google Play and the App Store ask for. Tap Copy for text, click an image to download it, or take the whole lot as a zip.

⬇ Install on this phone (APK) ⬇ Play upload bundle (.aab, admins only) ⬇ All images (zip)

The .aab is for the Play Console upload form only — no phone can install it; one that tries says there was a problem parsing the package. To put the app on a phone, use Install. Same code, both of them; the bundle is the store build (no buying or downloading outside the store) and is not on the public website: sign in to the admin first.

Listing text

Counts are live. Red means the store will reject it.

App name — both stores
Sabt Shop Ledger
Subtitle — App Store only
Your daybook, on your phone
Short description — Play only
Sales, expenses and who owes who. Works offline, stays on your phone.
Promotional text — App Store only
Write it down once and it is kept. No account, no internet, no setup — open it and record your first sale.
Keywords — App Store only
ledger,khata,daybook,shop,expenses,sales,credit,debt,bookkeeping,offline,dari,afghan
Full description — both stores
Sabt replaces the paper daybook. It records four things and nothing else: what you sold, what you spent, what you lent out, and what you borrowed. From those it works out your cash on hand, who owes you, and who you owe. Written down the way you would write it Every entry is just words and an amount — "2 bottles oil, 350". No product codes, no catalogue to set up, nothing to fill in before your first sale. What you type suggests itself next time, so a name is typed once and tapped after that. One line, or several when you itemise. Built for the counter • Large type you can read at arm's length, in daylight • Every button big enough to hit one-handed while serving • Plain words, no accounting terms to learn • English and Dari, and the whole screen flips for Dari Works with no internet Your book lives on the phone. Record a sale with no signal, no account and no sign-up. Nothing is uploaded unless you ask for it. Credit, the way a shop actually works Took part of the money now and the rest on credit? Record both in one go. Someone paid back what they owed? Say so, and their balance moves. No interest fields anywhere — loans are what was lent and what came back, and nothing else. Keep what matters • Who owes you, who you owe, and how long it has been • A statement you can send a customer • Todos with reminders, so nothing is forgotten • Backups you save yourself, on a schedule you choose Put money aside A piggy bank for whatever you are saving up for — a freezer, Eid, the rent. Put money in, take some out when you need it, and the pot keeps the whole history. Give it a goal and it shows how far along you are. Switch it off if you do not want it. Only what you use Turn off anything you do not need. Switch off lending and the tab disappears. The app shapes itself to your shop. Free, and honest about it Every sale, expense and loan. Unlimited entries and people. Export your data any time — that is never locked. Everything in one book. همه چیز ثبت است A product of Respiresoft LLC
What's new — 1.0.0
First release. Record sales, expenses and loans, and see who owes who. Set money aside in a piggy bank with a goal. Works with no internet. English and Dari.

Google Play

Store settings

FieldValue
Package namecom.respiresoft.sabt
App or gameApp
CategoryFinance
TagsAccounting, Budgeting, Small business
Free or paidFree, with an in-app subscription
Contains adsNo
Privacy policyhttps://sabt.respiresoft.com/privacy
Account deletion URLhttps://sabt.respiresoft.com/delete-account
Support emailsupport@respiresoft.com
Websitehttps://sabt.respiresoft.com
Default languageEnglish (US), with Persian/Dari added
Target audience18 and over

Data safety

QuestionAnswer
Does your app collect or share user data?Yes — only what is listed here
Is all data encrypted in transit?Yes, HTTPS throughout
Can users request data deletion?Yes — in-app, and at the URL above
Personal info — name, email, user IDsCollected only if the user creates an optional account (name, username, PIN; email optional). Purpose: app functionality, account management. Not shared. Optional.
Financial info — otherCollected, optional: only the figures in a statement the user chooses to share by link. The rest of the book stays on the shop's phones.
Financial info — purchase historyCollected for the subscription. Purpose: app functionality. Handled by the payment provider. Optional.
Device or other IDsCollected, required: a random device token, for update notices and one free trial per phone. Purpose: app functionality, fraud prevention. Not shared.
App activity — user-generated content, otherCollected, required: the names of the user's shops, each one's entry count and the phone's name, about once a day, so two phones do not keep two copies of a shop. Purpose: app functionality.
Audio — voice or sound recordingsCollected, optional, processed ephemerally: spoken entry (Cloud only, user-initiated) streams live to the speech provider and nothing is stored. The words go to a language provider to be read as a draft entry, then discarded.
Photos and videos — photosCollected, optional, processed ephemerally: a receipt or tailor's order slip photo the user takes or chooses to have read (Cloud only, user-initiated) is made smaller on the phone and read into a draft entry or order, then discarded. Nothing is stored.
Location, contacts, messages, filesNot collected
Data used for advertisingNone — there is no advertising

Content rating questionnaire

QuestionAnswer
Violence, sexuality, language, controlled substancesNone
Gambling or simulated gamblingNone
User-generated content shared with othersNo — a shared statement is the user's own figures on a link they create
Does the app use AI to generate content?It reads a spoken sentence into a draft entry the user confirms. It writes nothing on its own and generates no content for others.
Does the app share the user's location?No
Does the app allow purchases?Yes — a subscription
Expected ratingEveryone / PEGI 3

Permissions

What the built bundle actually declares — nothing restricted, so no Play declaration form is required. RECORD_AUDIO is a runtime permission, not a restricted one.

PermissionWhy
INTERNET, ACCESS_NETWORK_STATEUpdates and paid features
POST_NOTIFICATIONSBackup and todo reminders the user sets
RECEIVE_BOOT_COMPLETEDThose reminders survive a restart
WAKE_LOCK, VIBRATEDelivering a reminder
RECORD_AUDIOSpoken entry, on Cloud. Requested at the moment the user taps the microphone, never at launch; android.hardware.microphone is declared required="false" so a device without one still sees the listing.
No exact-alarm permission, on purpose. USE_EXACT_ALARM is restricted by Play to alarm-clock and calendar apps; a reminder app does not qualify and declaring it invites rejection. Reminders use an inexact alarm that still wakes the device from Doze — accurate to within a few minutes, which is all a backup reminder needs.

App Store

The iOS binary is not built yet. Everything on this page except the Android files applies to iOS too, but compiling and uploading an iOS app needs a Mac with Xcode and an Apple Developer account ($99/year). The app itself is ready: it is the same web build Capacitor wraps for Android.

App information

FieldValue
Bundle IDcom.respiresoft.sabt
SKUsabt-ledger-001
Primary categoryFinance
Secondary categoryBusiness
Age rating4+ (no objectionable content)
PriceFree, with an auto-renewing subscription
Copyright© 2026 Respiresoft LLC
Support URLhttps://sabt.respiresoft.com/support
Marketing URLhttps://sabt.respiresoft.com
Privacy policy URLhttps://sabt.respiresoft.com/privacy
LanguagesEnglish (primary), Persian

App privacy — nutrition labels

CategoryAnswer
Contact info — name, email addressCollected, linked to the user. Purpose: app functionality. Not used for tracking. Optional (account only).
Financial info — other financial infoCollected, linked. Purpose: app functionality. Only the figures in a statement the user chooses to share by link, kept until they stop sharing it. The rest of the book never leaves the shop's phones.
Purchases — purchase historyCollected, linked. Purpose: app functionality (what the account has paid for; nothing is sold in the iPhone app).
Identifiers — user IDCollected, linked. Purpose: app functionality. The username chosen when making an account.
Identifiers — device IDCollected, linked (once the user signs in). Purpose: app functionality: update notices, one free trial per phone.
User content — other user contentCollected, linked. Purpose: app functionality. The names of the user's shops, with each one's entry count and the phone's name, about once a day, so two phones do not end up with two copies of one shop.
Audio dataNot collected. Spoken entry streams live to the speech provider and nothing is kept; Apple counts only data kept longer than the request needs.
User content — photos or videosNot collected. A receipt or slip photo the user chooses to have read is read once and dropped; Apple counts only data kept longer than the request needs.
Usage data, diagnostics, location, contactsNot collected. There is no analytics or crash reporting SDK.
Used to track you across appsNo

Export compliance

QuestionAnswer
Does your app use encryption?Yes — HTTPS only
Does it qualify for an exemption?Yes. It only uses standard encryption built into the operating system (TLS), which is exempt.
Add to Info.plistITSAppUsesNonExemptEncryption = NO

Notes for the reviewer

Review notes
No account is needed to use the app. Open it, complete the one-screen setup (shop name), and everything works immediately — recording sales, expenses and loans is entirely offline and local to the device. An account is only required for the optional paid Cloud plan. If you want to see that flow, you can register any email inside the app under Settings → Account; no payment is required to create the account. To see the app populated with realistic data instead of an empty shop, open: https://sabt.respiresoft.com/till/demo That is a sandbox that never touches a real ledger. The app is a bilingual English/Dari ledger for shopkeepers. Dari switches the whole interface to right-to-left under Settings → Language.

Graphics

AssetSizeWhereFile
App icon512 × 512Playstore-icon-512.png
App icon, no alpha1024 × 1024App Storeappstore-icon-1024.png
Feature graphic1024 × 500Playfeature-graphic-1024x500.png

Brand, film and covers

Made from the real app by web/scripts/marketing (covers.mjs, tour-video.mjs, ad-cuts.mjs). The brand rules are in web/docs/BRAND.md. Google Play's Video field takes a YouTube link: upload the film below to YouTube, then paste its address there.

Covers

Logo files

The «ث» mark, the lockups in English and Dari, light, dark and one-colour. The review sheet shows them all: preview.png.

FileSize
favicon.svg0 MB
sabt-glyph-mono.svg0 MB
sabt-glyph-white.svg0 MB
sabt-glyph.svg0 MB
sabt-logo-bilingual-dark.svg0 MB
sabt-logo-bilingual.svg0 MB
sabt-logo-dark.svg0 MB
sabt-logo-fa-dark.svg0 MB
sabt-logo-fa-mono.svg0 MB
sabt-logo-fa.svg0 MB
sabt-logo-mono.svg0 MB
sabt-logo.svg0 MB
sabt-mark-mono.svg0 MB
sabt-mark.svg0 MB
sabt-wordmark-fa.svg0 MB
sabt-wordmark.svg0 MB
appstore-icon-1024.png0 MB
preview.png0.3 MB
sabt-logo-bilingual-dark.png0 MB
sabt-logo-bilingual.png0.1 MB
sabt-logo-dark.png0 MB
sabt-logo-fa-dark.png0 MB
sabt-logo-fa.png0 MB
sabt-logo.png0 MB
sabt-mark-1024.png0.1 MB
store-icon-512.png0 MB

The film — English

⬇ video-1080.mp4 (8.6 MB, 1920×1080) · captions.vtt

The film — Dari

⬇ video-1080.mp4 (8.5 MB, 1920×1080) · captions.vtt

Ad cuts and status videos

FileSizeCaptions
sabt-en-15s-1x1.mp41.5 MB .srt
sabt-en-15s-9x16.mp42 MB .srt
sabt-en-30s-9x16.mp44.2 MB .srt
sabt-fa-15s-1x1.mp41.5 MB .srt
sabt-fa-15s-9x16.mp42 MB .srt
sabt-fa-30s-9x16.mp43.9 MB .srt

Screenshots

Taken from the live app at each store's exact required size. Click to download.

Play — phone, English (1080×1920)

Play — phone, Dari (1080×1920)

Play — 7-inch tablet (1200×1920)

Play — 10-inch tablet (1600×2560)

App Store — 6.9 inch, English (1320×2868)

App Store — 6.9 inch, Dari (1320×2868)

App Store — 6.5 inch (1242×2688)

App Store — iPad 13 inch (2064×2752)

Build facts

FieldValue
Version1.3.11 (versionCode 16)
Minimum AndroidAPI 24 — Android 7.0 Nougat
Target / compile SDKAPI 36 — Android 16
Bundle size3 MB (.aab) · 2.5 MB (.apk)
Native librariesNone — every ABI is served by one build
Upload key SHA-256E9:88:14:09:EB:94:21:65:F4:D2:3C:AB:B5:00:96:F0:99:16:14:03:61:6C:19:B0:8D:06:E8:A0:FA:AF:66:E6
Keystore~/.keystores/sabt-upload.jks, alias sabt-upload — back this up off the server
Android 7.0 is the floor, and it is not ours to lower. Capacitor 8 requires API 24. Going lower would mean several major versions back, losing security updates and the ability to target API 36 — which Play now requires. In practice Android 7+ covers all but a fraction of a percent of active devices.