Descriptive reference of the main models used across SDK modules.
Table of Contents
Push
Module: push · Package (Android): Com.Indigitall.Android.Push.Models · File: Push.cs · Extends: CorePush
Represents a push notification received from the Indigitall platform. Available on the Android platform through the native binding. Contains all the data needed to display and handle a notification.
iOS note: On iOS, the push notification payload is handled via
UNNotificationContentand theNotificationServiceextension. The equivalent fields are populated from the APNs payload.
| Property | Type | Required | Description |
|---|---|---|---|
Id | int | No | Internal push notification identifier |
AppKey | string? | Yes | Application key used to identify the app in the Indigitall platform |
Title | string? | No | Title of the push notification displayed to the user |
Body | string? | No | Main text body of the push notification |
Icon | string? | No | URL of the icon image to display in the notification |
Image | string? | No | URL of the large image to display in the expanded notification |
Gif | IList<string>? | No | List of URLs for GIF frames to display in the notification |
Layout | Layout (enum) | No | Display layout of the notification. Values: layout_native, half_width, full_width, custom. Default: layout_native |
Data | string? | No | Custom payload string to pass arbitrary data to the app when the notification is handled |
Silent | bool | No | If true, the notification is delivered silently without showing any UI. Default: false |
SecuredData | string? | No | Decrypted secured payload attached to the notification. Populated automatically from securedData/securedKey fields |
Disposable | bool | No | If true, the notification will be dismissed after being displayed. Default: true |
SendingId | string? | No | Identifier of the sending campaign instance |
CampaignId | string? | No | Identifier of the campaign this push belongs to |
PushId | int | No | Identifier of the push template |
JourneyStateId | int | No | Identifier of the journey state associated with this push |
JourneyExecution | int | No | Journey execution counter |
CjCurrentStateId | int | No | Current state ID in the customer journey |
SendEventAck | bool | No | If true, an acknowledgement event should be sent back to the server upon reception. Default: false |
ApplicationId | Integer? | No | Indigitall application identifier |
Constants
| Constant | Value | Description |
|---|---|---|
ExtraPush | "com.indigitall.android.EXTRA_PUSH" | Intent extra key used to retrieve the push payload from the bundle |
PushAckReceived | ".PUSH_ACK_RECEIVED" | Broadcast action suffix for push acknowledgement |
PushReceived | ".action.PUSH_RECEIVED" | Broadcast action suffix for push reception |
Usage (Android)
// In an Activity that handles the push tap action
if (Intent?.Extras?.ContainsKey(Push.ExtraPush) == true)
{
var push = new Push(this, Intent.Extras.GetString(Push.ExtraPush));
string? securedData = push.SecuredData;
string? customData = push.Data;
}Device
Module: push · Namespace: Com.Indigitall.Maui.Push.Models · File: sdk.Maui.Push/Models/INDMDevice.cs
Represents the device registered in the Indigitall platform. Returned in initialization callbacks and used to identify the device across sessions.
| Property | Type | Required | Description |
|---|---|---|---|
DeviceId | string | Yes | Unique identifier assigned to this device by the Indigitall platform |
PushToken | string | No | Platform push token (FCM on Android, APNs on iOS) used to deliver notifications |
Enabled | bool | No | Whether the device has push notifications enabled. Default: true |
Platform | string | No | Platform name (e.g., android, ios) |
Version | string | No | SDK version string |
ProductName | string | No | SDK product name. Default: value from INDMConstants.ProductName |
ProductVersion | string | No | SDK product version. Default: value from INDMConstants.ProductVersion |
OsName | string | No | Operating system name |
OsVersion | string | No | Operating system version |
DeviceBrand | string | No | Device manufacturer brand (e.g., Samsung, Apple) |
DeviceModel | string | No | Device model name |
Operator | string | No | Mobile network operator |
DeviceType | string | No | Device form factor (e.g., phone, tablet) |
AppVersion | string | No | Host application version |
PersistentCode | string | No | Persistent token used for long-term device identification |
Locale | string | No | Device locale (e.g., en_US) |
TimeZone | string | No | Device time zone identifier (e.g., Europe/Madrid) |
TimeOffset | int | No | UTC offset in minutes |
Usage
Indigitall.Init(config,
onIndigitallInitialized: (permissions, device) =>
{
Console.WriteLine($"Device ID: {device.DeviceId}");
Console.WriteLine($"Push token: {device.PushToken}");
},
onNewUserRegistered: (device) =>
{
Console.WriteLine($"New user: {device.DeviceId}");
},
onErrorInitialized: (code, message, description) => { }
);Customer
Module: sdk · Namespace: Com.Indigitall.Maui.Models · File: sdk.Maui/Models/INDMCustomer.cs
Represents a customer (end user) profile registered in the Indigitall platform. Used to link a device to a specific user identity via LogIn / LogOut operations.
| Property | Type | Required | Description |
|---|---|---|---|
Id | string | No | Internal Indigitall customer record identifier |
CustomerId | string | Yes | External customer identifier provided by the integrating application |
ApplicationId | string | No | Indigitall application identifier associated with this customer |
CreatedAt | string | No | ISO 8601 timestamp of when the customer record was created |
UpdatedAt | string | No | ISO 8601 timestamp of the last update to the customer record |
Related models
INDMCustomerField— Represents a single key/value pair of custom metadata associated with a customer.
| Property | Type | Description |
|---|---|---|
CustomerFieldKey | string | Metadata field key |
CustomerFieldValue | string | Metadata field value |
InboxNotification
Module: push · Namespace: Com.Indigitall.Maui.Push
Represents a push notification stored in the user's inbox on the Indigitall platform. The inbox is a server-side archive of previously delivered notifications that can be retrieved and displayed in the app.
Note: The MAUI SDK does not define a dedicated
INDMInboxNotificationmodel class. Inbox retrieval is performed through the Inbox REST API using the URL configured inINDMConfiguration.UrlInboxApi. The response is a paginated list of push notification records with the same fields as thePushmodel.
INDMConfiguration inbox properties
| Property | Type | Description |
|---|---|---|
UrlInboxApi | string | Base URL of the Inbox API endpoint (e.g., https://device-api.indigitall.com/v1) |
Inbox query parameters (used in API requests)
| Parameter | Description |
|---|---|
PARAMS_INBOX_EXTERNALID | Filter by external device/user ID |
PARAMS_INBOX_PAGE | Page number for pagination |
PARAMS_INBOX_PAGE_SIZE | Number of records per page |
PARAMS_INBOX_DATE_FROM | Filter notifications sent on or after this date |
PARAMS_INBOX_DATE_TO | Filter notifications sent on or before this date |
PARAMS_INBOX_STATUS | Filter by notification status (read / unread) |
InApp
Module: inapp · Namespace: Com.Indigitall.Maui.InApp.Models · File: sdk.Maui.InApp/Models/INDMInApp.cs
Represents an in-app message configured in the Indigitall platform. In-app messages are rich content units displayed inside the application without requiring a push notification.
| Property | Type | Required | Description |
|---|---|---|---|
InAppId | int | Yes | Unique identifier of the in-app message |
LastVersionId | int | No | Identifier of the latest published version of this in-app message |
ShowOnce | bool | No | If true, the message is displayed only once per device. Default: false |
CacheTtl | double | No | Time-to-live in seconds for the cached in-app content |
ExpiredDate | string | No | ISO 8601 expiry date after which the message will no longer be shown |
CreationDate | string | No | ISO 8601 date when the in-app message was created |
Version | int | No | Version number of the in-app message content |
Name | string | No | Internal name of the in-app message (for identification in the console) |
Properties | INDMInAppProperties | No | Display and interaction properties of the in-app message |
Schema | INDMInAppSchema | No | Layout schema defining dimensions and code of the template |
InAppShow | INDMInAppShow | No | Statistics about how many times the message has been shown or clicked |
Filters | INDMInAppFilters | No | Targeting filters controlling when and to whom the message is shown |
CustomData | object | No | Arbitrary custom data associated with the in-app message |
Related models
INDMInAppProperties — Display and interaction configuration for an in-app message.
| Property | Type | Description |
|---|---|---|
Action | INDMInAppAction | Action executed when the user interacts with the message |
ContentUrl | string | URL of the HTML/web content to display inside the in-app |
ShowTime | int | Auto-dismiss delay in seconds (0 = no auto-dismiss) |
NumberOfClicks | int | Maximum number of times the message can be clicked before being dismissed |
NumberOfShows | int | Maximum number of times the message can be shown |
DismissForever | bool | If true, the message is permanently dismissed after the first interaction |
INDMInAppAction — Defines the action executed when the user taps an in-app message.
| Property | Type | Description |
|---|---|---|
App | string | Deep-link URI to open within the application |
Url | string | External URL to open in the browser |
Call | string | Phone number to dial |
Market | string | App store URL or package identifier to open |
Share | string | Text content to share via the system share sheet |
ActionId | int | Numeric identifier of the predefined action |
INDMInAppSchema — Layout dimensions of the in-app template.
| Property | Type | Description |
|---|---|---|
Code | string | Template schema code |
Width | int | Template width in dp/pt |
Height | int | Template height in dp/pt |
INDMInAppShow — Display statistics for an in-app message.
| Property | Type | Description |
|---|---|---|
TimesShowed | int | Number of times the message has been displayed |
TimesClicked | int | Number of times the user has clicked/tapped the message |
WasDismissed | bool | Whether the message has been dismissed by the user |
INDMInAppFilters — Targeting filters for an in-app message.
| Property | Type | Description |
|---|---|---|
Platforms | string[] | Platforms the message is targeted to (e.g., android, ios) |
Areas | int[] | Geofence area IDs |
Audience | object | Audience segmentation criteria |
Topics | INDMInAppFiltersTopics | Topic subscription-based targeting |
ExternalApps | INDMExternallApp[] | Linked external application filters |
DeviceCodes | string[] | Explicit list of device codes to target |
DeviceCodesActive | bool | Whether device code filtering is active |
DeviceTypes | string[] | Device types to target (e.g., phone, tablet) |
BrowserTypes | string[] | Browser types to target (web only) |
ActivePushDevices | bool | If true, only targets devices with active push notifications |
LiveActivity
Module: sdk · Namespace: Com.Indigitall.Maui.Models · File: sdk.Maui/Models/INDMLiveActivity.cs
Represents a Live Activity session registered in the Indigitall platform. Live Activities (iOS 16.1+) display real-time updates on the Lock Screen and Dynamic Island. On Android, the equivalent is a persistent foreground notification updated via a dedicated topic.
| Property | Type | Required | Description |
|---|---|---|---|
LiveActivityId | string? | Yes | Unique identifier of the Live Activity record in Indigitall |
LiveActivityExternalId | string? | No | External identifier provided by the host application to correlate with its own data |
ApplicationId | int | No | Indigitall application identifier |
Status | string? | No | Current status of the Live Activity (e.g., active, ended) |
iOSChannelId | string? | No | iOS push-to-start channel identifier used to update the Live Activity |
AndroidTopicId | string? | No | Android FCM topic identifier used to push updates to the equivalent activity |
CreatedAt | string? | No | ISO 8601 timestamp of when the Live Activity was registered |
UpdatedAt | string? | No | ISO 8601 timestamp of the last update |
Related models
INDMLADevice — Lightweight device representation used exclusively during Live Activity registration. Contains the same core device fields as INDMDevice but without push-specific properties like PushToken and PersistentCode.
| Property | Type | Description |
|---|---|---|
DeviceId | string | Device identifier |
Enabled | bool | Whether the device is enabled. Default: true |
Platform | string | Platform name |
Version | string | SDK version |
ProductName | string | SDK product name |
ProductVersion | string | SDK product version |
OsName | string | Operating system name |
OsVersion | string | Operating system version |
DeviceBrand | string | Device manufacturer |
DeviceModel | string | Device model |
DeviceType | string | Device form factor |
AppVersion | string | Host application version |
Locale | string | Device locale |
TimeZone | string | Device time zone |
TimeOffset | int | UTC offset in minutes |
Topic
Module: push · Namespace: Com.Indigitall.Maui.Push.Models · File: sdk.Maui.Push/Models/INDMTopic.cs
Represents a notification topic (segment) on the Indigitall platform. Topics allow users to subscribe or unsubscribe from specific notification categories. Devices that are subscribed to a topic receive all campaigns targeting that topic.
| Property | Type | Required | Description |
|---|---|---|---|
Code | string | Yes | Unique code identifying the topic |
Name | string | No | Human-readable display name of the topic |
Visible | bool | No | If true, the topic is visible to the end user (e.g., in a preferences screen). Default: false |
Subscribed | bool | No | Indicates whether the current device is subscribed to this topic. Default: false |
ParentCode | string | No | Code of the parent topic if this is a sub-topic; null for top-level topics |
Channel | INDMChannel (enum) | No | Notification channel this topic belongs to |
INDMChannel enum
INDMChannel enum| Value | Description |
|---|---|
Push | Standard push notification channel |
InApp | In-app message channel |
Chat | Chat/messaging channel |
Usage
// Get the list of available topics
Indigitall.GetTopics(
onSuccess: (topics) =>
{
foreach (var topic in topics)
{
Console.WriteLine($"{topic.Name} [{topic.Code}] – subscribed: {topic.Subscribed}");
}
},
onFail: (code, message) => { }
);
// Subscribe to a topic
Indigitall.SubscribeToTopics(new[] { "sports", "news" }, onSuccess, onFail);
// Unsubscribe from a topic
Indigitall.UnsubscribeFromTopics(new[] { "sports" }, onSuccess, onFail);