Skip to content
Stock & purchasing

Purchases, bonus schemes and landed cost

Enter distributor purchase bills with batch, expiry, TP and 10+1 bonus schemes, so discounts, tax and freight give the real landed cost of each medicine.

When the distributor's delivery arrives, the purchase bill is how the stock gets into MediPOS. This guide is for the owner or purchase manager who enters pharmacy purchase bills. Each line records the batch, expiry and trade price (TP). MediPOS then works bonus schemes, discounts, sales tax and freight into a landed cost per tablet or bottle, and your profit is measured against that cost.

If Purchases is not in your menu, your plan does not include Purchases & suppliers. The owner can see what each plan includes under Plan & billing.

MediPOS list of distributor purchase bills with supplier, date, total and amount still due
Distributor bills, paid and on account.

How to enter a distributor bill

  1. Go to Purchasing → Purchases and click New bill. The New bill button on a supplier's page does the same, with the supplier filled in.
  2. Type the first letters of the Supplier and press Enter (a name not in the list can be added from there). Type the Supplier bill no. exactly as printed, and the Bill date, which cannot be in the future.
  3. In Receive into, pick where the stock goes, usually Main Store, and press Enter: the bill opens full screen, with the totals along the bottom. Esc goes back to these details, and Enter the items opens the bill again.
  4. Each line is one row, as on the distributor's bill. ↑ ↓ in a box move to the same box of the line above or below, and Ctrl+Delete removes the line you are on. Search for the Medicine by name or generic, or scan its barcode. Use ↑ ↓ to move through the list and Enter to choose.
  5. Enter the Batch and Expiry from the pack. They are required for medicines that track batches and expiry, unless the pharmacy's settings make them optional.
  6. Check the Unit. MediPOS picks the largest unit, such as box, because that is how distributors bill. Qty, MRP and T.P. are all per the unit you choose.
  7. Enter Qty (paid) and Bonus (free), then the MRP printed on the pack. The T.P. fills in at the usual trade margin (14.5% off the MRP, or the margin of that medicine's last bill), and Mrg % shows the margin. Change the T.P. and the margin follows; change the margin and the T.P. follows. At the counter, MediPOS sells at the MRP of the batch going out first.
  8. Enter Disc % and Tax % if the bill has them. Enter on Tax % starts the next line with its search open.
  9. Click Add item (or press F2) for each further line: it opens the next line with its search.
  10. Enter any Bill discount and Freight / other (delivery or cartage), and check that Bill total matches the paper bill.
  11. Click Save draft to finish later, or Save & post to receive the stock now. F12 does the same as Save & post; the owner can choose another key under Settings → Keyboard shortcuts (On the purchase bill).

How a bonus scheme becomes landed cost

How to judge whether a scheme is worth taking is in the blog post Distributor bonus schemes like 10+1 and how they change your real profit. This section shows what MediPOS does with one.

For each line, MediPOS works out gross (qty × TP), takes off the discount, and adds tax on what is left. The bill discount and freight are then shared across the lines in proportion to each line's value. Finally, the landed total is divided by paid plus bonus units, counted in the smallest unit.

Say Hassan Pharma Distributors bills you for two lines, plus Rs 111 freight:

LinePaidBonusT.P.DiscLine netFreight shareLanded cost
Panadol 500 mg (box of 10 strips × 10)10 boxes1 boxRs 9002%Rs 8,820.00Rs 88.20Rs 8.10 per tablet
Brufen syrup 90 ml24 bottles—Rs 95—Rs 2,280.00Rs 22.80Rs 95.95 per bottle

The Panadol line costs Rs 8,908.20 landed, spread over 1,100 tablets (11 boxes). Without the bonus spread in, it would look like Rs 8.91 a tablet. The posted bill shows this figure in the Cost / base unit column. The last line absorbs any paisa of rounding, so the lines always add up to the bill total exactly.

A distributor purchase bill in MediPOS with batch, expiry, quantity, bonus, trade price, discount and cost per unit on each line
A purchase bill: batch, expiry, bonus and discount on every line.

If the batch number and expiry you enter already exist for that product, the new units join the same batch. Its cost becomes the average of the old stock and the new stock.

Draft or post

  • Draft: nothing changes yet. You can Edit it, finish it tomorrow, or Discard it.
  • Post: use Save & post on the form, or Post on a saved draft. After you confirm, the stock goes into its batches, the supplier's balance goes up by the bill total, and the bill gets a number starting with PB.

Duplicate bill guard: when you post, MediPOS checks the supplier bill number against that supplier's posted bills, ignoring capital letters. If bill #4471 was already entered, posting is refused and you are told which PB number holds it. Bills with no supplier bill number are not checked. Voided bills do not count.

How to pay while posting

The Paid now (optional) box takes an Amount, Paid by (Cash, Bank transfer, EasyPaisa, JazzCash and so on) and a Reference for methods that need one. It only works with Save & post. The payment is dated on the bill date and is set against this bill first. A part payment leaves the bill showing Unpaid balance. If you already hold an advance with the supplier, it is used against the new bill automatically.

A saved draft posted with the Post button has no payment box, so pay from the supplier's page. The Still due card shows the due date, which is the bill date plus the supplier's credit days.

How to edit a posted bill

A wrong T.P., quantity, pack or batch on a posted bill is fixed with Edit bill, at the top of the bill:

  1. Open the bill and click Edit bill. The bill opens as it was posted, with all its lines.
  2. In What was wrong? write a short reason, for example "Wrong T.P. on Sodamint".
  3. Change what was wrong, then click Save corrected bill (F12).

MediPOS voids the old bill and posts the corrected one in its place, in one step. The stock, its cost, the supplier's balance and any money paid on the old bill all move to the corrected bill. The corrected bill has a new number and says which bill it corrects; the old one stays in the list as Voided, with the reason and a link to the new one. Nothing is deleted, so the audit trail shows what was changed and why.

Only the MRP, batch, expiry or notes wrong? Change them and save as above. The bill is corrected where it stands: it keeps its number, and its stock and the supplier's balance do not change. This works even after some of the bill's stock has been sold. What was already sold keeps the price it was sold at.

A batch number or expiry can be changed this way only when that batch came in on this bill alone. If the same batch also came in on another bill or on opening stock, change it from that stock instead.

Quantities, T.P., discounts or items can be changed only while every unit from the bill is still on the shelf, as with voiding. If some has been sold, Edit bill says so and names the medicines. Return the extra stock to the supplier instead. You need Enter purchases, Post purchases to stock and Void purchases.

How to void a bill entered by mistake

On a posted bill, the Void this bill panel asks for a Reason. Click Void bill and confirm. The stock is removed, the supplier balance is reversed on today's date, and the bill stays in the list as Voided, with its reason. Any money paid against it becomes an advance, which is matched to the supplier's other open bills.

Voiding is only possible while every unit from the bill is still on the shelf. If even one strip has been sold or moved, MediPOS refuses. Use a return to the supplier instead.

Rules and tips

  • Saving drafts needs Enter purchases. Posting needs Post purchases to stock, and voiding needs Void purchases. The built-in Manager role cannot void bills; Owner and Admin can.
  • Bills belong to the branch you are working in, and hold up to 300 lines. The Purchases list filters by Drafts, Posted, Unpaid balance and Voided. Posting and voiding are recorded in the audit log.
  • A line whose T.P. is above its MRP (for the same pack) turns red, and Save & post asks before posting. It is almost always the wrong pack, or a pack's price typed on a tablet.
  • Always enter free goods in Bonus, not by lowering the TP. The Purchases by product report can then show paid and bonus quantities separately.

Common questions

The distributor gave 10+1 on Augmentin 625. Do I enter 11 in Qty?

No. Enter 10 in Qty and 1 in Bonus, with the TP per pack. You pay for 10, stock goes up by 11, and the cost of each pack is the line amount divided by 11.

MediPOS says the bill number is already entered. What now?

Open the PB number shown in the message. If it is the same bill, discard your draft. If the distributor really reused the number, add a suffix such as 4471-B so both bills can be kept.

Can I change a bill after posting it?

Yes, with Edit bill: see How to edit a posted bill. The MRP, batch, expiry and notes can be corrected at any time. Quantities and prices paid can be changed only while nothing from the bill has been sold or moved; after that, use a return to the supplier or a stock adjustment.

Why is my cost per tablet lower than the TP?

Because the free units are counted in. A 10+1 scheme makes every unit about 9% cheaper, and a line discount lowers it further. Freight pushes it up slightly.

Last updated 29 October 2026. Still stuck? Contact us.