Skip to content

DistributionsService

Create pass distribution landing pages and email workflows.

Methods

MethodDescription
list(options?)List all distributions
get(id)Get a single distribution
create(data)Create a distribution
update(id, data)Update a distribution
delete(id)Delete a distribution
submit(data)Submit distribution form
resendPass(data)Resend pass email

create()

Create a new distribution.

typescript
const distribution = await client.distributions.create({
  workspace_id: 'workspace-uuid',
  project_id: 'project-uuid',
  pass_template_id: 'template-uuid',
  status: 'draft',
  page_address: 'summer-rewards',
  email_topic: 'Your Rewards Card',
  email_reply_to: '[email protected]',
  form_fields_config: {
    marketing_consent: {
      enabled: true,
      required: false,
      label: 'Send me special offers'
    }
  }
});

update()

Update and publish a distribution.

typescript
await client.distributions.update(distribution.id, {
  status: 'published',
  landing_html: '<h1>Get Your Rewards Card</h1>...',
  landing_html_success: '<h1>Thank You!</h1>...',
  email_html: '<h1>Your Card is Ready</h1>...'
});

submit()

Submit a form to claim a pass.

typescript
const result = await client.distributions.submit({
  distribution_id: 'distribution-uuid',
  email: '[email protected]',
  full_name: 'Jane Customer',
  custom_fields: {
    phone: '+1234567890'
  },
  marketing_consent: true
});

console.log('Pass ID:', result.data.pass_id);
console.log('Apple URL:', result.data.apple_pass_url);

resendPass()

Resend a pass via email.

typescript
await client.distributions.resendPass({
  pass_id: 'pass-uuid',
  email: '[email protected]'  // Optional, uses pass email if not provided
});

Distribution Status

StatusDescription
draftNot accepting submissions
publishedLive and accepting submissions

WalletHero Documentation