Key idea:
A subscription expresses billing intent: who should be billed, what rates apply, how responsibility is allocated, and the billing cadence. A subscription does not execute billing by itself—it provides the blueprint used to generate charges.
A subscription expresses billing intent: who should be billed, what rates apply, how responsibility is allocated, and the billing cadence. A subscription does not execute billing by itself—it provides the blueprint used to generate charges.
Subscriptions answer: “What should happen every billing cycle?”
A subscription typically includes:
- Target: either a
billableEntityId(service recipient) or anaccountId(direct billing) - Pricing: a debit rate and optional discount rates
- Responsibility: an allocation configuration
- Schedule: frequency, anchor, timezone, start/end dates
- Lifecycle: status (ACTIVE / PAUSED / CANCELED)
Use when billing is tied to services rendered to a specific recipient.
Example use cases:
- Participant in a program
- Dependent receiving services
- Member-based services
Use when the charge should be billed directly to the responsible account.
Example use cases:
- Registration fee
- Administrative fee
- Account-level balance billing
Subscriptions standardize billing cadence.
Typical patterns:
- Monthly on the 1st
- Weekly on Monday
- Quarterly on a specific month/day
Time zone matters because it determines:
- when cycle boundaries start/end
- how proration is calculated
- how timestamps align in reporting
Proration happens when:
- a subscription starts mid-cycle
- a subscription ends mid-cycle
- a subscription changes cadence
- Billing runs on the 1st of the month
- A new participant starts on February 15
- The billing system should produce a prorated charge for February
A common implementation:
- the orchestrator creates a charge with an event date (Feb 15)
- the billing system resolves proration based on the cycle boundary and the subscription schedule
Important:
Subscriptions capture intent. Charges are where “this period’s billing” becomes concrete.
Subscriptions capture intent. Charges are where “this period’s billing” becomes concrete.
curl -X POST "https://api.nelnetpay.com/subscriptions" -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" -d '{
"billableEntityId": "be_emily",
"rateId": "rate_monthly_service_fee",
"discountRateIds": ["rate_loyalty_discount"],
"allocationConfigurationId": "alloc_single_family_100",
"frequency": "MONTHLY",
"anchorDay": 1,
"timeZone": "America/Chicago",
"startDate": "2026-02-15",
"status": "ACTIVE",
"tags": {
"billing": {
"subscriptionSource": "admin-ui",
"program": "STANDARD"
}
}
}'curl -X POST "https://api.nelnetpay.com/subscriptions" -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" -d '{
"accountId": "acct_smith",
"rateId": "rate_registration_fee",
"allocationConfigurationId": "alloc_single_family_100",
"frequency": "ONE_TIME",
"timeZone": "America/Chicago",
"startDate": "2026-02-01",
"status": "ACTIVE"
}'To pause/resume/cancel, update the subscription status via PATCH (or PUT depending on your API style).
curl -X PATCH "https://api.nelnetpay.com/subscriptions/sub_123" -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" -d '{ "status": "PAUSED" }'curl -X PATCH "https://api.nelnetpay.com/subscriptions/sub_123" -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" -d '{ "status": "ACTIVE" }'curl -X PATCH "https://api.nelnetpay.com/subscriptions/sub_123" -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" -d '{ "status": "CANCELED", "endDate": "2026-03-31" }'A typical operational flow:
- Subscription exists (intent)
- A scheduler/orchestrator identifies subscriptions due for billing
- The orchestrator creates charges for the appropriate period
- Charges remain mutable until invoicing/settlement locks them
This separation makes it possible to:
- preview/adjust charges before finalization
- apply proration deterministically
- preserve audit integrity
Subscriptions can be tagged for:
- reporting segmentation (program, cohort, channel)
- auditing (source system, admin user)
- downstream invoice grouping
Example:
{
"tags": {
"billing": {
"program": "STANDARD",
"createdBy": "admin-ui",
"channel": "partner-x"
}
}
}Subscriptions are versioned:
- updates create a new version
- existing charges retain their snapshot
- new charges use the latest subscription version by default
See Versioning & Change Management for change patterns and migration guidance.