Integrating FLOA

1. Sequence diagrams

PAYMENT AUTHORIZATION

floa-authorization.png

CAPTURE

floa-capture.png

REFUND

floa-refund.png

2. Services

Service Comment
RegisterAuthorize  
Capture  
Refund Partial Refund Available

3. Transaction data

To enable FLOA payments, you need to provide as much information as possible to support the customer's scoring process. The more data is provided, the more accurate the assessment will be. Some information is mandatory regardless of the merchant’s business, while others are specific to the industry.

Note. No validation of mandatory fields will be performed at the gateway level. The transaction will be declined by FLOA if required data is missing.

3.1 Generic data - Applicable to all merchants

For details on how to initiate a payment, see Hosted Payment Page Implementation Guide.

For a checkoutStartSession API, see Market Pay Gateway API: Hosted sessions.

Block

Variable

 

Type

Example/Comments

Required

SES/PYO

 

MPY

 

string

<MPY>FLOA</MPY>

Mandatory

 

OPT

 

string

<OPT>BC3XC</OPT>

<OPT>BC4XC</OPT>

<OPT>BC10XC</OPT>

Mandatory

See Product code in FLOA product offer table in Starting with FLOA

SES/PID

 

MPY

 

string

<MPY>FLOA</MPY>

Mandatory

 

KVE

 

string

<KVE>

<KWD>customer.history.createdDate</KWD>

<VAL>2025-02-01T12:00:00Z</VAL>

</KVE>

See Industry specific data

 

 

KWD

string

 

Necessary

 

 

VAL

string

 

Necessary

4. Industry specific data

4.1 Travel industry

See FLOA_Mapping_Data_TRAVEL INDUSTRY.xlsx in 6. Attachments.

Keyword Type Description Required
  Flight / Transport Stay (Flight + Hotel) Hotel Cruise Tickets (Amusement parks, tours, etc.) Rent a car
metadata.travelInsurance string

Insurance's name/code chosen by the customer

Or boolean yes/no the customer chooses an insurance

Mandatory Mandatory Mandatory Mandatory Mandatory Mandatory
metadata.travelType string "Unknown", "OneWay", "TwoWay", "Multiple" Mandatory Mandatory Mandatory (default value to “Unknown”) Mandatory Mandatory (default value to “Unknown”) Mandatory (default value to “Unknown”)
metadata.departureDate string format YYYY-MM-DD Mandatory Mandatory Mandatory Mandatory Mandatory (ticket’s date) Mandatory
metadata.returnDate string

format YYYY-MM-DD

Null if OneWay

Mandatory Mandatory Mandatory Mandatory   Mandatory
metadata.destinationCountry string Destination country code, format ISO 3166-2 (ex : "FR" for France) Mandatory Mandatory Mandatory Mandatory Mandatory Mandatory
metadata.travelerCount string number of travelers Mandatory Mandatory Mandatory Mandatory Mandatory Mandatory
metadata.travelClass string   Necessary Necessary   Necessary    
metadata.buyerAmongTravelers string

Is the payment card holder part of the trip?

YES : 1

NO : 0

Mandatory Mandatory Mandatory Mandatory Mandatory Mandatory
metadata.travelCompany string transporter name of the first segment (IATA code if airline) Mandatory Mandatory   Mandatory    
metadata.departureLocation string IATA code of the airport / city Mandatory Mandatory   Mandatory   Mandatory
metadata.arrivalLocation string IATA code of the airport / city Mandatory Mandatory   Mandatory   Mandatory
metadata.travelDiscountVoucher string              
metadata.luggageSupplement string

Does the travel include a luggage supplement ?

YES : 1

NO : 0

Necessary Necessary        
metadata.travelCanBeModifiedOrCanceled string

Can the travel be modified or canceled ?

YES : 1

NO : 0

Necessary Necessary   Necessary    
metadata.stayCompany string name of accommodation   Necessary Necessary Necessary    
metadata.stayDestination string     Necessary Necessary Necessary    
metadata.stayNightsCount string number of nights   Necessary Necessary Necessary    
metadata.stayRoomRange string accommodation range   Necessary Necessary Necessary    

EXAMPLE

<KVE>
  <KWD>metadata.travelInsurance</KWD>
  <VAL>0</VAL>
</KVE>
<KVE>
  <KWD>metadata.travelType</KWD>
  <VAL>Unknown</VAL>
</KVE>
<KVE>
  <KWD>metadata.departureDate</KWD>
  <VAL>2025-01-20</VAL>
</KVE>
<KVE>
  <KWD>metadata.returnDate</KWD>
  <VAL>2025-01-27</VAL>
</KVE>
<KVE>
  <KWD>metadata.destinationCountry</KWD>
  <VAL>OK</VAL>
</KVE>
<KVE>
  <KWD>metadata.travelerCount</KWD>
  <VAL>5</VAL>
</KVE>
<KVE>
  <KWD>metadata.travelClass</KWD>
  <VAL>business</VAL>
</KVE>
<KVE>
  <KWD>metadata.buyerAmongTravelers</KWD>
  <VAL>1</VAL>
</KVE>
<KVE>
  <KWD>metadata.travelCompany</KWD>
  <VAL>AF</VAL>
</KVE>
<KVE>
  <KWD>metadata.departureLocation</KWD>
  <VAL>CDG</VAL>
</KVE>
<KVE>
  <KWD>metadata.arrivalLocation</KWD>
  <VAL>CPH</VAL>
</KVE>
<KVE>
  <KWD>metadata.luggageSupplement</KWD>
  <VAL>1</VAL>
</KVE>
<KVE>
  <KWD>metadata.travelCanBeModifiedOrCanceled</KWD>
  <VAL>1</VAL>
</KVE>
<KVE>
  <KWD>metadata.stayCompany</KWD>
  <VAL>RADISSON</VAL>
</KVE>
<KVE>
  <KWD>metadata.stayDestination</KWD>
  <VAL>Copenhagen</VAL>
</KVE>
<KVE>
  <KWD>metadata.stayNightsCount</KWD>
  <VAL>7</VAL>
</KVE>
<KVE>
  <KWD>metadata.stayRoomRange</KWD>
  <VAL>7</VAL>
</KVE>

4.2. Telephony industry

See FLOA_Mapping_Data_TELEPHONY.xlsx in 6. Attachments.

Keyword

Type

Description

Required

 

 

 

Purchase of a cell phone

Purchase of a cell phone + plan

metadata.purchase_type

string

Purchase Type

Necessary

default to "BARE_PHONE"

Necessary

default to "PACKAGE_PHONE"

metadata.phonePackageType

string

type of phone package

 

Necessary

metadata.phoneBrand

string

Phone brand

Necessary

Necessary

metadata.phoneNumber

string

Phone number of the subscribed line

Only if purchase without portability, empty other way

 

Necessary

metadata.phoneProvider

string

Current phone provider

Only if purchase with portability, empty other way

 

Necessary

metadata.flagPortability

string

Phone number portability flag

0 : without portability

1 : with portability

 

Necessary

metadata.insurance

string

Flag if insurance have been subscribed

0 : without insurance

1 : with insurance

Necessary

Necessary

metadata.flagOptions

 

Flag if additional options have been subscribed

0 : without options

1 : with options

Necessary

Necessary

metadata.consumptionAdvance

 

advance on telephony consumption (in euros)

 

Necessary

EXAMPLE

PURCHASE OF A CELL PHONE

<KVE>
  <KWD>metadata.purchase_type</KWD>
  <VAL>BARE_PHONE</VAL>
</KVE>
<KVE>
  <KWD>metadata.phoneBrand</KWD>
  <VAL>Nokia</VAL>
</KVE>
<KVE>
  <KWD>metadata.insurance</KWD>
  <VAL>0</VAL>
</KVE>
<KVE>
  <KWD>metadata.flagOptions</KWD>
  <VAL>1</VAL>
</KVE>

PURCHASE OF A CELL PHONE + PLAN

<KVE>
  <KWD>metadata.purchase_type</KWD>
  <VAL>PACKAGE_PHONE</VAL>
</KVE>
<KVE>
  <KWD>metadata.phonePackageType</KWD>
  <VAL>Unlimited</VAL>
</KVE>
<KVE>
  <KWD>metadata.phoneBrand</KWD>
  <VAL>Motorola</VAL>
</KVE>
<KVE>
  <KWD>metadata.phoneNumber</KWD>
  <VAL></VAL>
</KVE>
<KVE>
  <KWD>metadata.phoneProvider</KWD>
  <VAL>Tmobile</VAL>
</KVE>
<KVE>
  <KWD>metadata.flagPortability</KWD>
  <VAL>1</VAL>
</KVE>
<KVE>
  <KWD>metadata.insurance</KWD>
  <VAL>0</VAL>
</KVE>
<KVE>
  <KWD>metadata.flagOptions</KWD>
  <VAL>1</VAL>
</KVE>
<KVE>
  <KWD>metadata.consumptionAdvance</KWD>
  <VAL>200</VAL>
</KVE>

4.3 Training course industry

See FLOA_Mapping_Data_TRAINING-COURSE.xlsx in 6. Attachments.

Keyword

Type

Description

Required

metadata.courseStartDate

string

start date of the course (YYYY-MM-DD)

Necessary

metadata.courseEndDate

string

end date of the course (YYYY-MM-DD)

Necessary

metadata.financedCourse

string

end date of the course (YYYY-MM-DD)

Necessary

metadata.diplomaCourse

string

Flag if course leads to a diploma :

0 : no

1 : yes

Necessary

metadata.levelDegree

string

Flag if course is a post-high school degree (post-bac in France)

0 : no

1 : yes

Necessary

EXAMPLE

<KVE>
  <KWD>metadata.courseStartDate</KWD>
  <VAL>2025-01-25</VAL>
</KVE>
<KVE>
  <KWD>metadata.courseEndDate</KWD>
  <VAL>2027-01-25</VAL>
</KVE>
<KVE>
  <KWD>metadata.financedCourse</KWD>
  <VAL>0</VAL>
</KVE>
<KVE>
  <KWD>metadata.diplomaCourse</KWD>
  <VAL>1</VAL>
</KVE>

4.5. Vehicle garage industry

See FLOA_Mapping_Data_VEHICULE-GARAGE.xlsx in 6. Attachments.

Keyword Type Description Required
metadata.vehicleRegistrationDate string Date of first registration of the vehicle Necessary
metadata.vehicleType string

Vehicle type

(private vehicle, 2 wheels, caravan...)

Necessary
metadata.vehicleBrand string Vehicle's brand Necessary
metadata.vehicleFiscalPower string Fiscal power of the vehicle if available
metadata.customerType string

Flag customer type

0 : New customer

1 : Known customer

Necessary if firstOrderDate is unavailable
metadata.vehiclePostalCode string Postal code of the vehicle Necessary

EXAMPLE

<KVE>
  <KWD>metadata.vehicleRegistrationDate</KWD>
  <VAL>2018-01-25</VAL>
</KVE>
<KVE>
  <KWD>metadata.vehicleType</KWD>
  <VAL>caravan</VAL>
</KVE>
<KVE>
  <KWD>metadata.vehicleBrand</KWD>
  <VAL>Ford</VAL>
</KVE>
<KVE>
  <KWD>metadata.vehicleFiscalPower</KWD>
  <VAL>14</VAL>
</KVE>
<KVE>
  <KWD>metadata.customerType</KWD>
  <VAL>0</VAL>
</KVE>
<KVE>
  <KWD>metadata.vehiclePostalCode</KWD>
  <VAL>33000</VAL>
</KVE>

4.6. Second hand industry

See FLOA_Mapping_Data_SECOND-HAND.xlsx in 6. Attachments.

Keyword

Type

Description

Required

metadata.productBrand

string

Brand of the most expensive product

Necessary

metadata.productModel

string

Most expensive product model

Necessary

metadata.productVersion

string

Version/year of the most expensive product

Necessary

metadata.reconditionedStatus

string

reconditioning status

Necessary

metadata.customerType

string

Flag customer type

0 : New customer

1 : Known customer

Necessary if firstOrderDate is unavailable

metadata.smartphonesCount

string

Number of smartphones in the shopping cart

Necessary

metadata.insurance

string

Flag if an insurance is purchased

Necessary

EXAMPLE

<KVE>
  <KWD>metadata.productBrand</KWD>
  <VAL>DYSON</VAL>
</KVE>
<KVE>
  <KWD>metadata.productModel</KWD>
  <VAL>Dyson No dust</VAL>
</KVE>
<KVE>
  <KWD>metadata.productVersion</KWD>
  <VAL>16</VAL>
</KVE>
<KVE>
  <KWD>metadata.reconditionedStatus</KWD>
  <VAL>excellent</VAL>
</KVE>
<KVE>
  <KWD>metadata.customerType</KWD>
  <VAL>1</VAL>
</KVE>
<KVE>
  <KWD>metadata.smartphonesCount</KWD>
  <VAL>0</VAL>
</KVE>
<KVE>
  <KWD>metadata.insurance</KWD>
  <VAL></VAL>
</KVE>

5. Sample

REQUEST checkoutStartSession

<TRX>
	<SVC>CheckoutStartSession</SVC>
	<PRJ>IPGTEST</PRJ>
	<CTY>FR</CTY>
	<CUR>EUR</CUR>
	<STO>FLOA</STO>
	<NET>100.00</NET>
	<TAX>10.00</TAX>
	<GRS>110.00</GRS>
	<ORD>ORD45678901234567890</ORD>
	<COM>Internet</COM>
	<SES>
		<SUU>https://demoshop.preprod.mpg.market-pay.com/shop/rest/success</SUU>
		<FAU>https://demoshop.preprod.mpg.market-pay.com/shop/rest/failure</FAU>
		<CAU>https://demoshop.preprod.mpg.market-pay.com/shop/rest/cancel</CAU>
		<ACT>Authorize</ACT>
		<VOD>V22</VOD>
		<PYO>
			<MPY>FLOA</MPY>
			<OPT>BC3XC</OPT>
			<OPT>BC4XC</OPT>
			<OPT>BC10XC</OPT>
		</PYO>
		<PYD><MPY>FLOA</MPY>
<KVE><KWD>customer.history.createdDate</KWD><VAL>2025-02-01T12:00:00Z</VAL></KVE>
<KVE><KWD>customer.history.firstOrderDate</KWD><VAL>2025-02-01T12:00:00Z</VAL></KVE>
<KVE><KWD>customer.history.lastOrderDate</KWD><VAL>2025-02-01T12:00:00Z</VAL></KVE>
<KVE><KWD>customer.history.validatedOrderCount</KWD><VAL>1</VAL></KVE>
<KVE><KWD>customer.history.validatedOrderAmount</KWD><VAL>11000</VAL></KVE>
<KVE><KWD>customer.history.canceledOrderCount</KWD><VAL>0</VAL></KVE>
<KVE><KWD>industry</KWD><VAL>Travel</VAL></KVE>
<KVE><KWD>subcategory</KWD><VAL>Stay (flight + hotel)</VAL></KVE>
<KVE><KWD>metadata.travelInsurance</KWD><VAL>Yes</VAL></KVE>
<KVE><KWD>metadata.travelType</KWD><VAL>TwoWay</VAL></KVE>
<KVE><KWD>metadata.departureDate</KWD><VAL>2025-10-01</VAL></KVE>
<KVE><KWD>metadata.returnDate</KWD><VAL>2025-10-02</VAL></KVE>
<KVE><KWD>metadata.destinationCountry</KWD><VAL>DK</VAL></KVE>
<KVE><KWD>metadata.travelerCount</KWD><VAL>1</VAL></KVE>
<KVE><KWD>metadata.travelClass</KWD><VAL>Business</VAL></KVE>
<KVE><KWD>metadata.buyerAmongTravelers</KWD><VAL>Yes</VAL></KVE>
<KVE><KWD>metadata.travelCompany</KWD><VAL>AF</VAL></KVE>
<KVE><KWD>metadata.departureLocation</KWD><VAL>CDG</VAL></KVE>
<KVE><KWD>metadata.arrivalLocation</KWD><VAL>CPH</VAL></KVE>
<KVE><KWD>metadata.travelDiscountVoucher</KWD><VAL>No</VAL></KVE>
<KVE><KWD>metadata.luggageSupplement</KWD><VAL>No</VAL></KVE>
<KVE><KWD>metadata.travelCanBeModifiedOrCanceled</KWD><VAL>Yes</VAL></KVE>
<KVE><KWD>metadata.stayCompany</KWD><VAL>Radison</VAL></KVE>
<KVE><KWD>metadata.stayDestination</KWD><VAL>CPH</VAL></KVE>
<KVE><KWD>metadata.stayNightsCount</KWD><VAL>1</VAL></KVE>
<KVE><KWD>metadata.stayRoomRange</KWD><VAL>300-500 EUR</VAL></KVE></PYD>
		<LAN>fr</LAN>
		<STY>https://hpp2.preprod.mpg.market-pay.com/hppv22/theme-mp/mp-hpp.css</STY>
	</SES>
	<CUS>
		<FNM>Zéphyrine</FNM>
		<LNM>Poirier</LNM>
		<CTY>FR</CTY>
		<CIT>Saint-andré</CIT>
		<AD1>92 rue de l'Epeule</AD1>
		<ZIP>97440</ZIP>
		<EMA>customer@dummy.com</EMA>
		<TEL>+33-735-554-654</TEL>
		<TXI>0701987765432</TXI>
	</CUS>
	<SHT>
		<AD1>Rue de la Briqueterie 357</AD1>
		<CIT>Malmédy</CIT>
		<CTY>BE</CTY>
		<ZIP>4960</ZIP>
		<TEL>+32 456 512 9573</TEL>
		<EMA>shipping@dummy.com</EMA>
		<FNM>Georges</FNM>
		<LNM>Lanoie</LNM>
	</SHT>
	<ITM>
		<DSC>Basket of apples and pears</DSC>
		<QTY>1</QTY>
		<UPR>100</UPR>
		<NET>100</NET>
		<TAX>10</TAX>
		<GRS>110</GRS>
		<ITN>1</ITN>
		<PCL>Tech</PCL>
		<PCT>Computers</PCT>
	</ITM>
</TRX>

RESPONSE

<TRX>
        <XID>4WGBK0XWAP123</XID>
        <RES>
          <RCD>0</RCD>
          <MSG>Service succeeded</MSG>
          <STM>2010-10-04T15:16:30.070302Z</STM>
          <ETM>2010-10-04T15:16:30.070747Z</ETM>
        </RES>
        <SES>
          <SID>4WGBK0XWAP123</SID>
          <SEU>host.com/hpp/4WGBK0XWAP123</SEU>
          <LAN>fr</LAN>
        </SES>
      </TRX>

REQUEST Get status

GET /ses/JG1KSBFAZGTC1?view=status HTTP/1.1

RESPONSE

<SES>
	<SID>JG1KSBFAZGTC1</SID>
	<PRJ>IPGTEST</PRJ>
	<SST>Completed</SST>
	<STM>2025-04-30T08:32:23.382523Z</STM>
	<ETM>2025-04-30T08:35:22.962391Z</ETM>
	<SEU>https://hpp2.preprod.mpg.market-pay.com/hppv22/checkout.hpp?sessionId=JG1KSBFAZGTC1</SEU>
	<STY>https://hpp2.preprod.mpg.market-pay.com/hppv22/theme-mp/mp-hpp.css</STY>
	<SUU>https://demoshop.preprod.mpg.market-pay.com/shop/rest/success</SUU>
	<FAU>https://demoshop.preprod.mpg.market-pay.com/shop/rest/failure</FAU>
	<CAU>https://demoshop.preprod.mpg.market-pay.com/shop/rest/cancel</CAU>
	<LAN>fr</LAN>
	<ACT>Authorize</ACT>
	<MPY>FLOA</MPY>
	<MPY>SOFORT</MPY>
	<MPY>EFT</MPY>
	<MPY>COD</MPY>
	<SPM>
		<SPI>9WYK1VTW1D6W5</SPI>
		<MPY>FLOA</MPY>
		<GRS>110</GRS>
		<NET>100</NET>
		<TAX>10</TAX>
	</SPM>
	<TRX>
		<XID>S3TXCJHV7STC5</XID>
		<SVC>RegisterAuthorize</SVC>
		<ORD>ORD45678901234567890</ORD>
		<CUR>EUR</CUR>
		<NET>100</NET>
		<TAX>10</TAX>
		<GRS>110</GRS>
		<MPY>FLOA</MPY>
		<MER>
			<MID>3262344807e442109cd92f454ac02670</MID>
			<PRC>FLOA</PRC>
			<CNM>MGP Demoshop</CNM>
			<CTY>FR</CTY>
			<CTN>250</CTN>
			<CT3>FRA</CT3>
		</MER>
		<RES>
			<STM>2025-04-30T08:35:22.884347Z</STM>
			<ETM>2025-04-30T08:35:22.891369Z</ETM>
			<RCD>0</RCD>
			<PRC>FLOA</PRC>
		</RES>
		<AUT>
			<MID>3262344807e442109cd92f454ac02670</MID>
		</AUT>
	</TRX>
	<JSI>20F2D3EB23809A922B4266171BEADF1E</JSI>
</SES>

6. Attachments