Extensão de consentimento do comprador¶
Visão geral¶
A extensão Buyer Consent permite que as empresas comuniquem as opções de consentimento que desejam oferece e permite que as plataformas transmitam as decisões de consentimento dos compradores para uso de dados e preferências de comunicação - fins como marketing, análises, preferências e venda ou compartilhamento de dados.
O consentimento é modelado como uma estrutura de dois níveis:
- Objetivo — para que serve o consentimento. Chaveado no nível superior por um
identificador de DNS reverso (por exemplo,
br.dev.bcp.consent.marketing). Cada propósito carrega um estadogranted, umsourceidentificando quem afirmou esse estado, umdescriptionlegível por humanos e umlinksopcional. - Segment — um refinamento opcional que define o escopo do propósito pai para um
canal específico (por exemplo, e-mail, SMS), fornecedor (por exemplo, um provedor de medição),
ou programa. Cada segmento tem o mesmo formato (
granted,source,description, opcionallinks) e substitui a finalidade pai para seu escopo específico.
A estrutura está limitada a um nível de aninhamento: os propósitos possuem segmentos; os segmentos não se aninham mais.
Escopo¶
Esta extensão define o mecanismo pelo qual as empresas e plataformas estabelecem e comunicar o estado de consentimento do comprador. Não dita o comportamento de nenhuma das partes em resposta a esse estado - como uma empresa age em relação a isso (por exemplo, enviando e-mails, compartilhamento de dados) e como uma plataforma apresenta decisões existentes ao comprador (por exemplo, exibindo o estado atual da assinatura com uma capacidade de cancelamento de assinatura) são regido pela política comercial e pela regulamentação aplicável, não por este especificação.
As empresas são responsáveis por selecionar o valor inicial de granted de acordo
à sua política aplicável antes de anunciar opções de consentimento. O anunciado
o valor com source: "business" é o padrão oficial do negócio;
os compradores podem substituí-lo por meio da plataforma. O raciocínio político continua a ser o
responsabilidade do negócio.
Descoberta¶
As empresas anunciam suporte de consentimento em seus perfis. A capacidade pode se estender
carrinho, checkout ou ambos:json
{
"capabilities": {
"br.dev.bcp.shopping.buyer_consent": [
{
"version": "2026-07-14",
"spec": "https://bcp.dev.br/2026-07-14/specification/buyer-consent",
"schema": "https://bcp.dev.br/2026-07-14/schemas/shopping/buyer_consent.json",
"extends": [
"br.dev.bcp.shopping.cart",
"br.dev.bcp.shopping.checkout"
]
}
]
}
}## Composição do esquema
Quando esse recurso está ativo, o objeto comprador no carrinho e/ou finalização da compra
carrega um campo consent:
- Caminho do carrinho:
cart.buyer.consent - Caminho de checkout:
checkout.buyer.consent
O objeto buyer (e portanto consent) é opcional em todos os carrinhos e
operações de checkout — carrinho create / update e checkout create / update
/complete. As plataformas PODEM enviar consentimento capturado em complete_checkout
junto com o pagamento.
Definição de esquema¶
Objeto de consentimento¶
O BCP atualmente usa um objeto de consentimento compacto em buyer.consent.
User consent states for data processing
| Name | Type | Required | Description |
|---|---|---|---|
| analytics | boolean | No | Consent for analytics and performance tracking. |
| preferences | boolean | No | Consent for storing user preferences. |
| marketing | boolean | No | Consent for marketing communications. |
| sale_of_data | boolean | No | Consent for selling data to third parties (CCPA). |
Finalidades bem conhecidas¶
Esta extensão define quatro identificadores de finalidade bem conhecidos sob o
Namespace br.dev.bcp.consent.*. As empresas podem definir finalidades adicionais sob
namespaces de DNS reverso que eles controlam. Esses identificadores são operacionais
definições, não taxonomias legais.
| Identificador | Finalidade |
|---|---|
br.dev.bcp.consent.analytics |
Análise e medição de desempenho |
br.dev.bcp.consent.marketing |
Comunicações de marketing |
br.dev.bcp.consent.preferences |
Lembrando as preferências do comprador |
br.dev.bcp.consent.sale_or_sharing |
Venda ou partilha de dados pessoais com terceiros |
Segmentos bem conhecidos¶
Para a finalidade br.dev.bcp.consent.marketing, esta extensão define
identificadores de segmento de canal:
| Identificador | Canal |
|---|---|
br.dev.bcp.consent.marketing.email |
|
br.dev.bcp.consent.marketing.sms |
SMS |
Anuncie e confirme¶
O mesmo formato de mapa carrega duas direções complementares de informação:
| Direção | Quem povoa | Campos preenchidos |
|---|---|---|
| Anuncie (resposta) | Negócios | granted, source, description; links e segments quando presentes |
| Confirmar (solicitação) | Plataforma | granted, source; segments quando presente |
description e links são somente resposta; a plataforma não os ecoa
confirme. granted e source são obrigatórios em ambas as direções: empresas
enviar o estado atual e sua origem ao anunciar; plataformas enviam o
estado atual e sua fonte ao confirmar.
O campo source carrega a autoria do valor atual de granted:
source: "business"significa que o valor reflete a inadimplência do negócio; não a preferência do comprador se aplica.source: "platform"significa que o valor reflete a declaração do comprador preferência, capturada pela plataforma.
A fonte sinaliza como a plataforma deve tratar o valor atual:
source: "business" convida a plataforma a apresentar a escolha ao comprador
engajamento; source: "platform" indica uma preferência registrada do comprador.
Exemplo: propósitos e segmentos¶
O caso mais simples é a captura de consentimento em nível de finalidade – analytics aqui mostra
o consentimento do comprador registrado nos pais. As finalidades também podem transportar segmentos
para controle mais refinado: marketing está desativado, mas o comprador
consentiu com o marketing por SMS. O granted: true do segmento
substitui o granted: false do pai para esse escopo (valores mais específicos
vencer).json
{
"ucp": { ... },
"id": "checkout_456",
"status": "ready_for_complete",
"currency": "USD",
"buyer": {
"consent": {
"br.dev.bcp.consent.analytics": {
"granted": true,
"source": "platform",
"description": "Site analytics and performance measurement"
},
"br.dev.bcp.consent.marketing": {
"granted": false,
"source": "business",
"description": "Promotional communications",
"segments": {
"br.dev.bcp.consent.marketing.email": {
"granted": false,
"source": "business",
"description": "Promotional emails"
},
"br.dev.bcp.consent.marketing.sms": {
"granted": true,
"source": "platform",
"description": "Marketing text messages"
}
}
}
}
}
}O comprador se envolveu com duas opções específicas (análise em geral, SMS
marketing especificamente); ambos carregam source: "platform". O restante
valores (segmento pai marketing, email) carregam source: "business".
Exemplo de anúncio¶
As empresas anunciam os propósitos e segmentos disponíveis com o consentimento atual
estado (decisão prévia do comprador ou inadimplência comercial):json
{
"ucp": { ... },
"id": "checkout_456",
"status": "ready_for_complete",
"currency": "USD",
"buyer": {
"consent": {
"br.dev.bcp.consent.marketing": {
"granted": false,
"source": "business",
"description": "Promotional communications across all channels",
"links": [{ "type": "privacy_policy", "url": "https://example.com/privacy" }],
"segments": {
"br.dev.bcp.consent.marketing.email": {
"granted": true,
"source": "platform",
"description": "Promotional emails and exclusive offers"
},
"br.dev.bcp.consent.marketing.sms": {
"granted": false,
"source": "business",
"description": "Marketing text messages",
"links": [{ "type": "terms_of_service", "url": "https://example.com/sms-terms" }]
},
"com.example.channel.marketing": {
"granted": false,
"source": "business",
"description": "Marketing messages via a third-party channel"
}
}
},
"br.dev.bcp.consent.analytics": {
"granted": true,
"source": "business",
"description": "Site analytics and performance measurement",
"segments": {
"com.example.analytics": {
"granted": false,
"source": "business",
"description": "Third-party analytics measurement",
"links": [{ "type": "privacy_policy", "url": "https://example.com/analytics-privacy" }]
}
}
},
"br.dev.bcp.consent.preferences": {
"granted": true,
"source": "business",
"description": "Remember preferences and personalize the shopping experience"
},
"br.dev.bcp.consent.sale_or_sharing": {
"granted": false,
"source": "platform",
"description": "Sale or sharing of personal data with third parties",
"links": [{ "type": "privacy_policy", "url": "https://example.com/privacy" }]
}
}
}
}Neste exemplo, o comprador optou anteriormente por receber e-mail promocional
(marketing.email mostra source: "platform") e anteriormente optou por não participar
venda de dados (sale_or_sharing mostra source: "platform"). Qualquer outra escolha
permanece no padrão declarado pelo negócio e é candidato à plataforma
vir à tona para captura explícita.
Confirme exemplo¶
As plataformas enviam o estado atual de cada finalidade e segmento anunciado em um formato
solicitação update_checkout ou complete_checkout subsequente. Para cada escolha,
a plataforma ecoa os anunciados granted e source quando nenhum comprador
se aplica a preferência ou define source: "platform" com a declaração do comprador
Valor granted quando o faz.json
{
"buyer": {
"consent": {
"br.dev.bcp.consent.marketing": {
"granted": true,
"source": "platform",
"segments": {
"br.dev.bcp.consent.marketing.email": { "granted": true, "source": "platform" },
"br.dev.bcp.consent.marketing.sms": { "granted": true, "source": "platform" },
"com.example.channel.marketing": { "granted": false, "source": "business" }
}
},
"br.dev.bcp.consent.analytics": {
"granted": true,
"source": "business",
"segments": {
"com.example.analytics": { "granted": false, "source": "business" }
}
},
"br.dev.bcp.consent.preferences": { "granted": true, "source": "business" },
"br.dev.bcp.consent.sale_or_sharing": { "granted": false, "source": "platform" }
}
}
}Aqui, o comprador optou pelo marketing por e-mail e SMS; outras opções são
ecoaram em seus valores anunciados, incluindo sale_or_sharing, que mantém
uma escolha anterior capturada pela plataforma.
Dependências de dados¶
Alguns estados de consentimento dependem de dados adicionais do comprador ou do checkout. Por exemplo, O consentimento de marketing por SMS requer um número de telefone do comprador. Quando o plataforma confirma um valor de consentimento cuja dependência necessária está faltando, as empresas superam a lacuna por meio do padrão Status do Checkout Ciclo de vida e Erro Manipulação mecanismos.
Em create_cart, update_cart, create_checkout e update_checkout,
as empresas DEVEM revelar dependências ausentes como mensagens warning para que o
plataforma pode coletar os dados em uma operação subsequente. O anunciado
as decisões de consentimento permanecem válidas; o aviso é informativo.json
[
{
"type": "warning",
"code": "missing_consent_data",
"content": "Phone number is required for SMS marketing.",
"path": "$.buyer.phone_number"
}
]Em complete_checkout, as empresas NÃO DEVEM fazer a transição do checkout para
completed enquanto uma decisão de consentimento confirmada tiver dependências de dados não atendidas.
Dependências ausentes DEVEM ser descobertas por meio do padrão Erro
Tratamento fluxo.
Requisitos normativos¶
-
Use as configurações anunciadas. As empresas DEVEM anunciar o conteúdo completo conjunto de opções de consentimento que eles suportam. As plataformas decidem quais escolhas apresentar ao comprador e quando; ao apresentar uma escolha, as plataformas DEVEM usar o valor anunciado
description,links,grantede agrupamento de finalidade/segmento. O camposourceinforma as decisões da plataforma (veja Anunciar e confirmar) e não é conteúdo voltado para o usuário. Identificadores fora do namespacebr.dev.bcp.consent.*são alças opacas; plataformas NÃO DEVEM inferir semântica de tais caminhos sozinho. Os identificadores definidos pelo BCP carregam a semântica estabelecida neste especificação. -
Confirme a semântica. O campo
consenté opcional nas solicitações; omiti-lo não fornece nenhuma atualização de consentimento e a empresa mantém seus dados anteriores posição. Ao enviarconsent, as plataformas DEVEM incluir todos os anúncios chave de finalidade e de segmento, contendograntedesourcepara cada uma. A omissão de uma chave anunciada em um mapaconsentNÃO DEVE ser usado para sinalizar qualquer valor. -
O conjunto anunciado é oficial. As empresas DEVEM ignorar os propósitos e segmentos em uma solicitação que não foram anunciados em uma resposta anterior. Plataformas NÃO DEVE solicitar ou transmitir propósitos ou segmentos que a empresa não anunciar.
-
Valores mais específicos ganham. Para um segmento anunciado, o valor do segmento O valor
grantedsubstitui ograntedda finalidade pai para esse segmento. -
A atribuição da fonte requer uma preferência declarada pelo comprador. As plataformas DEVEM definir
source: "platform"somente quando o valor degrantedrefletir o valor do comprador preferência declarada. Para escolhas às quais não se aplica nenhuma preferência do comprador, as plataformas DEVEM ecoar osourceanunciado inalterado. O protocolo faz não prescrever o que conta como preferência declarada pelo comprador; essa determinação é feito pela plataforma de acordo com a política aplicável. -
Atribuição por empresa. Uma decisão de consentimento capturada com um o negócio é atribuível apenas a esse negócio; plataformas NÃO DEVEM propagá-lo como base para
source: "platform"em um negócio diferente pedido. Preferências mais amplas do comprador que não estão vinculadas a um negócio específico são independentes de decisões por negócio e podem ser aplicadas a cada escolhas anunciadas da empresa em sua própria base. -
Persistência e reversibilidade. As plataformas PODEM persistir antes do comprador preferências (
source: "platform") em interações com o mesmo negócios e PODE suprimir a representação de valores inalterados. Onde as preferências persistem, as plataformas DEVEM dar ao comprador a capacidade para mudá-los.