Skip to main content
Batch Pass Creation allows you to create large numbers of passes in a single operation using a CSV file. Use this approach when you need to issue passes at scale, such as during migrations, bulk onboarding or campaign launches.
This guide covers creating passes via CSV upload in the PassEntry Dashboard. If you want to create passes programmatically or integrate bulk issuance into automated workflows, see the Batch Pass Creation API documentation.

Creating a Batch via CSV

Head over to the Bulk Operations section, you will find “Create via CSV” button. Then, create a new batch.
Optionally enter a batch name, and select the pass template you want the passes to be created under. Sample CSV Once you’ve selected your Pass Template, you will be able to download a sample CSV, specific to your chosen Pass Template. You can download an example CSV here: HERE

Configuration

Ensure the CSV is formatted in UTF-8 encoding.

Fixed headers

For more information on the functionality of each field, please refer to the API Reference.
Column NameDescriptionRequired?ExampleType
ext_idExternal ID for the passYesPass12345Text (Any)
group_tagsComma separated tags to group passesNosummer_offer_24Text (Any)
nfc_enabledBoolean to enable NFCNotrueBoolean (true or false)
nfc_sourceSource of NFC dataNoextIdText (extId or uuid or custom)
nfc_custom_valueCustom value for NFC, nfc_source must be set to customNosummer_20_offText (any)
barcode_enabledBoolean to enable barcodeNotrueBoolean (true or false)
barcode_typeType of barcodeNoqrText (qr, code128, aztec or pdf417)
barcode_sourceSource of barcodeNoextIdText (extId, uuid or custom)
barcode_valueValue for the barcode, barcode_source must be set to customNoabcd12345Text (Any)
barcode_display_textBoolean to display barcode value as textNotrueBoolean (true or false)
expires_atExpiration date and time for the passNo2024-08-14T18:12:11ZDatetime in iso8601 format

Dynamic headers

As each template might have custom fields, this can be identified and set via custom, dynamic headers. When creating a template, you set an ID for each field. This can then be targeted in your CSV by including the prefix passfield_ followed by your template ID. Example: In your pass template, you’ve chosen to display Field 1 as “Customer Name”, and given it the ID of “name”. Then, for each row in your CSV, you’ve entered a different name, to correspond with the data downloaded from your system. In which case, your CSV would need to have a row called passfield_name

Special Characters and Markdown

When working with CSV files that include special characters such as commas, quotes, or line breaks—and especially when embedding HTML or markdown-style content—it’s important to format fields correctly to ensure they are parsed reliably. Follow these rules:
  • Commas (,): Wrap the entire field in double quotes (").
  • Line breaks (\n): Wrap the entire field in double quotes (").
  • Double quotes (") inside fields: Use double quotes around the field, and escape inner quotes by doubling them ("").
  • Markdown or HTML: Use double quotes around the full field, and use single quotes inside HTML attributes to avoid quote conflicts, or escape double quotes if needed.
For example:
Desired Field ContentCSV-Compliant Value
London, UK”London, UK”
London\nUK (line break)“London\nUK”
<a href="https://example.com">Link</a>"<a href='https://example.com'>Link</a>"
”Quoted Text""""Quoted Text"""
<a href="https://example.com">"Link"</a>"<a href='https://example.com'>""Link""</a>"
This will ensure that the special characters are handled correctly, and the markdown is rendered as expected.

Results

Once you’ve uploaded your CSV, you’ll be able to track the progress of your batch on the Passes page. The batch will be listed in the “Batches” section, and you can click on it to see the progress of the batch. If there are any errors, you’ll be able to download a CSV of the errors that occurred, and once you’ve fixed them, you can re-upload the CSV to try again. Once the batch is complete, you’ll be able to download a CSV of the passes created in the following format:

FAQ

When should I use batch pass creation instead of the API?

Use CSV batch creation for one-off or infrequent bulk operations, such as migrations or campaign launches. For recurring or automated workflows, use the standard pass creation API to issue passes programmatically.

What happens if some rows in my CSV fail?

If any rows fail, you can download an error CSV showing which rows failed and why. You can fix the errors and re-upload the CSV to retry only the failed passes.

Is there a limit to how many passes I can create in one batch?

The maximum batch size depends on your plan and system limits. Large CSV files are supported, but extremely large batches may take longer to process.