Netflix Streaming Billing
How to implement family vs standard streaming plans with regional pricing using Billerang.
Business Model
| Plan | Description | US Price | EU Price |
|---|---|---|---|
| Standard | 1 screen, HD | $15.49/mo | EUR 13.49/mo |
| Family | 4 screens, 4K | $22.99/mo | EUR 19.99/mo |
Key requirements:
- Regional pricing via country-based matrix
- Mid-cycle plan upgrades with prorated billing
- Simple recurring charges (no usage component)
Catalog Structure
Step-by-Step Implementation
1. Create Charges with Regional Pricing
Standard plan charge:
POST /api/rest/v2/chargeTemplate/RC_STD
Content-Type: application/json
{
"chargeType": "RECURRING",
"description": "Standard streaming monthly fee",
"calendar": "MONTHLY",
"subscriptionProrata": true,
"terminationProrata": true,
"applyInAdvance": true,
"invoiceSubCategoryCode": "ISC_SUBSCRIPTION",
"taxClassCode": "TAX_DIGITAL_SERVICES",
"pricing": {
"mode": "MATRIX",
"baseCurrency": "USD",
"dimensions": [
{ "code": "COUNTRY", "type": "String", "label": "Country" }
],
"rows": [
{ "priority": 1, "values": [{ "dimensionCode": "COUNTRY", "stringValue": "US" }], "price": 15.49 },
{ "priority": 2, "values": [{ "dimensionCode": "COUNTRY", "stringValue": "FR" }], "price": 13.49 },
{ "priority": 3, "values": [{ "dimensionCode": "COUNTRY", "stringValue": "DE" }], "price": 13.49 },
{ "priority": 4, "values": [{ "dimensionCode": "COUNTRY", "stringValue": "BR" }], "price": 39.90 },
{ "priority": 5, "values": [{ "dimensionCode": "COUNTRY", "stringValue": "JP" }], "price": 1490 },
{ "priority": 99, "description": "Default", "price": 15.49 }
],
"currencyPrices": [
{ "currencyCode": "EUR", "useForBillingAccounts": true },
{ "currencyCode": "BRL", "useForBillingAccounts": true },
{ "currencyCode": "JPY", "useForBillingAccounts": true }
],
"autoPublish": true
}
}
Family plan charge (same structure, higher prices):
POST /api/rest/v2/chargeTemplate/RC_FAM
Content-Type: application/json
{
"chargeType": "RECURRING",
"description": "Family streaming monthly fee",
"calendar": "MONTHLY",
"subscriptionProrata": true,
"terminationProrata": true,
"applyInAdvance": true,
"invoiceSubCategoryCode": "ISC_SUBSCRIPTION",
"taxClassCode": "TAX_DIGITAL_SERVICES",
"pricing": {
"mode": "MATRIX",
"baseCurrency": "USD",
"dimensions": [
{ "code": "COUNTRY", "type": "String", "label": "Country" }
],
"rows": [
{ "priority": 1, "values": [{ "dimensionCode": "COUNTRY", "stringValue": "US" }], "price": 22.99 },
{ "priority": 2, "values": [{ "dimensionCode": "COUNTRY", "stringValue": "FR" }], "price": 19.99 },
{ "priority": 4, "values": [{ "dimensionCode": "COUNTRY", "stringValue": "BR" }], "price": 55.90 },
{ "priority": 99, "description": "Default", "price": 22.99 }
],
"currencyPrices": [
{ "currencyCode": "EUR", "useForBillingAccounts": true },
{ "currencyCode": "BRL", "useForBillingAccounts": true }
],
"autoPublish": true
}
}
2. Create Products
POST /api/rest/catalog/products
{ "code": "STREAMING_STANDARD", "description": "Standard 1-screen HD streaming" }
POST /api/rest/catalog/products/STREAMING_STANDARD/addCharges
{ "productCharges": [{ "chargeTemplateCode": "RC_STD" }] }
POST /api/rest/catalog/products
{ "code": "STREAMING_FAMILY", "description": "Family 4-screen 4K streaming" }
POST /api/rest/catalog/products/STREAMING_FAMILY/addCharges
{ "productCharges": [{ "chargeTemplateCode": "RC_FAM" }] }
3. Create Offers
POST /api/rest/catalog/offerTemplate/createOrUpdate
{
"code": "NETFLIX_STANDARD",
"description": "Netflix Standard Plan",
"offerProductTemplates": [{ "productTemplate": { "code": "STREAMING_STANDARD" }, "mandatory": true }]
}
POST /api/rest/catalog/offerTemplate/createOrUpdate
{
"code": "NETFLIX_FAMILY",
"description": "Netflix Family Plan",
"offerProductTemplates": [{ "productTemplate": { "code": "STREAMING_FAMILY" }, "mandatory": true }]
}
4. Subscribe a Customer
POST /api/rest/orderManagement/commercialOrders
{
"code": "ORD_NETFLIX_001",
"billingAccountCode": "BA_CUSTOMER_US",
"orderDate": "2026-03-01T00:00:00Z",
"orderItems": [{
"offerCode": "NETFLIX_STANDARD",
"subscriptionCode": "SUB_NETFLIX_001",
"action": "SUBSCRIBE",
"products": [{ "productCode": "STREAMING_STANDARD", "quantity": 1 }]
}]
}
5. Plan Upgrade (Standard -> Family)
Mid-cycle upgrade uses an AMEND order:
POST /api/rest/orderManagement/commercialOrders
{
"code": "ORD_UPGRADE_001",
"billingAccountCode": "BA_CUSTOMER_US",
"orderDate": "2026-03-15T00:00:00Z",
"orderItems": [
{
"action": "TERMINATE",
"subscriptionCode": "SUB_NETFLIX_001",
"terminationDate": "2026-03-15T00:00:00Z",
"terminationReason": "UPGRADE"
},
{
"action": "SUBSCRIBE",
"offerCode": "NETFLIX_FAMILY",
"subscriptionCode": "SUB_NETFLIX_002",
"products": [{ "productCode": "STREAMING_FAMILY", "quantity": 1 }]
}
]
}
Invoice result (March):
Standard Plan (Mar 1-15, prorated): $7.75
Standard Plan Credit (Mar 15-31): -$7.75
Family Plan (Mar 15-31, prorated): $11.50
─────────────────────────────────────
Total: $11.50
Key Billerang Features Used
| Feature | Purpose |
|---|---|
| Matrix pricing | Regional price differentiation by country |
| Multi-currency | EUR, BRL, JPY billing for local accounts |
| Proration | Fair billing on mid-cycle upgrades |
| Recurring charge | Monthly automatic billing |
| Calendar | MONTHLY billing cycle |
Price Update Workflow
To change pricing (e.g., annual price increase):
- Create new pricing version (DRAFT) with future validity date
- Set new prices in matrix rows
- Publish the version
- Previous version auto-closes
- Rating engine picks the version matching the billing date
POST /api/rest/v2/chargeTemplate/RC_STD
{
"pricing": {
"mode": "MATRIX",
"baseCurrency": "USD",
"validity": { "from": "2027-01-01T00:00:00Z" },
"versionStatus": "DRAFT",
"dimensions": [{ "code": "COUNTRY", "type": "String" }],
"rows": [
{ "priority": 1, "values": [{ "dimensionCode": "COUNTRY", "stringValue": "US" }], "price": 16.99 },
{ "priority": 99, "description": "Default", "price": 16.99 }
]
}
}