List Submerchant Markups
curl --request GET \
--url https://api.sandbox.wepayout.com.br/v2/account/{merchantId}/submerchants/markups \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.sandbox.wepayout.com.br/v2/account/{merchantId}/submerchants/markups"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.sandbox.wepayout.com.br/v2/account/{merchantId}/submerchants/markups', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sandbox.wepayout.com.br/v2/account/{merchantId}/submerchants/markups",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.sandbox.wepayout.com.br/v2/account/{merchantId}/submerchants/markups"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.sandbox.wepayout.com.br/v2/account/{merchantId}/submerchants/markups")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.wepayout.com.br/v2/account/{merchantId}/submerchants/markups")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": 1234,
"name": "Store X",
"legal_name": "Store X LTDA",
"document": "12345678000190",
"has_markup": true,
"payin": [
{
"id": 55,
"payment_method": "pix",
"mode": "percent",
"amount": "1.40",
"min_charge_value": "1.00",
"max_charge_value": "5.00"
}
],
"payout": [],
"updated_at": "2026-09-28 10:49:13"
},
{
"id": 1235,
"name": "Store Y",
"legal_name": "Store Y LTDA",
"document": "98765432000110",
"has_markup": false,
"payin": [],
"payout": [],
"updated_at": null
}
],
"total": 110,
"page": 1,
"per_page": 10,
"total_pages": 11
}
{
"message": "The given data was invalid.",
"errors": {
"per_page": [
"The per page field must not be greater than 500."
]
}
}
{
"message": "The given data was invalid.",
"errors": {
"merchantId": [
"Unauthorized to perform this action."
]
}
}
{
"error": "Failed to list subaccounts."
}
Submerchant
List Submerchant Markups
List the submerchants of a merchant with their own markup configuration.
GET
/
v2
/
account
/
{merchantId}
/
submerchants
/
markups
List Submerchant Markups
curl --request GET \
--url https://api.sandbox.wepayout.com.br/v2/account/{merchantId}/submerchants/markups \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.sandbox.wepayout.com.br/v2/account/{merchantId}/submerchants/markups"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.sandbox.wepayout.com.br/v2/account/{merchantId}/submerchants/markups', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sandbox.wepayout.com.br/v2/account/{merchantId}/submerchants/markups",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.sandbox.wepayout.com.br/v2/account/{merchantId}/submerchants/markups"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.sandbox.wepayout.com.br/v2/account/{merchantId}/submerchants/markups")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.wepayout.com.br/v2/account/{merchantId}/submerchants/markups")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": 1234,
"name": "Store X",
"legal_name": "Store X LTDA",
"document": "12345678000190",
"has_markup": true,
"payin": [
{
"id": 55,
"payment_method": "pix",
"mode": "percent",
"amount": "1.40",
"min_charge_value": "1.00",
"max_charge_value": "5.00"
}
],
"payout": [],
"updated_at": "2026-09-28 10:49:13"
},
{
"id": 1235,
"name": "Store Y",
"legal_name": "Store Y LTDA",
"document": "98765432000110",
"has_markup": false,
"payin": [],
"payout": [],
"updated_at": null
}
],
"total": 110,
"page": 1,
"per_page": 10,
"total_pages": 11
}
{
"message": "The given data was invalid.",
"errors": {
"per_page": [
"The per page field must not be greater than 500."
]
}
}
{
"message": "The given data was invalid.",
"errors": {
"merchantId": [
"Unauthorized to perform this action."
]
}
}
{
"error": "Failed to list subaccounts."
}
List Submerchant Markups
Use this endpoint to list the submerchants of a merchant, together with the markup configured for each one. Submerchants that do not have their own markup are also returned, withhas_markup: false and empty payin and payout lists. These submerchants use the merchant’s global markup.
Path Parameters
integer
required
ID of the merchant (parent account). It must be one of the authenticated user’s companies.
Query Parameters
string
Free-text filter. Matches the submerchant’s name or legal name (partial match), ID (exact match), or document. When searching by document, punctuation is ignored, so
12.345.678/0001-90 and 12345678000190 are the same.Max length: 255integer
default:"1"
Page number. Must be greater than or equal to
1.integer
default:"10"
Number of submerchants per page. Must be between
1 and 500.Request Examples
curl -X GET "https://api.sandbox.wepayout.com.br/v2/account/123/submerchants/markups?page=1&per_page=25" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json"
curl -X GET "https://api.sandbox.wepayout.com.br/v2/account/123/submerchants/markups?search=12.345.678/0001-90" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json"
Response
array[object]
List of submerchants.
Show Submerchant Object
Show Submerchant Object
integer
Submerchant ID.
string
Submerchant name.
string or null
Submerchant legal name.
string or null
Submerchant document (CNPJ or CPF), digits only.
boolean
true when the submerchant has its own markup for at least one product and payment method. When false, the global markup is applied.array[object]
Markups configured for
payin, sorted by payment method. Empty when there is none.Show Markup Object
Show Markup Object
integer
Markup configuration ID.
string
Payment method. Values:
pix, billet, credit_card.string
Markup mode. Values:
fixed, percent.string
Markup value, with 2 decimal places. In BRL when
mode is fixed, and a percentage when mode is percent ("1.50" means 1.5%).string or null
Minimum markup amount in BRL when
mode is percent. null when mode is fixed.string or null
Maximum markup amount in BRL when
mode is percent. null when mode is fixed.array[object]
Markups configured for
payout, with the same structure as payin. Payment method values: pix, ted.string or null
Date and time (
Y-m-d H:i:s, America/Sao_Paulo) of the most recent change to the submerchant’s markup. null when there is no markup.integer
Total number of submerchants that match the filter.
integer
Current page.
integer
Number of submerchants per page.
integer
Total number of pages.
{
"data": [
{
"id": 1234,
"name": "Store X",
"legal_name": "Store X LTDA",
"document": "12345678000190",
"has_markup": true,
"payin": [
{
"id": 55,
"payment_method": "pix",
"mode": "percent",
"amount": "1.40",
"min_charge_value": "1.00",
"max_charge_value": "5.00"
}
],
"payout": [],
"updated_at": "2026-09-28 10:49:13"
},
{
"id": 1235,
"name": "Store Y",
"legal_name": "Store Y LTDA",
"document": "98765432000110",
"has_markup": false,
"payin": [],
"payout": [],
"updated_at": null
}
],
"total": 110,
"page": 1,
"per_page": 10,
"total_pages": 11
}
{
"message": "The given data was invalid.",
"errors": {
"per_page": [
"The per page field must not be greater than 500."
]
}
}
{
"message": "The given data was invalid.",
"errors": {
"merchantId": [
"Unauthorized to perform this action."
]
}
}
{
"error": "Failed to list subaccounts."
}
Related Resources
Get Submerchant Markup
View the markup of a single submerchant
Configure Submerchant Markup
Set the markup of a submerchant
Batch Apply Submerchant Markup
Apply the same markup to many submerchants
About Markup
Learn about markup types and configuration levels
Was this page helpful?

