Skip to content

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/subscriptions

Request Body

json
{
  "customerEmail": "[email protected]",
  "amount": 99,
  "periodEnd": "2027-06-12T00:00:00Z",
  "sendEmail": true
}
FieldRequiredTypeDescription
customerEmailYesstringSubscriber email
customerNameNostringSubscriber name
planIdNostringPlan to attribute (default: manual)
amountNonumberAmount collected per period (default: 0)
currencyNostringISO currency code (default: USD)
seatsNonumberLicense activation seats (default: 1)
periodEndNostringCurrent period end / license expiry (ISO 8601)
sendEmailNobooleanEmail 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 (402 when exceeded)