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

# Atualizar Branding

> POST /v2/naas/submerchants/branding — atualiza a identidade visual de um sub-merchant nas páginas de checkout.

Atualiza a identidade visual de um sub-merchant usada nas páginas de checkout: nome de exibição, logo e/ou cor do botão principal. As alterações entram em vigor na próxima sessão de checkout.

<Warning>
  Este endpoint opera no nível do merchant master. **Não inclua `correlation_id` no envelope** — passe-o dentro do `payload`.
</Warning>

<Info>
  O branding pode ser atualizado **no máximo uma vez a cada 30 dias** por sub-merchant. Pelo menos um dos campos `trade_name`, `logo` ou `colour` deve ser fornecido.
</Info>

## Campos do payload

| Campo            | Tipo            | Obrigatório | Descrição                                                                                                                                               |
| ---------------- | --------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `correlation_id` | string (UUID)   | Sim         | UUID retornado por [Cadastrar Sub-merchant](/pt/api-reference/naas/enroll).                                                                             |
| `trade_name`     | string          | Não         | Nome de exibição mostrado na página de checkout.                                                                                                        |
| `logo`           | string (base64) | Não         | Imagem do logo codificada em Base64. Codificação padrão ou raw; prefixo `data:<mime>;base64,` opcional. Deve ser PNG ou JPEG, máx 5 MB, máx 400×400 px. |
| `colour`         | string          | Não         | Código de cor hex para o botão de ação principal (ex: `#FF5500`).                                                                                       |

## Response `200 OK`

```json theme={null}
{ "message": "Company branding updated successfully" }
```

**`400`** — `correlation_id` ausente; nenhum campo fornecido; cooldown de 30 dias ainda não decorrido; logo não é base64 válido, não é PNG/JPEG, excede 5 MB ou excede 400×400 px.

**`404`** — `correlation_id` não encontrado ou não pertence a este merchant master.

**`422`** — sub-merchant ainda não tem conta no portal (KYB não concluído).

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST https://checkout.noxpay.io/v2/naas/submerchants/branding \
    -H "api-key: <key>" \
    -H "X-Signature: <assinatura-do-corpo>" \
    -H "Content-Type: application/json" \
    -d '{
      "timestamp": "2026-05-27T14:30:00Z",
      "payload": {
        "correlation_id": "a1b2c3d4-e5f6-4789-abcd-000000000001",
        "trade_name": "AcmePay",
        "colour": "#FF5500"
      }
    }'
  ```

  ```python Python theme={null}
  import requests

  body, sig = sign_envelope({
      "correlation_id": "a1b2c3d4-e5f6-4789-abcd-000000000001",
      "trade_name": "AcmePay",
      "colour": "#FF5500",
  })
  response = requests.post(
      "https://checkout.noxpay.io/v2/naas/submerchants/branding",
      headers={"api-key": "<key>", "X-Signature": sig, "Content-Type": "application/json"},
      data=body,
  )
  print(response.json())
  ```

  ```javascript Node.js theme={null}
  const { body, signature } = signEnvelope({
    correlation_id: "a1b2c3d4-e5f6-4789-abcd-000000000001",
    trade_name: "AcmePay",
    colour: "#FF5500",
  });
  const response = await fetch("https://checkout.noxpay.io/v2/naas/submerchants/branding", {
    method: "POST",
    headers: { "api-key": "<key>", "X-Signature": signature, "Content-Type": "application/json" },
    body,
  });
  const data = await response.json();
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  { "message": "Company branding updated successfully" }
  ```

  ```json 400 theme={null}
  { "error": "logo exceeds maximum size of 5MB" }
  ```

  ```json 422 theme={null}
  { "error": "sub-merchant has no portal account" }
  ```
</ResponseExample>
