---
title: "Set up payment flows"
description: "Implement payments, refunds, and chargebacks."
url: "https://docs.adyen.com/plugins/mirakl/set-up-payment-flows"
source_url: "https://docs.adyen.com/plugins/mirakl/set-up-payment-flows.md"
canonical: "https://docs.adyen.com/plugins/mirakl/set-up-payment-flows"
last_modified: "2026-06-01T15:33:15+02:00"
language: "en"
---

# Set up payment flows

Implement payments, refunds, and chargebacks.

[View source](/plugins/mirakl/set-up-payment-flows.md)

The connector does not manage the payment flows on your Marketplace. To process transactions such as authorisations, captures, or refunds for your sellers, you must implement payment flows yourself. For more information, see [Process payments for marketplaces](/marketplaces/process-payments).

Although the connector does not manage these flows, there are things you must keep in mind when processing transactions while being integrated with Adyen's Mirakl connector.

To keep the connector synchronized, you must perform captures and refunds only from Mirakl. If you perform any operations outside Mirakl, you must manually adjust balances in Mirakl.

## Supported payment methods

You can enable your users to accept online payments using all [payment methods supported for marketplaces](/marketplaces/payment-methods).

Before you can use new payment methods, you need to [request them for your merchant account](/marketplaces/payment-methods#pm-merchant-account).

## Payments

When [processing a payment](/marketplaces/process-payments/), you can split the funds between any number of [balance accounts in your platform](/marketplaces/account-structure-resources#resources-1), including your liable balance account. You can send the data to split the payment [in your payment request](/marketplaces/split-transactions/split-payments-at-authorization) or [in your capture request](/marketplaces/split-transactions/split-payments-at-capture). Note that you can only split at capture for payment methods that support [separate captures](/online-payments/capture).

The connector populates the [custom fields you added to Mirakl](/plugins/mirakl/set-up-the-connector#add-custom-fields) when performing the [synchronizations you set up](/plugins/mirakl/set-up-the-connector#schedule-synchronizations). After a shopper places an order, it results in a pending debit. You resolve pending debits by processing the payments.

To process payments:

1. Use Mirakl's [PA11 API](https://help.mirakl.net/help/api-doc/front/mmp.html#PA11) to get a list of pending debits.

2. Make a request to the Mirakl [S20 API](https://help.mirakl.net/help/api-doc/front/mmp.html#S20) to get the seller information, including the `adyen-v2-account-holder-id` and `adyen-v2-balance-account-id`.\
   These values inform you of the account that is linked to a debit request.

   The Mirakl S20 API has a rate limit, therefore, we do not recommend making requests for each transaction. You can keep a local mapping of the Adyen account IDs and Mirakl shop IDs.

3. Make a [/payments](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments) or [/payments/{paymentPspReference}/captures](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments/\(paymentPspReference\)/captures) request:

   * In the body, include the [applicationInfo](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments#request-applicationInfo) and [splits](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments/\(paymentPspReference\)/captures#request-splits) arrays.\
     For [applicationInfo](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments#request-applicationInfo), specify the following fields:

     | Parameter             | Required                                                                                    | Description                                                                                                                                              |
     | --------------------- | ------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
     | `externalPlatform`    | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | Details of the Mirakl Connector v2.                                                                                                                      |
     | `merchantApplication` | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | Your own details, refer to [Application Information](/partners/application-information#ecommerce-application) for information on how to fill this field. |
     | `adyenLibrary`        | ![-x-](/user/data/smileys/emoji/x.png "-x-")                                                | Only if you are using an Adyen Library, the name and the version of the library you are using.                                                           |

     For [splits](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments/\(paymentPspReference\)/captures#request-splits), specify the following fields:

     * If a shopper orders from multiple sellers in the same transaction, the splits array needs to indicate the split of funds between all sellers on that transaction.

     | Parameter      | Required                                                                                    | Description                                                                                                                                                                                                                                                                                                                                                                          |
     | -------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
     | `account`      | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | Adyen Balance account ID. Get it from your [Customer Area](https://ca-test.adyen.com/) > **Accounts & balances** > **Balance accounts**.                                                                                                                                                                                                                                             |
     | `type`         | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | **BalanceAccount**. If you want to use `type`: [**PaymentFee** ](/marketplaces/transaction-fees)in your request, contact Adyen. This type reduces the seller's available balance and increases failure rates for initial payouts that you must then correct with retrials. We recommend to increase the default value from 10 retries to a value that is suitable for your platform. |
     | `amount.value` | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The split amount, in [minor units](/development-resources/currency-codes/).                                                                                                                                                                                                                                                                                                          |
     | `reference`    | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | Your unique identifier for the specific transaction split.                                                                                                                                                                                                                                                                                                                           |

**Example payment request**

```bash
# Set your X-API-KEY with the API key from the Customer Area.
curl https://checkout-test.adyen.com/v72/payments \
-H 'x-api-key: YOUR_X-API-KEY' \
-H 'content-type: application/json' \
-d '{
        "applicationInfo": [
            "externalPlatform": {
                "integrator": "Mirakl Connector v2",
                "name" : "Mirakl",
                "version": "2.0"
            },
            "merchantApplication": {
                "name": "Best Ecom",
                "version": "2.0"
            },
            "adyenLibrary": {
                "name": "adyen-java-api-library",
                "version" : "18.0.0"
            }
        ],
        "paymentMethod": {
            "type": "scheme",
            "number": "4111111111111111",
            "cvc": "737",
            "expiryMonth": "03",
            "expiryYear": "2030",
            "holderName": "John Smith"
        },
        "amount": {
            "value": 4000,
            "currency": "EUR"
        },
        "reference": "YOUR_ORDER_NUMBER",
        "merchantAccount": "YOUR_MERCHANT_ACCOUNT",
        "returnUrl": "https://your-company.example.com/...",
        "splits":[
            {
                "amount": {
                    "value": 4000
                },
                "type": "BalanceAccount",
                "account": "BA00000000000000000000001",
                "reference": "YOUR_REFERENCE",
            },
        ]
    }'
```

## Captures

##### Webhooks

Learn more about [webhooks](/development-resources/webhooks/).

When we have processed your capture request, we send you a [**CAPTURE** webhook](/online-payments/capture#capture-webhook).

In rare cases, a capture can fail even after you received a successful **CAPTURE** webhook. You then receive a [**CAPTURE\_FAILED** webhook](/online-payments/capture#failed-capture).

We recommend to implement delay of 15 minutes in your order management process before the order status is modified in Mirakl after you receive a **CAPTURE** webhook. This is to prevent modifying the order status to soon, in case you receive a **CAPTURE\_FAILED** webhook later, because Mirakl does not allow to revert order statuses.

## Refunds

In Mirakl, both the marketplace operator and sellers can issue refunds. To learn more about when and how refunds can be issued, refer to Mirakl documentation.

Refunds are calculated as a part of the billing cycle. Seller balances are adjusted to reflect the net balance in the next billing cycle after a refund takes place.

After a refund is initiated in Mirakl, you can process and [split the refund](/marketplaces/split-transactions/split-refunds) amount between the balance accounts in your platform.

When we have processed your refund request, we send you a [**REFUND** webhook](/online-payments/refund#refund-webhook).

In rare cases, a refund can fail even after you received a successful **REFUND** webhook. You then receive a [**REFUND\_FAILED** webhook](/online-payments/refund#refund-failed).

We recommend to implement delay of 15 minutes in your order management process before the order status is modified in Mirakl after you receive a **REFUND** webhook. This is to prevent modifying the order status to soon, in case you receive a **REFUND** webhook later, because Mirakl does not allow to revert order statuses.

## Chargebacks

When a chargeback occurs in your marketplace, you can choose to book the disputed amount:

* Entirely to your liable balance account
* According to the original split ratio of the payment

Refer to [Chargeback and disputes](/marketplaces/split-transactions/split-chargebacks) for more information on how to configure chargebacks.

## Next steps

[required](/plugins/mirakl/payouts)

[Seller payouts and commissions](/plugins/mirakl/payouts)

[Learn how the connector handles seller payouts and commissions.](/plugins/mirakl/payouts)

[required](/plugins/mirakl/reconciliation-and-invoices)

[Reconciliation and invoice management](/plugins/mirakl/reconciliation-and-invoices)

[Learn how to reconcile balances when using our connector.](/plugins/mirakl/reconciliation-and-invoices)
