# Payment tokens Use payment tokens to reduce the scope of [PCI DSS compliance](https://www.rebilly.com/docs/pci-compliance/). A payment token can be made using a different authentication scheme (public key authentication), which enables you to create a payment token directly from the browser. This bypasses the need to send sensitive cardholder info to your servers. We recommend using this with the FramePay library, which helps you integrate a form into this API resource and create payment tokens. ## Create a payment token - [POST /tokens](https://www.rebilly.com/docs/dev-docs/api/payment-tokens/posttoken.md): Creates a payment token which can be exchanged into a payment instrument. FramePay is the recommended way to create a payment token because it minimizes PCI DSS compliance. Once a payment token is created, it can only be used once. A payment token expires upon first use or within 30 minutes of the token creation, whichever comes first. ## Retrieve tokens - [GET /tokens](https://www.rebilly.com/docs/dev-docs/api/payment-tokens/gettokencollection.md): Retrieve a list of tokens. ## Retrieve a token - [GET /tokens/{token}](https://www.rebilly.com/docs/dev-docs/api/payment-tokens/gettoken.md): Retrieves a token with a specified ID. ## Validate a digital wallet session - [POST /digital-wallets/validation](https://www.rebilly.com/docs/dev-docs/api/payment-tokens/postdigitalwalletvalidation.md): Validates a digital wallet session. We recommend using FramePay to validate a digital wallet session.