# Get an accounting summary

Source: https://docs.fiest.io/api/reference/get-accounting-summary
Canonical sandbox contract: https://docs.fiest.io/openapi.yaml

## GET /v1/restaurants/{restaurantId}/accounting-summary

Returns a reconciled accounting summary for an inclusive business-date range of at most 31 days. All monetary values use integer euro cents. Organization-boundary tokens also require fiest.organization.read.

## Authentication

Send an OAuth access token in the `Authorization` header as
`Bearer $FIEST_ACCESS_TOKEN`.

Required scopes: `fiest.restaurant.read`, `fiest.accounting.read`

## Quick request

```bash
curl --request GET \
  --url 'https://api-sandbox.fiest.io/v1/restaurants/11111111-1111-4111-8111-111111111111/accounting-summary?start_date=2026-07-01&end_date=2026-07-27' \
  --header 'Authorization: Bearer $FIEST_ACCESS_TOKEN'
```

## Parameters

| Name | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `restaurantId` | path | Yes | string (uuid) | A restaurant identifier returned by the authorized restaurant list. |
| `start_date` | query | Yes | string (date) | First restaurant business date, inclusive. |
| `end_date` | query | Yes | string (date) | Last restaurant business date, inclusive. It cannot be in the future, and the range may contain at most 31 days. |

## Success response

### 200 — The reconciled accounting summary.

```json
{
  "data": {
    "restaurantId": "11111111-1111-4111-8111-111111111111",
    "period": {
      "startDate": "2026-01-01",
      "endDate": "2026-01-31",
      "timeZone": "Europe/Helsinki",
      "dayStartHour": 4
    },
    "currency": "EUR",
    "totals": {
      "grossBeforeRefundsMinor": 4417630,
      "refundsMinor": 9630,
      "grossSalesMinor": 4408000,
      "netSalesMinor": 3769568,
      "vatMinor": 638432,
      "discountsMinor": 21400,
      "tipsMinor": 12800,
      "deferredGiftCardSalesMinor": 65000,
      "orderCount": 728,
      "paymentTransactionCount": 728
    },
    "paymentMethods": [
      {
        "key": "card",
        "label": "Card",
        "transactionCount": 459,
        "grossBeforeRefundsMinor": 2800000,
        "refundsMinor": 5000,
        "grossSalesMinor": 2795000,
        "netSalesMinor": 2390000,
        "vatMinor": 405000
      },
      {
        "key": "cash",
        "label": "Cash",
        "transactionCount": 132,
        "grossBeforeRefundsMinor": 800000,
        "refundsMinor": 1630,
        "grossSalesMinor": 798370,
        "netSalesMinor": 690000,
        "vatMinor": 108370
      },
      {
        "key": "online",
        "label": "Online",
        "transactionCount": 90,
        "grossBeforeRefundsMinor": 600000,
        "refundsMinor": 3000,
        "grossSalesMinor": 597000,
        "netSalesMinor": 510000,
        "vatMinor": 87000
      },
      {
        "key": "edenred",
        "label": "Edenred",
        "transactionCount": 47,
        "grossBeforeRefundsMinor": 217630,
        "refundsMinor": 0,
        "grossSalesMinor": 217630,
        "netSalesMinor": 179568,
        "vatMinor": 38062
      }
    ],
    "vatBreakdown": [
      {
        "category": "reduced",
        "label": "14%",
        "rateBasisPoints": 1400,
        "grossSalesMinor": 3200000,
        "netSalesMinor": 2807018,
        "vatMinor": 392982
      },
      {
        "category": "standard",
        "label": "25.5%",
        "rateBasisPoints": 2550,
        "grossSalesMinor": 1208000,
        "netSalesMinor": 962550,
        "vatMinor": 245450
      }
    ],
    "reconciliation": {
      "paymentGrossMinor": 4408000,
      "salesGrossMinor": 4408000,
      "differenceMinor": 0,
      "paymentVatMinor": 638432,
      "salesVatMinor": 638432,
      "vatDifferenceMinor": 0,
      "balanced": true,
      "exactTenderRefundsMinor": 9630,
      "proportionallyAllocatedRefundsMinor": 0,
      "unattributedPaymentGrossMinor": 0,
      "attributionComplete": true
    }
  }
}
```

## Error responses

### 400 — The request parameters are invalid.

```json
{
  "error": "invalid_request",
  "message": "The requested date range is invalid.",
  "request_id": "req_sandbox_invalid_request"
}
```

### 401 — The access token is missing, invalid, or expired.

```json
{
  "error": "invalid_token",
  "error_description": "The access token is invalid.",
  "request_id": "req_sandbox_invalid_token"
}
```

### 403 — The authorization has expired or does not include the required scope.

```json
{
  "error": "insufficient_scope",
  "error_description": "Restaurant and accounting read access are required.",
  "request_id": "req_sandbox_insufficient_scope"
}
```

### 404 — The restaurant does not exist or is outside the authorization.

```json
{
  "error": "not_found",
  "request_id": "req_sandbox_not_found"
}
```

### 429 — The partner request limit has been exceeded.

```json
{
  "error": "rate_limited",
  "request_id": "req_sandbox_rate_limited"
}
```

### 503 — The API or one of its required services is unavailable.

```json
{
  "error": "service_unavailable",
  "request_id": "req_sandbox_service_unavailable"
}
```

## Related

- [Quick start](https://docs.fiest.io/api/quickstart)
- [Stable API errors](https://docs.fiest.io/api/reference/errors)
- [Download the OpenAPI 3.1 YAML contract](https://docs.fiest.io/openapi.yaml)
- [Authorize a Partner API connection](https://docs.fiest.io/api/quickstart)