Skip to content

Custom plans (sales)

Enterprise deals rarely match a catalog tier. Use a custom plan plus a subscription.

Flow

  1. Negotiate flags and limits with the customer
  2. POST /plans with kind: "custom" and the agreed grants
  3. Create or select the subscriber
  4. Create a subscription to that custom plan
  5. Optional: overrides for time-boxed extras
{
  "key": "acme-enterprise-2026",
  "name": "Acme Enterprise 2026",
  "kind": "custom",
  "grants": [
    { "feature": "sso", "kind": "flag" },
    { "feature": "saml", "kind": "flag" },
    { "feature": "audit_log", "kind": "flag" },
    { "feature": "white_label", "kind": "flag" },
    { "feature": "csv_export", "kind": "flag" },
    { "feature": "seats", "kind": "limit", "limit": 250 }
  ]
}

Custom plan vs override

Custom plan Override
Scope Full package One feature
Duration Life of the deal Often expires_at
Clarity Named package sales can recognize Surgical exception
Limits Full entitled amount on the plan Absolute replace for one key

If sales would put it on the order form as a package → custom plan. If it’s “throw in SSO for 30 days” or “bump seats to 15 this quarter” → override.

Don’ts

  • Don’t edit a shared catalog plan for one logo
  • Don’t encode the whole deal as twenty overrides
  • Don’t skip creating a subscriber — checks need the customer id you chose
  • Don’t treat overrides as “+N seats” — set the absolute entitled value