Regras de comissão
Define quanto a loja retém de cada item vendido por um seller, por seller, categoria e faixa de valor.
Uma regra de comissão diz quanto do valor de um item vendido fica com a loja (a comissão) e quanto vai para o seller. Tudo é calculado por item dos pedidos dos sellers, e o resultado vira uma linha do razão de comissões.
Listar regras
Devolve todas as regras de comissão da loja, sem paginação.
/api/v1/admin/commission-rulesAdminLista as regras de comissão
Autenticação: Authorization: Bearer <token> de um administrador com o privilégio view_vendors ou manage_vendors (as escritas exigem manage_vendors). O módulo commissions precisa estar ativo na loja; com o módulo desligado a resposta é 403.
Sem parâmetros.
Exemplo de requisição
Resposta
Campos da resposta
rulesarrayrules[].iduuidrules[].namestringrules[].rule_typestringpercentagefixedpercentage (taxa em pontos-base) ou fixed (valor fixo em centavos por item). O valor tiered aparece no modelo, mas nenhuma conta o aplica.rules[].vendor_iduuid | nullnull vale para todos os sellers.rules[].vendor_namestringvendor_id está preenchido.rules[].category_iduuid | nullnull vale para todas.rules[].rateintegerpercentage: pontos-base (1000 = 10%). Para fixed: centavos (500 = R$ 5,00).rules[].min_order_valueinteger0 = sem mínimo.rules[].max_order_valueinteger0 = sem máximo.rules[].priorityintegerrules[].statusstringactiveinactiveactive ou inactive.rules[].created_atstringrules[].updated_atstringtotalintegerErros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token ou token inválido | {"error":"missing authorization header"} |
| 403 | Sem o privilégio exigido, ou módulo desligado | {"error":"module_disabled","module":"commissions"} / {"error":"insufficient privileges","required":"manage_vendors"} |
Criar regra
Cria uma regra. A partir daí, todo item vendido depois que casar com ela gera uma entrada no razão com essa taxa. Entradas já gravadas não são recalculadas.
/api/v1/admin/commission-rulesAdminCria uma regra de comissão
Autenticação: Authorization: Bearer <token> de um administrador com o privilégio view_vendors ou manage_vendors (as escritas exigem manage_vendors). O módulo commissions precisa estar ativo na loja; com o módulo desligado a resposta é 403.
Corpo da requisição
namestringobrigatóriorule_typestringobrigatóriopercentagefixedpercentage ou fixed. Qualquer outro valor é recusado.rateintegerobrigatóriopercentage: pontos-base (1000 = 10%); fixed: centavos.vendor_iduuidcategory_iduuidmin_order_valueintegerpadrão: 00 (sem mínimo).max_order_valueintegerpadrão: 00 (sem máximo).priorityintegerpadrão: 00.statusstringpadrão: activeactiveinactiveactive ou inactive. Se omitido, a regra nasce ativa.Exemplo de requisição
Resposta
Campos da resposta
iduuidnamestringrule_typestringpercentagefixedpercentage (taxa em pontos-base) ou fixed (valor fixo em centavos por item). O valor tiered aparece no modelo, mas nenhuma conta o aplica.vendor_iduuid | nullnull vale para todos os sellers.vendor_namestringvendor_id está preenchido.category_iduuid | nullnull vale para todas.rateintegerpercentage: pontos-base (1000 = 10%). Para fixed: centavos (500 = R$ 5,00).min_order_valueinteger0 = sem mínimo.max_order_valueinteger0 = sem máximo.priorityintegerstatusstringactiveinactiveactive ou inactive.created_atstringupdated_atstringErros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token ou token inválido | {"error":"missing authorization header"} |
| 403 | Sem o privilégio exigido, ou módulo desligado | {"error":"module_disabled","module":"commissions"} / {"error":"insufficient privileges","required":"manage_vendors"} |
| 400 | Corpo inválido, name vazio, rule_type diferente de percentage/fixed ou rate menor ou igual a zero | {"error":"rate is required and must be greater than zero"} |
| 500 | vendor_id ou category_id que não é UUID, ou falha ao gravar | {"error":"failed to create commission rule","detail":"..."} |
Alterar regra
Altera só os campos enviados (alteração parcial, apesar do PUT). Campos omitidos mantêm o valor atual.
/api/v1/admin/commission-rules/{id}AdminAltera uma regra de comissão
Autenticação: Authorization: Bearer <token> de um administrador com o privilégio view_vendors ou manage_vendors (as escritas exigem manage_vendors). O módulo commissions precisa estar ativo na loja; com o módulo desligado a resposta é 403.
Parâmetros de caminho
iduuidobrigatórioCorpo da requisição
Todos os campos são opcionais. Envie só o que quer mudar.
namestringrule_typestringpercentagefixedpercentage ou fixed. A atualização não valida este valor, então envie apenas um dos dois.rateintegerpercentage: pontos-base (1000 = 10%); fixed: centavos.vendor_iduuidcategory_iduuidmin_order_valueinteger0 significa sem mínimo.max_order_valueinteger0 significa sem máximo.priorityintegerstatusstringactiveinactiveactive ou inactive.Exemplo de requisição
Resposta
Campos da resposta
iduuidnamestringrule_typestringpercentagefixedpercentage (taxa em pontos-base) ou fixed (valor fixo em centavos por item). O valor tiered aparece no modelo, mas nenhuma conta o aplica.vendor_iduuid | nullnull vale para todos os sellers.vendor_namestringvendor_id está preenchido.category_iduuid | nullnull vale para todas.rateintegerpercentage: pontos-base (1000 = 10%). Para fixed: centavos (500 = R$ 5,00).min_order_valueinteger0 = sem mínimo.max_order_valueinteger0 = sem máximo.priorityintegerstatusstringactiveinactiveactive ou inactive.created_atstringupdated_atstringErros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token ou token inválido | {"error":"missing authorization header"} |
| 403 | Sem o privilégio exigido, ou módulo desligado | {"error":"module_disabled","module":"commissions"} / {"error":"insufficient privileges","required":"manage_vendors"} |
| 400 | Corpo inválido ou rate menor ou igual a zero | {"error":"rate is required and must be greater than zero"} |
| 500 | id que não é UUID, regra inexistente (o servidor não distingue) ou falha ao gravar | {"error":"failed to update commission rule","detail":"..."} |
Excluir regra
Remove a regra de vez. O histórico não é afetado: as entradas do razão já criadas continuam, apenas deixam de apontar para uma regra existente.
/api/v1/admin/commission-rules/{id}AdminExclui uma regra de comissão
Autenticação: Authorization: Bearer <token> de um administrador com o privilégio view_vendors ou manage_vendors (as escritas exigem manage_vendors). O módulo commissions precisa estar ativo na loja; com o módulo desligado a resposta é 403.
Parâmetros de caminho
iduuidobrigatórioExemplo de requisição
Resposta
Erros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token ou token inválido | {"error":"missing authorization header"} |
| 403 | Sem o privilégio exigido, ou módulo desligado | {"error":"module_disabled","module":"commissions"} / {"error":"insufficient privileges","required":"manage_vendors"} |
| 500 | Regra inexistente ou id que não é UUID (não há 404 nesta rota) | {"error":"failed to delete commission rule","detail":"commission rule not found: ..."} |