Structures
This section describes all public structures used throughout the Google Play Billing plugin.
Structures contain product information, purchase data, subscription pricing phases, subscription offers, and advanced one-time product offer details returned by Google Play.
All structures are available in both Blueprint and C++.
Purchase
FGooglePlayBillingPurchase
Contains information about a purchase returned by Google Play Billing.
This structure is returned by purchase callbacks, pending purchase processing, and owned purchase queries.
| Field | Type | Description |
|---|---|---|
| Product ID | FString |
Primary Product ID included in the purchase. |
| Purchase State | EGooglePlayBillingPurchaseState |
Current processing state of the purchase. |
| Quantity | int32 |
Quantity of the purchased product. Usually 1 unless multi-quantity purchases are used. |
| Purchase Time | int64 |
Purchase time in milliseconds since the Unix epoch. |
| Developer Payload | FString |
Developer payload associated with the purchase, if provided by Google Play Billing. |
| Order ID | FString |
Google Play order identifier. May be empty for some purchase states. |
| Package Name | FString |
Application Package Name associated with the purchase. |
| Purchase Token | FString |
Token that uniquely identifies the purchase. Required for acknowledgement, consumption, and server-side validation. |
| Signature | FString |
Signature of the purchase data returned by Google Play Billing. |
| Products | TArray<FString> |
Product IDs included in the purchase. Usually contains one Product ID. |
| Is Acknowledged | bool |
Whether the purchase has already been acknowledged. |
| Is Auto Renewing | bool |
Whether the subscription is configured to renew automatically. Only relevant for subscriptions. |
Product Details
FGooglePlayBillingProductDetails
Contains product information returned by a Product Details query.
The structure provides simplified primary price fields for common use cases and complete offer arrays for advanced one-time product and subscription configurations.
| Field | Type | Description |
|---|---|---|
| Product ID | FString |
Product ID configured in Google Play Console. |
| Name | FString |
Product name as configured in Google Play Console. For example, Test Product 1. |
| Title | FString |
Full localized product title returned by Google Play. It may include the application name or Package Name in parentheses, for example Test Product 1 (com.example.app). |
| Description | FString |
Localized product description returned by Google Play. |
| Product Type | EGooglePlayBillingProductType |
Type of the product: one-time product or subscription. |
| Formatted Price | FString |
Primary localized price for display. Uses the first available one-time product offer or the first pricing phase of the first subscription offer. |
| Price Amount Micros | int64 |
Primary price amount in micro-units. |
| Price Currency Code | FString |
Primary ISO 4217 currency code, such as EUR or USD. |
| Offer Token | FString |
Primary Offer Token that can be passed to Launch Google Play Billing Flow. Uses the first available offer and may be empty for simple one-time products. |
| In App Product Offer Details | TArray<FGooglePlayBillingInAppProductOfferDetails> |
Advanced offers and purchase options available for a one-time product. |
| Subscription Offer Details | TArray<FGooglePlayBillingSubscriptionOfferDetails> |
Subscription base plans and offers available for the product. |
Subscription Details
FGooglePlayBillingPricingPhase
Describes one pricing phase in a subscription offer.
A subscription offer may contain multiple phases, such as a free trial, introductory price, and regular recurring price.
| Field | Type | Description |
|---|---|---|
| Billing Cycle Count | int32 |
Number of billing cycles in this pricing phase. |
| Recurrence Mode | EGooglePlayBillingRecurrenceMode |
Recurrence behavior of the pricing phase. |
| Price Amount Micros | int64 |
Price amount in micro-units. For example, 1 EUR is represented as 1000000. |
| Billing Period | FString |
ISO 8601 billing period, such as P1M for one month or P1Y for one year. |
| Formatted Price | FString |
Localized formatted price returned by Google Play. |
| Price Currency Code | FString |
ISO 4217 currency code, such as EUR or USD. |
FGooglePlayBillingSubscriptionOfferDetails
Contains information about a subscription base plan or offer.
| Field | Type | Description |
|---|---|---|
| Pricing Phases | TArray<FGooglePlayBillingPricingPhase> |
Full pricing sequence for the subscription offer. |
| Base Plan ID | FString |
Base Plan ID configured in Google Play Console. |
| Offer ID | FString |
Offer ID configured in Google Play Console. Empty when the entry represents a base plan without a separate offer. |
| Offer Token | FString |
Offer Token required to purchase this subscription option. |
| Offer Tags | TArray<FString> |
Custom offer tags configured in Google Play Console. |
One-Time Product Offers
FGooglePlayBillingInAppProductOfferDetails
Contains detailed information about a one-time product purchase option or offer.
| Field | Type | Description |
|---|---|---|
| Offer Token | FString |
Offer Token used to purchase this one-time product offer. |
| Offer ID | FString |
Offer ID configured in Google Play Console, if available. |
| Purchase Option ID | FString |
Purchase Option ID configured in Google Play Console, if available. |
| Offer Tags | TArray<FString> |
Custom offer tags configured in Google Play Console. |
| Price Amount Micros | int64 |
Current offer price in micro-units. |
| Formatted Price | FString |
Localized formatted offer price returned by Google Play. |
| Price Currency Code | FString |
ISO 4217 currency code of the offer price. |
| Full Price Micros | int64 |
Original full price in micro-units, if available. |
| Discount Display Info | FGooglePlayBillingInAppProductDiscountDisplayInfo |
Discount information available for the offer. |
| Limited Quantity Info | FGooglePlayBillingInAppProductLimitedQuantityInfo |
Limited quantity information available for the offer. |
| Preorder Details | FGooglePlayBillingInAppProductPreorderDetails |
Preorder information available for the offer. |
| Rental Details | FGooglePlayBillingInAppProductRentalDetails |
Rental information available for the offer. |
| Valid Time Window | FGooglePlayBillingInAppProductValidTimeWindow |
Time period during which the offer is available. |
FGooglePlayBillingInAppProductDiscountDisplayInfo
Contains display information for a one-time product discount.
| Field | Type | Description |
|---|---|---|
| Has Discount Display Info | bool |
Whether discount display information is available. |
| Has Percentage Discount | bool |
Whether a percentage discount value is available. |
| Percentage Discount | int32 |
Percentage discount value. For example, 25 represents 25% off. |
| Discount Amount | FGooglePlayBillingInAppProductDiscountAmount |
Fixed discount amount information, if available. |
FGooglePlayBillingInAppProductDiscountAmount
Contains a fixed discount amount for a one-time product offer.
| Field | Type | Description |
|---|---|---|
| Has Discount Amount | bool |
Whether fixed discount amount information is available. |
| Formatted Discount Amount | FString |
Localized formatted discount amount returned by Google Play. |
| Discount Amount Micros | int64 |
Discount amount in micro-units. |
| Discount Amount Currency Code | FString |
ISO 4217 currency code of the discount amount. |
FGooglePlayBillingInAppProductLimitedQuantityInfo
Contains limited quantity information for a one-time product offer.
| Field | Type | Description |
|---|---|---|
| Has Limited Quantity Info | bool |
Whether limited quantity information is available. |
| Maximum Quantity | int32 |
Maximum quantity available for the offer. |
| Remaining Quantity | int32 |
Remaining quantity available for the offer. |
FGooglePlayBillingInAppProductPreorderDetails
Contains preorder information for a one-time product offer.
| Field | Type | Description |
|---|---|---|
| Has Preorder Details | bool |
Whether preorder information is available. |
| Preorder Release Time Millis | int64 |
Product release time in milliseconds since the Unix epoch. |
| Preorder Presale End Time Millis | int64 |
End time of the preorder presale period in milliseconds since the Unix epoch. |
FGooglePlayBillingInAppProductRentalDetails
Contains rental information for a one-time product offer.
| Field | Type | Description |
|---|---|---|
| Has Rental Details | bool |
Whether rental information is available. |
| Rental Period | FString |
ISO 8601 period describing how long the user can access the rented product. |
| Rental Expiration Period | FString |
ISO 8601 period describing when rental access expires. |
FGooglePlayBillingInAppProductValidTimeWindow
Contains the valid availability window for a one-time product offer.
| Field | Type | Description |
|---|---|---|
| Has Valid Time Window | bool |
Whether valid time window information is available. |
| Has Start Time Millis | bool |
Whether the offer has a defined start time. |
| Start Time Millis | int64 |
Offer start time in milliseconds since the Unix epoch. |
| Has End Time Millis | bool |
Whether the offer has a defined end time. |
| End Time Millis | int64 |
Offer end time in milliseconds since the Unix epoch. |