REST API
v1
44 Events
22 Endpoints

API Documentation

Integrate dVersum into your workflows with our REST API and webhooks.

Base URL
https://api.dversum.com/api/v1

Overview

The dVersum API allows you to automate your accounting and project management workflows. You can both receive data (outgoing webhooks) and send data (incoming webhooks).

For step-by-step guides on setting up webhooks with n8n, Zapier and other tools, visit our Help Center.

Outgoing Webhooks

Receive notifications when events occur in dVersum - perfect for Zapier, n8n or custom systems.

Incoming Webhooks

Create tasks, clients and more directly from your other tools.

Authentication

All API requests must be authenticated with an API key. You receive an API key when you create an incoming webhook.

Create API Key

  1. 1

    Go to SettingsWebhooks

  2. 2

    Click Incoming Webhooks

  3. 3

    Create a new webhook and select the required permissions

  4. 4

    Copy the displayed API key

    The key is only shown once!

Authorization Header
Authorization: Bearer ik_live_your_api_key_here
cURL Example
curl -X POST https://api.dversum.com/api/v1/webhooks/incoming/tasks \
  -H "Authorization: Bearer ik_live_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{"project_id": "proj_123", "title": "New Task"}'

Outgoing Webhooks

Outgoing webhooks automatically send HTTP requests to your URL when certain events occur in dVersum.

Available Events

44 Events
Invoices
invoice.createdNew invoice created
invoice.updatedInvoice updated
invoice.sentInvoice sent
invoice.paidInvoice paid
invoice.partially_paidPartial payment received
invoice.overdueInvoice overdue
invoice.deletedInvoice deleted
Quotes
quote.createdNew quote created
quote.updatedQuote updated
quote.sentQuote sent
quote.signedQuote signed
quote.rejectedQuote rejected
quote.expiredQuote expired
quote.convertedConverted to invoice
quote.deletedQuote deleted
Clients
client.createdNew client created
client.updatedClient updated
client.deletedClient deleted
Reminders
reminder.sentPayment reminder sent
Projects
project.createdNew project created
project.updatedProject updated
project.archivedProject archived
project.deletedProject deleted
Tasks
task.createdNew task created
task.updatedTask updated
task.completedTask completed
task.assignedTask assigned
task.movedTask moved to different column
task.deletedTask deleted
subtask.createdSubtask created
subtask.completedSubtask completed
subtask.deletedSubtask deleted
comment.createdComment created
Time Tracking
time_entry.createdTime entry created
time_entry.startedTimer started
time_entry.stoppedTimer stopped
time_entry.updatedTime entry updated
time_entry.deletedTime entry deleted
Pages
page.createdNew page created
page.updatedPage updated
page.deletedPage deleted
Absences
absence.createdAbsence created
absence.updatedAbsence updated
absence.deletedAbsence deleted
Example Payload
{
  "event": "invoice.created",
  "timestamp": "2024-01-15T10:30:00Z",
  "data": {
    "id": "inv_abc123",
    "invoice_number": "RE-2024-0001",
    "client_id": "cli_xyz789",
    "total": 1190.00,
    "currency": "EUR",
    "status": "draft"
  }
}

Signature Verification

Each webhook includes a signature header for verification:

X-Webhook-Signature: sha256=abc123...

Incoming Webhooks

Incoming webhooks allow external systems to send data to dVersum and perform actions.

Available Permissions

tasks:readtasks:createtasks:updatetasks:deleteprojects:readprojects:createprojects:updateprojects:deleteclients:readclients:createclients:updateclients:deletetime_entries:readtime_entries:createtime_entries:updatetime_entries:deleteinvoices:readinvoices:createinvoices:updatequotes:readquotes:createquotes:update

You can optionally configure an IP whitelist to restrict access to specific IP addresses.

API Endpoints

Complete reference of all available API endpoints for incoming webhooks.

Error Handling

The API uses standard HTTP status codes. In case of an error, the response contains additional information.

CodeNameDescription
400Bad RequestInvalid request or missing required fields
401UnauthorizedMissing or invalid API key
403ForbiddenNo permission for this action
404Not FoundResource not found
422Unprocessable EntityValidation error
429Too Many RequestsRate limit exceeded
500Internal Server ErrorServer error
Error Response Example
{
  "error": {
    "code": "validation_error",
    "message": "The project_id field is required",
    "field": "project_id"
  }
}

Rate Limits

To ensure API stability, the following limits apply:

TypeLimit
Outgoing Webhooks1,000/hour
Incoming Webhooks100/minute
Total API calls10,000/day

Rate Limit Headers

Each response includes headers with information about the current limit status:

X-RateLimit-Limit:Maximum requests
X-RateLimit-Remaining:Remaining requests
X-RateLimit-Reset:Reset time (Unix timestamp)

When exceeded

You will receive status code 429 (Too Many Requests). Wait until the limit resets.

Ready to integrate?

Create your first API key now and connect dVersum with your tools.