Aller au contenu

Cria ou executa subscriptions

POST/api/subscription-groups

Auth
Jeton requis
Qui peut l’appeler:
owner
admin
SuperAdmin
Clé d’API:
store:write
X-CommunityId
X-CommunityId Envoyez le X-CommunityId de la communauté où l’opération a lieu.
Les descriptions des endpoints viennent directement de la spécification de l’API et sont en portugais pour l’instant. L’interface autour est traduite.

Cria um grupo de assinatura. Exige owner, admin ou SuperAdmin. A comunidade é a do X-CommunityId. productIds precisam ser produtos não excluídos dessa comunidade. slug é o endereço do plano nos links públicos (/pricing/<slug>/...): sem ele, é gerado do nome (sem acento, minúsculo, hífens; -2, -3 em caso de colisão). slug enviado e já usado por outro plano da comunidade, ativo ou não, responde 400 com param slug. visibility é public (padrão: aparece na Loja, na página de planos, no seletor da vitrine e no MCP) ou link_only (Somente com link: não aparece em listagem nenhuma e abre só por /pricing/<slug>, via GET /api/checkout/subscription-groups/{slug}); valor fora desses dois responde 400 com param visibility. A resposta traz visibility. Responde 201.

En-têtes

NomTypeDescription
X-CommunityIdfacultatifstring (uuid)ID da comunidade em que a operação acontece. Obrigatório na maioria dos endpoints com escopo de comunidade.

Corps de la requête application/json

NomTypeDescription
nameobligatoirestringName is required
slugfacultatifstringEndereço do plano nos links públicos. Opcional; sem ele, é gerado do nome. Único na comunidade. · max 60
descriptionfacultatifstring
sortOrderfacultatifinteger
metadatafacultatifobject
visibilityfacultatifpublic | link_only`public` (padrão) ou `link_only` (Somente com link).
monthlyCreditsfacultatifintegerCréditos que cada assinatura viva (ACTIVE ou TRIALING) do plano recebe por mês de calendário, válidos até a virada do mês no fuso da comunidade (plano anual também concede por mês). Concedido pelo reconciliador horário e na ativação, uma vez por mês; troca de plano concede só a diferença positiva; PAST_DUE e PAUSED não recebem; cancelamento imediato ou reembolso revoga o que não foi usado. Valor acima de 0 exige um space de Reservas ou de Agendamento na comunidade, senão 403 (`param = monthlyCredits`); inteiro fora de 0 a 10000: 400. Padrão 0. A resposta do plano traz `monthlyCredits`. · ≥ 0, ≤ 10000
productIdsfacultatif—[]productIds must be an array
productIds.*facultatifstring (uuid)Each productId must be a valid UUID
addOnProductIdsfacultatifstring (uuid)[]Adicionais do plano: produtos que podem ser somados a ele. Grava em product_prerequisites, a mesma relação do prerequisiteGroupIds do produto, vista do plano. Omitido mantém a lista; [] limpa. Cada produto precisa ser desta comunidade, não excluído e não ser opção de nenhum plano, senão 400 com param addOnProductIds. Só os SUBSCRIPTION MONTHLY são vendidos junto com o plano; os outros valem como pré-requisito de compra.
includedProductIdsfacultatifstring (uuid)[]Produtos que o plano inclui sem custo extra (curso, evento, digital...). Quem tem assinatura ativa do plano tem o produto, sem comprá-lo. Substitui a lista; omitido mantém, [] limpa. Produto de outra comunidade, excluído ou opção de plano: 400 com param includedProductIds. A resposta do plano traz includedProductIds. Também se configura pelo produto (includedInPlanIds).

Réponses

StatutDescription
201Operação realizada com sucesso.
400Requisição inválida — falha de validação.
401Token ausente, inválido ou expirado; token de outra comunidade (o `X-CommunityId` ou o `communityId` do corpo não é o do token); token antigo ou de uma sessão encerrada (troca de senha, convite aceito). Nesses casos a mensagem pede para entrar de novo (`auth.signInAgain`).
403Autenticado, mas sem permissão para esta operação.
404Recurso não encontrado.
500Erro interno do servidor.

Exemple curl

curl -X POST "https://api.memberfy.net/api/subscription-groups" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-CommunityId: $COMMUNITY_ID" \
  -H "Content-Type: application/json" \
  -d '{"name":"string"}'