Skip to Content
HelvetlyDocs
API referenceEngagements

Cancel an engagement

Needs a token with the write:engagements scope. Authentication

Try in Playground sends a real request to app.helvetly.com with a token you paste. It stays in this browser tab only (session storage) and goes to no one else.

POST
/api/v1/engagements/{id}/cancel

Ends the engagement on a day (default: the end of the current period) and cuts its later periods. 422 validation_failed when cancelled_on is in the past or before the latest entry. Reversible with resume while the day has not passed. Safe to retry. Only owners and admins may do this (403 forbidden otherwise).

Authorization

bearerAuth
headerAuthorizationBearer <token>

A personal API token, hvt_…, with scopes such as read:* or write:invoices

Path Parameters

id*string

The engagement's id.

Request Body

application/json
  1. body
cancelled_on?|

The last day, today or later and not before the latest entry. Default: the end of the current period.

Formatdate

Response Body

OK

application/json
  1. response
data*
Example Request
curl -X POST 'https://app.helvetly.com/api/v1/engagements/string/cancel' \  -H 'Content-Type: application/json' \  -d '{  "cancelled_on": "2026-12-31"}'
Example Response
{  "data": {    "id": "string",    "number": 0,    "client": {      "id": "string",      "number": 0,      "name": "string"    },    "title": "string",    "description": "string",    "product_id": "string",    "unit": "string",    "quantity": "string",    "billing": "string",    "price_basis": "string",    "unit_price": "1234.50",    "overage_unit_price": "1234.50",    "currency": "string",    "vat_category": "string",    "vat_rate": "string",    "start_date": "2019-08-24",    "recurrence": "string",    "interval": 0,    "end_date": "2019-08-24",    "reference": "string",    "document_id": "string",    "cancelled_on": "2019-08-24",    "rollover": true,    "auto_invoice": true,    "invoice_detail": "string",    "created_at": "2019-08-24T14:15:22Z",    "updated_at": "2019-08-24T14:15:22Z",    "unit_price_net": "1234.50",    "unit_price_gross": "1234.50",    "status": "scheduled",    "current_period": {      "id": "string",      "index": 0,      "starts_on": "2019-08-24",      "ends_on": "2019-08-24",      "natural_ends_on": "2019-08-24",      "full_quantity": "string",      "quantity_manual": true,      "quantity": "string",      "unit_price": "1234.50",      "overage_unit_price": "1234.50",      "used": "string",      "invoiced_quantity": "string",      "advance_invoice": {        "id": "string",        "number": "string",        "status": "string",        "kind": "string"      },      "unearned": "string",      "carried_in": "string",      "available": "string",      "remaining": "string",      "overage": "string",      "expected": "string",      "state": "string",      "uninvoiced_quantity": "string"    },    "attention": [      "under_pace"    ]  }}