β‘Subscriptions
Set up a crypto subscription in a few simple clicks
Set up a subscription page in USDC, SOL, ETH, BTC, or other digital assets with just a few clicks to collect recurring crypto payments on a set schedule. Whether youβre offering SaaS, Discord memberships, digital services, or any product requiring ongoing billing, Subscriptions streamline the entire processβfrom generating your payment to sending automated payment reminders to your customers, and handling subscription expirations.
Use Helio Pay Links or embed the Checkout Widget to accept subscription payments on your own website. Use webhooks to listen to events and confirm subscriptions in real time.
How it works
Initial Sign-Up
The customer makes their first payment to start the subscription.
A webhook is fired, indicating the subscription has been initiated.
Monthly Renewal
Customers receive email reminders with a βRenew Nowβ button before each billing cycle.
Reminder emails direct customers to a charge page where they simply complete payment with a single wallet confirmationβno extra steps needed.
Successful Renewal
Once payment is completed, Helio fires a renewal webhook.
Email reminders stop until the next billing cycle approaches.
Expired Subscription
If payment isnβt made by the renewal date (or within the grace period), the subscription expires.
A webhook payload notifies you that the subscription has ended.
Set up your subscription
Follow these steps to configure a Subscription in your Helio dashboard:
Create or Edit a Pay Link: On your Helio Dashboard, navigate to Pay Links β Create Payment & select the Subscription template
Configure Subscription: On Step 2, configure your payment, notifications, grace period & interval
Amount & Currency: Set the recurring charge amount in your preferred currency & blockchain
Billing Interval: select between monthly charges or annual charges (annual coming soon)
Email Reminders: select when reminders should start, customers are notified daily for the period of time configured
Grace Period: set a number of extra days (if any) during which the customer can still make the payment. The renewal date for customers stays the same
Configure additional settings (optional): On Step 3, you can configure affiliate links, discounts, discord role distribution & more.
Please note: if any price adjustments are made after a subscription is live, the new price will apply to the next billing cycle.
Set up your webhooks
You can set up webhooks for your subscription payments to receive events when a user starts a new subscription, renews an existing one or when a subscription is ended.
NOTE: When using the production environment (app.hel.io)
, set your API endpoint to api.hel.io/v1
and generate API keys there. For the development environment, use api.dev.hel.io/v1
and generate API keys from app.dev.hel.io
.
API Endpoint:
https://api.hel.io/v1/webhook/paylink/subscription?apiKey=
HTTP Method:
POST
Required Query Parameters:
?apiKey={Your public key here}
Required Headers:
Authorization: Bearer {Your API Token here}
Request Body:
βSTARTEDβ β Triggered when a subscription begins after payment.
βRENEWEDβ β Triggered when a subscription is renewed.
βENDEDβ β Triggered when a subscription expires or is canceled due to non-payment.
This is an example of a curl command to register a subscription webhook for paylinkID: 679bb9db7f3c16eb86bb1c67
triggered by the STARTED event upon transaction confirmation.
This sends a POST request to targetUrl: https://target-url.com/post-endpoint
.
The response of this request will look like:
A unique token generated at webhook creation is included with each webhook as authorization: Bearer SHARED_TOKEN, verifying the webhook source as Helio.
Note: Retain this token to authenticate and delete web hooks if needed.
Upon successful payment on Pay Link 679bc67238ad367780fc7cf1, the targetUrl
will receive an HTTP [POST] request with the following payload:
Note: When you create or list Pay Link webhooks, a sharedToken
is generated. This token is sent to your endpoint as authorization: Bearer SHARED_TOKEN
to validate that the webhook originates from Helio.
Retrieve all subscriptions in your account
NOTE: When using the production environment (app.hel.io)
, set your API endpoint to api.hel.io/v1
and generate API keys there. For the development environment, use api.dev.hel.io/v1
and generate API keys from app.dev.hel.io
.
You can retrieve all subscriptions set up under your account, with the added ability to filter by Pay Link ID and email.
API Endpoint:
https://api.hel.io/v1/subscriptions
HTTP Method: GET
Required Headers:
Authorization: Bearer {SECRET_API_KEY}
Query Parameters
apiKey
String
Yes
Your Public API Key
paylink
String
No
The Pay Link ID of the subscription
email
String
No
The email used to sign up for the subscription
Example URL with Query Parameters
Sample Response
Query a specific subscription
NOTE: When using the production environment (app.hel.io)
, set your API endpoint to api.hel.io/v1
and generate API keys there. For the development environment, use api.dev.hel.io/v1
and generate API keys from app.dev.hel.io
.
You can query a specific subscription to view its status or additional details. This is done using the subscription ID, which can be retrieved via the https://api.hel.io/v1/subscriptions
endpoint.
API Endpoint:
https://api.hel.io/v1/subscriptions/{id}
HTTP Method:
GET
Required Headers:
Authorization: Bearer {SECRET_API_KEY}
Required Query Parameters:
?apiKey={Your public key here}
Required Path:
id
id
refers to the subscription ID, which can be retrieved using the https://api.hel.io/v1/subscriptions
endpoint here.
Example URL with Query Parameters
Sample Response
Last updated