logo Mercanet

Release 24.2

go directly to content

Search by keywords

Multiple payment on delivery

To search in the page use Ctrl+F on your keyboard

It is advised to read the following documents before

  • Recommended

    MIT/CIT chaining

    Functional, technical documentation and user guides to help you to integrate Mercanet online payment solution.

    Open in new tab MIT/CIT chaining

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.

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:

Attention:

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.

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, ...);

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.

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

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
  • CIT reference (field transactionReference ou s10TransactionId/s10TransactionDate)
Office (M2M) via walletOrder
  • CIT reference (field transactionReference ou s10TransactionId/s10TransactionDate)
  • unique transaction reference of the sender used for chaining (field schemeTransactionIdentifier)
  • token of the card used in the CIT (field merchantWalletId)
  • identifier within the wallet Mercanet of the card used in the CIT (field paymentMeanId)

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)

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".

Note:

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.


Diagram describing the order placement and 1st shipment via Paypage

  1. 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.
  2. 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.
  3. Mercanet performs the 3-D Secure verification.
  4. Mercanet carries out anti-fraud checks.
  5. Mercanet sends a request for authorisation to the acquirer.
  6. Mercanet records the transaction and its information in the back office.
  7. Mercanet returns manual and automatic responses containing the details of the transaction.
  8. 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.




Diagram describing the order placement and 1st shipment via Office

  1. You make a request to Office (M2M) by providing detailed information in the request to enable multiple payments upon shipping.
  2. Mercanet performs the 3-D Secure verification.
  3. Mercanet carries out anti-fraud checks.
  4. Mercanet sends a request for authorisation to the acquirer.
  5. Mercanet records the transaction in the back office.
  6. Mercanet returns the result of the payment in the response.
  7. Mercanet sends the transaction in settlement (if applicable) according to the terms you set up in the payment request.

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.



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
  • Must be shorter than the period of validity of the authorisation in the case of a known first shipment
  • Should be set to 0 in the particular case of an unknown first shipment
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

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)

responseCode = 00

acquirerResponseCode = 00

Transaction refused (first payment refused)

responseCode = XX (different from 00)

Consult the connector guide Paypage to analyse the response of Mercanet

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

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.

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.

Here is an example of multiple payments upon shipping with a 1st shipment within 6 days:


Example of a multiple payment on delivery with the first delivery within 6 days

July 28th 2021 day of the order (CIT) with an authentication of the total amount of the order, i.e. EUR 500 and an authorisation request for the amount of the first shipment, i.e. EUR 100. The duration of the authorisation request runs from 28 July to 3 August (6 days). On August 2nd 2021, i.e. D+4, dispatch of the 1st package resulting in the settlement with the 3DS data of the CIT for €100. On August 15th 2021, i.e. D+17, dispatch of the 2nd package, triggering a MIT (MIT1) resulting in a chained authorisation request with the CIT and a remittance in 3DS data for an amount of 400 euros.

Connectors:

CIT MIT
Connector
  • Paypage
  • Office (M2M)
  • In-App
  • Office (M2M)
  • Office Batch

Request parameters :

Field CIT MIT via duplicate MIT via walletOrder
paymentPattern MULTIPLE_1 X MULTIPLE_N
ChallengeMode3DS
  • NO_CHALLENGE
  • CHALLENGE
  • NO_PREFERENCE
  • NO_CHALLENGE_TRA_ACQ
X X
captureDay [ 0 , 6 ] [ 0 , 99 ] [ 0 , 99 ]
captureMode
  • AUTHOR_CAPTURE
  • VALIDATION
  • AUTHOR_CAPTURE
  • VALIDATION
  • AUTHOR_CAPTURE
  • VALIDATION
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

Here is an example of multiple payments upon shipping with a 1st shipment more than 6 days away:


Example of a multiple payment on delivery with the first shipment more than 6 days

July 28th 2021 day of the order (CIT) with an authentication of the total amount of the order, i.e. EUR 500 and a card information request triggered by an amount of EUR 0. The duration of the authorisation request runs from 28 July to 3 August (6 days). On August 2nd 2021, i.e. D+8, dispatch of the 1st package triggering a MIT (MIT1) resulting in a chained authorisation request with the CIT and a remittance in 3DS data for an amount of 100 euros. On August 15th 2021, i.e. D+17, dispatch of the 2nd package, triggering a MIT (MIT2) resulting in a chained authorisation request with the CIT and a remittance in 3DS data for an amount of 400 euros.

Connectors :

CIT MIT
Connector
  • Paypage
  • Office (M2M)
  • In-App
  • Office (M2M)
  • Office Batch

Request parameters:

Field CIT MIT via duplicate MIT via walletOrder
paymentPattern MULTIPLE_1 X MULTIPLE_N
ChallengeMode3DS
  • NO_CHALLENGE
  • CHALLENGE
  • NO_PREFERENCE
  • NO_CHALLENGE_TRA_ACQ
X X
captureDay 0 [ 0 , 99 ] [ 0 , 99 ]
captureMode X
  • AUTHOR_CAPTURE
  • VALIDATION
  • AUTHOR_CAPTURE
  • VALIDATION
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

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.

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/
IMPORTANT: the test shop is configured in transactionReference mode, with no automatic generation of the transactionReference. Therefore, you need to send the populated transactionReference field in your test requests.

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).

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).
Tip: a common mistake is to forget one of these four parameters, which always leads to an error.

If you want to customise your payment pages, please follow the procedure described in the Custompages documentation.