# Price (/en/api-reference/objects/price)

A Price defines what a Product costs: the unit amount, currency, and (for subscriptions) billing interval. A single Product can have many Prices, letting you offer the same item in multiple currencies, tiers, or billing models without duplicating your catalog. Reference a Price by ID when creating Checkout Sessions, Payment Links, or line items, and the customer is charged according to what the Price defines.

## Fields

- `id` (string, required) — Price ID
- `object` (string, required) — Object type
- `name` (string | null) — Price name
- `description` (string | null) — Price description
- `currency` (enum("EGP" | "USD" | "EUR" | "GBP" | "SAR" | "AED" | "QAR" | "KWD" | "JOD" | "OMR" | "BHD" | "LYD" | "AUD" | "CAD" | "CNY"), required) — Currency
- `unitAmount` (number | null) — Unit amount in smallest currency unit (e.g., piasters for EGP)
- `type` (enum("ONE_TIME" | "RECURRING" | "CUSTOM"), required) — Price type
- `recurring` (RecurringConfig) — Recurring configuration (interval + intervalCount), null for one-time prices
  - `interval` (enum("DAY" | "WEEK" | "MONTH" | "YEAR" | "CUSTOM")) — Interval type for recurring prices
  - `intervalCount` (number) — Number of intervals between each billing cycle
- `customUnitAmount` (CustomUnitAmountResponse) — Custom unit amount configuration — present for CUSTOM-type prices. Bounds and preset are in minor units.
  - `minimum` (number | null) — Minimum amount the customer may enter (minor units).
  - `maximum` (number | null) — Maximum amount the customer may enter (minor units).
  - `preset` (number | null) — Suggested amount pre-filled for the customer (minor units).
- `stock` (number | null) — Remaining stock. `null` means unlimited. Decremented on PaymentIntent success. May become negative under race conditions — treat negative as oversold.
- `startDate` (string | null) — Start date (ISO 8601)
- `expirationDate` (string | null) — Expiration date (ISO 8601)
- `active` (boolean, required) — Whether the price is active
- `createdAt` (string, required) — Created timestamp (ISO 8601)
- `updatedAt` (string, required) — Updated timestamp (ISO 8601)
- `productId` (string, required) — Product ID this price belongs to