If these barcode labels are only for your own inventory and checkout, such as scanning prints, stickers or keychains into Square at a convention table, an internal/private UPC gives you a normal UPC barcode without treating the number as a globally assigned retail GTIN. This generator uses GS1-reserved internal ranges instead of choosing a random number from ordinary GS1 assignment space.
UPC-A: the straightforward internal option
For UPC-A, Generate Random Internal UPC uses the GS1-reserved UPC Prefix 4 company-internal RCN-12 range. The app creates the first 11 digits and calculates the 12th/check digit.
If your label has room for a full UPC-A, this is the simpler internal format to work with because the scanner reads the full 12-digit number directly.
UPC-E: useful when the label is small
For a shorter UPC-E label, this generator uses the reserved Prefix 0 Local Assigned Code (LAC) range based on UPC Company Prefixes 001000 through 007999. Only certain UPC-A values can be represented as UPC-E.
The app creates an eligible UPC-A source, calculates its check digit and shows both the short UPC-E and its expanded 12-digit internal RCN-12.
Before printing a stack of labels, scan one into your Square setup. Some scanners send the short UPC-E value while others expand it to the 12-digit value first.
Why not just make up any UPC?
Using the reserved internal ranges helps keep your convention/vendor-table catalog out of the number space used for ordinary GS1-assigned retail GTINs. It reduces the chance of accidentally using a real retail product number, but another business can still independently use the same internal number.
Keep internal numbers inside your own workflow
An internal/private UPC is dependable because your catalog knows what it means. It is not a registered product identity that another store, wholesaler or marketplace should be expected to recognize.
If you later distribute the product through outside retail, wholesale or marketplaces that require globally unique identification, use a properly assigned GS1 GTIN instead.
For Square, test the exact value your scanner sends before printing a large run of labels. This is especially important with UPC-E.