Pular para o conteúdo

Soma um adicional ao plano em andamento

POST/api/subscriptions/{id}/add-ons

Auth
Exige token
X-CommunityId
X-CommunityId Envie o X-CommunityId da comunidade em que a operação acontece.

F-37. Cobra agora o proporcional da cotação (`/add-ons/quote`, mesmas regras e recusas) num pedido separado, e cria a assinatura do adicional ligada à do plano (`billedWithId`), com as datas do plano: a partir da próxima cobrança ele vem no mesmo pedido que o plano. Com o piso (`floorApplied`), nada é cobrado e o adicional já nasce ligado (`charged = false`). Pagamento: `paymentMethod` (obrigatório quando há valor a cobrar, senão 400 com `param = paymentMethod`) entre os aceitos pela opção do plano; `installments` até o `maxInstallments` da cotação, só no cartão; cartão salvo por `paymentMethodId` (do próprio membro, senão 404) ou cartão novo por `cardToken`; PIX e boleto devolvem `pixCode`/`qrCode` ou `boletoUrl`/`boletoBarcode`, e o adicional nasce quando o pagamento é confirmado. Cartão salvo aprovado na hora já devolve `subscriptionId` e `status = COMPLETED`; senão `status = PROCESSING`. Recusa do provedor responde 402, provedor fora do ar 502, como no checkout. Responde 201. Como no checkout, 403 (`param = id`) quando a comunidade não tem informações comerciais `APPROVED`, antes de cotar ou cobrar. Vale também para aceitar uma oferta de downsell, que compra o adicional por este mesmo caminho.

Parâmetros

NomeOndeTipoDescrição
idobrigatóriopathstring (uuid)

Headers

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

Corpo da requisição application/json

NomeTipoDescrição
productIdobrigatóriostring (uuid)O adicional
paymentMethodopcionalCREDIT_CARD | DEBIT_CARD | PIX | BOLETO
installmentsopcionalinteger≥ 1, ≤ 12
cardTokenopcionalstringCartão novo, tokenizado no app
paymentMethodIdopcionalstring (uuid)Cartão salvo do membro (/payment-methods)
customerDataopcionalobjectNome, e-mail, documento e telefone do pagador, como no checkout

Respostas

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

Exemplo com curl

curl -X POST "https://api.memberfy.net/api/subscriptions/<id>/add-ons" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-CommunityId: $COMMUNITY_ID" \
  -H "Content-Type: application/json" \
  -d '{"productId":"00000000-0000-0000-0000-000000000000"}'