Skip to main content
POST
/
v1
/
plans
Create Plan
curl --request POST \
  --url https://api.example.com/v1/plans \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "lookup_key": "<string>",
  "description": "<string>",
  "display_order": 123,
  "metadata": {}
}
'
{
  "id": "<string>",
  "name": "<string>",
  "lookup_key": "<string>",
  "description": "<string>",
  "display_order": 123,
  "metadata": {},
  "environment_id": "<string>",
  "tenant_id": "<string>",
  "status": "<string>",
  "created_at": "<string>",
  "updated_at": "<string>",
  "created_by": "<string>",
  "updated_by": "<string>"
}

Request Body

name
string
required
Human-readable name for the plan.Example: "Pro Plan"
lookup_key
string
Unique identifier for looking up the plan programmatically.Example: "pro-monthly"
description
string
Detailed description of what the plan includes.Example: "Professional tier with advanced features"
display_order
integer
Order in which this plan should be displayed (lower numbers appear first).Example: 2
metadata
object
Arbitrary key-value pairs for storing additional information.Example: {"tier": "professional", "features": "advanced"}

Response

id
string
Unique identifier for the plan.Example: "plan_a1b2c3d4e5f6g7h8i9j0"
name
string
Human-readable name for the plan.
lookup_key
string
Unique lookup key.
description
string
Description of the plan.
display_order
integer
Display order for the plan.
metadata
object
Custom metadata.
environment_id
string
Environment ID where the plan exists.
tenant_id
string
Tenant ID that owns this plan.
status
string
Status of the plan.Values: "published", "draft", "archived"
created_at
string
ISO 8601 timestamp when the plan was created.
updated_at
string
ISO 8601 timestamp when the plan was last updated.
created_by
string
ID of the user who created the plan.
updated_by
string
ID of the user who last updated the plan.

Example Request

cURL
curl --request POST \
  --url https://api.flexprice.io/v1/plans \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "name": "Pro Plan",
    "lookup_key": "pro-monthly",
    "description": "Professional tier with advanced features",
    "display_order": 2,
    "metadata": {
      "tier": "professional",
      "recommended": "true"
    }
  }'

Example Response

{
  "id": "plan_a1b2c3d4e5f6g7h8i9j0",
  "name": "Pro Plan",
  "lookup_key": "pro-monthly",
  "description": "Professional tier with advanced features",
  "display_order": 2,
  "metadata": {
    "tier": "professional",
    "recommended": "true"
  },
  "environment_id": "env_123",
  "tenant_id": "tenant_123",
  "status": "published",
  "created_at": "2024-03-20T15:04:05Z",
  "updated_at": "2024-03-20T15:04:05Z",
  "created_by": "user_456",
  "updated_by": "user_456"
}