---
title: "Create bundle"
method: POST
path: "/bundles"
tags: ["Bundles"]
---

# Create bundle

`POST /bundles`

Creates a new product bundle that can be linked to orders.

## Request body

- object
  - `name` string, required — Bundle name visible on the checkout page.
  - `description` string — Longer description of the product.
  - `value` number, float — Price of the product.
  - `is_active` boolean — Whether the product link is available (`true`) or unavailable (`false`).
  - `is_shippable` boolean — Whether the product can be shipped. If `true`, the checkout will ask for shipping details.
  - `value_shipping` number, float — Shipping cost. Required if `is_shippable` is `true`.
  - `tag` string — Optional short tag for the product.
  - `metadata` object — Array to save any other data needed.
  - `images` string[] — Array of product image URLs.
  - `expiration` string, date-time — Expiration date for the product link.
  - `expiration_unit` number — Expiration unit if stock is limited.
  - `expiration_amount` number — Expiration amount for reduced/augmented prices.
  - `buyer_confirmed_url` string, uri — URL where the buyer is redirected after payment is completed.
  - `buyer_denied_url` string, uri — URL where the buyer is redirected if payment fails.
  - `seller_confirmed_url` string, uri — URL where the seller is redirected after the payout is completed.
  - `seller_denied_url` string, uri — URL where the seller is redirected if the payout fails.

## Response `200`

Bundle created

- Bundle
  - `id` integer
  - `self` string
  - `name` string
  - `description` string, nullable
  - `value` number
  - `value_shipping` number, nullable
  - `currency` string
  - `amount` string, nullable — Formatted price with currency symbol.
  - `amount_shipping` string, nullable
  - `buyer_link` string, uri, nullable
  - `images` string[], nullable
  - `expiration` string, date-time, nullable
  - `expiration_unit` number, nullable
  - `expiration_amount` number, nullable
  - `is_expired` boolean
  - `is_active` boolean
  - `is_shippable` boolean
  - `tag` string, nullable
  - `visits` integer, nullable
  - `metadata` object, nullable
  - `created_by` integer, nullable
  - `created_at` string, date-time, nullable
  - `updated_at` string, date-time, nullable
  - `qr_link` string, uri, nullable
  - `connections` Connections — Hypermedia links to related resources.

## Other responses

- `422` — Validation error

## Changes

- **2026-03-11** `ff825f6602c8` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/truust-io/apis/truust-api/changes/bundles/post.md)

---

[API](https://skmtc.dev/truust-io/apis/truust-api.md) · [All operations](https://skmtc.dev/truust-io/apis/truust-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/truust-io/truust-api/revisions/cc81e28726b9/schema)
