E-MatriX
v1.0 — Producție

API Docs E-MatriX

Ghid complet pentru integrarea cu platforma E-MatriX. Conectează magazinul tău, automatizează apeluri AI, confirmări comenzi prin WhatsApp și call center cu agenți inteligenți.

Webhook Universal

Un singur endpoint, toate platformele. Token criptat AES-256-GCM.

Call Center AI

Apeluri outbound automate cu agenți AI ElevenLabs, voce clonată.

WhatsApp Business

Trimitere template-uri aprobate Meta, conversații AI, webhook-uri.

Autentificare

Toate cererile către API-ul E-MatriX necesită un token criptat AES-256-GCM, generat din Confirmare Comenzi → Setări → Webhook Generator. Token-ul include user-ul, magazinul și o semnătură HMAC anti-tampering.

📍 Cum obții token-ul: Loghează-te în dashboard → secțiunea Confirmare Comenzi → tab Setări → Webhook Generator → click Generate. Token-ul tău unic apare imediat și este legat de contul tău.

Header de autentificare

POST /webhook/universal.php
Host: e-matrix.ro
Content-Type: application/json
X-EMX-Token: eyJhbGciOiJBRVMtMjU2LUdDTSIsInR5cCI6IkpXRSJ9...

Rate limits

Pentru a proteja platforma, fiecare cont are limite per minut pe categorii diferite de endpoint-uri:

EndpointPlan FreePlan ProPlan Business
/webhook/universal.php30 / min300 / min1500 / min
/api/calls/init5 / min50 / min250 / min
/api/whatsapp/send10 / min100 / min500 / min

Webhook Universal — Overview

E-MatriX folosește un Webhook Universal pentru a primi comenzi din orice magazin online. Indiferent dacă platforma ta e Shopify, WooCommerce, Gomag, OpenCart sau custom, payload-ul se normalizează automat și ajunge în pipeline-ul de confirmări comenzi (WhatsApp + apel AI).

Criptare AES-256-GCM

Toate token-urile trec printr-un strat de criptare autentică. Asta înseamnă că payload-ul nu doar e ascuns, ci și verificat — orice modificare invalidează token-ul automat.

Anatomy a token-ului

eyJhbGciOiJBRVMtMjU2LUdDTSIsInR5cCI6IkpXRSJ9...
ComponentăDescriereLungime
headerJWE header — algoritm și tip~40 bytes
ivInitialization vector unic per token12 bytes
ciphertextPayload criptat (user_id, shop_id, expiry)variabil
auth_tagGCM authentication tag16 bytes
⚠️ Important: Nu îți partaja niciodată token-ul în repo-uri publice. Dacă suspectezi compromis, regenerează imediat din dashboard — vechiul token devine instant invalid.

Structura payload

După ce primește un webhook, E-MatriX normalizează payload-ul indiferent de platformă. Iată structura canonică:

{
  "order_id": "ORD-12345",
  "shop_name": "Magazinul Meu",
  "customer": {
    "first_name": "Ion",
    "last_name": "Popescu",
    "email": "[email protected]",
    "phone": "+40712345678"
  },
  "products": [
    { "sku": "TSHIRT-RED-M", "name": "Tricou Rosu", "qty": 2, "price": 89.99 }
  ],
  "totals": {
    "subtotal": 179.98,
    "shipping": 19.99,
    "total": 199.97,
    "currency": "RON"
  },
  "shipping_address": {
    "city": "Bucuresti",
    "county": "Bucuresti",
    "address": "Strada Exemplu 1",
    "postcode": "010101"
  },
  "metadata": { "source": "shopify", "received_at": "2026-04-07T12:00:00Z" }
}

Exemple per platformă

// Shopify Admin → Settings → Notifications → Webhooks
// Event: Order creation
// Format: JSON
// URL: https://e-matrix.ro/webhook/universal.php?token=YOUR_TOKEN
// WooCommerce → Settings → Advanced → Webhooks
// Topic: Order created
// Delivery URL:
https://e-matrix.ro/webhook/universal.php?token=YOUR_TOKEN

// Sau via WP filter:
add_action('woocommerce_thankyou', function($order_id){
    wp_remote_post('https://e-matrix.ro/webhook/universal.php', [
        'headers' => ['X-EMX-Token' => 'YOUR_TOKEN'],
        'body'    => json_encode(wc_get_order($order_id)->get_data()),
    ]);
});
// Gomag Admin → Marketplace → Caută "E-MatriX"
// Sau Setări → Integrări → Adaugă webhook:
//   URL: https://e-matrix.ro/webhook/universal.php?token=YOUR_TOKEN
//   Eveniment: comanda_noua
//   Format: JSON
curl -X POST https://e-matrix.ro/webhook/universal.php \
  -H "X-EMX-Token: YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "order_id": "TEST-001",
    "customer": { "first_name": "Test", "phone": "+40712345678" },
    "products": [{ "name": "Demo", "qty": 1, "price": 99 }],
    "totals": { "total": 99, "currency": "RON" }
  }'

Integrare META — WhatsApp Business

Conectează contul tău WhatsApp Business prin Meta OAuth. După conectare, poți trimite template-uri aprobate, gestiona conversații cu agenți AI și primi notificări webhook.

Setup rapid

  • Mergi în Dashboard → WhatsApp → Conectare
  • Click pe Connect with Meta și autorizează aplicația
  • Selectează numărul WABA pe care vrei să-l conectezi
  • Configurează webhook-ul de mesaje (automat) și salvează

WhatsApp Templates

Template-urile sunt mesaje pre-aprobate de Meta pe care le poți trimite oricărui contact. Endpoint-ul de trimitere:

POST/dashboard/pages/meta/send_template.php
{
  "to": "+40712345678",
  "template_name": "order_confirmation_v2",
  "language": "ro",
  "variables": {
    "1": "Ion Popescu",
    "2": "ORD-12345",
    "3": "199.97 RON"
  }
}

Webhook Meta (incoming messages)

E-MatriX expune un endpoint pentru a primi mesaje WhatsApp în timp real:

POST/dashboard/pages/meta/whatsappwebhook.php

Acest URL trebuie configurat în Meta Business Manager → WABA → Configuration → Webhook URL.

Inițiere apel AI

POST/dashboard/pages/coldcalling/start_call_batch.php

Pornește un batch de apeluri către lead-uri. Apelurile sunt puse într-o coadă și trimise la ElevenLabs respectând intervalul orar al user-ului.

{
  "contact_ids": [1024, 1025, 1026],
  "agent_id": "agent_abc123",
  "max_duration": 180,
  "voice_id": "voice_xyz789"
}

Status apel

GET/dashboard/pages/coldcalling/get_call_status.php?id={call_id}

Returnează statusul curent al unui apel: in_asteptare, processing, apelat, ocupat, eroare.

Transcrieri

GET/dashboard/pages/coldcalling/get_transcript.php?conv_id={id}

Returnează transcrierea completă a unei conversații, message-by-message, cu timestamps și clasificare client (interesat / callback / nu_e_interesat).

Flow Confirmare Comenzi

Când o comandă ajunge prin Webhook Universal:

  1. Payload normalizat → salvat în orderconfirm_orders
  2. Trimite WhatsApp template order_confirmation (dacă e configurat)
  3. Așteaptă răspuns client X minute (config user)
  4. Dacă nu răspunde → inițiere apel AI cu agentul OC
  5. Agentul AI cheamă Standard_CallConfirm_Tool la final cu rezultatul
  6. Status final → confirmat / anulat / reprogramat

Standard_CallConfirm_Tool

Acest tool este injectat automat în orice agent ElevenLabs creat pentru confirmare comenzi. Schema lui este fixă:

{
  "name": "Standard_CallConfirm_Tool",
  "description": "Apelat la finalul conversatiei cu rezultatul confirmarii.",
  "parameters": {
    "userid":  { "type": "integer", "description": "ID-ul user-ului E-MatriX" },
    "orderid": { "type": "string",  "description": "ID-ul comenzii" },
    "llmwrited":{ "type": "string", "enum": ["confirmat","anulat","reprogramat","nu_raspunde","ocupat"] },
    "note":     { "type": "string", "description": "Note libere de la agent" }
  }
}

SDK PHP

$ch = curl_init('https://e-matrix.ro/webhook/universal.php');
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        'X-EMX-Token: ' . getenv('EMX_TOKEN'),
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'order_id' => 'ORD-001',
        'customer' => ['phone' => '+40712345678'],
        'totals'   => ['total' => 199.99, 'currency' => 'RON'],
    ]),
    CURLOPT_RETURNTRANSFER => true,
]);
$res = curl_exec($ch);

SDK Node.js

import fetch from 'node-fetch';

const r = await fetch('https://e-matrix.ro/webhook/universal.php', {
  method: 'POST',
  headers: {
    'X-EMX-Token': process.env.EMX_TOKEN,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    order_id: 'ORD-001',
    customer: { phone: '+40712345678' },
    totals: { total: 199.99, currency: 'RON' },
  }),
});
console.log(await r.json());

SDK Python

import os, requests

r = requests.post(
    'https://e-matrix.ro/webhook/universal.php',
    headers={'X-EMX-Token': os.environ['EMX_TOKEN']},
    json={
        'order_id': 'ORD-001',
        'customer': {'phone': '+40712345678'},
        'totals': {'total': 199.99, 'currency': 'RON'},
    },
    timeout=10,
)
print(r.json())

Nu găsești ce cauți?

Echipa noastră răspunde în maxim 2 ore lucrătoare.

Contactează-ne