For developers
Take payments on any website.
Paste one snippet to get a pay button. Connect your own Stripe account to receive the money. Use Access0x1 when the customer pays from a wallet.
The pay button
Paste this where the button should appear. It works in a Shopify theme, a WordPress block, an email footer or plain HTML.
<div data-sebastn data-amount="29.00" data-label="Buy the plan"
data-merchant="acct_XXXXXXXXXXXX"
data-api="https://sebastn.com"></div>
<script src="https://sebastn.com/os.js" async></script>For a repeating charge, set the mode.
<div data-sebastn data-amount="9.00" data-mode="subscription"
data-interval="month" data-label="Subscribe"
data-merchant="acct_XXXXXXXXXXXX" data-api="https://sebastn.com"></div>Attributes
- data-sebastn
- Marks the element as a pay button. If data-amount is missing, its value is the amount.
- data-amount
- The price, as a decimal number.
- data-label
- The button text. Defaults to Pay, or Subscribe in subscription mode.
- data-currency
- The currency code. Defaults to USD.
- data-mode
- payment for a one-time charge (the default), or subscription for a recurring one.
- data-interval
- How often a subscription charges: week, month (the default) or year.
- data-merchant
- Your Stripe account id, from the SebasTN dashboard. It sends the money to your account.
- data-api
- The SebasTN address that opens checkout: https://sebastn.com.
- data-order
- Your own order reference, passed to checkout.
- data-success
- Where the buyer lands after paying. Defaults to the current page.
- data-cancel
- Where the buyer lands if they go back. Defaults to the current page.
- data-hide-badge
- Set to true to hide the small SebasTN credit line under the button.
What it does
- One-time or subscription The button charges once, or on a repeating schedule when data-mode is subscription.
- Stripe's own checkout A click asks SebasTN to open Stripe's hosted checkout and sends the buyer there. Card details are typed on Stripe's page, never on yours.
- Paid to you With data-merchant set, the charge lands in your connected Stripe account. SebasTN adds its platform fee on the charge.
- It says so when it is not ready If payments are not enabled yet, the button shows a message. It never pretends to charge.
- Safe to paste into a theme The button draws inside a Shadow DOM, so your site's styles cannot break it and it cannot break your site.
- Mount it yourself Buttons added after the page loads can be mounted with window.SebasTN.mount(element), or window.SebasTN.render(scope) for a whole section.
- Cards only The pay button takes cards. Wallet payments go through Access0x1, below.
Connect a Stripe account
The money goes to your own Stripe account. SebasTN connects to it; it does not hold it.
- Sign in and connect Sign in, then connect a Stripe account. Stripe checks who you are on its own hosted page.
- Your account id Once connected, your Stripe account id (it starts with acct_) is what you put in data-merchant.
- Read-only dashboard Your balance, payments and payouts are read live from your own Stripe account. One click opens your Stripe dashboard.
Wallet payments with Access0x1
When the customer pays from a wallet, the payment goes through the Access0x1 router.
- Access0x1 A payment router for USDC on Base, Ethereum, Unichain and Arc. It is non-custodial: the money goes to the business in the same transaction that takes it.
- One address on every chain The router has the same address on all four chains, so an integration does not change per chain.
- Public record The addresses, the owner Safe and the payments made are published at access0x1.com/mainnet. Its status and security pages are public too.
| Chain | Address |
|---|---|
| Base | 0xe92244e3368561faf21648146511DeDE3a475EB5 |
| Ethereum | 0xe92244e3368561faf21648146511DeDE3a475EB5 |
| Unichain | 0xe92244e3368561faf21648146511DeDE3a475EB5 |
| Arc | 0xe92244e3368561faf21648146511DeDE3a475EB5 |
Access0x1 has no separate documentation site. Its public pages are the record.