---
title: "creates a new product"
method: POST
path: "/v1/api/products"
tags: ["Products"]
---

# creates a new product

`POST /v1/api/products`

## Request body

- CreateProductRequest
  - `description` string — Description of the product. This will be passed as the description when creating the charge
  - `gateway_account_id` string, required — gateway account id of the Gateway Account as identified by adminusers.
  - `language` string — The language pages for the product will be in. If not provided, defaults to 'en'. Allowed values 'en', 'cy'
  - `metadata` object
  - `name` string, required — Name of the product. This will be passed as the name when creating the charge
  - `pay_api_token` string, required — valid api token for the gateway account of above service which this product takes payments for
  - `price` integer — Price for the product in pence. This will be passed as the amount when creating charge. Mandatory for Non-ADHOC and Non-AGENT_INITIATED_MOTO products
  - `product_name_path` string — Product Name Path part of Product Path. Required for Adhoc type only.
  - `reference_enabled` boolean — Flag to set whether payment reference is auto generated or entered by user. True means that user enters reference at the beginning of a user journey.
  - `reference_hint` string — Hint text for reference entry text box. Optional field when reference enabled. Ignored if reference_enabled is set to false.
  - `reference_label` string — Only required if reference_enabled is true. Label for the reference entry text box.
  - `return_url` string — (https only) where to redirect to upon completion of a payment. If not provided, pay-products will generate a default url to itself when creating a charge
  - `service_name_path` string — Service Name Path part of Product Path. Required for Adhoc type only.
  - `type` 'DEMO' | 'PROTOTYPE' | 'ADHOC' | 'AGENT_INITIATED_MOTO', required — Type of the product

## Response `201`

OK

- Product
  - `_links` Link[]
    - `href` string
    - `method` string
    - `rel` 'self' | 'pay' | 'next' | 'friendly'
  - `amount_hint` string
  - `date_created` string, date-time
  - `description` string
  - `external_id` string
  - `gateway_account_id` integer
  - `language` 'en' | 'cy'
  - `metadata` object
  - `name` string
  - `pay_api_token` string
  - `price` integer
  - `product_name_path` string
  - `reference_enabled` boolean
  - `reference_hint` string
  - `reference_label` string
  - `require_captcha` boolean
  - `return_url` string
  - `service_name_path` string
  - `status` 'ACTIVE' | 'INACTIVE'
  - `type` 'DEMO' | 'PROTOTYPE' | 'ADHOC' | 'AGENT_INITIATED_MOTO'

## Other responses

- `400` — Invalid payload
- `409` — A product with product_name_path already exists

---

[API](https://skmtc.net/government-digital-service/apis/products-api.md) · [All operations](https://skmtc.net/government-digital-service/apis/products-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/government-digital-service/products-api/versions/521f70c3f2d9/schema)
