qonversion-sdk
Version:
⚡️ An SDK to easily access Qonversions Restful API
186 lines (185 loc) • 5.61 kB
TypeScript
/**
* The environment of the purchase
*/
export type Environment = "sandbox" | "prod";
/**
* Webhook event names
*/
export type EventName = "trial_started" | "trial_converted" | "trial_canceled" | "trial_expired" | "trial_still_active" | "trial_billing_retry_entered" | "subscription_started" | "subscription_renewed" | "subscription_refunded" | "subscription_canceled" | "subscription_upgraded" | "subscription_expired" | "subscription_product_changed" | "subscription_billing_retry_entered" | "in_app_purchase";
/**
* Webhook events
*/
export interface Event {
event_name: EventName;
user_id: string;
custom_user_id: string;
identity_id: string;
advertiser_id: string;
time: number;
created_at: number;
product_id: string;
revenue?: {
value: number;
value_usd: number;
currency: string;
is_proceed?: 0 | 1;
proceeds_rate?: number;
};
price: {
value: number;
value_usd: number;
currency: string;
};
transaction: {
transaction_id: number;
original_transaction_id: number;
expires: number;
grace_period_expires: number;
};
device_id?: string;
app_version?: string;
sdk_version?: string;
environment: Environment;
platform?: "iOS" | "Android" | "Stripe";
ip?: string;
country?: string;
old_product_id?: string;
new_product_id?: string;
}
export interface User {
/**
* Time at which the user was created. Measured in seconds since the Unix epoch.
*/
created: number;
/**
* prod or sandbox. Use sandbox environment for testing purpose, such as testing automation
* or testing at store sandbox.
*/
environment: Environment;
/**
* Qonversion User ID
*/
id: string;
/**
* User Identity ID - unique user ID from a partner authorization system.
* Partners can use identity for cross-platform / cross-device access management.
* See docs for additional info.
*/
identity_id: string;
}
export interface CreateUser {
/**
* Time at which the user was created. Measured in seconds since the Unix epoch.
*/
created: number;
/**
* Qonversion User ID
*/
id: string;
/**
* prod or sandbox. Use sandbox environment for testing purpose, such as testing automation
* or testing at store sandbox.
*/
environment: Environment;
}
export interface UserProperty {
/**
* The property key, may be either custom or Qonversion-defined.
* Qonversion-defined keys start from _q_ substring
*/
key: string;
/**
* The value of the property
*/
value: string;
}
export interface CreateUserProperty {
/**
* The saved properties that were successfully created
*/
savedProperties: UserProperty[];
/**
* Properties that failed to be created
*/
propertyErrors: {
/**
* The key of the property that failed to be created
*/
key: string;
/**
* The error message for the property
*/
error: string;
}[];
}
export interface Identity {
/**
* User Identity ID.
*/
id: string;
/**
* Qonversion User is the unique installation of your application. By default, Qonversion User ID
* is generated with the Qonversion SDK and identifies the user without additional
* identification from the partner side.
*/
user_id: string;
}
export interface Entitlement {
/**
* The entitlement ID. For example, premium or pro.
*/
id: string;
/**
* "True" means a user has active entitlement.
* Please note, active = true does not mean that a subscription will be renewed.
* A user can have active entitlement, while auto-renewal for the subscription was switched off.
*/
active: boolean;
/**
* Time at which the entitlement was started. Measured in seconds since the Unix epoch.
*/
started: number;
/**
* The expiration time for the entitlement is measured in seconds since the
* Unix epoch and denotes when the entitlement will no longer be available.
*/
expires: number;
/**
* Source of the purchase via which the entitlement was activated.
* Values:
* – appstore: App Store
* – playstore: Play Store
* – stripe: Stripe
* – unknown: unable to detect the source
* – manual: the entitlement was activated manually
*/
source: "appstore" | "playstore" | "stripe" | "unknown" | "manual";
/**
* A product granted in the entitlement.
*/
product: {
/**
* The product identifier in Qonversion.
*/
product_id: string;
/**
* Subscription linked to the product. Exists only for subscription type products.
*/
subscription?: {
/**
* Possible values:
* – normal: the product is in it's normal period
* – trial: free trial period
* – intro: introductory pricing period
*/
current_period_type: "normal" | "trial" | "intro";
/**
* A renewal state of the product. It can have the following values:
* – will_renew: subscription is active, and auto-renew status is on
* – canceled: auto-renew status is off
* – billing_issue: there was some billing issue.
*/
renewal_state: "will_renew" | "canceled" | "billing_issue";
};
};
}