---
title: VerificationResult
framework: storekit
role: symbol
role_heading: Enumeration
path: storekit/verificationresult
---

# VerificationResult

A type that describes the result of a StoreKit verification.

## Declaration

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

## Overview

Overview StoreKit automatically verifies the Transaction, Product.SubscriptionInfo.RenewalInfo, and 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 property for subscription renewal information, the jwsRepresentation property for transactions, and the jwsRepresentation property for an app transaction. To verify the jwsRepresentation 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 Simplifying your implementation by using the App Store Server Library. The jwsRepresentation string is in JWS Compact Serialization format and is the same as its counterpart in the App Store server APIs, as follows:  |  |   |  |   |  |  The decoded payload of the jwsRepresentation 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. important: The decoded payloads of jwsRepresentation and JWSTransaction strings contain price or renewalPrice fields specified in milliunits of the currency.  StoreKit represents the price and 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(_:)](storekit/verificationresult/verified(_:).md)
- [VerificationResult.unverified(_:_:)](storekit/verificationresult/unverified(_:_:).md)
- [payloadValue](storekit/verificationresult/payloadvalue.md)
- [unsafePayloadValue](storekit/verificationresult/unsafepayloadvalue.md)
- [VerificationResult.VerificationError](storekit/verificationresult/verificationerror.md)

### Getting properties for transactions

- [jwsRepresentation](storekit/verificationresult/jwsrepresentation-21vgo.md)
- [deviceVerification](storekit/verificationresult/deviceverification-69lvx.md)
- [deviceVerificationNonce](storekit/verificationresult/deviceverificationnonce-9dfrn.md)
- [signedDate](storekit/verificationresult/signeddate-8x9bg.md)
- [headerData](storekit/verificationresult/headerdata-9egfp.md)
- [payloadData](storekit/verificationresult/payloaddata-uyle.md)
- [signedData](storekit/verificationresult/signeddata-56usp.md)
- [signatureData](storekit/verificationresult/signaturedata-4pyv8.md)
- [signature](storekit/verificationresult/signature-7t1ne.md)

### Getting properties for subscription renewal information

- [jwsRepresentation](storekit/verificationresult/jwsrepresentation-178oj.md)
- [deviceVerification](storekit/verificationresult/deviceverification-5hvi9.md)
- [deviceVerificationNonce](storekit/verificationresult/deviceverificationnonce-6mzfc.md)
- [signedDate](storekit/verificationresult/signeddate-3tvo5.md)
- [headerData](storekit/verificationresult/headerdata-3be0o.md)
- [payloadData](storekit/verificationresult/payloaddata-abfv.md)
- [signedData](storekit/verificationresult/signeddata-1t80n.md)
- [signatureData](storekit/verificationresult/signaturedata-9uw8c.md)
- [signature](storekit/verificationresult/signature-95r7x.md)

### Getting properties for app transactions

- [jwsRepresentation](storekit/verificationresult/jwsrepresentation-6ma59.md)
- [deviceVerification](storekit/verificationresult/deviceverification-6c8xu.md)
- [deviceVerificationNonce](storekit/verificationresult/deviceverificationnonce-6082b.md)
- [signedDate](storekit/verificationresult/signeddate-24zch.md)
- [headerData](storekit/verificationresult/headerdata-3drrl.md)
- [payloadData](storekit/verificationresult/payloaddata-97acz.md)
- [signedData](storekit/verificationresult/signeddata-99fyo.md)
- [signatureData](storekit/verificationresult/signaturedata-4pvv0.md)
- [signature](storekit/verificationresult/signature-6d5ue.md)

## Relationships

### Conforms To

- [Copyable](swift/copyable.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Escapable](swift/escapable.md)
- [Hashable](swift/hashable.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### JWS verification

- [VerificationResult.VerificationError](storekit/verificationresult/verificationerror.md)
