Skip to main content
Allows merchants to generate additional revenue by applying a flexible, custom markup to their submerchants’ transactions, with WePayments’ fees charged separately for different payment methods and transaction types.

Configuration Levels (Scopes)

Merchants can configure markup at three different levels:

Global (Merchant Level)

The merchant defines a markup that is applied to all transactions from all submerchants. This is the default when no other level applies.

By Submerchant

The merchant can define a specific markup for each individual submerchant, per product (payin or payout) and payment method. See Submerchant Markup endpoints.

Inline in Request (By Charge or Payment)

When creating a charge or payment, the merchant can send a specific markup object.

Priority Rule

For each transaction, the markup is chosen in this order:
  1. Inline markup sent in the request.
  2. Submerchant markup configured for the submerchant.
  3. Global markup configured for the merchant.
The choice is made per payment method. For example, if a submerchant has its own markup for Pix but not for Boleto, a Pix charge uses the submerchant markup and a Boleto charge uses the global markup.
If there is no inline or submerchant markup → the global markup is applied when the merchant has the markup feature enabled.
Changes to submerchant or global markup, including batch changes, apply to the next transactions created.

Markup Origin

The markup object returned for a charge or payment includes an origin field that shows which level was applied:

Products and Payment Methods

When creating a payout, markup is currently applied to PIX payments only.

Markup Types

Fixed

The same fixed markup value is applied to all charges/payments, regardless of the transaction amount.

Percentage

The markup value is calculated as a percentage of the charge/payment amount. This type includes delimiter fields to define a valid range for the final markup amount:
  • min_charge_value: The minimum markup amount to be charged.
  • max_charge_value: The maximum markup amount to be charged.
For submerchant markup, both min_charge_value and max_charge_value are required when the type is percentage.

Percentage Calculation Logic

  1. The system calculates the raw percentage value (transaction_amount * percentage).
  2. If the calculated value is less than min_charge_value, the min_charge_value is applied.
  3. Else if the calculated value is greater than max_charge_value, the max_charge_value is applied.
  4. Otherwise, the exact calculated value is applied.
Examples (BRL):

Creating Markup via API

Guide for configuring markup using the API

Create Merchant Markup

Create new markup configurations

List Merchant Markups

View all markup configurations

Create Payin with Inline Markup

Use inline markup when creating payin charges

Submerchant Markups

Configure markup for each submerchant