# Billings

Throughout a subscription’s cycle, the vendor can perform an unlimited number of billings as long their total sum doesn’t exceed the maximum allowance set by the user. Billings can be triggered from the webapp or the 8Pay Javascript SDK.

Billings can fail if the subscriber hasn’t got enough funds on his wallet, hasn’t enabled the token or his spending limit fo the token is too low. They can be retried at a later time.

## Get billings of a plan

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

#### 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                                           |
| ----------- | ------ | ----------------------------------------------------- |
| triggeredBy | string | filter by the user who triggered the billing          |
| from        | number | filter by `timestamp` (default 0)                     |
| to          | number | filter by `timestamp` (default current timestamp)     |
| sort        | string | `asc` or `desc` based on `timestamp` (default `desc`) |

#### Headers

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

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

```
{
    "data": [
        {
            "subscriptionId": "0xe63ba761797e289076f80a7c0916a31740684806aaf507da85f81ee785fec6ba",
            "success": 1,
            "amount": "10",
            "fee": "0.001",
            "token": "8PAY",
            "receiver": "0x5A4278004294D3C8Ba351c2533951A79EE48D9b8",
            "timestamp": 1571646052,
            "triggeredBy": "0xe42fD8a58A82fDF624A8a94dA03a0e44F9934Dff",
            "transactionHash": "0xbb97a142aed61a7027b0a030f3c0ab7e1b39bb776201752829d96d562ed49782",
            "transactionStatus": "confirmed"
        }
    ],
    "limit": 100,
    "offset": 0,
    "total": 1
}
```

{% endtab %}
{% endtabs %}

## Get billings of a subscription

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

#### Path Parameters

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

#### Query Parameters

| Name | Type   | Description                                           |
| ---- | ------ | ----------------------------------------------------- |
| from | number | filter by `timestamp` (default 0)                     |
| to   | number | filter by `timestamp` (default current timestamp)     |
| sort | string | `asc` or `desc` based on `timestamp` (default `desc`) |

#### Headers

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

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

```
{
    "data": [
        {
            "subscriptionId": "0xe63ba761797e289076f80a7c0916a31740684806aaf507da85f81ee785fec6ba",
            "success": 1,
            "amount": "10",
            "fee": "0.001",
            "token": "8PAY",
            "receiver": "0x5A4278004294D3C8Ba351c2533951A79EE48D9b8",
            "timestamp": 1571646052,
            "triggeredBy": "0xe42fD8a58A82fDF624A8a94dA03a0e44F9934Dff",
            "transactionHash": "0xbb97a142aed61a7027b0a030f3c0ab7e1b39bb776201752829d96d562ed49782",
            "transactionStatus": "confirmed"
        }
    ],
    "limit": 100,
    "offset": 0,
    "total": 1
}
```

{% endtab %}
{% endtabs %}
