<!--
{
  "availability" : [
    "iOS: 17.4.0 - 26.0.0",
    "iPadOS: 17.4.0 - 26.0.0",
    "macOS: 14.4.0 - 26.0.0",
    "tvOS: 17.4.0 - 26.0.0",
    "visionOS: 1.1.0 - 26.0.0",
    "watchOS: 10.4.0 - 26.0.0"
  ],
  "documentType" : "symbol",
  "framework" : "StoreKit",
  "identifier" : "/documentation/StoreKit/Product/SubscriptionOffer/Signature",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "StoreKit"
    ],
    "preciseIdentifier" : "s:8StoreKit7ProductV17SubscriptionOfferV9SignatureV"
  },
  "title" : "Product.SubscriptionOffer.Signature"
}
-->

# Product.SubscriptionOffer.Signature

A cryptographic signature for a promotional offer.

```
struct Signature
```

## Overview

For information about promotional offers, see [Implementing promotional offers in your app](/documentation/StoreKit/implementing-promotional-offers-in-your-app).

The App Store Server Library provides a function that produces signatures for promotional offers. For more information, see <doc://com.apple.documentation/documentation/AppStoreServerAPI/simplifying-your-implementation-by-using-the-app-store-server-library>.

## Topics

### Creating subscription offer signatures

[`init(keyID: String, nonce: UUID, timestamp: Int, signature: Data)`](/documentation/StoreKit/Product/SubscriptionOffer/Signature/init(keyID:nonce:timestamp:signature:))

Creates a subscription offer signature instance.

### Getting signature elements

[`var keyID: String`](/documentation/StoreKit/Product/SubscriptionOffer/Signature/keyID)

A string that identifies the private key you use to generate the cryptographic signature.

[`var nonce: UUID`](/documentation/StoreKit/Product/SubscriptionOffer/Signature/nonce)

A one-time UUID your server generates for the promotional offer.

[`var signature: Data`](/documentation/StoreKit/Product/SubscriptionOffer/Signature/signature)

A cryptographic signature your server generates to sign a promotional offer for an auto-renewable subscription.

[`var timestamp: Int`](/documentation/StoreKit/Product/SubscriptionOffer/Signature/timestamp)

A timestamp your server generates in UNIX time format, in milliseconds, that indicates the time the server generated the signature.

## Relationships

### Conforms To

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`Hashable`](/documentation/Swift/Hashable)

[`Equatable`](/documentation/Swift/Equatable)

[`Sendable`](/documentation/Swift/Sendable)

---

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)