---
title: "Create a product"
method: POST
path: "/{companyDomain}/products"
---

# Create a product

`POST /{companyDomain}/products`

Create a new product for your company

## Path parameters

- `companyDomain` string, required

## Request body

- object
  - `name` string — The internal name of the product you want to create
  - `visibility` integer — The type of visibility of each product; public, hidden and on-sale. Available values: 0, 1, 2, 3 (Public=0, Hidden=1, Internal=2, OffSale=3)
  - `billingCurrency` string — The currency you want to the product to be billed in. This must be an ISO3 currency code with maximum three characters. For example: GBP, USD, etc.
  - `displayName` string — The display name of the product you want to create
  - `description` string — A short description of the product
  - `isShippingAddressRequired` boolean — Do you need to collect a shipping address from your customers for this product; true or false
  - `isShippingAddressValidationRequired` boolean — Do you want to validate the shipping address using our tool; true or false
  - `isBillingAddressValidationRequired` boolean — Do you want to validate the billing address using our tool; true or false
  - `isAdditionalEmailRequired` boolean — Do you want to collect an additional email address from your customers at checkout; true or false
  - `isPhoneNumberRequired` boolean — Do you need to collect a phone number from your customers at checkout; true or false
  - `is MarketingConsentRequired` boolean — Do you need to get marketing consent from your customers at checkout; true or false
  - `alertEmail` string — Set an email to be alerted when a customer signs up for this product
  - `orderedCustomFields` object — Add any custom fields you've created to your checkout flow for this product by adding the custom fields IDs
    - `customFieldID` integer — The ID of the custom field you want to add to checkout for this product. You'll find this custom field ID in the Billsby control panel.
  - `typeOfProduct` integer — The type of product you want to create; 1 is tiered
  - `productCountryLimitation` object — Set country limitations for your product
    - `isAnyCountryAllowed` boolean — Do you want to allow customers from any country to subscribe; true or false
    - `countrySettings` object
  - `isAnyCountryAllowed` boolean — Do you want to allow any country allowed access to the product; true or false

## Response `200`

200

- object
  - `productCountryLimitation` object
    - `isAnyCountryAllowed` boolean
    - `countrySettings` object[]
      - `countryIso3` string
      - `addressPermission` integer
  - `productId` integer
  - `name` string
  - `visibility` integer
  - `billingCurrency` string
  - `billingCurrencyTemplate` string
  - `displayName` string
  - `description` string
  - `typeOfProduct` integer
  - `hasPlans` boolean
  - `isShippingAddressRequired` boolean
  - `isShippingAddressValidationRequired` boolean
  - `isBillingAddressValidationRequired` boolean
  - `isAdditionalEmailRequired` boolean
  - `isPhoneNumberRequired` boolean
  - `isMarketingConsentRequired` boolean
  - `numberOfPlans` integer
  - `alertEmail` string

---

[API](https://skmtc.net/billsby/apis/billsby-api.md) · [All operations](https://skmtc.net/billsby/apis/billsby-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/billsby/billsby-api/versions/adcb2fd4c52f/schema)
