# Make a payment instrument available for future use This example describes how to create a payment instrument and make it available for future payments. This is useful when you need to process payments that have a future date. To access this functionality directly, use [`RebillyInstrument.setup(instrument)`](/docs/dev-docs/reference-rebilly-instruments#rebillyinstruments.setup). ## 1. Add the library mounting points to your website For this example, this is the only the required mounting point. ```HTML
``` ```CSS body, html { background: #f8fbfd; padding: 0; margin: 0; } #app { font-family: Avenir, Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-align: center; color: #2c3e50; } .form-wrapper { max-width: 700px; box-sizing: border-box; padding: 40px 0; margin: 0 auto; } .form-wrapper section { background: #ffffff; box-sizing: border-box; padding: 40px!important; border-radius: 6px; border: 1px solid #e8e8fb; } ``` ## 2. Change the `transactionType` to `setup` By default `transactionType` is set to `purchase`, change this property to `setup`. You may provide any [purchase data available to mount](/docs/dev-docs/example-rebilly-instruments-purchase-data). ```javascript RebillyInstruments.mount({ publishableKey: 'pk_sandbox_123', organizationId: 'org-123', websiteId: 'my-website-id', transactionType: 'setup', money: { amount: 0, currency: 'USD', }, }); ``` ## 3. Check the result of the setup transaction (optional) Use `RebillyInstruments.on()` to access the `setup-completed` event and to capture the instrument and the transaction. ```javascript RebillyInstruments.on('setup-completed', (setup) => { // setup will contain instrument and transaction console.log('setup-completed', setup); }); ```