Saltar al contenido

Cria ou executa products

POST/api/products

Auth
Requiere token
Quién puede:
owner
admin
X-CommunityId
X-CommunityId Envía el X-CommunityId de la comunidad en la que ocurre la operación.
Las descripciones de los endpoints vienen de la especificación de la API y, por ahora, están en portugués. La interfaz alrededor está traducida.

Owner ou admin. Aceita, entre os demais campos, `directLinkEnabled` (boolean opcional, padrão `false`): com ele ligado, um produto avulso (`ONE_TIME` ou `INSTALLMENT`) pode ser comprado por link direto e aparece em `GET /checkout/products`. Desligado, só é comprável por quem enxerga um space Loja (`storefront`) que o mostra. Assinaturas ignoram a flag. `prerequisiteGroupIds` (array de UUID opcional) torna o produto um adicional: ele só aparece nas listagens públicas e só é vendido a quem tem assinatura ACTIVE ou TRIALING num desses grupos, e a assinatura do adicional acompanha a do plano. Os grupos precisam ser da comunidade (senão 400, `param = prerequisiteGroupIds`) e não podem incluir um grupo em `subscriptionGroupIds` (400). A resposta traz `prerequisiteGroupIds`. **Obsoleto na escrita (F-37):** a lista agora é escrita pelo plano (`addOnProductIds` em `POST`/`PUT /subscription-groups`), sobre a mesma relação. Este campo continua aceito e gravando, e continua nas respostas. `commitmentMonths` (inteiro de 1 a 36, ou `null`) é a duração do contrato (fidelidade, F-35): só vale para `SUBSCRIPTION` com `billingInterval` `MONTHLY` (senão 400, `param = commitmentMonths`); `null` ou ausente = sem contrato. A resposta traz `commitmentMonths`. `installmentInterestPayer` (`BUYER`, o padrão, ou `ORGANIZATION`; F-43) diz quem paga os juros de parcelamento da Memberfy no cartão: `BUYER` soma ao preço, `ORGANIZATION` cobra o preço e desconta da comunidade. A resposta traz o campo. **Rascunho sem aprovação (2026-10-06):** criar não exige mais informações comerciais aprovadas. O produto nasce sempre `DRAFT`, e a moeda (`currency` na resposta) sai do país das informações comerciais em qualquer status (`PENDING`, `IN_REVIEW`, `REJECTED` ou `APPROVED`); sem informações comerciais, `BRL`. O que exige aprovação é publicar (`POST .../publish` ou `PUT` com `status: ACTIVE`).

Headers

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

Cuerpo de la solicitud application/json

La especificación no declara los campos de este cuerpo (una subida multipart, por ejemplo). Consulta la guía del tema.

Respuestas

CódigoDescripción
201Operação realizada com sucesso.
400Requisição inválida — falha de validação.
401Token ausente, inválido ou expirado.
403Autenticado, mas sem permissão para esta operação.
404Recurso não encontrado.
500Erro interno do servidor.

Ejemplo con curl

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