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.
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:
| Endpoint | Plan Free | Plan Pro | Plan Business |
|---|---|---|---|
/webhook/universal.php | 30 / min | 300 / min | 1500 / min |
/api/calls/init | 5 / min | 50 / min | 250 / min |
/api/whatsapp/send | 10 / min | 100 / min | 500 / 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ă | Descriere | Lungime |
|---|---|---|
header | JWE header — algoritm și tip | ~40 bytes |
iv | Initialization vector unic per token | 12 bytes |
ciphertext | Payload criptat (user_id, shop_id, expiry) | variabil |
auth_tag | GCM authentication tag | 16 bytes |
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: JSONcurl -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:
{
"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:
Acest URL trebuie configurat în Meta Business Manager → WABA → Configuration → Webhook URL.
Inițiere apel AI
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
Returnează statusul curent al unui apel: in_asteptare, processing, apelat, ocupat, eroare.
Transcrieri
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:
- Payload normalizat → salvat în
orderconfirm_orders - Trimite WhatsApp template
order_confirmation(dacă e configurat) - Așteaptă răspuns client X minute (config user)
- Dacă nu răspunde → inițiere apel AI cu agentul OC
- Agentul AI cheamă
Standard_CallConfirm_Toolla final cu rezultatul - 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())