{"id":124692,"date":"2021-09-22T16:50:46","date_gmt":"2021-09-22T16:50:46","guid":{"rendered":"https:\/\/developer.apple.com\/news\/?id=1mmydqta"},"modified":"2021-09-22T16:50:46","modified_gmt":"2021-09-22T16:50:46","slug":"new-in-app-purchase-capabilities-now-available","status":"publish","type":"post","link":"https:\/\/sickgaming.net\/blog\/2021\/09\/22\/new-in-app-purchase-capabilities-now-available\/","title":{"rendered":"New in-app purchase capabilities now available"},"content":{"rendered":"<div><img decoding=\"async\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2022\/05\/new-in-app-purchase-capabilities-now-available.jpg\" class=\"ff-og-image-inserted\"><\/div>\n<p><strong>StoreKit 2.<\/strong> StoreKit&nbsp;2 introduces powerful new Swift-based APIs that make supporting in-app purchases and subscriptions easier than ever. You can now easily determine product entitlements and eligibility for offers, quickly get a user\u2019s history of in-app purchases, find out the latest status of a subscription with one simple check, provide a way to request refunds and manage subscriptions from within your app, and more. StoreKit&nbsp;2 also uses Swift concurrency and JSON Web Signature to simplify how you retrieve product information and handle transactions. Available on iOS&nbsp;15, iPadOS&nbsp;15, tvOS&nbsp;15, and watchOS&nbsp;8.<\/p>\n<p><strong>App Store Server API.<\/strong> Support users and resolve in-app purchase issues more quickly with new App&nbsp;Store Server API now available in production.<\/p>\n<ul>\n<li>In-App Purchase History. Get a user\u2019s history of in-app purchases.<\/li>\n<li>Subscription Status. Determine whether a subscription is active, expired, in billing retry, or in billing grace period.<\/li>\n<\/ul>\n<p><strong>App Store server notifications.<\/strong> Coming soon. Get real-time updates on your in-app purchases, so you can create customized experiences for your users. You can now take advantage of new notification types that cover more user events, including subscription expirations, offer redemptions, refunds, and more. You can also enter an optional URL in App Store Connect to receive server notifications in the App Store sandbox environment, separate from the URL that you use for production.<\/p>\n<p><a href=\"https:\/\/developer.apple.com\/storekit\/\">Learn <span class=\"icon icon-after icon-chevronright nowrap\">about StoreKit&nbsp;2<\/span><\/a><\/p>\n<p><a href=\"https:\/\/developer.apple.com\/documentation\/appstoreserverapi\">Learn about App&nbsp;Store <span class=\"icon icon-after icon-chevronright nowrap\">server APIs<\/span><\/a><\/p>\n<p><a href=\"https:\/\/developer.apple.com\/documentation\/appstoreservernotifications\">Learn about App&nbsp;Store <span class=\"icon icon-after icon-chevronright nowrap\">server notifications<\/span><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>StoreKit 2. StoreKit&nbsp;2 introduces powerful new Swift-based APIs that make supporting in-app purchases and subscriptions easier than ever. You can now easily determine product entitlements and eligibility for offers, quickly get a user\u2019s history of in-app purchases, find out the latest status of a subscription with one simple check, provide a way to request refunds [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":124693,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[55],"tags":[],"class_list":["post-124692","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-apple-developer-news"],"_links":{"self":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts\/124692","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/comments?post=124692"}],"version-history":[{"count":0,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts\/124692\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/media\/124693"}],"wp:attachment":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/media?parent=124692"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/categories?post=124692"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/tags?post=124692"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}