# Get future charges

`GET https://app.shuttleglobal.com/c/api/instances/{instance_key}/contracts/{contract_id}/future_charges`

Lists projected future charges for a recurring (frequency-based) contract — up to 3 years
or 100 charges ahead. For contracts created with explicit scheduled charges, use
[List contract charges](/merchants/reference/operations/listcontractcharges/) instead, which returns the
concrete charges that were created upfront.

## Authentication

- basicAuth: Basic Authentication using secret key
- bearerAuth: OAuth 2.0 Bearer Token Authentication

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `contract_id` | path | string | yes | The contract's ID (`co_...`), or the `alt_key` you gave it. |

## Responses

### 200: List of future charges

```json
{
  "charges": [
    {
      "id": "string",
      "amount": "string",
      "alt_key": "string",
      "charge_number": 0,
      "extra_charge": true,
      "completed": "2026-01-01T12:00:00Z",
      "contract": "string",
      "created": "2026-01-01T12:00:00Z",
      "created_session": "string",
      "due": "2026-01-01T12:00:00Z",
      "initiated": "2026-01-01T12:00:00Z",
      "outstanding_amount": "string",
      "overdue_amount": "string",
      "recurring": true,
      "paid_amount": "string",
      "status": "ACTIVE",
      "updated": "2026-01-01T12:00:00Z",
      "updated_session": "string",
      "writtenoff_amount": "string",
      "v": 0
    }
  ]
}
```

### 400: Bad request

```json
{
  "code": "string",
  "message": "string"
}
```

### 401: Unauthorised: the API key is missing or not valid

```json
{
  "code": "UNAUTHORIZED",
  "message": "Unauthorised"
}
```

## Example request

```sh
curl --request GET \
  --url https://app.shuttleglobal.com/c/api/instances/YOUR_INSTANCE_KEY/contracts/CONTRACT_ID/future_charges \
  --header 'Authorization: Basic <base64 of SECRET_KEY:>'
```

Reference page: https://docs.shuttleglobal.com/merchants/reference/operations/getfuturecharges/