---
title: "Validate Promo"
method: POST
path: "/api/billing/promo/validate"
tags: ["billing"]
---

# Validate Promo

`POST /api/billing/promo/validate`

## Request

- Base URL: `https://app.dataassist.io` (the document declares no server; this is the origin it was published from)
- URL: `https://app.dataassist.io/api/billing/promo/validate`
- Auth: none declared

Lightweight validation called by the SPA when the user types a code.

Returns either a successful preview ({valid, discount_amount, final_amount})
or a structured error with a `code` the SPA can branch on. Does NOT
consume the code — checkout/create is the only path that records an
application.

## Request body

- PromoValidateBody
  - `code` string, required
  - `pack_id` string, required

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/dataassist/apis/dataassist-io-server.md) · [All operations](https://skmtc.dev/dataassist/apis/dataassist-io-server/llms.txt) · [OpenAPI document](https://skmtc.dev/dataassist/apis/dataassist-io-server/revisions/43b22ccf75fe?raw)
