Termos de assinatura
Cria, versiona e consulta os termos que o cliente aceita ao assinar, e lista os aceites registrados.
Cobrar um cartão todo mês exige consentimento claro. O termo de assinatura é o texto desse consentimento, e cada aceite grava IP, navegador e a impressão digital do texto. As rotas desta página são do seller; a loja tem termos próprios da plataforma, que o seller enxerga mas não edita.
Listar termos
O termo de assinatura é o texto que o cliente aceita ao assinar. Ele é versionado: editar cria uma versão nova e a antiga continua existindo, porque o aceite já registrado aponta para o texto exato que o cliente viu. Lista os termos próprios do seller e os da plataforma.
/api/v1/vendor/recurring/termsSellerTermos de assinatura que o seller pode usar
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um usuário seller (veja Tokens).Parâmetros de consulta
include_historystring11 inclui também as versões antigas. Sem isso só as vigentes.Exemplo de requisição
curl "$BASE_URL/api/v1/vendor/recurring/terms?include_history=1" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"terms": [
{
"id": "2b6b4f1e-0f6c-4c58-9b5e-9d9a1f0e7a33",
"vendor_id": "94bd7e9a-fdad-4d01-8fc2-ba9d677d8b36",
"name": "Termos de assinatura",
"content": "Ao assinar você autoriza a cobrança recorrente...",
"version": 2,
"is_current": true,
"parent_term_id": "1a5a3e0d-9e5b-4b47-8a4d-8c8f0e6d6f22",
"created_at": "2026-10-01T12:00:00Z"
}
]
}Campos da resposta
termsobject[]Termos, por nome e versão decrescente.
iduuidvendor_iduuidnamestringcontentstringversionintegeris_currentbooleanparent_term_iduuidcreated_atstringErros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 401 | Token ausente, inválido, expirado ou revogado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário seller (por exemplo, é de administrador), ou o usuário não está vinculado a nenhum seller. | {"error":"insufficient permissions"} |
| 403 | O módulo recurring-payments está desligado nesta loja. | {"error":"module_disabled","module":"recurring-payments"} |
| 403 | O usuário não está vinculado a nenhum seller. | {"error":"no vendor account"} |
Criar termo
Cria a versão 1 de um termo do seller. Para usar o termo em um produto, a ligação é feita na configuração do produto.
/api/v1/vendor/recurring/termsSellerCriar um termo de assinatura
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um usuário seller (veja Tokens).Content-Typestringobrigatórioapplication/json.Corpo da requisição
namestringobrigatóriocontentstringobrigatórioExemplo de requisição
curl -X POST "$BASE_URL/api/v1/vendor/recurring/terms" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Termos de assinatura",
"content": "Ao assinar você autoriza a cobrança recorrente no cartão informado..."
}'Resposta
{
"term": {
"id": "2b6b4f1e-0f6c-4c58-9b5e-9d9a1f0e7a33",
"vendor_id": "94bd7e9a-fdad-4d01-8fc2-ba9d677d8b36",
"name": "Termos de assinatura",
"content": "Ao assinar você autoriza a cobrança recorrente...",
"version": 1,
"is_current": true,
"parent_term_id": null,
"created_at": "2026-10-01T12:00:00Z"
}
}Campos da resposta
termobjectO termo criado.
iduuidvendor_iduuidnamestringcontentstringversionintegeris_currentbooleanparent_term_iduuidcreated_atstringErros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 400 | Corpo que não é JSON. | {"error":"invalid_json","message":"Corpo da requisição inválido."} |
| 422 | Nome ou texto vazios. | {"error":"term_name_required","message":"Informe o nome do termo."} |
| 401 | Token ausente, inválido, expirado ou revogado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário seller (por exemplo, é de administrador), ou o usuário não está vinculado a nenhum seller. | {"error":"insufficient permissions"} |
| 403 | O módulo recurring-payments está desligado nesta loja. | {"error":"module_disabled","module":"recurring-payments"} |
| 403 | O usuário não está vinculado a nenhum seller. | {"error":"no vendor account"} |
Aceites de termos
Lista os aceites registrados nos termos e assinaturas do seller: cliente, versão, IP, navegador e o SHA-256 do texto exato aceito. É a prova de consentimento.
/api/v1/vendor/recurring/terms/acceptancesSellerQuem aceitou quais termos
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um usuário seller (veja Tokens).Parâmetros de consulta
product_iduuiddate_fromstringYYYY-MM-DD ou RFC 3339.pageintegerpadrão: 1per_pageintegerpadrão: 50Exemplo de requisição
curl "$BASE_URL/api/v1/vendor/recurring/terms/acceptances?date_from=2026-10-01" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"acceptances": [
{
"id": "e1d5",
"term_name": "Termos de assinatura",
"term_version": 2,
"user_name": "Maria Souza",
"user_email": "maria.souza@example.com",
"product_id": "c7bc3778-2c79-4561-b9d7-979768f364c8",
"product_name": "Café em grãos 1 kg",
"ip": "203.0.113.10",
"user_agent": "Mozilla/5.0",
"content_sha256": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
"accepted_at": "2026-08-05T12:00:00Z"
}
],
"total": 1,
"page": 1
}Campos da resposta
acceptancesobject[]Aceites da página.
idstringterm_namestringterm_versionintegeruser_namestringuser_emailstringproduct_iduuidproduct_namestringipstringuser_agentstringcontent_sha256stringaccepted_atstringtotalintegerpageintegerErros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 422 | date_from com formato inválido. | {"error":"date_invalid","message":"Data inicial inválida (use AAAA-MM-DD)."} |
| 401 | Token ausente, inválido, expirado ou revogado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário seller (por exemplo, é de administrador), ou o usuário não está vinculado a nenhum seller. | {"error":"insufficient permissions"} |
| 403 | O módulo recurring-payments está desligado nesta loja. | {"error":"module_disabled","module":"recurring-payments"} |
| 403 | O usuário não está vinculado a nenhum seller. | {"error":"no vendor account"} |
Ver termo
Devolve uma versão específica de um termo visível ao seller (próprio ou da plataforma).
/api/v1/vendor/recurring/terms/{id}SellerUma versão de um termo, com o texto
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um usuário seller (veja Tokens).Parâmetros de caminho
iduuidobrigatórioExemplo de requisição
curl "$BASE_URL/api/v1/vendor/recurring/terms/2b6b4f1e-0f6c-4c58-9b5e-9d9a1f0e7a33" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"term": {
"id": "2b6b4f1e-0f6c-4c58-9b5e-9d9a1f0e7a33",
"vendor_id": "94bd7e9a-fdad-4d01-8fc2-ba9d677d8b36",
"name": "Termos de assinatura",
"content": "Ao assinar você autoriza a cobrança recorrente...",
"version": 2,
"is_current": true,
"parent_term_id": "1a5a3e0d-9e5b-4b47-8a4d-8c8f0e6d6f22",
"created_at": "2026-10-01T12:00:00Z"
}
}Campos da resposta
termobjectO termo.
iduuidvendor_iduuidnamestringcontentstringversionintegeris_currentbooleanparent_term_iduuidcreated_atstringErros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 404 | Termo inexistente, de outro seller ou id que não é UUID. | {"error":"term_not_found","message":"Termo não encontrado."} |
| 401 | Token ausente, inválido, expirado ou revogado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário seller (por exemplo, é de administrador), ou o usuário não está vinculado a nenhum seller. | {"error":"insufficient permissions"} |
| 403 | O módulo recurring-payments está desligado nesta loja. | {"error":"module_disabled","module":"recurring-payments"} |
| 403 | O usuário não está vinculado a nenhum seller. | {"error":"no vendor account"} |
Publicar nova versão do termo
Publica uma nova versão (version + 1) de um termo do seller; a versão antiga deixa de ser vigente, mas continua guardada. Os produtos ligados ao termo passam a usar a nova versão. Se nome e texto forem iguais ao atual, nada muda. Só a versão vigente pode ser editada. Termos da plataforma não são editáveis pelo seller.
/api/v1/vendor/recurring/terms/{id}SellerEditar um termo gera uma nova versão
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um usuário seller (veja Tokens).Content-Typestringobrigatórioapplication/json.Parâmetros de caminho
iduuidobrigatórioCorpo da requisição
namestringobrigatóriocontentstringobrigatórioExemplo de requisição
curl -X PUT "$BASE_URL/api/v1/vendor/recurring/terms/2b6b4f1e-0f6c-4c58-9b5e-9d9a1f0e7a33" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Termos de assinatura",
"content": "Texto revisado..."
}'Resposta
{
"term": {
"id": "2b6b4f1e-0f6c-4c58-9b5e-9d9a1f0e7a33",
"vendor_id": "94bd7e9a-fdad-4d01-8fc2-ba9d677d8b36",
"name": "Termos de assinatura",
"content": "Ao assinar você autoriza a cobrança recorrente...",
"version": 3,
"is_current": true,
"parent_term_id": "2b6b4f1e-0f6c-4c58-9b5e-9d9a1f0e7a33",
"created_at": "2026-10-01T12:00:00Z"
}
}Campos da resposta
termobjectA versão vigente depois da operação.
iduuidvendor_iduuidnamestringcontentstringversionintegeris_currentbooleanparent_term_iduuidcreated_atstringErros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 404 | Termo inexistente, de outro seller ou id que não é UUID. | {"error":"term_not_found","message":"Termo não encontrado."} |
| 403 | O termo é da plataforma, não do seller. | {"error":"not_owner","message":"Você não tem permissão para editar este termo."} |
| 409 | A versão enviada já foi substituída por uma mais nova. | {"error":"term_not_current","message":"Este termo já foi substituído por uma versão mais nova."} |
| 422 | Nome ou texto vazios. | {"error":"term_content_required","message":"Informe o texto do termo."} |
| 401 | Token ausente, inválido, expirado ou revogado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário seller (por exemplo, é de administrador), ou o usuário não está vinculado a nenhum seller. | {"error":"insufficient permissions"} |
| 403 | O módulo recurring-payments está desligado nesta loja. | {"error":"module_disabled","module":"recurring-payments"} |
| 403 | O usuário não está vinculado a nenhum seller. | {"error":"no vendor account"} |