Passes can be redeemed in either of two ways:

- [NFC tap](https://developers.google.com/wallet/retail/gift-cards/use-cases/redemption-methods.md.txt#use-nfc-tap)
- [Barcode scan](https://developers.google.com/wallet/retail/gift-cards/use-cases/redemption-methods.md.txt#use-barcode-scan)

You can optionally require extra security when users redeem or access their pass. For details,
see [Protect with Screen Lock](https://developers.google.com/wallet/retail/gift-cards/use-cases/redemption-methods.md.txt#protect-with-screen-lock).

## NFC tap

Your users can seamlessly redeem their cards using an NFC tap. Learn more about
[Smart Tap](https://developers.google.com/wallet/smart-tap), and
[sign up](https://support.google.com/pay/merchants/contact/smart_tap_support) for Smart
Tap.

## Barcode scan

Help your customers scan their Pass by attaching a barcode.

### Static barcode

You can display a static barcode by setting `object.barcode`.
The API provides a variety of barcode types. For more details, see the
[`Barcode` type](https://developers.google.com/wallet/retail/gift-cards/rest/v1/Barcode).

### Rotating barcode


For additional security, you can display a rotating barcode by setting
`object.rotatingBarcode`. Rotating barcodes look just like regular barcodes but
change periodically, typically every minute, and the terminal/reader is programmed to only
accept the most recent one. This reduces the risks associated with barcode screenshotting, in
particular ticket theft or unauthorized ticket resale. For more details, see the
[`RotatingBarcode` type](https://developers.google.com/wallet/retail/gift-cards/rest/v1/RotatingBarcode).

### Security animation


Another way to prevent screenshot abuse is by displaying the barcode security animation, which
supports human-verification of a pass.


The physical manifestation of a security animation is a shimmering outline around the barcode of
the pass. This shimmering animation triggers only when the device is in motion so one can test
the pass' validity by tilting the device. On the other hand holding the device still will only
animate the colorful security animation in loop.


To enable security animation for a pass, in the pass class, set the [`SecurityAnimation`](https://developers.google.com/wallet/retail/gift-cards/rest/v1/SecurityAnimation)
field's [`AnimationType`](https://developers.google.com/wallet/retail/gift-cards/rest/v1/SecurityAnimation#AnimationType)
to `FOIL_SHIMMER`.


See Figure 1. below for an example of how the security animation appears when it is enabled:

![Security animation shimmer](https://developers.google.com/static/wallet/images/passes/security-animation.gif)


**Figure 1.**

## Protect with Screen Lock

To protect your customer's access to their Pass, you can require a screen
lock each time they add or access their pass. This can be done by setting `class.viewUnlockRequirement`.
For more details, see the
[`ViewUnlockRequirement` type](https://developers.google.com/wallet/retail/gift-cards/rest/v1/ViewUnlockRequirement).