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

# Cobrar Assinatura

> Gera uma cobrança avulsa para uma assinatura existente

Cria uma cobrança pontual para uma assinatura já existente, usando o meio de
pagamento associado a ela. Útil para agendar uma parcela extra, regularizar uma
cobrança ou disparar manualmente o próximo ciclo em uma data específica.

## Parâmetros da Requisição

<ParamField path="subscription" type="string" required>
  UUID da assinatura que será cobrada.
</ParamField>

<ParamField body="billing_date" type="string" required>
  Data de cobrança no formato `Y-m-d`. Deve ser **posterior a amanhã**.

  **Exemplo:** `2026-07-01`
</ParamField>

<ParamField body="amount" type="integer" required>
  Valor da cobrança em centavos. **Mínimo:** `1`.

  **Exemplo:** `9990` (R\$ 99,90)
</ParamField>

<ParamField body="payment_reference" type="string" required>
  Referência única desta cobrança no seu sistema.

  **Máximo:** 255 caracteres
</ParamField>

## Exemplos de Requisição

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://pay.autorizou.dev/api/v1/subscriptions/295e3b31-1684-4355-8ee5-4bbf7b97589b/charge \
      -H "Authorization: Bearer 4eC39HqLyjWDarjtT1zdp7dc" \
      -H "Content-Type: application/json" \
      -d '{
          "billing_date": "2026-07-01",
          "amount": 9990,
          "payment_reference": "SUB-2026-07-001"
      }'
  ```

  ```javascript JavaScript theme={null}
  const result = await fetch(
    'https://pay.autorizou.dev/api/v1/subscriptions/295e3b31-1684-4355-8ee5-4bbf7b97589b/charge',
    {
      method: 'POST',
      headers: {
        'Authorization': 'Bearer 4eC39HqLyjWDarjtT1zdp7dc',
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        billing_date: '2026-07-01',
        amount: 9990,
        payment_reference: 'SUB-2026-07-001'
      })
    }
  );

  console.log('Cobrança criada:', await result.json());
  ```

  ```php PHP theme={null}
  <?php

  $data = [
      'billing_date' => '2026-07-01',
      'amount' => 9990,
      'payment_reference' => 'SUB-2026-07-001',
  ];

  $curl = curl_init();
  curl_setopt_array($curl, [
      CURLOPT_URL => 'https://pay.autorizou.dev/api/v1/subscriptions/295e3b31-1684-4355-8ee5-4bbf7b97589b/charge',
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_POST => true,
      CURLOPT_HTTPHEADER => [
          'Authorization: Bearer 4eC39HqLyjWDarjtT1zdp7dc',
          'Content-Type: application/json'
      ],
      CURLOPT_POSTFIELDS => json_encode($data)
  ]);

  $response = json_decode(curl_exec($curl), true);
  echo json_encode($response, JSON_PRETTY_PRINT);
  ?>
  ```
</CodeGroup>

## Exemplo de Resposta

```json theme={null}
{
  "payment_id": 8842,
  "payment_uuid": "a1b2c3d4-1684-4355-8ee5-4bbf7b97589b",
  "status": "scheduled",
  "billing_date": "2026-07-01",
  "amount": 9990
}
```

## Códigos de Erro

<AccordionGroup>
  <Accordion title="422 - Erro de validação" icon="circle-xmark">
    Dados inválidos — por exemplo, `billing_date` não posterior a amanhã ou
    `amount` menor que 1.

    ```json theme={null}
    {
        "message": "The billing date must be a date after tomorrow.",
        "errors": {
            "billing_date": ["The billing date must be a date after tomorrow."]
        }
    }
    ```
  </Accordion>
</AccordionGroup>
