# FR Integration

## FR Integration

### Ⅰ. Workflow for Ryanair’s booking process

<figure><img src="https://1621447012-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcAlPPpTunfEGdmk5fy1e%2Fuploads%2Fb52bEyTg683Y8maIpqeo%2Fimage.png?alt=media&#x26;token=1337813d-2918-45d2-91f5-313226d9786c" alt=""><figcaption></figcaption></figure>

1. Search.do RQ --> Search.do RS
2. Verify.do RQ --> Verify.do RS
3. Order
   1. Order.do RQ --> Order.do RS (OTA and passenger email ids to be added and the "locale" parameter to be added)
   2. The OTA collects the payment and keeps it with them (the pay.do API is NOT used at this stage)
4. Order Commit
   1. orderCommit.do RQ: Pop-up flow: The customer sends the order number and the redirect URL. The redirect URL will be the URL to which the end user will be redirected after clicking on the "Confirm" button. iFrame flow: The customer sends the order number and "iframe=true" parameter. After clicking the confirm button, the user will move to the next screen on the OTA website.
   2. orderCommit.do RS: Pop-up flow: Atlas will respond with the "confirmationUrl" which would be the URL for redirecting the end user to the FR page for confirming the order. The OTA will redirect the end user to this page after collecting the payment. iFrame flow: Atlas will respond with the "confirmationUrl" which would be the URL for the page to be displayed to the customer for confirming the order. The OTA will display this page to the end user after collecting the payment. The orderCommit.do RS will have the "confirmationUrl". This URL will have the T & Cs and all the other conditions which the customer has to agree to by clicking a check-box. The customer does not have to create a separate statement for these T & Cs.
   3. Once the "Order confirmation" button is clicked, the pay.do RQ is initiated. If the "Order confirmation" button is not clicked with 30 minutes of placing the order, the OTA will refund the end user. The order in Atlas platform will have the status as "Expired" as the pay.do RQ would not have been sent to Atlas unless the "Order confirmation" button is clicked.
5. Pay.do RQ --> Pay.do RS (payment can be made either by VCC or Deposit by the customer)
6. queryOrderDetails.do RQ --> queryOrderDetails.do RS (the customer has to wait until the "orderStatus=2" and "ticketStatus=0")

### Ⅱ. Key Difference from Ryanair's integration compared to other airlines

#### 1.Price transparency

Display airline fares separately from other surcharges (including airline payment fees, Atlas service fees, and Subscriber's markup)

The `Search` and `Verify` interfaces will response the corresponding payment fees for different payment methods, refer to `cardChargeList`.

Price transparency must cover both flight fares and ancillary charges (bags, seats, etc.)

Ensure end users can clearly see Ryanair's actual price

#### 2.Explicit Passenger Notifications in booking flow

Customers must check boxes to accept Ryanair's terms of service, privacy policy, and cookie policy, and acknowledge they need to create or log in to a myRyanair account to manage bookings

#### 3.Pass both passenger’s email address and subscriber’s email address in booking call

This is to make sure you will also get the airline’s confirmation email as well as schedule change notification email.

When requesting `order`, please pass the subscriber's email address and company name in the `clientContact`.

#### 4."Book Commit" before Ticketing

Ryanair requires users to confirm on Ryan's website after payment. Subscriber need to show Ryanair's website to users for confirmation after payment.

Ryanair provided two front-end display methods for book commits, pop up and iframe.

**Popup：**
\
Recommended maximum width of the popup: 1028px
\
Desktop/mobile breakpoint: 768px

Prepare a redirect page URL and share it with Atlas. The URL should accept AtlasOrderNumber as an input parameter. Ryanair will redirect users to this page after the end-user completes flight confirmation.

**Iframe:**

Recommended maximum width of the iframe: 1028px
\
Desktop/mobile breakpoint: 768px

If you want to display the FR's order confirmation page in `iframe` mode, please specify `iframe=true` in `orderCommit` request and in this case, the `redirectUri` will be ignored.

Here is the workflow:

1. First, collect payment from the user, then call [`orderCommit`](https://resources.atriptech.com/api-document/shopping-and-ticketing#post-ordercommit.do) from Atlas to receive the Ryanair confirmation URL
2. Display confirmation page to the user by popup or iframe
3. When the confirmation completed, call the Atlas pay function to issue tickets
4. If the confirmation has not been completed within 30 minutes, refund the user and close the order

> When the customer calls Payment, Atlas will attempt to make the payment to the airline. If the payment fails due to the user unconfirmed, the order will be cancelled and a refund will be given.

#### 6.Ryanair's Requirements for Traveling with Children

Free seats for kids under 12 (for up to 4 children per adult)

When choosing Basic fare or Family Plus, at least one adult must buy a seat (for a price between €6 and €10 or local currency equivalent) and children must sit within the same row.

Implication:

If you add a child to such a booking, a mandatory Seating Fee will be charged for the first adult who will sit with the children.

This adult and the children will be eligible for free seating in many rows and discounted rates in others. And they must complete seat selection before payment.

Other adults in the booking can either pay regular seat prices or skip seat selection.

**Atlas Solution**

To avoid the complexity of seat selection when traveling with children under these fare conditions, Atlas provides the following solution when booking a Ryanair flight with children:

1. Disable the seat selection feature.
2. Charge the mandatory Seating Fee：The `childMandatorySeatingFee` in the [`Search`](https://resources.atriptech.com/api-document/shopping-and-ticketing#post-search.do) interface indicates the mandatory seating fee.
3. Automatically allocate seats for the first adult and all children on the booking.

Implementation Note:

1. The mandatory seating fee is always available in the responses of search and verify API calls. Display and charge this fee accordingly if the end-user adds a child to the booking.
2. Additionally, ensure that a single booking never contains more than 4 children.

> Reminder:\
> If you are not prepared for seat selection now, you can also disable Ryanair flights when the customer search for child.

### Ⅲ. UAT Test

#### 1. IP whitelist

The customer needs to provide a STATIC IP address which will be whitelisted by Ryan Air. Once the whitelist has been done, the customer will be able to send an order request to Ryan Air.

#### 2. Test cards in sandbox

| Card number      | Type                 |
| ---------------- | -------------------- |
| 5200000000002235 | Mastercard, approved |
| 4000000000002701 | Visa, approved       |
| 5476850000000002 | Declined card        |
| 5100000014101198 | Declined card        |

The above test cards should be used if the VCC mode of payment is being integrated. A scenario for payment failure by VCC should also be done by using the relevant card.

**Warning! – Please, do not use real cards on test environments!**

#### **3. C**ity pairs for test

Here are some city pairs for test:

DUB-KIR\
KIR-DUB\
DUB-LON\
LON-DUB\
MAN-DUB\
DUB-MAN

#### 4. UAT Certification Scenarios

{% file src="<https://1621447012-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcAlPPpTunfEGdmk5fy1e%2Fuploads%2FvVolWrmyTd73j66sDMA6%2FRyan%20Air%20(FR)%20Atlas%20UAT%20Test%20Shopping%20%26%20Ticketing%20Services%20Only%20Template.xlsx?alt=media&token=92c87fa6-0ca0-46b1-be04-c968b0caadcd>" %}
