Alterar e apagar formulário
Altera um formulário (campos, estado, configuração) ou o apaga junto com as respostas.
Atualizar formulário
Atualiza só os campos enviados. As validações da criação valem de novo. Atenção: fields e settings são substituídos por inteiro, não mesclados.
/api/v1/admin/forms/{id}AdminAltera campos de um formulário
Rota ligada ao módulo custom-forms: com o módulo desligado a resposta é 403. Leitura exige manage_content ou view_content; escrita exige manage_content.
Parâmetros de caminho
iduuidobrigatórioCorpo da requisição
namestringslugstringfale-conosco). Único na loja.descriptionstringstatusstringpadrão: draftdraftactivearchivedactive aceita respostas dos clientes.fieldsarraysettingsobjectExemplo de requisição (Atualizar formulário)
curl -X PUT "$BASE_URL/api/v1/admin/forms/71464e65-00e2-4dbc-b9c8-61c2966008fc" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"status": "archived"
}'Resposta (Atualizar formulário)
{
"id": "71464e65-00e2-4dbc-b9c8-61c2966008fc",
"name": "Fale conosco",
"slug": "fale-conosco",
"description": "Contato com a loja",
"status": "archived",
"fields": [
{
"id": "nome",
"type": "text",
"label": "Nome",
"required": true,
"order": 1
},
{
"id": "assunto",
"type": "select",
"label": "Assunto",
"required": true,
"order": 2,
"options": [
{
"label": "Dúvida",
"value": "duvida"
},
{
"label": "Troca",
"value": "troca"
}
]
},
{
"id": "mensagem",
"type": "textarea",
"label": "Mensagem",
"required": false,
"order": 3,
"validation": {
"max_length": 500
}
}
],
"settings": {
"success_message": "Obrigado! Responderemos em breve.",
"notification_email": "loja@example.com",
"redirect_url": "",
"captcha_enabled": false,
"captcha_provider": "honeypot"
},
"created_at": "2026-10-11T21:05:13.186855Z",
"updated_at": "2026-10-11T21:05:13.186855Z"
}Campos da resposta
iduuidnamestringslugstringdescriptionstringstatusstringdraft, active ou archived.fieldsarrayorder. Veja a seção "Campos" na página inicial desta seção.settingsobjectvendor_iduuidcreated_atstringupdated_atstringErros (Atualizar formulário)
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | O administrador não tem o privilégio exigido. | {"error":"insufficient privileges","required":"manage_content"} |
| 404 | Não existe formulário com esse id. | {"error":"FORM_NOT_FOUND"} |
| 400 | Validação: SLUG_REQUIRED, INVALID_SLUG, NAME_REQUIRED, INVALID_STATUS, INVALID_FIELD_ID, INVALID_FIELD_TYPE:<id>, INVALID_FIELD_LABEL:<id>, DUPLICATE_FIELD_ID:<id>, FIELD_OPTIONS_REQUIRED:<id>, INVALID_FIELDS_JSON, INVALID_SETTINGS_JSON, INVALID_NOTIFICATION_EMAIL. | {"error":"FIELD_OPTIONS_REQUIRED:assunto"} |
| 409 | Já existe um formulário com esse slug. | {"error":"SLUG_ALREADY_EXISTS"} |
| 500 | Falha ao gravar, ou id que não é UUID. | {"error":"FORM_UPDATE_FAILED","detail":"..."} |
Apagar formulário
Remove o formulário e todas as respostas recebidas por ele. Não há lixeira. Para só parar de receber respostas, mude o estado para archived.
/api/v1/admin/forms/{id}AdminApaga um formulário e as respostas dele
Rota ligada ao módulo custom-forms: com o módulo desligado a resposta é 403. Leitura exige manage_content ou view_content; escrita exige manage_content.
Parâmetros de caminho
iduuidobrigatórioExemplo de requisição (Apagar formulário)
curl -X DELETE "$BASE_URL/api/v1/admin/forms/71464e65-00e2-4dbc-b9c8-61c2966008fc" \
-H "Authorization: Bearer $TOKEN"Resposta (Apagar formulário)
Corpo vazio.
Erros (Apagar formulário)
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | O administrador não tem o privilégio exigido. | {"error":"insufficient privileges","required":"manage_content"} |
| 404 | Não existe formulário com esse id. | {"error":"FORM_NOT_FOUND"} |
| 500 | id que não é UUID, ou falha de banco. | {"error":"FORM_DELETE_FAILED","detail":"..."} |