Skip to main content

Products

Use this reference for exact request attributes, response envelopes, object shape, and examples. For catalog modeling, product-price relationships, media, lifecycle behavior, and selling patterns, start with Manage your product catalog.

Product and price IDs from another application are treated as unavailable. Use the response error code rather than the HTTP status alone when choosing a recovery path.

Operations

The product object

A product object contains everything needed to list, sell, and fulfill an item: core identification fields (name, description, reference), pricing information, prices attached to the product, categorization for reporting and filtering, media assets for customer-facing displays, physical dimensions for shipping calculations, and extensible custom data for application-specific needs. Products live in your catalog and can be referenced in order line items.

Properties

  • Name
    about
    Type
    string
    Description

    Full product description with marketing copy, features, specifications, and any details customers need before purchase. Can include multiple paragraphs. Shown on product pages and detailed order views.

  • Name
    active
    Type
    boolean
    Description

    Whether the product is currently published. This is catalog state, not a guarantee that every purchase path will accept or reject the product.

  • attributesobjectOrdered name/value facts about this product. The list does not create selectable variants.Click or tap to expand
    • Name
      name
      Type
      string
      Description
      Attribute name (e.g., "Size", "Color", "Material"). Between 1-100 characters.
    • Name
      value
      Type
      string
      Description
      Attribute value (e.g., "Medium", "#FF0000", "Cotton"). Between 1-500 characters.
  • Name
    archived_at
    Type
    timestamp
    Description

    When this product was archived. Omitted for unarchived products. There is no public unarchive endpoint; use Lookup a product when you need the canonical state of an archived record.

  • Name
    category
    Type
    string
    Description

    Product category for grouping, filtering, and reporting. Categories are application-specific and reflect your business structure. Examples: clothing, software, consulting, electronics.

  • Name
    created_at
    Type
    timestamp
    Description

    When this product was first created. Set automatically and never changes. Use for audit trails and chronological sorting.

  • custom_dataobjectClick or tap to expand

    String key-value metadata. Keys can contain up to 256 characters, and the serialized object can contain up to 25 KB.

  • Name
    description
    Type
    string
    Description

    Short description or tagline for the product. Appears in condensed views like order line items. Keep under 100 characters for best display. Max 200 characters.

  • dimensionsobjectStored dimension payload. The object shape depends on whether the product uses physical, digital, or custom sizing.Click or tap to expand
    • Name
      custom
      Type
      object
      View custom detailsClick or tap to expand
      Custom sizing payload with optional details, size, and size_unit.
    • Name
      digital
      Type
      object
      View digital detailsClick or tap to expand
      Digital sizing payload with optional bytes, size, and size_unit.
    • Name
      physical
      Type
      object
      View physical detailsClick or tap to expand
      Physical sizing payload with optional height, length, volume, volume_unit, weight, weight_unit, and width.
  • Name
    id
    Type
    string
    Description

    Unique identifier for this product. Generated automatically during creation. Used for lookups, order line items, and inventory tracking.

  • mediaobjectProduct media assets displayed to customers during browsing and checkout. Values can be Inttegro file references or plain remote URLs.Click or tap to expand
    • Name
      demo_video
      Type
      string
      Description
      Demo video reference or URL.
    • Name
      downloads
      Type
      array
      Description
      Array of downloadable asset references or URLs.
    • Name
      hero_image
      Type
      string
      Description
      Primary image reference or URL.
    • Name
      infographic
      Type
      string
      Description
      Infographic reference or URL.
    • Name
      promo_video
      Type
      string
      Description
      Promotional video reference or URL.
    • Name
      thumbnail
      Type
      string
      Description
      Thumbnail reference or URL.
    • Name
      web_page_url
      Type
      string
      Description
      Canonical product landing page URL.
  • Name
    name
    Type
    string
    Description

    Customer-facing product title shown in order summaries, invoices, and receipts. Keep concise and descriptive. Between 1-100 characters. Examples: Premium Cotton T-Shirt, Annual Subscription, Video Editing Service.

  • pricesobjectNon-archived prices attached to this product. Use active to tell whether each one is currently usable in new flows.Click or tap to expand
    • Name
      active
      Type
      boolean
      Description
      Whether the price is active and can be used in new flows.
    • Name
      id
      Type
      string
      Description
      Unique price identifier with the pr_ prefix.
    • Name
      label
      Type
      string|null
      Description
      Optional short label such as retail, wholesale, or subscriber.
    • Name
      nominal
      Type
      object
      View nominal detailsClick or tap to expand
      Price amount object containing lowercase currency and smallest-unit value.
  • Name
    reference
    Type
    string
    Description

    Optional external reference or SKU from your internal systems. Map products to inventory management, ERP, or catalog system. Examples: SKU-12345, PROD-SHIRT-BLUE-M, SERVICE-CONSULTING-HR.

  • Name
    published_at
    Type
    timestamp
    Description

    When the product was published. Omitted while the product is unpublished.

  • shipmentobjectFulfillment method for the product when one is configured.Click or tap to expand
    • Name
      type
      Type
      string
      Description
      One of delivery, download, render, or stream for create and update requests.
  • Name
    tax_code
    Type
    string
    Description

    Tax classification code for calculating sales tax, VAT, or regional taxes.

  • Name
    type
    Type
    string
    Description

    Permanent product classification: physical, digital, service, voucher, custom, or cause. Shipment and dimensions have their own request validation; the API does not infer them from this field.

  • Name
    unit_dim
    Type
    string
    Description

    Measurement unit stored with the product when quantities or dimensions need units. Examples: kg, lbs, liters, meters, sq_ft.

  • Name
    updated_at
    Type
    timestamp
    Description

    Last time this product was modified. Omitted if it has not been updated since creation.

Product media fields can store either Inttegro file references or plain remote URLs. Prefer File API IDs when you want ownership and file-purpose validation. Keep web_page_url for the product's canonical landing page only; it is not validated as a file reference.

POST/products/create

Create a product

Create a product record with a required name and type. Product creation does not accept inline price data: create the product first, then use Add a price to a product or Create a price.

New products are unpublished unless publish is true. type is permanent after creation. The API accepts one dimensions branch (custom, digital, or physical) and one shipment type (delivery, download, render, or stream); negative dimension values are rejected and zero-valued dimensions are omitted from storage.

Available through MCP

AI clients can use create_product for this operation. Confirmed MCP actions still require explicit form confirmation before Inttegro changes state.

Request attributes

  • Name
    about
    Type
    string
    Description

    Full product description with features and specifications. Max 5000 characters.

  • attributesobjectOrdered name/value facts about this product. These do not create selectable variants.Click or tap to expand
    • Name
      name
      Type
      string
      Description
      Attribute name (1-100 characters).
    • Name
      value
      Type
      string
      Description
      Attribute value (1-500 characters).
  • Name
    category
    Type
    string
    Description

    Product category for grouping and filtering. Max 100 characters.

  • custom_dataobjectClick or tap to expand

    Arbitrary string key-value pairs for application-specific needs. Attach internal catalog IDs, supplier references, merchandising metadata, or any data your system requires. Maximum size when serialized: 25 KB. See the Custom Data guide for best practices.

  • Name
    description
    Type
    string
    Description

    Short product tagline. Max 200 characters.

  • dimensionsobjectOptional dimensions payload. Provide only one of custom, digital, or physical; numeric values cannot be negative.Click or tap to expand
    • Name
      custom
      Type
      object
      View custom detailsClick or tap to expand
      Custom sizing payload with optional details, size, and size_unit.
    • Name
      digital
      Type
      object
      View digital detailsClick or tap to expand
      Digital sizing payload with optional bytes, size, and size_unit.
    • Name
      physical
      Type
      object
      View physical detailsClick or tap to expand
      Physical sizing payload with optional height, length, volume, volume_unit, weight, weight_unit, and width.
  • mediaobjectMedia assets. Values can be Inttegro file references or plain remote URLs.Click or tap to expand
    • Name
      demo_video
      Type
      string
      Description
      Demo video reference or URL.
    • Name
      downloads
      Type
      array
      Description
      Array of downloadable asset references or URLs.
    • Name
      hero_image
      Type
      string
      Description
      Primary image reference or URL.
    • Name
      infographic
      Type
      string
      Description
      Infographic reference or URL.
    • Name
      promo_video
      Type
      string
      Description
      Promotional video reference or URL.
    • Name
      thumbnail
      Type
      string
      Description
      Thumbnail image reference or URL.
    • Name
      web_page_url
      Type
      string
      Description
      Product landing page URL.
  • Name
    name
    Type
    string
    Required
    required
    Description

    Product name shown to customers. Between 1-100 characters.

  • Name
    publish
    Type
    boolean
    Description

    Publish the product as part of creation. Defaults to false when omitted.

  • Name
    reference
    Type
    string
    Description

    External reference or SKU from your systems. Max 100 characters.

  • shipmentobjectOptional fulfillment method. The current request shape contains only type.Click or tap to expand
    • Name
      type
      Type
      string
      Description
      One of delivery, download, render, or stream.
  • Name
    tax_code
    Type
    string
    Description

    Tax classification code. Max 50 characters.

  • Name
    type
    Type
    string
    Required
    required
    Description

    Product type: physical, digital, service, voucher, custom, or cause.

  • Name
    unit_dimension
    Type
    string
    Description

    Measurement unit for quantities. Max 20 characters. Examples: kg, lbs, liters.

Request

POST/products/create
curl https://api.inttegro.com/products/create \
-H "Authorization: Bearer $INTTEGRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Premium Cotton T-Shirt",
"type": "physical",
"description": "Comfortable everyday wear",
"about": "Our premium cotton t-shirt is made from 100% organic cotton...",
"category": "clothing",
"attributes": [
{ "name": "Size", "value": "Medium" },
{ "name": "Color", "value": "Blue" }
],
"media": {
"hero_image": "file_abc123",
"gallery": ["file_def456", "file_ghi789"]
},
"custom_data": {
"season": "summer",
"material": "organic_cotton"
}
}'

Response

SDK versionv8.2.0
ProductResponse {
product: {},
}
POST/products/lookup

Lookup a product

Retrieve a product by ID, including its catalog fields and non-archived attached prices. Use lookup when you need the current product record before selecting a price or replacing list-shaped fields such as attributes and media.

Archived products remain available through this endpoint for historical and administrative reads; inspect archived_at rather than treating a successful lookup as proof that the product is currently offered.

Available through MCP

AI clients can use get_product for this operation. MCP read tools return minimized business data and do not change Inttegro state.

Request attributes

  • Name
    product_id
    Type
    string
    Required
    required
    Description

    Unique product identifier returned when you created the product.

Request

POST/products/lookup
curl https://api.inttegro.com/products/lookup \
-H "Authorization: Bearer $INTTEGRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"product_id": "prod_abc123xyz789"
}'

Response

SDK versionv8.2.0
ProductResponse {
product: {},
}
POST/products/add_price

Add a price to a product

Create an active price attached to an existing, unarchived product in your catalog. The operation returns the created price; the product object has no default-price field or default-price mutation.

The response's product_id currently uses the product ID value without the prod_ type prefix; both forms are accepted when you send a product ID back to the API.

Available through MCP

AI clients can use create_product_price for this operation. Confirmed MCP actions still require explicit form confirmation before Inttegro changes state.

Request attributes

  • amountobjectrequiredThe amount for the new price.Click or tap to expand
    • Name
      currency
      Type
      string
      Description
      Lowercase currency code. Supported values: ghs, usd, gbp, eur, cny.
    • Name
      value
      Type
      integer
      Description
      Amount in the smallest currency unit. Must be greater than 0.
  • Name
    about
    Type
    string
    Description

    Optional internal description for the new price. Maximum length: 500 characters.

  • Name
    label
    Type
    string
    Description

    Optional short label for the new price, such as retail, wholesale, or subscriber. Maximum length: 100 characters.

  • Name
    product_id
    Type
    string
    Required
    required
    Description

    Unique identifier for a product in your catalog.

Request

POST/products/add_price
curl https://api.inttegro.com/products/add_price \
-H "Authorization: Bearer $INTTEGRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"product_id": "prod_abc123xyz789",
"label": "Wholesale",
"about": "Preferred rate for repeat buyers",
"amount": {
"currency": "ghs",
"value": 85000
}
}'

Response

SDK versionv8.2.0
PriceResponse {
price: {},
}
POST/products/update

Update a product

Modify an existing product's details by providing only the fields you want to change. Any field you omit remains unchanged. Update or create prices through the Prices API; this endpoint rejects inline price data.

Only product_id is required. A request with no changed fields succeeds without advancing updated_at. type may be sent only when it matches the existing type. name, about, category, and tax_code cannot be cleared once populated; description can be replaced with an empty string.

For media changes, send the full media object you want stored. The legacy images array is still accepted and maps to media.gallery; do not send images and media together. The update response is a reduced product projection and omits fields such as active, archived_at, attributes, media, and shipment. Its id currently omits the prod_ type prefix. Call Lookup a product when you need the canonical complete representation.

Archived products are currently accepted by this endpoint. Treat archival as catalog state and enforce any stricter selling policy in the flow that selects products for checkout.

Request attributes

  • Name
    about
    Type
    string
    Description

    Full product description. Cannot be cleared once set—only updated to a new non-empty value.

  • attributesobjectProduct attributes. Replaces the existing attribute list when provided.Click or tap to expand
    • Name
      name
      Type
      string
      Description
      Attribute name (1-100 characters).
    • Name
      value
      Type
      string
      Description
      Attribute value (1-500 characters).
  • Name
    category
    Type
    string
    Description

    Product category. Cannot be cleared once set—only changed to a different category.

  • custom_dataobjectClick or tap to expand

    Application-specific metadata. Replaces the entire custom_data object when provided—does not merge with existing values. Retrieve the product first if you need to preserve existing keys. Maximum size: 25 KB when serialized.

  • Name
    description
    Type
    string
    Description

    Short product tagline. Can be updated or cleared.

  • dimensionsobjectOptional dimensions payload. Replaces the stored dimensions when provided. Send only one of custom, digital, or physical.Click or tap to expand
    • Name
      custom
      Type
      object
      View custom detailsClick or tap to expand
      Custom sizing payload with optional details, size, and size_unit.
    • Name
      digital
      Type
      object
      View digital detailsClick or tap to expand
      Digital sizing payload with optional bytes, size, and size_unit.
    • Name
      physical
      Type
      object
      View physical detailsClick or tap to expand
      Physical sizing payload with optional height, length, volume, volume_unit, weight, weight_unit, and width.
  • Name
    images
    Type
    array
    Description

    Legacy alias for media.gallery. Replaces the gallery entries when provided.

  • mediaobjectMedia assets. Replaces the stored media object when provided. Values can be Inttegro file references or plain remote URLs.Click or tap to expand
    • Name
      demo_video
      Type
      string
      Description
      Demo video reference or URL.
    • Name
      downloads
      Type
      array
      Description
      Array of downloadable asset references or URLs.
    • Name
      hero_image
      Type
      string
      Description
      Primary image reference or URL.
    • Name
      infographic
      Type
      string
      Description
      Infographic reference or URL.
    • Name
      promo_video
      Type
      string
      Description
      Promotional video reference or URL.
    • Name
      thumbnail
      Type
      string
      Description
      Thumbnail image reference or URL.
    • Name
      web_page_url
      Type
      string
      Description
      Product landing page URL.
  • Name
    name
    Type
    string
    Description

    Product name. Cannot be cleared once set—only updated to a new non-empty value.

  • Name
    product_id
    Type
    string
    Required
    required
    Description

    Unique product identifier.

  • Name
    tax_code
    Type
    string
    Description

    Tax classification code. Cannot be cleared once set—only changed to a different code.

  • Name
    type
    Type
    string
    Description

    Must exactly match the existing product type. Product type cannot be changed after creation.

  • Name
    unit_dimension
    Type
    string
    Description

    Measurement unit. Cannot exceed 20 characters.

Request

POST/products/update
curl https://api.inttegro.com/products/update \
-H "Authorization: Bearer $INTTEGRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"product_id": "prod_abc123xyz789",
"description": "Premium everyday comfort",
"category": "apparel"
}'

Response

SDK versionv8.2.0
ProductResponse {
product: {},
}
POST/products/publish

Publish a product

Set the product's catalog state to active: true. Publishing does not create a checkout URL, choose a price, or authorize payment; create a purchase intent when you need a hosted Buy link.

published_at is set only on the first publish and remains unchanged after later unpublish and republish cycles. The endpoint returns a conflict when active is already true. The current operation does not reject an archived product, so check archived_at before publishing.

Request attributes

  • Name
    product_id
    Type
    string
    Required
    required
    Description

    Unique product identifier.

Request

POST/products/publish
curl https://api.inttegro.com/products/publish \
-H "Authorization: Bearer $INTTEGRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"product_id": "prod_abc123xyz789"
}'

Response

SDK versionv8.2.0
ProductResponse {
product: {},
}
POST/products/unpublish

Unpublish a product

Set the product's catalog state to active: false while preserving published_at. This is reversible: publish the same product again when you are ready to mark it active.

The endpoint returns a conflict when the product is already inactive. Unpublishing does not change attached prices or existing purchase intents, and current ID-based order creation does not use product publication as its price-eligibility check. Deactivate or archive prices and withdraw checkout entry points when you need to stop future sales.

Request attributes

  • Name
    product_id
    Type
    string
    Required
    required
    Description

    Unique product identifier.

Request

POST/products/unpublish
curl https://api.inttegro.com/products/unpublish \
-H "Authorization: Bearer $INTTEGRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"product_id": "prod_abc123xyz789"
}'

Response

SDK versionv8.2.0
ProductResponse {
product: {},
}
POST/products/archive

Archive a product

Mark a product as retired. Archiving sets active to false, sets archived_at, and advances updated_at. There is no public unarchive endpoint, and Add a price to a product rejects archived products.

The endpoint returns a conflict when the product is already archived. It does not archive or deactivate prices that already belong to the product. Current lookup, update, publish, pagination, purchase-intent creation, and ID-based order paths can still resolve the product, so retire its prices and checkout entry points separately. Existing orders keep their recorded product snapshot.

Request attributes

  • Name
    product_id
    Type
    string
    Required
    required
    Description

    Unique product identifier.

Request

POST/products/archive
curl https://api.inttegro.com/products/archive \
-H "Authorization: Bearer $INTTEGRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"product_id": "prod_abc123xyz789"
}'

Response

SDK versionv8.2.0
ProductResponse {
product: {},
}
POST/products/page

Page through products

Browse every product in your catalog, including published, unpublished, and archived records. Products are sorted by created_at in descending order—page 1 contains the newest entries and subsequent pages step back in time.

Each response returns the full product object, including all fields: media assets, attributes, dimensions, shipment details, and custom data. page_number is required; page_size defaults to 256 if omitted.

Available through MCP

AI clients can use list_products for this operation. MCP read tools return minimized business data and do not change Inttegro state.

Request attributes

  • Name
    page_number
    Type
    integer
    Required
    required
    Description

    1-based page index. Must be between 1 and 10 inclusive. Start at 1 to retrieve the most recently created products and increment to walk backwards through your catalog.

  • Name
    page_size
    Type
    integer
    Description

    Number of products per page (1–256). Defaults to 256 when omitted. The response echoes the count actually returned, so the final page can be smaller than the value you requested.

Response shape

  • Top-level page object containing number, size, and a products array.
  • Each entry is a full product object identical to what Lookup a product returns: all core fields, optional nested objects (media, dimensions, attributes, shipment), and lifecycle timestamps.
  • Stop paginating when the response size is less than the page_size you requested, or when products is an empty array.

Request

POST/products/page
curl https://api.inttegro.com/products/page \
-H "Authorization: Bearer $INTTEGRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"page_number": 1,
"page_size": 50
}'

Response

SDK versionv8.2.0
PageResponse {
page: {},
}