# Save a BOM version snapshot with change reason (/docs/api-reference/products/ProductsController_saveBomVersion)

`POST /api/factories/{factoryId}/products/{productId}/bom-versions`

Base URL: https://api.xentr.ai

Authentication: bearer token (`Authorization: Bearer <token>`).

## Parameters

| Name | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `factoryId` | path | yes | string | Factory ID |
| `productId` | path | yes | string | Product ID |

## Request body

Required.

Content type: `application/json`

```json
{
  "type": "object",
  "properties": {
    "changeReason": {
      "type": "string",
      "description": "Reason for this BOM change",
      "example": "Updated material spec per supplier change"
    },
    "createdBy": {
      "type": "string",
      "description": "Who created this version"
    }
  },
  "required": [
    "changeReason"
  ]
}
```

## Responses

### 201: BOM version saved