<!--
{
  "availability" : [
    "iOS: 27.0.0 -",
    "iPadOS: 27.0.0 -",
    "macCatalyst: 27.0.0 -",
    "visionOS: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "StoreKit",
  "identifier" : "/documentation/StoreKit/AppStore/presentOfferCodeRedeemSheet(from:options:)-89agc",
  "metadataVersion" : "0.1.0",
  "role" : "Type Method",
  "symbol" : {
    "kind" : "Type Method",
    "modules" : [
      "StoreKit"
    ],
    "preciseIdentifier" : "s:8StoreKit03AppA0O27presentOfferCodeRedeemSheet4from7optionsAA18VerificationResultOyAA11TransactionVGSo16UIViewControllerC_ShyAA0G6OptionVGtYaKFZ"
  },
  "title" : "presentOfferCodeRedeemSheet(from:options:)"
}
-->

# presentOfferCodeRedeemSheet(from:options:)

Presents a sheet that enables users to redeem subscription offer codes that you configure in App Store Connect.

```
@MainActor static func presentOfferCodeRedeemSheet(from viewController: UIViewController, options: Set<RedeemOption> = []) async throws -> VerificationResult<Transaction>
```

## Parameters

`viewController`

The `UIViewController` that StoreKit uses to display the offer code redemption sheet.

`options`

A set of [`RedeemOption`](/documentation/StoreKit/RedeemOption) values to configure the offer code redemption.

## Return Value

A [`VerificationResult`](/documentation/StoreKit/VerificationResult) containing the [`Transaction`](/documentation/StoreKit/Transaction) that the redemption produces.

## Discussion> Throws: ``doc://com.apple.storekit/documentation/StoreKit/StoreKitError`` if the system cannot present the sheet or the redemption fails.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)