Update a Plan

Update a plan’s name, description, or availability.

Endpoint

PUT https://backendapi.sayswitchgroup.com/api/v1/plan/{id_or_code}

{id_or_code} accepts either the numeric ID or plan_code.

Request

curl --request PUT \
  --url https://backendapi.sayswitchgroup.com/api/v1/plan/PLN_4m8q1v2x7b9n3k6p5r0s \
  --header "Authorization: Bearer YOUR_SECRET_KEY" \
  --header "Accept: application/json" \
  --header "Content-Type: application/json" \
  --data '{
    "name": "Email Monthly Plus",
    "description": "Monthly access to the email service and priority support",
    "status": "active"
  }'

Mutable Fields

FieldTypeDescription
namestringPlan name, up to 120 characters.
descriptionstring or nullPlan description, up to 1,000 characters. Send null to remove it.
statusstringactive or inactive. Inactive plans cannot be used to create new subscriptions.

amount, currency, interval, and invoice_limit cannot be changed in v1. Create a new plan when those billing terms need to change.

Response

{
  "status": true,
  "message": "Plan updated.",
  "data": {
    "id": 42,
    "business_id": 169,
    "plan_code": "PLN_4m8q1v2x7b9n3k6p5r0s",
    "name": "Email Monthly Plus",
    "description": "Monthly access to the email service and priority support",
    "amount": "15000.00",
    "currency": "NGN",
    "interval": "monthly",
    "invoice_limit": 12,
    "status": "active",
    "domain": "test",
    "created_at": "2026-09-25T10:30:00.000000Z",
    "updated_at": "2026-09-25T11:15:00.000000Z"
  }
}

Unknown fields are ignored. Send only the supported fields listed above.