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
{
  "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

Rule of thumb: 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 the shared Pro catalog plan for one logo
  • Don’t encode the whole deal as twenty overrides
  • Don’t skip creating a subscriber — checks always need subscriber_id
  • Don’t treat overrides as “+N seats” — set the absolute entitled value