Rováš poskytuje REST API, cez ktoré partneri, doplnky a aplikácie môžu zakladať účty, podávať pracovné výkazy, čítať Merity a napojiť sa na produkty NeoFund (napríklad Civic).
| Prostredie | Základná URL |
|---|---|
| Produkcia | https://rovas.app |
| Vývoj | https://dev.rovas.app |
Cesty služieb majú predponu /rovas. OAuth protokol používa /oauth2.
Posielajte Accept: application/json a pri tele POST/PUT aj Content-Type: application/json.
Ak plánujete integráciu, kontaktujte nás — radi zabezpečíme partnerský prístup a prejdeme váš prípad použitia.
Ktoré API použiť?
| Model | Autentifikácia | Najlepšie pre |
|---|---|---|
| Klasické | HTTP hlavičky API-KEY a TOKEN |
Partnerské backendy, doplnky na webe, server–server |
| OAuth 2 (Bearer) | Authorization: Bearer <access_token> |
Mobil / SPA s prihlásením v prehliadači (napr. Civic) |
Na jednom volaní tieto modely nemiešajte. Klasické endpointy očakávajú API kľúče; Civic/OAuth zdroje majú API-key auth vypnutú a očakávajú Bearer (alebo sú verejné).
Klasické API — ako ho používať
Prihlasovacie údaje
- Prihláste sa do Rováša a otvorte Môj účet → Rováš API.
- Vygenerujte údaje pre endpoint
rovas_endpoint. - Pri každom autentifikovanom volaní pošlite:
API-KEY: <váš api kľúč>
TOKEN: <váš token>
Každý pár kľúčov patrí jednému používateľovi Rováša. Volania bežia v jeho mene.
Partnerská registrácia (vytvorenie alebo prepojenie koncového používateľa)
Partneri (napr. neziskovky), ktorí zakladajú účty darcom alebo členom, potrebujú technický účet s rolou api client (pridelí NeoFund/Rováš). API kľúč tohto účtu slúži len na zakladanie / prepojenie účtov.
Odporúčaný endpoint
POST /rovas/rovas_partner_user
Starší ekvivalent: POST /rovas/rules/rules_create_user (rovnaké telo a odpoveď).
Telo požiadavky (povinné polia)
| Pole | Popis |
|---|---|
user_name |
Zobrazované meno |
user_id |
Vaše externé číselné ID používateľa |
user_email |
E-mail (na nájdenie existujúceho účtu v Rováši) |
user_country |
ISO 3166-1 alpha-2, veľké písmená (napr. SK) |
user_language |
Kód jazyka (napr. sk, en) |
server_url |
Základná URL vášho webu (napr. https://partner.example/) |
Voliteľné: hybridauth_provider (ak prázdne, predvolené Nabezky), partner_client_id.
Zoznam povolených poskytovateľov: GET /rovas/rovas_hybridauth_providers.json (zvyčajne verejné).
Úspešná odpoveď
{
"rovas_uid": 123,
"api_key": "…",
"token": "…"
}
Uložte vrátené api_key / token a používajte ich ako API-KEY / TOKEN pri ďalších volaniach v mene tohto koncového používateľa.
Príklad
curl -sS -X POST "https://rovas.app/rovas/rovas_partner_user" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "API-KEY: $PARTNER_API_KEY" \
-H "TOKEN: $PARTNER_TOKEN" \
-d '{
"user_name": "Jana Partnerská",
"user_id": 12345,
"user_email": "jana@example.com",
"user_country": "SK",
"user_language": "sk",
"server_url": "https://partner.example/",
"hybridauth_provider": "Nabezky"
}'
Typické chyby: 400 validácia, 401 zlé údaje, 403 chýba oprávnenie api client.
Referencia klasických endpointov
Schémy požiadaviek/odpovedí sú v OpenAPI súbore (na vyžiadanie). Prehľad:
Účty a zostatky
| Metóda | Cesta | Auth | Účel |
|---|---|---|---|
POST |
/rovas/rovas_partner_user |
API-KEY | Vytvoriť / prepojiť používateľa (odporúčané) |
POST |
/rovas/rules/rules_create_user |
API-KEY | Vytvoriť / prepojiť (staršie) |
GET |
/rovas/rovas_hybridauth_providers.json |
Verejné* | HybridAuth poskytovatelia |
POST |
/rovas/rules/rules_fetch_user_data |
API-KEY | Profil majiteľa kľúča |
POST |
/rovas/rules/rules_users_chrons |
API-KEY | Zostatky Chronov |
POST |
/rovas/rules/rules_user_s_merits |
API-KEY | Zostatky Meritov |
POST |
/rovas/rules/rules_check_enabled_language |
API-KEY | Je jazyk zapnutý? |
*Ak je na zdroji zapnuté „Disable API keys authentication“.
Projekty a pracovné výkazy
| Metóda | Cesta | Auth | Účel |
|---|---|---|---|
POST |
/rovas/rules/rules_proxy_create_new_project |
API-KEY | Vytvoriť projekt |
POST |
/rovas/rules/rules_proxy_delete_project |
API-KEY | Zmazať projekt |
POST |
/rovas/rules/rules_proxy_create_work_report |
API-KEY | Vytvoriť pracovný výkaz |
POST |
/rovas/rules/rules_proxy_delete_work_report |
API-KEY | Zmazať pracovný výkaz |
POST |
/rovas/rules/rules_proxy_report_editability |
API-KEY | Je výkaz editovateľný? |
POST |
/rovas/rules/rules_proxy_work_report_verifiability |
API-KEY | Môže volajúci overovať? |
POST |
/rovas/rules/rules_proxy_report_verification_status |
API-KEY | Stav overenia |
POST |
/rovas/rules/rules_create_verification |
API-KEY | Odovzdať overenie |
POST |
/rovas/rules/rules_create_verification_with_acccess_token |
Verejné | Overenie cez access token |
POST |
/rovas/rules/rules_proxy_reward_work_report |
API-KEY | Odmeniť pracovný výkaz |
GET |
/rovas/rovas_verifications.json |
API-KEY | Zoznam overení |
PUT |
/rovas/node/{id} |
API-KEY | Upraviť vlastný uzol |
DELETE |
/rovas/node/{id} |
API-KEY | Zmazať vlastný uzol |
Podiely, nákupy, kurzy
| Metóda | Cesta | Auth | Účel |
|---|---|---|---|
POST |
/rovas/rules/rules_proxy_check_or_add_shareholder |
API-KEY | Zabezpečiť podiel používateľa |
POST |
/rovas/rules/rules_proxy_check_or_add_project_shareholder |
API-KEY | Zabezpečiť podiel projektu |
POST |
/rovas/rules/rules_proxy_purchase_product |
API-KEY | Spracovať nákup |
POST |
/rovas/rules/rules_proxy_create_aur |
API-KEY | Záznam o použití majetku |
POST |
/rovas/rules/rules_get_merits_for_projects |
API-KEY | Merity pre ID projektov |
POST |
/rovas/rules/rules_convert_euros_to_chrons |
API-KEY | Kurz EUR → Chron |
POST |
/rovas/rules/rules_convert_euros_to_chrons_reverse |
API-KEY | Kurz Chron → EUR |
Views
| Metóda | Cesta | Účel |
|---|---|---|
GET |
/rovas/views/top_10_workers_in_a_category |
Top pracovníci v kategórii |
GET |
/rovas/views/project_merits_feed |
Top odmeňujúci projektu |
GET |
/rovas/views/projects_merits |
Top používatelia pre projekty z rovnakého webu |
OAuth 2 / Bearer — ako ho používať
OAuth používa aplikácia Civic a ďalší klienti, ktorých registrujeme. Nové produkty potrebujú vlastný OAuth klient — z tretích strán nepoužívajte Civic client_id.
Protokolové endpointy
| Krok | URL |
|---|---|
| Authorize | {base}/oauth2/authorize |
| Token | {base}/oauth2/token |
| Revoke | {base}/oauth2/revoke |
| Introspect | {base}/oauth2/tokens/{access_token} |
Civic klient (referencia)
| Nastavenie | Hodnota |
|---|---|
client_id |
civic |
| Typ klienta | Verejný (bez secretu) |
| Granty | Authorization code + refresh token |
| PKCE | Povinné (S256) |
| Scope | user_profile |
| Redirect | civic://oauth/callback |
Dodatočné parametre authorize: lang=sk|en, intent=login|register.
Volanie API s Bearer
curl -sS "https://rovas.app/rovas/me" \
-H "Accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"
Príklad odpovede GET /rovas/me:
{
"uid": 42,
"username": "sano",
"display_name": "Alexander Žaťko",
"total_me": 1248.35,
"total_chr": 320.0,
"created": "2019-03-12T14:22:01+00:00",
"language": "sk",
"receipt_history_retention": null
}
Referencia OAuth / Civic endpointov
Auth: Bearer = povinný access token; Verejné = bez tokenu; Voliteľný Bearer = verejné, s extra poliami po prihlásení.
Domov a profil
| Metóda | Cesta | Auth | Účel |
|---|---|---|---|
GET |
/rovas/me |
Bearer | Profil + zostatky Merit/Chron |
GET |
/rovas/contributions/aggregate |
Verejné | Súčet Meritov komunity |
GET |
/rovas/merit_distribution |
Voliteľný Bearer | Histogram Meritov |
POST |
/rovas/civic_receipt_history_preference |
Bearer | Uchovávanie histórie dokladov |
GET |
/rovas/civic_merit_history |
Bearer | Osobná história Meritov |
Používatelia
| Metóda | Cesta | Auth | Účel |
|---|---|---|---|
GET |
/rovas/users_search?query= |
Bearer | Vyhľadávanie (parameter query, nie q) |
GET |
/rovas/users_lookup?username= |
Bearer | Verejný komunitný profil |
Daňové (DPH) nároky
| Metóda | Cesta | Auth | Účel |
|---|---|---|---|
POST |
/rovas/rules/rules_proxy_claim_vat_receipt |
Bearer | Nárovať DPH z eKasy ako Merity |
GET |
/rovas/civic_claims |
Bearer | Zoznamy (view=submitted|received) alebo stav (receipt_uid=) |
GET |
/rovas/civic_claims/summary |
Bearer | Súčty nárokov |
GET |
/rovas/civic_national_hourly_rate?country= |
Verejné | Národná hodinová sadzba |
Projekty a organizácie vo verejnom prospechu
| Metóda | Cesta | Auth | Účel |
|---|---|---|---|
GET |
/rovas/civic_project/{nid} |
Verejné* | Detail projektu |
GET |
/rovas/civic_project_work_reports |
Verejné* | Pracovné výkazy projektu |
GET |
/rovas/civic_project_shareholders |
Verejné* | Podielnici |
GET |
/rovas/civic_charity_projects |
Verejné | Katalóg schválených organizácií |
POST |
/rovas/civic_create_charity_org |
Bearer | Navrhnúť organizáciu vo verejnom prospechu |
*Anonymný prístup pre schválené projekty vo verejnom prospechu; inak platia pravidlá prístupu.
Dobrovoľnícke pracovné výkazy
| Metóda | Cesta | Auth | Účel |
|---|---|---|---|
GET |
/rovas/civic_my_projects |
Bearer | Projekty, na ktoré používateľ nedávno podával výkazy |
GET |
/rovas/civic_projects_search?query= |
Bearer | Hľadanie projektov |
GET |
/rovas/civic_nace_tree |
Verejné | Strom činností NACE |
POST |
/rovas/civic_create_project |
Bearer | Vytvoriť projekt |
POST |
/rovas/civic_create_work_report |
Bearer | Vytvoriť pracovný výkaz |
GET |
/rovas/civic_work_report_map_config |
Bearer | Konfigurácia mapového dôkazu |
POST |
/rovas/civic_ai_nace |
Bearer | AI návrh NACE + názvu |
Overovanie a upozornenia
| Metóda | Cesta | Auth | Účel |
|---|---|---|---|
GET |
/rovas/civic_pending_verifications |
Bearer | Výkazy čakajúce na vaše overenie |
GET |
/rovas/civic_work_report/{nid} |
Bearer | Detail výkazu pre overovateľa |
POST |
/rovas/civic_submit_verification |
Bearer | Schváliť, zamietnuť alebo odmietnuť |
GET |
/rovas/civic_pending_comment_notices |
Bearer | Upozornenia na sledované komentáre |
Merit index
| Metóda | Cesta | Auth | Účel |
|---|---|---|---|
GET |
/rovas/civic_merit_index |
Verejné | Rebríček (snapshot) |
GET |
/rovas/civic_merit_index_countries |
Verejné | Filtre krajín |
GET |
/rovas/civic_merit_spotlight |
Verejné | Periodický spotlight |
GET |
/rovas/civic_merit_period_index |
Verejné | Periodický rebríček |
Podpora
Otázky, OpenAPI schémy alebo nový OAuth klient: kontaktujte NeoFund.