There can be different reasons that a customer reports that a payment has been taken but they haven't received a ticket. We recommend the following things are checked:
Check if the ticket is shown in Passenger Cloud
On the Customer support tile in Passenger Cloud, you can search for a ticket using the gift code, the payment reference from Stripe, or the Ticket ID. This will take you straight to that specific ticket. You can also search for the customer's email address and view all of their tickets. If the ticket is shown there, then you can ask the customer to check their app again. It could be that their app did not have a sufficient internet connection to retrieve the ticket, or they may be logged out or logged in on a different account.
If a ticket is not shown in the main 'Tickets' section on the customer's profile in Passenger Cloud, check the 'Gift codes' section in case the customer has gifted the ticket to another user. Please take a look at this article if you need to refund a ticket which has been gifted.
Check if the customer's email address is correct
When logged into the app, the menu and feedback show the email address. It's possible to buy a ticket whilst logged into 1 account, then log out and in to another account.
You can also search for partial email addresses in Passenger Cloud in case the customer has purchased the ticket under an email with a spelling error.
Check if the payment has been recorded by Stripe
See this article about searching for payments in Stripe.
If there's a payment in Stripe but it's not shown in Passenger Cloud then either refund the payment via Stripe or provide a complimentary corresponding ticket via Passenger Cloud. In these cases, it's likely that there has been a temporary network issue between Stripe and Passenger. If Stripe does not show a payment then ask for proof of payment from the customer. You can search for the last 4 digits of the card in Stripe.