> ## Documentation Index
> Fetch the complete documentation index at: https://docs.upaybr.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Criar plano

> Crie um plano de assinatura recorrente via API

## Endpoint

```
POST /api/subscriptions/plans
```

**Autenticação**: API Key (`Authorization: Bearer SUA_API_KEY`)

## Corpo da requisição

| Campo            | Tipo      | Obrigatório | Descrição                                        |
| ---------------- | --------- | ----------- | ------------------------------------------------ |
| `name`           | `string`  | ✅           | Nome do plano exibido ao assinante               |
| `amountCents`    | `integer` | ✅           | Valor em centavos (mínimo 500 = R\$ 5,00)        |
| `interval`       | `string`  | ✅           | `MONTHLY`, `QUARTERLY`, `SEMIANNUAL` ou `ANNUAL` |
| `description`    | `string`  |             | Descrição opcional do plano                      |
| `trialDays`      | `integer` |             | Dias de período de trial gratuito                |
| `maxSubscribers` | `integer` |             | Limite de assinantes (`null` = ilimitado)        |

## Exemplo

```bash theme={null}
curl --request POST \
  --url https://upay-sistema-api.onrender.com/api/subscriptions/plans \
  --header 'Authorization: Bearer SUA_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "name": "Plano Mensal Premium",
    "description": "Acesso completo com suporte prioritário",
    "amountCents": 9900,
    "interval": "MONTHLY",
    "trialDays": 7
  }'
```

<CodeGroup>
  ```javascript Node.js theme={null}
  const response = await fetch('https://upay-sistema-api.onrender.com/api/subscriptions/plans', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${process.env.UPAY_API_KEY}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      name: 'Plano Mensal Premium',
      description: 'Acesso completo com suporte prioritário',
      amountCents: 9900,
      interval: 'MONTHLY',
      trialDays: 7,
    }),
  });
  const { data } = await response.json();
  ```

  ```python Python theme={null}
  import os, requests

  response = requests.post(
      'https://upay-sistema-api.onrender.com/api/subscriptions/plans',
      headers={'Authorization': f'Bearer {os.getenv("UPAY_API_KEY")}'},
      json={
          'name': 'Plano Mensal Premium',
          'amountCents': 9900,
          'interval': 'MONTHLY',
          'trialDays': 7,
      },
  )
  plan = response.json()['data']
  ```
</CodeGroup>

## Resposta de sucesso (`201 Created`)

```json theme={null}
{
  "success": true,
  "data": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "Plano Mensal Premium",
    "description": "Acesso completo com suporte prioritário",
    "amountCents": 9900,
    "interval": "MONTHLY",
    "trialDays": 7,
    "maxSubscribers": null,
    "active": true,
    "createdAt": "2026-05-25T00:00:00.000Z"
  }
}
```

## Próximos passos

<CardGroup cols={2}>
  <Card title="Listar planos" icon="list" href="./list-plans">
    Consulte todos os planos criados.
  </Card>

  <Card title="Checkout público" icon="cart-shopping" href="./checkout">
    Inscreva seu primeiro cliente.
  </Card>
</CardGroup>
