Inbound Shipments

Inbound Shipments can be used to receive stock from suppliers.

If you have used mSupply in the past, you may be familiar with the term Supplier Invoice instead of Inbound Shipment.

All received goods should be recorded in mSupply either by:

  • Manually creating an Inbound Shipment (manual Inbound Shipment)
  • Working with an Inbound Shipment that has been created automatically as a result of a stock transfer from another store in your mSupply

Viewing Inbound Shipments🔗

Go to the Inbound Shipments Menu🔗

Go to Inbound Shipments

To access the Inbound Shipment menu:

  1. Go to the Replenishment menu in the navigation panel
  2. Click on Inbound Shipment

Inbound Shipments list🔗

First thing you see is a list of existing Inbound Shipments.

The Inbound Shipments list is divided into 7 columns:

NameName of the Supplier
StatusCurrent Status of the shipment
NumberReference Number of the shipment
CreatedCreation date of the shipment
DeliveredDate when the shipment was delivered
CommentComment for the shipment
ReferenceThis will contain the supplier invoice number if it was created automatically
TotalTotal value of the shipment
  1. The list can display a fixed number of shipments per page. On the bottom left corner, you can see how many shipments are currently displayed on your screen.


  1. If you have more shipments than the current limit, you can navigate to the other pages by clicking on the page number or using the right of left arrows (bottom right corner).


  1. You can also select a different number of rows to show per page using the option at the bottom right of the page.

Rows per page

Filter Inbound Shipments🔗

You can filter the list of shipments by supplier name, created date or status. This can be useful if you're looking for one particular shipment!

Inbound Shipments filter

For example, to filter by supplier name, click on Filters, select Name and start typing some or all of a supplier name in the Name field. All the shipments for this supplier will appear in the list.

Inbound shipment name filter

Exporting Inbound Shipments🔗

The list of Inbound Shipments can be exported to a comma separated file (csv). Simply click the export button (on the right, at the top of the page)

Export button

and the file will be downloaded. The export function will download all Inbound Shipments, not just the current page, if you have more than 20 of them.

Delete an Inbound Shipment🔗

You can delete a shipment from the Inbound Shipment list.

  1. Select the shipment that you want to delete by checking the box on the left end of the list. You can select more than one shipments to be deleted. You can even select them all using the master checkbox in the list headers.

  2. Open the Select dropdown (top right corner, above the list) and select Delete selected lines.

A notification confirms how many shipments were deleted (bottom left corner).

You can only delete Inbound Shipments with a status NEW.

Creating a new manual Inbound Shipment🔗

  1. Go to Replenishment> Inbound Shipment
  2. Press the New Shipment button, in the top right corner
  3. A new window Suppliers opens, inviting you to select a supplier

Select a Supplier🔗

  1. In the Suppliers window, you will be presented with a list of suppliers. You can select your supplier from the list or you can type as much of a supplier name as you want.
You can tell if a supplier is also using mSupply in their store. If they do, you will see icon like this (Store) next to the supplier code.
In the below example, we are receiving stock from Tamaki Central Medical Store.

Select a Supplier

  1. Once you have selected a supplier, your Inbound Shipment is created.
If everything went well, you should see the name of your supplier in the top left corner and current status should be New.

New manual Inbound Shipment

Edit the Supplier Name🔗

If you have selected the wrong supplier, you can change the supplier name in the Supplier Name field or select one the dropdown list:

In the below example, we are replacing Tamaki Central Medical Store by Waikato District Store.


Enter a Supplier Reference🔗

Once your Inbound Shipment has been created, you can capture a supplier reference in the Supplier Ref field, if they have one (eg. _ PO#1234567 _)

View or edit the Inbound Shipment Information Panel🔗

The Information Panel allows you see or to edit information about the Inbound Shipment. It is divided in multiple sections:

  • Additional Info
  • Related Documents
  • Invoice Details
  • Transport Details
We are planning to add more sections in the future as Open mSupply grows.

How to open and close the Information Panel ?🔗

To open the Information Panel, you can tap on the More button, located in the top right corner of the Inbound Shipment view.

You can close by tapping on the X Close button, on the top right corner of the information panel.

Open and close the Information Panel

Additonal Info🔗

In the Additional Info section, you can:

  • See who created the Inbound Shipment (name of the user)
  • View and edit the Inbound Shipment color. To edit the color, tap on the colored circle and select a color from the pop-up
  • Write or edit a comment

In the Related Documents section, you can see other related transaction document for the Inbound Shipment.

If your Inbound Shipment was created to fulfill a Internal Order, the reference number of your order would appear in this section.

In the future, we would also include other documents such as temperature records, transportation documents or pickslips.

Invoice Details🔗

In this section, you will see by default the total cost price of the items listed in the Inbound Shipment.

You can also add a Service charges if you wish to add other charges such as Freight Costs. Note: Service charges must be in your Master List for you to use them. To add a Service charges to the Invoice Details:

  1. Tap on the Edit Service Charges button. A new window opens.
  2. Tap on the Add charge button on the new window. A new line appears in the list of charges. You tap on Cancel if you do not wish to add anything.
  3. Name: select a service charges in the dropdown list. You can customise the list of available charges. Contact your administrator.
  4. Comment: You can add a comment to provide further details about the new charge
  5. Amount: Enter the amount of the charge
  6. Tax: Enter a % of tax for the charge
  7. Total: The total field is automatically calculated based on the Amount and the Tax percentage
  8. Delete: You can tap on the Delete icon to delete the charge

The tax rate (%) for service charges and the items sell price can also be edited by clicking on the pencil icon. A pop-up window will appear for you to enter a value.

Foreign Currencies🔗

If your store is issuing in foreign currencies follow these instructions in the central server documentation to set it up. You will also need to enable the store preference Store: Able to issue in foreign currency. This preference is compatible with Open mSupply v1.7.0+.

Store preference

The pen icon will become active once the above instructions have been followed and only if the customer is an external customer. Click on this icon and change to a currency that you would like to issue the shipment in. The currency rate can also be edited if you and the customer have agreed on a different rate. gif You can also see the foreign currency totals in the invoice line details as well. Line with Foreign Currency Pricing

Transport Details🔗

In this section, you can see or edit a transport reference number (eg. a booking or a tracking reference number).


  1. Delete: You can tap on the Delete button to delete the invoice
  2. Copy to Clipboard: You can tap on the Copy to Clipboard button to copy the invoice details to the clipboard.

Inbound Shipment Status Sequence🔗

The status sequence is located at the bottom left corner of the Inbound Shipment screen.

Passed statuses are hightlighted in blue, next statuses appear in grey.

Inbound Shipment Status Sequence (New)
Status Sequence: current status is New.
Inbound Shipment Status Sequence (Shipped)
Status Sequence: current status is Shipped.

There are 5 status for the Inbound Shipment:

NewThis is the first status when you create a new manual Inbound Shipment
PickedSupplier has confirmed that shipment is picked and ready to ship (applies only to automatically created shipments)
ShippedShipment has been shipped and goods are now in transit (applies only to automatically created shipments)
DeliveredWhen you confirm that the shipment has been delivered
VerifiedWhen you have verified the Inbound Shipment

You probably noticed that two of the status values only apply to automatically created shipments. These are created by the system when another store in the system creates an Outbound Shipment to deliver stock to your store. If this is the case you'll see a message near the top of the page:

Automatic IS message

Note that this message appears differently if the status is Delivered or Verified

Automatic IS message: delivered

If, however, you've created an Inbound Shipment manually, then the following message shows:

Manual IS message

and you'll see that the status bar has only the status values which apply to this type of shipment.

Inbound Shipment Status Sequence (New & manual)
Status Sequence: current status is New.

If you hover over the status sequence, a shipment history window appears. You can see the date when a shipment was updated from one status to another.

This manual shipment has been created on 03/03/2022

Inbound status: hover 2

This automatic shipment has been created on 03/03/2022, allocated on 04/03/2022 and picked on 07/03/2022

Inbound status: hover

Hold checkbox🔗

Located on the bottom left corner, on the left of the status sequence.

Check the Hold checkbox prevents the Inbound Shipment from being updated to the next status.

Inbound hold checkbox

Close and Confirm button🔗

Close Button🔗

Click on the Close button to quit the Inbound Shipment view and return to the Inbound Shipments list.

Confirm Button🔗

The Confirm button is the button to update the status of a shipment. The status which you can confirm depends on the current status of the shipment and follows the sequence shown below.

When managing an Inbound Shipment, you can only confirm it as Delivered or Verified.

Confirm...Current StatusNext Status
Confirm DeliveredShippedDelivered
Confirm VerifiedDeliveredVerified

You don't have to update a shipment to next status in the sequence. You can choose to skip some of them to go directly to Confirm Verified for example.

As demonstrated below, tap on the down arrow of the Confirm button and select the status you want the shipment to be updated to.

Skip Status

Adding lines to an Inbound Shipment🔗

To add a line, tap on the Add Item button located in the top left corner of your screen.

A new Add Item window opens.

Inbound: add item button

Select an Item🔗

In the Add Item window, you can look up an item by:

  • Reading through the list of available items
  • or by typing some or all of an item name
  • or by typing some or all of an item code

Once your item is highlighted, tap on the name or press Enter.

Add Item

Quantities tab🔗

In the Quantities tab, you can update the following fields:

  1. Batch: Type here the batch number. Leave blank if item is not managed with batch number.
  2. Expiry: The expiry date of the batch number. Leave blank is not applicable
  3. Pack Qty: The quantity of packs you are receiving
  4. Pack Size: The quantity of units per pack (by default, pack size is 1)
  5. Unit Qty (read-only): Automatically calculated based on # Packs and Pack Size ([# Packs] x [Pack Size])
  6. If you are receiving more than one batch number for the same item, you can tap on the Add Batch button
In the below example, we are receiving 2 batch numbers for item 030063 - Acetylsalicylic Acid 100mg tabs with a different pack size.

Add Item quantities

Pricing tab🔗

On the second tab, Pricing, you can update the following fields (all are optional):

  • Batch (read-only): Batch number
  • Pack Size (read-only): The quantity of units per pack
  • Pack Qty (read-only): The quantity of packs you are receiving
  • Cost: The purchasing unit price of the item (default value is 0)
  • Pack Sell Price: The selling unit price of the item (default value is 0)
  • Line Total (read-only): Total purchasing value for the batch number ([Pack Qty] x [Cost])
Sell & Cost prices are per units and not per pack.
In the below example, the first line's cost price is $0.01 per unit and the sell price $0.10 per unit.

Add Item pricing

Location tab🔗

In the third tab, Location, you can select a storage location to assign the batch number to a location in your storage facility.

Simply select a storage location from the Location dropdown menu.

Add Item location

Don't know the storage location yet? You don't have to capture it right away. You can update the storage location at any time if you haven't confirmed the verification yet.

Confirm item and quantities🔗

When you're done, you can add the new line by tapping on:

  • OK if you don't want to add another line to your shipment
  • OK & Next if you have other lines to create

Otherwise, you can tap on Cancel and your changes won't be saved.

Adding lines to an Inbound Shipment using a Master List🔗

Tap on the Add from master list button (top right corner).

The button will be disabled if the status of the Inbound Shipment is anything other than New

Add Item button

A new Master Lists window opens. This allows you to select the required master list. Simply click on one of the lists (if you have some available).

Add Item button

Click OK on the prompt: Add Item button

You will then have placeholder lines added to your shipment, which will then look like this:

Add Item button

The imported rows will have zero for the number of packs value, and are therefore shown in a blue font with the batch, expiry, location etc not shown. You can follow the steps for editing these lines, as detailed above.

Editing an Inbound Shipment line🔗

To edit an Inbound Shipment line, simply tap on it. You will be presented with the Edit Item window, which is identical to the Add Item window, except that the item is already chosen and cannot be modified.

Edit a Shipment Line🔗

you can edit a shipment line if the shipment has a status higher lower than Verified.
  1. Open the Inbound Shipment you want to edit

  2. Tap on the line you want to edit. An identical window to Add Item appears. At this stage:

    • Edit the main Issue Quantity field
    • or change the number of packs value at the batch number level
When editing a shipment line, you cannot change the item. You would need to delete the shipment line and to create a new one.

Delete a Shipment line🔗

  1. Open the Inbound Shipment that you would like to edit
  2. Make sure that status is not yet VERIFIED
  3. Select the line(s) you want to delete by checking the box(es) on the right of the list
  4. Go to the Actions dropdown menu (top right corner, above the list)
  5. Select the action Delete selected lines

Alt Text

You can delete multiple lines at once. Be sure to review what is selected before performing the Delete action.

Receiving stock with an Inbound Shipment🔗

Confirm the delivery of the shipment🔗

Whether your Inbound Shipment is manual or automatic, the first step to receive the goods is to confirm the delivery.

At this stage, you don't have to check if quantities or other information are correct, you just have to acknowledge that you have received the goods from your supplier.

To confirm that an Inbound Shipment has been delivered, click on the Confirm Delivered button.

Once you have done this:

  • Goods are now part of your inventory
  • Shipment status is now DELIVERED
In case your Inbound Shipment is automatic, you cannot confirm its delivery unless the supplier has confirmed its shipment. In other words, your shipment status has to be SHIPPED before you can confirm that you have received the goods.
Any unallocated lines with a 0 number of packs value will automatically be removed for you when you confirm.

Verify your Inbound Shipment🔗

Verification is the last step to receive goods in mSupply. At this stage, you can check what you have received and make sure that that information in mSupply are correct.

You have the possibility to verify the following information:

  • Batch numbers and their expiry dates
  • Quantity of packs and pack size
  • Pricing information: cost and sell prices

You can also capture where received goods are to be stored in the Location tab.

Once all information have been captured or verified, you can confirm the Shipment as VERIFIED by tapping on the Confirm Verified button.

Once you have done this:

  • Shipment status is now VERIFIED
  • You can no longer edit shipment lines
  • You can no longer delete the shipment

Returning stock from an Inbound Shipment🔗

Sometimes, you might need to return stock that you received via an Inbound Shipment. You can do this by creating an Outbound Return.

  1. Open the Inbound Shipment for which you would like to return some or all of the stock
  2. Make sure that status is at least DELIVERED
  3. Select the line(s) you want to return by checking the box(es) on the right of the list

Alt Text

  1. Go to the Actions dropdown menu (top right corner, above the list)
  2. Select the action Return selected lines

Alt Text

Select quantity to return🔗

A modal will open, containing each line you selected to return:

CodeItem code
NameItem name
BatchBatch number. It is a designation given to products made in the same manufacturing run.
ExpiryExpiry date of the batch (format: MM/YYYY)
Quantity Available for ReturnNumber of packs available. This means the number of packs not already allocated to other shipments or returns, so the quantity could be less than the quantity received in the Inbound Shipment.
Quantity to ReturnNumber of packs to be returned

Alt Text

The Quantity to Return values will initially be 0 - you can adjust this to return some or all of the available stock.


If you forget to enter a quantity to return for any batch and click Next step, you will see this warning message. You'll need to add a quantity to return from at least one batch. You can click Cancel if you no longer want to return any of this stock. Alt Text

Provide reasons🔗

Once you are happy with your quantities to return, you can click Next step. The list of batches will be filtered to only include the batches you provided a return quantity for. In this view, you can provide a reason for returning each batch, and an additional comment.

Alt Text


When you are happy with the quantities and reasons, you can press on:

  • the OK button. An Outbound Return will be created, and you will be redirected to view it. The quantities of stock selected to return will be reserved for the new return.
  • the Back button, to go back to the Select quantity step

Viewing an Inbound Shipment🔗

When viewing a specific shipment, you can view the batches on that shipment grouped by item or with each batch listed separately. To change the view mode, click the Group by item switch.

When grouped by item, you can expand the item to see individual batches, or use the expand in the table header to expand all grouped rows. If you click on an item you will also see all selected batches, as shown in this example:

Group by Item

If you do not have enough room on your screen, or simply aren't interested in some of the columns shown, you have the option of hiding which columns are shown in this view.

Click on the Show / hide columns button which is at the top right of the table. This gives a list of the columns available - you can check the columns you want to see. The options chosen are stored for the current browser, so next time you view an inbound shipment, you will see the selected columns only. If you have chosen which columns to show, then the button is shown in blue to remind you that there are more columns available.

Hide columns