Introduction

Duplication check in Axepta BNP Paribas Online is designed to detect and manage duplicate payment attempts across multiple channels (API, HPP, etc.).

It ensures that users and merchants do not accidentally trigger multiple payments with identical parameters, including cases where a payment is already in progress.

Objectives of Duplication check

Duplicates can originate from several causes :

  • User interaction errors (e.g., refresh, double-click, tab closure)

  • Merchant-side logic issues (e.g., retry loops)

  • Network latency or waiting times causing uncertainty about the payment status

  • Payment attempts still in progress when a new request is submitted

Configuration

The merchant must choose the following elements, which will be configured on the Axepta BNP Paribas Online side :

  • Historical depth in which duplicates are checked: 1 hour to 4 days (in hours)

    • Historical depth refers to the period during which the system retains and analyzes past transaction data to detect duplicate payment attempts. This depth is configurable and can range from 1 hour to 4 days, depending on the merchant's needs and specific configurations. It allows comparing new transactions with those recorded within this timeframe to avoid redundant payments.
  • Scope: 1 or multiple MID

  • Consideration of "in progress" payments: yes/no

Operation

1. Verification

Duplicate checks are triggered before the payment page is displayed and between payment pages:

  • If a duplicate is detected, the user is redirected to the Failure URL

  • No payment is submitted if the request matches an existing or in-progress transaction

A failed transaction will not trigger duplicate detection.

2. Implementation

Option 1: Payment made via the Payment Method Selection Page (HPP) or Card Payment Form (payssl) It is necessary to add at least one of the following parameters in the API calls to /payments/sessions and /payments:

  • order.merchantReference

  • order.invoiceId

Option 2: Duplicate Verification via API – Coming Soon The Axepta Online API provides an endpoint allowing merchants to verify if a transaction is a duplicate before submitting it:

  • Endpoint: coming soon

  • Parameter: merchantReference or invoiceId (required), Amount, Currency.

3. Response Format

The API returns a status indicating whether a transaction is a duplicate :

StatusCodeDescription
OK00000000No duplicates detected
FAILED2XXX1550Payment already made
FAILED2XXX1551Payment pending
FAILED2XXX1552Multiple duplicates detected, additional criteria required

 If a duplicate is detected, the response also includes details of the existing transaction (PayID, TransactionID, Date, etc.).

  • No labels