> ## Documentation Index
> Fetch the complete documentation index at: https://muveya.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Android app

> What the muveya Android app does, who it is for, how to get it today, and how to sign in, choose a dental clinic, change the language and sign out.

The muveya Android app is a native phone app for everyday stock work. Its name on the phone is **Muveya**. With it, a team member scans a box label to see the box, records a use, moves a box to another warehouse and receives a delivery by scanning the supplier's barcode (GS1 DataMatrix included) or by choosing the supply by name. It also shows how much other work waits for you and opens it in the web console.

The app works on the same account, dental clinic, permissions and warehouses as the console. It keeps no stock rule of its own: muveya checks every action on the server exactly as it does for the console, and the movements land in the same ledger.

<Note>
  The Android app is not generally available yet. It is not published on Google Play today, and there is no public download. If you want to use it, write to [team@muveya.com](mailto:team@muveya.com). Until then, use the console in your phone's browser at `https://console.muveya.com`.
</Note>

## What it does and what stays in the console

The app shows this text at the bottom of the sign-in and Home screens: **Scan boxes and supplier codes to record use, receive and move stock. Orders, approvals and settings stay in the web app.**

| Task | Android app | Console |
| - | - | - |
| Scan a box label and see the box | Yes | Yes |
| Record a use, with room or area, what happened, purpose and responsible | Yes, without a care reference | Yes, with an optional care reference |
| Move a whole box to another warehouse | Yes | Yes |
| Receive a delivery by scanning the supplier code, GS1 DataMatrix included | Yes | Yes |
| Receive a supply chosen by name | Yes, searching by name | Yes, searching by name or SKU |
| See how much work waits for you | Counts only; each row opens the console | Yes, with the queues |
| Print a box label | No | Yes |
| Separate part of a box, take a box out of use | No | Yes |
| Attribute an exit later, **Usage by room** | No | Yes |
| Corrections, counts, lot recall, replenishment | No | Yes |
| Orders, approvals, picking, dispatch, delivery, receipt and close | No | Yes |
| Catalog, presentations and codes, locations, warehouses, rooms, team and reports | No | Yes |
| Create an account or a dental clinic, accept an invitation, set up an authenticator | No | Yes |

Every task, label and message of the app is described in [Android app operations](/docs/en/android/operations).

## Who it is for

The app is for the people who handle boxes during the day: assistants who record what was used, and warehouse or location staff who receive deliveries and move boxes. What each person can do depends on their permissions and on the warehouses assigned to them, exactly as in the console:

| Task in the app | Permission needed | Console label |
| - | - | - |
| Scan a box label and see the box | `inventory.read` | **View inventory** |
| Record a use | `inventory.consume`, or `inventory.adjust` which includes it, plus `inventory.read` | **Record usage**, or **Adjust and count stock**, plus **View inventory** |
| Move a box | `inventory.transfer`, or `inventory.adjust` which includes it, plus `inventory.read` | **Move boxes between warehouses**, or **Adjust and count stock**, plus **View inventory** |
| Receive a delivery | `inventory.receive`, or `inventory.adjust` which includes it | **Receive deliveries**, or **Adjust and count stock** |

A person without any of these permissions can sign in, but the Home screen shows **Your access in this organization does not include inventory. Ask an administrator for it.** Permissions and warehouses are granted in **Team**; see [Team](/docs/en/account/team) and [Roles and permissions](/docs/en/account/roles-and-permissions).

## Requirements

| Requirement | Detail |
| - | - |
| Android version | Android 10 or later. |
| Google Play services | The code scanner runs inside Google Play services. On a phone without them, the scanner does not open; you can still type codes. |
| Internet connection | Every screen reads from muveya and every action is sent at once. The app has no offline mode. |
| A web browser | Needed to sign in with Google and to open the console from the Home screen. |
| Phone permissions | Network access only. The app does not ask for the camera: the scanner's camera runs inside Google Play services. |
| A muveya account | An existing account with an active membership in at least one dental clinic. The app never creates accounts. |

## Sign in

When the app opens, the sign-in screen shows **Your clinic, connected.** and **Use your clinic account to continue.** While it checks which sign-in methods are available, it shows **Checking available sign-in options…**. Then it offers **Continue with Google** and the email and password form. **Language**, at the top right, changes the app's language (see [Language](#language)).

<Warning>
  The app signs in existing accounts only. It never creates an account or a dental clinic. To get an account, ask an administrator of your dental clinic for an invitation and accept it in the console, or create a dental clinic in the console. See [Sign in and create your account](/docs/en/account/sign-in).
</Warning>

### With email and password

<Steps>
  <Step title="Enter your credentials">
    Type your **Email** and **Password**. **Show password** and **Hide password** toggle what you typed.
  </Step>

  <Step title="Add your authenticator code, if you use one">
    If your account has an authenticator app, type its six digits in **Authenticator code (optional)**. The hint says **Enter 6 digits if your account uses two-step verification.** Once your account has an authenticator, every password sign-in needs the code. See [Account security](/docs/en/account/security).
  </Step>

  <Step title="Sign in">
    Press **Sign in**. The button stays disabled until the email looks valid, the password is not empty and the code field is either empty or has exactly six digits. While muveya checks, the screen shows **Checking your access…** with **Cancel**.
  </Step>
</Steps>

The app clears the password and the code from the form as soon as you press **Sign in**. The email can have up to 254 characters and the password up to 512.

### With Google

<Steps>
  <Step title="Start">
    Press **Continue with Google**. Your browser opens Google's sign-in page, and the app shows **Complete Google sign-in in your browser, then return to Muveya.** with **Cancel**.
  </Step>

  <Step title="Choose your Google account">
    Choose the Google account whose email is your muveya account. When Google is done, the browser returns you to the app.
  </Step>

  <Step title="Add your authenticator code, if asked">
    If your account has an authenticator, the app shows **Authenticator code (optional)**. Type the six digits and press **Continue**, which stays disabled until the six digits are there. **Cancel** stops the Google sign-in.
  </Step>
</Steps>

You have 10 minutes from the moment you press **Continue with Google** to finish the whole round trip. If the time runs out, or the authenticator code is wrong, press **Continue with Google** again.

| Your situation | What you see | What to do |
| - | - | - |
| Your Google email has a muveya account that is set up | You are signed in. | Nothing. |
| Your Google email has no muveya account | **There is no Muveya account for this email. Ask an administrator of your clinic to invite you.** | Ask for an invitation, accept it in the console, then sign in again. The app never offers to create an account. |
| The account exists but its email is not verified or its password setup is unfinished | **Check your email, password and authenticator code.** | Finish the setup in the console first. See [Sign in and create your account](/docs/en/account/sign-in). |
| No browser can be opened | **We could not open a browser. Check that one is available and try again.** | Install or enable a browser, then try again. |

If Google sign-in is switched off for the service, **Continue with Google** does not appear. If neither method is available, the screen says **Password sign-in is not available for this service. Use the web app to continue.**

## Choose your dental clinic

The app calls your dental clinic account an **organization**. After you sign in, muveya opens one of the dental clinics where your membership is active, and the app goes straight to its Home screen. The name under the logo tells you which one is active.

To work in another one, open **Menu** and choose **Change organization**. The **Your account** screen shows your email, the title **Choose your clinic or dental network** and the hint **Only organizations available to your account appear here.** Each organization is a button with its name and either **Active organization** (the current one, which cannot be pressed) or **Open organization**. Press the one you want. **Back** returns to the Home screen without changing anything.

On the same screen:

* **Refresh access** reads your dental clinics and permissions again. Use it after an administrator changes your access.
* **Sign out** ends your session.

If your account has no active membership, the screen shows **Your account has no available clinic. Contact your administrator to review your access.** Suspended and removed memberships are not listed.

<Tip>
  The buttons the app shows depend on the permissions it read when you signed in, opened the app, switched organization or pressed **Refresh access**. muveya always checks your current permissions on the server, so an action you lost is refused even if its button is still visible.
</Tip>

## The Home screen

The Home screen is titled **Home**. At the top you see the muveya logo, the **Menu** button and the name of the active organization.

| Element | What it does |
| - | - |
| **Scan a code** | Opens the scanner. The hint says **A box label or a supplier barcode.** |
| **Or type the code** and **Look up** | Finds a box or a supplier code you type, up to 64 characters. |
| **Receive a supply without a code** | Opens the search by name. Shown only if you can receive. |
| **Waiting for you** | Counts of work that waits for you, with **Refresh**. |

The **Menu** offers **Home** (on any other screen), **Change organization**, **Language** and **Sign out**. On other screens, **Back** at the top left and the phone's back gesture go one step back.

### Waiting for you

This section shows one row per kind of work that waits for you, based on your permissions. Rows with nothing waiting are hidden. Each row shows the count and **Open in the web app**: pressing it opens the matching console screen in your browser. The app does not show the items themselves.

| Row | Counts | Opens in the console | Permission |
| - | - | - | - |
| **Orders to approve** | Orders waiting for your decision | **Order approvals** | `approvals.decide` |
| **Orders to prepare** | Orders in `allocated` or `picking` | **Deliveries** | `fulfillment.pick` or `fulfillment.dispatch` |
| **Deliveries to confirm** | Orders in `dispatched` | **Deliveries** | `delivery.confirm` |
| **Deliveries to receive** | Orders in `delivered` | **Deliveries** | `receipt.confirm` |
| **Open stock alerts** | Open stock alerts in your warehouses | **Stock alerts** | `inventory.read` |
| **Boxes due for a count** | Boxes not counted in the last 30 days | **Counts** | `inventory.read` |

A count that reached the most the app reads at once shows with a plus sign, for example `50+` for orders or `200+` for alerts. While counting, the section says **Checking what is waiting**; with nothing at all, **Nothing is waiting for you.**; if some counts could not be read, **Some pending work could not be read.** Press **Refresh** to count again. The counts are also refreshed every time you come back to Home.

<Note>
  The browser keeps its own console session, separate from the app's. If you are not signed in to the console in that browser, sign in there first. The console's own **Home** shows more pending work than the app, for example orders to close and order drafts. See [Introduction](/docs/en/introduction).
</Note>

## Language

The app is available in English, Spanish and Portuguese. Until you choose, it follows your phone's language settings, and uses English when none of your phone's languages is one of those three.

To change it, press **Language** on the sign-in screen, or open **Menu** and choose **Language**, then pick **English**, **Español** or **Português**. The app keeps your choice. On Android 13 and later, you can also choose it in the phone's per-app language settings.

The language also applies to the messages muveya's server sends to the app, such as the reason an action was refused.

## Sessions and signing out

* The app keeps you signed in between uses, with the same session rules as the console: a session ends after 30 minutes without activity and 30 days after sign-in, and it ends when an administrator suspends or removes you or changes your role.
* When muveya reports that the session ended, the app returns to the sign-in screen with **Check your email, password and authenticator code.** Sign in again.
* If the app cannot check the saved session when it opens, it shows **Your session could not be verified. Reconnect and try again, or sign out.** with **Try again** and **Sign out**.

To sign out, open **Menu** and choose **Sign out**, or press **Sign out** on the **Your account** screen. The app first erases the saved session from the phone and then ends it on muveya's server.

| What you see after signing out | Meaning | What to do |
| - | - | - |
| The sign-in screen, with no message | You are signed out on the phone and on the server. | Nothing. |
| **You are signed out on this device. We could not confirm that the server session ended.**, sometimes with **We could not connect. Try again.** | The phone no longer holds the session, but the server did not confirm it, for example because there was no connection. | Nothing is needed on the phone. The server session ends on its own after 30 minutes without activity. |
| **We could not clear the protected session on this device. Try signing out again before continuing.** | The phone could not erase the saved session. | Press **Sign out** again. The app does nothing else until the session is erased. |

## Privacy and security on the phone

* **What stays on the phone.** Only the proof of your session and its expiry, encrypted with a key kept in the phone's Android Keystore, and your language choice. Passwords and authenticator codes are never saved: they stay in memory only while you sign in.
* **No backups.** The app's data is excluded from Android cloud backups and from transfers to a new phone. After changing phones, sign in again.
* **No stock data at rest.** Boxes, supplies and counts are read from muveya each time and are not stored on the phone.
* **Encrypted connections only.** The app talks to muveya over HTTPS and refuses unencrypted connections.
* **No camera permission.** The scanner runs inside Google Play services and returns only the code it read.
* **No patient data, no costs.** The app never asks for a care reference or a patient reference, and it shows no costs or order values.

More in [Security and privacy](/docs/en/trust/security-and-privacy).

## What can go wrong

| What you see | Why | What to do |
| - | - | - |
| **Check your email, password and authenticator code.** | Wrong email or password, a missing or wrong authenticator code, an account that is not set up, or a session that ended. | Check each value and sign in again. |
| **There have been too many attempts. Wait a moment before trying again.** | Too many failed attempts for that email from your network. | Wait 15 minutes, then try again carefully. |
| **We could not connect. Try again.** | No connection, or muveya did not answer in time. | Check the network and sign in again. If the sign-in options did not load, press **Try again**. |
| **We could not verify the response. Try again.** | The answer the app received was not what it expected. | Try again. If it persists, write to [team@muveya.com](mailto:team@muveya.com). |
| **This development app is not connected yet. Ask your team for the configured app.** | This copy of the app is not connected to a muveya service. Nothing can be done with it. | Write to [team@muveya.com](mailto:team@muveya.com) for a copy you can use. |
| **We could not confirm the active organization. Refresh your access before continuing.** | Changing organization did not finish. | Press **Try again**, or **Sign out** and sign in again. |
| **Your account has no available clinic. Contact your administrator to review your access.** | No active membership. | Ask an administrator of your dental clinic. |
| **Your access in this organization does not include inventory. Ask an administrator for it.** | You have none of the inventory permissions in this organization. | Ask an administrator. Then open **Menu**, **Change organization** and press **Refresh access**. |

More cases are listed in [Troubleshooting](/docs/en/help/troubleshooting).

## Related pages

<CardGroup cols={2}>
  <Card title="Android app operations" icon="mobile-screen-button" href="/docs/en/android/operations">
    Scan, record a use, move a box and receive, step by step.
  </Card>

  <Card title="Sign in" icon="right-to-bracket" href="/docs/en/account/sign-in">
    Accounts, invitations, clinics and sessions.
  </Card>

  <Card title="Account security" icon="shield-halved" href="/docs/en/account/security">
    Set up the authenticator app.
  </Card>

  <Card title="Roles and permissions" icon="key" href="/docs/en/account/roles-and-permissions">
    What each permission unlocks.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.