---
title: "Replace a theme asset"
method: POST
path: "/merchants/{merchantId}/terminalThemes/{id}/assets/replace"
tags: ["Terminal themes - merchant level"]
---

# Replace a theme asset

`POST /merchants/{merchantId}/terminalThemes/{id}/assets/replace`

## Request

- Base URL: `https://management-test.adyen.com/v3`
- URL: `https://management-test.adyen.com/v3/merchants/{merchantId}/terminalThemes/{id}/assets/replace`
- Auth: one of:
  - HTTP basic
  - API key in header `X-API-Key`

Replaces an existing image or video (an 'asset') of a terminal theme owned by the merchant account specified in the path. This endpoint is [rate limited](https://docs.adyen.com/point-of-sale/automating-terminal-management#rate-limits-in-the-live-environment).\n\n"
An asset is used for a specific screen type or screen element, and a specific Android 
terminal model. You must specify this using the query parameters `type` and `model`. 
The asset binary itself is uploaded as multipart/form-data with a single file part 
called `file`, which must declare one of the following supported Content-Type values:

- **image/svg+xml**: only for the combination `type` **logo** with `model` **All**.
- **video/mp4** or **video/quicktime**: only for `model` **SFO1** or **M450**.
- **image/jpeg** (or **image/jpg**): for all `model` values except **All**.
- **image/png**: for all `model` values except **All**.
- **image/gif**: for all `model` values except **SFO1** and **M450**.
The maximum size of the asset depends on the terminal model: 100 MB for `model` **SFO1** 
and **M450**, or 10 MB for all other `model` values.

You can upload an asset using this endpoint if the theme already has an asset with the specified combination of `type` and `model`. If that is not the case, the request fails and you need to use the endpoint `/merchants/{merchantId}/terminalThemes/{id}/assets` instead.

To make this request, your API credential must have the following [role](https://docs.adyen.com/development-resources/api-credentials#manage-api-permissions): 
- Management API - Terminal themes read and write

## Path parameters

- `merchantId` string, required
- `id` string, required

## Query parameters

- `type` 'logo' | 'homeScreen' | 'idleScreen' | 'afterPaymentScreen' | 'shopperEngagementScreen', required
- `model` 'All' | 'SFO1' | 'M450' | 'S1F2' | 'S1E2L' | 'S1F2L' | 'S1F4Pro' | 'S1E4Pro' | 'S1U2' | 'S1U2M4' | 'LDN1' | 'AMS1' | 'P630', required

## Request body `multipart/form-data`

- AssetUploadRequest: Multipart form data for uploading a single terminal theme asset.
  - `file` string, binary, required: The asset file. The part must declare a specific supported Content-Type; which Content-Type is accepted depends on the asset `type` and terminal `model` (see the endpoint description for the full mapping). The file extension is derived from it. A request with a generic or missing Content-Type such as application/octet-stream is rejected with response code **422**. The maximum asset size depends on the terminal model: up to 100 MB for SFO1 and M450, or 10 MB for all other models.

## Response `200`

OK

- ThemeAsset: A single asset within a terminal theme, with a CDN URL.
  - `model` string, required: The terminal model that the asset is for. Must be one of the supported terminal models.
  - `type` string, required: The screen type that the asset is for. Possible values: **logo**, **homeScreen**, **idleScreen**, **afterPaymentScreen**, **shopperEngagementScreen**.
  - `url` string, required: The CDN URL for this asset, including the token as a query parameter (?token=). This URL is valid for 24 hours.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `422`: Unprocessable Entity
- `429`: Too Many Requests
- `500`: Internal Server Error

## Changes

- **2026-09-23** (v3) `55cb8143ce0e`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/adyen/apis/management-api/changes/merchants/:merchantId/terminalThemes/:id/assets/replace/post.md)

---

[API](https://skmtc.dev/adyen/apis/management-api.md) - [All operations](https://skmtc.dev/adyen/apis/management-api/llms.txt) - [OpenAPI document](https://skmtc.dev/adyen/apis/management-api/revisions/55cb8143ce0e?raw)
