# Troubleshoot two-step checkout

## Internal operations

Use this checklist when checkout does not complete after the LinkUp fee, organizer payment, or return step.

## Polar checks

- Token is for the correct environment.
- Product ID is for the correct environment.
- Product currency matches checkout currency.
- Product type allows the app-calculated amount.
- Return URL points back to the correct LinkUp environment.

## PayPal checks

- Client ID and secret are from the same environment.
- Organizer payment settings are enabled for the event organizer.
- Return and cancel URLs point to the current environment.
- Buyer is using a valid PayPal sandbox or live funding source for that environment.

## Order checks

- Order hold has not expired.
- Inventory is still available.
- LinkUp fee status and organizer payment status are both confirmed.
- Ticket was issued after both payment steps completed.