1. Sequence diagrams
PAYMENT AUTHORIZATION
CAPTURE
REFUND
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.
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 FLOA Implementation Guide | ||
SES/PID | |||||
MPY | string | <MPY>FLOA</MPY> | Mandatory | ||
KVE | string | <KVE> <KWD>customer.history.createdDate</KWD> <VAL>2025-02-01T12:00:00Z</VAL> </KVE> | |||
KWD | string | Necessary | |||
VAL | string | Necessary |
4. Industry specific data
4.1 Travel industry
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 choosen 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 | Does the payment card holder is 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 | Does the travel can 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
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
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
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
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>