// niantic_platform_iap.proto // Reconstructed from com.nianticlabs.pokemongo 0.431.0 (versionCode 2026092402, arm64-v8a). // Field numbers were recovered from the compiled parsers; names come from the C# types, // so some may differ from Niantic's originals. Study material, not an official API. syntax = "proto3"; package niantic.platform.iap; message AvailableSkuProto { string id = 1; bool is_third_party_vendor_item = 2; repeated CurrencyQuantityProto price = 3; repeated CurrencyQuantityProto currency_granted = 4; repeated GameItemContentProto game_item_content = 5; repeated SkuPresentationProto presentation_data = 6; bool can_be_purchased = 7; string subscription_id = 8; repeated StoreRuleDataProto rule_data = 9; string offer_id = 10; bool has_purchased_subscription = 11; string subscription_group_id = 12; int32 subscription_level = 13; int32 rewarded_spend_points = 14; } message CurrencyQuantityProto { string currency_type = 1; int32 quantity = 2; } message CurrencyUpdateProto { string currency_name = 1; int32 currency_delta = 2; int32 currency_balance = 3; int32 fiat_purchased_balance = 4; } message GameItemContentProto { string type = 1; int32 quantity = 2; } message GetActiveSubscriptionsRequestProto { } message GetActiveSubscriptionsResponseProto { repeated InAppPurchaseSubscriptionInfo subscription = 1; } message GetAvailableSkusAndBalancesOutProto { Status status = 1; repeated AvailableSkuProto available_sku = 2; repeated CurrencyQuantityProto balance = 3; string player_token = 4; repeated AvailableSkuProto blocked_sku = 5; uint64 processed_at_ms = 6; RewardedSpendStateProto rewarded_spend_state = 7; string next_page_token = 8; enum Status { STATUS_UNSET = 0; STATUS_SUCCESS = 1; STATUS_FAILURE = 2; } } message GetAvailableSkusAndBalancesProto { string store_name = 1; string page_token = 2; } message GetRewardTiersRequestProto { } message GetRewardTiersResponseProto { Status status = 1; RewardedSpendTierListProto reward_tier_list = 2; enum Status { STATUS_UNSET = 0; STATUS_SUCCESS = 1; STATUS_FAILURE = 2; } } message InAppPurchaseSubscriptionInfo { string subscription_id = 1; State state = 2; string sku_id = 3; NativeStoreVendor native_store_vendor = 4; repeated PurchasePeriod purchase_period = 5; int64 last_notification_time_ms = 6; PaymentState payment_state = 7; string lookup_id = 8; map tiered_sub_price = 9; enum NativeStoreVendor { NATIVE_STORE_VENDOR_UNKNOWN_STORE = 0; NATIVE_STORE_VENDOR_GOOGLE = 1; NATIVE_STORE_VENDOR_APPLE = 2; NATIVE_STORE_VENDOR_DESKTOP = 3; NATIVE_STORE_VENDOR_XSOLLA = 4; NATIVE_STORE_VENDOR_SOFTBANK = 5; NATIVE_STORE_VENDOR_FASTSPRING = 6; } enum PaymentState { PAYMENT_STATE_UNKNOWN_STATE = 0; PAYMENT_STATE_SUCCESS = 1; PAYMENT_STATE_BILLING_ISSUE = 2; } message PurchasePeriod { int64 subscription_end_time_ms = 1; int64 receipt_timestamp_ms = 2; string receipt = 3; SkuStorePrice store_price = 4; string country_code = 5; string sku_id = 7; } enum State { STATE_UNKNOWN = 0; STATE_ACTIVE = 1; STATE_CANCELLED = 2; STATE_EXPIRED = 3; STATE_GRACE_PERIOD = 4; STATE_FREE_TRIAL = 5; STATE_PENDING_PURCHASE = 6; STATE_REVOKED = 7; STATE_ON_HOLD = 8; STATE_OFFER_PERIOD = 9; } } message PurchaseSkuOutProto { Status status = 1; repeated bytes added_inventory_item = 2; repeated CurrencyUpdateProto currency_update = 3; enum Status { STATUS_UNSET = 0; STATUS_SUCCESS = 1; STATUS_FAILURE = 2; STATUS_BALANCE_TOO_LOW = 3; STATUS_SKU_NOT_AVAILABLE = 4; STATUS_OVER_INVENTORY_LIMIT = 5; STATUS_OFFER_NOT_AVAILABLE = 6; } } message PurchaseSkuProto { string sku_id = 1; string offer_id = 2; string store_name = 3; } message RedeemGoogleReceiptOutProto { Status status = 1; string transaction_token = 2; enum Status { STATUS_UNSET = 0; STATUS_SUCCESS = 1; STATUS_FAILURE = 2; } } message RedeemGoogleReceiptProto { string receipt = 1; string receipt_signature = 2; string purchase_currency = 3; int32 price_paid_e6 = 4; int64 price_paid_e6_long = 5; string country_code = 6; } message RedeemSamsungReceiptOutProto { Status status = 1; string purchase_id = 2; enum Status { STATUS_UNSET = 0; STATUS_SUCCESS = 1; STATUS_FAILURE = 2; } } message RedeemSamsungReceiptProto { string purchase_data = 1; string purchase_id = 2; string purchase_currency = 3; int64 price_paid_e6_long = 4; } message RewardedSpendItemProto { string item = 1; uint32 quantity = 2; string image_url = 3; string localized_name = 4; } message RewardedSpendStateProto { uint64 start_timestamp_ms = 1; uint64 earned_points = 2; uint64 claimed_tier_points = 3; uint64 earned_tier_points = 4; uint32 earned_tier = 5; } message RewardedSpendTierListProto { repeated RewardedSpendTierProto rewarded_spend_tiers = 1; uint64 start_time_ms = 2; uint64 end_time_ms = 3; } message RewardedSpendTierProto { uint32 min_reward_point = 1; repeated RewardedSpendItemProto rewarded_spend_items = 2; } message SkuPresentationProto { string key = 1; string value = 2; } message SkuStorePrice { string currency_code = 2; int64 price_paid_e6 = 3; } message StoreRuleDataProto { string rule_name = 1; repeated RuleEntry entry = 2; message RuleEntry { string key = 1; string value = 2; } }