How to accept cryptocurrency payments for subscriptions
Create a plan and subscriber in Cryptanio, share their payment page, and verify the paid-through period after each customer-initiated transfer. Configure reminders, the grace period, and prepayment rules.
Updated:
You can manage cryptocurrency subscriptions in Cryptanio: create a plan, assign receiving details to a customer, and track their paid-through period. Customers pay for each renewal themselves from their own wallets. The service does not receive permission to withdraw funds from a wallet and does not make automatic charges.
Below is the setup through the dashboard. For example, you can use it to track payments for access to your own web service. You provide access according to your own rules: creating a plan in Cryptanio does not create a customer account in your product.
What to prepare
Choose a project with the Subscriptions service enabled and permission to manage it. Prepare your receiving details on a supported network and make sure they are available specifically to this service. An address-book entry or connecting the same wallet to monitoring does not mean you are ready to accept subscribers' payments.
You need a price per period, its duration, underpayment rules, and a clear customer identifier in your system. If you want to send reminders to the customer, prepare their contact email. You do not need to provide a seed phrase or a spending key to configure receiving payments.
Step 1. Create a plan
Open Subscriptions and the “Plans” tab, then click “New plan.” Enter a name, network, asset, and price per period. The price is set in the selected cryptocurrency. If you specify USDT, the customer must send the supported USDT on that network, rather than another coin of similar value.
Set the billing period in days. For example, a 30-day plan means that interval, rather than any calendar month. Set the grace period and reminder timing before the paid period expires separately. The grace period helps determine continued access, but it does not turn a missed payment into a received one.
Check the underpayment tolerance: this is the amount by which a receipt can fall below the price and still qualify for renewal. Do not increase it merely to make a warning about a disputed transfer disappear.
Decide whether to allow payment for several periods in advance. With prepayment enabled, a sufficiently large qualifying transfer can cover several whole periods. This is not a freely spendable customer balance: do not promise that any remainder will automatically be used in the future.
Step 2. Add a subscriber
Go to the “Subscribers” tab and click “Add subscriber.” Select a plan and enter the customer ID, such as their internal number in your service. Use a stable identifier that lets you link the subscription to the right person. Do not create a new subscriber for every renewal.
If necessary, enter an email address for reminders. Select a suitable address from the list or leave automatic assignment of available project receiving details enabled. After saving, check the assigned network, asset, and recipient.
Receiving details are assigned to the subscriber. Do not give their assigned address to another customer to save available addresses. If no suitable receiving details are available, fix the connection or replenish the pool first, then try adding the subscriber again.
Step 3. Share the payment page
Click “Copy payment link” on the subscriber's card or in its menu. Send it to the intended customer and explain the price, period length, and the need to make a transfer themselves for the next renewal.
On the page, the customer checks the amount, asset, network, and payment details. If a destination tag, memo, or comment is shown, it must be included unchanged. For Solana Pay, use the provided payment flow: reference must not be replaced with an arbitrary memo. See How networks and tokens differ for more on choosing an asset.
Step 4. Verify the first payment
A subscriber appearing in the list does not prove payment. Even an initial state with a grace period does not mean the customer has already bought a period. Wait for a qualifying confirmed receipt, then check the subscription status, “Paid until” date, and number of paid periods.
For a verification payment, send the full price of one period in a single transfer, accounting for wallet fees. An underpayment exceeding the tolerance does not renew the subscription. Do not assume that separate partial transfers will automatically be combined: renewal is assessed against an individual confirmed payment.
The article What transaction confirmations mean explains transaction discovery and final confirmation. Do not grant access based only on a screenshot or a message about a detected transfer before checking the paid-through period.
Step 5. Manage renewals and access
Check reminders for the owner and their delivery to the customer's specified email address. If no email is set, decide in advance how you will remind the customer yourself. A reminder does not make a payment on someone's behalf.
When another successful payment arrives, an unexpired paid period is extended from its previous end date; if it has already expired, the new period starts from the accepted renewal. Check the actual date in the dashboard, then update access in your own product.
If a transfer is rolled back during a blockchain reorganization, the subscription status and paid-through period may change. Plan to recheck access. Archiving a plan prevents assigning it to new subscribers, but does not replace separately canceling an existing subscription or delete payment history.
For general wallet preparation and receiving funds, see How to accept cryptocurrency payments on your website.