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

Search for the customer's email address and view their tickets. If the ticket is shown there then ask the customer to check their app again. It could be that the app hasn't had a good 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 in Passenger Cloud, check the 'Gift codes' section in case a customer has gifted the ticket to another user. Have 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 that last 4 digits of the card in Stripe.