> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wepayout.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Submerchant Markup

> Get the markup configuration of a single submerchant.

# Get Submerchant Markup

Use this endpoint to get the markup configured for one submerchant, grouped by product (`payin` and `payout`).

If the submerchant has no markup of its own, `has_markup` is `false` and the lists are empty. In that case the merchant's global markup is applied.

## Path Parameters

<ParamField path="merchantId" type="integer" required>
  ID of the merchant (parent account). It must be one of the authenticated user's companies.
</ParamField>

<ParamField path="subMerchantId" type="integer" required>
  ID of the submerchant. It must be a submerchant of `merchantId`.
</ParamField>

## Request Example

```bash cURL theme={null}
curl -X GET "https://api.sandbox.wepayout.com.br/v2/account/123/submerchants/1234/markups" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Accept: application/json"
```

## Response

The response is a submerchant object, with the same fields as an item of [List Submerchant Markups](/api-reference/markup/submerchant/list-submerchant-markups).

<ResponseField name="id" type="integer">
  Submerchant ID.
</ResponseField>

<ResponseField name="name" type="string">
  Submerchant name.
</ResponseField>

<ResponseField name="legal_name" type="string or null">
  Submerchant legal name.
</ResponseField>

<ResponseField name="document" type="string or null">
  Submerchant document (CNPJ or CPF), digits only.
</ResponseField>

<ResponseField name="has_markup" type="boolean">
  `true` when the submerchant has its own markup for at least one product and payment method.
</ResponseField>

<ResponseField name="payin" type="array[object]">
  Markups configured for `payin`. Each item has `id`, `payment_method`, `mode`, `amount`, `min_charge_value` and `max_charge_value`. Amounts are strings with 2 decimal places.
</ResponseField>

<ResponseField name="payout" type="array[object]">
  Markups configured for `payout`, with the same structure as `payin`.
</ResponseField>

<ResponseField name="updated_at" type="string or null">
  Date and time of the most recent change to the submerchant's markup. `null` when there is no markup.
</ResponseField>

<ResponseExample>
  ```json 200 OK theme={null}
  {
    "id": 1234,
    "name": "Store X",
    "legal_name": "Store X LTDA",
    "document": "12345678000190",
    "has_markup": true,
    "payin": [
      {
        "id": 56,
        "payment_method": "billet",
        "mode": "fixed",
        "amount": "2.00",
        "min_charge_value": null,
        "max_charge_value": null
      },
      {
        "id": 55,
        "payment_method": "pix",
        "mode": "percent",
        "amount": "1.40",
        "min_charge_value": "1.00",
        "max_charge_value": "5.00"
      }
    ],
    "payout": [
      {
        "id": 57,
        "payment_method": "pix",
        "mode": "fixed",
        "amount": "0.80",
        "min_charge_value": null,
        "max_charge_value": null
      }
    ],
    "updated_at": "2026-09-28 10:49:13"
  }
  ```

  ```json 422 Unprocessable Entity - Not a submerchant of this merchant theme={null}
  {
    "message": "The given data was invalid.",
    "errors": {
      "subMerchantId": [
        "The subaccount 7777 does not belong to this account."
      ]
    }
  }
  ```

  ```json 404 Not Found theme={null}
  {
    "message": "Subaccount not found."
  }
  ```

  ```json 500 Internal Server Error theme={null}
  {
    "error": "Failed to find markup."
  }
  ```
</ResponseExample>

## Related Resources

<CardGroup cols={2}>
  <Card title="Configure Submerchant Markup" icon="pen" href="/api-reference/markup/submerchant/upsert-submerchant-markup">
    Set the markup of a submerchant
  </Card>

  <Card title="Remove Submerchant Markup" icon="trash" href="/api-reference/markup/submerchant/delete-submerchant-markup">
    Go back to the global markup
  </Card>
</CardGroup>
