Introduction
Mercanet is a secure multi-channel e-commerce payment solution that complies with the PCI DSS standard. It allows you to accept and manage payment transactions by taking into account business rules related to your activity (payment upon shipping, deferred payment, recurring payment, payment in instalments, etc.).
The purpose of this document is to explain the Floa Bank 3X and/or 4X means of payment integration into Mercanet.
Who does this document target?
This document is intended to help you implement the Floa Bank 3X and/or 4X means of payment on your e-commerce site.
It includes:
- functional information for you
- implementation instructions for your technical team
To get an overview of the Mercanet solution, we advise you to consult the following documents:
- Functional presentation
- Functionality set-up guide
Understanding Floa Bank CB 3X and/or 4X payments with Mercanet
General principles
A financial company of the Casino Group, Floa Bank offers the Floa Bank 3X and/or 4X solution, reserved for private persons of legal age holding a credit card valid for at least 3 months after the contract signing date for payment in instalments and the use of which is not subject to a systematic authorisation request (especially Visa Electron and Maestro cards).
With this solution, customers pay for their online purchases in 3 or 4 instalments.
During a Floa Bank 3X and/or 4X payment, customers complete their personal data as well as credit card details upon subscription. This subscription specifies the number of payment due dates, the amount of each payment due date and the dates pertaining to the payment.
Having completed the entry, they are informed online of the request result.
The imprint taken during the payment process can be subject to 3-D Secure authentication.
Acceptance rules
Available functionalities
Payment channels | ||
---|---|---|
Internet | V | Default payment channel |
MOTO | X | |
Fax | X | |
IVS | X |
Means of payment | ||
---|---|---|
Immediate payment | V | Default method |
End-of-day payment | X | |
Deferred payment | X | |
Payment upon shipping | V | |
Payment in instalments | X | |
Subscription payment | X | |
Batch payment | X | |
OneClick payment | X |
Currency management | ||
---|---|---|
Multicurrency acceptance | X | EURO only |
Currency settlement | X | EURO only |
Dynamic currency conversion | X | EURO only |
Payment pages
The customer selects the Floa Bank 3X and/or 4X means of payment.
They are then redirected to the Floa Bank pages.
They fill out a form with their personal information:
The customer can then enter the information relating to their bank card:
The payment ticket is displayed, then the customer returns to your websit. This page can be bypassed.
Signing your Floa Bank CB 3X and/or 4X acceptance contract
In order to offer the Floa Bank 3X and/or 4X means of payment on your website, you have to sign a contract with Floa Bank. Floa Bank will then transmit this information, which will be directly implemented in your Mercanet merchant shop.
At the same time, Floa Bank will sign a distance selling contract with CIC to finalise your registration and give you access to the means of payment.
Making a Floa Bank CB 3X and/or 4X payment
You can offer the Floa Bank 3X and/or 4X means of payment through the Paypage which directly acts as the payment interface with customers via their web browser.
The remittance modes available for a Floa Bank 3X and/or 4X transaction are:
- Validation mode: you must validate the transaction to trigger the remittance. A capture delay must also be defined. When this capture delay is reached or exceeded, you will not be able to validate the transaction, which will therefore expire automatically.
- Immediate mode: the authorisation and remittance are executed online simultaneously.
- only the "IMMEDIATE" mode in the WL Sips merchant request is compatible with the "Automatic" configuration on the FLOA PAY acquisition contract side
- only the "VALIDATION" mode in the WL Sips merchant request is compatible with the "Manual" configuration on the FLOA PAY acquisition contract side.
The diagram below explains the different transaction statuses according to the chosen capture mode:
Making a Floa Bank CB 3X and/or 4X payment with Paypage
The payment process for Paypage is described below:
Setting the payment request
The existing paymentMeanBrandList
field must be populated with the means of payment list offered to the
customer and specifically the Floa Bank means of payment.
The 2 offers are BCACB_3X and BCACB_4X.
The specific fields for making a payment are as follows:
Field Name | Remarks/rules |
---|---|
customerLanguage |
Allows to choose the language used on Mercanet and Floa Bank pages. |
customer.country |
Country (=FR) |
customerId |
Mandatory. Unique identification that characterises the
customer in the merchant's information system. |
customerContact.lastName |
Mandatory. Customer name. |
customerContact.firstName |
Mandatory. Customer first name. |
customerContact.phone |
Customer landline number. Mandatory if the mobile phone number is not filled out. |
customerContact.mobile |
Customer mobile phone number. Mandatory if the landline number is not filled out. |
customerContact.email |
Mandatory. Customer email. |
customerAddress.addressAdditional1 |
Mandatory. Main address. |
customerAddress.zipCode |
Mandatory. Postal code. |
customerAddress.city |
Mandatory. City |
customerAddress.country |
Mandatory. Code ISO Alpha-2 of the country
(=FR) |
deliveryData.deliveryMode |
Mandatory. Merchant delivery method :
|
deliveryData.deliveryChargeAmount |
Optional. Total amount of shipping costs for the order
(in cents). |
shoppingCartDetail.shoppingCartTotalQuantity |
Mandatory. Number of articles. |
orderId |
Mandatory. Unique identifier that characterises the
customer's order in the merchant's information
system. |
shoppingCartDetail.shoppingCartTotalTaxAmont |
Optional. Total amount of costs associated with the
order (in cents). |
shoppingCartDetail.discountAmount |
Optional. Total amount of discounts associated with
the order (in cents). Set to 0 by default. |
shoppingCartDetail.shoppingCartItemList.item0.travelData |
Optional. From version IR_WS_2.38 (Paypage SOAP/REST) or HP_2.38 (Paypage POST) onwards. |
travelData
travelData
is a container dedicated to tour
operators. A field marked "mandatory" in the containers below is only
mandatory for tour operators. For Floa, the travel data is included in the
first item of the basket: shoppingCartDetail.shoppingCartItemList.item0
.Field name | Remarks/Rules |
---|---|
travelData.numberOfTravelers |
Mandatory Number of travelers |
travelData.travelStartDateTime |
Mandatory - ISO8601 format Departure date and time
|
travelData.travelEndDateTime |
Mandatory - ISO8601 format Return date and
time |
travelData.travelingPayerIndicator |
Optional - Allowed values: true - The payer participates in the travel |
travelData.passportDataList |
Optional - List of passport data Travelers passport data, named travelData.passportDataList.passportDataX where X is the passport index in the list |
travelData.passportDataList.passportDataX.passportExpirationDate |
Optional - YYYYMMDD format Passport expiry date
|
travelData.passportDataList.passportDataX.passportIssueCountry |
Optional - Allowed values: countryList ISO Alpha-3
code of the country of passport issuance |
travelData.journeyDataList |
Optional - List of travel data Only the first journey in the list is taken into account for Floa. As a consequence, the fields below will be named travelData.journeyDataList.journeyData0.XXXX |
travelData.journeyDataList.journeyData0.departureLocation |
Optional IATA 3-character code of the departure airport |
travelData.journeyDataList.journeyData0.arrivalLocation |
Optional IATA 3-character code of the arrival airport |
travelData.journeyDataList.journeyData0.destinationCountry |
Mandatory - Allowed values: countryList ISO Alpha-3
code of the destination country |
travelData.journeyDataList.journeyData0.numberOfTickets |
Optional Number of tickets |
travelData.journeyDataList.journeyData0.journeyModality |
Optional - Allowed values: ONEWAY - One way |
travelData.journeyDataList.journeyData0.classLevel |
Optional - Allowed values: 1 - First class or business class |
travelData.journeyDataList.journeyData0.carrierIdentifier |
Optional IATA 2-character airline code |
travelData.journeyDataList.journeyData0.fareBasis |
Optional Journey fare or discount code |
travelData.journeyDataList.journeyData0.journeyInsuranceOptional |
Type of travel insurance |
travelData.journeyDataList.journeyData0.journeyCancellableIndicator |
Optional - Allowed values: true - The journey can be changed or cancelled |
travelData.journeyDataList.journeyData0.luggageSupplementIndicator |
Optional - Allowed values: true - The journey has a luggage supplement |
travelData.stayDataList |
Optional - List of stopover data Only the first step of the list is taken into account for Floa, therefore the fields below will be named travelData.stayDataList.stayData0.XXXX |
travelData.stayDataList.stayData0.stayCompany |
Optional Operator or hotel company |
travelData.stayDataList.stayData0.stayLocation |
Optional Destination city |
travelData.stayDataList.stayData0.stayNumberOfNights |
Optional Number of nights |
travelData.stayDataList.stayData0.roomServiceLevel |
Optional Room service level |
Sample travelData
on Paypage POST with a stay in Montreal, departing from Paris, for
two people:
shoppingCartDetail.shoppingCartItemList={travelData.numberOfTravelers=2,travelData.travelStartDateTime=2022-01-01T07:30:00+02:00,travelData.travelEndDateTime=2022-01-05T20:45:00+02:00,travelData.travelingPayerIndicator=true,
travelData.passportDataList={passportExpirationDate=20230401,passportIssueCountry=FRA},{passportExpirationDate=20240607,passportIssueCountry=CAN},
travelData.journeyDataList={departureLocation=CDG,arrivalLocation=YUL,destinationCountry=CAN,numberOfTickets=2,fareBasis=Discount code,carrierIdentifier=AF,classLevel=1,journeyModality=TWOWAY,journeyInsurance=Insurance Plus,journeyCancellableIndicator=true,luggageSupplementIndicator=true},
travelData.stayDataList={stayLocation=Montreal Great Hotel,numberOfNights=4,roomServiceLevel=4,stayCompany=Travel Inc.}}
Same example on Paypage JSON :
"shoppingCartDetail": {
"shoppingCartItemList": [{
"travelData": {
"journeyDataList": [{
"arrivalLocation": "YUL",
"carrierIdentifier": "AF",
"classLevel": "1",
"departureLocation": "CDG",
"destinationCountry": "CAN",
"fareBasis": "Discount code",
"journeyCancellableIndicator": "true",
"journeyInsurance": "Insurance Plus",
"journeyModality": "TWOWAY",
"luggageSupplementIndicator": "true",
"numberOfTickets": "2"
}],
"numberOfTravelers": "2",
"passportDataList": [{
"passportExpirationDate": "20230401",
"passportIssueCountry": "FRA"
},{
"passportExpirationDate": "20240607",
"passportIssueCountry": "CAN"
}],
"stayDataList": [{
"numberOfNights": "4",
"roomServiceLevel": "4",
"stayCompany": "Travel Inc.",
"stayLocation": "Montreal Great Hotel"
}],
"travelEndDateTime": "2022-01-05T20:45:00+02:00",
"travelStartDateTime": "2022-01-01T07:30:00+02:00",
"travelingPayerIndicator": "true"
}
}]
}
Analysing the response
The following table summarises the different response cases to be processed:
Status | Response fields | Action to take |
---|---|---|
Payment accepted | acquirerResponseCode = 00
authorisationId = (cf. the
Data Dictionary).paymentMeanBrand = BCACB_3X
or BCACB_4XpaymentMeanType =
ONLINE_CREDITresponseCode =
00 |
You can deliver the order. |
Acquirer refusal | acquirerResponseCode = (cf.
the Data Dictionary).responseCode =
05 |
The authorisation is refused for a reason unrelated to
fraud. If you have not opted for the "new payment attempt"
option (please read the Functionality
set-up Guide for more details), you can suggest that your
customer pay with another means of payment by generating a new
request. |
Refusal due to the number of attempts reached | responseCode = 75 |
The customer has made several attempts that have all failed. |
Refusal due to a technical issue | acquirerResponseCode = 90-98
responseCode = 90,
99 |
Temporary technical issue when processing the transaction. Suggest that your customer redo a payment later. |
For the complete response codes (responseCode
) and acquirer response
codes (acquirerResponseCode
), please refer
to the Data dictionary.
Making a Floa Bank 3X and/or 4X with Office (M2M)
The Floa Bank 3X and/or 4X means of payment acceptance is not available through the Office (M2M) solution.
Managing your Floa Bank CB 3X and/or 4X transactions
Available cash operations
The following operations are available on Floa Bank 3X and/or 4X transactions:
Cash management | ||
---|---|---|
Cancellation | X | |
Validation | V | Validation available on the
total or partial amount of the transaction. |
Refund | V | Refund available on the
total or partial amount of the transaction. |
Duplication | X |
The diagram below allows you to know which cash management operation is available when a transaction is in a given state:
Viewing your Floa Bank CB 3X and/or 4X transactions
Reports
The reports provided by Mercanet allow you to have a comprehensive and consolidated view of your transactions, cash operations, accounts and chargebacks. You can use this information to improve your information system.
The availability of Floa Bank 3X andt/or 4X transactions for each type of report is summarised in the table below:
Reports availability | |
---|---|
Transactions report | V |
Operations report | V |
Reconciliations report | X |
Chargebacks report | X |
Mercanet Back Office
You can view your Floa Bank 3X and/or 4X transactions and perform various cash management operations with Mercanet Back Office.
How to perform your tests Floa Bank 3X et/ou 4X
FLOAPAY provides test data for your test. We encourage you to read and use them. https://floapay.readme.io/reference/testing-ids/.