Webhooks
Primește alerte la evenimente și automatizează acțiuni în aplicațiile tale
La câteva clipe după ce se întâmplă ceva în Enlivy (o factură e plătită, intră o tranzacție, se schimbă un utilizator), un webhook anunță sistemul tău. Reacționezi la evenimente, în loc să verifici periodic dacă s-a schimbat ceva sau să aștepți rapoarte.
Creează un cont gratuitCont gratuit, fără card. Ca să trimiți evenimente, ai nevoie de cel puțin un pachet plătit, de la 15,55 lei/lună, fără TVA.
CE ESTE
Se schimbă ceva. Sistemele tale reacționează.
Afli primul ce se schimbă: îți ții sistemele la zi cu evenimentele trimise de Enlivy.
Cu webhook-uri, aplicațiile tale reacționează la câteva clipe după ce se întâmplă ceva în Enlivy.
În loc să aștepți rapoarte sau să scrii cod costisitor care verifică mereu dacă s-a schimbat ceva, sistemul tău primește o notificare atunci când se schimbă datele.
-
Notificări la evenimente
Afli la câteva clipe după ce se creează sau se modifică o factură, o tranzacție, un utilizator sau alte date importante. Dacă endpoint-ul tău nu răspunde, trimiterea se reia.
-
Automatizare directă
Legi Enlivy direct de aplicațiile și fluxurile tale de lucru. Pornești acțiuni personalizate, sincronizezi alte aplicații sau ții rapoartele la zi, fără polling.
CE ESTE
Rămâi cu un pas înainte, cu date la zi
Webhook-urile Enlivy te ajută să-ți ții sistemele la zi și îți dau control complet asupra datelor și a fluxurilor de lucru.
Primești o notificare de fiecare dată când apar facturi, tranzacții, utilizatori sau alte evenimente importante, așa că nu mai depinzi de verificări manuale sau de rapoarte care vin cu întârziere.
-
Economisești timp
Cu notificările, ai mai puțină muncă manuală și reacționezi mai repede.
-
Mai puține erori
Datele tale rămân corecte și sincronizate în toate sistemele.
-
Integrări mai simple
Îți conectezi repede aplicațiile și fluxurile de lucru, cu foarte puține setări.
LIVRAREA EVENIMENTELOR
Te abonezi la evenimentele din Helpdesk
Alegi evenimente din Helpdesk, de exemplu o conversație nouă, atribuită sau fără răspuns, și le trimiți către o destinație webhook. Pentru fiecare abonament stabilești evenimentele și destinația.
DE CE WEBHOOK-URI
Rapide, de încredere și făcute pe măsura ta
Prin webhook-uri, Enlivy devine sursa de referință pe care o urmăresc toate aplicațiile tale.
- Notificări semnate
La câteva clipe după ce se schimbă o factură, o tranzacție sau un utilizator, endpoint-ul tău primește datele evenimentului, semnate. Fără polling și fără să aștepți rapoarte.
Afli ce s-a schimbat fără să verifici de mână.
- Complet personalizabile
Te abonezi doar la evenimentele care contează și alegi ce date legate de ele primești la fiecare. Primești exact ce îți trebuie pentru fluxul tău, nimic în plus.
Tu stabilești ce conține fiecare eveniment trimis.
- Automatizare mai inteligentă
Pornești automat fluxuri, notificări și integrări, în loc să muți datele de mână.
Sistemele lucrează pentru tine, nu invers.
- Un singur flux de date
Ții sincronizate toate instrumentele, platformele și aplicațiile dintr-un singur flux de evenimente.
Echipa ta se ocupă de decizii, nu de mutat date.
- Fiabil și mereu activ
Livrările sunt constante și mereu active, iar fiecare trimitere e înregistrată, ca să vezi exact ce s-a întâmplat.
O livrare se încearcă de până la cinci ori, pe parcursul a aproximativ zece minute, iar proprietarul contului primește, o dată pe oră, un rezumat al livrărilor care tot au eșuat.
- Crește odată cu tine
Fiecare pachet plătit activ include până la 25 de endpoint-uri.
Automatizarea rămâne simplă, oricât ai crește.
Referință API
Webhooks și livrarea evenimentelor prin API
Primești o notificare la scurt timp după ce se întâmplă ceva în contul tău. O destinație de evenimente este un endpoint, adică un webhook HTTPS sau un canal Slack, abonat la evenimentele care te interesează (o factură plătită, un contract actualizat, o tranzacție bancară creată). De fiecare dată când apare unul dintre ele, destinația primește un payload semnat.
Fiecare trimitere se înregistrează ca livrare, așa că vezi exact ce s-a trimis și ce a răspuns endpoint-ul tău. Referința acoperă tot ciclul: creezi și modifici destinații, le abonezi la evenimente, trimiți un test, le ștergi și citești jurnalele de livrare, cu datele lor.
Listezi destinațiile configurate. Poți obține și una singură, împreună cu evenimentele la care e abonată și livrările recente, prin parametrul include.
/organizations/<organization_id>/event-destinations +1# listezi toate destinațiile
curl 'https://api.enlivy.com/organizations/<organization_id>/event-destinations' \
-H "Authorization: Bearer $ENLIVY_API_TOKEN" \
-H 'Accept: application/json'
# o destinație, cu abonările și livrările ei incluse
curl -G 'https://api.enlivy.com/organizations/<organization_id>/event-destinations/<event_destination_id>' \
--data-urlencode 'include=event_subscriptions,event_deliveries' \
-H "Authorization: Bearer $ENLIVY_API_TOKEN" \
-H 'Accept: application/json' const baseUrl = "https://api.enlivy.com" ;
const token = process.env.ENLIVY_API_TOKEN;
const organizationId = "<organization_id>";
const eventDestinationId = "<event_destination_id>";
const headers = {
Authorization: `Bearer ${token}`,
Accept: "application/json" ,
};
// listezi toate destinațiile
const result1 = await fetch(`${baseUrl}/organizations/${organizationId}/event-destinations` , {
method: "GET",
headers,
}).then((response) => response.json());
// o destinație, cu abonările și livrările ei incluse
const query = new URLSearchParams({
include: "event_subscriptions,event_deliveries",
});
const result2 = await fetch(`${baseUrl}/organizations/${organizationId}/event-destinations/${eventDestinationId}?${query}` , {
method: "GET",
headers,
}).then((response) => response.json());Înregistrezi un endpoint de webhook (sau Slack) și îl abonezi la evenimente. Pentru fiecare eveniment poți alege ce date legate să fie incluse și un șablon de mesaj opțional. Răspunsul conține un signing_secret, cu care verifici semnătura payload-urilor primite prin webhook.
/organizations/<organization_id>/event-destinations curl -X POST 'https://api.enlivy.com/organizations/<organization_id>/event-destinations' \
-H "Authorization: Bearer $ENLIVY_API_TOKEN" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"type": "webhook",
"name": "My integration",
"destination_url": "https://example.com/enlivy/webhooks",
"is_active": true,
"events": [
{
"event": "invoice.paid",
"includes": [
"line_items",
"taxes"
],
"config": {
"message": "Invoice {{ invoice.number }} was paid"
}
},
{
"event": "contract.updated"
}
]
}'
# Răspunsul conține: id, type, destination_url, signing_secret, is_active, name, config.const baseUrl = "https://api.enlivy.com" ;
const token = process.env.ENLIVY_API_TOKEN;
const organizationId = "<organization_id>";
const result = await fetch(`${baseUrl}/organizations/${organizationId}/event-destinations` , {
method: "POST",
headers: {
Authorization: `Bearer ${token}`,
Accept: "application/json" ,
"Content-Type": "application/json" ,
},
body: JSON.stringify({
// webhook | slack
type: "webhook",
name: "My integration",
// obligatoriu când type = webhook
destination_url: "https://example.com/enlivy/webhooks" ,
is_active: true,
// Pentru Slack, renunți la destination_url și trimiți:
// type: "slack",
// organization_api_credential_id: "slack_credential_id",
// config: { channel: "#billing" },
// te abonezi la unul sau mai multe evenimente (model: subiect.acțiune)
events: [
{
// de exemplu invoice.created | invoice.paid | contract.updated
event: "invoice.paid",
includes: ["line_items", "taxes"],
config: { message: "Invoice {{ invoice.number }} was paid" },
},
{ event: "contract.updated" },
],
}),
}).then((response) => response.json());
// Răspunsul conține: id, type, destination_url, signing_secret, is_active, name, config. Actualizezi o destinație: îi schimbi URL-ul, o pui pe pauză sau o repornești ori redefinești evenimentele la care e abonată. Trimiți lista completă a evenimentelor la care vrei să fie abonată destinația.
/organizations/<organization_id>/event-destinations/<event_destination_id> curl -X PUT 'https://api.enlivy.com/organizations/<organization_id>/event-destinations/<event_destination_id>' \
-H "Authorization: Bearer $ENLIVY_API_TOKEN" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"is_active": false,
"destination_url": "https://example.com/enlivy/webhooks/v2",
"events": [
{
"event": "invoice.created"
},
{
"event": "invoice.paid"
}
]
}' const baseUrl = "https://api.enlivy.com" ;
const token = process.env.ENLIVY_API_TOKEN;
const organizationId = "<organization_id>";
const eventDestinationId = "<event_destination_id>";
const result = await fetch(`${baseUrl}/organizations/${organizationId}/event-destinations/${eventDestinationId}` , {
method: "PUT",
headers: {
Authorization: `Bearer ${token}`,
Accept: "application/json" ,
"Content-Type": "application/json" ,
},
body: JSON.stringify({
// oprești livrarea fără să ștergi destinația
is_active: false,
destination_url: "https://example.com/enlivy/webhooks/v2" ,
events: [{ event: "invoice.created" }, { event: "invoice.paid" }],
}),
}).then((response) => response.json());Trimiți un eveniment de test către o destinație, ca să verifici că legătura funcționează de la un capăt la altul. Testul creează o livrare reală, pe care o vezi în jurnale.
/organizations/<organization_id>/event-destinations/<event_destination_id>/test curl -X POST 'https://api.enlivy.com/organizations/<organization_id>/event-destinations/<event_destination_id>/test' \
-H "Authorization: Bearer $ENLIVY_API_TOKEN" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"event": "invoice.paid"
}'const baseUrl = "https://api.enlivy.com" ;
const token = process.env.ENLIVY_API_TOKEN;
const organizationId = "<organization_id>";
const eventDestinationId = "<event_destination_id>";
const result = await fetch(`${baseUrl}/organizations/${organizationId}/event-destinations/${eventDestinationId}/test` , {
method: "POST",
headers: {
Authorization: `Bearer ${token}`,
Accept: "application/json" ,
"Content-Type": "application/json" ,
},
body: JSON.stringify({
// opțional; lipsă = se trimite un eveniment de test generic
event: "invoice.paid",
}),
}).then((response) => response.json());Citești jurnalul tuturor evenimentelor trimise. Filtrezi după destinație, după unul sau mai multe evenimente, după statusul livrării și după dată. Așa găsești cel mai repede eșecurile și reîncercările.
/organizations/<organization_id>/event-destinations/deliveries # event și status acceptă liste: trimiți fiecare valoare cu sufixul []
# status: pending | success | failed | dropped | anomaly
curl -G 'https://api.enlivy.com/organizations/<organization_id>/event-destinations/deliveries' \
--data-urlencode 'organization_event_destination_id=<destination_id>' \
--data-urlencode 'event[]=invoice.paid' \
--data-urlencode 'event[]=invoice.created' \
--data-urlencode 'status[]=failed' \
--data-urlencode 'created_at_from=2026-07-01' \
--data-urlencode 'created_at_to=2026-07-31' \
-H "Authorization: Bearer $ENLIVY_API_TOKEN" \
-H 'Accept: application/json' const baseUrl = "https://api.enlivy.com" ;
const token = process.env.ENLIVY_API_TOKEN;
const organizationId = "<organization_id>";
// event și status acceptă liste: trimiți fiecare valoare cu sufixul []
// status: pending | success | failed | dropped | anomaly
const query = new URLSearchParams([
["organization_event_destination_id", "<destination_id>"],
["event[]", "invoice.paid"],
["event[]", "invoice.created"],
["status[]", "failed"],
["created_at_from", "2026-07-01"],
["created_at_to", "2026-07-31"],
]);
const result = await fetch(`${baseUrl}/organizations/${organizationId}/event-destinations/deliveries?${query}` , {
method: "GET",
headers: {
Authorization: `Bearer ${token}`,
Accept: "application/json" ,
},
}).then((response) => response.json());Obții o singură livrare cu toate datele ei: payload-ul exact trimis de Enlivy, statusul HTTP și body-ul pe care le-a returnat endpoint-ul tău și dacă a fost o reîncercare. Așa depanezi o livrare eșuată.
/organizations/<organization_id>/event-destinations/deliveries/<event_delivery_id> curl 'https://api.enlivy.com/organizations/<organization_id>/event-destinations/deliveries/<event_delivery_id>' \
-H "Authorization: Bearer $ENLIVY_API_TOKEN" \
-H 'Accept: application/json'
# Răspunsul conține: event, status, request_payload (ce am trimis),
# response_status + response_type + response (ce a răspuns endpoint-ul tău), is_retry.const baseUrl = "https://api.enlivy.com" ;
const token = process.env.ENLIVY_API_TOKEN;
const organizationId = "<organization_id>";
const eventDeliveryId = "<event_delivery_id>";
const result = await fetch(`${baseUrl}/organizations/${organizationId}/event-destinations/deliveries/${eventDeliveryId}` , {
method: "GET",
headers: {
Authorization: `Bearer ${token}`,
Accept: "application/json" ,
},
}).then((response) => response.json());
// Răspunsul conține: event, status, request_payload (ce am trimis),
// response_status + response_type + response (ce a răspuns endpoint-ul tău), is_retry. Ștergi o destinație ca să oprești toate livrările către ea. Dacă vrei doar s-o pui temporar pe pauză, trimiți un PUT cu is_active false.
/organizations/<organization_id>/event-destinations/<event_destination_id> curl -X DELETE 'https://api.enlivy.com/organizations/<organization_id>/event-destinations/<event_destination_id>' \
-H "Authorization: Bearer $ENLIVY_API_TOKEN" \
-H 'Accept: application/json' const baseUrl = "https://api.enlivy.com" ;
const token = process.env.ENLIVY_API_TOKEN;
const organizationId = "<organization_id>";
const eventDestinationId = "<event_destination_id>";
const result = await fetch(`${baseUrl}/organizations/${organizationId}/event-destinations/${eventDestinationId}` , {
method: "DELETE",
headers: {
Authorization: `Bearer ${token}`,
Accept: "application/json" ,
},
}).then((response) => response.json());Funcționează împreună cu
- API Enlivy Conectezi Enlivy, prin API, la celelalte aplicații și platforme pe care le folosești și construiești integrări care țin pasul cu firma ta pe măsură ce crește.
- Date din conturi bancare Fiecare cont conectat, cu soldul și tranzacțiile lui, în același dashboard: sincronizat în siguranță, ținut la zi și legat de restul evidențelor tale.
- Tranzacții bancare Aduci toate tranzacțiile în Enlivy: sincronizate din bancă, importate dintr-un fișier sau introduse de mână. Apoi legi fiecare tranzacție de factura, chitanța sau fluturașul de salariu de care ține, ca să vezi fiecare plată lângă documentul pe care îl achită.
- Pachete comerciale Creezi o singură dată un pachet comercial și îl vinzi săptămânal, lunar, anual sau la orice interval dintre ele. Clienții se abonează și își administrează cardul dintr-un portal cu brandul tău, iar dacă le permiți, schimbă ciclul sau nivelul, suspendă ori anulează abonamentul. Cu pachetul Plăți recurente, Enlivy facturează fiecare ciclu, iar plățile cu cardul se încasează prin contul tău Stripe.
- Billing Schedules Configurezi un abonament, un onorariu lunar sau o plată în rate, îi legi facturile și chitanțele și vezi exact cât s-a plătit, ce mai e de plătit și cum stai cu fiecare client sau furnizor.
- Contracte Redactezi contracte din șabloane, le trimiți la semnat cu verificarea identității prin SMS sau email și urmărești fiecare semnătură și fiecare reînnoire.
- Portal clienți Un portal self-service cu logoul firmei tale, pe domeniul tău dacă îl adaugi, în care clienții acceptă singuri propuneri, plătesc facturi, își administrează abonamentele și semnează contracte. Fiecare acțiune apare în Enlivy, pe fișa clientului.
- Export de date Exporți facturile, chitanțele, fluturașii de salariu, contractele și tranzacțiile în formatul și structura de foldere la care se așteaptă contabilul, pentru orice perioadă. Inclus în orice plan, fără cost suplimentar.
- Ghiduri Scrii bunele practici și regulile firmei, iar echipa rămâne pe aceeași linie, cu ghiduri clare și ușor de găsit.
- Facturi Emiți factura, o trimiți clientului și o legi de contractul, chitanța sau tranzacția bancară de care ține. Facturile către clienții din România le trimiți în e-Factura prin conexiunea ANAF configurată.
- MCP Conectezi Enlivy la Claude, ChatGPT, Cursor sau orice alt asistent AI prin MCP. Întrebi despre facturi, contracte și pipeline și rezolvi lucruri concrete, în siguranță, fără să depășești ce poate face deja contul tău.
- Network Exchanges Dacă firma ta e din România, conectezi ANAF eFactura: primești facturile de la furnizori și trimiți facturile emise către clienții din România, manual sau după un program pe care îl configurezi. Starea fiecărui schimb o vezi în Enlivy. Pentru alte piețe, descarci fișierul de factură electronică într-un format acceptat, îl verifici și îl depui separat.
- Fluturași de salariu Cifrele le calculează contabilul tău. În Enlivy le înregistrezi: fiecare sumă pe linia ei codificată, cu termenii folosiți în țara ta, verificată cu totalurile fluturașului. Fluturașul e legat de raportul de muncă, de contractul și de plata lui.
- Playbook-uri Scrii, aplici și îmbunătățești proceduri pas cu pas pentru orice flux de lucru. Sarcinile care se repetă se fac la fel de fiecare dată, cu mai puține erori, pentru că echipa are în față pași clari.
- Produse Îți faci un catalog cu tot ce vinzi, servicii sau bunuri, cu prețul, unitatea, taxele și descrierea completate o singură dată. Apoi adaugi orice produs pe o ofertă sau o factură în câteva secunde.
- Propuneri Ofertezi munca în detaliu, trimiți propunerea clientului și urmărești cum trece prin acceptare, semnare și plată, acolo unde e cazul.
- Pipeline de vânzări Afli ce oportunități merg mai departe, recitești discuția înainte să revii la client și ții propunerile aproape de vânzare.
- Chitanțe Înregistrezi banii încasați și pe cei plătiți, păstrezi la un loc documentele justificative și, când e nevoie, legi chitanța de factura sau contractul de care ține.
- Rapoarte În loc de mesaje pe chat și email, echipa ta completează rapoarte structurate. Stabilești o singură dată întrebările și ritmul așteptat, într-o schemă pe care o refolosești și la care le dai acces celor care trebuie să răspundă. Fiecare raport trimis ajunge în Enlivy, gata de comparat.
- Integrare Slack Nu mai verifica dashboard-urile ca să afli ce s-a schimbat. Enlivy îți aduce în Slack momentele importante, de la plăți și propuneri până la conversațiile din Helpdesk. Te conectezi o dată, alegi evenimentele și le trimiți pe canalele potrivite.
- Taxe Nu mai alegi manual cota de TVA. Atribui o clasă de impozitare unui produs sau unei linii de factură, iar Enlivy aplică automat cota corectă, după cine e clientul și unde se află. Codurile UE pentru facturarea electronică sunt deja incluse.
- Roluri de utilizator Dă-i fiecărui utilizator accesul potrivit, prin roluri și permisiuni. Decizi cine poate factura, cine se ocupă de evidențele de salarizare și cine intră în back office, iar rolurile le adaptezi pe măsură ce echipa crește.
- Utilizatori În Enlivy îți adaptezi ușor rolurile și permisiunile pentru clienți, parteneri, contabili și administratori, ca accesul fiecăruia să fie sigur și eficient.