Vatly
Python SDK

One-off products

Sell a digital product once rather than on a recurring schedule.

Sell a digital product once rather than on a recurring schedule. Create it in the catalog, then pass its ID to a checkout. Examples accept the client from setup.

Create a product

from vatly import VatlyClient
from vatly.models import CreateOneOffProductRequest


def example(client: VatlyClient):
    return client.one_off_products.create(
        CreateOneOffProductRequest(
            name="Python handbook",
            description="A downloadable programming book",
            product_type="ebook",
            base_price={"value": "29.00", "currency": "EUR"},
        )
    )
Input fieldTypeRequired?
name, descriptionstringYes
base_priceEUR money with a two-decimal stringYes
product_type"saas" or "ebook"Yes
tax_behavior"exclusive" or "inclusive"No

Dictionary inputs use basePrice, productType and taxBehavior. Responses may contain additional product-type strings; the SDK preserves them. That does not make those strings valid creation inputs.

Read, update and archive

from vatly import VatlyClient


def example(client: VatlyClient):
    products = list(client.one_off_products.list_all({"includeArchived": True}))
    product = client.one_off_products.get("one_off_product_example")
    client.one_off_products.update(product.id, {"name": "Revised handbook"})
    client.one_off_products.archive(product.id)
    return products, client.one_off_products.unarchive(product.id)

Archiving stops new sales and returns None. Unarchiving returns the product. Live catalog changes may await approval; test-mode changes are auto-approved.

Response fieldMeaning
idone_off_product_... catalog ID
name, descriptionBuyer-facing content
base_price, product_typeExact price and category
testmode, linksMode and resource links

Product API reference · All methods

Copyright © 2026