Skip to content
innovorder
⌘K

Integration path

Integration Guide: Accounting

System map · Accounting export
Orders
Incremental sync
Accounting

This guide details how to retrieve aggregated financial and treasury data from the Innovorder platform for accounting purposes. There are three primary methods depending on your needs: retrieving a consolidated report (recommended), batching individual orders, or listening to real-time webhooks.

1. Authentication

As with all integrations, you must first authenticate using your Service Account credentials.

POST/oauth/loginGet Access Token

Authenticate using your service account credentials. The access token is valid for 24 hours (14 days when rememberMe is true); when it expires the API responds with a 401 error (token_expired) and you must authenticate again.

Request Body

json
{
  "username": "service.account@brand.com",
  "password": "YOUR_SECURE_PASSWORD",
  "grant_type": "password"
}
Request Body Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
usernamestring"service.account@brand.com"The username value.
passwordstring"YOUR_SECURE_PASSWORD"The password value.
grant_typestring"password"The grant type value.

Response

json
{
  "access_token": "eyJhbGciOiJIUzI1...",
  "status": 201,
  "code": "token_created",
  "message": "You have successfully logged in.",
  "data": {
    "user": {
      "userId": 1,
      "email": "service.account@brand.com",
      "role": "brand",
      "brandId": 100
    }
  },
  "token_type": "Bearer"
}
Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
access_tokenstring"eyJhbGciOiJIUzI1..."The access token value.
statusinteger201HTTP status code returned by the API.
codestring"token_created"Machine-readable application code for the result.
messagestring"You have successfully logged in."Human-readable result message. Do not use this value for program logic.
dataobject{…}Endpoint-specific response payload.
data.userobject{…}Object containing user fields.
data.user.userIdinteger1Identifier of the user.
data.user.emailstring"service.account@brand.com"Email address.
data.user.rolestring"brand"The role value.
data.user.brandIdinteger100Identifier of the brand.
token_typestring"Bearer"The token type value.

2. Retrieve Consolidated Treasury Report

The ATLAS Innovorder Data Platform provides a specialized endpoint to get a flat, JSON-formatted treasury report. This is the most efficient way to get accounting data for a specific period.

Base URLhttps://io-data-platform-prod-9666874309.europe-west1.run.app

GET/reports/treasuryGet Treasury Report

Retrieve consolidated treasury and revenue data for a given period.

Parameters

NameTypeRequiredDescription
startDatestringYesStart date (YYYY-MM-DD).
endDatestringYesEnd date (YYYY-MM-DD).
brandIdstringNoFilter by Brand ID.
exportJsonbooleanYesMust be true to get JSON format.

Response

json
{
  "metadata": {
    "period": {
      "startDate": "2025-09-01",
      "endDate": "2025-09-30"
    },
    "filters": {
      "brandId": "1760",
      "brandName": "INRAE IDF - NEWREST"
    },
    "generatedAt": "2025-11-18T14:24:30.140Z"
  },
  "walletBalances": {
    "beginningBalance": 4351752,
    "endingBalance": 4580504
  },
  "treasury": [
    {
      "operationType": "cashPayments",
      "guestPaymentType": "CASH",
      "count": 29,
      "amount": 14043
    },
    {
      "operationType": "creditCard",
      "guestPaymentType": "PREPAYMENT",
      "count": 1857,
      "amount": 6012834
    }
  ],
  "revenue": [
    {
      "category": "entranceFees",
      "label": "Admission",
      "guestPaymentType": "PREPAYMENT",
      "vatRate": 1000,
      "count": 16662,
      "amountExclTax": 601891,
      "amountTax": 60189,
      "amountInclTax": 662080
    }
  ]
}
Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
metadataobject{…}Additional metadata supplied with the response.
metadata.periodobject{…}Object containing period fields.
metadata.period.startDatestring"2025-09-01"Date or timestamp for start.
metadata.period.endDatestring"2025-09-30"Date or timestamp for end.
metadata.filtersobject{…}Object containing filters fields.
metadata.filters.brandIdstring"1760"Identifier of the brand.
metadata.filters.brandNamestring"INRAE IDF - NEWREST"The brand name value.
metadata.generatedAtstring"2025-11-18T14:24:30.140Z"Date or timestamp for generated.
walletBalancesobject{…}Object containing wallet balances fields.
walletBalances.beginningBalanceinteger4351752The beginning balance value.
walletBalances.endingBalanceinteger4580504The ending balance value.
treasuryarray[…]List of treasury entries.
treasury[]object{…}Object containing treasury fields.
treasury[].operationTypestring"cashPayments"The operation type value.
treasury[].guestPaymentTypestring"CASH"The guest payment type value.
treasury[].countinteger29Total number of matching records.
treasury[].amountinteger14043The amount value.
revenuearray[…]List of revenue entries.
revenue[]object{…}Object containing revenue fields.
revenue[].categorystring"entranceFees"The category value.
revenue[].labelstring"Admission"The label value.
revenue[].guestPaymentTypestring"PREPAYMENT"The guest payment type value.
revenue[].vatRateinteger1000The vat rate value.
revenue[].countinteger16662Total number of matching records.
revenue[].amountExclTaxinteger601891The amount excl tax value.
revenue[].amountTaxinteger60189The amount tax value.
revenue[].amountInclTaxinteger662080The amount incl tax value.

Response Data Dictionary

Wallet Balances

Global E-Wallet balance snapshot for the period. Note: Filtering by restaurant is not yet supported for this specific field.

FieldDescription
beginningBalanceTotal balance in cents at the start of the period.
endingBalanceTotal balance in cents at the end of the period.
Treasury (Payments)

Breakdown of all financial flows (in/out).

FieldDescription
operationTypeThe payment method or operation. E.g., cashPayments, creditCard, refundCash.
guestPaymentTypeClassification of the payment:
  • CASH: Payment at the POS/Kiosk.
  • PREPAYMENT: Use of E-Wallet funds (or Reload).
  • POSTPAYMENT: Paid later (invoice).
amountTotal value in cents.
Revenue (Sales)

Breakdown of what was sold (Items, Admissions, Grants).

FieldDescription
categoryMain category: entranceFees, items, grants, discounts.
vatRateVAT rate in basis points (1000 = 10%).
amountExclTaxAmount excluding tax (HT) in cents.
amountTaxTax amount (TVA) in cents.
amountInclTaxTotal amount including tax (TTC) in cents.

3. Alternative Integration Methods

Method A: Order Batching

Use the GET /v1/orders endpoint to retrieve individual orders for a day and aggregate them on your side.

  • Pros: Highest granularity (line items, customer details).
  • Cons: Requires heavy pagination and data processing.

Method B: Real-time Webhooks

Subscribe to orders.paid webhook events to receive transaction data instantly as it happens.

  • Pros: Real-time updates, event-driven.
  • Cons: Requires robust infrastructure to handle retries and potential downtime.