UNPKG

@jeremybarbet/apple-api-types

Version:

Typescript definitions for Apple API services.

370 lines (307 loc) 9.82 kB
/** * @link https://developer.apple.com/documentation/appstoreserverapi */ import { type AutoRenewStatus, type ExpirationIntent, type InAppOwnershipType, type NotificationSubtype, type NotificationType, type OfferType, type OrderLookupStatus, type PriceIncreaseStatus, type SubscriptionStatus, type Type, } from './app-store-server.enum'; import { type Environment } from './global.interface'; /** * @link https://developer.apple.com/documentation/appstoreserverapi/jwsdecodedheader */ export interface JWSDecodedHeader { /** * The algorithm used for signing the JSON Web Signature (JWS). */ alg: string; /** * The X.509 certificate chain that corresponds to the key that the App Store used to secure the JWS. */ x5c: string[]; } /** * @link https://developer.apple.com/documentation/appstoreserverapi/jwsrenewalinfo */ export type JWSTransaction = string; /** * @link https://developer.apple.com/documentation/appstoreserverapi/jwsrenewalinfo */ export type JWSRenewalInfo = string; /** * @link https://developer.apple.com/documentation/appstoreservernotifications/data */ interface Data { /** * The unique identifier of the app that the notification applies to.This property is available for apps that are downloaded from the App Store; it isn’t present in the sandbox environment. */ appAppleId: number; /** * The bundle identifier of the app. */ bundleId: string; /** * The version of the build that identifies an iteration of the bundle. */ bundleVersion: string; /** * The server environment that the notification applies to, either sandbox or production. */ environment: Environment; /** * Subscription renewal information signed by the App Store, in JSON Web Signature format. */ signedRenewalInfo: JWSRenewalInfo; /** * Transaction information signed by the App Store, in JSON Web Signature format. */ signedTransactionInfo: JWSTransaction; } /** * @link https://developer.apple.com/documentation/appstoreservernotifications/responsebodyv2decodedpayload */ export interface ResponseBodyV2DecodedPayload { /** * The in-app purchase event for which the App Store sent this version 2 notification. * https://developer.apple.com/documentation/appstoreservernotifications/notificationtype */ notificationType: NotificationType; /** * Additional information that identifies the notification event, or an empty string. The subtype applies only to select version 2 notifications. * https://developer.apple.com/documentation/appstoreservernotifications/subtype */ subtype: NotificationSubtype; /** * A unique identifier for the notification. Use this value to identify a duplicate notification. */ notificationUUID: string; /** * The object that contains the app metadata and signed renewal and transaction information. */ data: Data; /** * A string that indicates the App Store Server Notification version number. */ version: string; /** * The UNIX time, in milliseconds, that the App Store signed the JSON Web Signature data. */ signedDate: string; } /** * @link https://developer.apple.com/documentation/appstoreserverapi/jwstransactiondecodedpayload */ export interface JWSTransactionDecodedPayload { /** * The UUID you created to identify the user’s in-app account when they made the purchase. If your app doesn’t provide an appAccountToken, this string is empty. For more information, see appAccountToken(_:). */ appAccountToken?: string; /** * The bundle identifier of the app. */ bundleId: string; /** * The server environment, either sandbox or production. */ environment: Environment; /** * The UNIX time, in milliseconds, the subscription expires or renews. */ expiresDate?: number; /** * A string that describes whether the transaction was purchased by the user, or is available to them through Family Sharing. */ inAppOwnershipType: InAppOwnershipType; /** * The Boolean value that indicates whether the user upgraded to another subscription. */ isUpgraded?: boolean; /** * The identifier that contains the promo code or the promotional offer identifier. */ offerIdentifier?: string; /** * A value that represents the promotional offer type. */ offerType?: OfferType; /** * The UNIX time, in milliseconds, that represents the purchase date of the original transaction identifier. */ originalPurchaseDate: number; /** * The transaction identifier of the original purchase. */ originalTransactionId: string; /** * The unique identifier of the product. */ productId: string; /** * The UNIX time, in milliseconds, that the App Store charged the user’s account for a purchase, restored product, subscription, or subscription renewal after a lapse. */ purchaseDate: number; /** * The number of consumable products the user purchased. */ quantity: number; /** * The UNIX time, in milliseconds, that Apple Support refunded a transaction. */ revocationDate?: number; /** * The reason that the App Store refunded the transaction or revoked it from family sharing. */ revocationReason?: number; /** * The UNIX time, in milliseconds, that the App Store signed the JSON Web Signature (JWS) data. */ signedDate: number; /** * The identifier of the subscription group the subscription belongs to. */ subscriptionGroupIdentifier?: string; /** * The unique identifier of the transaction. */ transactionId: string; /** * The type of the in-app purchase. */ type: Type; /** * A unique ID that identifies subscription purchase events across devices, including subscription renewals. */ webOrderLineItemId: string; } /** * @link https://developer.apple.com/documentation/appstoreserverapi/jwsrenewalinfodecodedpayload */ export interface JWSRenewalInfoDecodedPayload { /** * The identifier of the product that renews at the next billing period. */ autoRenewProductId: string; /** * The renewal status of the auto-renewable subscription. */ autoRenewStatus: AutoRenewStatus; /** * The server environment, either sandbox or production. */ environment: Environment; /** * The reason the subscription expired. */ expirationIntent?: ExpirationIntent; /** * The time when the grace period for subscription renewals expires. */ gracePeriodExpiresDate?: number; /** * The Boolean value that indicates whether the App Store is attempting to automatically renew an expired subscription. */ isInBillingRetryPeriod?: boolean; /** * The offer code or promotional offer identifier. */ offerIdentifier?: string; /** * The type of the subscription offer. */ offerType?: OfferType; /** * The transaction identifier of the original purchase associated with this transaction. */ originalTransactionId: string; /** * The status that indicates whether the auto-renewable subscription is subject to a price increase. */ priceIncreaseStatus?: PriceIncreaseStatus; /** * The unique identifier of the product. */ productId: string; /** * 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. */ recentSubscriptionStartDate: number; /** * The UNIX time, in milliseconds, that the App Store signed the JSON Web Signature data. */ signedDate: number; } /** * @link https://developer.apple.com/documentation/appstoreserverapi/lasttransactionsitem */ export interface LastTransactionsItem { /** * The original transaction identifier of the auto-renewable subscription. */ originalTransactionId: string; /** * The status of the auto-renewable subscription. */ status: SubscriptionStatus; /** * The subscription renewal information signed by the App Store, in JSON Web Signature (JWS) format. */ signedRenewalInfo: JWSRenewalInfo; /** * The transaction information signed by the App Store, in JWS format. */ signedTransactionInfo: JWSTransaction; } /** * @link https://developer.apple.com/documentation/appstoreserverapi/subscriptiongroupidentifieritem */ interface SubscriptionGroupIdentifierItem { /** * The subscription group identifier of the auto-renewable subscriptions in the lastTransactions array. */ subscriptionGroupIdentifier: string; /** * An array of the most recent App Store-signed transaction information and App Store-signed renewal information for all auto-renewable subscriptions in the subscription group. */ lastTransactions: LastTransactionsItem[]; } /** * @link https://developer.apple.com/documentation/appstoreserverapi/statusresponse */ export interface StatusResponse { /** * An array of information for auto-renewable subscriptions, including App Store-signed transaction information and App Store-signed renewal information. */ data: SubscriptionGroupIdentifierItem[]; /** * The server environment, sandbox or production, in which the App Store generated the response. */ environment: Environment; /** * Your app’s App Store identifier. */ appAppleId: string; /** * Your app’s bundle identifier. */ bundleId: string; } /** * @link https://developer.apple.com/documentation/appstoreserverapi/orderlookupresponse */ export interface OrderLookupResponse { /** * The status that indicates whether the order ID is valid. */ status: OrderLookupStatus; /** * An array of in-app purchase transactions that are part of order, signed by Apple, in JSON Web Signature format. */ signedTransactions: JWSTransaction[]; }