# Subscriptions

Subscriptions allow you to charge customers on a recurring basis. Customers can subscribe through 8Pay’s hosted checkout pages that can be reached by embedded buttons, short urls and QR codes.

Subscriptions can be in two different statuses:

* **`ACTIVE`**: user can be charged for its usage
* **`CANCELLED`**: the subscription was cancelled by the user
* **`TERMINATED`**: the subscription was terminated by the vendor

## Get a list of subscriptions

<mark style="color:blue;">`GET`</mark> `https://api.8pay.network/v1/:chain/on-demand/subscriptions`

#### Path Parameters

| Name  | Type   | Description                                                   |
| ----- | ------ | ------------------------------------------------------------- |
| chain | string | [chain identifier](https://docs.8pay.network/overview#chains) |

#### Query Parameters

| Name   | Type   | Description                                                                  |
| ------ | ------ | ---------------------------------------------------------------------------- |
| user   | string | filter by user                                                               |
| status | string | filter by status (`ACTIVE`, `CANCELLED` or `TERMINATED`)                     |
| from   | number | filter by `subscribedAt` (default 0)                                         |
| to     | number | filter by `subscribedAt` (default current timestamp)                         |
| sortBy | string | order by `subscribedAt`, `cycleStart` or `cycleEnd` (default `subscribedAt`) |
| sort   | string | `asc` or `desc` (default `desc`), sort based on `sortBy` query parameter     |

#### Headers

| Name          | Type   | Description       |
| ------------- | ------ | ----------------- |
| Authorization | string | Bearer \<api-key> |

{% tabs %}
{% tab title="200 " %}

```
{
    "data": [
        {
            "id": "0xe63ba761797e289076f80a7c0916a31740684806aaf507da85f81ee785fec6ba",
            "user": "0x16F37b6c96C7038f3E4CDd7aAF9c9A8EC49c4EE7",
            "planId": "0x57b2059e526841b3dfd964144513359c9fcfd6d91040b6c47f589c1e032b6bf7",
            "status": "ACTIVE",
            "subscribedAt": 1571646052,
            "allowance": "5",
            "cycleUsage": "1.2",
            "cycleStart": 1571646052,
            "cycleEnd": 1574238052,
            "transactionHash": "0xbb97a142aed61a7027b0a030f3c0ab7e1b39bb776201752829d96d562ed49782",
            "transactionStatus": "confirmed"
        }
    ],
    "limit": 100,
    "offset": 0,
    "total": 1
}
```

{% endtab %}
{% endtabs %}

## Get subscriptions of a plan

<mark style="color:blue;">`GET`</mark> `https://api.8pay.network/v1/:chain/on-demand/plans/:planId/subscriptions`

#### Path Parameters

| Name   | Type   | Description                                                   |
| ------ | ------ | ------------------------------------------------------------- |
| planId | string | ID of the plan                                                |
| chain  | string | [chain identifier](https://docs.8pay.network/overview#chains) |

#### Query Parameters

| Name   | Type   | Description                                                                  |
| ------ | ------ | ---------------------------------------------------------------------------- |
| user   | string | filter by user                                                               |
| status | string | filter by status (`ACTIVE`, `CANCELLED` or `TERMINATED`)                     |
| from   | number | filter by `subscribedAt` (default 0)                                         |
| to     | number | filter by `subscribedAt` (default current timestamp)                         |
| sortBy | string | order by `subscribedAt`, `cycleStart` or `cycleEnd` (default `subscribedAt`) |
| sort   | string | `asc` or `desc` (default `desc`), sort based on `sortBy` query parameter     |

#### Headers

| Name          | Type   | Description       |
| ------------- | ------ | ----------------- |
| Authorization | string | Bearer \<api-key> |

{% tabs %}
{% tab title="200 " %}

```
{
    "data": [
        {
            "id": "0xe63ba761797e289076f80a7c0916a31740684806aaf507da85f81ee785fec6ba",
            "user": "0x16F37b6c96C7038f3E4CDd7aAF9c9A8EC49c4EE7",
            "planId": "0x57b2059e526841b3dfd964144513359c9fcfd6d91040b6c47f589c1e032b6bf7",
            "status": "ACTIVE",
            "subscribedAt": 1571646052,
            "allowance": "5",
            "cycleUsage": "1.2",
            "cycleStart": 1571646052,
            "cycleEnd": 1574238052,
            "transactionHash": "0xbb97a142aed61a7027b0a030f3c0ab7e1b39bb776201752829d96d562ed49782",
            "transactionStatus": "confirmed"
        }
    ],
    "limit": 100,
    "offset": 0,
    "total": 1
}
```

{% endtab %}
{% endtabs %}

## Get a subscription

<mark style="color:blue;">`GET`</mark> `https://api.8pay.network/v1/bsc/on-demand/subscriptions/:subscriptionId`

#### Path Parameters

| Name           | Type   | Description                                                   |
| -------------- | ------ | ------------------------------------------------------------- |
| subscriptionId | string | ID of the subscription                                        |
| chain          | string | [chain identifier](https://docs.8pay.network/overview#chains) |

#### Headers

| Name          | Type   | Description       |
| ------------- | ------ | ----------------- |
| Authorization | string | Bearer \<api-key> |

{% tabs %}
{% tab title="200 " %}

```
{
    "id": "0xe63ba761797e289076f80a7c0916a31740684806aaf507da85f81ee785fec6ba",
    "user": "0x16F37b6c96C7038f3E4CDd7aAF9c9A8EC49c4EE7",
    "planId": "0x57b2059e526841b3dfd964144513359c9fcfd6d91040b6c47f589c1e032b6bf7",
    "status": "ACTIVE",
    "subscribedAt": 1571646052,
    "allowance": "5",
    "cycleUsage": "1.2",
    "cycleStart": 1571646052,
    "cycleEnd": 1574238052,
    "transactionHash": "0xbb97a142aed61a7027b0a030f3c0ab7e1b39bb776201752829d96d562ed49782",
    "transactionStatus": "confirmed"
}
```

{% endtab %}
{% endtabs %}
