Products

Products describe what you sell. Attach one or more Prices to a product to bill customers at different cadences.

Use cases: Model plans, add-ons, or one-time purchases. Products power the Checkout and Billing Portal catalogs.
POST/v1/products

Create a product. New products are active by default.

Body Parameters

NameTypeDescription
name
stringrequiredProduct name, shown to the customer.
description
stringLong-form description, shown on hosted checkout.
image_url
stringURL for a product image. Use /v1/products/upload_image to host one on Ching.
features
arrayBullet points rendered on the hosted checkout. Each element is { title, subtitle? }.
metadata
objectSet of key-value pairs you can attach to the object for your own use. Returned as-is on retrieval.

Request

curl -X POST "https://api.ching.co.il/v1/products" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "example_name",
  "description": "example_description",
  "image_url": "example_image_url",
  "features": [],
  "metadata": {}
}'

Response

Response
{
  "success": true,
  "data": {
    "id": "prod_Lkt0TxOhGNMY",
    "object": "product",
    "name": "Pro Plan",
    "description": "Full access to every feature, billed monthly.",
    "image_url": null,
    "features": [
      {
        "title": "Unlimited customers",
        "subtitle": null
      },
      {
        "title": "Priority support",
        "subtitle": "Under 4h response time"
      }
    ],
    "active": true,
    "metadata": {},
    "livemode": false,
    "created": "2026-04-10T08:00:00.000Z"
  }
}
GET/v1/products

List the 100 most recent products, newest first.

Request

curl -X GET "https://api.ching.co.il/v1/products" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"

Response

Response
{
  "success": true,
  "data": [
    {
      "id": "prod_Lkt0TxOhGNMY",
      "object": "product",
      "name": "Pro Plan",
      "description": "Full access to every feature, billed monthly.",
      "image_url": null,
      "features": [
        {
          "title": "Unlimited customers",
          "subtitle": null
        },
        {
          "title": "Priority support",
          "subtitle": "Under 4h response time"
        }
      ],
      "active": true,
      "metadata": {},
      "livemode": false,
      "created": "2026-04-10T08:00:00.000Z"
    }
  ]
}
GET/v1/products/:id

Retrieve a product by its id.

Path Parameters

NameTypeDescription
id
stringrequiredThe product id.

Request

curl -X GET "https://api.ching.co.il/v1/products/:id" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"

Response

Response
{
  "success": true,
  "data": {
    "id": "prod_Lkt0TxOhGNMY",
    "object": "product",
    "name": "Pro Plan",
    "description": "Full access to every feature, billed monthly.",
    "image_url": null,
    "features": [
      {
        "title": "Unlimited customers",
        "subtitle": null
      },
      {
        "title": "Priority support",
        "subtitle": "Under 4h response time"
      }
    ],
    "active": true,
    "metadata": {},
    "livemode": false,
    "created": "2026-04-10T08:00:00.000Z"
  }
}
POST/v1/products/:id

Update a product. Pass only the fields you want to change. Send null to clear description, image_url, or features.

Path Parameters

NameTypeDescription
id
stringrequiredThe product id.

Body Parameters

NameTypeDescription
name
stringNew name.
description
stringNew description, or null to clear.
image_url
stringNew image URL, or null to clear.
features
arrayNew feature list, or null to clear.
active
booleanSet to false to retire the product without deleting historical data.
metadata
objectSet of key-value pairs you can attach to the object for your own use. Returned as-is on retrieval.

Request

curl -X POST "https://api.ching.co.il/v1/products/:id" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "example_name",
  "description": "example_description",
  "image_url": "example_image_url",
  "features": [],
  "active": true,
  "metadata": {}
}'

Response

Response
{
  "success": true,
  "data": {
    "id": "prod_Lkt0TxOhGNMY",
    "object": "product",
    "name": "Pro Plan",
    "description": "Full access to every feature, billed monthly.",
    "image_url": null,
    "features": [
      {
        "title": "Unlimited customers",
        "subtitle": null
      },
      {
        "title": "Priority support",
        "subtitle": "Under 4h response time"
      }
    ],
    "active": true,
    "metadata": {},
    "livemode": false,
    "created": "2026-04-10T08:00:00.000Z"
  }
}
POST/v1/products/upload_image

Upload a product image to Ching-hosted storage and receive a URL you can plug into image_url.

Body Parameters

NameTypeDescription
content
stringrequiredBase64-encoded image payload (no data: prefix). Decoded size must be under ~2 MB.
content_type
stringOne of "image/png" (default), "image/jpeg", "image/webp", "image/gif".
filename
stringReadable filename, without extension. Alphanumeric, dash, or underscore; max 48 characters.

Request

curl -X POST "https://api.ching.co.il/v1/products/upload_image" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "content": "example_content",
  "content_type": "example_content_type",
  "filename": "example_filename"
}'

Response

Response
{
  "success": true,
  "data": {
    "url": "https://storage.googleapis.com/ching-assets/ching/products/1/1713566712345-pro-plan.png"
  }
}