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",
"logo": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...",
"colour": "#FF5500"
}
}'
import requests
body, sig = sign_envelope({
"correlation_id": "a1b2c3d4-e5f6-4789-abcd-000000000001",
"trade_name": "AcmePay",
"logo": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...",
"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())
const { body, signature } = signEnvelope({
correlation_id: "a1b2c3d4-e5f6-4789-abcd-000000000001",
trade_name: "AcmePay",
logo: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...",
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();
{ "message": "Company branding updated successfully" }
{ "error": "logo exceeds maximum size of 5MB" }
{ "error": "sub-merchant has no portal account" }
NaaS — Gestão de Sub-merchants
Atualizar Branding
POST /v2/naas/submerchants/branding — atualiza a identidade visual de um sub-merchant nas páginas de checkout.
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",
"logo": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...",
"colour": "#FF5500"
}
}'
import requests
body, sig = sign_envelope({
"correlation_id": "a1b2c3d4-e5f6-4789-abcd-000000000001",
"trade_name": "AcmePay",
"logo": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...",
"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())
const { body, signature } = signEnvelope({
correlation_id: "a1b2c3d4-e5f6-4789-abcd-000000000001",
trade_name: "AcmePay",
logo: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...",
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();
{ "message": "Company branding updated successfully" }
{ "error": "logo exceeds maximum size of 5MB" }
{ "error": "sub-merchant has no portal account" }
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.
Response
correlation_id é obrigatório para este endpoint, mas não vai no envelope de nível superior — passe-o dentro do payload.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.Campos do payload
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
correlation_id | string (UUID) | Sim | UUID retornado por Cadastrar Sub-merchant. |
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
{ "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).
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",
"logo": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...",
"colour": "#FF5500"
}
}'
import requests
body, sig = sign_envelope({
"correlation_id": "a1b2c3d4-e5f6-4789-abcd-000000000001",
"trade_name": "AcmePay",
"logo": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...",
"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())
const { body, signature } = signEnvelope({
correlation_id: "a1b2c3d4-e5f6-4789-abcd-000000000001",
trade_name: "AcmePay",
logo: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...",
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();
{ "message": "Company branding updated successfully" }
{ "error": "logo exceeds maximum size of 5MB" }
{ "error": "sub-merchant has no portal account" }

