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

# Show travel letter request

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

## Request

- Base URL: `https://gateway.remote.com`
- URL: `https://gateway.remote.com/v1/travel-letter-requests/{id}`
- Auth: one of:
  - OAuth 2
    - Authorization code: `/auth/oauth2/authorize`
    - Token URL: `/auth/oauth2/token` scopes: `https://gateway.remote.com/company.manage`
  - OAuth 2
    - Authorization code: `/auth/oauth2/authorize`
    - Token URL: `/auth/oauth2/token` scopes: `travel_letter:read`
  - OAuth 2
    - Authorization code: `/auth/oauth2/authorize`
    - Token URL: `/auth/oauth2/token` scopes: `all:read`
  - OAuth 2
    - Authorization code: `/auth/oauth2/authorize`
    - Token URL: `/auth/oauth2/token` scopes: `all:write`
  - OAuth 2
    - Client credentials
    - Token URL: `/auth/oauth2/token` scopes: `travel_letter:read`
  - OAuth 2
    - Client credentials
    - Token URL: `/auth/oauth2/token` scopes: `all:read`
  - OAuth 2
    - Client credentials
    - Token URL: `/auth/oauth2/token` scopes: `all:write`
  - HTTP bearer

Show a single travel letter request.

## Authentication

This endpoint accepts any one of the following token types:

- **Company-scoped access token** (`OAuth2AuthorizationCode`) — obtained by a company manager through the Authorization Code flow or the Refresh Token flow. See [Authentication for partners](https://developer.remote.com/docs/authentication-for-partners).
- **Company-scoped access token (assertion)** (`OAuth2CompanyManagerAssertion`) — obtained through the `urn:ietf:params:oauth:grant-type:jwt-bearer` grant for a company manager. See [OAuth Assertion](https://developer.remote.com/docs/authorization-method-oauth-assertion).
- **Customer API token** (`CustomerAPIToken`) — generated by the customer on their Integration Settings page, with the scopes they choose there. See [Authorization for customers](https://developer.remote.com/docs/authorization-for-customers).

## Scopes

Any one of the scopes in a token type's row is enough. `all:read` and `all:write` work too.

| Token type | Category | Read only Scope | Write only Scope (read access implicit) |
|---|---|---|---|
| Company-scoped access token | Manage employment documents (`employment_documents`) | View travel letters (`travel_letter:read`) | Manage travel letters (`travel_letter:write`) |
| Company-scoped access token (assertion) | Manage employment documents (`employment_documents`) | View travel letters (`travel_letter:read`) | Manage travel letters (`travel_letter:write`) |
| Customer API token | Manage employment documents (`employment_documents`) | View travel letters (`travel_letter:read`) | Manage travel letters (`travel_letter:write`) |

## Path parameters

- `id` string, uuid, required: A unique identifier in UUID v4 format.

## 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.
        - `global_payroll_supported` boolean: Whether Global Payroll employments can be onboarded in this country. When true, the "global_payroll_administrative_details", "global_payroll_contract_details" and "global_payroll_personal_details" forms are available from the Show form schema endpoint.
        - `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", "global_payroll_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.dev/remote-com/apis/offboarding.md) - [All operations](https://skmtc.dev/remote-com/apis/offboarding/llms.txt) - [OpenAPI document](https://skmtc.dev/remote-com/apis/offboarding/revisions/f0d3f7cbc9dd?raw)
