Point of sale (POS)
Sell fast from the register screen with search, barcode scanner, and multiple payments.
Mosce ERP's POS is designed to sell fast: one screen with the catalog on the left, cart on the right, an always-active barcode scanner, and collection in one or several methods in seconds.
Reading time: ~7 min
When to use this
Use the POS for counter sales where the client pays instantly: store, pharmacy, hardware store, restaurant. The POS:
- Creates an order and invoice in a single action.
- Deducts stock automatically.
- Assigns the e-CF number.
- Lets you split the payment across cash, card, transfer, etc.
- Works on an open register session: each sale is recorded in the active session.
For credit sales or sales with a prior approval flow, use Operations → Orders.
Before you start
- You need at least one cash register created (see Cash register).
- There must be an open register session, or you have permission to open it when entering the POS.
- Products loaded with price, ITBIS, and stock per warehouse.
- Permissions for a cashier working the counter:
pos:orders.read,pos:orders.create,pos:orders.cancel,pos:orders.refund,cash-register:read,cash-session:open,cash-session:close,cash-session:read,cash-session:record_paymentandinvoices:payto collect the documents that reach the register. The factory Cashier role already carries all of them: a newly created cashier can open their shift and sell without you configuring anything. See What a cashier needs in order to work. - Complete tax configuration with active e-CF sequences for the types you are going to issue (at least E32 for the final consumer).
- If your business has accounting active, you need an open accounting period. Without one the register will not collect: this is not a bug, it is that money cannot move in the books with no open period. Open it in Accounting → Fiscal periods before the shift.
Step by step
1. Open the POS
- Press Point of sale in the sidebar.
- If there is no open session for your user, you will see the Select a register dialog:
- Choose the register where you are going to work.
- Enter the opening amount (cash in the drawer).
- Press Open session.
- If there is already an open session, you go directly into the POS.
2. Add products
Three ways, all working at the same time:
- Barcode scanner: scan the code. The product is added to the cart and adds quantity if it was already there.
- Manual search: type in the search bar. Filters by name or SKU as you type.
- Click on a card: tap the product card in the grid. Filter by category with the chips at the top.
If a product is out of stock you will see the Out of stock badge on the card. The system blocks adding more quantity than is available.
3. Adjust the cart
In the right-hand Cart panel:
- Press + or − to change the quantity per line.
- Tap the trash icon to remove the line.
- The subtotal, ITBIS, and total recalculate live.
4. Client
Press Client in the cart panel:
- Search client: type name, ID, or RNC and select one from the list.
- The business's generic client: if the buyer does not give you their details, search for and select the generic client your business already has on file (for example, "Final Consumer") - it shows up in the same search as any other client, it is not a separate option. Every sale needs a client selected, whether the generic one or a named one: there is no such thing as a sale with no client, and the Collect button stays disabled until you pick one.
- Remove client: the X on the selected client's chip returns you to the search.
Below the selector there is an optional Reference name field: type who was actually at the counter (useful for identifying, later on, a sale that was billed under the generic client) and it is saved alongside that sale. It does not replace the selected client - the two travel together.
Some receipt types require the client to have an RNC/Cédula. The Fiscal Credit Invoice (E31) and the Governmental receipt (E45) always require it; Special Regime (E44), Export (E46), and Foreign Payment (E47) also require it, even though they are exempt; and the Consumer Invoice (E32) requires it at RD$250,000 or more. If the chosen type requires it and the linked client has no RNC/Cédula on file, pressing Collect rejects the operation with a message explaining why, without collecting anything. See which receipts require it. This rule applies the same way whether you collect here or invoice from Orders.
Special Regime (E44) client: when linking a client whose default voucher is Special Regime (E44), the cart adjusts automatically: all lines become ITBIS-exempt (total ITBIS at RD$0) and the unit price is recalculated from cost with the client's alternative margin (
price = cost × (1 + margin/100); without a cost the normal sale price is used, never RD$0). If you change or remove the client, the lines return to their normal sale price with their ITBIS. See Special Regime (E44).
5. Collect
Press Collect. The payment modal opens:
- Voucher type: choose the e-CF type (default E32 - Consumer). If the linked client has a default voucher configured (of any type, including E44), the selector appears fixed and non-editable, with the note "Set by the client". To issue another type, remove the client or edit their default voucher from Operations → Clients.
- Payment methods: one or several rows. The first brings the total in Cash.
- Change the method: Cash, Card, Transfer, Cheque or Credit Note. The "Other" method no longer exists, because it described nothing and had no accounting treatment.
- Adjust the amount. The bottom bar shows Paid and Remaining.
- Press Add method to split the payment. Split payments work: you can collect the same sale with cash and card at once.
- Cash goes on one single row, with one single amount of change. Other methods can repeat (two different cards, two credit notes).
- Cash received (optional): on the Cash row, enter what the client handed over. The system calculates the change automatically.
- Collect: enabled when Remaining = 0. If you were paid more in cash, the rest is considered change.
Collecting with a credit note
When you pick the Credit note method, the cashier sees the customer's notes with the real available balance on each one and chooses which to use. If they apply less than the balance, the rest stays available for another purchase; once a note is used up it moves to Applied on its own.
The method appears disabled, with the reason visible, when no customer is linked, when the customer has no notes with balance, when the note is voided, or when the note came from a sale with no customer and therefore cannot be attributed to anyone. Only the same customer can use the balance. Full detail in Payments and payment methods.
If the payment confirmation fails, the dialog stays open with the methods and amounts you had already entered. You fix it and confirm again without redoing the sale.
On confirmation:
- The order and the invoice are created.
- The e-CF number is assigned.
- Stock is deducted (processed in a queue; you will see a toast with the status).
- The cart is cleared and you return to sale mode.
6. Collect pending orders
If a salesperson sent an order to the POS from the Orders screen, it will appear in the Pending tab of the POS. Tap the pending order, review the items in the cart (they come pre-loaded, not editable), and press Collect. The payment flow is the same, without a voucher type selector (it already comes from the order).
You can collect partial payments. You do not have to collect the full outstanding invoice: record whatever the customer hands over and the document reflects what is left. The order stays in the list until it is settled.
A sale collected away from the register drops off the list. If somebody collected that document from the back office, it stops showing as pending for the cashier as soon as it is settled. It used to stay in the list forever.
7. Print/send receipt
After collecting, in the detail of the just-created order (accessible from Operations → Orders) you can press Print receipt to open it in a new tab. From there you print it with Ctrl/Cmd + P or save it as a PDF to send to the client.
8. Close the POS
Press Close POS in the header to return to the main panel. The register session stays open and you keep all the context: when you come back you will keep selling in the same session until you explicitly close it from Cash register.
How taxes are calculated
The POS calculates ITBIS (and ISC if applicable) in real time for each cart line, using the rate configured on the product. The subtotal, ITBIS, and total you see in the cart panel reflect that live calculation.
To understand which rate applies to each product, how to declare exemptions, or how to configure ISC products, see ITBIS and other taxes.
Shortcuts and tips
- The barcode scanner works even if the focus is not on the search bar - Mosce ERP captures the fast input automatically.
- Out-of-stock products are shown in gray and cannot be added.
- In the header bar you always see the active register and a link to View session to go to the details without losing the cart.
- Pending orders appear in real time (without reloading) thanks to the POS event channel.
Expected result
- Each POS sale generates a Paid order, an invoice with its e-CF, and a register movement on the correct side (cash / card / etc. inflow).
- Stock is decremented according to the warehouse configured on the product.
- If you have the Accounting module, point-of-sale sales are booked with their sales entry. They used to generate none, so a business with accounting active had its counter income outside the books.
- The money lands where the method you collected with belongs, not always in cash: if you took a card payment, the drawer reconciliation does not count it as cash.
- In Cash register → Active session you see the sale reflected instantly in automatic payments.
- On the main dashboard, the counter of invoices pending collection at the register reflects what is really left to collect.
Common errors
| Error | Cause | Solution |
|---|---|---|
| "The register session is closed" | Another user closed the session while you were selling | Open a new session or ask a colleague to open one. |
| "Insufficient stock" | The product was sold in another simultaneous session | Refresh the grid; adjust the quantity or remove the line. |
| "Invalid voucher type" | You have no active sequence for that e-CF type | Create/activate a sequence in Fiscal → Sequences. |
| "Monthly sales limit reached" | Your plan hit its monthly sales amount cap | Upgrade in Settings → My plan or wait for the counter to reset. See What happens when I hit the limit?. |
| "There is no open accounting period" | You have accounting active and today's period is closed | Open it in Accounting → Fiscal periods. With no open period the register will not collect. |
| The Credit note method is greyed out | No customer is linked, or they have no notes with balance | Link the customer. The method itself shows why it is unavailable. |
| I cannot find the "Other" method | It no longer exists | Use the real method: transfer or cheque, whichever applies. |
| "There is already an open session for this register" | A register cannot be opened twice at once | Enter the session that is already open, or open a different register. |
| My cashier cannot open the register | Their role does not include the cash permissions | The factory Cashier role already carries them. If you use a custom role, grant them on the Roles screen and ask the user to sign in again. |
| The barcode scanner does not add anything | The product does not exist or the code is wrong | Create the product with the correct code in Products. |
| The Collect button is disabled | The total to collect does not match the sum of methods | Adjust the amounts until Remaining = 0. |
| "This receipt type requires identifying the buyer by RNC or Cédula" | The chosen e-CF type requires it and the linked client has no RNC/Cédula on file | Link a client with a valid RNC/Cédula, or switch to a type that accepts an anonymous buyer (for example E32 below RD$250,000). See which receipts require it. |
| The Collect button is disabled and no client is selected | Every sale needs a client - there is no such thing as a sale with no client | Select a client, or the business's generic client if the buyer does not want to give their details. |
Related
Returns and refunds
How to refund a sale, in full or in part, what status the document ends up in, and which refund methods your business has available, including leaving the money as a customer credit balance and what happens when refunding an invoice with third-party withholding.
Cash register
Opening, shifts, manual movements, and closing with cash reconciliation, including cash advance payments.