Required sale details
Retail Extensions · Rule · checked 2026-10-24
Required sale details decides which sale details a group of your customers must give before they pay. For example, your account customers give their purchase order number, your insured patients give their policy number, and your contractors give their project at the trade counter. When the cashier presses Pay and a detail the customer's group needs is empty, the till stops the sale with your words; the cashier fills the detail in the sale's details and presses Pay again. Other customers are never asked. This page covers what the app adds, how to set up your sale details and rules, how to switch it on, and how to remove it.
What it does
When the cashier presses Pay, your iVendNext sends the priced sale, with the details the cashier filled, to the app's service. The service finds the rule for the sale's customer and answers before the payment screen opens.
| The cashier sees | When |
|---|---|
| "This sale can't be paid", with your words, or "Customers in ⟨group⟩ need ⟨details⟩. Fill in the sale's details, then Pay." | The customer's rule needs a detail that is empty, or has only spaces. The cashier fills it and presses Pay again. |
| The payment screen, as always | Every detail the rule needs is filled, no rule applies to the customer, or the rule applies at other tills only. |
| The refund choices, as always | A refund, or the returned items of an exchange: these are not checked. An exchange's new items are checked as a sale, except an exchange rung without its sale when nothing is owed. |
| The sale goes on, and is flagged on Sales to review | The service did not answer within 3 seconds, has not been sent the app's user yet, or could not read your iVendNext. |


The detail the cashier fills stays on the sale, like every sale detail. The app writes nothing to your iVendNext.
An exchange, and a sale made from a quote, have no place at the till to fill a sale detail today. For a customer whose group needs one, fill it on the quote before you turn it into a sale, and refund and ring a new sale instead of an exchange.
What you set up first
- Install the app from the App library (see About Retail Extensions). The install adds the role IVENDNEXT RSD Integration, with no one in it. The check comes in switched off.
- Make a user for the app. Tick Is Desk User, give it the role IVENDNEXT RSD Integration alone and save. Then generate its API key: on the user, open Settings and press Generate Keys. Give the user no User Permissions.
- Search Desk for Role Permissions Manager. Give IVENDNEXT RSD Integration Read on Customer Group. The service reads your customer group tree, so that a group can take the rule of a group above it.
- Stop cashiers moving a customer into another group. The till lets a cashier change a customer's group, so a cashier could move a customer into a group that needs no details. Search Desk for Customize Form, open Customer, set Customer Group's Perm Level to 1 and save. Then in Role Permissions Manager, give level 1 Write on Customer only to the roles that may move customers, such as your managers. A cashier's change to the group then does not save, though the till still says Customer saved. A cashier also can no longer give a new customer a group: a customer created at the till takes your default customer group (Selling Settings), and a manager sets the right one. Check the level 1 rows already there: Sales Master Manager has one by default, and none of your cashiers' roles may have level 1 Write.
- Make your sale details (below).
- Search Desk for Registered Application and open IVENDNEXT RSD Rules feed. Choose the app's user as its Application User and save. Leave the feed switched off.
- Write your rules (below).
- Switch the check on (below).
- In the App library, find the app under Installed and press Details. On the app's record, press Connect again. The record then says that it sent the API key of the app's user.

If a sale must never go through without its details, change the check's When the service is down to Stop until the service answers (refuse), after Connect again. Every sale on its POS Profiles then waits on the service.
The sale details
Search Desk for Sale Attribute and press Add for each detail your rules name, such as Purchase order number. Give it a Sequence of its own (its place on the till's sale details; no other active detail may have it), tick Active, and leave Default Value empty: a default fills the detail for the cashier, so the sale passes with nothing typed. Leave Required unticked: a required Sale Attribute is asked of every customer at every till, and this app asks only the groups you choose. A Regex Pattern on the Sale Attribute still checks the shape of what the cashier types, for every sale that fills it.
The rules
Search Desk for IVENDNEXT RSD Rule and press Add. Make one record for each customer group that needs details. The record is named by its customer group. Only a System Manager can add or change these records, unless you give another role rights on them in Role Permissions Manager. Whoever keeps them needs Select on Customer Group, Sale Attribute and POS Profile, or the rule's lookups find nothing: check your System Manager too, as a site can remove it.
| Field | What it does |
|---|---|
| Customer group | The group this rule is for. One rule per group. |
| Switched on | Untick to stop using the rule. The group then takes the rule of the nearest group above it that has one. |
| Sale details needed | The Sale Attributes this group's customers must fill before Pay. None: nothing is needed, which lets a group off the rule above it. |
| Only at these POS Profiles | The tills the rule applies at. None: every till. At a till not listed, nothing is needed for this group. |
| Words the cashier reads | Shown when a detail is missing, such as "Account customers give their purchase order number." Blank: "Customers in ⟨group⟩ need ⟨details⟩. Fill in the sale's details, then Pay." |

A customer takes their own group's rule. A group with no rule takes the rule of the nearest group above it in your customer group tree. A customer with no rule up the tree is never asked. A group's own rule replaces the rule above it entirely. So these three rules ask account customers for a purchase order number, contractors for their project too at the trade counter only, and staff for nothing:
| Customer group | Sale details needed | Only at these POS Profiles |
|---|---|---|
| Account customers | Purchase order number | (every till) |
| Contractors (under Account customers) | Purchase order number, Project | Trade Counter |
| Staff | (none) |
- Your store's walk-in customer is in a customer group too. A rule on that group asks every walk-in sale: for a mobile number, for example. A rule on All Customer Groups asks the walk-in customer and every customer below it whose group has no rule of its own.
- A detail you switch off in Sale Attribute, or hide with a field rule, cannot be filled at the till: take it off your rules first, or every sale for that group stops at Pay.
- The app checks that a detail is filled, not what it says. Its shape is the Sale Attribute's own Regex Pattern.
- A long list of missing details is cut in the app's own sentence: write your own words for a group that needs more than two or three.
- The service reads your rules and your customer groups again within a minute of a change. Until then, a group you just made is not asked.
Switch the check on
- Search Desk for Retail Extension Subscription and open Required sale details.
- Read what it is sent, and tick the consent.
- Choose the POS Profiles it answers. With none chosen, it answers every POS Profile.
- Switch it on and save.

What leaves your iVendNext
The app's service runs at required-sale-details.ivendnext.app, hosted by CitiXsys in the US. After the install, and when you press Connect again, your site sends the service its key from the App library, its address, the check's signing key, and the API key of the app's user.
At each Pay, and before each refund the till pays, your iVendNext sends the priced sale: the store, the POS Profile, the company and the till's day and terminal, the signed-in cashier's user, the customer and their customer group, the price list, the currency and the till's language, the coupons, the details the cashier filled for the sale and for each line with what was typed (a purchase order number, a policy number or a phone number, for example), each line's item code, item group, quantity, unit, price, amount and discount, the totals, the payment methods offered and the till's own reference for the sale. On a refund it also sends the original sale, which kind it was, and how it was paid. No card details are sent.
The service reads your IVENDNEXT RSD Rule records and your customer group tree with the app's user. It keeps them for up to a minute and keeps nothing of a sale. It keeps your site's keys until you remove the app. It writes nothing to your iVendNext.
Limits
- A rule change can take up to a minute to apply.
- Refunds, and the returned items of an exchange, are not checked. Nor is an exchange rung without its sale when nothing is owed.
- The sale's details are checked, not a line's.
- An exchange, and a sale made from a quote, have no place at the till to fill a sale detail (above).
- A rule is per customer group. A customer who needs a rule of their own needs a group of their own.
- A POS Profile takes at most three checks, 10 seconds together. This one asks for 3 seconds.
- Until Connect again has sent the app's user, and whenever the service does not answer within 3 seconds, a sale goes on and is flagged for review. A Pay after a quiet spell can take longer than usual.
- Offline, the till cannot ask the service, so the sale goes on and is flagged when it reaches iVendNext.
- The check does not run when a sale is parked to another till, on a layaway deposit, on an account collection, or in the back office's own POS screen.
- If you make the app's user a new API key, or disable and enable it, press Connect again.
- After you install the app again, the check comes in switched off and your rules are gone. Add your rules again (the uninstall exported them to a file), give the app's user its role and read right again, choose it again on IVENDNEXT RSD Rules feed, press Connect again, then switch the check on with its consent.
How to remove it
- In the App library, find the app under Installed and press Details.
- On the app's record, press Export and uninstall and confirm. iVendNext first exports your rule records to a file, and tells the service that the app was removed.
- iVendNext removes the check, the rule records, the feed registration and the role. Your Sale Attributes stay: they are yours, and your sales name them.
- Make a new API key for the app's user, or disable the user, so the key the service had stops working.