Close the day (or cashier’s shift) in POS. The day must be previously opened with POSOpenDay.

To close the day, cashier needs to count the amount of cash at the register, and indicate how much of it will be stored at the register (closedSum) and how much taken away and deposited (bankedSum).

Both the opening and closing (and the amount of cash counted at opening time and closing time) will be recorded on the Z Report.

A log of POS openings and closings can be retrieved with getDayClosings.

To get a report of total payments by type, before closing the day (for reconciliation), see getPointOfSaleDayTotals.

Input parameters

Parameter nameDescriptionPossible valueRequired
pointOfSaleIDPoint of sale IDInteger yes
employeeIDEmployee closing the day. If omitted, Erply assumes day was closed by the user who sent the API call.Integer
openedUnixTimePOS day opening timestampUnix timestamp
dayIDPOS day ID.

NB! You must provide EITHER openedUnixTime or dayID to indicate which day exactly needs to be closed.
closedUnixTimeClosing timestampUnix timestamp yes
closedSumTotal amount of money left in registerDecimal (2 places) yes
bankedSumTotal amount of money removed from register and depositedDecimal (2 places) yes
reasonIDID of cash variance reason. See getReasonCodes for various reason codes.Integer
counted-*Extra input parameters for counting and reconciling other payment types than cash. Replace * with a specific payment type: "counted-CHECK", "counted-GIFTCARD", etc. Card payments must be further broken apart by card type, eg "counted-CARD-VISA", "counted-CARD-Discover" etc.Decimal
varianceReasonID-*Variance reason IDs for respective payment types. See getReasonCodes to retrieve reason codes.Integer

Specify the currency for which you want to close the day in the register.

Note: by default, this field should not be used. In a default configuration, ERPLY allows to count the cash in the register only in the default currency. The cashier should just set aside any cash received in foreign currencies, and remove it from the register at the end of the day. From back office, it is possible to manually print a Z Report that lists transactions made in a different currency, but the counted amount cannot be recorded in POS, neither when opening nor when closing the day.

Therefore, in this setup, it is not possible to use the "currencyCode" field. API will return error code 1028 if you attempt to set it.

However, customer support can enable an extra module, "POS multicurrency". With this extra module, it becomes possible to count other currencies as well and record the counts.

In that configuration, a separate "POSOpenDay" call must be sent for each currency. If the shop accepts EUR, USD and JPY, three "POSOpenDay" calls should be made in the morning and three corresponding "POSCloseDay" calls in the evening, to store the end-of-day counts.

At the end of the day, it is possible to print three Z Reports, one for each currency.

Accepted value: for example "EUR" or "USD". The currency must be defined on your ERPLY account, in the "Currencies" module.

String (3)
*************Additional attributes associated with this item.
Attributes must be supplied as a flat list, each attribute defined by the following set of three parameters. Replace # with set number (1, 2, 3, ...). When updating an existing entry, API will only update the attributes specified in input data and leave all other existing attributes unchanged. To delete an attribute, set its value to 'null' or 'undefined'.
attributeName#Attribute name. Name can only contain the following symbols: A-Z, a-z, 0-9, dash and underscore.String
attributeType#Attribute type, possible types are 'text', 'int' and 'double'. By default 'text'.String
attributeValue#Value of the attribute. Set value to 'null' or 'undefined' to delete an attribute.
'text' attribute can be any string, maximum 255 characters.
'int' must be a signed 32-bit integer.
'double' must be a decimal number.


Field nameTypeDescription
dayIDIntegerPOS day ID.
openedUnixTimeUnix timestampThe time when POS was last opened.
closedUnixTimeUnix timestampThe time when POS was closed.
warningDayNotOpenBooleanIf corresponding day-open event is not found, InventoryAPI automatically creates it (assuming that the amount in register was 0) and sets this flag to true. This is just for information.
warningDayAlreadyClosedBooleanIf the day has already been closed (ie., InventoryAPI finds a record with the same pointOfSaleID and opening time and notices it has already been closed), then day closing sums are updated and InventoryAPI raises this flag. This is just for information.