Skip to main content
POST
/
v1
/
contract-pricing
/
products
/
create
Create a product
curl --request POST \
  --url https://api.metronome.com/v1/contract-pricing/products/create \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "My Product",
  "type": "USAGE",
  "billable_metric_id": "13117714-3f05-48e5-a6e9-a66093f13b4d"
}'
{
  "data": {
    "id": "d7abd0cd-4ae9-4db7-8676-e986a4ebd8dc"
  }
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json

Create a new product

name
string
required

displayed on invoices

type
enum<string>
required
Available options:
FIXED,
fixed,
USAGE,
usage,
COMPOSITE,
composite,
SUBSCRIPTION,
subscription
billable_metric_id
string<uuid>

Required for USAGE products

composite_product_ids
string<uuid>[]

Required for COMPOSITE products

composite_tags
string[]

Required for COMPOSITE products

exclude_free_usage
boolean

Beta feature only available for composite products. If true, products with $0 will not be included when computing composite usage. Defaults to false

tags
string[]
pricing_group_key
string[]

For USAGE products only. If set, pricing for this product will be determined for each pricing_group_key value, as opposed to the product as a whole. The superset of values in the pricing group key and presentation group key must be set as one compound group key on the billable metric.

presentation_group_key
string[]

For USAGE products only. Groups usage line items on invoices. The superset of values in the pricing group key and presentation group key must be set as one compound group key on the billable metric.

quantity_conversion
object | null

Optional. Only valid for USAGE products. If provided, the quantity will be converted using the provided conversion factor and operation. For example, if the operation is "multiply" and the conversion factor is 100, then the quantity will be multiplied by 100. This can be used in cases where data is sent in one unit and priced in another. For example, data could be sent in MB and priced in GB. In this case, the conversion factor would be 1024 and the operation would be "divide".

quantity_rounding
object | null

Optional. Only valid for USAGE products. If provided, the quantity will be rounded using the provided rounding method and decimal places. For example, if the method is "round up" and the decimal places is 0, then the quantity will be rounded up to the nearest integer.

custom_fields
object

Custom fields to be added eg. { "key1": "value1", "key2": "value2" }

Response

Success

data
object
required