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

# Update future transaction

> Override the amount or reschedule a specific upcoming payment within a recurring series.

`PUT /v1/payments/recurring/future-transactions/update/{terminal_friendly_id}`

Updates a single future transaction within a recurring series. You can override the charge amount for that specific occurrence, reschedule it to a different date, or both. Changes apply only to the targeted transaction - the rest of the series schedule is unaffected.

<Note>
  To change the default amount or schedule for all future payments in a series, use the [recurring update endpoint](/docs/api-reference/recurring/update) instead.
</Note>

<RequestExample>
  ```bash cURL theme={null}
  curl --request PUT \
    --url https://terminal.smartretry.com/v1/payments/recurring/future-transactions/update/ABC123 \
    --header 'Content-Type: application/json' \
    --header 'x-api-key: YOUR_API_KEY' \
    --data '{
      "future_transaction_id": "FT3D8E1C",
      "recurring_id": "RC9F4A2B",
      "amount": 24.99,
      "scheduled_date": "2026-05-15"
    }'
  ```

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

  response = requests.put(
      "https://terminal.smartretry.com/v1/payments/recurring/future-transactions/update/ABC123",
      headers={
          "Content-Type": "application/json",
          "x-api-key": "YOUR_API_KEY"
      },
      json={
          "future_transaction_id": "FT3D8E1C",
          "recurring_id": "RC9F4A2B",
          "amount": 24.99,
          "scheduled_date": "2026-05-15"
      }
  )

  print(response.json())
  ```

  ```javascript Node.js theme={null}
  const response = await fetch(
    "https://terminal.smartretry.com/v1/payments/recurring/future-transactions/update/ABC123",
    {
      method: "PUT",
      headers: {
        "Content-Type": "application/json",
        "x-api-key": "YOUR_API_KEY"
      },
      body: JSON.stringify({
        future_transaction_id: "FT3D8E1C",
        recurring_id: "RC9F4A2B",
        amount: 24.99,
        scheduled_date: "2026-05-15"
      })
    }
  );

  const data = await response.json();
  console.log(data);
  ```
</RequestExample>

## Path parameters

<ParamField path="terminal_friendly_id" type="string" required>
  Your 6-character terminal identifier.
</ParamField>

## Request body

<ParamField body="future_transaction_id" type="string" required>
  The 8-character identifier of the future transaction to update.
</ParamField>

<ParamField body="recurring_id" type="string" required>
  The 8-character identifier of the recurring series this future transaction belongs to.
</ParamField>

<ParamField body="amount" type="number">
  Override the charge amount for this specific occurrence only, in major currency units (e.g., `24.99` for \$24.99). Does not affect the default series amount or other future transactions.
</ParamField>

<ParamField body="scheduled_date" type="string">
  Reschedule this occurrence to a new date in `YYYY-MM-DD` format. Must be a future date. Does not shift subsequent payments - only this specific occurrence is moved.
</ParamField>

## Response

<ResponseField name="recurring_id" type="string">
  The identifier of the recurring series (8 characters).
</ResponseField>

<ResponseField name="future_transaction_id" type="string">
  The identifier of the updated future transaction (8 characters).
</ResponseField>

<ResponseField name="updated" type="boolean">
  `true` if the update was applied successfully.
</ResponseField>

```json Example response theme={null}
{
  "recurring_id": "RC9F4A2B",
  "future_transaction_id": "FT3D8E1C",
  "updated": true
}
```
