Skip to Content
HelvetlyDocs
API referenceEngagements

Renew a one-off 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}/renew

Creates a new engagement with the same terms and the same length, starting the day after the old one ends (or on start_date). 409 not_renewable unless the engagement is a one-off with an end date. Not idempotent: a retry makes another copy.

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
start_date?|

Default: the day after the old engagement ends.

Formatdate

Response Body

Created

application/json
  1. response
data*
Example Request
curl -X POST 'https://app.helvetly.com/api/v1/engagements/string/renew' \  -H 'Content-Type: application/json' \  -d '{  "start_date": "2027-01-01"}'
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"    ]  }}