This call is deprecated. We recommend to use Point of Sale API instead.

The corresponding new call is: POST /v1/shift/close.

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 name Description Possible value Required
pointOfSaleID Point of sale ID integer yes
employeeID Employee closing the day. If omitted, Erply assumes day was closed by the user who sent the API call. integer
openedUnixTime POS day opening timestamp Unix timestamp
dayID POS day ID.

NB! You must provide EITHER openedUnixTime or dayID to indicate which day exactly needs to be closed.
closedUnixTime Closing timestamp integer Unix timestamp. yes
closedSum Total amount of money left in register Decimal (2 places) yes
bankedSum Total amount of money removed from register and deposited Decimal (2 places) yes
reasonID ID 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 in all capital: "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
notes Notes. string

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)
findLastOpenDay Deprecated. integer
***** 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 name Type Description
dayID integer POS day ID.
pointOfSaleID integer
openedUnixTime integer Unix timestamp. The time when POS was last opened.
closedUnixTime integer Unix timestamp. The time when POS was closed.
warningDayNotOpen Boolean If 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.
warningDayAlreadyClosed Boolean If 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.