{"id":13666715,"url":"https://github.com/lnbits/offlineshop","last_synced_at":"2025-08-01T04:33:16.337Z","repository":{"id":73758141,"uuid":"601999608","full_name":"lnbits/offlineshop","owner":"lnbits","description":null,"archived":false,"fork":false,"pushed_at":"2025-07-19T09:08:32.000Z","size":458,"stargazers_count":1,"open_issues_count":0,"forks_count":3,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-07-19T13:29:21.302Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lnbits.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-02-15T09:33:16.000Z","updated_at":"2025-07-19T09:08:36.000Z","dependencies_parsed_at":"2024-01-14T16:12:31.093Z","dependency_job_id":"9f1892a4-7475-4499-b333-1f97f2fc68da","html_url":"https://github.com/lnbits/offlineshop","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/lnbits/offlineshop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lnbits%2Fofflineshop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lnbits%2Fofflineshop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lnbits%2Fofflineshop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lnbits%2Fofflineshop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lnbits","download_url":"https://codeload.github.com/lnbits/offlineshop/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lnbits%2Fofflineshop/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268171015,"owners_count":24207407,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-01T02:00:08.611Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T06:01:24.039Z","updated_at":"2025-08-01T04:33:16.316Z","avatar_url":"https://github.com/lnbits.png","language":"Python","funding_links":[],"categories":["Uncategorized"],"sub_categories":["Uncategorized"],"readme":"# Offline Shop - \u003csmall\u003e[LNbits](https://github.com/lnbits/lnbits) extension\u003c/small\u003e\n\n\u003csmall\u003eFor more about LNBits extension check [this tutorial](https://github.com/lnbits/lnbits/wiki/LNbits-Extensions)\u003c/small\u003e\n\n## Create QR codes for each product and display them on your store for receiving payments Offline\n\n[![video tutorial offline shop](http://img.youtube.com/vi/_XAvM_LNsoo/0.jpg)](https://youtu.be/_XAvM_LNsoo 'video tutorial offline shop')\n\nLNbits Offline Shop allows for merchants to receive Bitcoin payments while offline and without any electronic device.\n\nMerchant will create items and associate a QR code ([a LNURLp](https://github.com/lnbits/lnbits/blob/master/lnbits/extensions/lnurlp/README.md)) with a price. He can then print the QR codes and display them on their shop. When a customer chooses an item, scans the QR code, gets the description and price. After payment, the customer gets a confirmation code that the merchant can validate to be sure the payment was successful.\n\nCustomers must use an LNURL pay capable wallet.\n\n[**Wallets supporting LNURL**](https://github.com/fiatjaf/awesome-lnurl#wallets)\n\n## Usage\n\n1. Entering the Offline shop extension you'll see an Items list, the Shop wallet and a Wordslist\\\n   ![offline shop back office](https://i.imgur.com/Ei7cxj9.png)\n2. Begin by creating an item, click \"ADD NEW ITEM\"\n   - set the item name and a small description\n   - you can set an optional, preferably square image, that will show up on the customer wallet - _depending on wallet_\n   - set the item price, if you choose a fiat currency the bitcoin conversion will happen at the time customer scans to pay\\\n     ![add new item](https://i.imgur.com/pkZqRgj.png)\n3. After creating some products, click on \"PRINT QR CODES\"\\\n   ![print qr codes](https://i.imgur.com/2GAiSTe.png)\n4. You'll see a QR code for each product in your LNbits Offline Shop with a title and price ready for printing\\\n   ![qr codes sheet](https://i.imgur.com/faEqOcd.png)\n5. Place the printed QR codes on your shop, or at the fair stall, or have them as a menu style laminated sheet\n6. Choose what type of confirmation do you want customers to report to merchant after a successful payment\\\n   ![wordlist](https://i.imgur.com/9aM6NUL.png)\n\n   - Wordlist is the default option: after a successful payment the customer will receive a word from this list, **sequentially**. Starting in _albatross_ as customers pay for the items they will get the next word in the list until _zebra_, then it starts at the top again. The list can be changed, for example if you think A-Z is a big list to track, you can use _apple_, _banana_, _coconut_\\\n     ![totp authenticator](https://i.imgur.com/MrJXFxz.png)\n   - TOTP (time-based one time password) can be used instead. If you use Google Authenticator just scan the presented QR with the app and after a successful payment the user will get the password that you can check with GA\\\n     ![disable confirmations](https://i.imgur.com/2OFs4yi.png)\n   - Nothing, disables the need for confirmation of payment, click the \"DISABLE CONFIRMATION CODES\"\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flnbits%2Fofflineshop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flnbits%2Fofflineshop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flnbits%2Fofflineshop/lists"}