---
title: Transaction.Offer
framework: StoreKit
role: symbol
role_heading: Structure
platforms: [iOS 17.2+, iPadOS 17.2+, Mac Catalyst 17.2+, macOS 14.2+, tvOS 17.2+, visionOS 1.1+, watchOS 10.2+]
path: storekit/transaction/offer
---

# Transaction.Offer

Discounts or promotions that apply to a transaction.

## Declaration

```swift
struct Offer
```

## Overview

You set up offers for auto-renewable subscriptions and other In-App Purchase types in App Store Connect. If a customer redeems an offer, it appears in the [offer](offer-swift.property.md) property of the transaction. For auto-renewable subscriptions, if the offer applies to one or more renewal periods, it also appears in the [offer](../product/subscriptioninfo/renewalinfo/offer.md) property of [Product.SubscriptionInfo.RenewalInfo](../product/subscriptioninfo/renewalinfo.md).

For more information on configuring the various offers in App Store Connect, see:

- `Create offer codes for In-App Purchases`
- `Providing subscription offers`.
- `Set up offer codes`
- `Set up introductory offers for auto-renewable subscriptions`
- `Set up promotional offers for auto-renewable subscriptions`
- `Set up win-back offers`

## Topics

### Getting offer details

- [id](offer-swift.struct/id.md)
- [type](offer-swift.struct/type.md)
- [Transaction.OfferType](offertype-swift.struct.md)
- [paymentMode](offer-swift.struct/paymentmode-swift.property.md)
- [Transaction.Offer.PaymentMode](offer-swift.struct/paymentmode-swift.struct.md)
- [period](offer-swift.struct/period.md)

## Relationships

### Conforms To

- Equatable
- Hashable
- Sendable
- SendableMetatype

## See Also

### Getting offers

- [offer](../product/subscriptioninfo/renewalinfo/offer.md)
- [eligibleWinBackOfferIDs](../product/subscriptioninfo/renewalinfo/eligiblewinbackofferids.md)
