Perfil do visitante
Guarda os dados de contato e entrega de quem compra sem conta, para o checkout não pedir tudo de novo.
Um visitante (guest) é quem navega e compra sem criar conta. A loja o reconhece só por um identificador de sessão que o seu front-end envia no cabeçalho X-Session-ID. O perfil do visitante é um pequeno cadastro (nome, e-mail, documento, endereço) preso a essa sessão, para que, se ele recarregar a página ou voltar ao checkout, os campos já venham preenchidos.
/api/v1/storefront/guest/profilePúblicaLer o perfil do visitante
Cabeçalhos
X-Session-IDstringSessão do visitante. Sem o cabeçalho, a resposta é
null.bash
curl "$BASE_URL/api/v1/storefront/guest/profile" \
-H "X-Session-ID: $SESSION_ID"200Perfil encontrado
json
{
"session_id": "d3b07384-d9a0-4c1b-9f0e-6a3f1c2e8b55",
"email": "maria.souza@example.com",
"first_name": "Maria",
"last_name": "Souza",
"phone": "(11) 91234-5678",
"cpf": "123.456.789-09",
"address_line1": "Av. Paulista, 1000",
"address_line2": "Apto 52",
"district": "Bela Vista",
"city": "São Paulo",
"state": "SP",
"postal_code": "01310-100",
"country": "BR",
"updated_at": "2026-10-11T20:41:07Z"
}Quando não existe perfil para a sessão (ou o cabeçalho não foi enviado), o corpo é o literal null com status 200.
/api/v1/storefront/guest/profilePúblicaSalvar ou atualizar o perfil
Cabeçalhos
X-Session-IDstringobrigatórioSessão do visitante.
Corpo da requisição
emailstringE-mail de contato.
first_namestringNome.
last_namestringSobrenome.
phonestringTelefone com DDD.
cpfstringCPF de pessoa física.
cnpjstringCNPJ de pessoa jurídica.
address_line1stringLogradouro e número.
address_line2stringComplemento.
districtstringBairro.
citystringCidade.
statestringUF (
SP).postal_codestringCEP.
countrystringPaís (
BR).bash
curl -X PUT "$BASE_URL/api/v1/storefront/guest/profile" \
-H "X-Session-ID: $SESSION_ID" \
-H "Content-Type: application/json" \
-d '{
"email": "maria.souza@example.com",
"first_name": "Maria",
"last_name": "Souza",
"postal_code": "01310-100"
}'A resposta é o perfil completo depois da mescla, no mesmo formato do GET.
Campos da resposta
session_idstringA sessão a que o perfil pertence.
emailstringOs demais campos repetem o corpo da requisição; os que nunca foram preenchidos não aparecem.
updated_atstringÚltima alteração (RFC 3339, UTC).
/api/v1/storefront/guest/profilePúblicaApagar o perfil do visitante
Cabeçalhos
X-Session-IDstringobrigatórioSessão do visitante.
bash
curl -X DELETE "$BASE_URL/api/v1/storefront/guest/profile" \
-H "X-Session-ID: $SESSION_ID"200Perfil apagado
json
{
"status": "deleted"
}Erros
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 400 | PUT ou DELETE sem X-Session-ID. | {"error":"X-Session-ID header required"} |
| 400 | PUT com corpo que não é JSON. | {"error":"invalid request body","detail":"..."} |
| 403 | Chave de API sem o escopo storefront:write (quem usa token de cliente não é afetado). | {"error":"missing_scope","required":"storefront:write"} |
| 429 | Limite de requisições da família /storefront/. | {"error":"rate limit exceeded","detail":"too many requests, please try again later"} |
| 500 | Falha ao ler, salvar ou apagar. | {"error":"failed to save guest profile","detail":"..."} |