Skip to content

Request Types

Types for create and update operations.

Pass Template Requests

typescript
type CreatePassTemplateRequest = {
  name: string;
  workspace_id: string;
  project_id: string;
  apple_pass_type_identifier: string;
  description?: string;
  background_color?: string;
  label_color?: string;
  value_color?: string;
  logo_text?: string;
  barcode_type?: BarcodeType;
  barcode_id?: string;
  barcode_label?: string;
  top_field_label?: string;
  top_field_value?: string;
  front_fields?: PassField[];
  secondary_fields?: PassField[];
  back_fields?: PassField[];
  locations?: Location[];
  location_message?: string;
  tier_id?: string;
  tier_label?: string;
};

type UpdatePassTemplateRequest = Partial<CreatePassTemplateRequest>;

Pass Requests

typescript
type CreatePassRequest = {
  pass_template_id: string;
  project_id: string;
  workspace_id: string;
  full_name?: string;
  email?: string;
  notification?: string;
  custom_fields?: Record<string, any>;
};

type UpdatePassRequest = Partial<{
  pass_template_id: string;
  full_name: string;
  email: string;
  notification: string;
  custom_fields: Record<string, any>;
}>;

Segment Requests

typescript
type CreateSegmentRequest = {
  workspace_id: string;
  name: string;
  description?: string;
  filters?: SegmentFilter[];
};

type UpdateSegmentRequest = {
  name?: string;
  description?: string;
  filters?: SegmentFilter[];
};

Campaign Requests

typescript
type CreateCampaignRequest = {
  workspace_id: string;
  name: string;
  description?: string;
  scheduled_at?: string;
  segment_id?: string;
};

type UpdateCampaignRequest = Partial<{
  name: string;
  description: string;
  segment_id: string;
  scheduled_at: string;
}>;

interface CreateCampaignActionRequest {
  action_type: CampaignActionType;
  action_config: ActionConfig;
}

type ActionConfig =
  | PushNotificationConfig
  | TemplateSwitchConfig
  | CustomFieldUpdateConfig;

interface PushNotificationConfig {
  notification_message: string;
}

interface TemplateSwitchConfig {
  target_template_id: string;
  preserve_custom_fields?: boolean;
}

interface CustomFieldUpdateConfig {
  custom_field_updates: Record<string, any>;
}

Event Requests

typescript
interface CreateFieldChangeEventRequest {
  pass_id: string;
  event_type?: FieldChangeEventType;
  field_name: string;
  old_value?: string | null;
  new_value?: string | null;
  event_timestamp?: string;
  external_id?: string;
  source?: string;
  metadata?: Record<string, unknown>;
}

interface CreateTransactionEventRequest {
  pass_id: string;
  event_type: TransactionEventType;
  amount: number;
  currency: string;
  event_timestamp?: string;
  external_id?: string;
  source?: string;
  metadata?: Record<string, unknown>;
}

interface CreateActivityEventRequest {
  pass_id: string;
  event_type: ActivityEventType;
  event_timestamp?: string;
  external_id?: string;
  source?: string;
  metadata?: Record<string, unknown>;
}

Distribution Requests

typescript
type CreateDistributionRequest = {
  workspace_id: string;
  project_id: string;
  pass_template_id: string;
  status?: DistributionStatus;
  page_address?: string;
  landing_html?: string;
  landing_html_success?: string;
  email_html?: string;
  email_topic?: string;
  email_reply_to?: string;
  css?: string;
  form_fields_config?: FormFieldsConfig;
};

type UpdateDistributionRequest = Partial<CreateDistributionRequest>;

Data Model Requests

typescript
type CreateDataModelFieldRequest = {
  field_name: string;
  field_label: string;
  field_type: DataModelFieldType;
  default_value?: string | null;
  allowed_values?: string[] | null;
  is_required?: boolean;
  sort_order?: number;
};

type UpdateDataModelFieldRequest = Partial<CreateDataModelFieldRequest>;

WalletHero Documentation