1. Register items.
  2. Print QR codes and paste them on your store, your menu, somewhere, somehow.
  3. Clients scan the QR codes and get information about the items plus the price on their phones directly (they must have internet)
  4. Once they decide to pay, they'll get an invoice on their phones automatically
  5. When the payment is confirmed, a confirmation code will be issued for them.

The confirmation codes are words from a predefined sequential word list. Each new payment bumps the words sequence by 1. So you can check the confirmation codes manually by just looking at them.

For example, if your wordlist is [apple, banana, coconut] the first purchase will be apple, the second banana and so on. When it gets to the end it starts from the beginning again.

Powered by LNURL-pay.

POST
Headers
{"X-Api-Key": <invoice_key>}
Body (application/json)
Returns 201 OK
Curl example
curl -X GET {{ request.base_url }}/offlineshop/api/v1/offlineshop/items -H "Content-Type: application/json" -H "X-Api-Key: {{ user.wallets[0].inkey }}" -d '{"name": <string>, "description": <string>, "image": <data-uri string>, "price": <integer>, "unit": <"sat" or "USD">}'
GET
Headers
{"X-Api-Key": <invoice_key>}
Body (application/json)
Returns 200 OK (application/json)
{"id": <integer>, "wallet": <string>, "wordlist": <string>, "items": [{"id": <integer>, "name": <string>, "description": <string>, "image": <string>, "enabled": <boolean>, "price": <integer>, "unit": <string>, "lnurl": <string>}, ...]}<
Curl example
curl -X GET {{ request.base_url }}/offlineshop/api/v1/offlineshop -H "X-Api-Key: {{ user.wallets[0].inkey }}"
PUT
Headers
{"X-Api-Key": <invoice_key>}
Body (application/json)
Returns 200 OK
Curl example
curl -X GET {{ request.base_url }}/offlineshop/api/v1/offlineshop/items/<item_id> -H "Content-Type: application/json" -H "X-Api-Key: {{ user.wallets[0].inkey }}" -d '{"name": <string>, "description": <string>, "image": <data-uri string>, "price": <integer>, "unit": <"sat" or "USD">}'
DELETE
Headers
{"X-Api-Key": <invoice_key>}
Body (application/json)
Returns 200 OK
Curl example
curl -X GET {{ request.base_url }}/offlineshop/api/v1/offlineshop/items/<item_id> -H "X-Api-Key: {{ user.wallets[0].inkey }}"