Skip to main content

Netflix Streaming Billing

How to implement family vs standard streaming plans with regional pricing using Billerang.

Business Model

PlanDescriptionUS PriceEU Price
Standard1 screen, HD$15.49/moEUR 13.49/mo
Family4 screens, 4K$22.99/moEUR 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

FeaturePurpose
Matrix pricingRegional price differentiation by country
Multi-currencyEUR, BRL, JPY billing for local accounts
ProrationFair billing on mid-cycle upgrades
Recurring chargeMonthly automatic billing
CalendarMONTHLY billing cycle

Price Update Workflow

To change pricing (e.g., annual price increase):

  1. Create new pricing version (DRAFT) with future validity date
  2. Set new prices in matrix rows
  3. Publish the version
  4. Previous version auto-closes
  5. 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 }
]
}
}