Skip to main content
POST
Create a subscription

Overview

Create a new subscription to fulfill an order item. This is the key step that activates a customer’s subscription—it assigns a physical asset (by serial number) to an order line item and starts the billing cycle.
You must have a confirmed order before creating subscriptions. Subscriptions are created for each unit in an order—a line item with quantity 3 requires 3 separate subscription create calls.

The Fulfillment Flow

Common Use Cases

Order Fulfillment

Activate subscriptions as devices are shipped to customers

Warehouse Integration

Automatically create subscriptions when assets are scanned for shipping

Bulk Activation

Fulfill multiple-unit orders by creating subscriptions for each item

Migration

Import existing subscriptions when migrating from another platform

Request Fields

Basic Example

Example with Custom Start Date

Use a future start date when shipping devices—the subscription (and billing) starts when the customer receives the device, not when you create the record.

Fulfilling Multi-Unit Orders

For an order with 3 units of the same product:

Asset Requirements

The serial number must reference an asset that:
  1. Exists in your asset inventory
  2. Matches the SKU from the order item
  3. Is available (status: available)
After subscription creation, the asset status changes to rented_out.

What Gets Created

When you create a subscription:
  1. Subscription record created with billing schedule
  2. Asset status updated to rented_out
  3. Order progress updated (rentedDevices count)
  4. First payment scheduled based on tenant settings
  5. Customer record updated with new device count

Billing Start Options

Your tenant settings control when billing starts:

Error Handling

Authorizations

Authorization
string
header
required

API key obtained from FlexPortal dashboard

Headers

Tenant-ID
string
required

Your tenant identifier

Body

application/json
orderId
string
required
Minimum string length: 1
assetSerialNumber
string
required
Minimum string length: 1
customerId
string
required
Minimum string length: 1
billingGroupId
string
startDate
string<date-time>
contractLength
integer
Required range: 1 < x <= 120
notes
string

Response

Subscription created

success
enum<boolean>
required
Available options:
true
message
string
required
rentalId
string
required
rental
object
required