API

Admin - Billing Settings

Admin endpoints for configuring platform pricing and subscription settings.

Base path: /api/v1/admin/settings

Used by: admin-booki-web-app · Role: admin (protected routes), public (pricing lookup)
organizationId: Not applicable

These endpoints allow admins to manage platform pricing configuration — the per-branch price that owners pay when subscribing.


GET /api/v1/admin/settings/public/pricing — Get Public Pricing

Auth: Public
Used by: cms-booki-web-app · Role: guest
Description: Fetch current platform pricing. Displayed to prospective owners during registration so they can see the subscription cost before signing up.

Request

GET /api/v1/admin/settings/public/pricing

Response (200 OK)

{
  "pricing": {
    "pricePerBranch": 999,
    "currency": "PHP",
    "intervals": ["monthly", "annually"],
    "trialDays": 90
  }
}

cURL Example

curl -X GET http://localhost:4001/api/v1/admin/settings/public/pricing

GET /api/v1/admin/settings/pricing — Get Pricing Settings

Auth: Protected (Authorization: Bearer <accessToken>) · admin
Used by: admin-booki-web-app · Role: admin
Description: Fetch the full pricing configuration including internal fields.

Request

GET /api/v1/admin/settings/pricing

Response (200 OK)

{
  "pricing": {
    "_id": "607f1f77bcf86cd799431000",
    "pricePerBranch": 999,
    "currency": "PHP",
    "intervals": ["monthly", "annually"],
    "trialDays": 90,
    "updatedAt": "2026-01-15T08:00:00Z"
  }
}

Error Responses

401 Unauthorized — No valid token:

{
  "statusCode": 401,
  "message": "Access token is required to proceed."
}

403 Forbidden — Not an admin:

{
  "statusCode": 403,
  "message": "Access denied. Admin role required."
}

cURL Example

curl -X GET http://localhost:4001/api/v1/admin/settings/pricing \
  -H "Authorization: Bearer ADMIN_TOKEN"

PATCH /api/v1/admin/settings/pricing — Update Pricing Settings

Auth: Protected (Authorization: Bearer <accessToken>) · admin
Used by: admin-booki-web-app · Role: admin
Description: Update the platform subscription pricing. Changes take effect for new subscriptions — existing subscriptions are not retroactively changed.

Request

{
  "pricePerBranch": 1199,
  "trialDays": 60
}

Fields (all optional — only include fields you want to change):

  • pricePerBranch (number): Price per branch per billing cycle in PHP (min 0)
  • trialDays (number): Free trial duration in days

Response (200 OK)

{
  "message": "Pricing settings updated successfully."
}

cURL Example

curl -X PATCH http://localhost:4001/api/v1/admin/settings/pricing \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ADMIN_TOKEN" \
  -d '{"pricePerBranch": 1199, "trialDays": 60}'