Spanish Discounts and Fare Types

Spanish Discounts and Fare Types

 

Spanish Discounts

ONLY FOR POINT OF SALE SPAIN

The Spanish government subsidizes certain air travel within Spain. For residents of certain areas of Spain, traveling between those areas and the rest of Spain, and also people with large families traveling within Spain (more information can be found here in English and here in Spanish). The following explains how this is handled through our NDC channel. 

The different discounts are identified in the messages using specific codes as per the following:

Spanish Resident Discount

<Application> Code

<Discount>/<Description>

Explanation

<Application> Code

<Discount>/<Description>

Explanation

BP

Residente Baleares

To indicate that the travelers are residents of the Balearic Islands when booking flights to and from or within the Balearic Islands. The same code will be returned to indicate that the discount has been applied to the fare. Unless the flights are purely within the Balearic Islands (see BI code).

BI

(used only in response message)

Inter Island Flights Baleares

Indicates that the Balearic inter-island discount has been applied to the fare.

RC

Residente Canarias

To indicate that the travelers are residents of the Canary Islands when booking flights to and from or within the Canary Islands. The same code will be returned to indicate that the discount has been applied to the fare. Unless the flights are purely within the Canary Islands (see DC code).

DC

(used only in response message)

Inter Island Flights Canarias

Indicates that the Canary inter-island discount has been applied to the fare.

RE

Residente Ceuta

This code is used in for residents of Ceuta using domestic flights from/to Malaga, Sevilla and Jerez

RM

Residente Melilla

This code used in the request and response for residents of and flights to and from Melilla.

Spanish Large Family Discount

<Application> Code

<Discount>/<Description>

Explanation

<Application> Code

<Discount>/<Description>

Explanation

F1

General - for families with 3 children

To indicate that the family has 3 children and is entitled to the general familia numerosa discount

F2

Special - for families with 4 or more children

To indicate that the family has more than 3 children and is entitled to the special familia numerosa discount

The Resident discount can combined with the Large Family Discount.

AirShoppingRQ and OfferPriceRQ

The type(s) of discount must be requested in the initial Shopping flow using the TicketDesig as per the following example (which shows a Canary Islands Resident Discount being combined with a General Large Family Discount):

<Preference> <FarePreferences> <TicketDesigs> <TicketDesig>RC</TicketDesig> <TicketDesig>F1</TicketDesig> </TicketDesigs> </FarePreferences> .... </Preference>

AirShoppingRS and OfferPriceRS

In the Shopping responses information about the discount applied (description, type of discount, ticket designator, quantity and currency for special discount) is returned in a Remark as per the following examples.

Specific information is contained in the Discount section in the OfferItem including the total discount amount given.

<OfferItem OfferItemID="IBc28de6ef678f46fcb7e42f2800dbb331OC_01-3-4" MandatoryInd="true"> <TotalPriceDetail> <TotalAmount> <SimpleCurrencyPrice Code="EUR">369.16</SimpleCurrencyPrice> </TotalAmount> <BaseAmount Code="EUR">313.20</BaseAmount> <Discount> <DiscountAmount Code="EUR">1252.80</DiscountAmount> <Application>RCF1</Application> <Description>Residente Canarias, Familia numerosa (General)</Description> </Discount>

And the Remarks in the FareDetail which contains a description / type of discount / ticket designator / quantity and currency per passenger of the special discount:

<FareDetail> .... <Remarks> <Remark>DISCOUNT/SD/RCF1/626.40EUR</Remark> </Remarks> </FareDetail>

 

OrderCreateRQ

Spanish Resident Discount

When creating Orders with Spanish Resident Discounts the following information must be included:

  • The Spanish national ID (DNI/NIE) for those 14 years and older.

  • The Resident Certificate (Certificado de Residencia) for those under 14 and without Spanish national ID (DNI/NIE).

  • The Municipal Code of residence.

    • A list of the latest codes (as of publication of this page) can be found in the attached Excel file in this page in the tab “Códigos Residentes”.

    • The Government site for the latest updated Spanish Resident Discount Municipality Codes can be obtained from here.

The official Spanish Government guidelines covering these discounts can be found here and here.

When creating bookings with Spanish Resident Discount, the passenger information is validated against the Spanish government SARA system, and if unable to validate then an OrderViewProcessing Remark is returned advising that the passengers must present documentation at the airport. In addition, SARA works with the usual Spanish double surnames, and to accommodate this in the NDC messages we ask you to send a “@” between the first and second surnames, as per the following example:

Spanish Large Family Discount

When creating Orders with Spanish Large Family Discount the following information must be included:

  • The Spanish national ID (DNI/NIE) for those 14 years and older.

  • The Large Family Certificate (Certificado Familia Numerosa) for all passengers

  • The Autonomous Community Code (Código Comunidad Autónoma) for all passengers.

    • A list of the codes can be found in the attached Excel file in this page in the tab “Códigos Fam. Num.”

The official Spanish Government guidelines covering these discounts can be found here.

The following is and example of how the information is passed in the OrderCreateRQ message. This information cannot be added or modified in the OrderChangeRQ:

<IdentityDocument> <!--Resident--> <IdentityDocumentNumber>12313123111</IdentityDocumentNumber> <IdentityDocumentType>F1</IdentityDocumentType> </IdentityDocument> <IdentityDocument> <!--Large Family--> <IdentityDocumentNumber>12345612345TX1.12AA2</IdentityDocumentNumber> <IdentityDocumentType>AI</IdentityDocumentType> </IdentityDocument> <ContactInfoRef>ADULT_01_CONTACT</ContactInfoRef> <Remark> <!--Resident Discount Community Code--> <Remark>RESIDENT-380380</Remark> </Remark> <Remark> <!--Large Family Discount Community Code--> <Remark>LARGEFAMILY-380380</Remark> </Remark>

Municipality and Autonomous Community Codes

In the attached file there are two tabs:

The first tab, “Códigos Residentes”, are the Municipality* codes to be used when booking the Spanish Resident Discounts.

The second tab, “Códigos Fam. Num.”, contains the short list of Autonomous Community codes, to be used when booking the Spanish Large Family Discounts: 

*Please be aware that the Municipality codes can be updated at any time by the government of Spain, and therefore the latest version can be found here.

Service Fee

The Service Fee charged by the Travel Agent to the customer is also subject to Spanish Government Subsidy. Iberia offers a mechanism to inform the government of the fee charged in order for the Travel Agent to receive the subsidy.

The Service Fee can be informed both in the OrderCreate and the OrderChange-Payment (adding or modifying the fee). It is communicate as a payment method and associated to each passenger for whom the fee applies.

<Payments> <Payment> <Type>SF</Type> <Method> <Other> <Remarks refs="ADULT_01" "ADULT_02"> <Remark>ServiceFee</Remark> </Remarks> </Other> </Method> <Amount Code="EUR">10.00</Amount> </Payment> <Payment> <Type>SF</Type> <Method> <Other> <Remarks refs="CHILD_01"> <Remark>ServiceFee</Remark> </Remarks> </Other> </Method> <Amount Code="EUR">5.00</Amount> </Payment> <Payment> <Type>SF</Type> <Method> <Other> <Remarks refs="INFANT_01"> <Remark>ServiceFee</Remark> </Remarks> </Other> </Method> <Amount Code="EUR">4.00</Amount> </Payment> </Payments>

The fee is applied per passenger, and reported on each ticket, to BSP in the RET file (element 7), and to the government when the coupon is used.

If a Service Fee is included in an OrderCreate or OrderChange for which it is not applicable, then it is simply ignored and not applied or put anywhere.

OrderChangeRQ

You can modify a Service Fee at the OrderChangeRQ if there is some mistake in the OrderCreateRQ.

You can also add a new Service Fee and/or delete one replacing the Service Fee information to “0”.

The following is an example of how the Service Fee information is passed in the OrderChangeRQ message, please note that the passenger information for whom the Service Fee applies must be included in the PassengerList section and referenced in the Payment section.

<Payments> <Payment> <Type>SF</Type> <Method> <Other> <Remarks refs="ADULT_01" "ADULT_02"> <Remark>ServiceFee</Remark> </Remarks> </Other> </Method> <Amount Code="EUR">10.00</Amount> </Payment> <Payment> <Type>SF</Type> <Method> <Other> <Remarks refs="CHILD_01"> <Remark>ServiceFee</Remark> </Remarks> </Other> </Method> <Amount Code="EUR">0.00</Amount> </Payment> <Payment> <Type>SF</Type> <Method> <Other> <Remarks refs="INFANT_01"> <Remark>ServiceFee</Remark> </Remarks> </Other> </Method> <Amount Code="EUR">6.00</Amount> </Payment> </Payments> ------------------------------------------------------ <PassengerList> <Passenger PassengerID="ADULT_01"> <PTC>ADT</PTC> <Birthdate>1973-12-23</Birthdate> <Individual IndividualID="IND_ADULT_01"> <Gender>Male</Gender> <NameTitle>MR</NameTitle> <GivenName>ALEXANDER</GivenName> <Surname>GRAHAM</Surname> <SurnameSuffix>SR</SurnameSuffix> </Individual> </Passenger> <Passenger PassengerID="ADULT_02"> <PTC>ADT</PTC> <Birthdate>1986-10-19</Birthdate> <Individual IndividualID="IND_ADULT_02"> <Gender>Female</Gender> <NameTitle>MRS</NameTitle> <GivenName>Miranda</GivenName> <Surname>Flores@Aduen</Surname> </Individual> </Passenger> <Passenger PassengerID="CHILD_01"> <PTC>CHD</PTC> <Birthdate>2014-12-23</Birthdate> <Individual IndividualID="IND_CHILD_01"> <Gender>Male</Gender> <NameTitle>MR</NameTitle> <GivenName>ALEXANDER</GivenName> <Surname>GRAHAM</Surname> <SurnameSuffix>JR</SurnameSuffix> </Individual> </Passenger> <Passenger PassengerID="INFANT_01"> <PTC>INF</PTC> <Birthdate>2024-03-01</Birthdate> <Individual IndividualID="IND_INFANT_01"> <Gender>Male</Gender> <NameTitle>MR</NameTitle> <GivenName>BILLY</GivenName> <Surname>GRAHAM</Surname> </Individual> </Passenger> </PassengerList>

 

OrderViewRS

In the case that the Spanish Government are unable to verify that the passenger is entitled to the discount, a remark will be returned informing that the passenger must present the necessary documentation at check-in.

Failure to present the correct documentation proving entitlement to the discount will result in the need to pay the difference at the airport in order to fly.

<Response> <OrderViewProcessing> <Remarks> <Remark DisplayInd="true">Luis Alfonso Pérez Pérez residence not verified. Present necessary documentation at the airport.</Remark> <Remark DisplayInd="true">Ana Laura Santos Perez residence not verified. Present necessary documentation at the airport.</Remark> </Remarks> </OrderViewProcessing>

Also returned is the TicketDesignator with the discount codes.

<FareComponent> <...> <TicketDesig>RCF1</TicketDesig> <SegmentRefs>IB044920220704</SegmentRefs> </FareComponent>

And if a Service Fee has been included in the Order it is returned in the Payments section of the OrderView:

<Payments> <Payment> <Type>SF</Type> <Amount> <SimpleCurrencyPrice Code="EUR">10.00</SimpleCurrencyPrice> </Amount> <Method> <OtherMethod> <Remarks refs=ADULT_01" "ADULT_02"> <Remark>ServiceFee</Remark> </Remarks> </OtherMethod> </Method> </Payment> <Payment> <Type>SF</Type> <Amount> <SimpleCurrencyPrice Code="EUR">0.00</SimpleCurrencyPrice> </Amount> <Method> <OtherMethod> <Remarks refs="CHILD_01"> <Remark>ServiceFee</Remark> </Remarks> </OtherMethod> </Method> </Payment> <Payment> <Type>SF</Type> <Amount> <SimpleCurrencyPrice Code="EUR">6.00</SimpleCurrencyPrice> </Amount> <Method> <OtherMethod> <Remarks refs="INFANT_01"> <Remark>ServiceFee</Remark> </Remarks> </OtherMethod> </Method> </Payment> </Payments>

The passenger information provide in the OrderCreate and in the OrderChange is also returned in the OrderView:

<PassengerList> <Passenger PassengerID="ADULT_01"> <PTC>ADT</PTC> <Birthdate>1973-12-23</Birthdate> <Individual> <Gender>Male</Gender> <NameTitle>MR</NameTitle> <GivenName>ALEXANDER</GivenName> <Surname>GRAHAM</Surname> <SurnameSuffix>SR</SurnameSuffix> </Individual> <FOID> <FOID_Number>04551372V</FOID_Number> <FOID_Type>NI</FOID_Type> </FOID> <IdentityDocument> <IdentityDocumentNumber>12313123111</IdentityDocumentNumber> <IdentityDocumentType>F1</IdentityDocumentType> </IdentityDocument> <IdentityDocument> <IdentityDocumentNumber>123131414143</IdentityDocumentNumber> <IdentityDocumentType>AI</IdentityDocumentType> </IdentityDocument> <ContactInfoRef>CONTACT_ADULT_01</ContactInfoRef> <InfantRef>INFANT_01</InfantRef> <Remark> <Remark>RESIDENT-380380</Remark> </Remark> <Remark> <Remark>LARGEFAMILY-380380</Remark> </Remark> <Remark> <Remark>UNVERIFIED RESIDENT STATUS</Remark> </Remark> </Passenger> <Passenger PassengerID="ADULT_02"> <PTC>ADT</PTC> <Birthdate>1986-10-19</Birthdate> <Individual> <Gender>Female</Gender> <NameTitle>MRS</NameTitle> <GivenName>Miranda</GivenName> <Surname>Flores@Aduen</Surname> </Individual> <FOID> <FOID_Number>88575337Z</FOID_Number> <FOID_Type>NI</FOID_Type> </FOID> <IdentityDocument> <IdentityDocumentNumber>12313123111</IdentityDocumentNumber> <IdentityDocumentType>F1</IdentityDocumentType> </IdentityDocument> <IdentityDocument> <IdentityDocumentNumber>123131414143</IdentityDocumentNumber> <IdentityDocumentType>AI</IdentityDocumentType> </IdentityDocument> <ContactInfoRef>CONTACT_ADULT_02</ContactInfoRef> <Remark> <Remark>RESIDENT-380380</Remark> </Remark> <Remark> <Remark>LARGEFAMILY-380380</Remark> </Remark> <Remark> <Remark>UNVERIFIED RESIDENT STATUS</Remark> </Remark> </Passenger> <Passenger PassengerID="CHILD_01"> <PTC>CHD</PTC> <Birthdate>2014-12-23</Birthdate> <Individual> <Gender>Male</Gender> <NameTitle>MR</NameTitle> <GivenName>ALEXANDER</GivenName> <Surname>GRAHAM</Surname> <SurnameSuffix>JR</SurnameSuffix> </Individual> <FOID> <FOID_Number>31916113W</FOID_Number> <FOID_Type>NI</FOID_Type> </FOID> <IdentityDocument> <IdentityDocumentNumber>12313123111</IdentityDocumentNumber> <IdentityDocumentType>F1</IdentityDocumentType> </IdentityDocument> <IdentityDocument> <IdentityDocumentNumber>123131414143</IdentityDocumentNumber> <IdentityDocumentType>AI</IdentityDocumentType> </IdentityDocument> <ContactInfoRef>CONTACT_CHILD_01</ContactInfoRef> <Remark> <Remark>RESIDENT-380380</Remark> </Remark> <Remark> <Remark>LARGEFAMILY-380380</Remark> </Remark> <Remark> <Remark>UNVERIFIED RESIDENT STATUS</Remark> </Remark> </Passenger> <Passenger PassengerID="INFANT_01"> <PTC>INF</PTC> <Birthdate>2024-03-01</Birthdate> <Individual> <Gender>Male</Gender> <NameTitle>MR</NameTitle> <GivenName>BILLY</GivenName> <Surname>GRAHAM</Surname> </Individual> <FOID> <FOID_Number>47936954D</FOID_Number> <FOID_Type>NI</FOID_Type> </FOID> <IdentityDocument> <IdentityDocumentNumber>12313123111</IdentityDocumentNumber> <IdentityDocumentType>F1</IdentityDocumentType> </IdentityDocument> <IdentityDocument> <IdentityDocumentNumber>123131414143</IdentityDocumentNumber> <IdentityDocumentType>AI</IdentityDocumentType> </IdentityDocument> <Remark> <Remark>RESIDENT-380380</Remark> </Remark> <Remark> <Remark>LARGEFAMILY-380380</Remark> </Remark> <Remark> <Remark>UNVERIFIED RESIDENT STATUS</Remark> </Remark> </Passenger> <PassengerList>