Utvecklardokumentation

Dokumentation

Allt du behöver för att koppla din restaurang till Haitechs röstagenter — ta emot bokningar, avhämtningar och gästfrågor via ett enkelt REST-API.

Kom igång

Haitech-API:et låter dig styra dina röstagenter programmatiskt. På fem minuter kan du initiera ett samtal, ta emot en bokning och skicka den vidare till ditt bokningssystem.

Bas-URL för alla anrop är https://api.haitech.se/v1. Alla svar returneras som JSON och alla anrop måste ske över HTTPS.

Så här fungerar det

  1. Skapa en API-nyckel i din Haitech-panel.
  2. Konfigurera en röstagent för din restaurang — lunchrush, avhämtning eller bordsbokning.
  3. Anropa API:et eller ta emot webhooks när en gäst ringer.

Tips: Använd en testnyckel (sk_test_…) medan du bygger. Testsamtal kopplas aldrig fram till en riktig telefonlinje.

Autentisering

Alla anrop autentiseras med en hemlig API-nyckel som skickas i Authorization-headern som en Bearer-token. Håll nyckeln hemlig — exponera den aldrig i klientkod eller publika repositorier.

Skicka din nyckel

Lägg till headern i varje anrop:

HTTP
Authorization: Bearer sk_live_9c1f4a2b7e6d
Content-Type: application/json

Nycklar som börjar med sk_live_ påverkar riktiga samtal, medan sk_test_ körs i sandlådeläge.

Skicka ett samtal

Med endpointen POST /v1/calls ringer din röstagent upp en gäst — perfekt för att bekräfta en bokning eller påminna om en avhämtning som är klar.

Exempel: cURL-anrop

cURL
curl -X POST https://api.haitech.se/v1/calls \
  -H "Authorization: Bearer sk_live_9c1f4a2b7e6d" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+46701234567",
    "agent_id": "agent_lunchrush",
    "language": "sv-SE",
    "context": {
      "gast": "Anna",
      "bord": 4,
      "tid": "19:00"
    }
  }'

Svar

Ett lyckat anrop returnerar status 201 Created med samtalsobjektet:

JSON
{
  "id": "call_9f2a3c7d1b",
  "status": "queued",
  "to": "+46701234567",
  "agent_id": "agent_lunchrush",
  "language": "sv-SE",
  "created_at": "2026-07-03T11:24:00Z"
}

Fältet status går från queuedringingcompleted. Prenumerera på webhooks för att få resultatet i realtid.

Webhooks

När ett samtal avslutas skickar Haitech en POST till din registrerade webhook-URL. Så fångar du en bokning som en gäst gjort via röstagenten — utan att någon behöver svara i telefonen.

Exempel: payload

JSON
{
  "event": "call.completed",
  "data": {
    "id": "call_9f2a3c7d1b",
    "status": "completed",
    "duration": 84,
    "bokning": {
      "gaster": 4,
      "tid": "2026-07-04T19:00:00Z",
      "allergener": ["gluten", "nötter"]
    }
  }
}

Ta emot i Node.js

Verifiera och spara bokningen i ditt eget system. Svara alltid med 200 inom fem sekunder, annars görs ett nytt försök.

JavaScript
app.post('/haitech-webhook', (req, res) => {
  const { event, data } = req.body;

  if (event === 'call.completed' && data.bokning) {
    // Spara bordsbokningen i ditt bokningssystem
    sparaBokning(data.bokning);
  }

  res.sendStatus(200);
});

Felkoder

API:et använder vanliga HTTP-statuskoder. Koder i 2xx betyder lyckat, 4xx ett fel i din förfrågan och 5xx ett fel hos Haitech.

KodNamnBetydelse
401UnauthorizedAPI-nyckeln saknas eller är ogiltig. Kontrollera din Bearer-token.
403ForbiddenNyckeln saknar behörighet för den begärda röstagenten.
404Not FoundSamtalet eller agenten hittades inte — kontrollera id.
422UnprocessableOgiltigt telefonnummer eller fält saknas i förfrågan.
429Too Many RequestsDu har passerat gränsen. Vänta och försök igen med backoff.
500Server ErrorEtt oväntat fel hos Haitech. Försök igen eller kontakta support.
Kom igång

Redo att ta nästa steg?

Boka ett kostnadsfritt möte så går vi igenom era utmaningar och visar hur en AI-agent kan skapa verkligt värde – anpassat för just er restaurang.

Boka ett kostnadsfritt möte