circle-exclamation
This documentation is currently under development. Certain sections are not yet complete and will be added shortly.

Update pass using flat files

Bulk update wallet passes by uploading RFC 4180 CSV files via SFTP.

The Wallet Crew can update existing Apple Wallet and Google Wallet passes from a CSV file. This is useful for bulk updates and for legacy systems that can only export flat files.

circle-exclamation
chevron-rightReal-world exampleshashtag
  • A gift card program recalculates balance every hour. A flat file export updates additionalData.balance for all active cards.

  • A marketing automation team exports a CSV to prepare a push campaign. Each row updates additionalData.notification_content before sending notifications.

  • A ticketing system exports last-minute changes (gate, seat, or schedule). A bulk CSV update keeps tickets accurate right before doors open.

  • A gym chain exports membership status every night (active, frozen, expired). The next day, members see the correct status at check-in.

  • A support team fixes a wrong identifier at scale by uploading a one-time correction file.

Diagram showing a CSV file uploaded to SFTP, then processed by The Wallet Crew to update passes.
Flat file imports let you update many passes in one operation.

Process overview

  1. Upload your CSV file to the provided SFTP server.

  2. The Wallet Crew automatically detects new files and processes them immediately.

  3. Once processed, the file is moved to .processed/ or .error/.

  4. Each row is interpreted as an update instruction for a single pass.

  5. Passes are queued for update and processed asynchronously.

File format

Uploaded files must be valid RFC 4180arrow-up-right{target="_blank"} compliant CSV files.

  • Separators: Either , or ;

  • Header row: Mandatory. Must contain column names.

  • Encoding: UTF-8 recommended

  • Parser: The Wallet Crew uses CsvHelperarrow-up-right{target="_blank"} with default options

Each data row targets a single pass and can include multiple updates to its fields, additionalData, or metadata.

File name

There are no strict file name requirements. However, for better organization and traceability, we recommend the following naming convention:

Examples:

Notes:

  • The file extension must be .csv.

  • Avoid using special characters (spaces, #, %, &, etc.) in file names

  • If you are using a script or integration to generate files, adopting a timestamp-based naming pattern helps avoid duplication and makes debugging easier.

  • If the file is large, The Wallet Crew briefly monitors its size to ensure it is fully written before processing.

Column reference

Pass identifier columns

To select the target pass, use one of the following columns:

  • id: Internal The Wallet Crew pass identifier

  • id.<externalId>: External identifier name (as configured in your tenant) Example: id.y2.customerId

At least one identifier column must be present in each row.

Additional data columns

To update additional data on the pass, use the following syntax:

  • additionalData.<key>: Updates the key in the pass’s additionalData dictionary Example: additionalData.notification_content

Multiple additionalData keys can be updated in one row.

Pass template

To switch the pass to a different template, include:

  • passType: The new template name (as defined in The Wallet Crew)

If omitted or empty, the pass will retain its current template.

Metadata refresh

To trigger a recomputation of internal metadata (e.g., barcodes, expiration, display fields):

  • updateMetadata: Set to true to trigger metadata update

External identifiers

To update an external identifier, use the following syntax:

  • identifiers.<idName>: Updates the identifier named idName Example: identifiers.y2.customerId

SFTP access

Upload your CSV files to the SFTP endpoint for your environment:

  • QA: triglav-qa.walletcrew.net (port 22)

  • Production: triglav.walletcrew.net (port 22)

Contact The Wallet Crew Support to request your SFTP credentials.

Examples

Example 1: Update Notification and Offer URL

Example 2: Update by External ID with Loyalty Info

Example 3: Switch Pass Template and Force Metadata Refresh

Example 4: Update external id y2.customerId and force metadata refresh

Extensibility and custom mapping

The Wallet Crew supports custom file transformations using import scripts.

This allows you to:

  • Adapt your existing export format (e.g., from a CRM or POS)

  • Map legacy column names to The Wallet Crew-compatible keys

  • Inject dynamic values (e.g., current date, calculated points)

  • Enrich data with lookups from external sources

To customize the import process, you can create an import.custom.js file in the scripts/ folder in Advanced configuration.

If you have the following CSV file:

You can use the following script:

Contact our team if you need help implementing custom mapping logic for your imports.

Tips and best practices

  • Ensure identifiers are accurate to avoid skipped rows.

  • Always test your file format in QA before uploading to production.

  • Use consistent encoding (UTF-8) to avoid parsing issues with special characters.

FAQ

chevron-rightDo you create new passes, or only update existing ones?hashtag

This flow updates existing passes. Each row must target a pass using id or an external identifier column like id.y2.customerId.

chevron-rightWhat happens if a row has both id and id.<externalId>?hashtag

Use one identifier per row if you can. If you include several, make sure they all point to the same pass. This avoids ambiguity and makes troubleshooting easier.

chevron-rightCan I update multiple additionalData keys in one row?hashtag

Yes. Add one column per key, using additionalData.<key>. The row will update all provided keys in one pass update.

Last updated