Appearance
Create Manual Subscription
Record a manual/offline subscription: issues a license that expires at the period end and logs a recurring-billing record for it. This does not set up real recurring charges with a payment provider — renewals stay manual.
POST /v1/products/:id/subscriptionsRequest Body
json
{
"customerEmail": "[email protected]",
"amount": 99,
"periodEnd": "2027-06-12T00:00:00Z",
"sendEmail": true
}| Field | Required | Type | Description |
|---|---|---|---|
customerEmail | Yes | string | Subscriber email |
customerName | No | string | Subscriber name |
planId | No | string | Plan to attribute (default: manual) |
amount | No | number | Amount collected per period (default: 0) |
currency | No | string | ISO currency code (default: USD) |
seats | No | number | License activation seats (default: 1) |
periodEnd | No | string | Current period end / license expiry (ISO 8601) |
sendEmail | No | boolean | Email the license key to the customer (default: false) |
Response
json
{
"data": {
"id": "sub_xxx",
"licenseId": "lic_xxx",
"licenseKey": "MYPLUGIN-XXXX-XXXX-XXXX-XXXX"
}
}Example
bash
curl -X POST "https://api.packedge.dev/v1/products/prd_xxx/subscriptions" \
-H "Authorization: Bearer pk_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"customerEmail": "[email protected]",
"amount": 99,
"periodEnd": "2027-06-12T00:00:00Z"
}'Notes
- When
amount > 0, the first invoice is recorded as a completed manual payment linked to the subscription - Free-tier license caps apply (
402when exceeded)
