Panion Docs

Reference

Sales

Sales per day and channel, for your own reporting.

GET /api/v1/sales

Sales per day and channel.

Daily totals for a date range: Panion sales by booking date per operator, and every other channel from your booking system, for every operator on the key or the one in partner_id.

Scope: finance:read.

Query parameters:

  • from (string, YYYY-MM-DD): First day (YYYY-MM-DD).
  • to (string, YYYY-MM-DD): Last day, inclusive (YYYY-MM-DD). At most 366 days.
  • currency (one of EUR, NOK, optional, default "NOK"): Currency for other-channel figures.
  • partner_id (string, optional): Only this operator: one of the key's operators (see GET /api/v1/me). Any other id answers 404. Omit for every operator on the key.

Response fields (200):

  • from (string, YYYY-MM-DD)
  • to (string, YYYY-MM-DD)
  • panion (object): Sales made through Panion (by booking date), in booking currency, one row per day, currency and operator.
    • days (array)
      • each item:
        • date (string, YYYY-MM-DD)
        • revenue_minor (integer): Integer minor units (øre, cents).
        • bookings (integer)
        • currency (string): ISO 4217 code.
        • partner (object): The operator a row belongs to: one of the key's operators (the tour's operator for a booking).
          • id (string)
          • name (string)
    • totals (array)
      • each item:
        • currency (string): ISO 4217 code.
        • partner (object): The operator a row belongs to: one of the key's operators (the tour's operator for a booking).
          • id (string)
          • name (string)
        • revenue_minor (integer): Integer minor units (øre, cents).
        • bookings (integer)
  • other_channels (object): Every other channel from your booking system (OTAs, desk, ...), converted.
    • currency (string): ISO 4217 code.
    • partners (array): The operators these figures cover. Operators sharing one booking system account are counted once, not once per operator.
      • each item:
        • id (string)
        • name (string)
    • available (boolean): False when the figures could not be read.
    • days (array)
      • each item:
        • date (string, YYYY-MM-DD)
        • revenue_minor (integer): Integer minor units (øre, cents).
        • bookings (integer)
    • channels (array)
      • each item:
        • label (string)
        • revenue_minor (integer): Integer minor units (øre, cents).
        • bookings (integer)
        • participants (integer)
    • totals (object)
      • revenue_minor (integer): Integer minor units (øre, cents).
      • bookings (integer)
      • participants (integer)

Example: One day

curl "https://www.panion.travel/api/v1/sales?from=2026-11-01&to=2026-11-01&currency=NOK" \
  -H "Authorization: Bearer $PANION_API_KEY"
{
  "from": "2026-11-01",
  "to": "2026-11-01",
  "panion": {
    "days": [
      {
        "date": "2026-11-01",
        "revenue_minor": 359800,
        "bookings": 1,
        "currency": "NOK",
        "partner": {
          "id": "2b7e1516-28ae-4d2a-9f15-88094f3c4f3c",
          "name": "Arctic Tours"
        }
      }
    ],
    "totals": [
      {
        "currency": "NOK",
        "revenue_minor": 359800,
        "bookings": 1,
        "partner": {
          "id": "2b7e1516-28ae-4d2a-9f15-88094f3c4f3c",
          "name": "Arctic Tours"
        }
      }
    ]
  },
  "other_channels": {
    "currency": "NOK",
    "partners": [
      {
        "id": "2b7e1516-28ae-4d2a-9f15-88094f3c4f3c",
        "name": "Arctic Tours"
      }
    ],
    "available": true,
    "days": [
      {
        "date": "2026-11-01",
        "revenue_minor": 539700,
        "bookings": 2
      }
    ],
    "channels": [
      {
        "label": "Desk",
        "revenue_minor": 539700,
        "bookings": 2,
        "participants": 3
      }
    ],
    "totals": {
      "revenue_minor": 539700,
      "bookings": 2,
      "participants": 3
    }
  }
}

Responses:

  • 200: OK
  • 400: Invalid request
  • 401: Missing, invalid, expired or revoked key
  • 403: The key lacks the scope
  • 429: Rate limited (300 requests per minute per key)

On this page