Skip to content

Integrations

The link to the POS in your venue, the booking widget on your own site, and the API for anyone building their own integration.

What the POS link does and does not do

#

HaiLa connects to the till system in your venue so that reservations live in one place. Today there is a link to Poster and a link built for Syrve. No other system exists.

What happensWhich way it travels
A reservation you accepted in HaiLaReaches the terminal in your venue
A reservation made on the terminalAppears in HaiLa, as a venue reservation
The floor plan, tables and seatsCome from the POS into HaiLa, once a day
A reservation cancelled on the terminalIs cancelled in HaiLa too
A reservation cancelled in HaiLaDoes not reach the terminal. You close it by hand

The terminal only gets a reservation once you accept it

A pending request is not visible at the till. It crosses over the moment you confirm it. That is deliberate: a mirrored reservation holds a table in the POS, and a request you have not answered yet has no business holding one. So do not wait for requests on the terminal; they are read in the HaiLa app.

Reservations that arrive from the terminal do not count towards your HaiLa invoice at all, on any package. They show in HaiLa so the table plan stays right, but they are not HaiLa traffic.

The guest sees none of this. A reservation looks the same to them whether or not your venue has a POS connected.

Connect Poster to HaiLa

#

With Poster connected, your team stops keeping two reservation lists and stops copying anything by hand from one screen to another.

The link is not set up from the dashboard. There is no POS section and no connect button: we make the connection. Write to hello@haila.md, tell us you run Poster, and we will ask for the access we need and switch it on.

What the guest sees

Nothing changes for the guest: they book exactly as before. What changes is what your team sees, because reservations start appearing in both systems.

Watch for
  • While the link is on, the floor plan comes from Poster. Tables you built in HaiLa before the link are taken out of service at the first sync, so the same seats are not counted twice. They are not deleted, but they do not come back on their own either: if the link is ever switched off, ask us to put the tables back into service, or they simply stay aside.
  • Reservations sync every minute during service and less often overnight. The floor plan is pulled once a day, at half past four in the morning.
  • Nowhere in the apps can you see whether the link is on or off. No screen shows it. If you are not sure, ask us.
  • Switching the link off is also asked of us. There is no disconnect button anywhere.

Poster halls become floors in HaiLa

#

There is nothing to match up between the two systems. No mapping screen, no list of pairs, no confirmation step: HaiLa reads the halls and tables out of Poster and makes them its own.

A hall in Poster
Becomes a floor in HaiLa, under the same name. Every hall gets its own floor, because table coordinates are counted inside the hall.
A table in Poster
Becomes a table in HaiLa, with the same number, the same capacity, the same shape and roughly the same spot on the plan.
The table zone
Is guessed from the hall name. A hall whose name reads like a terrace comes in as terrace; everything else comes in as indoor.
A table deleted in Poster
Goes out of service in HaiLa too, at the next floor plan pull.

Names change in Poster, not in HaiLa

If you want a different floor name or a different table number, change it in Poster. It arrives here at the next sync, the following morning. Changed in HaiLa, it risks reverting to whatever Poster says.

Tables you made in HaiLa are taken out of service

While the link is on, the POS owns the plan. Any active table that did not come from it is deactivated, so the same seats are not counted twice when availability is worked out. Nothing is deleted, the table is only taken out of service. Nor does it return by itself: switching the link off reactivates nothing, so ask for the tables back at the same time.

None of this reaches the guest. They see free times, not tables, not floors, and not where either came from.

Syrve, and why there is no third system

#

The Syrve link is written and ready to switch on, but it has not yet run at any venue. Whoever turns it on first does so as a pilot, with us alongside, because the first real connection is also the first real test.

It follows the same pattern as Poster: your confirmed reservations go out to the system, reservations made there come into HaiLa, and the floor plan travels from there to here.

There is nothing else

HaiLa connects to Poster and to Syrve. There is no third system, no general connector, and no form through which one could be requested. If you run a different POS and need a link, write to hello@haila.md: it is a conversation, not an order you place from a screen.

As with Poster, we switch it on and off. Syrve does not connect from the dashboard or from the apps either.

When the POS and HaiLa disagree

#

Most disagreements have the same explanation: something only travels one way. Check them in the order below, because the first is by far the most common.

What you seeWhy
The terminal holds the table, HaiLa shows the reservation cancelledCancellations from HaiLa never reach the POS. Close the reservation on the terminal too.
A request shows in HaiLa but not at the tillPending requests are not mirrored. It crosses to the terminal once you accept it.
A table you moved or renamed in HaiLa is back as it wasThe plan comes from the POS every morning and writes over it. Change it in the POS.
A table you created yourself has dropped out of the arithmeticThe link takes tables that did not come from the POS out of service, so seats are not counted twice.
Reservations from the terminal are missing from the monthly billing reportOn purpose: reservations that come from the POS are not counted on the HaiLa invoice at all, on any package.

Reservations are not lost, only late

Reservations made on the terminal are pulled every minute during service and less often overnight. If one made thirty seconds ago is not in HaiLa yet, wait a minute before entering it by hand, or you end up holding it twice.

If the mismatch looks like none of the above, write to hello@haila.md with the venue, the date and the table number. We hold the link, so we are the ones who look into it.

Put the booking widget on your website

#

The widget lets someone book without leaving your site, and the reservation counts as your own channel: 0 EUR on PRO and PRO+; on LITE the first 15 a month are included, then 0.50 EUR.

  1. Open Settings and choose Widget.
  2. Stay on the Embed Code tab. The panel is in English.
  3. Pick the key under Select API Key. If you have none, write to hello@haila.md and we issue one.
  4. If the amber box asking for the key password appears, paste the password we gave you. Without it the code comes out with a placeholder where the password belongs.
  5. Before you copy, read the venue id out of the code and make sure it belongs to the right venue. The panel does not look at the venue you have open.
  6. Click Copy Code and paste it into your site, wherever you want the form to appear.
  7. Check the result on the Preview tab, with Open Widget Only or Open Mock Restaurant Site.
What the guest sees

A guest booking through the widget picks the date, the time and the party size, leaves a name and phone, and gets a screen telling them the reservation is registered and waiting for the restaurant to confirm, along with a reservation code. It does not confirm itself: it reaches you as an ordinary pending request, and you accept it.

Watch for
  • A blackout does not take times out of the widget. They stay on show, the guest picks one, and only on submit do they get an error, and a generic one that explains nothing to them. Tick Widget on the blackout so the refusal at least happens, but do not expect the time to disappear from the list.
  • The code carries the key credentials, password included, because the widget authenticates from the browser of the visitor. Use the code generated for your venue, and if you need a different key, ask us for one.
  • The Widget panel looks at the first venue attached to your account, not at the venue you have open. With several venues the code can come out carrying another venue id and another key, and reservations from one venue website land at the other. Check the id every time, even if you have copied the code ten times before.
  • The key password is stored hashed, so the dashboard cannot show it to you. It is the one we handed over when the key was issued. If you have lost it, write to us and we issue another.
  • The widget speaks Romanian and Russian only. It has no English.
  • A widget reservation counts as your own channel: 0 EUR on PRO and PRO+; on LITE the first 15 a month are included, then 0.50 EUR.
  • The Analytics tab counts the views and reservations of the widget itself. That is its tally, not your invoice; the invoice is read under Billing.

Match the widget to your site

#

The widget sits inside your page, so it is worth matching it as far as it can be matched: the language it speaks and the background, light or dark.

  1. Open Settings, choose Widget and move to the Settings tab.
  2. Pick Language, Romanian or Russian.
  3. Pick Theme, Light or Dark, to suit your page background.
  4. Click Save Settings.
  5. Go back to Embed Code, click Copy Code, and replace the old code on your site with the new one.
What the guest sees

The guest sees the widget in the language and on the background you chose, but only once you have replaced the code on your site. The colour stays HaiLa orange whatever you pick. The reservation steps themselves stay the same.

Watch for
  • That last step is not optional. The language and the theme are written into the code you copy, not fetched by the widget each time it loads. While the old code sits on your site, the widget looks as it did, however often you save under Settings.
  • Primary Color does not work at all. You can pick any colour, it saves and it goes into the code, but the widget never reads it: the buttons stay orange for the guest. Do not spend time matching the colour to your site, and if you need a different one, write to us. Language and theme work; colour does not.
  • The two tickboxes at the bottom, Show restaurant information and Allow special requests, save but go nowhere. The widget does not read them. Special requests appear in the form either way.
  • The widget brings its own font rather than taking one from your page, so it has no font setting. If it clashes with your site, write to us.

Use the reservations API

#

If you run your own site or your own app and want the reservations inside it, the API gives out free times and takes a reservation, with no widget involved.

  1. Open Settings and choose API.
  2. Under Credentials you find the venue ID and the Client ID. Keys are issued by us: if you have none, write to hello@haila.md.
  3. Authentication is HTTP Basic: the Client ID as the username, the Client Secret as the password.
  4. Under Endpoints sit the four addresses, each with its fields and a ready-made example. Paste your secret into the box above first, so the examples come out filled in.
  5. Read the error list too: error responses come back as plain text, not JSON.
What the guest sees

A reservation created through the API reaches you as an ordinary pending request, exactly like one from the widget or from the HaiLa app. The guest never learns which road it took.

Watch for
  • Keys are issued by us only. There is no button that makes you one, and none that replaces one.
  • The secret you paste into the page is saved nowhere. It fills the examples for as long as you stay on the screen, and is asked for again after a reload.
  • One key opens one venue. Two venues need two keys.
  • At most 200 reservations an hour for one venue. Past that you get a 429.
  • An API reservation counts as your own channel, like a widget one: 0 EUR on PRO and PRO+; on LITE the first 15 a month are included, then 0.50 EUR.
  • The times the API gives out respect the minimum notice you need, but not blackouts. A time inside a blacked-out window is offered as free and the reservation is refused on submit. When you close a day, remember that through the API it looks open right up to the last step.