APICharge preset

Get charge presets

GET
/public/v1/charge-presets

List charge presets for the authenticated company. A charge preset is a reusable, company-scoped template for a charge or discount line on a sales order, purchase, or invoice. Applying a preset copies its name, type, and amount onto the order's charge line; the line then keeps those values on its own, so editing or deleting the preset never changes charges already applied — only future applications. A charge applied from a preset references it via the charge's charge_preset field.

Results are scoped to your company and ordered oldest-first by creation time. Deleted presets are excluded. The response is paginated — follow the next_page URL to page through the full set.

Required permission: any of settings_permissions_charge_presets, or create/edit permission for orders, purchases, or invoices.

Authorization

Bearer
headerAuthorizationBearer <token>

API token generated in Distru (Settings → Distru API). Send it on every request as Authorization: Bearer YOUR_API_TOKEN.

Query Parameters

ids[]?array<string>

Restrict the result to specific charge presets by ID (the same ID returned as each preset's id). Repeat the bracketed key once per ID. Unknown IDs simply match nothing; an empty list is treated as no filter. At most 200 IDs may be given. A malformed ID is rejected with a 400.

inserted_datetime?string

Filter to charge presets by their creation datetime, given as a comma-separated start,end pair of ISO8601 datetimes (inclusive). Either bound may be omitted for an open-ended range: 2022-07-10T00:00:00Z, matches on or after that instant, ,2022-07-10T00:00:00Z matches on or before it.

updated_datetime?string

Filter to charge presets by their last-updated datetime, given as a comma-separated start,end pair of ISO8601 datetimes (inclusive). Either bound may be omitted for an open-ended range.

page?string

Page selector. Page size is fixed by the server; paginate by following the next_page URL in each response rather than building page selectors yourself — it is null on the last page. next_page uses page[after]=<cursor>, an opaque token marking where the next page resumes; pass it back exactly as given, and only to the endpoint that issued it. This is seek-based, so every page stays fast no matter how deep you page.

Response Body

A list of charge presets

*/*
  1. response

A collection of charge presets

data?array<>

Charge Presets

next_page?string

URL for the next page of results; null when there is no next page

Example Request
curl -X GET 'https://app.distru.com/public/v1/charge-presets'
Example Response
{  "data": [    {      "allow_inline_edits": false,      "auto_apply_tags_on_purchase_orders": true,      "auto_apply_tags_on_sales_orders": true,      "id": "253c05ef-d856-4bed-a814-fa982df46fbd",      "inserted_datetime": "2025-01-01T00:00:00.000000Z",      "name": "CP1",      "percent": null,      "price": "12.34",      "tags": [],      "type": "CHARGE",      "unit_type": "PRICE",      "updated_datetime": "2026-09-02T11:32:30.370610Z"    },    {      "allow_inline_edits": false,      "auto_apply_tags_on_purchase_orders": true,      "auto_apply_tags_on_sales_orders": true,      "id": "00e88469-32cf-4cf6-ad73-387308888849",      "inserted_datetime": "2025-01-02T00:00:00.000000Z",      "name": "CP2",      "percent": null,      "price": "12.34",      "tags": [],      "type": "CHARGE",      "unit_type": "PRICE",      "updated_datetime": "2026-09-02T11:32:30.373223Z"    },    {      "allow_inline_edits": false,      "auto_apply_tags_on_purchase_orders": true,      "auto_apply_tags_on_sales_orders": true,      "id": "38e974cb-2514-4dd8-9490-23e11c223eba",      "inserted_datetime": "2025-01-03T00:00:00.000000Z",      "name": "CP3",      "percent": null,      "price": "12.34",      "tags": [],      "type": "CHARGE",      "unit_type": "PRICE",      "updated_datetime": "2026-09-02T11:32:30.375152Z"    }  ],  "next_page": "https://www.example.com/public/v1/charge-presets?page[after]=ZHwyMDI1LTAxLTAzVDAwOjAwOjAwLjAwMDAwMFp8dXwzOGU5NzRjYi0yNTE0LTRkZDgtOTQ5MC0yM2UxMWMyMjNlYmE"}