NOWPayments Recurring Payments Subscription API Crypto How It Works: Complete Guide

Crypto subscription billing once required merchants to manually create invoices for every renewal cycle. Customers had to remember to pay, follow-ups were constant, and revenue slipped through the cracks. NOWPayments subscriptions replace that workflow by letting merchants define a billing plan once and reuse it across payment intervals. Subscribers receive payment links automatically and approve their own transfers at each cycle. For supported intervals, ChangeNOW auto-renewal lets future charges happen without another manual checkout.

To get started with creating plans and connecting them to your product, you can explore the recurring payments subscription api crypto how documentation and build from there.

What NOWPayments Subscriptions Handle

A subscription ties recurring billing to a plan rather than a single invoice. Merchants set price, currency, and billing interval upfront. Each time the interval expires, a new payment request is prepared automatically. The subscriber receives a link and completes the payment themselves. If they opt into ChangeNOW auto-renewal, the next charge happens without returning to the merchant site.

This model removes two friction points that typically kill crypto subscription revenue: re-creating invoices at every cycle and relying on direct wallet debits that most subscribers refuse to expose. Every renewal starts from the customer side, which keeps the flow familiar while automating merchant operations.

Two Ways to Manage Subscriptions

Recurring billing can be handled through the NOWPayments dashboard or through the API. Both use the same underlying plan structure and subscriber lifecycle; the difference is purely about where the workflow lives.

Aspect Dashboard API
Where plans are created NOWPayments dashboard POST /v1/subscriptions/plans
Adding subscribers Enter email addresses manually POST /v1/subscriptions with customer email
Tracking renewals Review statuses in dashboard GET /v1/subscriptions with filters
Updating plan terms Edit plan in dashboard PATCH /v1/subscriptions/plans/:plan-id
Removing subscribers Delete sub from dashboard DELETE /v1/subscriptions/:sub_id

The dashboard approach suits teams managing subscriptions directly without embedding billing logic. The API approach fits products that need to create, modify, and deactivate subscriptions programmatically during signup or customer management flows.

Subscription Plans: Structure and Lifecycle

A subscription plan defines the repeating terms for all subscribers attached to it. When a plan is created, NOWPayments returns a unique plan ID used to generate individual subscriptions.

Plan Parameters

Parameter Description
title Name or description of the plan
interval_day Number of days between charges (e.g., 1, 7, 30, 365)
amount Fixed amount charged per interval
currency Currency code for the amount
ipn_callback_url Webhook endpoint for payment status updates
success_url Redirect URL after successful payment
cancel_url Redirect URL if subscriber cancels

Plans can be updated at any time via PATCH. Changes take effect starting with the next payment cycle; already-completed payments are not retroactively modified. This prevents unexpected adjustments from affecting customers who have already paid their current period.

Supported Billing Intervals

Not every interval supports automatic renewal through ChangeNOW. The following periods enable the auto-renewal path:

Interval Days Auto-renewal via ChangeNOW
Daily 1 Yes
Weekly 7 Yes
Monthly 30 or 31 Yes
Yearly 365 Yes
Custom Any other value No — manual invoice flow only

A 30- or 31-day interval does not align to calendar dates. Renewals shift based on the fixed day count set in the plan. A 31-day plan renewed on January 31 will land around March 3, not March 31. Merchants should factor this drift into access management and customer communications.

Subscriber Onboarding and Payment Flow

Creating a subscription attaches an email address to an existing plan. From that point forward, the subscriber follows a standardized payment sequence at each billing interval.

  1. Plan creation — Merchant defines the plan with amount, interval, and URLs.
  2. Subscriber added — Merchant creates an email subscription via dashboard or API, providing the customer’s email and the plan ID.
  3. First invoice sent — The subscriber receives an email with a payment link.
  4. Payment method choice — At the invoice page the customer selects a cryptocurrency and chooses between a one-time wallet payment or a ChangeNOW subscription authorization.
  5. Authorization or manual payment — If ChangeNOW is selected, the customer logs in, reviews the plan details, enables automatic payments, and confirms the first transaction. If another wallet is used, the customer sends funds directly to the address shown.
  6. Subscription becomes Active — Once payment is confirmed, the subscription status changes and the paid period begins.

ChangeNOW applies a daily aggregate limit of $500 per customer for the auto-renewal flow. If a subscriber’s total daily transactions through ChangeNOW exceed that threshold, subsequent auto-charges may fail until the next day.

Status Tracking and IPN Webhooks

Subscription health is communicated through discrete statuses that tell the merchant exactly where each renewal stands. These statuses map closely to underlying payment states but exist at the subscription level so businesses can control customer access without polling individual invoices.

Status Meaning Typical action
WAITING_PAY Payment has not been completed for the current period Keep subscriber in pending state
PAID Full payment received Grant or maintain access
PARTIALLY_PAID Less than the required amount was received Apply business rules for partial access or follow-up
EXPIRED Payment window closed with no completion Deactivate access, notify subscriber

When a subscription reaches EXPIRED, the unpaid period is lost. The merchant can choose to delete the subscription entirely or recreate it depending on retention strategy.

Instant Payment Notifications

Manual status checks are unnecessary when IPNs are configured. Every time a payment event occurs — whether the result is PAID, PARTIALLY_PAID, or EXPIRED — NOWPayments sends a POST request to the ipn_callback_url defined on the plan. The payload includes the subscription ID, payment ID, and current status.

Merchants verify incoming notifications using an IPN secret key to ensure the request originates from NOWPayments. Once verified, the callback handler can update user accounts, adjust access permissions, trigger emails, or record the transaction in internal systems.

Additional redirect URLs (success_url, cancel_url, partially_paid_url) provide client-side navigation cues during checkout, complementing the server-side webhook delivery.

API Reference for Recurring Payments

The full set of endpoints covers plan management, subscription creation, status retrieval, and deletion. Below is the core reference organized by operation type.

Plan Endpoints

Operation Method Endpoint
Create plan POST /v1/subscriptions/plans
Update plan PATCH /v1/subscriptions/plans/:plan-id
Get one plan GET /v1/subscriptions/plans/:plan-id
List all plans GET /v1/subscriptions/plans?limit=10&offset=3

Subscription Endpoints

Operation Method Endpoint
Create email subscription POST /v1/subscriptions
Get one subscription GET /v1/subscriptions/:sub_id
List recurring payments GET /v1/subscriptions?status=PAID&subscription_plan_id=xxx&is_active=false&limit=10&offset=0
Delete subscription DELETE /v1/subscriptions/:sub_id

All endpoints require an API key passed in the request header. Keys are generated inside the NOWPayments account settings and can carry specific permissions to restrict access to subscription-only operations.

Common Integration Patterns

Building subscriptions into a product usually involves three connected pieces: plan selection at signup, subscription creation tied to that plan, and post-payment access control driven by webhook events.

During signup, the product identifies which tier the customer chose and maps it to an existing NOWPayments plan ID. If no matching plan exists, the integration creates one dynamically before attaching the customer’s email. After the first payment clears, the customer’s account transitions to an active state. Future renewals arrive as IPN callbacks that either extend access or trigger deactivation.

SaaS platforms typically pair this flow with a grace period between EXPIRED and actual access removal, giving subscribers a window to complete a missed renewal before losing functionality. E-commerce subscriptions often skip the grace period entirely since digital goods renew instantly upon payment confirmation.

Leave a Reply

Your email address will not be published. Required fields are marked *