API për zhvilluesit

Përditësuar më 13.11.2026

Shkarko si PDF

Me API-në e Replivo e lidhni chat-in me sistemin tuaj të punës (backoffice, CRM): merrni mesazhet e vizitorëve sapo shkruhen dhe u përgjigjeni nga programi juaj. Përgjigjja i shfaqet vizitorit në dritaren e chat-it, njësoj si nga paneli.

Si funksionon

  1. Krijoni një çelës API te Cilësimet → API dhe integrime.
  2. Vendosni adresën e webhook-ut tuaj: Replivo i dërgon aty çdo mesazh të ri të vizitorit.
  3. Përgjigjuni duke thirrur API-në me çelësin tuaj.
  4. Dërgoni rregullisht sinjalin e pranisë, që widget-i t'ju tregojë online.

Autentikimi

Çdo kërkesë mban çelësin në kokën Authorization. Çelësi është sekret: përdoreni vetëm nga serveri juaj, kurrë nga kodi i një faqeje web. Një çelës i hequr ndalon së punuari brenda një minute.

Authorization: Bearer rpl_…

Adresa bazë: https://developer.replivochat.com/api/v1

Përgjigjet janë JSON: të dhënat te fusha data, gabimet te fusha error me code dhe message.

curl https://developer.replivochat.com/api/v1/me \
  -H "Authorization: Bearer rpl_…"

Pikat e hyrjes

MetodaShteguÇfarë bën
GET/meBiznesi, çelësi dhe faqet web. E mirë për të provuar çelësin.
GET/conversations?status=activeLista e bisedave. status: active (parazgjedhje), open, assigned, closed. limit deri në 100.
GET/conversations/{id}Një bisedë.
GET/conversations/{id}/messagesMesazhet e bisedës. after (datë ISO) kthen vetëm më të rejat; limit deri në 200.
POST/conversations/{id}/messagesDërgon një përgjigje te vizitori. Trupi: text, opsionale agentName.
POST/conversations/{id}/closeMbyll bisedën.
POST/conversations/{id}/reopenRihap një bisedë të mbyllur.
GET/ticketsMesazhet offline (tiketat).
PUT/presenceJu tregon online në widget. Trupi: online, ttlSeconds (30–600, parazgjedhje 120).

Shembull: përgjigje te një vizitor

curl -X POST https://developer.replivochat.com/api/v1/conversations/CONVERSATION_ID/messages \
  -H "Authorization: Bearer rpl_…" \
  -H "Content-Type: application/json" \
  -d '{"text": "Po, e kemi në stok.", "agentName": "Arta"}'

Prania

Widget-i tregon “Online” vetëm kur dikush mund të përgjigjet. Nëse përgjigjeni vetëm nga sistemi juaj, thirreni këtë rregullisht (p.sh. çdo minutë) sa kohë operatorët tuaj janë në punë. Kur sinjali ndalon, widget-i kalon vetë në formularin e mesazheve pasi mbaron afati.

curl -X PUT https://developer.replivochat.com/api/v1/presence \
  -H "Authorization: Bearer rpl_…" \
  -H "Content-Type: application/json" \
  -d '{"online": true, "ttlSeconds": 120}'

Webhooks

Vendosni adresën te Cilësimet → Biznesi → Webhook URL. Duhet të jetë https. Replivo dërgon një kërkesë POST për çdo ngjarje:

message.createdNjë vizitor shkroi një mesazh (edhe të parin e bisedës).
conversation.startedNisi një bisedë e re.
ticket.createdNjë vizitor la një mesazh offline.

Shembull i trupit për message.created

{
  "id": "0b1f…",
  "event": "message.created",
  "workspaceId": "…",
  "createdAt": "2026-11-13T17:40:00.000Z",
  "data": {
    "conversationId": "…",
    "messageId": "…",
    "siteId": "…",
    "from": "visitor",
    "text": "A e keni produktin në stok?",
    "attachments": [],
    "visitor": { "id": "…", "name": "Besa", "email": "besa@example.com" },
    "createdAt": "2026-11-13T17:40:00.000Z"
  }
}

Verifikimi i nënshkrimit

Krijoni një sekret nënshkrimi te Cilësimet → API dhe integrime. Çdo kërkesë mban atëherë kokën X-Replivo-Signature me kohën t dhe nënshkrimin v1 = HMAC-SHA256 i vargut “t.trupi” me sekretin tuaj. Refuzoni kërkesat me nënshkrim të gabuar ose me kohë më të vjetër se pesë minuta.

// Node.js (Express): use the raw request body, not the parsed JSON
const crypto = require("crypto");

function verify(rawBody, header, secret) {
  const parts = Object.fromEntries(header.split(",").map((p) => p.split("=")));
  if (Math.abs(Date.now() / 1000 - Number(parts.t)) > 300) return false;
  const expected = crypto.createHmac("sha256", secret).update(parts.t + "." + rawBody).digest("hex");
  return expected.length === parts.v1.length &&
    crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(parts.v1));
}

Për t'u ditur

Kodet e gabimeve

400 invalid_request401 unauthorized403 suspended
404 not_found409 conversation_closed429 rate_limited

Për pyetje teknike na shkruani në info@replivochat.com.