Saved Carts API for EBT workaround? And for creative kiosk or other ordering retail workflows

The api’s have Catalog, Orders, Payments, but no Carts?

Without EBT support we’re trying to workaround it. We could use a 3rd party EBT checkout pad. We already have Register and use that for scanning/checkout. You can save a cart on Register.

If we could assemble items into a cart by the API and then save it to a cart, we could integrate with Amazon’s smart carts that you push around the store and they have cameras to scan anything you put in them. They use the saved carts feature in other POS’ to push the cart to them, so for checkout at a cashier they can pull up your cart and you pay right there.

Could do the same with a simple app to scan items at a kiosk and then push it to a cart to Terminal API or elsewhere. But we really, really don’t want to reimplement any logic of discounts, tax, etc calculation. That cart logic is really valuable to be in Square.

Or, our most immediate problem: EBT. I think with a Cart API it could be solved.

It would be great to split some items off onto another cart to then use “other tender” for instance if they are EBT. There isn’t a full EBT solution with Square but we are pretty far in Square for everything else. This is the key w/ EBT - merchants/owners are personally liable for (employee/other) EBT fraud/theft, so we need the POS to decide what is eligible.


  1. We could use Square Retail on Register but when the buyer says “can I pay with EBT?”
  2. The cashier says “sure thing!” and saves the current cart by clicking in Register.
  3. Then tap a button on an adjacent iPad in an app we build to ListSavedCarts() and click the one just saved. Then our app could look through the items and read a custom attribute we set “isEbtElible” and if true, and move those items to another saved cart.
  4. Then on the Register the clerk could open the 2 carts and take the EBT via a sidecar reader (saying “other tender” or something in square), and then run up the other non-EBT cart with a credit card in Square.

The Carts API could basically be the Orders API, just Square calculates everything. We would post an update to it e.g. adding an item, and the response would include potentially added taxes/discounts/etc. And a saved cart you could look at and remove items, adding them to a new cart. Super simple!

I think this could be a DRAFT order, no need for a new concept of a saved cart. I can already see DRAFT orders from something on the online store. So a saved cart could be a draft order, and on changing it it would change the saved cart.

Right, essentially an order is a cart. :slightly_smiling_face:

1 Like

Ok thanks! So all we would need to unlock this huge functionality in Square hardware is:

  1. an API to access saved carts created on Register
  2. an API to push a new saved cart into a location, then any Register can pull it up from the saved carts UX
  3. building a new order from an existing one, ensuring all discounts/taxes are auto calculated. Optionally removing things off an existing order, e.g. the non-SNAP items.

(potentially) a terminal api-esque ability to push saved carts to a device, but probably can avoid this with 2

At this time the ability to have unpaid orders push to a device to be fulfilled is only available with Terminal API in the US. All other devices have to have orders fully paid for to push to the POS. :slightly_smiling_face:

Have you find any solution of it?