How linking works
The owner taps Connect in Billing software, in the Laayo vendor app, and reads you a 6 digit code. You send it once. That is the whole setup, and the owner can unlink at any time.
#The flow
You never see a store that did not give you its code. There is no list of restaurants to browse and no way to link without the owner.
#Send the code
Call POST /v1/stores/link with the code and your store ID. Save store_id from the answer: every other store call uses it.
POST /v1/stores/link
{ "code": "731058", "external_store_id": "TK-01" }
200
{
"data": {
"store_id": 9001,
"store_name": "Laayo Test Kitchen",
"external_store_id": "TK-01",
"link_id": 41,
"linked_at": "2026-11-01T12:30:04+05:45"
}
}Show the owner the store name from the answer, so they can see the right restaurant was linked.
#Your store ID
external_store_id is your own ID for the outlet, up to 100 characters. Every order carries it, so your handler can route an order without a lookup table.
#One POS per store
A store has at most one active POS link. If another POS is linked, the call returns 409 store_linked_elsewhere: the owner unlinks the other POS in the vendor app first, then reads you a new code.
See every store linked to your key, with its online and takeover state, in GET /v1/partner/stores.
#Unlinking
- The owner can unlink from the vendor app at any time. Calls for that store then return 404 not_found.
- You can unlink from your side with POST /v1/stores/{id}/unlink, for example when the restaurant stops using your POS. A busy store goes back to its normal prep time.
#When it fails
- 400 invalid_code means the code is wrong, used or older than 15 minutes. Ask the owner for a new one.
- 429 too_many_codes means more than 10 wrong codes in an hour on your key. Wait an hour.
- 403 sandbox_live_store means a sandbox key tried to link a real restaurant. Sandbox keys link Laayo test stores only, see Sandbox and test orders.