---
title: "Set one or multiple external reservation codes of different types to the product reservation"
method: POST
path: "/product-reservations/actions/set-product-reservation-external-codes"
tags: ["Product reservations"]
---

# Set one or multiple external reservation codes of different types to the product reservation

`POST /product-reservations/actions/set-product-reservation-external-codes`

Set one or multiple external reservation codes of different types to the product reservation.
The method will set all the reservation codes from the request.
If a reservation code type already exists in the reservation, it will be replaced with a new value from the request. If the request does not contain the reservation code type already in the reservation, CareCloud will make no changes to the reservation code.

## Headers

- `Accept-Language` string

## Request body

- object
  - `product_reservation_id` string, required — The unique ID of the product reservation.
  - `external_reservation_codes` ExternalCode[], required — List of the external reservation codes. Id codes can have different sources. Please get in touch with your account manager for the list of ID sources.
    - `external_code_type_id` string, required — The unique ID of the external code type (provided in [GET /product-reservation-external-list-types](https://carecloud.readme.io/reference/getproductreservationexternallisttypes)).
    - `value` string, required — Value of the external code.

## Response `204`

No Content

## Other responses

- `400` — Bad input parameter. The response body's `error.error_data.invalid_params[]` array lists the parameters that caused the failure, each carrying a `reason` code. See the `BadRequestErrorBody` schema for the generic reason taxonomy. Operations with domain-specific business rules document additional reasons at the operation level.
- `401` — The client has invalid credentials or auth token.
- `403` — The client does not exist or the client tried to access an unauthorized property or resource.
- `404` — The resource was not found.
- `405` — The resource does not support the specified HTTP method.
- `429` — Too many requests - more than the resource limit.
- `500` — Server is not working as expected.
- `503` — Temporary state when the service is temporarily unavailable, overloaded or there is a maintenance window.

---

[API](https://skmtc.net/crmcarecloud/apis/rest-api-reference.md) · [All operations](https://skmtc.net/crmcarecloud/apis/rest-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/crmcarecloud/rest-api-reference/revisions/329c06dbf8d9/schema)
