---
title: "Upload supplier impact data by identifier"
method: POST
path: "/public/v2/suppliers/impact-data"
tags: ["Suppliers - Impact Data"]
---

# Upload supplier impact data by identifier

`POST /public/v2/suppliers/impact-data`

## Request

- Base URL: `https://api.prewave.com`
- URL: `https://api.prewave.com/public/v2/suppliers/impact-data`
- Auth: API key in header `X-Auth-Token`
- TypeScript: <https://skmtc.dev/prewave/apis/public-prewave-api/docs/public/v2/suppliers/impact-data/post.ts> (a function with typed inputs; its response is checked against the schema)

### Overview
Upsert customer impact fields for one supplier and one year on the resolved edge.

Null or omitted fields keep the value already stored for that year. `year` defaults to the current calendar year.
`additionalInformation` is stored as a comment in the supplier's change history and is not returned in the response.
The response is the same shape as GET for the written interval, including computed fields.

### Required Permission
`update_supplier_data`. When `perspectiveId` is set, Perspective `read` is also required.

## Query parameters

- `perspectiveId` integer

## Request body

- PublicSupplierImpactDataUpload: Upload payload for supplier impact data.
  - `identifier` PublicExternalTargetIdentifier, required: Supplier site identifier. At least one lookup key (`supplierId`, `customerId`, `ownId`, or `prewaveId`) should be set; `source` optionally narrows text identifiers.
    - `supplierId` string, nullable: Supplier ID of the target. Can be combined with customerId, ownId, and/or prewaveId.
    - `customerId` string, nullable: Customer ID of the target. Can be combined with supplierId, ownId, and/or prewaveId.
    - `ownId` string, nullable: Own site ID of the target. Can be combined with supplierId, customerId, and/or prewaveId.
    - `prewaveId` integer, nullable: Prewave ID of the target. Can be combined with supplierId, customerId, and/or ownId.
    - `source` string, nullable: Optional source system to filter by. Applies to supplierId, customerId, and ownId (not prewaveId).
  - `impactData` PublicImpactDataUpload, required: Customer impact fields to upsert for one year. Null or omitted fields keep the stored value.
    - `year` integer, nullable: Calendar year of the impact interval. Defaults to the current year.
    - `diForced` 'NA' | 'No' | 'Low' | 'Mid' | 'High' | 'Critical': Impact level.
    - `biForced` 'NA' | 'No' | 'Low' | 'Mid' | 'High' | 'Critical': Impact level.
    - `spendDataMlnEuro` number, double, nullable
    - `bi12MlnEuro` number, double, nullable
    - `grossMttrEMonths` integer, nullable
    - `grossMttrIMonths` integer, nullable
    - `cocSigned` boolean, nullable
    - `additionalInformation` string, nullable: Comment stored in the supplier's change history for this upload. Not part of the impact data and not returned by GET.
    - `onPremiseStockLevelMonths` integer, nullable
    - `atSupplierStockLevelMonths` integer, nullable
    - `inLogisticChainDaysOnHand` integer, nullable
    - `atSupplierLocation` 'SameBuilding' | 'DifferentFireSection' | 'DifferentBuilding' | 'NotApplicable': The supplier location
    - `atSupplierDeviation` 'NotApplicable' | 'OnTarget' | 'Below' | 'Above': Deviation from the agreed upon Safety Stock
    - `atSupplierLastConfirmedDate` string, date-time, nullable: Last confirmation of at-supplier safety stock. Timestamp (ISO 8601 UTC)
    - `causalContribution` boolean, nullable
    - `birsInfo` string, nullable

## Response `200`

Updated impact data

- PublicSupplierImpactData: Supplier impact data for one edge interval.
  - `identifier` PublicExternalTargetIdentifier, required: Supplier site identifier. At least one lookup key (`supplierId`, `customerId`, `ownId`, or `prewaveId`) should be set; `source` optionally narrows text identifiers.
    - `supplierId` string, nullable: Supplier ID of the target. Can be combined with customerId, ownId, and/or prewaveId.
    - `customerId` string, nullable: Customer ID of the target. Can be combined with supplierId, ownId, and/or prewaveId.
    - `ownId` string, nullable: Own site ID of the target. Can be combined with supplierId, customerId, and/or prewaveId.
    - `prewaveId` integer, nullable: Prewave ID of the target. Can be combined with supplierId, customerId, and/or ownId.
    - `source` string, nullable: Optional source system to filter by. Applies to supplierId, customerId, and ownId (not prewaveId).
  - `impactData` PublicImpactData: Customer and computed impact fields for one validity interval.
    - `diForced` 'NA' | 'No' | 'Low' | 'Mid' | 'High' | 'Critical': Impact level.
    - `biForced` 'NA' | 'No' | 'Low' | 'Mid' | 'High' | 'Critical': Impact level.
    - `spendDataMlnEuro` number, double, nullable
    - `bi12MlnEuro` number, double, nullable
    - `grossMttrEMonths` number, double, nullable
    - `grossMttrIMonths` number, double, nullable
    - `cocSigned` boolean, nullable
    - `onPremiseStockLevelMonths` number, double, nullable
    - `atSupplierStockLevelMonths` number, double, nullable
    - `inLogisticChainDaysOnHand` number, double, nullable
    - `atSupplierLocation` 'SameBuilding' | 'DifferentFireSection' | 'DifferentBuilding' | 'NotApplicable': The supplier location
    - `atSupplierDeviation` 'NotApplicable' | 'OnTarget' | 'Below' | 'Above': Deviation from the agreed upon Safety Stock
    - `atSupplierLastConfirmedDate` string, date-time, nullable: Last confirmation of at-supplier safety stock. Timestamp (ISO 8601 UTC)
    - `causalContribution` boolean, nullable
    - `birsInfo` string, nullable
    - `di` number, double, nullable
    - `bi` number, double, nullable
    - `biEffE` number, double, nullable
    - `biEffI` number, double, nullable
    - `mttrNetE` number, double, nullable
    - `mttrNetI` number, double, nullable
    - `impact` 'NA' | 'No' | 'Low' | 'Mid' | 'High' | 'Critical': Impact level.
    - `actualPurchase` number, double, nullable
    - `validFrom` string, date-time, required: Start of the impact interval. Timestamp (ISO 8601 UTC)
    - `validTo` string, date-time, nullable: End of the impact interval. Null when open-ended. Timestamp (ISO 8601 UTC)

## Other responses

- `400`: Missing identifier, multiple suppliers, or multiple edges
- `403`: 403 Forbidden - Authentication or authorization failure. This status code is returned when: (1) the request lacks valid authentication credentials (missing or invalid X-Auth-Token header), or (2) the authenticated user does not have the required permission to access this resource.
- `404`: Supplier or edge not found
- `429`: 429 Too Many Requests - API rate limit exceeded. The request has been rejected because the rate limit for this endpoint has been exceeded. Default rate limits: GET requests - 100 per 10 seconds, 500 per minute; POST/PUT/PATCH/DELETE requests - 20 per 10 seconds, 100 per minute. For increased access, please contact customer success.
- `500`: 500 Internal Server Error - An unexpected error occurred on the server. The request may or may not have been processed.

## Changes

- **2026-10-17** `cedf01f35c95`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/prewave/apis/public-prewave-api/changes/public/v2/suppliers/impact-data/post.md)

---

[API](https://skmtc.dev/prewave/apis/public-prewave-api.md) - [All operations](https://skmtc.dev/prewave/apis/public-prewave-api/llms.txt) - [OpenAPI document](https://skmtc.dev/prewave/apis/public-prewave-api/revisions/ecd3f30c3c00?raw)
