#saltee-terminal-wisepos
1 messages · Page 1 of 1 (latest)
With the server-driven terminal integrations you provide the terminal id to start a transaction.
Each tablet device is runninng the same pwa application (with no way to know which tablet it is connected to). so we don't know which stripe terminal id to send in the request
we don't know how to associate the tablet to the stripe terminal
Hello! I'm taking over and catching up...
In your original question you said, "I am in a situation where we will be connecting multiple terminals to 1 single location." but then you also said, "so we are unsure of the best way to correctly associate each tablet to each location" so I'm confused about the number of locations involved?
sorry i meant "so we are unsure of the best way to correctly associate each tablet to each stripe terminal"
Each tablet? I thought there was only one tablet and multiple readers?
each terminal will sit alongside 1 tablet. (1 tablet per stripe terminal)
Okay, so you have several tablets and several readers, all at one physical location?
yes
And the question is how do you know which tablet is talking to which reader?
yes exactly
There are several different ways to do this, but I recommend you put a physical label on each reader with a name or number or some other identifier. Then you can add that identifying information to the metadata on the Terminal Reader objects in the API: https://stripe.com/docs/api/terminal/readers/object#terminal_reader_object-metadata
Then, in your app, you can display that metadata so people know which reader is which.
Another option is to match things up based on IP address, but that's more technical and requires you to dive into either the readers' settings and/or your network configuration/stats: https://stripe.com/docs/api/terminal/readers/object#terminal_reader_object-ip_address
hmmm okay thanks. I don't think using the physical label will fork for us as the person using the tablets are not staff (they are the customers purchasing items unattended). perhaps the ip address could work - but you are right seems more complicated
Stripe Terminal devices are not designed to be used unattended.
Can you tell me more about your use case?
We are creating kiosks (standalone tablets) for ordering food. the terminals will be secured onto the bases of the tablet stands. and they will be located in various locations of a restaurant/food hall. There will be staff at the restaurant but not at each kiosk
Ah, okay, that counts as attended use, so you're okay there.
yeah sorry i just meant we can't expect the person ordering food to tap the correct terminal
So you can't make the readers visibily distinct from each other in any way?
we could, but i think i'm a bit confused as to how that will help when sending the request for the payment intent. Maybe i'm not understanding how the server-driven integration works.
From my understanding the app sends a payment intent request with the specific terminal id. We don't want our customers having to make that selection manually, so we'd want to programatically know which tablet the app is running on (so it can be tied to a specific terminal)
In a scenario where there's a 1:1 relationship between Terminal readers and POS devices (your tablets) there's typically an initial setup step where you select the reader you want to use from a list (this is where the metadata/label part I mentioned comes in), and then that tablet works with that reader going forward.
That way for every transaction there's no quesiton about which reader it is, it uses the one that was initially configured.
okay that is the part i'm having trouble with is - getting the tablet's information (say i have a terminal, and in the meta it has "tablet_id": 123) how to know that we are on that tablet with the id "123"
You would list the readers and specify the device_type, location, etc. that you wanted: https://stripe.com/docs/api/terminal/readers/list
That gives you a list of the readers to select from, including their metadata.
You then present the list on the tablet and include the relevant information so the person using the tablet can select the reader they want.
So, for example, let's say you have three Terminal readers at your location: tmr_123, tmr_456, and tmr_789. Let's say each of those readers has a label on it that identifies them as A, B, and C respectively. That means tmr_123 has metadata that indicates label is A, for example. You list the readers at this location, get those three back, present a list including the label for each one. The person using the tablet sees the list of the three, what they're labeled, and can then determine which one they want to use with that tablet.
That part would ideally be done once per tablet as an initial configuration/setup. You could then add a matching label to the tablet so tablet A goes with reader A.
That may or may not work depending on how frequently you need to change the tablet/reader pairings.
In your app's code you store the tmr_ ID selected and use that going forward for all transactions.
yeah that all makes sense thank you! i think storing the selected terminal on the physical device (and then accessing it later is the part i'm having trouble wrapping my head around. but i''ll play around with it
You said you're using a web app? One option might be to put it in localStorage: https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage
No problem!