# PassPass Documentation — Full content
> Complete text version of the PassPass public documentation, for direct ingestion by LLMs.
European event ticketing and management platform. The articles below cover event creation, ticket sales, attendee management, payments, and integrations. Available in English, French, and Dutch — content below is in the source language (English preferred when available).
---
# Resend tickets to a participant
Source: https://docs.passpass.be/en/categories/manage-your-participants/resend-tickets-to-a-participant (en)
Il arrive qu'un participant vous contacte parce qu'il n'a pas reçu son billet, que l'email de confirmation est tombé dans ses spams, ou qu'il a simplement perdu son ticket. Depuis votre dashboard, vous pouvez récupérer le lien de téléchargement de ses billets en quelques clics et le lui transmettre manuellement.
Méthode 1 : depuis la liste des participants
C'est la méthode la plus rapide si vous connaissez le nom ou l'email du participant.
Rendez-vous dans Participants depuis le menu de votre événement
Recherchez le participant par son nom ou email via la barre de recherche
Tout à droite de la ligne du participant, cliquez sur les trois petits points ("..."). Il peut être nécessaire de scroller horizontalement pour voir cette colonne.
Cliquez sur "Copier le lien des tickets"
Le lien est copié dans votre presse-papier. Transmettez-le au participant par le canal de votre choix (email, WhatsApp, SMS...).
Le menu "..." se trouve tout à droite du tableau. Si vous ne le voyez pas, scrollez horizontalement vers la droite.
Méthode 2 : depuis le détail d'une commande
Si vous connaissez le numéro de commande, ou si vous préférez passer par la vue Commandes :
Rendez-vous dans Commandes depuis le menu de votre événement
Cliquez sur l'ID de la commande pour ouvrir le détail
En haut à droite de la page de détail, cliquez sur "Copier le lien des tickets"
Transmettez le lien au participant.
Vous pouvez aussi accéder à la commande depuis la liste des participants : assurez-vous que la colonne Commande est visible dans le tableau (via le bouton "Vue" qui permet de choisir les colonnes affichées), puis cliquez sur le numéro de commande pour ouvrir le détail.
Que contient le lien ?
Le lien de téléchargement reprend tous les billets liés à la commande. Si un acheteur a commandé 3 tickets (pour lui et deux amis, par exemple), le lien donne accès aux 3 billets. Le participant pourra télécharger les tickets en PDF ou les ajouter à son Apple Wallet / Google Wallet.
Le lien est le même que celui envoyé dans l'email de confirmation initial. Il ne s'agit pas d'un nouveau billet — c'est le même lien d'accès aux tickets de la commande.
Quand utiliser cette fonctionnalité
Voici les situations les plus fréquentes où un participant peut avoir besoin de recevoir à nouveau ses billets :
Le participant n'a pas reçu l'email de confirmation (email tombé dans les spams, adresse mal saisie)
Le participant a perdu son billet ou supprimé l'email par erreur
Le participant a changé de téléphone et n'a plus accès à son wallet ou ses fichiers
L'acheteur souhaite transmettre un billet à un ami qui n'a pas reçu le lien
Un participant vous contacte le jour de l'événement en disant qu'il ne retrouve pas son ticket
Recherchez-le dans la liste des participants par son nom ou email. Utilisez le menu "..." pour copier le lien de ses tickets, puis envoyez-le-lui par email ou message. Conseillez-lui de vérifier ses spams si le problème venait de l'email initial.
Oui. Les tickets sont liés à une commande, et le lien donne accès à tous les billets de cette commande. Si un acheteur a commandé 4 tickets, le lien permettra de télécharger les 4 billets.
Non, le lien reprend l'ensemble des tickets de la commande. Il n'est pas possible d'isoler un seul billet. Le participant recevra le lien vers tous les tickets liés à sa commande.
Le lien de téléchargement reste actif tant que la commande est valide. Vous pouvez le transmettre à tout moment, y compris le jour de l'événement.
Le menu d'actions se trouve tout à droite du tableau. Si votre écran est trop petit ou que vous avez beaucoup de colonnes visibles, scrollez horizontalement vers la droite pour le voir apparaître.
---
# Scan tickets and control access with PassPass
Source: https://docs.passpass.be/en/categories/manage-your-participants/scanner-les-tickets-et-contr-ler-les-acc-s-avec-passpass (en)
Solution 1: Manual Control via Excel Export
Traditional Method
For events without mobile equipment or those who prefer a paper version:
Export the list of your participants from the "Participants" tab
Print or view the Excel file on a tablet/computer
Manually check off participants upon their arrival
This method works but has limitations: no real-time updates, risk of manual errors, and no traceability of arrival times.
Solution 2: PassPass Organizer Mobile App (Recommended)
The app is completely free to download and use for all PassPass organizers.
App Download
PassPass offers native mobile apps available on smartphones and tablets via the stores:
App Store (iOS):
Search for "PassPass Organizer"
Direct link: PassPass Organizer App Store (IOS / Apple)
Play Store (Android):
Search for "PassPass Organizer"
Direct link: PassPass Organizer Play Store (Android)
The app allows you to track all key information of your event in real-time: sales, participants, orders, and especially to control access professionally.
Validator Configuration
Add Members to the Validation Team
Access Team Management
From your event dashboard, click on "My Team"
This section lists all members with access to your event
Invite a Validator
Click on "Add Member"
Enter the person's email address
Select the "Validator" role from the dropdown menu
Invitation Process
The invited person will automatically receive an invitation email
They must click on "Accept Invitation"
If they do not yet have a PassPass account, they will be guided to create one
Once the account is created, they will have access to the event with validation permissions
As a validator, a member does not have access to the dashboard or financial data of your event. Only to the mobile app for validating entries.
Validator Login to the App
Download and Login
The validator downloads the PassPass Organizer app
They log in with the same credentials as their PassPass web account
The app automatically syncs their event access
Access to Features
Dedicated interface for ticket scanning
Participant list for manual validation
History of validations performed
Ticket Scanning System
QR Code Scan
The app offers a scanning system with color codes for immediate identification:
Valid Ticket (Green)
The participant can enter
Their status automatically changes to "Validated"
The validation time is recorded
Already Scanned Ticket (Orange - Warning)
Alert message with the date and time of the first scan
Allows identification of reuse attempts
The validator can allow or deny access depending on the context
Invalid Ticket (Red - Error)
Ticket linked to another event
Ticket canceled or deleted
Corrupted or falsified QR code
Access automatically denied
Validation by Participant List
For special cases where QR scanning is not possible:
Manual Search
Search interface by name, first name, or email
Instant results in the participant list
Ideal for participants who forgot their ticket
Validation by Swipe
Swipe right on the participant's name
Immediate validation of their entry
Same traceability as QR code scan
Usage Situations
Participants uncomfortable with technology
Lost or forgotten PDF ticket
Unreadable printed tickets
….
Tracking and Validation History
Detailed Information by Participant
By clicking on a participant in the app:
Complete History of validations
Exact Dates and Times of each scan
Utility for Conflict Resolution
This traceability allows you to:
Verify in case of participant complaint
Analyze entry flows by time slots
Detect potential validation anomalies
Best Validation Practices
Team Preparation
Validator Training
Install and test the app before the event
Train your team on the different color statuses
Prepare procedures and define your entry policies for special cases
Recommended Equipment
Recent smartphones with good camera quality
External batteries for long events
Stable internet connection (4G/WiFi)
Frequently Asked Questions
How many validators can I add? No limit on the number of validators. Add as many members as needed depending on the size of your event.
Do validators have access to financial data? No, the "Validator" role only provides access to ticket scanning and the participant list. No financial data is accessible.
Can the same ticket be scanned multiple times? The system detects multiple scans and displays an orange warning. The validator can decide whether to allow or not depending on the context.
Does the app work on all smartphones? The app is compatible with iOS 12+ and Android 8+. A functional camera is required for QR scanning.
Can I see validations in real-time from my dashboard? Yes, validations appear in real-time on your web dashboard via the "Scan and Entries" tab, allowing global monitoring of attendance, and this data is also exportable.
---
# PassPass News | May 2026
Source: https://docs.passpass.be/en/categories/nouveautes/nouveaut-s-passpass-mai-2026 (en)
This May was dedicated to the integration of the analytics beta, the opening to connectors (API, webhooks), and continuous improvements of the basic flows.
Analytics
New module available for each event. Track your sales and audience in real-time from a single screen: visits, conversion rate, revenue, average basket, day-by-day sales evolution, ticket distribution, traffic sources, geographical origin, purchase hours and days, and the proportion of new vs recurring participants.
Go to your event page, Analytics tab.
Real-time sales notifications
Via the mobile app PassPass Organizer, each new sale triggers a push notification on your phone. Track your registrations without opening the dashboard.
→ iOS - App Store → Android - Play Store
Notifications can be suspended at any time in the app settings.
Sharing links for promo codes and hidden tickets
No need to ask your participants to manually enter a code. Share a direct link that automatically applies your promo code or unlocks your hidden tickets. An added convenience for your participants.
Retrieve the link via the menu (three dots) of your promo code, or from the code configuration panel.
Learn more: Using promo codes
Improved participant management
Several improvements in managing your participants.
Enhanced tables → filters on your promo codes, new columns, faster access to your data
Accessible custom fields → your custom fields are now visible and editable directly from the participant record or the order. When manually adding a participant, you can also fill in all the fields of your form (previously, only name, first name, and email were available)
Personal notes → add internal notes to your participants for better tracking
Simplified Excel import → when importing participants via Excel, your tickets are directly offered in a dropdown menu. No need to search and copy the ID manually
Enhanced export and scanning → retrieve more data in your exports, including check-in (validation) times of your participants
Badge printing
PassPass now offers a custom badge printing system for your events. Upon arrival, your participants' tickets are scanned, and a personalised badge is printed in seconds. Professionalise and streamline entry management.
Badges are customised to your event and can display participant-related data: name, company, access type, or any other field collected during registration.
Printing equipment is available for rent. Contact us for a quote.
Discover the badge printing service
Contact us
Expanded billing data collection
The billing form now supports more countries outside the European Union, to better accommodate your international participants.
Public API and Webhooks
Connect PassPass to your tools and workflows. The public REST API allows you to read your data from an external system. Webhooks send real-time notifications for each important event.
Use cases: CRM synchronisation, accounting export, automations via Zapier, Make, or n8n.
Go to Settings → Developers to create your API keys and webhook endpoints.
Learn more: Public API and Webhooks
Work in progress
In the interest of continuous tool evolution, here are the themes expected for the coming weeks:
Ticketing integrated into your website → unify your branding and ticketing for a modern and intuitive user journey, without leaving your spaces. Advanced customisation: fonts, colours, rounding...
New event page → more customisation with configurable sections: artist/speaker line-up, schedule, FAQ, image gallery...
Promotional code management tool → interface optimisation for managing a large number of promo codes
Multidate events → facilitate multi-date event management
MCP PassPass → connect PassPass to your AI assistants (ChatGPT, Claude, ...) to assist you in reading your data, analytics, improvement suggestions, etc.
Questions, feedback, or suggestions? Feel free to contact our product manager Jean:
jean@passpass.be
---
# Which status to choose to link your account? (Company, non-profit, unincorporated association, individual)
Source: https://docs.passpass.be/en/categories/finance-payments/quel-statut-choisir-pour-lier-votre-compte (en)
When linking your account via Stripe (our payment provider), the first question asked is your organisation's entity type. This choice determines the documents you will be asked for, and it is where most blockages occur.
Identify your situation below before starting the link. A wrong entity type can block the verification and force you to restart the configuration from scratch.
Overview
| Your situation | Stripe account type | Documents to prepare | |---|---|---| | Company (SRL/BV, SA/NV, SC/CV...) | Company | Business IBAN, CBE/VAT number, articles of association, representative's ID | | Non-profit (ASBL/vzw) | Non-profit organisation | IBAN, CBE number, articles published in the Official Gazette, representative's ID | | Unincorporated association with a company number | Non-profit organisation | IBAN, CBE number, representative's ID | | Unincorporated association without a company number | ⚠️ Special case, see below | | | Self-employed (natural person) | Sole proprietorship | IBAN, CBE/VAT number, ID | | Individual (no registered activity) | Individual | IBAN + ID card | | Self-employed via an activity cooperative (Smart...) | ⚠️ Not compatible, see below | |
Company (SRL/BV, SA/NV, SC/CV…)
The simplest case. Select Company, fill in your CBE/VAT number and the IBAN of the business account. Stripe automatically checks your data against the Crossroads Bank for Enterprises. The ID of the legal representative (and of any beneficial owners at 25% or more) will be requested.
Never fill an optional field with "None", "/" or "N/A", especially the VAT number field. Stripe then considers a number was provided and rejects it repeatedly, which blocks the whole file. If you have no VAT number, leave the field empty.
Non-profit (ASBL/vzw)
Select Non-profit organisation. Stripe requests an official document proving the existence of your non-profit.
Accepted documents:
The publication of your articles of association in the annexes of the Belgian Official Gazette (downloadable free of charge from ejustice.just.fgov.be)
A recent CBE extract mentioning your non-profit
A simple PDF of your internally signed articles is often rejected by Stripe, as it is not a verifiable official document. Always use the version published in the Official Gazette.
Unincorporated association: the tricky case
An unincorporated association (association de fait / feitelijke vereniging) has no legal personality. As a result, it often has no official document to submit, while Stripe requires one for verification. It is the leading cause of complete blockage we encounter.
Recommended option: the sole proprietorship
The solution we recommend: one representative of the association registers as a sole proprietorship (natural person) with a business one-stop shop, then links the account in their own name with that company number.
Registration via an accredited business one-stop shop (allow around €90 in CBE registration fees)
The Stripe verification becomes simple: CBE number + ID card
Revenue is paid to the account associated with this activity
Discuss it with your accountant or a business one-stop shop regarding tax implications: the ticketing revenue will be received in the name of this sole proprietorship.
Alternative: the "association without legal personality" option
Stripe offers an "Association without legal personality" option (NL: vereniging zonder rechtspersoonlijkheid), but it is not very visible in the flow and its configuration differs depending on whether your association has a company number:
With a company number: select this option and fill in the number, the verification proceeds normally.
Without a company number: the verification then relies entirely on the person linking the account (ID card + IBAN). In practice, this path fails regularly, hence our recommendation of the sole proprietorship above.
Individual
Organising an event in your own name, without a structure? Select Individual. Your ID card and your IBAN are enough.
Revenue is then received in your own name. Depending on the amounts and the frequency of your events, this may have tax implications. Check with your accountant.
Self-employed via an activity cooperative (Smart, etc.)
If you work through an activity cooperative such as Smart, you do not have your own company number: the standard Stripe link is not compatible with this structure. Contact our support, we will set up a suitable payout solution with you.
Foreign structure (France, Switzerland…)
Linking also works with a structure established outside Belgium: select the country of your structure on the first screen, then follow the equivalent flow (SIREN/SIRET in France, UID in Switzerland…).
The country can no longer be changed after validation. Check it carefully before continuing. A wrong country requires a full account reset via our support.
Changing status along the way?
Your organisation is moving from unincorporated association to non-profit, or from individual to self-employed? The entity type of an existing Stripe account cannot be freely changed. Contact our support: we reset your link so you can restart it with the right status, without losing your balance.
Submit the publication in the Belgian Official Gazette rather than an internal PDF. If the blockage persists, contact our support with a screenshot of the Stripe request.
No, a bank account does not replace an official registration document. See the two options described above (sole proprietorship or association without legal personality).
Yes, if you link the account as an individual or sole proprietorship. For a company or a non-profit, the IBAN must match the organisation.
---
# Generate invoices for your participants
Source: https://docs.passpass.be/en/categories/finance-payments/g-n-rer-des-factures-pour-vos-participants (en)
When a participant purchases a ticket on PassPass, you, the organizer, are the legal seller. PassPass acts as a technical intermediary and facilitates the transaction, but the sale is concluded between you and your participant. Invoices must therefore be issued in your name, not in the name of PassPass.
To simplify this step, PassPass provides an invoice generation module. This tool allows you to create, number, and send PDF invoices to your participants, directly from orders exported from your PassPass dashboard.
Access the invoicing module → invoice.passpass.be
The invoicing module is a separate tool from your regular dashboard. Your PassPass account (dashboard.passpass.be) does not work on this module → you need to create a new account on invoice.passpass.be.
Create your account
Go to invoice.passpass.be and create a new account. This account is independent from your PassPass account → even if you use the same email address, it is a separate account with its own password.
Once registered, you will arrive at your invoicing dashboard.
Configure your settings
Before generating your first invoice, configure your billing information in Settings :
Company number → your VAT or company number
Legal name → the official name of your organization
Billing address → the address that will appear on your invoices
Product description → the label that appears on the invoice line (for example "Workshop access"). You can include the tag {event_name} to automatically insert the event name
Document language → choose the language in which invoices will be generated (French, Dutch or English)
Create an event
From your dashboard, click Create an invoice then select New event. Give it a name (for example, the name of your PassPass event) and set the applicable VAT rate.
If you have already created an event and want to add new participants, simply select the existing event instead of creating a new one.
Import your participants
You have two options to add participants :
Manual entry → enter the information one by one
Import via Excel file (recommended) → directly import the file exported from your PassPass dashboard
To export the file from PassPass :
Go to the Orders section of your PassPass dashboard
Click Export to download the Excel file
In the invoicing module, click Import and select this file
The module tells you how many rows are valid → this number corresponds to paid orders (free orders do not generate an invoice).
Importing in multiple batches
You don't need to wait until all orders are in to start invoicing. For example, one week after your event, export your orders from PassPass and import them to send a first batch of invoices. The following week, simply re-export all orders for the event from your PassPass dashboard, then re-import this file into the same event on invoice.passpass.be → the module automatically excludes orders for which an invoice has already been issued. No need to sort or adjust your import file, the module handles it.
Preview your invoices
Before validating, you can preview each invoice by clicking the preview icon. Each invoice displays :
Issuer → your billing details (based on your settings)
Recipient → the information of the person who placed the order
Amount excl. VAT and VAT → PassPass tickets are sold VAT included, the invoice details the breakdown
Balance due → 0 € since the invoice is issued after purchase (the participant has already paid)
Number and validate
Assign an invoice number by configuring your numbering sequence :
Prefix → for example "INV2026" or any other format matching your accounting
Starting number → adjust it to follow the sequence already started in your accounting journal
Number of digits → adjust the number of digits after the prefix
A preview at the bottom left shows the result in real time (for example INV2026-121, INV2026-122, etc.).
Once satisfied, click Validate invoices to generate them.
Make sure to follow your numbering sequence to avoid inconsistencies in your accounting. PassPass is not responsible for managing your numbering sequence.
Send invoices
Once the invoices are validated, you can send them by email directly from the module. You can adjust the language of the sending email.
Your participants will receive an email inviting them to download their invoice. By clicking the link, they access a page where they can download the PDF for their accounting.
Track and export
From your dashboard, you can track the status of each invoice using the status indicators → invoice sent, downloaded, etc.
For your own accounting, select your invoices and export them :
PDF export → for archiving or manual sending
UBL export → structured format compatible with accounting software (Horus, Falco, Accountable, etc.) enabling automatic import and sending via the Peppol network
Some accounting software can also automatically generate a Peppol invoice from a PDF. Check the features of your software.
Go to invoice.passpass.be. The module is accessible to all PassPass organizers. You need to create a new account → your PassPass account (pro.passpass.be) does not work on this module.
Yes, you can create as many events as needed in the module. Each event has its own participant list and its own invoices.
The module automatically detects duplicates → already generated invoices will not be recreated. You can therefore re-import your orders at any time.
No, only orders with an amount greater than 0 € generate an invoice.
Once validated, an invoice can no longer be modified. Make sure to check your settings and preview before validating.
---
# Add Participants: Manual and CSV Import
Source: https://docs.passpass.be/en/categories/manage-your-participants/ajouter-des-participants-manuel-et-import-csv (en)
1. Manual participant addition
Access participant management
From your event dashboard, go to the Participants section and click the Add a participant button.
Enter information
First name: participant's first name
Last name: participant's last name
Email: valid email address (required for sending confirmation)
Custom fields: if you have set up a custom form, you can fill in all fields directly when adding
Assign tickets
Select the ticket type to assign and choose the quantity. You can assign multiple ticket types to the same participant.
Validation and confirmation
Check the entered information and click Confirm addition. The participant will automatically receive a confirmation email containing the event details, their tickets in QR code format and practical information.
Completely free Manually adding participants is entirely free, regardless of the number of tickets assigned.
This feature is ideal for:
Inviting VIPs or partners
Offering seats to your team
Managing press tickets
Assigning seats following competitions
Irreversible action Once added, the participant cannot be removed from your list. Only the deletion of their free tickets is possible.
2. Import via CSV file
For large additions, CSV import allows you to add multiple participants simultaneously.
Download the template
In the Participants section, click Import participants and download the predefined CSV template available in the modal.
The template contains the following columns:
First name: participant's first name
Last name: participant's last name
Email: valid email address
Ticket: open the dropdown to select directly from your existing tickets
Quantity: number of tickets of this type
Prepare your file
Complete each line with a participant's information. Respect the exact column names. For the "Ticket" column, use the dropdown which displays all your existing tickets by default.
Managing multiple tickets To assign multiple ticket types to the same participant, create multiple lines with the same name/email and change the ticket and quantity on each line.
Including add-ons Add-ons can also be assigned. Select them from the dropdown in the "Ticket" column. The "Quantity" column also works for add-ons.
Import and validation
Select your completed CSV file and click Import.
PassPass displays all correctly formatted lines. Check that the information matches your expectations.
Common errors include:
Invalid or poorly formatted email
Ticket not selected in the dropdown
Empty required fields
Incorrect data format
In case of errors, correct your CSV file and re-upload the corrected file. Repeat until you get 100% valid lines.
If all lines are valid, click Confirm import. Participants are added and each participant automatically receives their confirmation email.
Best practices
Data preparation
Check the validity of email addresses
Remove duplicates from your list
Standardize the format of names
Managing large volumes
For large volumes, divide your file into several smaller imports. This makes error detection easier and allows better process control.
---
# Export Participant Data
Source: https://docs.passpass.be/en/categories/manage-your-participants/exporter-les-donn-es-des-participants (en)
Access export options
Navigate to export
Access your event
Open the dashboard of your relevant event
Click on the "Participants" tab in the left menu
Locate the “Actions” export button
At the top right of the participants table
Click on the "Actions" button
Two export options appear in the dropdown menu
Type 1: Export Excel (basic data)
Type 2: Export form data (complete data)
Type 1: Export Excel (basic data)
Basic export content
This export contains the essential information of each participant:
Included columns:
ID : Unique identifier of the participant
First name : Participant's first name
Last name : Participant's last name
Email : Participant's email address
Nom du ticket : Ticket type (e.g., ticket paid, ticket demo)
Prix d'achat : Amount paid for the ticket (0 for free tickets)
Code promo : Discount code used (if applicable)
Dernière validation : Ticket validation status
Date d'achat : Timestamp of purchase or addition
Type 2: Export form data (complete data)
Usage condition: This option is only available if you have created custom fields in your purchase path. If no custom form has been configured, only the basic Excel export is available.
Configuration from "Purchase Path": Custom fields are configured when creating your tickets via the "Purchase Path" option. This allows you to add specific questions, mandatory fields, or multiple options according to your needs.
Complete export content
This export includes all the information collected during registration:
Basic data:
All information from the basic Excel export
Plus all data from custom fields
Custom form data:
Answers to custom questions
Additional collected information
Dietary preferences, specific needs
Multiple choices, checkboxes
Comments and free text areas
Billing data is not included in participant exports, even if the billing option is enabled for your event.
Why this limitation? Billing data is linked to a global order, not to a specific participant. An order may include multiple tickets for different participants.
Access billing data
Alternative procedure:
Access the "Orders" tab in your event dashboard
Export order data to obtain billing information
This data includes billing addresses, VAT numbers, and other tax information
Frequently Asked Questions
Can I export only certain participants? The export concerns all participants of the event. For a specific selection, before exporting, select the targeted individuals, or use Excel filters after export.
Are the data updated in real-time? No, the export reflects the state at the time of generation. Re-export to get the most recent data.
Can I export in CSV format? Currently, only the Excel format is available. You can convert the Excel file to CSV from your spreadsheet software.
Do the exported data comply with GDPR? Yes, but you must process this personal data in accordance with GDPR. Use it only for managing your event and secure its storage.
Can I see which participants used a promo code? Yes, the "Code promo" column indicates the code used. Empty boxes (-) correspond to participants who did not use a discount.
Can I automate exports? Manual exports cannot be automated. For automatic synchronization, contact our support to explore setting up webhooks.
Where to find billing data? Billing data is not in the participant export. Go to the "Orders" tab to export this transaction-specific information.
---
# Resolve a Stripe Verification Block
Source: https://docs.passpass.be/en/categories/finance-payments/resoudre-un-blocage-de-verification-stripe (en)
Stripe, our payment provider, is legally required to verify the identity of each organization receiving funds (KYC regulation). When information is missing or unrecognized, payouts are suspended. Your sales, however, continue normally and your money remains safe in your PassPass balance.
Find below the most common blockages, by symptom.
Where to see what's blocking? Go to Finances → Payout Methods then open your Stripe dashboard: missing elements are listed there. If in doubt, the email Stripe sent you contains a direct link to the required action.
“Your account is restricted” / “Restricted access”
This message means that a verification information is missing or expired, not that your account is sanctioned.
Log in via Finances → Payout Methods → Manage.
Open the section indicating the required information.
Complete each listed item (document, address, number...).
Submit: the review usually takes a few hours to 2 business days.
If the list of required information is empty but the message persists, contact our support: some blockages need to be lifted on the Stripe side.
I received an email “ [Action required]”
This email is legitimate and important: Stripe asks you to complete information before a deadline, otherwise payouts are suspended. Follow the link in the email (or go through your dashboard) and complete the request.
Doubt the authenticity of an email? Do not click on anything and go directly through Finances → Payout Methods in PassPass: if an action is really required, it will be visible there.
My ID document or statutes are rejected
The most common reasons for rejection:
Unreadable photo: reflections, cropped document, low resolution. Take a new photo flat, in full light, with all 4 corners visible.
Unofficial document: for an ASBL, a PDF of internal statutes is not enough. Submit the publication to the Belgian Official Gazette or a BCE extract.
Name inconsistency: the name on the document must match exactly the one provided in the account.
Expired document.
Verification of owners fails
For companies and ASBL, Stripe asks to confirm the beneficial owners and directors. If you get an error when confirming:
Ensure each listed person has all fields completed (date of birth, full address, role).
Remove duplicate people or those no longer part of the organization.
Then confirm the list via the provided button, then submit.
If the error persists, contact our support with a screenshot: we escalate directly to Stripe.
“Almost finished” that never completes
Stripe indicates that your account is “almost ready” but nothing is unlocking? There is usually one of the following elements remaining:
The Stripe terms of service to accept (a discreet box at the bottom of your Stripe dashboard)
An unconfirmed IBAN
A document submitted but still under review (allow up to 48h)
I click on “Complete onboarding” but return to the same screen
If the Stripe process redirects you to PassPass without any changes (loop), it's almost always because an element was modified along the way (legal status, email, company number) and the file needs to be manually reconciled. Contact our support: we reset the connection properly, without loss of your balance.
My payouts are on hold but everything seems validated
Two separate verifications must be green:
The PassPass validation of your organization (usually within 24 to 48h after your registration)
The Stripe verification of your identity
An account can display “approved” on one side and remain pending on the other. The complete status is visible in Finances → Payout Methods. If a payout date is pushed back without explanation, it's a sign that a Stripe verification is still ongoing.
What our support can do (and cannot do)
We can: see the exact status of your verification, tell you precisely what's blocking, reset your connection (wrong country, wrong status, email change), escalate a case to Stripe.
We cannot: approve a case on behalf of Stripe or bypass a KYC requirement. These legal obligations apply to all payment providers.
During any blockage, your money is safe. Sales continue, funds accumulate in your balance and are fully paid out once the blockage is lifted.
---
# Link your bank account and receive your revenue
Source: https://docs.passpass.be/en/categories/finance-payments/lier-votre-compte-bancaire-et-recevoir-vos-recettes (en)
To receive your ticketing revenue on your bank account, you need to link it via Stripe, our payment provider. This guide covers the whole journey: preparation, linking, verification and payout.
The essentials
Stripe is our payment provider, a global reference in secure online payments. No additional fees to expect: Stripe fees are covered by us, already included in the PassPass fees.
You can sell before linking your account: funds accumulate safely on your PassPass balance.
For each sale, 65% of the amount is available immediately and 35% is held for 30 days. This is a security reserve, not a fee: everything comes back to you. Learn more
Linking is done via Finances → Payout methods and involves two validations: PassPass (24 to 48h) and the Stripe verification.
Once active, a payout reaches your account within 2 to 3 business days.
1. Before you start: your status and documents
The first choice in the process is your organisation's entity type (company, non-profit, unincorporated association, individual...). Take the time to choose it correctly: it determines which documents are requested, and a wrong choice can block the verification.
Which status to choose? Company, non-profit, unincorporated association, individual →
Unincorporated association without a company number? This is the most frequently blocked case: without legal personality, you have no official document to submit while Stripe requires one. Our recommendation is that one representative registers as a sole proprietorship. Full details in the article above.
Also prepare, depending on your status: the IBAN of the destination account, the representative's ID card, and where applicable your company number (CBE) and your articles of association published in the Belgian Official Gazette.
Three pitfalls to avoid
The country: it cannot be changed after validation. A mistake requires a full reset via support.
The email address: it is the permanent identifier of your Stripe account. Use a durable address belonging to the organisation, not a personal address that may change, nor an address tied to a phone number you might cancel (two-factor authentication depends on it).
Access: do not share a single Stripe login between several people. Two-factor authentication is personal; add team members instead.
2. Linking your account, step by step
From your dashboard, open Finances → Payout methods.
Click Configure: you are redirected to the Stripe flow.
Select your country then your entity type (see section 1).
Fill in your organisation's details and the destination IBAN.
Submit the requested verification documents (sharp photos, all 4 corners visible).
Accept the Stripe terms of service. This step is easy to miss but necessary: without it, payouts remain blocked.
You are redirected back to PassPass and the verification runs its course.
3. After linking: understanding where you stand
Two separate validations must be completed. An account can be "approved" on one side and still pending on the other:
| Status | What it means | What you need to do | |---|---|---| | Pending PassPass validation | Our team validates your organisation (24 to 48h) | Nothing, your sales run normally | | Information required (Stripe) | A document or piece of data is missing | Complete it via Finances → Payout methods | | Verification in progress | Stripe is reviewing your file (up to 48h) | Nothing, a little patience | | Active | Everything is validated | Your payouts follow the chosen frequency |
How do you know everything is OK? When your payout method shows the active status and no action is listed in your Stripe dashboard. If an amount stays blocked while everything seems validated, it is often the Stripe terms of service left to accept or an IBAN to confirm.
A blockage, a rejected document, a "restricted account" message?
Resolve a Stripe verification blockage →
4. Receiving your money
Once the link is active, your available funds are paid out according to the frequency you choose in Finances → Payout methods:
Manual: you trigger each payout yourself
Daily, weekly or monthly: automatic payouts
Allow 2 to 3 business days between the trigger and the arrival on your account.
Receiving nothing although everything is validated? Check your frequency: if it is set to Manual, no payout leaves without your action. Switch to automatic or trigger a payout manually.
Does the amount received seem lower than your sales? That is the 35% security reserve, released automatically 30 days after each purchase. It is not a fee.
Understanding reserves and payouts →
5. Common issues
That is the security reserve: 65% is available immediately, 35% is held for 30 days then paid out in full. Nothing is lost. Details here.
A piece of verification information is missing or was not recognised. Follow our troubleshooting guide by symptom.
These elements cannot be changed after validation. Contact our support: we reset your link without losing your balance.
Changing the IBAN is done via your Stripe dashboard. Changing the entity type (for example moving to a non-profit) requires a reset by our support.
The 30-day reserve is a requirement of our payment provider and cannot be lifted case by case. Plan ahead: link your account as soon as sales open and choose a daily frequency. You will receive 65% of each sale as it comes, without waiting for the event.
Your exports and accounting documents are available in Finances → Accounting. Export your financial data.
Related articles
Which status to choose? (Company, non-profit, unincorporated association, individual)
Understanding Stripe Connect: reserves and payouts
Resolve a Stripe verification blockage
Export your financial data for accounting
---
# Edit and delete a participant
Source: https://docs.passpass.be/en/categories/manage-your-participants/modifier-et-supprimer-un-participant (en)
1. Access Management Options
Locate a Participant
Access Your Event
Open the dashboard of your concerned event
Click on the "Participants" tab in the menu
Identify the Participant
Browse through the list of your registered participants
Use the search bar to quickly locate a specific participant
Participants are displayed with their name, email, and ticket type
Access Actions
Locate the three dots (...) to the right of each row in the table
Click on these dots to open the actions menu
2. Edit Participant Information
Editing Procedure
Open Editing
Click on the three dots (...) to the right of the participant's row
Select "Edit" from the dropdown menu
Edit Information
First Name : Edit the first name if necessary
Last Name : Correct the last name
Email : Update the email address
Tickets : Add, remove, or modify assigned tickets
Save Changes
Verify the modified information
Click on "Save" to confirm the changes
Email Address Modification
No automatic email resend.
When you modify a participant's email address, no new confirmation email is automatically sent to the new address.
Recommended Procedure:
Modify the email address in the dashboard
Copy the direct link to the participant's ticket via the three dots (...) to the right of the participant's row
Personally send this link to the new email address
Inform the participant of the change and the procedure
This manual step ensures that the participant receives their ticket information at their new address.
3. Remove a Participant
Important Restriction: Free Tickets Only
Deletion Limitation Deleting participants is currently only possible for free tickets. Participants who have purchased paid tickets through the online ticketing system cannot be removed from the dashboard.
Deletion Procedure
Verify Ticket Type
Ensure the participant only has free tickets
Paid tickets appear with a price indication
Open Deletion Options
Click on the three dots (...) to the right of the participant's row
Select "Delete" from the dropdown menu
Deletion Confirmation
A confirmation window appears
Read the warning carefully
Confirm your choice by clicking on "Permanently Delete"
---
# Create and configure your tickets
Source: https://docs.passpass.be/en/categories/sell-your-tickets/cr-er-et-configurer-vos-tickets (en)
Creating tickets is the first step to putting your tickets on sale. Whether you're organizing a free event with registration or a festival with multiple pricing categories, PassPass allows you to configure each ticket according to your needs: price, quantity, sales period, visibility, and more.
Create Your First Ticket
To create a ticket, go to Ticket Management > Tickets from your event menu.
Click on Create a Ticket
Enter the ticket name (e.g., "General Admission", "VIP Pass", "Child Ticket"). This name is visible to your buyers and can be translated into multiple languages.
Add a description (optional). You can also click on Add detailed description to provide more information about what the ticket includes.
Set the available quantity. Leave blank for unlimited stock, or specify a precise number to limit sales.
Indicate the price including tax. Enter 0 for a free ticket.
Click on Add to save your ticket.
You can rearrange the display order of your tickets by dragging and dropping using the icon to the left of each ticket.
Free or Paid Ticket
PassPass handles both paid and free events. The difference is simply at the price level:
Paid Ticket: indicate an amount including tax. Service fees apply (2% of the price + €0.60 per ticket).
Free Ticket: set the price to €0. No service fees apply. The buyer sees a Validate button instead of Pay and is not redirected to a payment page.
Even for a free event, creating a €0 ticket allows you to collect registrations, have a list of participants, and scan tickets at the entrance.
Advanced Options
Each ticket has advanced options accessible during its creation or modification. They allow you to precisely control when and how your tickets are sold.
Sales Period
Define when your ticket is purchasable:
Event Start (default): the ticket is on sale from now until the event starts.
Event End: the ticket remains on sale even after the event starts, until it ends.
Custom Dates: choose specific start and end dates. Ideal for early bird tickets or phased sales.
Ticket Visibility
Control how your ticket appears on the sales page:
Visible (default): the ticket is always displayed, even if it is not yet on sale or sold out.
Visible if on sale: the ticket only appears during its active sales period.
Visible with promo code: the ticket is hidden by default and only appears when a buyer enters a valid promo code associated with this ticket.
Hidden: the ticket never appears on the sales page. Useful for internal tickets or manual invitations.
Combine Visible with promo code and a 0% promo code to create a "secret" ticket accessible only to those with the code, without applying a discount. Learn how in our Using Promo Codes guide.
Quantities per Order
You can limit the number of tickets a buyer can take in a single order:
Minimum per order: set a minimum (default: 1). Useful if you sell tickets in batches (e.g., minimum 2 for a duo offer).
Maximum per order: limit the maximum number (default: unlimited). Practical to prevent resale or ensure fair access.
Manage Your Existing Tickets
From the Tickets page, you have an overview of all your tickets. Each line displays the name, price, number of sales relative to capacity, and ticket status.
Click on the ... menu to the right of a ticket to edit, duplicate, or delete it. You can also change the display order by dragging and dropping.
Common Use Cases
Simple Event with a Single Rate
Create a single "Entry" ticket with the desired price. This is the most common case for conferences, parties, or workshops.
Free Event with Registration
Create a €0 ticket to allow participants to register. You get a complete list of participants and can scan tickets at the entrance, just like for a paid event.
Festival with Multiple Rates
Create multiple tickets (Adult, Child, VIP) and organize them into groups for a clear presentation on your sales page. See our Organize Your Tickets with Groups guide for more information.
Early Bird Presale
Create an "Early Bird" ticket with custom dates (e.g., from March 1 to March 15) and a "Normal" ticket whose sale starts on March 16. The Visible if on sale option will automatically hide the early bird ticket once its period ends.
Limit Resale (Anti-Scalping)
Set a maximum per order (e.g., 4 tickets) to prevent a single buyer from acquiring a large number of tickets. For even stronger protection, you can configure a shared limit that applies to multiple ticket types simultaneously.
Go Further
Organize Your Tickets by Category — Group your tickets (Adult, Child, VIP…) for a clearer sales page. → Organize Your Tickets with Groups
Offer Extras to Your Participants — T-shirts, parking, meals… Add extras that appear in addition to your tickets. → Offer Extras
Make Your Tickets Personal — Collect the name, first name, and email of each participant to individually identify each ticket. → Customize the Purchase Form
Customize the Appearance of Your Tickets — Assign a different visual to each ticket so that your participants immediately identify their ticket (Day 1, VIP, etc.). → Customize Your PDF and Wallet Tickets
Yes, you can change the price of a ticket at any time. Orders already placed retain the price paid at the time of purchase. The new price only applies to future sales.
The available quantity of a ticket is the stock specific to that ticket. The capacity of a group is the combined total of all tickets in the group. For example, if a "Standard" group has a capacity of 200 and contains an Adult ticket and a Child ticket, the total of both cannot exceed 200, regardless of the distribution.
Set the ticket visibility to Visible with promo code. Then create a promo code (even at 0% discount) and associate it with this ticket. Only people who enter the code will see the ticket appear on the sales page.
Service fees are 2% of the price including tax + €0.60 per paid ticket. Free tickets (€0) have no service fees. These fees are displayed separately in the buyer's order summary.
Yes, create a ticket for each phase and configure custom dates for each sales period. Set visibility to Visible if on sale so that only the ticket for the active phase is visible on your page.
---
# PassPass News | April 2026
Source: https://docs.passpass.be/en/categories/nouveautes/passpass-news-april-2026 (en)
Here is a comprehensive overview of all the new features rolled out this month. This update is major → complete multilingual support, new mobile app, advanced ticket management, redesigned purchasing journey, and numerous improvements to assist you.
New mobile app
The PassPass mobile app has been completely rebuilt.The old app is no longer functional for access control → you need to download the new version “PassPass Organizer” from the App Store or Google Play.
What’s changing:
Redesigned interface → clearer and faster navigation
Real-time entry tracking → view the number of people entered directly from the app
Improved scanning → enhanced performance and reliability for ticket control
PassPass Organizer:
→ IOS - App Store
→ Android - Play Store
Custom ticket visuals
Each ticket can now have its own design, both on the PDF ticket and on the Wallet pass (Apple Wallet / Google Wallet).
PDF tickets
Add a custom image to the PDF ticket
Choose whether to display the event date on the ticket
Wallet pass
3 image options → event banner, custom image, or no image
Ticket assignment → assign a visual to all tickets or to specific tickets
Go to Ticket Management > Visuals to configure your designs.
Explore ticket customization: Customize your PDF and Wallet tickets
Multilingual FR / NL / EN
PassPass is now fully multilingual. You can create your event content in French, Dutch, and English, and the entire flow automatically adapts to your participant's language.
What is translated:
Event page → title, descriptions, location, all the content you write
Purchasing journey → ticket names, add-ons, form fields, buttons
Confirmation emails → sent in the participant's language
PDF and Wallet tickets → generated in the participant's language
Admin interface → the dashboard is also available in FR, NL, and EN
Each text field of your event now has a language indicator (FR, EN, NL) to write your translations directly. You can also be assisted by automatic translation.
Translate your events: Set up a multilingual event
Ticket and add-on groups
Organize your tickets and add-ons into groups to structure your sales page. Groups allow you to visually group tickets by category (e.g., "Access", "Packages", "Catering options") and apply common rules.
Configure ticket groups: Organize your tickets with groups
Advanced limits
The limits system has been completely revamped to offer more control over quantities:
Min / max per order → set a minimum and maximum number of tickets per order
Rules between groups → configure cross constraints between ticket groups (e.g., maximum 2 tickets in total between the "VIP" group and the "Premium" group)
Rules between tickets → apply combined limits between specific tickets
These rules apply automatically in the purchase journey → the participant is guided without being able to exceed the configured limits.
Shared Limits Between Tickets
Hidden tickets and promo codes
Create tickets that are only visible when a buyer enters a specific promo code. This is ideal for exclusive presales, VIP access, or partner invitations.
To configure a hidden ticket → in the advanced options of the ticket, set the display to "Visible with promo code", then create a promo code associated with this ticket (even at 0% discount for simple unlocking).
Use promo codes
Named tickets
You can now request the first name, last name, and email of each participant in a much more flexible way.
3 modes available → Mandatory, Optional, or Do not ask
Independent configuration → one setting for tickets, another for add-ons
Configuration in Purchase journey > Custom fields, section "Participant personal information".
Configurable VAT display
You can now choose how your prices are displayed to your participants. Three modes are available:
Prices including VAT (default) → the price includes VAT
Prices excluding VAT → VAT visible on tickets → each ticket displays the amount excluding VAT + VAT separately
Prices excluding VAT → VAT visible in the summary only → tickets display the price excluding VAT, VAT appears in the summary
You can also set a default VAT rate and the customize by ticket or supplement.
Configuration in Advanced configurations > VAT display.
Configure VAT Display
Enhanced purchase journey
The participant side purchase journey has been redesigned to be smoother and faster:
Smoother animations → smoother transitions between steps
UX improvements → optimizations to reduce friction and increase conversions
These improvements are automatic → your buyers benefit immediately without any action on your part.
Enriched event pages
The description of your event can now include videos and images directly in the content. The same goes for the detailed descriptions of your tickets → you can enrich each ticket with visual content to better present what is included.
Formatted fields
New types of fields are available in the order form and the participant form:
Email → automatic email format validation
Phone → phone format with country code
Date → integrated date picker
Number → numeric field with validation
These formatted fields ensure clean and usable data in your exports.
Improved billing data collection
The billing form has been redesigned to save time and reduce errors.
Autocomplete by business number → enter your business number and the billing data (name, address, VAT) will fill in automatically
Adapted for businesses not subject to VAT → the form adapts to the VAT status of the business to only request the necessary information
Result → a faster purchase journey for participants ordering on behalf of a business.
Refreshed dashboard
The administration interface has been updated with a refreshed design. Navigation is clearer and the entire interface is more consistent. If you use PassPass daily, you will notice a more pleasant and faster experience.
Marketing tracking
The configuration of tracking IDs (Google Analytics, Meta Pixel, etc.) has been improved. You can add and manage your tracking identifiers more easily from Advanced configurations > Tracking & Pixels.
Integration of the Meta Pixel on your PassPass ticketing
And then?
We continue to build. The coming weeks will bring even more improvements. In the meantime, if you have any questions or feedback about these new features, feel free to contact us via the contact form on your event page or directly from the chatbot at the bottom right.
---
# Create your first event in 5 minutes
Source: https://docs.passpass.be/en/categories/getting-started/cr-ez-votre-premier-v-nement-en-5-minutes (en)
1. Create an organizer account
Create an account on the organizer portal dashboard.passpass.be
2. Create the foundation of your event
Once logged into your PassPass account:
Click on "Create an event" from your dashboard
Complete the essential information:
Event title
Date and time (start/end)
Location
Venue name (free text field where you can indicate: venue name, webinar, online, specific address, address to be confirmed, etc.)
Specific address (optional)
Add an attractive banner (recommended dimensions: 1920x1080px)
Description (present your event attractively)
Save this basic information
All event information can be modified throughout its lifecycle.
3. Add tickets
In the "Tickets" tab, click on "Create a ticket". Define for each ticket type:
Ticket name (e.g., Early Bird, Standard, VIP, ... )
Price (free or paid)
Available quantity
Availability period
You can add add-ons to your tickets (merchandising, VIP options, meals, workshops, etc.)
4. Publish an event
Choose the publication mode:
Public : visible to everyone on PassPass and indexed on search engines like Google
Private : accessible only via a direct link (not accessible from search engines)
Click on "Publish my event"
For publishing events with paid tickets, you must link a Stripe Connect account to receive payments to your bank account.
This setup can be done later to collect the money from your first sold tickets. In the meantime, this money will be stored in your organization's balance.
Use the "Preview" option to see your event page as your participants will see it
Share your event:
Copy the direct link to your event page and share it on your various communication channels
5. Understand the user journey and registration management
6. Add team members
---
# Add and manage team members
Source: https://docs.passpass.be/en/categories/manage-your-organization/ajouter-et-g-rer-les-membres-d-quipe (en)
PassPass allows you to add collaborators at two different levels according to your needs:
Organization Level: Members added at this level have access to all existing and future events of your organization
Event Level: Members added at this level only have access to a specific event
This flexibility allows you to tailor permissions according to each collaborator's role, whether they are a permanent partner or a temporary partner for a one-time event.
Add a Member at the Organization Level
To add a member to your organization (global access to all events):
Access your PassPass dashboard
Click on the "Settings" tab at the top of the page
Select the option to add a member
Select the appropriate role from:
Event Manager: Can create and modify events
Administrator: Can manage organization and event settings
Super Administrator: Has all rights, including managing administrators
When adding a member, they will receive an invitation email to join your organization:
If the person already has a PassPass account, they will simply need to log in
If the person does not have an account yet, they will be invited to create one and will be automatically added to your organization based on the email you provided
Add a Member at the Event Level
To add a member to a specific event only:
Access the dashboard of the relevant event
Select the "My Team" tab in the left sidebar menu.
Click on "Add a member"
Enter the person's email address
Select the role specific to the event:
Validator: Responsible for ticket scanning, without access to financial or sensitive data
Event Manager: Can modify the event
Administrator: Can modify the event and manage members
Depending on the roles, you can define access to “the ticket scanning application” which allows validating event entries.
As with adding at the organization level, an invitation email will be sent to the new member. The login or account creation process follows the same rules.
---
# Export your financial data for accounting
Source: https://docs.passpass.be/en/categories/finance-payments/exporter-vos-donn-es-financi-res-pour-la-comptabilit (en)
Access Transaction Export
Step 1: Navigation
Log in to your PassPass dashboard
Go to the "Finances" tab in the main menu
Locate the transactions section with your listed payouts
Step 2: Initiate Export
Click on "Export Transactions"
A settings window opens automatically
Select Your Period
PassPass offers several options to customize your export according to your accounting needs:
Predefined Periods
Current Month : All transactions for the current month
Current Quarter : Transactions from the last 3 complete months
Current Year : All transactions since January
Since the Beginning : Complete account history
Custom Period
Select specific dates according to your needs
Ideal for quarterly reports or specific accounting periods
Intuitive calendar interface for precise selection
Excel Report Content
The generated document is organized into three distinct sheets for comprehensive financial analysis:
"Information" Sheet (Export Summary)
Export Type : Financial export
Selected Period : Start and end dates of the export
Organization : Name of your PassPass organization
Statistics : Total number of payouts and payments for the period
"Payouts" Sheet (Transfers to Your Account)
ID : Unique identifier for each payout
Amount : Amount credited to your bank account (in euros)
Account : Destination bank account
Initiation Date : When PassPass initiated the payout
Arrival Date (Estimate) : When the funds arrived in your account
"Payments" Sheet (Details of Individual Transactions)
ID : Unique number for each payment
First Name/Last Name : Buyer's identity
Email : Participant's email address
Net Amount : Amount you receive after fees
Gross Amount : Price paid by the participant
Fees : PassPass commission deducted
Payment Date : Transaction timestamp
---
# Integrate the ticketing on your website
Source: https://docs.passpass.be/en/categories/integrations-and-tools/int-grer-la-billetterie-sur-votre-site-web (en)
Integrate the PassPass ticketing module directly on your website or application. No more redirection to an external page: your visitors purchase on-site, in just a few clicks.
When clicking a button on your site, a modal opens with the complete checkout (ticket selection, form, payment). Generally, market alternatives opt for integrating the ticketing directly into the website body, which can cause issues with double scrolling, mobile rendering, and user experience. PassPass opts for a dedicated modal within your website that opens on button click and perfectly adapts to all screens.
Customize the modal style to match your visual identity: colors, font, rounding, light or dark mode. The result gives the feeling of a native module on your site.
Go to Advanced Configurations → Website & Apps Integration to configure the widget.
Customize Appearance
Adapt the widget to your site's style:
Primary Color : buttons and accents. Monochrome option to automatically derive the entire theme from this color
Light / Dark / Custom Mode : choose according to your site, or allow automatic detection. The custom mode allows for more advanced configuration with the modal background color and the color of the panels (ticket card background, order summary, etc.)
Font : the one from your site for a consistent rendering
Button Rounding and Shape : adjust the border-radius and choose between default, square, or rounded buttons
Analyze My Site
Use our analysis tool to pre-configure the style of your modal based on your website. Enter your site's URL, PassPass detects your colors, font, rounding, and light/dark mode. Check the result and apply with one click.
Add Your Authorized Domains
The widget only works on domains you authorize. This is a security measure to prevent the use of your widget on a third-party site.
Add each domain from the widget configuration. If you sell from multiple sites, list them all.
Without an authorized domain, the widget remains configured but the modal will be blocked by the browser on your site. Remember to add your domain before testing.
Preview
Test the rendering directly from your dashboard before going live. A live preview updates with each style modification. Mobile/desktop toggle available to check the rendering on both formats.
Integrate on Your Site
Click on Integrate to access the 3 integration methods. Choose the one that fits your context.
Method 1: Ready-to-Paste Button (the simplest) PassPass generates a styled button with the complete code. Copy-paste it on your page where the button should appear. The button style defaults to your site's analysis and can be modified independently.
Method 2: Connect Existing Buttons Your site already has one or more purchase buttons. Insert the PassPass script into your site's header, then add an attribute to each button that should open the modal. Your design does not change.
Method 3: Programmatic Triggering For advanced integrations. Insert the PassPass script, then trigger the modal from your own code at the desired moment. Ideal for forms, custom events, or any specific scenario.
Propagate Parameters via Your URL
You can pre-configure the modal by adding parameters to your page's URL. When the modal opens, these parameters are automatically taken into account.
Two parameters available:
pp_lang → forces the modal language (FR, NL, or EN). Useful if your page is in Dutch and you want the ticketing to also display in Dutch.
pp_code → pre-fills a promo code. The visitor arrives with the promotion already applied or the hidden ticket already unlocked.
Add the parameters at the end of your URL with a ? before the first parameter, and a & between each additional parameter.
One parameter: yoursite.com?pp_lang=NL Two parameters: yoursite.com?pp_lang=NL&pp_code=PARTNER
The visitor arrives on your page, opens the modal, and has the ticketing configured directly according to your parameters. Ideal for targeted campaigns (newsletter, social media, partners).
Transmit Instructions to Your Webmaster
No need to draft a brief. Click on Copy for my webmaster to generate an instruction document ready to send via email or Slack. It contains the code for the 3 methods and the steps to follow.
You retain control over the configuration of authorized domains from your dashboard. If the integration is done on a new domain, add it to your configuration for the widget to function.
Compatibility
The widget works on any type of site: WordPress, Wix, Squarespace, Webflow, static sites, or custom applications. No framework required, the script weighs less than 10kb.
For any technical questions or need for support, feel free to contact our support.
Contact us
---
# Understanding the purchase journey of your participants
Source: https://docs.passpass.be/en/categories/parcours-d-achat/comprendre-le-parcours-d-achat-de-vos-participants (en)
When a visitor clicks on a purchase button on your event page, they enter the PassPass checkout process. Understanding what your participants see helps you better configure your tickets, add-ons, and forms. Here is the complete step-by-step process.
The 4 steps of the checkout
The checkout process opens in a modal window over your event page. An indicator at the top shows the progress in 4 steps:
Step 1: Tickets
The buyer sees the list of your available tickets with their name, description, and price. They use the +/- counters to select the desired quantity. Tickets are organized according to your groups, and hidden or not yet on sale tickets are not displayed.
If a promo code is entered, a green "Discount" badge appears on the relevant tickets, and the original price is crossed out with the new price next to it.
Step 2: Add-ons
If you have created add-ons, they appear at this step. The buyer can add extras (T-shirts, parking, meals...) to their order. If you have no add-ons, this step is automatically skipped.
Step 3: Contact Information
The buyer fills out the order form (name, email, and your custom fields). If you have enabled participant fields, they will need to fill in the information for each ticket. This is also where your additional terms and billing data collection appear, if configured.
You can customize the fields of this step in Customize the purchase form.
Step 4: Payment
For paid orders, the buyer is redirected to the secure payment page (Stripe) to finalize their order. For free orders, this step is replaced by a simple Validate button.
Order summary
Throughout the checkout, an order summary is displayed on the right side. It contains:
The thumbnail, title, date, and location of your event
The selected items with quantity and price
The subtotal
The Discount line (if a promo code is applied)
The service fees
The final total
Service fees
PassPass applies a service fee of 2% of the total price + €0.60 per paid ticket. These fees are transparently displayed in the order summary.
Paid tickets : fees = 2% of the price + €0.60. Example: a ticket at €15 → fee of €0.90.
Free tickets (€0): no service fees.
Paid add-ons : same fees as tickets (2% + €0.60). Free add-ons: no fees.
Payment methods
At step 4, the buyer is redirected to the secure payment page (Stripe). The available payment methods are:
Bancontact (highlighted for the Belgian market)
Credit card (Visa, Mastercard)
Apple Pay / Google Pay
American Express (optional)
Klarna - Payments in 3 installments (optional)
Timer and cancellation
A countdown of about 25 minutes is displayed at the top of the checkout. It temporarily reserves the selected tickets. If the buyer does not finalize within the allotted time, the reservation expires and the tickets become available again.
If the buyer clicks the close button (X) while their cart is not empty, a confirmation modal asks if they wish to resume or cancel their order.
Promo code in the checkout
A "Promo code" tag is visible at the top of the checkout as well as above the total. The buyer can click on it to enter a code. Once applied, the discounts are immediately visible in the summary and on the relevant tickets.
Want to create discount codes or unlock hidden tickets? Check out Using promo codes.
Bancontact (highlighted for the Belgian market), Visa, Mastercard, Apple Pay/Google Pay, American Express, Klarna. Payments are securely processed via Stripe.
About 25 minutes. A countdown is displayed at the top of the checkout. After this period, the reservation expires and the tickets are put back on sale.
Yes, paid add-ons are subject to the same service fees as tickets: 2% of the total price + €0.60. Only free tickets and add-ons (€0) have no fees.
A confirmation modal asks the buyer if they wish to resume or cancel their order before closing. If they confirm the cancellation, the order is lost and they will have to start over. However, any promo code will remain applied in the browser session.
---
# Understanding Stripe Connect: Holds and Payouts
Source: https://docs.passpass.be/en/categories/finance-payments/comprendre-stripe-connect-retenues-et-versements (en)
What is Stripe Connect?
Stripe Connect is a payment solution used by millions of businesses worldwide, integrated with PassPass to manage all the financial transactions of your event. Just like Bancontact for local payments, Stripe has become an international reference for secure online payment management.
Main Features
Maximum Security
All your transactions are protected by the strictest security standards in the market, with PCI DSS level 1 certification. Your data and that of your participants are secured according to international banking standards.
Direct Payments and Automation
Funds are deposited directly into your bank account without intermediaries. No manual handling is necessary once the setup is complete.
International Support
Accept payments in over 135 currencies with automatic conversion. Your participants can pay in their local currency.
Total Transparency
Detailed tracking of each transaction, from ticket sale to deposit into your bank account. You maintain full control over your finances.
Setting Up Your Stripe Connect Account
Why is this step necessary?
Linking your bank account via Stripe Connect complies with KYC (Know Your Customer) regulations, mandatory for all payment providers. This verification protects both your business and your participants against fraud.
Stripe Connect is only used for deposits to your bank account. You can sell and collect payments without waiting for this setup which can be done later.
Required Documents
For Individuals:
IBAN of your bank account
Official ID (identity card or passport)
For Businesses:
IBAN of the business bank account
Business/Tax ID number
Legal documents (articles of incorporation, publication in the official journal)
ID of the legal representative
Setup Process
Start Selling Immediately : You can create your event and start ticket sales even before the Stripe setup
Secure Storage : Payments are automatically stored in your PassPass organization balance
Stripe Setup : When you first need a payout, you will be guided to the Stripe setup.
Document Verification : Secure submission of your documents
Validation : Processing usually completed within 24-48 hours
Active Payouts : Automatic transfer of funds to your bank account
The Hold System: How It Works
Basic Principle
When a participant buys a ticket, the amount is automatically divided:
65% are immediately available in your PassPass balance
35% are temporarily held for 30 days
Concrete Example: Ticket sold: €10 on August 1st
€6.50 immediately available for payout
€3.50 held until August 31st
On September 1st: the €3.50 are automatically released
Why This Hold?
This system meets legal obligations and provides protection for everyone:
Protection Against Disputes : Funds available for potential refunds
Financial Security : Coverage in case of technical issues or cancellations
Regulatory Compliance : Adherence to standards imposed by banking networks
Important: The hold starts from the purchase date, not the event date.
Payout Frequencies
PassPass offers you total flexibility to manage your payouts according to your cash flow needs.
Available Options
Automatic Payouts
Daily : Ideal for high volumes or immediate cash flow needs
Weekly : Balance between frequency and administrative management (recommended option)
Monthly : For simplified accounting management
Manual Payouts
Total Control : You decide when to trigger payouts
Cash Flow Management : Optimize your financial flows according to your needs
Simple Reactivation : Switch back to automatic at any time
How to Change Your Frequency
Access your financial settings in PassPass => “Finances” tab
Select your preferred frequency
The change takes effect immediately for upcoming payouts
Fees and Transparency
PassPass Fees
Commission : 2% + 0.60 incl. VAT of the ticket amount
No Hidden Fees : What you see is what you pay
Payout Schedule
Payouts are made according to your chosen frequency, respecting standard banking delays (1-2 business days to reach your account).
Frequently Asked Questions
Can I change my bank account after setup?
Yes, contact our support to securely update your bank information.
Do the 35% held generate interest?
No, it is a security hold, not an investment. The funds are fully returned to you and will be gradually paid to your bank account.
Can I see the details of my holds?
Yes, your financial dashboard displays the available amount and the amount on hold with release dates.
Stripe has limited me, what should I do?
A Stripe limitation usually occurs when KYC information is missing or incorrect. You will automatically receive an email with a link to complete the missing data. It is often due to missing documents or an unreadable ID. Simply follow the email instructions to unlock your account.
What types of payments are accepted?
Stripe accepts all modern payment methods: Visa, Mastercard, Bancontact, American Express, and many others. PassPass fees remain fixed (2% + €0.60) regardless of the payment method used. PassPass absorbs the cost differences between payment methods to guarantee you fixed and predictable pricing.
---
# Customize your confirmation messages
Source: https://docs.passpass.be/en/categories/parcours-d-achat/personnaliser-vos-messages-de-confirmation (en)
{"document":{"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"After finalizing their order, your participants receive a confirmation email and see a confirmation screen on the display. PassPass allows you to customize these two messages to share practical information: exact location, access instructions, guidelines, or simply a thank you note."}]}},{"type":"paragraph","content":[{"type":"text","text":"Go to "},{"type":"text","marks":[{"type":"bold"}],"text":"Purchase Path > Personalized Messages"},{"type":"text","text":" from your event menu."}]}}
---
# Offer supplements (extras)
Source: https://docs.passpass.be/en/categories/sell-your-tickets/proposer-des-suppl-ments-extras (en)
Add-ons allow you to offer additional options when purchasing tickets: T-shirts, parking, meals, drinks, goodie bags, or any other extras. They appear separately from tickets in the purchase process and allow you to increase your revenue per order without complicating your ticketing offer.
Add-ons are not entry tickets and do not generate a scannable ticket. Like paid tickets, they are subject to the same service fees.
Create an Add-on
Go to Ticket Management > Add-ons from your event menu.
Click on Create an Add-on
Enter the add-on name (e.g., "Festival T-shirt", "Parking Spot", "VIP Menu"). This name is visible to your buyers and can be translated.
Add a description (optional) to specify what the add-on includes. You can also add a detailed description.
Set the available quantity. Leave blank for unlimited stock.
Indicate the price including tax. Set to 0 for a free add-on.
Click on Add.
Advanced Options
Add-ons have the same advanced options as tickets:
Sales Period
Choose when your add-on is purchasable: from the start of the event (default), until the end of the event, or during custom dates. Useful if you offer an add-on only in presale.
Visibility
As with tickets, you can set visibility to: Visible, Visible if on sale, Visible with promo code or Hidden.
How Add-ons Appear to the Buyer
Add-ons appear at step 2 of the purchase process, just after ticket selection. The buyer sees the name, description, and price of each add-on with a +/- counter to choose the desired quantity.
Add-ons are automatically available for all orders — there is no direct link between a specific ticket and an add-on. If a buyer purchases any ticket, they will see all of your add-ons at the next step.
Add-ons vs Tickets: Differences
Dedicated QR code : tickets and add-ons each generate their own PDF with a distinct QR code, allowing them to be differentiated and scanned separately.
Service fees : paid add-ons are subject to the same service fees as tickets (2% + €0.60).
Checkout step : tickets are purchased at step 1, add-ons at step 2.
Advanced options : add-ons share the same options as tickets (sales period, visibility), but do not have native min/max per order.
Add-ons are an excellent way to increase your revenue per order. Offer relevant extras (parking, merch, meals) to enrich your participants' experience.
Common Use Cases
Merchandising Sales
Create an add-on for each variant (T-shirt S, T-shirt M, T-shirt L, T-shirt XL) with a limited quantity per size. Use an add-on group to group all sizes under one title (e.g., "Festival T-shirt") and make the purchase process clearer for your participants. See Organize your tickets with groups for more information.
Parking Option
Create a "Parking Spot" add-on with a capacity limited to the number of available spaces. You can also use a shared limit if the parking is shared between multiple ticket types.
Optional Meals or Drinks
Offer a "Full Menu" or "Open Bar" add-on that participants add to their order. This is an excellent way to anticipate the number of meals to prepare.
Yes, paid add-ons are subject to the same service fees as tickets: 2% of the price including tax + €0.60 per add-on. Free add-ons (€0) have no fees.
Add-ons are displayed to all buyers, regardless of the type of ticket purchased. There is no direct ticket-add-on association in the creation form. If you want to limit an add-on, you can use the visibility option Visible with promo code to display it only to buyers with a specific code.
If the available quantity is reached, the add-on displays "sold out" in the checkout and can no longer be added to the order. The buyer can still finalize their order for tickets only.
Yes, promo codes can apply to add-ons. When creating a promo code, you can choose to associate the discount with all tickets and add-ons, or only with specific items. See Using promo codes for more information.
---
# Display your events on your website
Source: https://docs.passpass.be/en/categories/integrations-and-tools/afficher-vos-v-nements-sur-votre-site-web (en)
Automatically display the list of your PassPass events on your website, reflecting your brand. When you create or modify an event on PassPass, it automatically appears on your site, no maintenance required.
Go to Settings → Integrations → Event List to configure the widget.
Setup
Click on New Integration
Configure the appearance and behavior. A live preview updates in real-time with each modification
Click on Embed, copy the code and paste it on your site where the list should appear. You can also send the instructions to your webmaster directly from this step
The code looks like this:
The widget is inserted where you place the and adapts to the width of your section.
Display
Layout
Three layout options depending on your context:
Grid → visual cards, ideal for a dedicated "Our Events" page
List → compact agenda format, suitable for a sidebar or a reduced section
Calendar → daily timeline, when dates are paramount
Click Action on an Event
Open the event page → redirects to the full event page on PassPass (description, banner, location, dates, tickets...) for visitors who want to know more before purchasing
Open the ticketing on your site → directly opens the purchase modal on your site (ticket selection, form, payment) without going through the event page. For a more direct purchase path
Both buttons → each event displays "Tickets" and "Learn more". Ideal for maximizing conversion while keeping access to the full page
Button text is customizable (e.g., "Book", "View Event").
Additional Options
Show past events → completed events appear at the bottom of the list, faded out
Show summary → adds the short description of each event
Customize Appearance
Adapt the widget to your site's style:
Colors → button color (your brand color), background color, card color
Font and rounding → font style and corner radius
Button style → default, square or rounded
Transparent cards (grid and calendar) → image and text without frame, to fully blend with your site
Analyze My Site
Use our analysis tool to pre-configure the widget style based on your website. PassPass automatically detects your colors and font.
Allowed Origins
The widget only works on domains you authorize. Add each domain from the integration configuration.
Without an authorized domain, the widget will not display on your site. Remember to add your domain before testing.
Propagate Parameters via Your URL
You can pre-configure the widget by adding parameters to your page URL. When the modal opens, these parameters are automatically taken into account.
Two parameters available:
pp_lang → forces the modal language (FR, NL or EN). Useful if your page is in Dutch and you want the ticketing to also display in Dutch.
pp_code → pre-fills a promo code. The visitor arrives with the promotion already applied or the hidden ticket already unlocked.
Add the parameters at the end of your URL with a ? before the first parameter, and an & between each additional parameter.
One parameter: yoursite.com?pp_lang=NL Two parameters: yoursite.com?pp_lang=NL&pp_code=PARTNER
The visitor arrives on your page, opens the modal, and has the ticketing directly configured according to your parameters. Ideal for targeted campaigns (newsletter, social media, partners).
Best Practices
Background color → use the same color as your section so the widget integrates seamlessly. The widget is edge-to-edge and inherits your page margins
Button color → choose a well-contrasted color. A light button on a light background becomes unreadable
Grid for a dedicated page, List for a compact section, Calendar when dates are paramount
"Both buttons" if you want to maximize conversion while keeping access to the full page
Only public and published events appear. Drafts and private events are excluded
Automatic synchronization → new event published = automatic appearance, nothing to copy
Multilingual → the widget displays in the visitor's language (FR/EN/NL)
Responsive → adapts to mobile and desktop automatically
Troubleshooting
The widget does not display → check that your domain is in the allowed origins and that the
is present on your page
Changes do not appear → remember to save the configuration. The preview shows unsaved changes
No visible events → check that your events are published and public
For any technical questions or need for assistance, feel free to contact our support.
Contact us
---
# Use promo codes
Source: https://docs.passpass.be/en/categories/sell-your-tickets/utiliser-les-codes-promo (en)
Promo codes allow you to offer percentage discounts to your buyers or unlock hidden tickets reserved for certain people. They are a powerful tool for managing your pre-sales, rewarding your partners, or creating exclusive access.
Create a Promo Code
Go to Ticket Management > Promo Codes from your event menu.
Click on Create a Promo Code
Define the code that your buyers will need to enter (e.g., EARLY20, PARTNER, VIPACCESS). The code must be in uppercase letters and numbers only, without spaces or special characters.
Add an internal note (optional) to remind yourself who or what this code is for (e.g., "For sponsor partners"). This note is only visible to your team.
Indicate the percentage value of the discount. For example, 20 for a 20% discount. Enter 0 if you want to use the code only to unlock a hidden ticket, without applying a discount.
Set the usage limit (optional). Leave blank for unlimited use, or specify a maximum number (e.g., 50 for 50 total uses).
Choose the availability period: as long as sales are possible (default), or custom dates to limit the code to a specific period.
In advanced options, choose to associate the code with all tickets or with specific tickets.
Two Types of Use
Discount Code
The classic case: a code with a percentage value (e.g., EARLY20 = 20% discount). When a buyer enters the code, the relevant tickets display a green "Discount" badge, the original price is crossed out, and the new price appears next to it. The discount is also displayed as a separate line in the order summary.
Discount codes only apply to paid tickets. Free tickets (0 €) are not affected by a discount code.
Unlock Code
A 0% discount code, associated with a ticket whose visibility is set to Visible with promo code. The ticket is invisible on the sales page until the buyer enters the code. The ticket then appears in the list, and the buyer can purchase it normally.
This is the ideal mechanism for:
Exclusive pre-sales (ticket reserved for newsletter subscribers)
Partner or sponsor access
Free invitations (100% code + hidden ticket)
You can combine both: a 50% code associated with a hidden ticket. The buyer unlocks the ticket AND gets a discount.
How the Buyer Uses a Promo Code
During the purchase process, a "Promo Code" tag is displayed at the top of the checkout. The buyer clicks on it to open a modal, enters their code, and clicks on Apply. A confirmation message appears, and the discount (or unlocked ticket) is immediately applied.
The buyer also sees the remaining number of uses for the code, which can create a sense of urgency if the number is limited.
Share a promo code via a link
When you create a promo code, a share link is automatically generated. This link activates the code by default, without the buyer having to enter it manually.
In practice: the buyer clicks on your link, arrives on the sales page with the promotion already applied (or the hidden ticket already unlocked), and can purchase directly.
Retrieve the link via the menu (three dots) of your promo code, or from the code's configuration panel.
Common Use Cases
Early Bird
EARLY20 code with a 20% discount, limited to 100 uses, available during the first 2 weeks of sales. Share it in your newsletter to reward early sign-ups.
Partner Invitation
PARTNER100 code with a 100% discount, limited to 20 uses. Your partners get free access by entering this code. No need to create a separate ticket.
Secret VIP Ticket
Create a "VIP Pass" ticket with visibility Visible with promo code, then a VIPACCESS code at 0%. Only those with the code can see and purchase the VIP ticket. Refer to Create and configure your tickets to set up visibility.
Yes, promo codes only accept uppercase letters and numbers, without spaces or special characters. For example: EARLY20, VIP2024, PARTNER.
The limit is global, across all orders. If you set a limit of 50, the code can be used 50 times in total. The value of a promo code applies to a ticket (or add-on) and not to an entire order.
The new code replaces the old one. However, if the old code had unlocked a hidden ticket, that ticket remains visible even after the code change. The discount, however, is recalculated according to the new code.
Yes, when creating the code, you can choose to associate the discount with all tickets and add-ons or with specific items. An add-on like a T-shirt can also benefit from the discount.
---
# Customize the purchase form
Source: https://docs.passpass.be/en/categories/parcours-d-achat/personnaliser-le-formulaire-d-achat (en)
The purchase form is what your participants fill out when placing their order. By default, PassPass requests the buyer's first name, last name, and email. But you can go much further: add custom fields, collect information per participant (nominative tickets), enable billing data collection, and more.
Go to Purchase Path > Custom Fields from your event menu.
Two Levels of Forms
PassPass offers two levels of data collection, catering to different needs:
Order Fields
These fields are requested once per order, regardless of the number of tickets purchased. They are used to collect the main buyer's contact details, contact or billing data.
By default, a "First name, last name, email" field is already present and mandatory.
Participant Fields
These fields are requested for each ticket in the order. If a buyer takes 3 tickets, they must fill out these fields 3 times, once per participant. This is the mechanism that allows your tickets to be nominative.
By default, a "First name, last name, email" field is present but optional.
Make Your Tickets Nominative
This is one of the most common questions: how to identify each participant individually? The answer lies in the participant fields.
In the Participant Personal Information section, enable the collection of first name, last name, and email for each participant.
Choose whether this information is Mandatory or Optional. For truly nominative tickets, choose Mandatory.
(Optional) Add additional participant fields to collect other information per person: phone number, T-shirt size, dietary requirements, etc.
The information collected per participant is viewable and exportable from the Participants view of your event. You can thus generate a complete nominative list before the big day.
Add a Custom Field
Whether for order fields or participant fields, the creation process is the same:
Click on Add a Field in the desired section (Order or Participants).
Enter the field label (e.g., "Phone number", "T-shirt size"). This label is visible to the buyer and can be translated.
Check Mandatory Field if you want to enforce entry.
Select the appropriate field type (see below).
(Optional) Add a description to guide the buyer.
(Optional) Limit display to certain tickets only (by default, the field is displayed for all tickets).
Available Field Types
Formatted Field: email, phone, number, or date, with automatic format validation.
Short Text: single-line text field.
Text Field: multi-line text area for longer responses.
Single Choice: the buyer chooses one option from a list (e.g., size S/M/L/XL).
Multiple Choice: the buyer can check multiple options (e.g., food allergies).
Selection: dropdown menu to choose an option.
Additional Condition: checkbox to accept conditions (T&Cs, internal regulations, etc.).
Text Without Field: information block displayed in the form without an input field. Useful for displaying a reminder ("Bring your ID").
Billing Data Collection
For professional or B2B events, you can enable billing data collection via a dedicated toggle. This automatically adds the fields: company name, VAT number and billing address.
These data are exportable from the Orders tab of your event.
The billing section is a global toggle. You cannot configure billing fields individually.
Organize Your Fields
You can rearrange the order of your fields by dragging and dropping using the icon to the left of each field. The order you set is the order in which the fields appear to the buyer during checkout. Each field has a ... menu to edit or delete it.
A previewer is available to the right of your configuration. By default, it only displays order fields. Select a ticket in the simulator to see the participant fields assigned to that ticket.
Display a Field Conditionally
Create conditional fields that only appear when certain response conditions are met. For example, a "VAT Number" field that only appears if "Status" = Company or Self-employed.
To configure: open a field, enable the Display Conditionally toggle, choose the trigger field, operator, and value. The conditional field automatically appears indented under its trigger field with an orange badge.
Multiple conditions can be combined with AND (all true) or OR (at least one true).
To learn more: Conditional Fields: Configuration and Examples
Common Use Cases
Nominative Tickets: enable participant personal information in mandatory mode. Each ticket will be associated with a name.
T-shirt Size Choice: add a participant field of type "Single Choice" with options S, M, L, XL.
Phone Number per Participant: add a participant field of type "Formatted Field" in phone mode.
General Conditions to Accept: add an order field of type "Additional Condition" mandatory.
Informative Text: use a "Text Without Field" to display a reminder ("Attention: bring your ID") without requiring input.
B2B Event with Billing: enable billing data collection to obtain company name, VAT, and address.
Field Specific to a Ticket: a "Dietary Requirements" field only for tickets that include a meal, use the "Display only for certain tickets" option.
An order field is filled out once by the buyer (for the entire order). A participant field is filled out for each ticket in the order. If someone buys 3 tickets, they will fill out the participant fields 3 times.
Enable the Participant Personal Information section and set it to Mandatory. Each buyer will need to provide the first name, last name, and email of each participant. This information is then visible in your participant list and exportable.
Yes, when creating the field, use the Display only for certain tickets option and select the relevant tickets. If you leave this field empty, it will display for all tickets.
Participant field data is visible in the Participants view of your event and is exportable. Billing data is available in the Orders tab.
It's an information block displayed in the form without requiring input from the buyer. Ideal for displaying a reminder or instruction ("Arrive 30 minutes before the event starts").
---
# Organize your tickets with groups
Source: https://docs.passpass.be/en/categories/sell-your-tickets/organiser-vos-tickets-avec-les-groupes (en)
Pourquoi utiliser les groupes de tickets ?
Quand votre événement propose plusieurs types de billets, vos visiteurs peuvent se sentir perdus face à une longue liste de choix. Les groupes de tickets permettent d'organiser visuellement vos billets par catégorie directement sur votre page de vente.
Par exemple, un festival pourrait organiser ses billets en trois groupes : "Pass journaliers" (Vendredi, Samedi, Dimanche), "Pass multi-jours" (Weekend, Full Festival) et "Tarifs réduits" (Étudiant, Enfant). Chaque groupe apparaît comme une section distincte sur la page de vente, avec la possibilité d'être replié ou déplié par défaut.
Créer un groupe de tickets
Pour créer un groupe, suivez ces étapes :
Rendez-vous dans Gestion des tickets > Tickets
Cliquez sur la flèche à côté du bouton "Créer un ticket"
Sélectionnez Ajouter un groupe
Remplissez les informations du groupe (voir ci-dessous)
Cliquez sur Ajouter pour créer le groupe
Informations du groupe
Nom du groupe : le titre qui s'affichera sur votre page de vente (par exemple "Pass journaliers"). Ce champ est multilingue si vous avez activé le support multilingue.
Description : un texte optionnel qui apparaît sous le nom du groupe pour guider l'acheteur. Également multilingue.
Affichage initial : choisissez si le groupe apparaît Replié ou Déplié par défaut sur la page de vente.
Si vous avez activé le support multilingue, le nom et la description du groupe peuvent être traduits dans chaque langue configurée.
Les options avancées du groupe
Chaque groupe dispose de paramètres qui contrôlent le comportement des tickets qu'il contient. Ces règles s'appliquent au niveau du groupe, indépendamment des règles individuelles de chaque ticket.
Capacité maximale du groupe
Vous pouvez définir une capacité maximale pour l'ensemble du groupe. Cette capacité représente le nombre total de tickets pouvant être vendus dans ce groupe, tous types confondus.
Par exemple, si votre groupe "Pass journaliers" a une capacité de 500, alors le total combiné des tickets Vendredi, Samedi et Dimanche ne pourra pas dépasser 500.
Minimum et maximum par commande
Vous pouvez contrôler combien de tickets de ce groupe un visiteur peut acheter en une seule commande :
Minimum par commande : nombre minimum de tickets du groupe requis pour valider la commande. Utile pour les offres "lot" (ex : minimum 2 tickets).
Maximum par commande : nombre maximum de tickets du groupe par commande. Permet d'éviter les achats excessifs et de garantir un accès équitable.
Pour des contraintes de vente qui s'appliquent à des tickets de groupes différents (par exemple limiter le total à 4 tickets tous types confondus), utilisez plutôt les limites partagées.
Ajouter des tickets dans un groupe
Une fois votre groupe créé, deux méthodes s'offrent à vous pour y ajouter des tickets :
Créer un ticket directement dans le groupe : cliquez sur le bouton "Créer un ticket" qui apparaît à l'intérieur du groupe. Le ticket sera automatiquement assigné à ce groupe.
Glisser-déposer un ticket existant : depuis la liste de tickets, faites glisser un ticket vers le groupe souhaité en utilisant l'icône de déplacement (6 points) à gauche du ticket. Vous pouvez aussi réorganiser l'ordre des tickets au sein d'un groupe par glisser-déposer.
Les tickets qui ne sont assignés à aucun groupe apparaissent dans la section "Non groupés" en haut de la page.
Modifier ou supprimer un groupe
Pour modifier un groupe existant, cliquez sur l'icône engrenage à côté du nom du groupe. Vous pouvez ajuster le nom, la description, l'affichage initial et les options avancées.
Pour supprimer un groupe, cliquez sur l'icône corbeille.
La suppression d'un groupe est définitive. Les tickets contenus dans le groupe ne seront pas supprimés : ils seront automatiquement déplacés dans la section "Non groupés".
Cas d'usage concrets
Festival multi-jours
Créez un groupe par type de pass : "Pass journaliers" (avec un ticket par jour), "Pass multi-jours" (Weekend, Full Festival) et "Tarifs réduits" (Étudiant, Enfant, Groupe). Chaque groupe a sa propre capacité et ses propres règles.
Concert avec zones
Organisez vos tickets par zone : "Fosse" (debout, capacité limitée), "Tribune" (places assises numérotées) et "VIP" (accès backstage inclus). Le visiteur voit immédiatement les options par catégorie.
Tarifs entreprise et particulier
Séparez vos offres en "Tarifs particuliers" et "Tarifs entreprise". Le groupe entreprise peut avoir un minimum par commande de 5 tickets, tandis que les particuliers n'ont pas de minimum.
Non, un ticket ne peut appartenir qu'à un seul groupe à la fois. Si vous déplacez un ticket vers un autre groupe, il quittera automatiquement le groupe précédent.
Les tickets du groupe ne sont pas supprimés. Ils sont simplement déplacés dans la section "Non groupés" et restent visibles sur votre page de vente.
Oui, chaque groupe apparaît comme une section distincte avec son nom et sa description. Les visiteurs peuvent replier ou déplier chaque groupe pour voir les tickets qu'il contient.
Oui, vous pouvez réorganiser l'ordre des groupes par glisser-déposer dans la page Gestion des tickets. L'ordre affiché dans le dashboard correspond à l'ordre sur la page de vente.
La capacité d'un groupe s'applique uniquement aux tickets de ce groupe. Une limite partagée peut s'appliquer à des tickets de groupes différents et même inclure des suppléments. Les deux fonctionnent indépendamment.
---
# Display a field conditionally
Source: https://docs.passpass.be/en/categories/parcours-d-achat/afficher-un-champ-sous-condition (en)
Create conditional fields that only display when certain response conditions are met. For example, a "VAT Number" field that only appears if "Status" = Company or Self-employed.
Go to Purchase Journey → Custom Fields from your event menu.
Configure a condition
Open an existing field or create a new one
Locate the toggle Display under condition (orange icon)
Activate the toggle. A panel appears with:
Display this field if → select the trigger field (the question whose answer drives the display)
Operator → choose the condition (is, is not, contains, etc.)
Value → enter the expected value
Save
The trigger field is chosen only once. Changing the trigger field resets the conditions.
Available operators
The proposed operator depends on the type of the trigger field:
Single choice / Selection → is, is not
Multiple choice → contains, does not contain
Short text / Text field → contains, is empty, is filled
Formatted field (number) → is, is not, greater than, greater than or equal to, less than, less than or equal to
Formatted field (email / phone / date) → contains, is empty, is filled
Additional condition (checkbox) → is checked, is not checked
The operators "is empty", "is filled", "is checked" and "is not checked" do not require a value.
Multiple conditions
You can add multiple conditions on the same trigger field via the button + Add a condition. A connector appears between conditions:
AND → all conditions must be met
OR → at least one condition must be met
All conditions apply to the same trigger field.
Visual reading
In your field list, a conditional field appears indented under the field it depends on, with an orange badge. Hovering over the badge displays a tooltip summarizing the applied rule.
Clicking on the badge directly opens the field configuration. Fields can be reordered by drag-and-drop. Moving a "parent" field moves its entire group.
Troubleshooting
I don't see my other question in the list → it already depends on this field (no loop possible) or it's the field itself
My field has moved → it has been automatically repositioned under its trigger field, this is normal
I can't add a condition → the previous condition is incomplete, or all options are already used
How to remove the condition? → deactivate the toggle "Display under condition". Settings are saved if you reactivate it
What happens if I delete a trigger field? → a window will prompt you to also delete dependent fields or keep them by removing the condition
For any technical questions or need for assistance, feel free to contact our support.
Contact us
---
# Set up a multilingual event
Source: https://docs.passpass.be/en/categories/parcours-d-achat/set-up-a-multilingual-event (en)
PassPass allows you to offer your event in multiple languages → French, Dutch, and English. Your participants will automatically see the content in their language. This feature applies to the entire journey → event page, tickets, add-ons, order form, confirmation emails, and tickets.
Activate translation
Go to Settings (in the sidebar, next to Finances) → section Languages and activate the option Translate events.
Once activated, each available language (FR, NL, EN) appears in the settings. Select the languages in which you want to offer your event.
Translate your content
Once translation is activated, a language indicator appears to the right of each text field and each image of your event.
How it works:
Locate the language icon to the right of the field (e.g., FR 1/2, NL, EN)
Click on the desired language to switch to that version
Write or paste your translation in the field
Do the same for each field → title, description, location, ticket names, add-ons, etc.
Images can also be different by language → useful if your visuals contain text.
Use automatic translation
To save time, PassPass offers an option for automatic translation accessible from each translatable field.
Automatic translation generates a first version in the target language based on your original content. It works field by field → click on the automatic translation option available on each translatable field. It's a good starting point to speed things up, especially if you have a lot of content to translate.
Be sure to proofread and adjust the generated translations. Automatic translation provides a functional base, but it lacks the specific context of your event → some phrasings or terms specific to your industry deserve manual tweaking for optimal results.
What is automatically translated by PassPass
Some elements of the journey are already translated by PassPass in the 3 languages, without any action from you:
Buttons and interface of the purchase journey → "Buy", "Continue", "Pay", etc.
Confirmation emails → structure and system texts
PDF and Wallet tickets → system labels
Event page → interface elements (sharing, navigation, etc.)
You only need to translate your own content → the texts you write to describe your event, your tickets, and your add-ons.
Best practices
Start by writing your entire event in your main language
Then use automatic translation field by field to generate the translations
Proofread each translation, especially ticket and add-on names that may have specific meanings
Test the purchase journey in each language to ensure everything displays correctly
Yes, translation is optional. If you do not activate it, your event remains in the language in which you wrote it.
The content displays in your main language (the one in which you wrote the event). However, the interface and static content can adapt to its language (purchase buttons, emails, …)
It provides a solid foundation for getting started quickly. We recommend proofreading the translations, especially for terms specific to your event. The tool prioritizes simplicity and speed → it's up to you to refine according to your needs.
Yes, you can translate only the most important fields (title, description) and leave the rest in the main language.
The language indicator to the right of each field displays the number of languages provided (e.g., FR 1/2 means that only French is filled in out of 2 activated languages).
---
# Integration of the Meta Pixel on your PassPass ticketing
Source: https://docs.passpass.be/en/categories/integrations-and-tools/int-gration-du-meta-pixel-sur-votre-billetterie-passpass (en)
This documentation explains how to connect a Meta Pixel (formerly Facebook Pixel) to a PassPass event to track conversions, measure the return on investment of your Meta (Facebook / Instagram) campaigns, and optimize your marketing performance.
On PassPass, the Meta Pixel is configured at the level of each event. This ensures precise and independent tracking by event.
Objective of the Integration
The integration of the Meta Pixel allows you to:
measure the number of orders generated by your Meta ads
analyze the sales value from your campaigns
track page views at key stages of the purchase journey (ticketing, cart, confirmation)
Prerequisites
Before starting, make sure to:
have a Meta advertising account
have created a Meta Pixel in the Meta Events Manager
have access to the relevant event in your PassPass dashboard
If you do not yet have a Meta Pixel, you can create one via the official Meta documentation:
https://www.facebook.com/business/help/952192354843755
Step 1: Obtain Your Meta Pixel ID
To connect the Pixel to PassPass, you need to retrieve its identifier.
Access the Ads Manager of Meta
Go to Events Manager, then Data Sets
Select your Pixel and copy the Pixel ID (a sequence of 15 to 16 digits)
Direct access to data sets: https://business.facebook.com/settings/datasets
Step 2: Link the Meta Pixel in PassPass
The Meta Pixel is directly linked to a specific event.
Open the relevant event in your PassPass dashboard
Access the Advanced Configurations tab in the left sidebar
Paste the Meta Pixel ID
Save
Once saved, the Meta Pixel is active and connected to this event!
Automatically Tracked Events
Once the Pixel is connected, PassPass automatically triggers the following standard Meta events:
PageView => Loading of the ticketing page
AddToCart => Adding a ticket to the cart
Purchase => Completed purchase
Verify the Integration is Working Properly
Method 1: Meta Pixel Helper Extension
Install the Meta Pixel Helper extension for Google Chrome:
https://chromewebstore.google.com/detail/meta-pixel-helper
Open the ticketing page of your event
Ensure that the Pixel on your PassPass event page is detected and that the ID matches the one in your Meta Events Manager
Meta documentation on Pixel Helper:
https://www.facebook.com/business/help/823677331451951
Method 2: Test Data in Meta Events Manager
Access the Meta Events Manager
Select your Data Set
Open the Test Data
Enter the URL of the PassPass ticketing page (e.g., the registration confirmation page URL => try the complete purchase journey with a test free ticket that you can delete after your tests).
Observe the events returned in the Meta Events Manager => Test Data
Official Meta documentation:
https://www.facebook.com/business/help/2040882565969969
Important Information
The Pixel is Linked to an Event
Each Meta Pixel is associated with a specific event in PassPass.
This allows for clear performance analysis by event and prevents data mixing between multiple events.
The Meta Pixel Collects Data, It Does Not Launch Ads
The Meta Pixel only allows for data collection.
The creation of advertising campaigns, custom audiences, and conversion goals is done directly in Meta tools.
Go Further
Create custom audiences based on visitors and buyers
https://www.facebook.com/business/help/744354708981227
---
# Customize your PDF and Wallet tickets
Source: https://docs.passpass.be/en/categories/sell-your-tickets/customize-your-pdf-and-wallet-tickets (en)
Chaque participant reçoit un billet au format PDF par email, et peut l'ajouter à son Apple Wallet ou Google Wallet. Par défaut, ces billets utilisent la miniature et la couleur de votre événement. Mais vous pouvez aller plus loin en créant des visuels personnalisés et en les attribuant à différents types de tickets pour une expérience sur mesure.
Rendez-vous dans Gestion des tickets > Visuels depuis le menu de votre événement.
Comment fonctionnent les visuels
Un visuel est un template qui définit l'apparence du billet reçu par le participant. Il impacte deux supports :
Le billet PDF joint à l'email de confirmation.
Le pass Wallet (Apple Wallet / Google Wallet) que le participant peut ajouter à son téléphone.
Chaque visuel peut être attribué à un ou plusieurs tickets. Cela signifie que des tickets différents peuvent avoir des apparences complètement différentes.
Le comportement par défaut
Si vous ne créez aucun visuel personnalisé, tous vos tickets et suppléments utilisent le visuel par défaut de votre événement :
La miniature (thumbnail) de l'événement est utilisée comme image du billet.
La couleur principale de l'événement est appliquée au design.
C'est suffisant pour la plupart des événements simples. Mais dès que vous avez plusieurs types de tickets, la personnalisation par visuel devient un vrai atout.
Créer un visuel personnalisé
Cliquez sur Créer un visuel
Donnez un nom au template (par exemple : "Visuel VIP", "Pass Day 1", "Billet Standard"). Ce nom vous aide à identifier le visuel dans votre liste.
Personnalisez l'apparence : image, couleurs et thème du billet.
Choisissez si ce visuel est compatible Wallet (Apple Wallet / Google Wallet).
Attribuez le visuel aux tickets ou suppléments concernés.
Attribuer des visuels différents par ticket
C'est la fonctionnalité la plus puissante : chaque ticket (ou supplément) peut avoir son propre visuel. Cela permet à vos participants d'identifier immédiatement leur billet et renforce le branding de votre événement.
Dans le tableau des visuels, la colonne Attribution indique le nombre de tickets liés à chaque visuel. Cliquez sur un visuel pour voir et modifier les tickets qui l'utilisent.
Cas d'usage courants
Festival multi-jours
Créez un visuel distinct par journée : "Visuel Day 1" avec une image et couleur spécifiques, "Visuel Day 2" avec un autre design. Les participants savent immédiatement quel jour correspond à leur billet, que ce soit sur le PDF ou dans leur Wallet.
Expérience VIP premium
Créez un visuel "Gold" ou "Premium" pour vos tickets VIP avec un design distinctif (couleurs dorées, image premium). Les détenteurs de tickets VIP reçoivent un billet visuellement différent qui renforce la valeur perçue de leur achat.
Branding par catégorie
Un événement qui combine concert et afterparty peut avoir un visuel "Concert" et un visuel "Afterparty" avec des ambiances graphiques différentes. Chaque billet raconte son propre univers.
Suppléments avec visuel dédié
Même les suppléments peuvent avoir un visuel personnalisé. Un supplément "Parking" peut afficher un plan d'accès sur le billet, tandis qu'un supplément "T-shirt" peut montrer un aperçu du design.
Tous vos tickets et suppléments utiliseront le visuel par défaut, basé sur la miniature et la couleur principale de votre événement. Vos participants recevront quand même un billet PDF et pourront l'ajouter à leur Wallet.
Oui, un visuel peut être partagé entre plusieurs tickets. Par exemple, un visuel "Standard" peut être attribué à la fois au ticket Adulte et au ticket Enfant si vous souhaitez qu'ils aient la même apparence.
Oui, à condition que le visuel soit configuré comme compatible Wallet. La colonne Wallet dans le tableau des visuels indique si chaque template est compatible (Oui/Non).
Oui, vous pouvez modifier un visuel à tout moment. Les billets déjà envoyés conservent l'ancien design, mais les nouveaux billets utiliseront le visuel mis à jour.
---
# Test your purchase journey before launching sales
Source: https://docs.passpass.be/en/categories/parcours-d-achat/test-your-purchase-journey-before-launching-sales (en)
Avant de partager votre événement au grand public, il est fortement recommandé de tester le parcours d'achat de bout en bout. L'objectif → vérifier que vos tickets, suppléments, formulaires, messages de confirmation et billets fonctionnent exactement comme prévu, sans avoir à effectuer un vrai paiement.
Pourquoi tester ?
Un test de bout en bout vous permet de vérifier plusieurs points avant que vos premiers vrais acheteurs ne passent commande :
Comprendre le parcours
Les tickets et suppléments s'affichent correctement (nom, prix, description)
Les champs du formulaire de commande sont bien configurés (champs obligatoires, nominatifs, facturation)
Le message de confirmation après achat est correct
Le billet PDF et le Wallet sont générés avec les bonnes informations et le bon visuel
Méthode 1 → Ticket de test gratuit
La méthode la plus simple pour tester sans aucun paiement.
Créez un ticket de test à 0 € (par exemple "Test interne"). Vous pouvez le rendre caché pour qu'il ne soit pas visible publiquement.
Ouvrez votre page événement publique et cliquez sur "Réserver ma place"
Parcourez toutes les étapes → sélection des tickets, suppléments, formulaire de coordonnées, validation
La commande étant gratuite, vous arrivez directement à la confirmation sans passer par le paiement Stripe
Vérifiez le message de confirmation, téléchargez le billet PDF, ajoutez-le au Wallet → tout doit correspondre à ce que vous avez configuré
Si votre ticket de test est caché (visibilité "Visible avec code promo"), créez un code promo à 0 % pour le déverrouiller. Ça vous permet de tester à la fois le ticket et le code promo en une seule commande.
Méthode 2 → Code promo à 100 %
Cette méthode permet de tester le parcours avec vos vrais tickets payants, tout en ramenant le total à 0 €.
Créez un code promo à 100 % de réduction (par exemple TEST100) avec une limite d'utilisation à 1 ou 2
Ouvrez votre page événement, cliquez sur "Code promo" et saisissez votre code TEST100
Sélectionnez vos tickets payants → le prix passe à 0 € grâce à la réduction de 100 %
Complétez le parcours → la commande est gratuite, pas de passage par Stripe
Vérifiez la confirmation, les billets, le visuel → tout comme un vrai acheteur le verrait
L'avantage de cette méthode → vous voyez exactement l'expérience que vivra votre acheteur (prix affichés, prix barrés, badge réduction), tout en gardant le total à 0 €.
Nettoyer après le test
Une fois votre test terminé, pensez à faire le ménage pour ne pas polluer vos données réelles :
Supprimez les participants de test depuis la liste Participants (menu "..." → Supprimer le participant)
Supprimez le ticket de test si vous en avez créé un spécialement
Supprimez ou désactivez le code promo de test (TEST100) pour éviter qu'il ne soit utilisé par un vrai acheteur
Bonne pratique → dupliquer l'événement
Plutôt que de tester directement sur votre événement final (et devoir nettoyer ensuite), la meilleure approche est de dupliquer votre événement pour créer une copie de test.
La duplication récupère toutes vos configurations → tickets, suppléments, champs personnalisés, messages, visuels. Vous obtenez un événement identique sur lequel vous pouvez tester librement, sans toucher à l'original.
Le workflow recommandé :
Configurez votre événement complètement (tickets, suppléments, formulaire, messages, visuels)
Dupliquez l'événement → vous obtenez une copie avec toutes les configurations
Testez sur la copie → commandes de test, vérification des billets, parcours complet
Publiez l'événement original → il est vierge de toute donnée de test, prêt pour les vrais acheteurs
Supprimez la copie de test → elle a rempli son rôle
Cette approche est particulièrement utile pour les événements complexes avec beaucoup de tickets, suppléments et champs personnalisés. Vous testez en conditions réelles sans risque de mélanger données de test et vraies commandes.
Checklist de test
Avant de publier, vérifiez chaque point :
Les tickets affichent le bon nom, la bonne description et le bon prix
Les suppléments apparaissent à l'étape 2 avec les bons tarifs
Le formulaire de coordonnées affiche les bons champs (et les bons champs obligatoires)
Si les tickets sont nominatifs → les champs nom/prénom/email par participant s'affichent correctement
Le message de confirmation après achat est correct et contient les bonnes informations
Le billet PDF se génère avec le bon visuel et les bonnes informations
Le Wallet (Apple/Google) affiche le bon thème et les bonnes données
Les codes promo fonctionnent (réduction appliquée ou ticket déverrouillé)
Avec les méthodes décrites ci-dessus (ticket gratuit ou code promo à 100 %), le total est à 0 € et vous ne passez pas par Stripe. C'est la manière la plus simple de tester. Si vous souhaitez tester le flux Stripe lui-même (redirection, choix du moyen de paiement), vous devrez effectuer un vrai achat avec un petit montant puis demander un remboursement.
Oui, les commandes de test apparaissent dans vos participants, commandes et statistiques comme de vraies commandes. C'est pourquoi il est recommandé de tester sur un événement dupliqué plutôt que sur l'original, pour garder des données propres.
Oui, l'événement doit être publié pour accéder à la page publique et au checkout. Vous pouvez le publier en mode "Privé" → il ne sera pas visible sur votre page organisation ni indexé par les moteurs de recherche. Seules les personnes ayant le lien direct pourront y accéder.
Utilisez la méthode 2 → créez un code promo à 100 % de réduction (ex: TEST100). Appliquez-le sur vos vrais tickets payants et le total passera à 0 €. Vous testez l'expérience exacte de vos acheteurs, avec les prix barrés et la réduction appliquée, sans payer.
Non. La duplication crée un événement avec les mêmes configurations (tickets, suppléments, formulaire, messages, visuels), mais sans aucune donnée de participants ou de commandes. Vous repartez d'une base complètement vierge.
---
# Configure VAT Display
Source: https://docs.passpass.be/en/categories/sell-your-tickets/configure-vat-display (en)
PassPass vous permet de configurer l'affichage de la TVA sur vos tickets et suppléments. Vous pouvez afficher les prix TTC (tout compris) ou HTVA (hors taxes), et définir un taux de TVA global ou personnalisé par ticket. Cette configuration est purement informative : elle modifie l'affichage pour vos participants, mais n'affecte pas le montant réellement facturé.
L'affichage TVA est informatif uniquement. PassPass ne fait pas de déclaration TVA pour l'organisateur. Vous restez responsable de votre propre comptabilité et déclarations fiscales.
Accéder aux paramètres TVA
Rendez-vous dans Configurations avancées > Affichage TVA depuis le menu de votre événement.
Cette page regroupe deux réglages : le mode d'affichage des prix et le taux de TVA appliqué par défaut.
Choisir le mode d'affichage des prix
Trois modes sont disponibles. Sélectionnez celui qui correspond à votre type d'événement et à votre public.
Prix TTC (par défaut)
Le prix affiché inclut la TVA. C'est le mode par défaut, adapté à la majorité des événements grand public. Par exemple, un ticket à 121 € TTC sera affiché tel quel : 121 €.
Prix HTVA — TVA visible sur les tickets
Le montant hors taxes et la TVA sont affichés séparément sur chaque ligne de ticket. Par exemple, un ticket affichera 100 € + 21 € TVA. Ce mode convient aux événements B2B où vos participants ont besoin de voir le détail de la TVA pour chaque article.
Prix HTVA — TVA visible au résumé uniquement
Les tickets affichent le prix hors taxes (par exemple 100 € HTVA), mais le montant de la TVA n'apparaît que dans le récapitulatif de commande, en fin de parcours d'achat. Ce mode offre un affichage plus épuré tout en gardant la transparence fiscale au moment du paiement.
Pour un événement grand public (concert, festival, soirée), restez sur le mode Prix TTC. Pour un événement B2B (conférence, séminaire, salon professionnel), passez en Prix HTVA pour que vos participants puissent identifier le montant de TVA récupérable et ainsi que diminuer la perception du prix réel.
Définir le taux de TVA par défaut
En dessous du mode d'affichage, un champ vous permet de définir le taux de TVA par défaut pour votre événement. Ce taux s'applique automatiquement à tous vos tickets et suppléments.
En cas de doute sur le taux applicable, consultez votre comptable. PassPass affiche la TVA à titre informatif et ne se substitue pas à un conseil fiscal.
Personnaliser le taux par ticket ou supplément
Le taux de TVA par défaut s'applique à l'ensemble de votre événement, mais vous pouvez l'ajuster individuellement pour chaque ticket ou supplément. C'est utile lorsque votre événement combine des prestations soumises à des taux différents.
Pour modifier le taux d'un ticket ou supplément spécifique, rendez-vous dans les paramètres de ce ticket ou supplément et renseignez le taux de TVA souhaité. Ce taux remplacera le taux par défaut uniquement pour cet élément.
Exemple concret : votre événement utilise un taux par défaut de 21 %, mais vous proposez un supplément repas soumis à 12 %. Vous pouvez laisser 21 % sur vos tickets d'entrée et configurer 12 % uniquement sur le supplément repas.
Ce que voit le participant
Selon le mode d'affichage choisi, l'expérience du participant varie lors du parcours d'achat :
En mode Prix TTC : les prix affichés sur les tickets et dans le résumé de commande incluent la TVA. Aucune ligne TVA séparée n'apparaît.
En mode HTVA visible sur les tickets : chaque ticket affiche le montant HTVA et le montant de TVA séparément. Le résumé de commande détaille aussi la TVA.
En mode HTVA visible au résumé uniquement : les tickets affichent le prix HTVA, et la TVA totale n'apparaît que dans le récapitulatif de commande, juste avant le paiement.
Dans tous les cas, le montant total payé par le participant reste identique. Seul l'affichage change.
Cas d'usage courants
Événement grand public
Concert, festival, soirée : gardez le mode Prix TTC (par défaut). Vos participants veulent voir un prix clair et final, sans détail fiscal.
Conférence B2B
Séminaire, salon professionnel : activez Prix HTVA — TVA visible au résumé. Vos participants professionnels pourront identifier le montant de TVA récupérable lors de leur comptabilité.
Événement avec taux mixtes
Votre événement propose des tickets d'entréeet un supplément repas traiteur. Configurez le taux par défaut, puis modifiez le taux du supplément repas individuellement. Activez le mode HTVA pour que la distinction soit visible pour vos participants.
Non. Le mode d'affichage est purement informatif. Que vous affichiez 121 € TTC ou 100 € + 21 € TVA, le participant paie exactement le même montant. Seule la présentation change.
Non. PassPass affiche la TVA à titre informatif pour vos participants, mais ne se substitue pas à votre comptable. La déclaration et le paiement de la TVA restent de votre responsabilité en tant qu'organisateur.
L'affichage TVA concerne le parcours d'achat (sélection des tickets et résumé de commande). Les billets PDF et Wallet affichent le prix du ticket sans détail TVA séparé.
Oui, vous pouvez définir le taux à 0 % si votre activité est exonérée de TVA. Cela signifie simplement qu'aucune ligne TVA ne sera affichée, quel que soit le mode choisi.
Oui, le mode d'affichage est global à l'événement et s'applique à tous les éléments : tickets et suppléments. Chaque supplément peut avoir son propre taux de TVA, mais le mode d'affichage (TTC ou HTVA) reste le même pour tous.
---
# Public API and Webhooks
Source: https://docs.passpass.be/en/categories/integrations-and-tools/api-publique-et-webhooks (en)
PassPass offers a REST API and webhooks to connect your ticketing system to your external tools: CRM, accounting, marketing, automations.
Go to Settings > Developers to access these features.
For any technical questions or need for support, feel free to contact our support.
Contact support
Public API
The API allows you to read the data of your events, orders, and participants from an external system.
Connection Information
Base URL : https://api.passpass.be/api/public
Authentication : Authorization: Bearer
Interactive Documentation (Swagger) : api.passpass.be/api/public/docs
Complete Technical Reference : Public API: Technical Reference
Create an API Key
Go to Settings > Developers.
Click on New API Key.
Give a descriptive name to your key (e.g., "Sync CRM", "Export accounting").
Check the necessary permissions.
Copy the generated key and keep it in a safe place. The secret is displayed only once.
Available Permissions
Each key only has access to the data you authorize. All permissions are read-only.
Events (events:read) : title, description, dates, locations, tickets, gauges
Orders (orders:read) : buyer, purchased tickets, payment status, billing
Financial Orders (orders:read:financial) : service fees and net amount to be refunded
Order Form (orders:read:form_answers) : order form responses
Attendees (attendees:read) : identifier, assigned ticket, check-in status
Attendee Contact (attendees:read:contact) : first name, last name, and email
Financial Attendees (attendees:read:financial) : amount paid per attendee
Attendee Form (attendees:read:form_answers) : attendee form responses
Full Attendees (attendees:read:full) : access token to the ticket QR code (sensitive)
The contact, form_answers, and full extensions provide access to personal data. Only activate them if the recipient system is GDPR compliant.
Before connecting your system, test your calls with a tool like Postman. Paste the base URL, add your key in the Authorization header, and check that you receive the expected data.
Webhooks
Webhooks send a notification to a URL of your choice for each important event (payment received, ticket scanned...). Ideal for real-time reactions without continuously querying the API.
Complete Technical Reference : Webhooks: Technical Reference
Create an Endpoint
Go to Settings > Developers.
Click on New Webhook Endpoint.
Enter your server's URL.
Check the types of events to receive.
Select the permissions to control the data included in the payload.
Available Events
order.created : order created
order.paid : order paid (includes finalized free orders)
order.cancelled : order cancelled
order.expired : order expired
ticket.validated : ticket validated at entry
event.published : event published
event.updated : event updated
Security and Reliability
Each notification is signed via the X-PassPass-Signature header. Your server should verify this signature to confirm that the request indeed comes from PassPass.
If your server does not respond, PassPass automatically retries with increasing delays (6 attempts). After 20 consecutive failures, the endpoint is disabled to prevent unnecessary sends.
Permissions work the same way as for the API: you control exactly what data is included in each notification.
Best Practices
Only activate the necessary permissions. Less exposed data, less risk.
Never share an API key publicly. Avoid placing it in a GitHub repository or accessible code. Use environment variables.
Verify webhook signatures. Check the X-PassPass-Signature header for each received notification.
Respond quickly to webhooks. Your endpoint should return an HTTP 200 without delay. If processing takes time, acknowledge receipt and process in the background.
Use Cases
Synchronize Attendees with a CRM
Use the API with the attendees:read and attendees:read:contact permissions, or set up a webhook on order.paid, to automatically send each new attendee to HubSpot, Brevo, Salesforce, or any other CRM.
Export Orders to Your Accounting
Use the API with the orders:read and orders:read:financial permissions to retrieve amounts, service fees, and payment statuses, and inject them into your accounting software.
No-code Automations with Zapier, Make, or n8n
Combine the API or webhooks with an automation tool to create workflows without coding. Some examples: add a Mailchimp contact for each sale, send a Slack notification when a ticket is scanned, feed a Google Sheet in real-time.
---
# Public API: technical reference
Source: https://docs.passpass.be/en/categories/integrations-and-tools/api-publique-reference-technique (en)
This article is intended for the person consuming the PassPass REST API. For an overview and configuration from the dashboard, see Public API and Webhooks.
Interactive documentation (Swagger): api.passpass.be/api/public/docs
Authentication
Each request carries your API key in the Authorization header:
GET /api/v1/events HTTP/1.1
Host: api.passpass.be
Authorization: Bearer pk_live_9f2c4a1b...The key is linked to your organization. All returned data is automatically filtered on your organization.
The key's secret is displayed only once at creation. If you lose it, perform a rotation from the dashboard (the old secret stops working immediately).
Validate your configuration at startup with GET /v1/me : it is the only endpoint that requires no scope.
Available Endpoints
The API is read-only. 7 GET endpoints:
GET /v1/me : introspection of your API key (scopes, organization, last use). No scope required
GET /v1/events : list of your events (all statuses, drafts, and private included). Scope: events:read
GET /v1/events/:id : detail of an event. Scope: events:read
GET /v1/orders : list of orders. Scope: orders:read
GET /v1/orders/:id : detail of an order. Scope: orders:read
GET /v1/events/:eventId/attendees : attendees of an event. Scope: attendees:read
GET /v1/orders/:orderId/attendees : attendees of an order. Scope: attendees:read
Permissions (scopes)
Scopes control the fields returned, not just access to endpoints. An unauthorized field is absent, not null.
events:read : access to event endpoints
orders:read : access to order endpoints (amount, buyer, billing, line items, status)
orders:read:financial : service_fee, payout_amount, refundable_amount, historical_service_fee
orders:read:form_answers : order form answers
attendees:read : access to attendee endpoints (minimal data, no personal data)
attendees:read:contact : first_name, last_name, email
attendees:read:financial : ticket_price
attendees:read:form_answers : attendee form answers
attendees:read:full : access_token (automatically includes contact and financial)
Scopes are fixed at key creation. To change permissions, create a new key and remove the old one. access_token is the secret identifier behind the ticket's QR code. Only request attendees:read:full if your system truly needs it.
Pagination
All lists are paginated:
{
"data": [],
"total": 137,
"page": 1,
"limit": 25,
"total_pages": 6
}Parameters: ?page= (default 1) and ?limit= (default 25, maximum 100). Always paginate up to total_pages and reread the returned limit.
Conventions
Fields in snake_case (exception: buyer and billing in camelCase)
Amounts in euros (not in cents). 25 = 25.00€
Dates in ISO 8601 UTC
Multilingual fields: {"fr": "...", "en": "...", "nl": "..."}
Field not authorized by scopes: absent, not null
New fields possible without notice, do not reject an unknown field
Events
GET /v1/events returns all your events (drafts and private included, only deleted are excluded). No status or date filter on the API side: filter on the client side on status / start_at.
Use case: gauge dashboard, ticket stock tracking, event list in a back-office.
{
"id": 1535,
"title": {"fr": "Mon événement"},
"short_description": {"fr": "Description courte"},
"address_label": {"fr": "Bruxelles"},
"address_full": {"fr": "Rue de la Loi 1, 1000 Bruxelles"},
"status": "published",
"visibility": "public",
"sold_count": 128,
"max_capacity": 500,
"start_at": "2026-06-01T18:00:00.000Z",
"end_at": "2026-06-01T23:00:00.000Z",
"timezone": "Europe/Brussels",
"currency": "EUR",
"tickets": [
{
"id": 4525,
"type": "ticket",
"name": {"fr": "Entrée Standard"},
"description": null,
"price": 25,
"vat_rate": 21,
"max_quantity": 300,
"sold_count": 128,
"visibility": "visible",
"sell_start_at": null,
"sell_end_at": null
}
],
"created_at": "2026-01-12T14:22:00.000Z",
"updated_at": "2026-04-17T09:00:00.000Z"
}Orders
GET /v1/orders returns the orders of your organization.
Available Filters
status : paid (default), pending, cancelled, or all
created_after : ISO-8601 date, orders created from this moment (inclusive)
created_before : ISO-8601 date, orders created up to this moment (inclusive)
By default, only paid orders are returned. Use ?status=all if you want the full picture (cancellations, ongoing carts). This is the most common trap for accounting reconciliations.
Statuses
paid : paid and not canceled
cancelled : canceled (whether paid or not). Expired orders (abandoned cart) are also found here
pending : neither paid nor canceled (ongoing cart, pending transfer)
Use case: accounting export, financial reconciliation, CRM synchronization.
{
"id": 65817,
"event_id": 1535,
"status": "paid",
"origin": "online",
"currency": "EUR",
"amount_total": 200,
"buyer": {
"firstName": "Marie",
"lastName": "Dupont",
"email": "marie@example.com"
},
"billing": {
"identifierType": "vat",
"companyName": "Demo Corp SRL",
"vat": "BE0123456789",
"vatCountry": "BE",
"addressStreet": "Rue de la Loi 1",
"addressCity": "Bruxelles",
"addressZip": "1000",
"addressCountry": "BE"
},
"line_items": [
{
"type": "ticket",
"ticket_id": 4525,
"name": {"fr": "Entrée Standard"},
"quantity": 2,
"unit_amount": 100,
"subtotal": 200
}
],
"form_answers": null,
"paid_at": "2026-04-17T10:00:00.000Z",
"cancelled_at": null,
"created_at": "2026-04-17T10:00:00.000Z",
"updated_at": "2026-04-17T10:00:00.000Z",
"service_fee": 4.6,
"payout_amount": 195.4,
"refundable_amount": 4.6,
"historical_service_fee": 4.6
}Understanding the Fields
buyer : identity entered at checkout (first name, last name, email). In camelCase.
billing : company billing data. Present only if the buyer checked "I order on behalf of a company" at checkout. Otherwise null. In camelCase. Contains: identifierType (vat or enterprise), companyName, vat, vatCountry, addressStreet, addressCity, addressZip, addressCountry.
line_items : order details. Each line has a type:
ticket : purchased ticket, unit_amount = unit price
fee : service fee (a single aggregated line)
discount : promo code / discount, negative unit_amount
Financial block (scope orders:read:financial) :
service_fee : current service fee
historical_service_fee : fees fixed at the time of sale
payout_amount : net amount to be paid to the organizer
refundable_amount : part of the fees still refundable
form_answers (scope orders:read:form_answers) : answers to the custom order form.
Attendees
GET /v1/events/:eventId/attendees or GET /v1/orders/:orderId/attendees returns the attendees. One attendee = one ticket.
Only attendees with status active are returned. Canceled or draft tickets are absent.
Use case: attendance list, offline access control, nominative export.
{
"id": "019fdb0d-...",
"event_id": 1535,
"order_id": 65817,
"status": "active",
"ticket": {
"id": 4525,
"type": "ticket",
"name": {"fr": "Entrée Standard"}
},
"first_name": "Marie",
"last_name": "Dupont",
"email": "marie@example.com",
"ticket_price": 100,
"access_token": "019fdb0d-...",
"created_at": "2026-04-17T10:00:00.000Z",
"updated_at": "2026-04-17T10:00:00.000Z",
"form_answers": [
{
"type": "selection",
"field_id": "abc123...",
"question_title": {"fr": "Quel est votre statut actuel ?"},
"answer": {"fr": "Indépendant"}
},
{
"type": "unique-choice",
"field_id": "def456...",
"question_title": {"fr": "Régime alimentaire"},
"answer": {"fr": "Végétarien"}
},
{
"type": "short-text",
"field_id": "ghi789...",
"question_title": {"fr": "Nom entreprise"},
"answer": "Demo Corp"
},
{
"type": "formatted-field",
"field_id": "jkl012...",
"question_title": {"fr": "Téléphone"},
"answer": "+32400000000"
},
{
"type": "formatted-field",
"field_id": "mno345...",
"question_title": {"fr": "Code postal"},
"answer": "1000"
}
]
}Understanding the Fields
Fields are conditioned by scopes. Absent if the scope is not granted:
first_name, last_name, email (scope attendees:read:contact)
ticket_price (scope attendees:read:financial) : amount in euros
form_answers (scope attendees:read:form_answers) : attendee form answers. Possible types: selection, unique-choice, short-text, formatted-field. The selection and unique-choice types have multilingual answers, the others have string answers
access_token (scope attendees:read:full) : the secret identifier behind the ticket's QR code, read by the PassPass Organizer mobile app during entry control. This token can, for example, be reassigned on a badge to replicate a QR code readable by PassPass ticket control. Transmitting this token is equivalent to giving access to the ticket
Introspection
GET /v1/me returns your key information. No scope required.
{
"api_key_id": "019d-...",
"api_key_prefix": "pk_live_9f2c4a1b",
"api_key_name": "Production server",
"organization_id": "019d-...",
"scopes": ["events:read", "orders:read", "attendees:read"],
"last_used_at": "2026-04-17T09:58:00.000Z",
"created_at": "2026-01-12T14:22:00.000Z"
}Limits
100 requests per minute per API key. Beyond that: HTTP 429. If your need is real-time, use webhooks instead of polling.
Error Codes
401 : key absent, invalid or disabled
403 : valid key but insufficient scope
404 : resource nonexistent or outside your organization
400 : invalid parameter (status, date format...)
429 : quota exceeded (100 req/min)
API or Webhooks?
React to a sale in real-time → Webhooks order.paid
Synchronize a CRM continuously → Webhooks + API for catch-up
Accounting export, reconciliation → API /v1/orders?status=all&created_after=...
Attendance list, access control → API /v1/events/:id/attendees
Gauge dashboard / stocks → API /v1/events (sold_count, max_quantity)
Replay a past history → API (the webhooks do not replay the past)
The robust scheme: webhooks for real-time + periodic API call to catch up on what a network incident might have missed.
For any technical questions or need for support, feel free to contact our support.
Contact us
---
# Personalized tickets
Source: https://docs.passpass.be/en/categories/sell-your-tickets/personalized-tickets (en)
Par défaut, seul l'acheteur d'une commande est identifié (nom, prénom, email). Les tickets nominatifs permettent d'aller plus loin : chaque participant doit (ou peut) être identifié individuellement avec son propre nom, prénom et email. C'est indispensable pour les événements nécessitant un contrôle d'accès strict, une communication personnalisée ou une traçabilité par participant.
Activer les tickets nominatifs
Rendez-vous dans Parcours d'achat > Champs personnalisés depuis le menu de votre événement. En bas de la page, vous trouverez la section Informations personnelles des participants.
Il n'y a pas de toggle "tickets nominatifs" séparé. C'est la section Informations personnelles des participants qui contrôle ce mécanisme.
Deux réglages indépendants sont disponibles :
Pour chaque ticket — choisissez Obligatoire, Facultatif ou Ne pas demander
Pour chaque supplément — choisissez Obligatoire, Facultatif ou Ne pas demander
Les tickets et les suppléments se configurent séparément. Vous pouvez par exemple rendre les tickets nominatifs (obligatoire) tout en laissant les suppléments non nominatifs, ou l'inverse.
Les trois modes expliqués
Obligatoire
L'acheteur doit renseigner le nom, prénom et email de chaque participant. Pour chaque ticket de la commande, un formulaire individuel s'affiche avec ces trois champs obligatoires. L'acheteur ne peut pas passer à l'étape suivante sans les avoir tous remplis.
C'est le mode recommandé pour les événements avec contrôle d'accès nominatif, badges personnalisés ou obligations légales d'identification.
Facultatif
Une checkbox "Attribuer les tickets" apparaît dans le parcours d'achat. Si l'acheteur la coche, les champs nom, prénom et email s'affichent pour chaque ticket. S'il ne la coche pas, il passe directement à l'étape suivante sans identifier les participants.
Ce mode est idéal si vous souhaitez encourager l'identification sans bloquer l'achat. L'acheteur garde le choix.
Ne pas demander
Aucune information par participant n'est demandée. Pas de checkbox, pas de champs. Seules les coordonnées de l'acheteur (champs de commande) sont collectées. C'est le comportement par défaut.
Ce que voit le participant
Le formulaire nominatif apparaît à l'étape Coordonnées du parcours d'achat (étape 3 sur 4). Selon le mode configuré :
Mode Obligatoire
Pour chaque ticket de la commande, un bloc s'affiche avec les champs Nom, Prénom et Email. Si l'acheteur a pris 3 tickets, il verra 3 blocs à remplir. Tous les champs sont requis — impossible de valider sans les compléter.
Mode Facultatif
Une checkbox "Attribuer les tickets" s'affiche en haut de la section. Si l'acheteur la coche, les mêmes blocs nom/prénom/email apparaissent pour chaque ticket. S'il ne la coche pas, cette section est vide et il peut continuer vers le paiement.
Mode Désactivé
Aucun champ par participant n'apparaît. L'étape Coordonnées ne contient que les champs de commande (coordonnées de l'acheteur, facturation, champs personnalisés éventuels).
Tickets et suppléments : deux configurations séparées
Le point clé est que les tickets et les suppléments ont chacun leur propre réglage. Vous pouvez combiner les modes librement :
Tickets Obligatoire + Suppléments Ne pas demander — chaque porteur de ticket est identifié, mais les suppléments (parking, T-shirt, repas) ne sont pas attribués individuellement
Tickets Obligatoire + Suppléments Obligatoire — identification complète, chaque ticket et chaque supplément sont attribués à un participant nommé
Tickets Facultatif + Suppléments Ne pas demander — l'acheteur peut choisir d'attribuer les tickets, les suppléments ne sont jamais nominatifs
Cas d'usage courants
Festival avec contrôle d'accès strict
Passez les tickets en Obligatoire. Chaque participant sera identifié par nom, prénom et email. Au moment du scan à l'entrée, le nom affiché correspondra à la personne qui se présente. Les suppléments (consommations, parking) peuvent rester sur Ne pas demander.
Conférence avec badges nominatifs
Tickets en Obligatoire, suppléments (repas, workshop) aussi en Obligatoire. Vous saurez exactement qui participe à quel atelier et qui prend le repas. Les données nominatives seront disponibles dans l'export participants.
Attribution optionnelle
Tickets en Facultatif. Un groupe d'amis achète 5 tickets ensemble. L'acheteur peut cocher "Attribuer les tickets" pour donner les noms de chaque personne, ou laisser vide si tout le monde entre avec l'acheteur. Ça ne freine pas l'achat.
Vente simple sans identification pour chaque ticket
Laissez les deux sur Ne pas demander (par défaut). L'achat est rapide, seules les coordonnées de l'acheteur sont collectées. C'est le mode le plus fluide pour les événements grand public où l'identification individuelle n'est pas nécessaire.
Les informations nominatives (nom, prénom, email de chaque participant) sont disponibles dans la section Participants de votre événement. Vous pouvez les consulter en ligne ou les exporter.
Oui, rien n'empêche l'acheteur de saisir les mêmes informations pour chaque ticket. Mais l'objectif des tickets nominatifs est justement d'identifier chaque participant de manière distincte.
Le mode Obligatoire ajoute des champs à remplir, ce qui allonge l'étape Coordonnées. Si vous craignez un impact sur les conversions, utilisez le mode Facultatif : seuls les acheteurs motivés prendront le temps de remplir les informations.
Le réglage nominatif s'applique à tous les tickets de l'événement. Il n'est pas possible de rendre un type de ticket nominatif et un autre non. En revanche, tickets et suppléments ont chacun leur propre réglage indépendant.
Chaque participant identifié reçoit son propre billet (PDF ou Wallet) à l'adresse email renseignée. L'email de confirmation de commande est envoyé à l'acheteur principal.
---
# Shared limits between tickets
Source: https://docs.passpass.be/en/categories/sell-your-tickets/shared-limits-between-tickets (en)
Les limites partagées vous permettent de définir des contraintes de vente communes à plusieurs tickets et suppléments. Contrairement aux groupes (qui organisent visuellement vos tickets), les limites partagées agissent sur la logique de vente : capacité totale, minimum et maximum par commande — appliqués de manière transversale, indépendamment des groupes.
Les limites partagées fonctionnent indépendamment des groupes de tickets. Vous pouvez appliquer une limite à des tickets issus de groupes différents, ou même combiner tickets et suppléments dans une même limite.
Accéder aux limites partagées
Rendez-vous dans Gestion des tickets > Tickets. Cliquez sur la flèche à droite du bouton Créer un ticket, puis sélectionnez Limites partagées.
Créer une limite partagée
Donnez un nom à votre limite (par exemple : "Capacité totale salle A", "Max 4 par commande"). Ce nom est visible uniquement par vous.
Sélectionnez les tickets et/ou suppléments concernés. La liste est filtrable pour afficher uniquement les tickets ou uniquement les suppléments.
Définissez la capacité totale : le nombre maximum de billets vendables pour l'ensemble des tickets sélectionnés combinés.
Configurez le minimum par commande et le maximum par commande (optionnel). Ces limites s'appliquent au total combiné des tickets sélectionnés dans une seule commande.
La capacité d'une limite partagée est le total combiné de tous les tickets sélectionnés, pas une limite individuelle par ticket. Si votre limite est de 200 et que vous avez sélectionné "Adulte" et "Enfant", le total des deux ne pourra pas dépasser 200, quelle que soit la répartition.
Cas d'usage courants
Anti-scalping (limiter par commande)
Vous souhaitez qu'un acheteur ne puisse pas prendre plus de 4 billets au total, quel que soit le type. Créez une limite partagée avec un maximum par commande de 4, en sélectionnant tous les tickets concernés. Sans cette limite, un acheteur pourrait prendre 4 tickets Adulte et 4 tickets Enfant.
Limiter les suppléments
Vous proposez un supplément "Place de parking" avec seulement 50 places. Créez une limite partagée avec une capacité de 50 sur ce supplément pour garantir de ne pas vendre plus de places de parking qu'il n'en existe.
Mixer tickets et suppléments
Vous organisez un dîner avec 100 places au total. Le repas peut être inclus dans un ticket "Dîner VIP" ou ajouté comme supplément "Option dîner". Créez une limite partagée de 100 englobant le ticket VIP et le supplément dîner pour garantir qu'il n'y ait jamais plus de 100 repas vendus au total.
Limites partagées vs groupes de tickets
Ces deux fonctionnalités sont souvent confondues, mais elles ont des rôles très différents :
Les groupes organisent l'affichage de vos tickets sur la page de vente (visuel, repliable/déplié). Un groupe peut aussi avoir sa propre capacité, mais elle ne concerne que les tickets de ce groupe.
Les limites partagées définissent des contraintes de vente transversales. Elles peuvent inclure des tickets de groupes différents et même des suppléments. Elles n'ont aucun impact sur l'affichage.
Vous pouvez parfaitement utiliser les deux en même temps. Par exemple : un groupe "Standard" (Adulte + Enfant) pour l'affichage, et une limite partagée qui englobe Standard + VIP pour la capacité totale du lieu.
Oui, un même ticket peut être inclus dans plusieurs limites partagées. Toutes les contraintes s'appliquent simultanément. Par exemple, un ticket peut être soumis à la fois à une limite de capacité du lieu (300) et à une limite anti-scalping (max 4 par commande).
Non, les limites partagées ne sont pas affichées sur votre page de vente. L'acheteur voit uniquement le stock restant de chaque ticket individuel. Si la limite partagée est atteinte, les tickets concernés apparaîtront comme épuisés.
Oui, la sélection est filtrable entre Tickets et Suppléments. Vous pouvez mixer les deux dans une même limite, ce qui est utile quand un même produit (repas, parking…) est proposé à la fois via un ticket et un supplément.
Le maximum par commande d'un ticket s'applique uniquement à ce ticket spécifique. Le maximum par commande d'une limite partagée s'applique au total combiné de tous les tickets inclus dans cette limite. Par exemple, si Adulte et Enfant ont chacun un max de 4 mais une limite partagée avec un max de 4 aussi, l'acheteur ne pourra prendre que 4 billets au total (pas 4 + 4).
---
# Webhooks: Technical Reference
Source: https://docs.passpass.be/en/categories/integrations-and-tools/webhooks-reference-technique (en)
This article is intended for the person implementing the reception of PassPass webhooks. For an overview and configuration from the dashboard, see Public API and Webhooks.
Understanding the Data
Each webhook contains one or more data blocks. Here is what each represents.
Order : a transaction made by a buyer. Contains the total amount, payment status, buyer's identity, details of purchased tickets (line_items), and possibly company billing data (billing).
Attendees : one entry per ticket in the order. If a buyer takes 3 tickets, there will be 3 entries in attendees. Each entry contains the ticket type, ticket status, and depending on your permissions: participant contact details, price paid, form responses, and the ticket access token.
Event : basic information about your PassPass event (title, dates, location, status). This block is identical in all types of webhooks.
Billing : company data of the buyer (name, VAT, address). Present only if the buyer checked "I am ordering on behalf of a company" at checkout. Otherwise null.
Form answers : responses to the custom fields you have configured. Present at two levels: at the order level (form_answers in order) and at the participant level (form_answers in each attendee).
Access token : the secret identifier behind a ticket's QR code, read by the PassPass Organizer mobile app during entry control. This token can, for example, be reassigned on a badge to replicate a QR code readable by PassPass ticket control. Be careful when using it: transmitting this token is equivalent to giving access to the ticket.
Available Events
Each type of event sends different data blocks:
order.created : order created (before payment) → order, event, attendees
order.paid : payment confirmed (also includes completed free orders) → order, event, attendees
order.cancelled : order cancelled → order, event, attendees
order.expired : cart expired (25 min without payment) → order, event, attendees (empty)
ticket.validated : ticket scanned at entry → scan, participant
event.published : event published → event
event.updated : event updated → event, changed_fields
Permissions (scopes)
The data included in the payload depends on the permissions configured on your endpoint. An unauthorized field is absent from the payload, not null.
events:read : event block (title, dates, location, status)
orders:read : basic order block (amount, buyer, billing, line items, status)
orders:read:financial : service_fee, payout_amount, refundable_amount, historical_service_fee
orders:read:form_answers : order form responses
attendees:read : minimal participant block (ID, ticket, status, dates)
attendees:read:contact : first_name, last_name, email
attendees:read:financial : ticket_price
attendees:read:form_answers : participant form responses
attendees:read:full : access_token (automatically includes contact and financial)
access_token is the secret identifier behind the ticket's QR code. Request attendees:read:full only if your system truly needs it.
Payload Structure
Each webhook is a JSON POST with this envelope:
{
"type": "order.paid",
"created_at": "2026-04-17T10:00:00.000Z",
"data": { }
}Conventions:
All fields are in snake_case
Amounts are in euros (not in cents). 25 = 25,00€
Dates are in ISO 8601 UTC
Multilingual fields are objects {"fr": "...", "en": "...", "nl": "..."}
Exception: buyer and billing blocks are in camelCase
The payload can receive new fields without notice. Do not reject an unknown field
Complete Example: order.paid
Triggered when a payment is confirmed, or when a free order is finalized. It is the most used event: it confirms that a participant has completed their registration. Use case: add the participant to your CRM, send a welcome email, update your accounting, trigger a Zapier/Make/n8n workflow.
{
"type": "order.paid",
"created_at": "2026-04-17T10:00:00.000Z",
"data": {
"order": {
"id": 65817,
"event_id": 1535,
"status": "paid",
"origin": "online",
"currency": "EUR",
"amount_total": 200,
"buyer": {
"firstName": "Marie",
"lastName": "Dupont",
"email": "marie@example.com"
},
"billing": {
"identifierType": "vat",
"companyName": "Demo Corp SRL",
"vat": "BE0123456789",
"vatCountry": "BE",
"addressStreet": "Rue de la Loi 1",
"addressCity": "Bruxelles",
"addressZip": "1000",
"addressCountry": "BE"
},
"line_items": [
{
"type": "ticket",
"ticket_id": 4525,
"name": {"fr": "Entrée Standard"},
"quantity": 2,
"unit_amount": 100,
"subtotal": 200
}
],
"form_answers": null,
"paid_at": "2026-04-17T10:00:00.000Z",
"cancelled_at": null,
"created_at": "2026-04-17T10:00:00.000Z",
"updated_at": "2026-04-17T10:00:00.000Z",
"service_fee": 4.6,
"payout_amount": 195.4,
"refundable_amount": 4.6,
"historical_service_fee": 4.6
},
"event": {
"id": 1535,
"title": {"fr": "Mon événement"},
"short_description": {"fr": "Description courte"},
"address_label": {"fr": "Bruxelles"},
"locality_type": "physical",
"start_at": "2026-06-01T18:00:00.000Z",
"end_at": "2026-06-01T23:00:00.000Z",
"timezone": "Europe/Brussels",
"currency": "EUR",
"status": "published",
"visibility": "public"
},
"attendees": [
{
"id": "019fdb0d-...",
"event_id": 1535,
"order_id": 65817,
"status": "active",
"ticket": {
"id": 4525,
"type": "ticket",
"name": {"fr": "Entrée Standard"}
},
"first_name": "Marie",
"last_name": "Dupont",
"email": "marie@example.com",
"ticket_price": 100,
"access_token": "019fdb0d-...",
"created_at": "2026-04-17T10:00:00.000Z",
"updated_at": "2026-04-17T10:00:00.000Z",
"form_answers": [
{
"type": "selection",
"field_id": "abc123...",
"question_title": {"fr": "Quel est votre statut actuel ?"},
"answer": {"fr": "Indépendant"}
},
{
"type": "unique-choice",
"field_id": "def456...",
"question_title": {"fr": "Régime alimentaire"},
"answer": {"fr": "Végétarien"}
},
{
"type": "short-text",
"field_id": "ghi789...",
"question_title": {"fr": "Nom entreprise"},
"answer": "Demo Corp"
},
{
"type": "formatted-field",
"field_id": "jkl012...",
"question_title": {"fr": "Téléphone"},
"answer": "+32400000000"
},
{
"type": "formatted-field",
"field_id": "mno345...",
"question_title": {"fr": "Code postal"},
"answer": "1000"
}
]
}
]
}
}Example: ticket.validated
Triggered when a ticket is scanned via the PassPass Organizer mobile app. Use case: update a real-time attendance board, trigger badge printing, send a notification to your team upon a VIP's arrival.
{
"type": "ticket.validated",
"created_at": "2026-04-17T10:00:00.000Z",
"data": {
"scan": {
"id": "019d-...",
"type": "scan",
"direction": "enter",
"created_at": "2026-04-17T10:00:00.000Z"
},
"participant": {
"id": "019fdb0d-...",
"event_id": 1535,
"order_id": 65817,
"status": "active",
"ticket": {
"id": 4525,
"type": "ticket",
"name": {"fr": "Entrée Standard"}
},
"first_name": "Marie",
"last_name": "Dupont",
"email": "marie@example.com",
"ticket_price": 100,
"created_at": "2026-04-17T10:00:00.000Z",
"updated_at": "2026-04-17T10:00:00.000Z"
}
}
}Example: event.updated
Triggered when a tracked field of your event is modified (title, dates, location, description, status...). The payload contains the state of the event after modification and the list of changed fields. Use case: synchronize event information on your website, notify your team of a date or location change.
{
"type": "event.updated",
"created_at": "2026-04-17T10:00:00.000Z",
"data": {
"event": {
"id": 1535,
"title": {"fr": "Mon événement (modifié)"},
"short_description": {"fr": "Nouvelle description"},
"address_label": {"fr": "Bruxelles"},
"locality_type": "physical",
"start_at": "2026-06-01T18:00:00.000Z",
"end_at": "2026-06-01T23:00:00.000Z",
"timezone": "Europe/Brussels",
"currency": "EUR",
"status": "published",
"visibility": "public"
},
"changed_fields": ["title", "short_description"]
}
}Signature Verification
Each request contains a signature header:
x-passpass-signature: t=1776412800,v1=9f2c...The signature is an HMAC-SHA256 calculated with your secret (whsec_...) on the string ..
Node.js:
const crypto = require('crypto');
function verify(rawBody, header, secret, toleranceSec = 300) {
const parts = Object.fromEntries(
header.split(',').map((kv) => kv.split('='))
);
const t = Number(parts.t);
if (!t || Math.abs(Date.now() / 1000 - t) > toleranceSec) return false;
const expected = crypto
.createHmac('sha256', secret)
.update(`${t}.${rawBody}`)
.digest('hex');
const a = Buffer.from(expected, 'hex');
const b = Buffer.from(parts.v1 || '', 'hex');
return a.length === b.length && crypto.timingSafeEqual(a, b);
}Python:
import hmac, hashlib, time
def verify(raw_body: bytes, header: str, secret: str, tolerance: int = 300) -> bool:
parts = dict(kv.split("=", 1) for kv in header.split(","))
ts = int(parts.get("t", 0))
if not ts or abs(time.time() - ts) > tolerance:
return False
expected = hmac.new(
secret.encode(), f"{ts}.".encode() + raw_body, hashlib.sha256
).hexdigest()
return hmac.compare_digest(expected, parts.get("v1", ""))Reject requests with a timestamp older than 5 minutes.
HTTP Headers
Each webhook request contains these headers:
x-passpass-event : event type (e.g. order.paid). Allows routing without parsing the body
x-passpass-signature : HMAC signature to verify authenticity
x-passpass-timestamp : Unix timestamp (seconds) used in the signature
x-passpass-idempotency-key : deduplication key. Stable for the same event, including retries. Deduplicate on this field on the receiver side
x-passpass-delivery-id : unique delivery attempt identifier. Useful for debugging
Retries and Deactivation
Your endpoint must respond HTTP 2xx in less than 10 seconds. Any other code, a timeout, or a network error counts as a failure.
In case of failure, PassPass retries 6 times with exponential backoff: 1, 2, 4, 8, 16, 32 minutes.
After 20 consecutive failures, the endpoint is automatically deactivated. It must be manually reactivated from your dashboard. A success resets the counter to zero.
Acknowledge receipt immediately (HTTP 200) and process in the background. If processing is long, do not make PassPass wait.
Testing Your Endpoint
From your dashboard (Settings → Developers), click Test on your endpoint. PassPass sends a demo payload to your URL to validate the connection and signature verification.
Test payloads use recognizable identifiers: IDs starting from 9,999,000, email demo@passpass.be, names "Demo ...".
The delivery history is viewable from your dashboard. Each send (successful or failed) is recorded there with your server's response code.
For any technical questions or need for support, feel free to contact our support.
Contact us
---
# Create a waves system (wave sales)
Source: https://docs.passpass.be/en/categories/sell-your-tickets/create-a-waves-system-wave-sales (en)
The wave system (or sales by waves) is a pricing strategy that involves selling your tickets in several phases at progressive prices. The first wave is the cheapest, and each subsequent wave is more expensive. This mechanism rewards early buyers, creates a sense of urgency, and helps you generate revenue earlier.
PassPass does not offer a "create a wave" button, but the ticketing system is flexible enough to set up a complete and effective wave system. Here's how.
The principle: one ticket per wave
Each wave corresponds to a distinct ticket with its own name, price, and quantity. For example, for a festival:
Wave 1 → Early Bird : 15 €, limited to 100 tickets
Wave 2 → Regular : 25 €, limited to 400 tickets
Wave 3 → Last Minute : 35 €, limited to 100 tickets
The idea: when Wave 1 is sold out, the buyer sees they "missed" the best price and hurries to buy in Wave 2 before it also sells out.
Set up your waves step by step
Go to Ticket Management > Tickets from your event menu.
1. Create a ticket for each wave
Click on Create a ticket and create one ticket per wave. For each ticket:
Give a clear name indicating the wave: "Wave 1 — Early Bird", "Wave 2 — Regular", "Wave 3 — Last Minute". Your buyers will immediately see the progression.
Set an increasing price for each wave. The price gap should be significant enough to create urgency (for example, +10 € between each wave).
Limit the available quantity of each wave. This is what makes the wave "end" and the buyer move to the next one. Without a limit, the wave never sells out and the effect is lost.
2. Set visibility (the key ingredient)
This is where it all happens. In the advanced options of each ticket, set ticket display to Visible (not "Visible if on sale").
Why "Visible" and not "Visible if on sale"? Because a sold-out ticket remains displayed on your sales page with the mention "Sold Out". The buyer sees that Wave 1 at 15 € is already sold out, which reinforces the sense of urgency (FOMO) and encourages them to buy the next wave without delay.
If you use "Visible if on sale", the ticket disappears once sold out. The buyer doesn't know a lower price existed and loses all comparison effect.
3. Display the number of tickets remaining
To amplify urgency, enable the display of remaining stock. In the advanced options of each ticket, go to Labels and select Show the number of tickets remaining.
A badge appears on the sales page, for example "12 tickets remaining". When the number decreases, the buyer thinks "there aren't many spots left" and proceeds to purchase.
The "tickets remaining" label is particularly effective on the last tickets of each wave. It turns scarcity into a conversion lever.
4. (Optional) Use sales periods
For even more precise control, you can configure custom dates for each wave instead of relying solely on stock. For example:
Wave 1: from March 1st to 15th (or until sold out)
Wave 2: from March 16th to April 15th
Wave 3: from April 16th until the event day
Both approaches combine: if Wave 1 sells out before March 15th, the buyer sees "Sold Out" but Wave 2 is not yet on sale. This creates a double effect: "I missed Wave 1" and "Wave 2 opens soon".
5. (Optional) Organize with a group
If your event has other types of tickets (VIP, Child, etc.), create a ticket group named "General Admission" to group your waves and keep the sales page readable. The waves will appear together in a dedicated section.
Complete example: festival with 3 waves
Here is a concrete example of configuration for a festival with 400 seats:
Wave 1 → Early Bird : 15 €, 100 tickets, visibility Visible, tickets remaining label activated
Wave 2 → Regular : 25 €, 400 tickets, visibility Visible, tickets remaining label activated
Wave 3 → Last Minute : 35 €, 100 tickets, visibility Visible, tickets remaining label activated
Result on the buyer's side: the sales page displays the 3 tickets simultaneously. The buyer sees "Wave 1 — Early Bird: 15 €" with "Sold Out", "Wave 2 — Regular: 25 €" with "47 tickets remaining", and "Wave 3 — Last Minute: 35 €" pending. The comparison is immediate: the price increases with each wave, better to buy now.
Best practices
Always keep sold-out waves visible
This is the number one rule. A sold-out ticket displayed on the sales page is your best marketing argument. The buyer thinks "Wave 1 is already gone, I won't miss Wave 2". If you hide completed waves, you lose all the progression effect.
Properly dose quantities per wave
If Wave 1 has too many spots, it won't sell out quickly enough and the urgency won't be created. As a general rule, plan for 20 to 30% of your total capacity for the first wave, so it sells out quickly and triggers the domino effect on the following waves.
Communicate on wave changes
Announce the opening of each wave on your social networks and by email. "Only 20 tickets left in Wave 2!" is a powerful message to trigger purchases. The "tickets remaining" label visible on the sales page amplifies this message.
Don't multiply waves too much
Two to four waves are sufficient for most events. Too many waves (5+) dilute the effect and complicate your sales page. Three waves is the sweet spot: early bird, regular, last minute.
Advanced variations
Waves by category
For a large event, you can apply the wave system to each ticket category separately. For example, a "VIP" ticket with its own waves (VIP Early Bird, VIP Regular) and a "Standard" ticket with its own. Use ticket groups to visually organize everything.
Secret wave with promo code
Create a special "Friends & Family" wave with visibility Visible with promo code. Only people with the code will be able to purchase at this exclusive rate. Combine it with a discount code for a double advantage (reduced wave price + additional discount).
Waves with shared limit
If you want the total capacity of your event to be respected regardless of the distribution between waves, create a shared limit encompassing all wave tickets. For example, a shared limit of 400 seats across the 3 waves ensures the total never exceeds your venue's capacity.
Technically, each wave is a distinct ticket in PassPass. But you can assign them the same ticket visual (PDF and Wallet), the same access, and the same add-ons. For the participant, the experience on the day is identical — only the price paid differs.
Yes, you can modify the available quantity of a ticket at any time. If a wave sells faster than expected, you can reduce the stock of the next wave to balance. Tickets already sold are not affected.
That's precisely the desired effect. The buyer sees Wave 1 at 15 € and Wave 3 at 35 €, the comparison is immediate. They understand that the price increases over time and that Wave 1's stock is limited. If they don't want to pay more, they buy now.
Activate the option in Advanced Options > Labels for each ticket. A red badge appears on the sales page with the exact number of remaining spots (for example, "23 tickets remaining"). The counter updates in real-time with each purchase.
Both approaches work. If you want automatic control, use sales periods (custom dates) so each wave opens and closes on specific dates. If you prefer a more organic system based on demand, use only quantities: when Wave 1 is sold out, buyers naturally move to Wave 2. You can also combine both.