What information comes with an Apple App Store Server API Transaction?

A guide that describes the e-commerce transaction information that is returned by an App Store Server API request.

Oscar de la Hera Gomez
Written by Oscar de la Hera Gomez
First published on 03/23/2023 at 14:00
Last Updated on 03/28/2023 at 11:24
A flower that represents Apple with the text "App Store Server API Transaction Information" beneath it.

A guide that describes the e-commerce transaction information that is returned by an App Store Server API request.

App Store Server API Transactions are returned in a JSON Web Signature (JWS) format and carry objects for the following items:

  • JWSDecodedHeader
  • JWSTransactionDecodedPayload
  • JWSRenewalInformationDecodedPayload

This post will break these down and give you insight into how they can help businesses.

SubscribeWhat are Apple App Store Transactions?How do Apple App Store Transactions work?What information comes with Apple App Store Transactions in StoreKit?

JWSDecodedHeader

This object holds encryption information that is required to validate the Transaction and Renewal information. This has no use to a business other than guaranteeing that the information that the business receives is true.

JWSTransactionDecodedPayload

A decoded payload containing the following transaction information:

appAccountToken

The App Account Token is a unique identifier ties a customers to a transaction.

This identifier should be considered a customer id and should be the same across all of the purchases of a customer.

If an app doesn’t provide an App Account Token at the time of purchase, this property is empty.

We recommend that businesses include an App Account Token in the purchase of each In-App Purchase or Subscription with the purpose of identifying their most loyal customers and knowing how valuable each customer is.

bundleId

The bundleId property informs a business of the bundle identifier of the app where the transaction was made.

environment

The environment property informs a business of whether the transaction occurred in a testing environment or on an app released on the Apple App Store.

This is valuable to help businesses separate test data from true data.

expiresDate

The expires date property is only available for Auto-Renewable Subscription transactions and is a UNIX millisecond string that lets businesses know when a subscription expires or renews.

To be able to understand if the subscription is expiring or renewing, businesses must setup App Store Server Notifications or must make an App Store Server API request for the transaction and use the autoRenewStatus property from JWSRenewalInfoDecodedPayload described later on.

What are Apple App Store Auto-Renewable Subscriptions?What are Apple App Store Server API?

inAppOwnershipType

The in app ownership type is only available for Non-Consumable In-App Purchases and Auto-Renewable Subscriptions and describes whether the transaction was purchased by the customer, or is available to them through Family Sharing.

For more information about what Apple Family Sharing is please consult our guide using the link below.

What is Apple Family Sharing?What are Apple App Store Non-Consumable In-App Purchases?What are Apple App Store Auto-Renewable Subscriptions?

isUpgraded

The isUpgraded property is only available for Auto-Renewable Subscription transactions and informs businesses if the transaction pertains to an Auto-Renewable Subscription in which a customer has upgraded to a higher level of service, or downgraded to a lower level of service within the same subscription group.

This is useful for businesses as it lets businesses measure how well subscriptions are performing and the value that customers feel that they get from different levels of service.

What are Apple App Store Auto-Renewable Subscriptions?What are Apple App Store Subscription Groups?

offerIdentifier

The offer identifier property is only available for Auto-Renewable Subscription transactions and contains the promo code or the promotional offer identifier.

It is useful as it lets businesses know how many customers used promotional offers or custom offer codes.

If the value is empty, no offer was used in the transaction.

What are Apple App Store Promotional Offers?What are Apple App Store Custom Offer Codes?

offerType

The offer type property is only available for transactions of Auto-Renewable Subscription and lets businesses know if the transaction involved an introductory offer, a promotional offer or a custom offer code.

If the value is empty, no offer was used in the transaction.

What are Apple App Store Introductory Offers?What are Apple App Store Promotional Offers?What are Apple App Store Custom Offer Codes?

originalPurchaseDate

The original purchase date property lets businesses know when the In-App Purchase or Subscription was purchased.

originalTransactionId

The original transaction id property lets businesses know the transaction identifier of the original purchase of an In-App Purchase or Subscription.

productId

The product Id property is the unique identifier associated with the In-App Purchase or Subscription.

purchaseDate

The purchase date property informs businesses of when the App Store charged the customers account for a purchase, restored product, subscription, or subscription renewal after a lapse.

How do Apple App Store Transactions work?

quantity

The quantity property is only available for transactions for consumables and lets businesses know how many Consumable In-App Purchases a customer bought.

What are Apple App Store Consumable In-App Purchases?

revocationDate

The revocation date property informs businesses of the date that the Apple App Store refunded the transaction.

revocationReason

The revocation reason property informs businesses of why the Apple App Store refunded the transaction or revoked it from family sharing.

signedDate

The signed date property is the date that the Apple App Store signed the JWS data for this transaction and may have no value to a business.

subscriptionGroupIdentifier

The subscription group identifier property is only available for transactions pertaining to Auto-Renewable Subscriptions and informs businesses of the subscription group that the transaction relates to.

What are Apple App Store Subscription Groups?

transactionId

The transaction id property is the unique identifier for the transaction.

type

The type property informs businesses if the transaction relates to a Consumable In-App Purchase, Non-Consumable In-App Purchase, Non-Renewing Subscription or Auto-Renewable Subscription.

What are Apple App Store Consumable In-App Purchases?What are Apple App Store Non-Consumable In-App Purchases?What are Apple App Store Non-Renewing Subscriptions?What are Apple App Store Auto-Renewable Subscriptions?

webOrderLineItemId

The web order line item id is a property that is a unique ID that identifies subscription purchase events across devices, including subscription renewals.

JWSRenewalInfoDecodedPayload

A decoded payload that only exists for Auto-Renewable Subscriptions and which contains the following information:

What are Apple App Store Auto-Renewable Subscriptions?

autoRenewProductId

The auto renew product id is the identifier of the product that renews at the next billing period.

autoRenewStatus

The auto renew status property lets businesses know if a customers subscription is renewing or if it will expire as they have cancelled.

expirationIntent

The expiration intent property informs businesses of why the subscription is expiring. It can be one of the following:

  • The customer cancelled their subscription.
  • A billing error (i.e. the customer’s payment information is no longer valid).
  • The customer didn’t consent to an auto-renewable subscription price increase that requires customer consent. This caused the subscription to expire.
  • The product wasn’t available for purchase at the time of renewal.
  • The subscription expired for some other reason.
What is Apple App Store Billing Retry?

gracePeriodExpiresDate

The grace period expires date property informs businesses that a subscriber has failed to make a payment and are now in a grace period that will expire on the date shown.

This property only exists in these conditions if a business has setup a grace period to reduce involuntary churn. If there is no grace period and the customer fails to pay, they will move into a billing retry period.

What is the Apple App Store Grace Period?

isInBillingRetryPeriod

The is in billing retry period property lets businesses know if a customer has failed to pay for a subscription and, if a business has enabled a grace period, that the customer failed to pay within the grace period.

How does Billing Retry and a Grace Period work in the Apple App Store?

offerIdentifier

The offer identifier property is only available for Auto-Renewable Subscription transactions and contains the promo code or the promotional offer identifier.

It is useful as it lets businesses know how many customers used promotional offers or custom offer codes.

If the value is empty, no offer was used in the transaction.

What are Apple App Store Promotional Offers?What are Apple App Store Custom Offer Codes?

offerType

The offer type property is only available for Auto-Renewable Subscription transactions and lets businesses know if the transaction used an introductory offer, a promotional offer or a custom offer code.

If the value is empty, no offer was used in the transaction.

What are Apple App Store Introductory Offers?What are Apple App Store Promotional Offers?What are Apple App Store Custom Offer Codes?

originalTransactionId

The original transaction id property lets businesses know the transaction identifier of the original purchase of an In-App Purchase or Subscription.

priceIncreaseStatus

The price increase status property lets businesses know whether the Auto-Renewable Subscription associated with the transaction is subject to a price increase.

productId

The product id property is the unique identifier of the product.

recentSubscriptionStartDate

The recent subscription start date property is the earliest start date of an auto-renewable subscription in a series of subscription purchases that ignores all lapses of paid service that are 60 days or less.

signedDate

The signed date property is the date that the Apple App Store signed the JWS data for this transaction and may have no value to a business.

Looking for more information on building e-commerce Apple apps?

Read our business guide to get our latest market and customer research, perspective and recommendations on building Apple e-commerce apps that use In-App Purchases and Subscriptions.

Read our Apple App Store E-Commerce Business Guide

Any Questions?

We are actively looking for feedback on how to improve this resource. Please send us a note to inquiries@delasign.com with any thoughts or feedback you may have.
SubscribeContact UsVisit our BlogView our ServicesView our Work

Partner with us

We would love to get to know you and see how we can help your organization with its goals and needs.
Let's Talk

Stay Informed

Get occasional updates about our company, research, and product launches.
Subscribe