# Price (/ar/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` (enum("price"), 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` (CatalogRecurring | null) — Recurring configuration (interval + intervalCount), null for one-time prices
- `customUnitAmount` (CustomUnitAmountResponse | null) — Custom unit amount configuration — present for CUSTOM-type prices. Bounds and preset are in 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