Skip to content

Products | Checkout

We offer a recurring payment module that enables automated payments on-chain. You can charge in native ETH, or any ERC-20 token. imply generate a payment link, share it or embed it on your site, and integrate with our API to enable subscriptions, license agreements, and more for your business!

Creating a Recurring Payment Product

On the Sukuri Dashboard, head to the Products page. From here, you can create a new product. Choose Recurring Product for your product type. Within the create screen, you will be able to set different parameters that you require by buyers. This could be an e-mail, address, full name, notes, etc.

You will also need to setup a redirect URL for the product. You can use a default redirect URL set in your business settings, or you can have specific redirect URLs for different products. It will require one of them to be set. This redirect URL will be used later during the checkout flow!

Checkout Flow

Once your product is created, you will have a generated payment link that can then be shared with anybody or embedded on your website. When users go this link, they can login with their wallet, social account, e-mail, or phone.

This will create an account for them with Sukuri that they can use later to manage their subscription.

Once the Smart Account is funded and the subscription has been paid for, they will be redirected to your set URL with the following parameters:

<REDIRECT_URL>?user_id=<USER_ID>&product_id=<PRODUCT_ID>&payment_id=<PAYMENT_ID>&payment_status=<success | pending | failure>

Let's break this down:

  • user_id: The Sukuri User ID of the person paying. You will want to store this against whatever internal user ID you have in your system. This will be used to check validity of payments.
  • product_id: Your product ID that they just paid for. This will be used to check validity of payments.
  • payment_id: Unique identifier assigned to each payment. Can be used to fetch information about payment_status later.
  • payment_status: The status of the payment when redirect occurs. Sometimes the chain might be slow so we will redirect them early to not keep them waiting. If this occurs, you will have to check the payment_status later using the user_id and product_id.

Your redirect URL should take this information and store it with whatever user initiated the transaction on your side. From this point on, you can assume that the user_id will be the same unless they use a different wallet, so your user_id should be stored in an array of valid user_ids to keep track.