Zum Hauptinhalt springen
POST
/
catalogue
/
products
cURL
curl -X POST \
 /catalogue/products \
 --header "Content-Type: application/json" \
 --header "Authorization: Bearer <token>" \
 --data '{
    "id": "ad8f1c2c-3b1c-4b0a-8b0a-0b0b0b0b0b0b",
    "productFamilies": [
        []
    ],
    "name": "Basic",
    "description": "For small teams.",
    "internalName": "Basic (Weekly)",
    "number": "M-1234",
    "translations": [],
    "type": "",
    "measurement": {
        "id": "ad8f1c2c-3b1c-4b0a-8b0a-0b0b0b0b0b0b",
        "code": "users",
        "description": "The number of users.",
        "fairBilling": "1"
    },
    "invoiceVisibility": "",
    "createdAt": "",
    "updatedAt": "",
    "taxGroup": {
        "id": "00000000-0000-0000-0000-000000000000",
        "internalDescription": "19%"
    },
    "isArchived": "",
    "customFields": {
        "field1": "value1",
        "field2": "value2"
    }
}'
{
  "productFamilies": [
    {
      "name": "Team Packages",
      "id": "ad8b3b9e-5b0a-4e1a-8b0a-4e1a8b0a4e1a"
    }
  ],
  "translations": {},
  "type": "product",
  "measurement": {
    "unit": {
      "id": {},
      "name": "Stück",
      "translations": {}
    },
    "code": "users",
    "id": "ad8f1c2c-3b1c-4b0a-8b0a-0b0b0b0b0b0b",
    "description": "The number of users.",
    "aggregationType": "sum",
    "fairBilling": true,
    "type": "recurring"
  },
  "taxGroup": {
    "internalDescription": "19%",
    "reverseChargeType": "REVERSE_CHARGE",
    "type": "standard",
    "id": "00000000-0000-0000-0000-000000000000"
  },
  "id": "ad8f1c2c-3b1c-4b0a-8b0a-0b0b0b0b0b0b",
  "name": "Basic",
  "description": "For small teams.",
  "internalName": "Basic (Weekly)",
  "number": "M-1234",
  "invoiceVisibility": "always",
  "costCentre": {
    "name": "Cost Centre",
    "type": "KOST1",
    "id": "ad8f1c9c-4f0a-4e1a-8b1a-9c4d9c4d9c4d",
    "code": "CC",
    "createdAt": "2021-01-01T00:00:00+00:00",
    "updatedAt": "2021-01-01T00:00:00+00:00"
  },
  "createdAt": "2023-11-07T05:31:56Z",
  "updatedAt": "2023-11-07T05:31:56Z",
  "isArchived": true,
  "customFields": {
    "field1": "value1",
    "field2": "value2"
  }
}

Autorisierungen

Authorization
string
header
erforderlich

Value for the Authorization header parameter.

Body

The new Product resource

productFamilies
object[]
erforderlich

A product family groups multiple products together.

translations
object
erforderlich

The translations of the product. The locale is used as key.

type
enum<string>
erforderlich

The type of the product.

  • product: recurring billed product
  • charge: one-time billing
  • plan: plan specific product, which cannot be used as a normal product. Will be filtered out in any product lists.
Verfügbare Optionen:
product,
charge,
plan
measurement
object
erforderlich

The measurement that is used for the price plan. This could define the quantity or a metered usage.

taxGroup
object
erforderlich

The tax group that is used for the product.

name
string

The name of the product based on the current tenant language. This will be displayed on customer communication.

Beispiel:

"Basic"

description
string | null

The description of the product based on the current tenant language.

Beispiel:

"For small teams."

internalName
string | null

Internal name of the product, to differentiate between products with the same name. This will shown in web-app lists, selections and reports.

Beispiel:

"Basic (Weekly)"

number
string | null

Internal product number

Required string length: 2 - 255
Beispiel:

"M-1234"

invoiceVisibility
enum<string>

Defines when the product should be displayed in the invoice.

  • always: The product is always displayed in the invoice.
  • only_if_charged: The product is only displayed in the invoice if it is charged.
Verfügbare Optionen:
always,
only_if_charged
costCentre
object

The cost centre is used for accounting exports.

createdAt
string<date-time>
updatedAt
string<date-time>
isArchived
boolean

Defines if the product is archived and should not be used anymore.

customFields
object

Custom fields for the entity. The keys are the field names and the values are the field values. They need to be configured under "/custom-fields" in the API documentation. The input is validated against the configuration. For more details see Custom Fields Guide

Beispiel:
{ "field1": "value1", "field2": "value2" }

Antwort

Product resource created

productFamilies
object[]
erforderlich

A product family groups multiple products together.

translations
object
erforderlich

The translations of the product. The locale is used as key.

type
enum<string>
erforderlich

The type of the product.

  • product: recurring billed product
  • charge: one-time billing
  • plan: plan specific product, which cannot be used as a normal product. Will be filtered out in any product lists.
Verfügbare Optionen:
product,
charge,
plan
measurement
object
erforderlich

The measurement that is used for the price plan. This could define the quantity or a metered usage.

taxGroup
object
erforderlich

The tax group that is used for the product.

id
string

The unique identifier of the product.

Beispiel:

"ad8f1c2c-3b1c-4b0a-8b0a-0b0b0b0b0b0b"

name
string

The name of the product based on the current tenant language. This will be displayed on customer communication.

Beispiel:

"Basic"

description
string | null

The description of the product based on the current tenant language.

Beispiel:

"For small teams."

internalName
string | null

Internal name of the product, to differentiate between products with the same name. This will shown in web-app lists, selections and reports.

Beispiel:

"Basic (Weekly)"

number
string | null

Internal product number

Required string length: 2 - 255
Beispiel:

"M-1234"

invoiceVisibility
enum<string>

Defines when the product should be displayed in the invoice.

  • always: The product is always displayed in the invoice.
  • only_if_charged: The product is only displayed in the invoice if it is charged.
Verfügbare Optionen:
always,
only_if_charged
costCentre
object

The cost centre is used for accounting exports.

createdAt
string<date-time>
updatedAt
string<date-time>
isArchived
boolean

Defines if the product is archived and should not be used anymore.

customFields
object

Custom fields for the entity. The keys are the field names and the values are the field values. They need to be configured under "/custom-fields" in the API documentation. The input is validated against the configuration. For more details see Custom Fields Guide

Beispiel:
{ "field1": "value1", "field2": "value2" }