---
title: "Create CPQ Formula"
method: POST
path: "/invoice_estimate/cpq/formulas"
---

# Create CPQ Formula

`POST /invoice_estimate/cpq/formulas`

## Request

- Base URL: `https://dc-region.zuperpro.com/api`
- URL: `https://dc-region.zuperpro.com/api/invoice_estimate/cpq/formulas`
- Auth: API key in header `x-api-key`

Creates a custom CPQ formula. Every $N placeholder in the expression must have a matching entry in expression_map. Each expression_map entry's required sub-fields depend on its type: CHECKLIST/CUSTOM_FIELD need field_uid; MEASUREMENT needs measurement_token_uid + measurement_category_uid; CONSTANT needs a numeric value; DEFAULT_FIELD needs field_key + module.

## Request body

- object
  - `formula` object, required
    - `formula_name` string, required
    - `formula_key` string, required
    - `formula_category` 'AREA_MEASUREMENT' | 'ACCESSORY' | 'ROUNDING_OFF', required
    - `formula_description` string
    - `formula` object, required
      - `expression` string, required
      - `expression_map` object[], required
        - `key` string, required
        - `type` 'CHECKLIST' | 'CUSTOM_FIELD' | 'MEASUREMENT' | 'CONSTANT' | 'DEFAULT_FIELD', required
        - `module` 'JOB' | 'PRODUCT'
        - `field_uid` string
        - `field_key` string
        - `field_name` string
        - `measurement_token_uid` string
        - `measurement_category_uid` string
        - `value` number
      - `rounding_mechanism` 'ROUND_OFF' | 'NO_ROUNDING' | 'NEXT_WHOLE_NUMBER' | 'PREV_WHOLE_NUMBER' | 'NEXT_ONE_TENTH' | 'PREV_ONE_TENTH' | 'NEXT_QUARTER' | 'PREV_QUARTER' | 'NEXT_ONE_THIRD' | 'PREV_ONE_THIRD' | 'NEXT_HALF' | 'PREV_HALF'

## Response `200`

200

## Other responses

- `400`: 400

## Changes

- **2026-11-03** `3c21bc232e16`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/zuper/apis/zuper-pro-api/changes/invoice_estimate/cpq/formulas/post.md)

---

[API](https://skmtc.dev/zuper/apis/zuper-pro-api.md) - [All operations](https://skmtc.dev/zuper/apis/zuper-pro-api/llms.txt) - [OpenAPI document](https://skmtc.dev/zuper/apis/zuper-pro-api/revisions/3c21bc232e16?raw)
