# Storefront payment instruments Use these operations to access Storefront payment instruments. Storefront operations interact directly with the customer, and provide the customer with access to their own data. To use Storefront operations, the customer must be issued a JWT with limited permissions. For more information, see [Create a session with username and password](https://www.rebilly.com/catalog/all/storefront-account/storefrontpostlogin) and [Exchange an authentication token](https://www.rebilly.com/catalog/all/customer-authentication/postauthenticationtokenexchange). Storefront operations are intended to be used directly from an untrusted browser. ## Retrieve payment instruments - [GET /storefront/payment-instruments](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-payment-instruments/storefrontgetpaymentinstrumentcollection.md): Retrieves a list of payment instruments. ## Create a payment instrument - [POST /storefront/payment-instruments](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-payment-instruments/storefrontpostpaymentinstrument.md): Creates a payment instrument. To use this operation, you must first create a payment token using FramePay, then provide the token ID in this operation. ## Retrieve a payment instrument - [GET /storefront/payment-instruments/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-payment-instruments/storefrontgetpaymentinstrument.md): Retrieves a payment instrument with a specified ID. ## Update payment instrument - [PATCH /storefront/payment-instruments/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-payment-instruments/storefrontpatchpaymentinstrument.md): Updates the values of a payment instrument with a specified ID. Use the Framepay payment token ID to update values. For more information, see FramePay. ## Deactivate a payment instrument - [POST /storefront/payment-instruments/{id}/deactivation](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-payment-instruments/storefrontpostpaymentinstrumentdeactivation.md): Deactivates a payment instrument with a specified ID. ## Retrieve a payment instrument setup transaction - [GET /storefront/payment-instruments/{id}/setup](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-payment-instruments/storefrontgetpaymentinstrumentsetup.md): Retrieves the latest setup transaction for a payment instrument with a specified ID. For more information, see Transactions. ## Create a setup payment instrument transaction - [POST /storefront/payment-instruments/{id}/setup](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-payment-instruments/storefrontpostpaymentinstrumentsetup.md): Creates a setup payment instrument transaction. This operation makes the payment instrument available for further payments. Treat the response as a regular transaction. For example, approval links must be followed until the transaction is completed.