Enlivy

Integrate Your Systems and Automate Workflows with the Enlivy API

Integrate Enlivy smoothly with other tools and platforms through our robust API, facilitating a connected and scalable ecosystem for your business operations.

Start Today

API-FIRST BY DESIGN

Built for Developers. Ready for Business.

Everything you can do in Enlivy, you can do through the API.

Every action available in the interface, from creating invoices to syncing contracts or updating records, can be done via API. Automate repetitive tasks, connect Enlivy with your existing systems, and build workflows that match how your business runs.

Clean, reliable endpoints with clear documentation and no vendor lock-in. Whether you are a startup or an enterprise, you ship automations and integrations in days, not months.

  • Modular by design

    Connect just what you need, invoices, customers, contracts, and more, without locking into a rigid system.

  • Build faster, scale smarter

    A fast, stable API lets your team build automations and integrations in days, not months.

  • Integrates with your stack

    Plug Enlivy into the HR, finance, and CRM systems you already run.

  • No vendor lock-in

    Clean, documented endpoints you stay in control of, with total flexibility.

SOUND FAMILIAR?

The Challenges Holding Your Business Back

Brittle integrations and manual busywork, the things that keep a business from scaling. Here is what that costs you, and how an API-first platform changes it.

  • The problem

    Systems that will not talk

    Connecting your HR, finance, and CRM is a frustrating tangle of manual work and unreliable integrations.

    Every record is reachable through one clean API, so your systems finally connect and stay in sync.

  • The problem

    Manual busywork that will not scale

    Repetitive manual tasks drain productivity, increase errors, and block your ability to scale with confidence.

    Script the repetitive work, invoicing and data syncing, and let automation carry it, error-free, as you grow.

API Reference

Invoice Management from the API

Integrate directly with Enlivy through our public API for programmatic access to your account data: invoices, receipts, transactions, products, users, contracts, and more.

The examples below cover the most common invoicing operations: listing invoices, retrieving a single invoice, creating a new one, and updating existing invoice data.

Display a list of recent invoices in your dashboard. Query invoices for your organization with pagination, filters, and metadata. You can also expand invoice details such as line items and taxes.

GET /organizations/{organizationId}/invoices
const organizationId = "your_org_id";
const token = "YOUR_TOKEN_HERE";

fetch(`https://api.enlivy.com/organizations/${organizationId}/invoices?page=1&limit=20&include=invoice_prefix,tag_ids,line_items,taxes&include_meta=navigation`, {
  method: 'GET',
  headers: {
    'Authorization': `Bearer ${token}`,
    'Content-Type': 'application/json'
  }
});

API Reference

Billing Schedules from the API

Automate recurring revenue end-to-end. An app-managed billing schedule is run entirely by Enlivy: it generates invoices on the cadence you define, charges the saved payment method, retries failures, and moves through its own lifecycle: pending, active, paused, cancelling, completed. You define the composition once; the engine bills it on schedule.

This reference covers app-managed schedules only. Enlivy also supports Stripe-hosted schedules, where Stripe owns the subscription and runs the billing. Those are managed on Stripe’s side, so their creation and modification aren’t covered here. You can compose an app-managed schedule two ways: from raw phases (your own recurring line items and cadence) or from a subscription billing package (a reusable template). The examples below cover both, plus listing, editing, reconfiguring, and cancelling.

Query your schedules with pagination, filtering, and full-text search. Filter by status, direction (outbound / inbound), sender, receiver, contract, bank account, or any of the date ranges (starts_at, ends_at, created_at, updated_at). Expand the phases and generated payments inline.

GET /organizations/{organizationId}/billing-schedules
const organizationId = "your_org_id";
const token = "YOUR_TOKEN_HERE";

fetch(
  `https://api.enlivy.com/organizations/${organizationId}/billing-schedules?page=1&limit=20` +
    // status: pending | active | payment_method_required | paused | cancelling | completed | cancelled
    `&status=active&direction=outbound` +
    `&include=receiver_user,phases,payments` +
    `&include_meta=navigation`,
  {
    method: "GET",
    headers: {
      Authorization: `Bearer ${token}`,
      "Content-Type": "application/json"
    }
  }
);

API Reference

Network Exchanges from the API

Send and receive legally-compliant e-invoices over the PEPPOL and tax-authority networks, programmatically. A network exchange is a single transmission of an invoice to (or from) an institution, such as Romania’s ANAF. Enlivy builds the compliant UBL document, signs it, submits it, and tracks the response through its lifecycle so you always know whether a document was accepted, rejected, or still processing.

Exchanges are outbound (you submit an invoice you issued) or inbound (you pull documents addressed to you). This reference starts with the key action, pushing an invoice onto the network, then covers listing, inspecting, pulling inbound documents, and downloading the signed files. Every exchange carries a live status you can poll.

Submit an issued invoice to a network institution. The invoice is the payload; there is no request body. Enlivy generates the compliant UBL, signs it, transmits it, and returns the resulting network-exchange record with its initial status. Which institutions an invoice can go to is exposed on the invoice itself.

POST /organizations/{organizationId}/invoices/{invoiceId}/peppol/{institution}
const organizationId = "your_org_id";
const invoiceId = "your_invoice_id";
const token = "YOUR_TOKEN_HERE";

const headers = {
  Authorization: `Bearer ${token}`,
  "Content-Type": "application/json"
};

// 1. Discover eligible institutions for this invoice.
//    invoice.peppol_exchange_push_options lists the institution ids you may push to;
//    invoice.peppol_exchanges_pushed lists the ones already sent.
const invoice = await fetch(
  `https://api.enlivy.com/organizations/${organizationId}/invoices/${invoiceId}`,
  { method: "GET", headers }
).then((r) => r.json());

// 2. Push to a specific institution. The id is a string, e.g. "anaf" (Romania / ANAF).
const institution = "anaf";

const exchange = await fetch(
  `https://api.enlivy.com/organizations/${organizationId}/invoices/${invoiceId}/peppol/${institution}`,
  { method: "POST", headers } // no request body, the invoice is the document
).then((r) => r.json());

// The response is the network-exchange record. Poll its `status`:
// pending | processing | success | success_in_exchange_queue | success_pending_archive
// | change_required | rejected | rejected_at_exchange | failed | failed_credentials_expired
// A transport/connectivity failure to the institution returns HTTP 503.

API Reference

Bank Transactions from the API

Bring every movement through your accounts into one ledger, then make sense of it. Bank transactions land in Enlivy from bank sync, Stripe payouts, or manual entry, and the API lets you classify them by cost type and reconcile them against the invoices, receipts, and payslips they settle. Each transaction tracks its own state, from backlog to fully connected.

Two resources work together: cost types (your reusable classification vocabulary like “Payroll”, “Client Payment”, “Software”, each declaring what it may be linked to) and bank transactions, the movements themselves. The examples below cover both, plus listing, filtering, reconciling, and analytics.

List the cost types you classify transactions with. Each carries a localized label, whether a link to a business entity is required, and which entity types it may connect to.

GET /organizations/{organizationId}/bank-transaction-cost-types
const organizationId = "your_org_id";
const token = "YOUR_TOKEN_HERE";

fetch(
  `https://api.enlivy.com/organizations/${organizationId}/bank-transaction-cost-types?page=1&limit=50`,
  {
    method: "GET",
    headers: {
      Authorization: `Bearer ${token}`,
      "Content-Type": "application/json"
    }
  }
);

API Reference

Tax Management from the API

Enlivy models tax the way Stripe models product tax codes, not one class per country. A tax class is a semantic product category (Standard goods & services, Books, Foodstuffs, Digital services, Exempt), and you tag each product with the category it is, never a percentage by hand. Underneath each class sits a set of tax rates, one per country or selling scenario, and at invoice time Enlivy resolves the single applicable rate from the buyer's country and tax status, taking the highest-priority match.

The examples below cover both layers: the class (the category) and the rates (the country rows that resolve underneath it).

List your product-tax categories. Include tax_rates_overview for a summary of the rate set resolving under each class.

GET /organizations/{organizationId}/tax-classes
const organizationId = "your_org_id";
const token = "YOUR_TOKEN_HERE";

fetch(
  `https://api.enlivy.com/organizations/${organizationId}/tax-classes` +
    // filters: name, description, ids
    `?page=1&limit=20` +
    // include tax_rates_overview for a per-class summary of the rate set
    `&include=tax_rates_overview`,
  {
    method: "GET",
    headers: {
      Authorization: `Bearer ${token}`,
      "Content-Type": "application/json"
    }
  }
);

API Reference

Prospect Management from the API

Wire your lead capture, CRM, and sales automation straight into Enlivy. The Prospects API gives you programmatic control over your pipeline: create leads from any source, move them through your stages, and log every touchpoint as it happens.

The examples below cover the most common prospecting operations: listing and filtering prospects, creating a lead, advancing it through your pipeline, and recording prospect activities like calls, meetings, and status changes, so your timeline always stays in sync.

Pull your pipeline into any dashboard or sync job. Query prospects with pagination, filter by stage, owner, source, or date range, and full-text search by name, company, or email. Expand related records such as the current stage and the assigned team member.

GET /organizations/{organizationId}/prospects
const organizationId = "your_org_id";
const token = "YOUR_TOKEN_HERE";

fetch(
  `https://api.enlivy.com/organizations/${organizationId}/prospects?page=1&limit=20&source_type=inbound&include=organization_prospect_status,assigned_organization_user&include_meta=navigation`,
  {
    method: "GET",
    headers: {
      Authorization: `Bearer ${token}`,
      "Content-Type": "application/json"
    }
  }
);

API Reference

Contract Management from the API

Draft, send, sign, and track contracts end-to-end, without your users ever leaving your product. The Contracts API covers the whole lifecycle: assemble a contract from chapters and parties, move it through your own status pipeline, open a legally-binding signing session per signer, and pull the signed document plus its tamper-evident audit evidence back out.

Everything is organized around four resources: contracts (the document, its chapters and its parties), contract statuses (your configurable pipeline stages), signing sessions (one per party, with email / SMS verification), and the audit trail (delivery logs and signing evidence). The examples below walk the entire flow.

Query your contracts with pagination, rich filtering, and full-text search. Filter by status, sender, receiver, direction (inbound / outbound), category (core, amendment, addenda, supplement), source (internal / uploaded), locale, parent contract, or any of the date ranges (issued_at, ends_at, created_at, updated_at). Expand related records inline.

GET /organizations/{organizationId}/contracts
const organizationId = "your_org_id";
const token = "YOUR_TOKEN_HERE";

fetch(
  `https://api.enlivy.com/organizations/${organizationId}/contracts?page=1&limit=20` +
    // filters are optional and combinable
    `&direction=outbound&category=core` +
    // pass a q=... param instead of ids to run a full-text search
    `&include=contract_status,sender_user,receiver_user,contract_parties` +
    `&include_meta=navigation`,
  {
    method: "GET",
    headers: {
      Authorization: `Bearer ${token}`,
      "Content-Type": "application/json"
    }
  }
);

API Reference

Product Management from the API

Keep your catalog in sync from your own systems. The Products API gives you programmatic control over the reusable line items you sell (services, digital goods, physical products, and bonuses), each with multi-currency pricing, per-locale names, tax class, and the metadata needed for compliant e-invoicing. Products created here drop straight into invoices, proposals, and billing schedules.

The examples below cover the core operations: listing and searching products, creating one, editing it, and removing it.

Query your catalog with pagination, filtering, and full-text search. Filter by name or description, fetch specific ids, and expand the tax class inline.

GET /organizations/{organizationId}/products
const organizationId = "your_org_id";
const token = "YOUR_TOKEN_HERE";

fetch(
  `https://api.enlivy.com/organizations/${organizationId}/products` +
    // filters: name, description, ids (or q=... for full-text search)
    `?page=1&limit=20&name=Consulting` +
    // includes: organization, tax_class, tag_ids, deleted_by_user
    `&include=tax_class`,
  {
    method: "GET",
    headers: {
      Authorization: `Bearer ${token}`,
      "Content-Type": "application/json"
    }
  }
);

API Reference

Authentication Sessions from the API

Create and retrieve customer-portal authentication sessions for your users, straight from the admin API. A session grants one of your organization’s users scoped, time-boxed access to the customer application (the portal), authenticated by email, phone, or a magic link. Find the user, open a session (by id or by email), then read it back.

Retrieve the users you can open a session for. Filter by email, run a free-text search, or page through the full list to find the right person.

GET /organizations/{organizationId}/users
const organizationId = "your_org_id";
const token = "YOUR_TOKEN_HERE";

fetch(
  `https://api.enlivy.com/organizations/${organizationId}/users?page=1&limit=20` +
    // filters: email, created_at_from/to, updated_at_from/to, ids, or q=... for free-text search
    `&email=jane@acme.example`,
  {
    method: "GET",
    headers: {
      Authorization: `Bearer ${token}`,
      "Content-Type": "application/json"
    }
  }
);

Works together with