Booking Rail Passes ​

Booking rail passes follows the same flow as booking tickets: create a booking, add passenger details, then create and finalize an order. The main difference is that passes are issued as codes (not PDF tickets) that passengers use in the Interrail app.

Creating a Booking ​

Start by creating a booking from a pass bundle. This reserves the pass but doesn't confirm it yet.

Example: Create a booking with rail passes
graphql
mutation CreateBooking {
  createBooking(
    passBundle: "57ed25f6-8192-4a25-8240-1ce3f840c4ea"
    passengers: [{ birthDate: "1980-02-15" }]
  ) {
    id
    passengers {
      id
      age
      type
    }
    requirements {
      countryResidence
      nationality
      dateOfBirth
      email
      tel
    }
    selections {
      ... on PassBundleSelection {
        class
        product
        price {
          amount
          currency
        }
        travelDayCount
        validityPeriod
      }
    }
  }
}
mutation CreateBooking {
  createBooking(
    passBundle: "470392f8-a95f-46a2-93e1-dc809b7c9c66"
    passengers: [{ birthDate: "1980-02-15" }]
  ) {
    id
    passengers {
      id
      age
      type
    }
    requirements {
      countryResidence
      nationality
      dateOfBirth
      email
      tel
    }
    selections {
      ... on PassBundleSelection {
        class
        product
        price {
          amount
          currency
        }
        travelDayCount
        validityPeriod
      }
    }
  }
}

The booking includes requirements that tell you what passenger information is needed. Pass requirements often include nationality and country of residence (some passes are only available to residents of certain countries).

Updating Passenger Details ​

Before you can create an order, ensure that all required passenger information is provided. The booking's requirements field shows exactly what's needed.

Contact person

Exactly one passenger must be marked as the contact person, with both email and tel. On a booking split across cost centers, each cost center needs its own contact person. The contact person's details are forwarded to the train operator, who contacts them if there are any issues.

Travel cards and corporate codes can't be changed

A booking is priced on its passengers' travel cards and corporate codes, so leave travelCards and corporateCodes out when updating passengers. To book with a different card or code, create a new booking from a fresh offer. See Travel Cards and Corporate Codes.

Example: Updating passenger details
graphql
mutation UpdatePassengers {
  updateBooking(
    id: "booking_54q6k4s110p2w34087a7x565q0"
    passengers: [
      {
        id: "bac09673-6ad1-46a4-8e8d-a3a78df0889a"
        email: "jane.doe@example.com"
        tel: "+46701234567"
        isContactPerson: true
        birthDate: "1980-02-15"
        nationality: "NL"
        firstName: "Jane"
        lastName: "Doe"
      }
    ]
  ) {
    id
    passengers {
      ... on FullPassenger {
        id
        isContactPerson
        email
        tel
        birthDate
        nationality
        firstName
        lastName
        title
      }
    }
  }
}
mutation UpdatePassengers {
  updateBooking(
    id: "booking_54q6k4s110p2w34087a7x565q0"
    passengers: [
      {
        id: "bac09673-6ad1-46a4-8e8d-a3a78df0889a"
        email: "jane.doe@example.com"
        tel: "+46701234567"
        isContactPerson: true
        birthDate: "1980-02-15"
        nationality: "NL"
        firstName: "Jane"
        lastName: "Doe"
      }
    ]
  ) {
    id
    passengers {
      ... on FullPassenger {
        id
        isContactPerson
        email
        tel
        birthDate
        nationality
        firstName
        lastName
        title
      }
    }
  }
}

Creating and Finalizing Orders ​

Once your booking has all passenger details, create an order with createOrder. This pre-books the pass and is the same first step for every payment method. How you complete the order depends on how you pay:

  • Wallet credits or invoice: Finalize the order yourself with finalizeOrder (see Orders)
  • Payment gateway: Pass the order's id to createPayment as orderId; the order is finalized automatically after payment (see Payments)

Most API users use wallet credits. See Payments for details on all payment methods.

Retrieving Pass Codes ​

Once an order is finalized, passes are automatically issued. Instead of PDF tickets, you receive pass codes that passengers use in the Interrail app or website.

Pass codes are usually available within 15 minutes of finalization, but can take longer during peak times.

Pass code availability

Pass codes may not be available immediately after finalization. Poll the order every few minutes until codes appear. Most codes are available within 15 minutes.

Retrieve pass codes from the finalized order:

Example: Get pass codes from finalized order
graphql
query GetPassCodes {
  node(id: "order_56y3a471627295z6k2k08132f7") {
    ... on Order {
      items {
        ... on PassBundleOrderItem {
          passenger {
            firstName
            lastName
          }
          code
          class
          product
          travelDayCount
          validityPeriod
        }
      }
    }
  }
}
query GetPassCodes {
  node(id: "order_1650a4m6j0g7x4f783e0h21474") {
    ... on Order {
      items {
        ... on PassBundleOrderItem {
          passenger {
            firstName
            lastName
          }
          code
          class
          product
          travelDayCount
          validityPeriod
        }
      }
    }
  }
}

Each passenger gets their own pass code. Share the code with the passenger; they use it to activate their pass in the Interrail app.

Pass Activation ​

Pass codes are used to activate passes in the Interrail app or website. Passengers:

  1. Download the Interrail app
  2. Enter the pass code
  3. Activate the pass (usually on their first travel day)
  4. Use the pass to travel on trains

The pass code includes all the details passengers need: product type, class, travel days, and validity period.

Reserving Seats with a Pass ​

A pass gives the right to travel, but many trains still need a seat reservation, and some operators sell passholders a dedicated fare. Book those through the ticket flow with the pass attached to each passenger as a travel card. See Travel Cards.

The Full Flow ​

For the whole flow from finding a pass to sharing the codes, including payment, see Booking Flows.