---
title: "Generate product image (POST)"
method: POST
path: "/api/products/{productId}/image"
tags: ["Products"]
---

# Generate product image (POST)

`POST /api/products/{productId}/image`

## Request

- Base URL: `https://api.payware.eu`
- URL: `https://api.payware.eu/api/products/{productId}/image`
- Auth: HTTP bearer

Generates a QR code or barcode image for the product with detailed options

## Path parameters

- `productId` string, required

## Request body

- ImageRequest
  - `type` string
  - `qrOptions` QrOptions
    - `qrFormat` string
    - `qrErrorCorrection` string
    - `qrVersion` string
    - `qrBorder` string
    - `qrScale` string
  - `barOptions` BarcodeOptions
    - `barFormat` string
    - `barModuleWidth` string
    - `barBarHeight` string
    - `barFontSize` string
    - `barHumanReadableLocation` string

## Response `200`

Image generated successfully

## Other responses

- `400`: Invalid image request
- `401`: Unauthenticated - missing, malformed or expired credentials
- `403`: Forbidden - the caller is authenticated but not permitted (plan or capability gate, KYC state, or tenant scope)
- `404`: Product not found
- `429`: Too many requests - the caller exceeded its per-partner rate limit. Carries errorCode ERR_RATE_LIMIT_EXCEEDED and a Retry-After header, in seconds. The request was not processed, so the identical request is safe to retry once the window has passed.
- `500`: Internal server error

---

[API](https://skmtc.dev/payware/apis/payware-api.md) · [All operations](https://skmtc.dev/payware/apis/payware-api/llms.txt) · [OpenAPI document](https://skmtc.dev/payware/apis/payware-api/revisions/7b3352ca947b?raw)
