import { Creem } from "creem";
const creem = new Creem({
apiKey: process.env["CREEM_API_KEY"] ?? "",
});
async function run() {
const result = await creem.products.create({
name: "<value>",
description: "at through very dishearten knife ashamed baa beret amongst",
imageUrl: "https://picsum.photos/200/300",
price: 400,
currency: "USD",
billingType: "recurring",
defaultSuccessUrl: "https://example.com/?status=successful",
customFields: [
{
type: "checkbox",
key: "companyName",
label: "Company Name",
text: {
maxLength: 200,
minLength: 1,
},
checkbox: {
label: "I agree to the [terms and conditions](https://example.com/terms)",
},
},
],
});
console.log(result);
}
run();curl --request POST \
--url https://api.creem.io/v1/products \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "<string>",
"description": "<string>",
"price": 400,
"currency": "USD",
"billing_type": "recurring",
"image_url": "https://picsum.photos/200/300",
"billing_period": "every-month",
"tax_mode": "inclusive",
"tax_category": "saas",
"pay_what_you_want": false,
"suggested_price": 1500,
"default_success_url": "https://example.com/?status=successful",
"custom_fields": [
{
"type": "text",
"key": "companyName",
"label": "Company Name",
"optional": true,
"text": {
"max_length": 200,
"min_length": 1
},
"checkbox": {
"label": "I agree to the [terms and conditions](https://example.com/terms)"
}
}
],
"custom_field": [
{
"type": "text",
"key": "companyName",
"label": "Company Name",
"optional": true,
"text": {
"max_length": 200,
"min_length": 1
},
"checkbox": {
"label": "I agree to the [terms and conditions](https://example.com/terms)"
}
}
],
"abandoned_cart_recovery_enabled": false
}
'import requests
url = "https://api.creem.io/v1/products"
payload = {
"name": "<string>",
"description": "<string>",
"price": 400,
"currency": "USD",
"billing_type": "recurring",
"image_url": "https://picsum.photos/200/300",
"billing_period": "every-month",
"tax_mode": "inclusive",
"tax_category": "saas",
"pay_what_you_want": False,
"suggested_price": 1500,
"default_success_url": "https://example.com/?status=successful",
"custom_fields": [
{
"type": "text",
"key": "companyName",
"label": "Company Name",
"optional": True,
"text": {
"max_length": 200,
"min_length": 1
},
"checkbox": { "label": "I agree to the [terms and conditions](https://example.com/terms)" }
}
],
"custom_field": [
{
"type": "text",
"key": "companyName",
"label": "Company Name",
"optional": True,
"text": {
"max_length": 200,
"min_length": 1
},
"checkbox": { "label": "I agree to the [terms and conditions](https://example.com/terms)" }
}
],
"abandoned_cart_recovery_enabled": False
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
price: 400,
currency: 'USD',
billing_type: 'recurring',
image_url: 'https://picsum.photos/200/300',
billing_period: 'every-month',
tax_mode: 'inclusive',
tax_category: 'saas',
pay_what_you_want: false,
suggested_price: 1500,
default_success_url: 'https://example.com/?status=successful',
custom_fields: [
{
type: 'text',
key: 'companyName',
label: 'Company Name',
optional: true,
text: {max_length: 200, min_length: 1},
checkbox: {label: 'I agree to the [terms and conditions](https://example.com/terms)'}
}
],
custom_field: [
{
type: 'text',
key: 'companyName',
label: 'Company Name',
optional: true,
text: {max_length: 200, min_length: 1},
checkbox: {label: 'I agree to the [terms and conditions](https://example.com/terms)'}
}
],
abandoned_cart_recovery_enabled: false
})
};
fetch('https://api.creem.io/v1/products', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.creem.io/v1/products",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'description' => '<string>',
'price' => 400,
'currency' => 'USD',
'billing_type' => 'recurring',
'image_url' => 'https://picsum.photos/200/300',
'billing_period' => 'every-month',
'tax_mode' => 'inclusive',
'tax_category' => 'saas',
'pay_what_you_want' => false,
'suggested_price' => 1500,
'default_success_url' => 'https://example.com/?status=successful',
'custom_fields' => [
[
'type' => 'text',
'key' => 'companyName',
'label' => 'Company Name',
'optional' => true,
'text' => [
'max_length' => 200,
'min_length' => 1
],
'checkbox' => [
'label' => 'I agree to the [terms and conditions](https://example.com/terms)'
]
]
],
'custom_field' => [
[
'type' => 'text',
'key' => 'companyName',
'label' => 'Company Name',
'optional' => true,
'text' => [
'max_length' => 200,
'min_length' => 1
],
'checkbox' => [
'label' => 'I agree to the [terms and conditions](https://example.com/terms)'
]
]
],
'abandoned_cart_recovery_enabled' => false
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.creem.io/v1/products"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"price\": 400,\n \"currency\": \"USD\",\n \"billing_type\": \"recurring\",\n \"image_url\": \"https://picsum.photos/200/300\",\n \"billing_period\": \"every-month\",\n \"tax_mode\": \"inclusive\",\n \"tax_category\": \"saas\",\n \"pay_what_you_want\": false,\n \"suggested_price\": 1500,\n \"default_success_url\": \"https://example.com/?status=successful\",\n \"custom_fields\": [\n {\n \"type\": \"text\",\n \"key\": \"companyName\",\n \"label\": \"Company Name\",\n \"optional\": true,\n \"text\": {\n \"max_length\": 200,\n \"min_length\": 1\n },\n \"checkbox\": {\n \"label\": \"I agree to the [terms and conditions](https://example.com/terms)\"\n }\n }\n ],\n \"custom_field\": [\n {\n \"type\": \"text\",\n \"key\": \"companyName\",\n \"label\": \"Company Name\",\n \"optional\": true,\n \"text\": {\n \"max_length\": 200,\n \"min_length\": 1\n },\n \"checkbox\": {\n \"label\": \"I agree to the [terms and conditions](https://example.com/terms)\"\n }\n }\n ],\n \"abandoned_cart_recovery_enabled\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.creem.io/v1/products")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"price\": 400,\n \"currency\": \"USD\",\n \"billing_type\": \"recurring\",\n \"image_url\": \"https://picsum.photos/200/300\",\n \"billing_period\": \"every-month\",\n \"tax_mode\": \"inclusive\",\n \"tax_category\": \"saas\",\n \"pay_what_you_want\": false,\n \"suggested_price\": 1500,\n \"default_success_url\": \"https://example.com/?status=successful\",\n \"custom_fields\": [\n {\n \"type\": \"text\",\n \"key\": \"companyName\",\n \"label\": \"Company Name\",\n \"optional\": true,\n \"text\": {\n \"max_length\": 200,\n \"min_length\": 1\n },\n \"checkbox\": {\n \"label\": \"I agree to the [terms and conditions](https://example.com/terms)\"\n }\n }\n ],\n \"custom_field\": [\n {\n \"type\": \"text\",\n \"key\": \"companyName\",\n \"label\": \"Company Name\",\n \"optional\": true,\n \"text\": {\n \"max_length\": 200,\n \"min_length\": 1\n },\n \"checkbox\": {\n \"label\": \"I agree to the [terms and conditions](https://example.com/terms)\"\n }\n }\n ],\n \"abandoned_cart_recovery_enabled\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.creem.io/v1/products")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"price\": 400,\n \"currency\": \"USD\",\n \"billing_type\": \"recurring\",\n \"image_url\": \"https://picsum.photos/200/300\",\n \"billing_period\": \"every-month\",\n \"tax_mode\": \"inclusive\",\n \"tax_category\": \"saas\",\n \"pay_what_you_want\": false,\n \"suggested_price\": 1500,\n \"default_success_url\": \"https://example.com/?status=successful\",\n \"custom_fields\": [\n {\n \"type\": \"text\",\n \"key\": \"companyName\",\n \"label\": \"Company Name\",\n \"optional\": true,\n \"text\": {\n \"max_length\": 200,\n \"min_length\": 1\n },\n \"checkbox\": {\n \"label\": \"I agree to the [terms and conditions](https://example.com/terms)\"\n }\n }\n ],\n \"custom_field\": [\n {\n \"type\": \"text\",\n \"key\": \"companyName\",\n \"label\": \"Company Name\",\n \"optional\": true,\n \"text\": {\n \"max_length\": 200,\n \"min_length\": 1\n },\n \"checkbox\": {\n \"label\": \"I agree to the [terms and conditions](https://example.com/terms)\"\n }\n }\n ],\n \"abandoned_cart_recovery_enabled\": false\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"mode": "test",
"object": "<string>",
"name": "<string>",
"description": "This is a sample product description.",
"price": 400,
"currency": "USD",
"billing_type": "recurring",
"billing_period": "every-month",
"status": "active",
"tax_mode": "inclusive",
"tax_category": "saas",
"created_at": "2023-01-01T00:00:00Z",
"updated_at": "2023-01-01T00:00:00Z",
"image_url": "https://example.com/image.jpg",
"features": [
{
"id": "feat_abc123",
"type": "licenseKey",
"description": "Access to premium course materials."
}
],
"product_url": "https://creem.io/product/prod_123123123123",
"default_success_url": "https://example.com/?status=successful",
"custom_fields": [
{
"type": "text",
"key": "<string>",
"label": "<string>",
"optional": true,
"text": {
"max_length": 123,
"minimum_length": 123,
"value": "<string>"
},
"checkbox": {
"label": "<string>",
"value": true
}
}
]
}Creates a new product
Create a new product for one-time payments, including free products with a 0 price, or subscriptions. Configure pricing, billing cycles, and features.
import { Creem } from "creem";
const creem = new Creem({
apiKey: process.env["CREEM_API_KEY"] ?? "",
});
async function run() {
const result = await creem.products.create({
name: "<value>",
description: "at through very dishearten knife ashamed baa beret amongst",
imageUrl: "https://picsum.photos/200/300",
price: 400,
currency: "USD",
billingType: "recurring",
defaultSuccessUrl: "https://example.com/?status=successful",
customFields: [
{
type: "checkbox",
key: "companyName",
label: "Company Name",
text: {
maxLength: 200,
minLength: 1,
},
checkbox: {
label: "I agree to the [terms and conditions](https://example.com/terms)",
},
},
],
});
console.log(result);
}
run();curl --request POST \
--url https://api.creem.io/v1/products \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "<string>",
"description": "<string>",
"price": 400,
"currency": "USD",
"billing_type": "recurring",
"image_url": "https://picsum.photos/200/300",
"billing_period": "every-month",
"tax_mode": "inclusive",
"tax_category": "saas",
"pay_what_you_want": false,
"suggested_price": 1500,
"default_success_url": "https://example.com/?status=successful",
"custom_fields": [
{
"type": "text",
"key": "companyName",
"label": "Company Name",
"optional": true,
"text": {
"max_length": 200,
"min_length": 1
},
"checkbox": {
"label": "I agree to the [terms and conditions](https://example.com/terms)"
}
}
],
"custom_field": [
{
"type": "text",
"key": "companyName",
"label": "Company Name",
"optional": true,
"text": {
"max_length": 200,
"min_length": 1
},
"checkbox": {
"label": "I agree to the [terms and conditions](https://example.com/terms)"
}
}
],
"abandoned_cart_recovery_enabled": false
}
'import requests
url = "https://api.creem.io/v1/products"
payload = {
"name": "<string>",
"description": "<string>",
"price": 400,
"currency": "USD",
"billing_type": "recurring",
"image_url": "https://picsum.photos/200/300",
"billing_period": "every-month",
"tax_mode": "inclusive",
"tax_category": "saas",
"pay_what_you_want": False,
"suggested_price": 1500,
"default_success_url": "https://example.com/?status=successful",
"custom_fields": [
{
"type": "text",
"key": "companyName",
"label": "Company Name",
"optional": True,
"text": {
"max_length": 200,
"min_length": 1
},
"checkbox": { "label": "I agree to the [terms and conditions](https://example.com/terms)" }
}
],
"custom_field": [
{
"type": "text",
"key": "companyName",
"label": "Company Name",
"optional": True,
"text": {
"max_length": 200,
"min_length": 1
},
"checkbox": { "label": "I agree to the [terms and conditions](https://example.com/terms)" }
}
],
"abandoned_cart_recovery_enabled": False
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
price: 400,
currency: 'USD',
billing_type: 'recurring',
image_url: 'https://picsum.photos/200/300',
billing_period: 'every-month',
tax_mode: 'inclusive',
tax_category: 'saas',
pay_what_you_want: false,
suggested_price: 1500,
default_success_url: 'https://example.com/?status=successful',
custom_fields: [
{
type: 'text',
key: 'companyName',
label: 'Company Name',
optional: true,
text: {max_length: 200, min_length: 1},
checkbox: {label: 'I agree to the [terms and conditions](https://example.com/terms)'}
}
],
custom_field: [
{
type: 'text',
key: 'companyName',
label: 'Company Name',
optional: true,
text: {max_length: 200, min_length: 1},
checkbox: {label: 'I agree to the [terms and conditions](https://example.com/terms)'}
}
],
abandoned_cart_recovery_enabled: false
})
};
fetch('https://api.creem.io/v1/products', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.creem.io/v1/products",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'description' => '<string>',
'price' => 400,
'currency' => 'USD',
'billing_type' => 'recurring',
'image_url' => 'https://picsum.photos/200/300',
'billing_period' => 'every-month',
'tax_mode' => 'inclusive',
'tax_category' => 'saas',
'pay_what_you_want' => false,
'suggested_price' => 1500,
'default_success_url' => 'https://example.com/?status=successful',
'custom_fields' => [
[
'type' => 'text',
'key' => 'companyName',
'label' => 'Company Name',
'optional' => true,
'text' => [
'max_length' => 200,
'min_length' => 1
],
'checkbox' => [
'label' => 'I agree to the [terms and conditions](https://example.com/terms)'
]
]
],
'custom_field' => [
[
'type' => 'text',
'key' => 'companyName',
'label' => 'Company Name',
'optional' => true,
'text' => [
'max_length' => 200,
'min_length' => 1
],
'checkbox' => [
'label' => 'I agree to the [terms and conditions](https://example.com/terms)'
]
]
],
'abandoned_cart_recovery_enabled' => false
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.creem.io/v1/products"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"price\": 400,\n \"currency\": \"USD\",\n \"billing_type\": \"recurring\",\n \"image_url\": \"https://picsum.photos/200/300\",\n \"billing_period\": \"every-month\",\n \"tax_mode\": \"inclusive\",\n \"tax_category\": \"saas\",\n \"pay_what_you_want\": false,\n \"suggested_price\": 1500,\n \"default_success_url\": \"https://example.com/?status=successful\",\n \"custom_fields\": [\n {\n \"type\": \"text\",\n \"key\": \"companyName\",\n \"label\": \"Company Name\",\n \"optional\": true,\n \"text\": {\n \"max_length\": 200,\n \"min_length\": 1\n },\n \"checkbox\": {\n \"label\": \"I agree to the [terms and conditions](https://example.com/terms)\"\n }\n }\n ],\n \"custom_field\": [\n {\n \"type\": \"text\",\n \"key\": \"companyName\",\n \"label\": \"Company Name\",\n \"optional\": true,\n \"text\": {\n \"max_length\": 200,\n \"min_length\": 1\n },\n \"checkbox\": {\n \"label\": \"I agree to the [terms and conditions](https://example.com/terms)\"\n }\n }\n ],\n \"abandoned_cart_recovery_enabled\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.creem.io/v1/products")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"price\": 400,\n \"currency\": \"USD\",\n \"billing_type\": \"recurring\",\n \"image_url\": \"https://picsum.photos/200/300\",\n \"billing_period\": \"every-month\",\n \"tax_mode\": \"inclusive\",\n \"tax_category\": \"saas\",\n \"pay_what_you_want\": false,\n \"suggested_price\": 1500,\n \"default_success_url\": \"https://example.com/?status=successful\",\n \"custom_fields\": [\n {\n \"type\": \"text\",\n \"key\": \"companyName\",\n \"label\": \"Company Name\",\n \"optional\": true,\n \"text\": {\n \"max_length\": 200,\n \"min_length\": 1\n },\n \"checkbox\": {\n \"label\": \"I agree to the [terms and conditions](https://example.com/terms)\"\n }\n }\n ],\n \"custom_field\": [\n {\n \"type\": \"text\",\n \"key\": \"companyName\",\n \"label\": \"Company Name\",\n \"optional\": true,\n \"text\": {\n \"max_length\": 200,\n \"min_length\": 1\n },\n \"checkbox\": {\n \"label\": \"I agree to the [terms and conditions](https://example.com/terms)\"\n }\n }\n ],\n \"abandoned_cart_recovery_enabled\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.creem.io/v1/products")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"price\": 400,\n \"currency\": \"USD\",\n \"billing_type\": \"recurring\",\n \"image_url\": \"https://picsum.photos/200/300\",\n \"billing_period\": \"every-month\",\n \"tax_mode\": \"inclusive\",\n \"tax_category\": \"saas\",\n \"pay_what_you_want\": false,\n \"suggested_price\": 1500,\n \"default_success_url\": \"https://example.com/?status=successful\",\n \"custom_fields\": [\n {\n \"type\": \"text\",\n \"key\": \"companyName\",\n \"label\": \"Company Name\",\n \"optional\": true,\n \"text\": {\n \"max_length\": 200,\n \"min_length\": 1\n },\n \"checkbox\": {\n \"label\": \"I agree to the [terms and conditions](https://example.com/terms)\"\n }\n }\n ],\n \"custom_field\": [\n {\n \"type\": \"text\",\n \"key\": \"companyName\",\n \"label\": \"Company Name\",\n \"optional\": true,\n \"text\": {\n \"max_length\": 200,\n \"min_length\": 1\n },\n \"checkbox\": {\n \"label\": \"I agree to the [terms and conditions](https://example.com/terms)\"\n }\n }\n ],\n \"abandoned_cart_recovery_enabled\": false\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"mode": "test",
"object": "<string>",
"name": "<string>",
"description": "This is a sample product description.",
"price": 400,
"currency": "USD",
"billing_type": "recurring",
"billing_period": "every-month",
"status": "active",
"tax_mode": "inclusive",
"tax_category": "saas",
"created_at": "2023-01-01T00:00:00Z",
"updated_at": "2023-01-01T00:00:00Z",
"image_url": "https://example.com/image.jpg",
"features": [
{
"id": "feat_abc123",
"type": "licenseKey",
"description": "Access to premium course materials."
}
],
"product_url": "https://creem.io/product/prod_123123123123",
"default_success_url": "https://example.com/?status=successful",
"custom_fields": [
{
"type": "text",
"key": "<string>",
"label": "<string>",
"optional": true,
"text": {
"max_length": 123,
"minimum_length": 123,
"value": "<string>"
},
"checkbox": {
"label": "<string>",
"value": true
}
}
]
}Authorizations
API key for authentication. You can find your API key in the Creem dashboard under Settings > API Keys.
Body
Product creation payload
Name of the product
Description of the product
The price of the product in cents. Must be 0 (free product) or at least 100 (one whole unit of the currency).
400
Three-letter ISO currency code, in uppercase. Must be a supported currency.
EUR, USD "USD"
Indicates the billing method for the customer. It can either be a recurring billing cycle or a onetime payment.
recurring, onetime "recurring"
URL of the product image
"https://picsum.photos/200/300"
Billing period, required if billing_type is recurring
once, every-day, every-month, every-three-months, every-six-months, every-year "every-month"
Specifies the tax calculation mode for the transaction. If set to "inclusive," the tax is included in the price. If set to "exclusive," the tax is added on top of the price.
inclusive, exclusive "inclusive"
Categorizes the type of product or service for tax purposes. This helps determine the applicable tax rules based on the nature of the item or service.
saas, digital-goods-service, ebooks "saas"
Enable pay-what-you-want pricing: the customer chooses the amount at checkout. The price field acts as the minimum the customer must pay. Only supported for one-time payment products.
false
Suggested amount in cents, pre-filled at checkout when pay_what_you_want is enabled. Must be greater than or equal to price (the minimum). Ignored when pay_what_you_want is disabled.
1500
The URL to which the user will be redirected after successfull payment.
"https://example.com/?status=successful"
Collect additional information from your customer using custom fields during checkout. Up to 3 fields are supported.
Show child attributes
Show child attributes
DEPRECATED: Use custom_fields instead. Collect additional information from your customer using custom fields during checkout. Up to 3 fields are supported.
Show child attributes
Show child attributes
Enable abandoned cart recovery for this product
Response
Successfully created a product
Unique identifier for the object.
String representing the environment.
test, prod, sandbox String representing the object's type. Objects of the same type share the same value.
The name of the product
A brief description of the product
"This is a sample product description."
The price of the product in cents. 1000 = $10.00
400
Three-letter ISO currency code, in uppercase. Must be a supported currency.
"USD"
Indicates the billing method for the customer. It can either be a recurring billing cycle or a onetime payment.
recurring, onetime "recurring"
Billing period
every-month, every-three-months, every-six-months, every-year, every-day, once "every-month"
Status of the product
active, archived Specifies the tax calculation mode for the transaction. If set to "inclusive," the tax is included in the price. If set to "exclusive," the tax is added on top of the price.
inclusive, exclusive "inclusive"
Categorizes the type of product or service for tax purposes. This helps determine the applicable tax rules based on the nature of the item or service.
saas, digital-goods-service, ebooks "saas"
Creation date of the product
"2023-01-01T00:00:00Z"
Last updated date of the product
"2023-01-01T00:00:00Z"
URL of the product image. Only png as jpg are supported
"https://example.com/image.jpg"
Features of the product.
Show child attributes
Show child attributes
The product page you can redirect your customers to for express checkout.
"https://creem.io/product/prod_123123123123"
The URL to which the user will be redirected after successfull payment.
"https://example.com/?status=successful"
Custom fields configured for the product. Collect additional information from your customer during checkout.
Show child attributes
Show child attributes