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 implementation of the payment upon shipping solution until the production starts.
Who does this document target
This document is intended to help you implement the multiple payments upon shipping.
The purpose is to present the functionalities related to the multiple payments upon shipping and to explain how to implement them with the Mercanet solution.
To get an overview of the solution Mercanet, we advise you to consult the following documents:
- Functional presentation
- ../en/functionality-set-up.htmlFunctionality set-up guide
Mercanet does not manage the personal data of your customers (name, first name, address, age, e-mail, telephone ....) but only payment details allowing to debit or credit your subscribers.
Prerequisites
Your customers' payment details must be stored in Mercanet to allow you to make multiple payments upon shipping.
You have some points to process before starting:
- to be in compliance with the GDPR, you have to fill in your internal personal data processing register, specifying that banking data are maintained by Mercanet. For more information on the GDPR, please refer to our documentation on information systems security;
- inform your customers about the storage of their details and the terms of multiple payments upon shipping (amounts, number of due dates, ...);
Overview
Multiple payments upon shipping has several parts:
- taking orders and setting up the first shipment (CIT);
- the processing of subsequent shipments (MIT);
- managing the expiry of the buyer's payment method or the refusal of one of the shipments
The payment methods used to make this type of payment are the CB, Visa, Mastercard and American Express payment methods.
Choice of connectors
As Mercanet As it offers several interfaces to process multiple payments upon shipping, it is necessary to analyse your business needs to choose the most suitable connectors for your situation.
multiple payments upon shipping is divided into two types of transactions:
- Order taking / first delivery: for this transaction your customer is present. He can choose his payment method, authenticate himself (in accordance with DSP2 regulations) and validate the payment of his order. This type of transaction is called CIT or "Client Initiated Transaction".
- Subsequent deliveryies: for these transactions, your customer is not present. These transactions will be initiated by you and carried out each time a new delivery is made. They are called MIT or "Merchant Initiated Transaction".
The table below summarises the available interfaces according to the type of transaction.
Cas d'usage | Paypage | Office (M2M) | Office Batch | In-App | Mercanet Back Office |
---|---|---|---|---|---|
First delivery (CIT) | V | V | X | V | X |
Nth expedition (MIT) | X | V | V | X | V |
Data to retain
Depending on how you process the different deliveries, the data to be kept varies:
Connecteur | Data to retain for processing MIT |
---|---|
Office (M2M) via duplication |
|
Office (M2M) via walletOrder |
|
Implementation
Multiple payments upon shipping is a payment method that allows you to authenticate your customer when they place their order and then invoice them as the goods in their order are delivered. This payment method is divided into 2 phases:
- Order placement (with the customer present)
- The various deliveries of goods (without the presence of the customer)
Order processing and first shipment: CIT
During the order placement phase, your customer will have to authenticate himself with 3-D Secure. Once authenticated, an authorisation request for the amount of the first delivery must be made. We assume that the first shipment of goods will take place before the end of the authorization period (6 days). If the first shipment takes place more than 6 days after the order has been placed, please refer to the section "Special case of the first shipment separated from the order".
If the payment is made with a CB card, the payment guarantee is eligible for up to 30 days. For more information, please refer to the Carte Bancaire integration guide.
Description
Order placement and first shipment on Paypage
- For the order placement, you redirect the buyer to Paypage by communicating in the request the information allowing the setting up of the multiple payments upon shipping.
- Mercanet displays the payment page (only payment methods that support multiple payments upon shipping are available), the buyer selects the payment method, provides his/her payment details and then validates.
- Mercanet performs the 3-D Secure verification.
- Mercanet carries out anti-fraud checks.
- Mercanet sends a request for authorisation to the acquirer.
- Mercanet records the transaction and its information in the back office.
- Mercanet returns manual and automatic responses containing the details of the transaction.
- Mercanet sends the transaction to settlement according to the terms you set up in the payment request.
The amount of the transaction and the fact that it is a payment on delivery is indicated on the payment pages.
Order placement and first shipment on Office (M2M)
- You make a request to Office (M2M) by providing detailed information in the request to enable multiple payments upon shipping.
- Mercanet performs the 3-D Secure verification.
- Mercanet carries out anti-fraud checks.
- Mercanet sends a request for authorisation to the acquirer.
- Mercanet records the transaction in the back office.
- Mercanet returns the result of the payment in the response.
- Mercanet sends the transaction in settlement (if applicable) according to the terms you set up in the payment request.
Special case of the first shipment separated from the order placement
In some cases, you may not know the first shipment date of your customer's order. For shipments on a date greater than the validity of the authorisation (generally 6 days) or for shipments on an unknown date, a particular behaviour must be put in place.
For this type of placement, the amount of the first delivery must be 0. An enquiry will then be made instead of an authorisation on the amount of the first shipment. Your customer will therefore not be charged when the order is placed, but when the first shipment is made.
Once the order has been placed with an amount of 0, you will have a pivotal transaction that can be used for all future shipments of the order. In the case of a payment with the CB payment method, this behaviour is compatible with the payment guarantee eligible up to 30 days.
On Paypage, the total amount of the order is indicated as well as the amount of the first transaction which is 0.
Set up the request
For Office (M2M), the cardCheckEnrollment and walletCheckEnrollment methods allow you to initiate a multiple payments upon shipping. In these requests, you will need to fill in the parameters as shown in the table herebelow.
For Paypage,the request parameters are identical to those used on Office (M2M).
Field | Valuation rule |
---|---|
captureMode |
Must be set to AUTHOR_CAPTURE or VALIDATION depending on your needs |
captureDay |
|
paymentPattern |
MULTIPLE_1 |
amount |
Must be valued with the amount of the first shipment. In the particular case of the first shipment exceeding the authentication validity period or a first shipmennt at an unknown date, this field must be valued at 0 |
authenticationData.authentAmount
|
Must be valued with the overall order amount; |
authenticationData.challengeMode3DS
|
Indicate your preference for exemption |
Analyse the response
Depending on the response returned by Mercanet on Paypage or on Office (M2M), you determine the status of the transaction.
The order placement fields are as follows:
Status | Response fields |
---|---|
Transaction accepted (first payment made successfully) |
|
Transaction refused (first payment refused) |
responseCode = XX (different
from 00) Consult the connector guide Paypage to analyse the response of Mercanet |
Processing of the following deliveries: MIT
When shipping goods, you will want to invoice your customer. To do this, you will need to make a new transaction on Mercanet. For this transaction, your customer will not need to be present (MIT).
To invoice your customer for a new delivery of goods, you have several options:
- The duplicate operation
- Creating a new transaction
New shipment invoiced from a duplicate
Calling up the duplication function allows you to pay for each subsequent shipment (MIT) from the order placement transaction.
Via the duplicate method, Mercanet automatically chains each shipment (MIT) with the transaction created when the order was placed (CIT)
Consult the connector guide Office (M2M) to implement the call to the duplicate function.
New delivery from a new transaction
The call to the method walletOrder will allow you to perform a new transaction corresponding to the nth shipment of your customer's order.
For these transactions, you will need to set the following parameters:
Field | Valuation rule |
---|---|
initialSchemeTransactionIdentifier |
field value schemeTransactionIdentifier
returned at the time of order placement (CIT) |
paymentPattern |
must be set to MULTIPLE_N |
initialHolderAuthentProgram |
field value holderAuthentProgram
returned at the time of order placement (CIT) |
initialAuthentDateTime |
field value authentDateTime returned
at the time of order placement (CIT) |
initialHolderAuthentType |
field value holderAuthentType
returned at the time of order placement (CIT) |
initialChallengeMode3DS |
challengeMode3DS returned
at the time of order placement (CIT) |
Consult the connector guide Office (M2M) to implement the walletOrder method call.
Summary
Multiple payment on delivery with 1st delivery within 6 days
Here is an example of multiple payments upon shipping with a 1st shipment within 6 days:
Connectors:
CIT | MIT | |
---|---|---|
Connector |
|
|
Request parameters :
Field | CIT | MIT via duplicate | MIT via walletOrder |
---|---|---|---|
paymentPattern |
MULTIPLE_1 | X | MULTIPLE_N |
ChallengeMode3DS |
|
X | X |
captureDay |
[ 0 , 6 ] | [ 0 , 99 ] | [ 0 , 99 ] |
captureMode |
|
|
|
amount |
amount 1st shipment | amount nth shipment | amount nth shipment |
authentAmount |
total amount of the order | X | X |
initialSchemeTransactionIdentifier |
X | X | value of the schemeTransactionIdentifier field received in response from the CIT |
initialHolderAuthentProgram |
X | X | value of the holderAuthentProgram field received in response from the CIT |
initialAuthentDateTime |
X | X | value of the authentDateTime field received in response from the CIT |
initialHolderAuthentType |
X | X | value of the holderAuthentType field received in response from the CIT |
initialChallengeMode3DS |
X | X | value of the challengeMode3DS field received in response from the CIT |
Multiple payments upon shipping with 1st shipment more than 6 days away
Here is an example of multiple payments upon shipping with a 1st shipment more than 6 days away:
Connectors :
CIT | MIT | |
---|---|---|
Connector |
|
|
Request parameters:
Field | CIT | MIT via duplicate | MIT via walletOrder |
---|---|---|---|
paymentPattern |
MULTIPLE_1 | X | MULTIPLE_N |
ChallengeMode3DS |
|
X | X |
captureDay |
0 | [ 0 , 99 ] | [ 0 , 99 ] |
captureMode |
X |
|
|
amount |
0 | amount nth shipment | amount nth shipment |
authentAmount |
amount of the order | X | X |
initialSchemeTransactionIdentifier |
X | X | value of the schemeTransactionIdentifier field, received in CIT response |
initialHolderAuthentProgram |
X | X | value of the holderAuthentProgram field, received in CIT response |
initialAuthentDateTime |
X | X | value of the authentDateTime field, received in CIT response |
initialHolderAuthentType |
X | X | value of the holderAuthentType field, received in CIT response |
initialChallengeMode3DS |
X | X | value of the challengeMode3DS field, received in CIT response |
Start multiple payments upon shipping in 4 steps
Step 1 - Implement the service
When you have chosen the interfaces Mercanet that meet your needs (see chapter Choice of connectors Mercanet, you need to integrate the connectors to connect your website to Mercanet and follow the indications of the implementation part.
Your shop must be set up in Mercanet to accept multiple payments upon shipping. You should ask BNP Paribas to activate this service on your shop if you have not already done so.
Step 2 - Testing the service on the test environment
Once you have implemented the Mercanet connectors, you can do some tests to validate your integration.
Test data | |
---|---|
merchantId | 201000076690001 |
secret key | p64ifeYBVIaRcjaWoahCiw9L8wokNLqG2_YOj_POD4g |
secret key version | 1 |
test cards | cf page "Test cards" |
Server | Test URL |
---|---|
Paypage POST | https://payment-web-mercanet.test.sips-services.com/paymentInit |
Paypage JSON | https://payment-web-mercanet.test.sips-services.com/rs-services/v2/paymentInit |
Paypage SOAP | https://payment-web-mercanet.test.sips-services.com/services/v2/paymentInit |
Office | https://office-server-mercanet.test.sips-services.com/ |
transactionReference
field in your
test requests.Step 3 - Subscribing to the production service
Your shop is not registered on Mercanet.
If your shop has not yet been registered, you must fill in the registration form and return it to BNP Paribas.
Your shop is already registered with Mercanet.
If your shop is already registered with Mercanet, you must check with BNP Paribas to ensure to have access to Paypage or Office (M2M).
Step 4 - Starting and validating the service in production
You must change the URL to connect to the Mercanet production server using the credentials you received when registering merchantId, secretKey, and keyVersion.
URL Mercanet | URL of the Mercanet payment server retrieved by e-mail. |
MerchantId | Shop ID received by e-mail. |
SecretKey | Secret key you retrieve via the Mercanet Téléchargement. |
KeyVersion | Secret key version retrieved on Mercanet Téléchargement (obviously 1 for the 1st key). |
If you want to customise your payment pages, please follow the procedure described in the Custompages documentation.