Upfront routing

Upfront Routing allows you to provide the routing information at the time of payment creation. The funds are distributed to connected sellers as soon as the payment is successful.

This is the simpler of the two routing approaches: you know who gets what at checkout time and Mollie handles the distribution immediately.

📘

Upfront routing is not recommended for new integrations. Use delayed routing instead.
Upfront routing only works with EUR and GBP and does not support Klarna, PayPal, gift cards or multicurrency conversion. See the full comparison table for details.

How to create split payments

Once marketplace features have been enabled for your account and you have sellers connected to your platform, you can start sending parts of each payment to your sellers' balances.

Split payments are created using the Payments API, by specifying a routing array in the Create payment API call.

Each item in this array needs to contain an amount to route to the seller and a destination which includes the organizationId of the seller. Any amount not explicitly routed to a connected account remains in your marketplace balance as commission.

{
  "amount": {
    "value": "5.00",
    "currency": "EUR"
  },
  "description": "Testing split payments",
  "routing": [
    {
      "amount": {
        "currency": "EUR",
        "value": "4.00"
      },
      "destination": {
        "type": "organization",
        "organizationId": "org_1234"
      }
    }
  ],
  "redirectUrl": "https://example.com?success=true"
}

Example API Call

In the example below, we are routing €6.00 of a €10.00 payment to the connected account org_23456, and €3.00 to the connected account org_56789.

The marketplace retains the remaining €1.00 as commission, minus any payment fees charged by Mollie.

curl -X POST https://api.mollie.com/v2/payments \
  -H "Authorization: Bearer test_dHar4XY7LxsDOtmnkVtjNVWXLSlXsM" \
  -d "amount[currency]=EUR" \
  -d "amount[value]=10.00" \
  -d "description=My first routed payment" \
  -d "redirectUrl=https://webshop.example.org/order/12345/" \
  -d "webhookUrl=https://webshop.example.org/payments/webhook/" \
  -d "routing[0][amount][currency]=EUR" \
  -d "routing[0][amount][value]=6.00" \
  -d "routing[0][destination][type]=organization" \
  -d "routing[0][destination][organizationId]=org_23456" \
  -d "routing[1][amount][currency]=EUR" \
  -d "routing[1][amount][value]=3.00" \
  -d "routing[1][destination][type]=organization" \
  -d "routing[1][destination][organizationId]=org_56789"

As soon as the payment is completed, €6.00 and €3.00 will become available on the balance of the connected accounts and the remaining €1.00 will become available on the balance of your marketplace account.

Multicurrency support

Upfront routing supports EUR and GBP only and does not offer multicurrency conversion. Routes must be in the currency of the payment or in the currency of the seller's balance, but not both.

Refunds and chargebacks

Split payments can be both partially and fully refunded.

  • To process a full refund for a split payment, a request can be made to the Refunds API with reverseRouting set to true. This will deduct the amount that was originally split from the balance of each connected seller account and refund the full amount.
  • For partial refunds, a routingReversals array must be sent through to the Refunds API.
    You can't reverse more than what was originally sent to that seller.

As the transaction owner, your marketplace bears the risk of all chargebacks.

  • For a full chargeback, Mollie automatically executes the equivalent of reverseRouting, clawing back routed amounts from each seller.
  • For partial chargebacks, the chargeback amount and associated fees are deducted from your marketplace balance.

Did this page help you?