accounting-api

List names of stuff from the VIS budget

View readme on GitLab

accounting.proto

syntax = "proto3";
package accounting;

// An API key must be provided in an "authorization" header in GRPC metadata.

service Accounting {
  // ListProjectAccounts returns a list of ProjectAccounts in no specific order.
  rpc ListProjectAccounts(ListProjectAccountsRequest)
      returns (stream ProjectAccount);
}

message ListProjectAccountsRequest {}

// A ProjectAccount describes an account combined with a project.
// This object is at the granularity that most non-accounting-focused tools
// should use for dealing with accounting concepts. See the descriptions of
// each field for more information.
message ProjectAccount {
  // opaque_key uniquely identifies a ProjectAccount. It should not be parsed.
  // It could be up to 1024 characters long.
  string opaque_key = 1;

  // A single cost center (Kostenstelle) corresponds to a single colored group
  // in the VIS budget. Examples are "Büro und Aufenthaltsraum" or "FKK". Cost
  // centers contain projects.
  int32 cost_center_id = 2;
  string cost_center_display_name = 3;

  // A project (Projekt) corresponds to a single row in the VIS budget.
  // Examples are "Kaffee-Maschine 3.0" or "VISKAS".
  // Projects are contained in cost centers.
  // Note that on the VIS budget, project IDs start with "x" (eg. "x206"). The
  // project ID returned by this API only includes the number without "x".
  int32 project_id = 4;
  string project_description = 5;

  // An account (Sachkonto) describes the expected type of expense or revenue.
  // Examples are "Ertrag Veranstaltungen - Bar/Party/Gastgewerbe" (ID 3110) or
  // "Eintritt Veranstaltungen Bildung / Sport / Kultur (steuerfrei)" (ID 3100).
  // Accounts are not contained within projects. Instead, a (project, account)
  // pair uniquely identifies a ProjectAccount.
  int32 account_id = 6;
  string account_description = 7;
}