---
title: "Updates a travel letter request"
method: PUT
path: "/v1/travel-letter-requests/{id}"
tags: ["Travel Letters"]
---

# Updates a travel letter request

`PUT /v1/travel-letter-requests/{id}`

Updates a travel letter request

## Scopes

| Category | Read only Scope | Write only Scope (read access implicit) |
|---|---|---|
| Manage employment documents (`employment_documents`) | - | Manage travel letters (`travel_letter:write`) |

## Path parameters

- `id` string, required

## Request body

- union — Schema for updating travel letter request parameters
  - object — Schema for approved travel letter
    - `employer_special_instructions` string, nullable
    - `responsible_for_accommodation_cost` 'employee' | 'employer', required
    - `responsible_for_meal_cost` 'employee' | 'employer', required
    - `responsible_for_travel_cost` 'employee' | 'employer', required
    - `status` 'approved_by_manager', required
  - object — Schema for declined travel letter
    - `employer_special_instructions` string, nullable
    - `reason` string, required
    - `status` 'declined_by_manager', required

## Response `200`

Success

- TravelLetterResponse — Schema for travel letter request
  - `data` object, required
    - `travel_letter_request` TravelLetterRequest, required — A travel letter request submitted by an employee who needs a formal letter from their employer to support a visa or travel application. The request goes through a two-stage approval: first by the employer manager, then by Remote.
      - `additional_information` string, required — Additional information provided by the employee about their travel plans.
      - `destination_country` Country, required — A supported country on Remote
        - `alpha_2_code` string, required — The ISO 3166-1 alpha-2 country code (e.g., "PT").
        - `code` string, required — The ISO 3166-1 alpha-3 country code (e.g., "PRT"). This is the primary code used across the Remote API.
        - `contractor_products_available` string[] — Contractor product names available for this country
        - `country_subdivisions` CountrySubdivision[], nullable — Administrative subdivisions of the country (e.g., states, provinces, districts). Null if the country has no subdivisions relevant to Remote's services.
          - `code` string — The ISO 3166-2 subdivision code (e.g., "PT-11" for Lisboa).
          - `name` string, required — The subdivision's name (e.g., "Lisboa", "California").
          - `subdivision_type` string — The type of subdivision (e.g., "District", "State", "Province").
        - `employment_agreement_preview_available` boolean — Whether an Employment Agreement preview is available for this country.
        - `eor_onboarding` boolean — Whether EOR (Employer of Record) onboarding is available in this country.
        - `locked_benefits` string — When benefit plan selections become locked for this country (e.g., "after_first_hire" means benefits cannot be changed after the first employee is hired).
        - `name` string, required — The country's full English name.
        - `region` string — The geographic region the country belongs to (e.g., "Europe", "Asia", "Americas").
        - `subregion` string, nullable — The geographic subregion (e.g., "Southern Europe", "Southeast Asia"). Null for some countries.
        - `supported_json_schemas` string[] — The list of JSON schema form names available for this country (e.g., "address_details", "contract_details"). Use these with the Show form schema endpoint to get country-specific field requirements.
      - `embassy_address` string, required — The address of the embassy or consulate where the travel letter will be submitted.
      - `employer_approver` TravelLetterUser, nullable, required — A user associated with a travel letter request (either the employee or the employer approver).
        - `email` string, required — The user's email address.
        - `id` string, uuid, required — The unique identifier (UUID) of the user.
        - `name` string, required — The user's full name.
      - `employer_special_instructions` string, nullable, required — Special instructions from the employer to include in the travel letter. Null if none provided.
      - `id` string, uuid, required — The unique identifier (UUID) of the travel letter request.
      - `reason` string, required — The purpose of the travel (e.g., business meeting, conference, client visit).
      - `requires_travel_address` boolean, required — Whether the employee needs to provide a specific travel address (accommodation address at the destination).
      - `responsible_for_accommodation_cost` 'employee' | 'employer', nullable, required — Who is responsible for accommodation costs during the trip. Set by the employer during approval. Null if not yet approved.
      - `responsible_for_meal_cost` 'employee' | 'employer', nullable, required — Who is responsible for meal costs during the trip. Set by the employer during approval. Null if not yet approved.
      - `responsible_for_travel_cost` 'employee' | 'employer', nullable, required — Who is responsible for transportation costs. Set by the employer during approval. Null if not yet approved.
      - `status` 'pending' | 'cancelled' | 'declined_by_manager' | 'declined_by_remote' | 'approved_by_manager' | 'approved_by_remote', required — The current status of the travel letter request. - `pending`: Submitted by the employee and awaiting manager review. - `cancelled`: Cancelled by the employee before approval. - `declined_by_manager`: The employer manager declined the request. - `declined_by_remote`: Remote declined the request after manager approval (e.g., compliance reasons). - `approved_by_manager`: Approved by the employer manager, awaiting Remote's review. - `approved_by_remote`: Fully approved by both the manager and Remote. The travel letter will be generated.
      - `submitted_at` string, date-time, required — UTC date time in [ISO 8601][] format. [ISO 8601]: https://en.wikipedia.org/wiki/ISO_8601
      - `travel_address` string, nullable, required — The employee's accommodation address at the destination. Null if `requires_travel_address` is false or not yet provided.
      - `travel_date_end` string, date, required — UTC date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format
      - `travel_date_start` string, date, required — UTC date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format
      - `travel_document_number` string, required — The employee's travel document (passport) number.
      - `travel_reason` string, required — The category of travel reason selected by the employee.
      - `travel_reason_details` string, required — Detailed explanation of the travel reason provided by the employee.
      - `user` TravelLetterUser, nullable, required — A user associated with a travel letter request (either the employee or the employer approver).
        - `email` string, required — The user's email address.
        - `id` string, uuid, required — The unique identifier (UUID) of the user.
        - `name` string, required — The user's full name.

## Other responses

- `401` — Unauthorized
- `404` — Not Found
- `422` — Unprocessable Entity

---

[API](https://skmtc.net/remote-com/apis/remote.md) · [All operations](https://skmtc.net/remote-com/apis/remote/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/remote-com/remote/versions/7e6a0c61ac82/schema)
