<!--
{
  "availability" : [
    "iOS: 15.0.0 -",
    "iPadOS: 15.0.0 -",
    "macOS: 12.0.0 -",
    "tvOS: 15.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 8.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "StoreKit",
  "identifier" : "/documentation/StoreKit/VerificationResult",
  "metadataVersion" : "0.1.0",
  "role" : "Enumeration",
  "symbol" : {
    "kind" : "Enumeration",
    "modules" : [
      "StoreKit"
    ],
    "preciseIdentifier" : "s:8StoreKit18VerificationResultO"
  },
  "title" : "VerificationResult"
}
-->

# VerificationResult

A type that describes the result of a StoreKit verification.

```
@frozen enum VerificationResult<SignedType>
```

## Overview

StoreKit automatically verifies the [`Transaction`](/documentation/StoreKit/Transaction), [`Product.SubscriptionInfo.RenewalInfo`](/documentation/StoreKit/Product/SubscriptionInfo/RenewalInfo), and [`AppTransaction`](/documentation/StoreKit/AppTransaction) values. To access the wrapped values, check whether the values are verified or unverified.

In addition to getting a verification result from StoreKit, you might want to verify the signed information yourself, either on the device, or on your server for the most control and security. Perform the verification on the [`jwsRepresentation`](/documentation/StoreKit/VerificationResult/jwsRepresentation-178oj) property for subscription renewal information, the [`jwsRepresentation`](/documentation/StoreKit/VerificationResult/jwsRepresentation-21vgo) property for transactions, and the [`jwsRepresentation`](/documentation/StoreKit/VerificationResult/jwsRepresentation-6ma59) property for an app transaction.

To verify the [`jwsRepresentation`](/documentation/StoreKit/VerificationResult/jwsRepresentation-21vgo) on your server, consider using the verification functions in the App Store Server Library. The library provides the functions `verifyAndDecodeTransaction`, `verifyAndDecodeAppTransaction`, and `verifyAndDecodeRenewalInfo` in each language the library supports. For more information, see <doc://com.apple.documentation/documentation/AppStoreServerAPI/simplifying-your-implementation-by-using-the-app-store-server-library>.

The [`jwsRepresentation`](/documentation/StoreKit/VerificationResult/jwsRepresentation-21vgo) string is in JWS Compact Serialization format and is the same as its counterpart in the App Store server APIs, as follows:

|StoreKit string                                                                                                                    |Equivalent in the App Store Server API                                        |Equivalent in App Store Server Notifications                                            |
|-----------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------|----------------------------------------------------------------------------------------|
|``doc://com.apple.storekit/documentation/StoreKit/VerificationResult/jwsRepresentation-178oj`` for subscription renewal information|<doc://com.apple.documentation/documentation/AppStoreServerAPI/JWSRenewalInfo>|<doc://com.apple.documentation/documentation/AppStoreServerNotifications/JWSRenewalInfo>|
|``doc://com.apple.storekit/documentation/StoreKit/VerificationResult/jwsRepresentation-21vgo`` for transactions                    |<doc://com.apple.documentation/documentation/AppStoreServerAPI/JWSTransaction>|<doc://com.apple.documentation/documentation/AppStoreServerNotifications/JWSTransaction>|

The decoded payload of the [`jwsRepresentation`](/documentation/StoreKit/VerificationResult/jwsRepresentation-21vgo) contains  two additional fields: `deviceVerification` and `deviceVerificationNonce`. Use these fields on the device to verify that JWS information belongs to the device. For more information, see [`deviceVerificationID`](/documentation/StoreKit/AppStore/deviceVerificationID).

> Important:
> The decoded payloads of ``doc://com.apple.storekit/documentation/StoreKit/VerificationResult/jwsRepresentation-21vgo`` and <doc://com.apple.documentation/documentation/AppStoreServerAPI/JWSTransaction> strings contain <doc://com.apple.documentation/documentation/AppStoreServerAPI/price> or <doc://com.apple.documentation/documentation/AppStoreServerAPI/renewalPrice> fields specified in *milliunits* of the currency.  StoreKit represents the `price` and ``doc://com.apple.storekit/documentation/StoreKit/Product/SubscriptionInfo/RenewalInfo/renewalPrice`` values in is *units* of the currency. Take care not to confuse these two representations when working with both APIs.

## Topics

### Getting the verification results

[`VerificationResult.verified(_:)`](/documentation/StoreKit/VerificationResult/verified(_:))

The associated value passed StoreKit automatic verification checks.

[`VerificationResult.unverified(_:_:)`](/documentation/StoreKit/VerificationResult/unverified(_:_:))

The associated value failed StoreKit automatic verification checks.

[`payloadValue`](/documentation/StoreKit/VerificationResult/payloadValue)

The verified value of the signed type that StoreKit confirms as verified.

[`unsafePayloadValue`](/documentation/StoreKit/VerificationResult/unsafePayloadValue)

The associated value of the verification result that StoreKit doesn’t confirm as verified.

[`VerificationError`](/documentation/StoreKit/VerificationResult/VerificationError)

Error cases for StoreKit JWS verification.

### Getting properties for transactions

[`jwsRepresentation`](/documentation/StoreKit/VerificationResult/jwsRepresentation-21vgo)

The transaction signed by the App Store, in JWS Compact Serialization format.

[`deviceVerification`](/documentation/StoreKit/VerificationResult/deviceVerification-69lvx)

The device verification value to use to verify whether the transaction belongs to the device.

[`deviceVerificationNonce`](/documentation/StoreKit/VerificationResult/deviceVerificationNonce-9dfrn)

The UUID for computing the device verification value.

[`signedDate`](/documentation/StoreKit/VerificationResult/signedDate-8x9bg)

The date that the App Store signed the JWS transaction.

[`headerData`](/documentation/StoreKit/VerificationResult/headerData-9egfp)

The header component of the JWS transaction.

[`payloadData`](/documentation/StoreKit/VerificationResult/payloadData-uyle)

The payload component of the JWS transaction.

[`signedData`](/documentation/StoreKit/VerificationResult/signedData-56usp)

The transaction data that the signature applies to.

[`signatureData`](/documentation/StoreKit/VerificationResult/signatureData-4pyv8)

The signature component of the JWS transaction.

[`signature`](/documentation/StoreKit/VerificationResult/signature-7t1ne)

The signature component of the JSON web signature.

### Getting properties for subscription renewal information

[`jwsRepresentation`](/documentation/StoreKit/VerificationResult/jwsRepresentation-178oj)

The subscription renewal information signed by the App Store, in JWS Compact Serialization format.

[`deviceVerification`](/documentation/StoreKit/VerificationResult/deviceVerification-5hvi9)

The device verification value to use to verify whether the subscription renewal information belongs to the device.

[`deviceVerificationNonce`](/documentation/StoreKit/VerificationResult/deviceVerificationNonce-6mzfc)

The UUID for computing the device verification value.

[`signedDate`](/documentation/StoreKit/VerificationResult/signedDate-3tvo5)

The date that the App Store signed the JWS subscription renewal information.

[`headerData`](/documentation/StoreKit/VerificationResult/headerData-3be0o)

The header component of the JWS subscription renewal information.

[`payloadData`](/documentation/StoreKit/VerificationResult/payloadData-abfv)

The payload component of the JWS subscription renewal information.

[`signedData`](/documentation/StoreKit/VerificationResult/signedData-1t80n)

The subscription renewal information data that the signature applies to.

[`signatureData`](/documentation/StoreKit/VerificationResult/signatureData-9uw8c)

The signature component of the JWS subscription renewal information.

[`signature`](/documentation/StoreKit/VerificationResult/signature-95r7x)

The signature component of the JSON web signature.

### Getting properties for app transactions

[`jwsRepresentation`](/documentation/StoreKit/VerificationResult/jwsRepresentation-6ma59)

The app transaction signed by the App Store, in JWS Compact Serialization format.

[`deviceVerification`](/documentation/StoreKit/VerificationResult/deviceVerification-6c8xu)

The device verification value to use to verify whether the app transaction belongs to the device.

[`deviceVerificationNonce`](/documentation/StoreKit/VerificationResult/deviceVerificationNonce-6082b)

The UUID for computing the device verification value.

[`signedDate`](/documentation/StoreKit/VerificationResult/signedDate-24zch)

The date that the App Store signed the JWS app transaction.

[`headerData`](/documentation/StoreKit/VerificationResult/headerData-3drrl)

The header component of the JWS app transaction.

[`payloadData`](/documentation/StoreKit/VerificationResult/payloadData-97acz)

The payload component of the JWS app transaction.

[`signedData`](/documentation/StoreKit/VerificationResult/signedData-99fyo)

The app transaction data that the signature applies to.

[`signatureData`](/documentation/StoreKit/VerificationResult/signatureData-4pvv0)

The signature component of the JWS app transaction.

[`signature`](/documentation/StoreKit/VerificationResult/signature-6d5ue)

The signature component of the JSON web signature.

## Relationships

### Conforms To

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

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

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

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

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

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

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

---

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)