Skip to main content
A product in Bachs is a billable item your customers can purchase. You define the name, pricing, and currencies once; Bachs handles the rest at checkout.

Create a product

Products are created from your dashboard or via the API. Every product requires a name, a currency, and a price_type. Everything else is optional.

Name

The title of your product. This is shown to customers at checkout and appears across your dashboard and reports.

Pricing

A product’s pricing is set by its price_type. Bachs supports three modes:
  • fixed (the default): You set a price in amount and every customer pays that exact amount.
  • free: No charge. Do not send an amount.
  • custom: The customer decides how much to pay, commonly called pay-what-you-want. Set preset_amount for a suggested price shown prefilled at checkout, and minimum_amount and/or maximum_amount to bound what the customer can enter. A preset_amount set alongside bounds must fall within them. Set minimum_amount to "0.00" to allow free.
preset_amount, minimum_amount, and maximum_amount are only valid when price_type is custom. amount is only valid when price_type is fixed.

Amount

Amounts are decimal strings in the currency: "29.00" for $29.00, "75000.00" for ₦75,000.00. Always send a string, never a number, and always two decimal places. This applies to amount, minimum_amount, maximum_amount, and any currency_options amounts.

Currency

Every product has a primary currency, which is the default currency your customers are charged in. It can be any supported currency, including one your account does not hold a balance in. See Charge in any currency for the full list. Bachs settles all withdrawals in either USD or NGN regardless of what currency the customer paid in. If a customer pays in another currency, Bachs handles the conversion and deposits the equivalent into your account.

Local-currency pricing

By default customers pay in your product’s primary currency. You can also set exact prices per currency with currency_options, or, on a USD-priced product, let adaptive pricing auto-convert at checkout so customers pay in their own local currency. See Sell in local currencies for the full setup and the list of supported currencies.

Recurring pricing

Give a product a billing_cycle to make it recurring. A recurring product is billed on a schedule through a subscription; a product with no billing_cycle is a one-time purchase.
  • billing_cycle: the cadence. interval is day, week, month, or year; frequency is the number of intervals per cycle ({ "interval": "month", "frequency": 3 } = every three months).
  • trial_period (optional), a free trial before the first charge, expressed as the same cadence shape. Only meaningful on a recurring product.
A product’s billing_cycle is fixed once set. You can add a cadence to a one-time product, but you can’t change an existing one; create a new product for a different cadence. This protects existing subscribers from surprise changes.
Completing a checkout for a recurring product creates the subscription and bills the first cycle. Subscriptions are USD card only today.

Update a product

You can update a product’s name, description, and price at any time.

Archive a product

Products on Bachs cannot be deleted. Instead you can archive a product to stop it from being available for new purchases. Archiving does not affect existing customers. They keep their access. You can unarchive a product at any time from the dashboard or via the API.