API

Dokumentacja API DLA APLIKACJI FARA E-INTENCJE 3.0

E-Intencje 3.0 dostępne są w programie FARA od wersji 5.0.80.34

URL: https://signum-net.pl

Ostatnia aktualizacja: 8.06.2025

Włączanie udostępniania API w programie FARA

Aby korzystać z API do pobierania danych z księgi intencji programu FARA należy najpierw aktywować udostępnianie u konkretnego klienta. W tym celu należy w programie FARA danego klienta przejść do funkcji udostępniania:

Okno główne programu FARA -> Intencje -> E-intencje -> Dostosuj

W oknie Dostosuj trzeba przejść na zakładkę API i integracje i wybrać z listy dostawcę usługi i kliknąć w przycisk Włącz udostępnianie.

Jeśli usługodawcy nie ma na liście można wybrać ostatnia opcję „Inny dostawca usług”

Przy takim wyborze należy kliknąć w przycisk Włącz udostępnianie – wówczas system wygeneruje dla dostawcy klucz API i umieści go w polach w oknie.

Do autoryzacji w systemie niezbędne są 2 parametry:

  • Klucz API – jeśli dostawca usług został wybrany z listy to zna on swój klucz i nie jest on w oknie programu wyświetlany. Jeśli wybrano innego dostawcę to program wyświetla jego klucz.
  • uid – unikalny id klienta wyświetlony w oknie programu.
/api/mass/wm_auth.php

POST

{
"uid" : NN,
"apiKey" : "XXX"
}
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
 "properties": {
 "uid": {
 "type": "integer"
},
"apiKey": {
"type": "string"
}
  },
"required": ["uid", "apiKey"],
"additionalProperties": false
}
  • uid: id użytkownika
  • apiKey: klucz API użytkownika
{
"token" : "XXX",
"error" : "error message"
}
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
 "properties": {
 "token": {
 "type": "string"
},
"error": {
"type": "string"
}
  },
"additionalProperties": false
}

Zwraca wygenerowany token lub treść komunikatu o błędzie

/api/mass/wm_logout.php

POST

{
"uid" : NN,
"token" : "XXX"
}
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
 "properties": {
 "uid": {
 "type": "integer"
},
"token": {
"type": "string"
}
  },
"required": ["uid", "token"],
"additionalProperties": false
}
  • uid: id użytkownika
  • token: token otrzymany z wm_auth
{
"success" : true,
"message" : "Logged out successfully"
}
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
 "properties": {
 "success": {
 "type": "boolean"
},
"message": {
"type": "string"
}
  },
"additionalProperties": false
}

Wylogowuje i kasuje token

/api/mass/wm_fetch_masses.php

POST

{
"uid" : NN,
"token" : "XXX"
"church" : N
}
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
 "properties": {
 "uid": {
 "type": "integer"
},
"token": {
"type": "string"
}
"church": {
"type": "integer"
}
  },
"required": ["uid", "token"],
"additionalProperties": false
}
  • uid: id użytkownika
  • token: token otrzymany z wm_auth
  • church: opcjonalny identyfikator kościoła (jeśli jest wiele ksiąg intencji)

ℹ️ Ta funkcja nie przyjmuje żadnych parametrów określających zakres czasu wyszukiwanych intencji. Zakres wyświetlanych intencji ustawia użytkownik w programie FARA.

{
"error" : "error message"
"data" : [
{"church": 99, "faraid": 99999, "id": 999999, "mass": ""O dary Ducha Świętego, wszelkie potrzebne łaski", "massdate": "2025-05-04","masshour": 700, "reservation": false},
{"church": 99, ........}
]
}
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
 "properties": {
 "error": {
 "type": "string"
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"church": {
"type": "integer"
},
"faraid": {
"type": "integer"
},
"id": {
"type": "integer"
},
"mass": {
"type": "string"
},
"massdate": {
"type": "string",
"format": "date"
},
"masshour": {
"type": "integer"
},
"reservation": {
"type": "boolean"
},
},
"additionalProperties": false
}
  },
"additionalProperties": false
}

Tablica obiektów:

  • church: id kościoła
  • faraid: identyfikator intencji w bazie źródłowej FARA
  • id: identyfikator intencji w bazie replik
  • mass: treść intencji
  • massdate: data intencji w formacie yyyy-mm-dd
  • masshour: godzina intencji w formacie liczby całkowitej, np: 17:00 => 1700, 8:30 => 830
  • reservation: true, jeśli intencja jest w trakcie zamawiania lub rezerwowania. Nie wolno przypisać intencji do takiego rekordu!

Jeśli w ustawieniach aplikacji E-Intencje w programie FARA zaznaczono opcję grupowania intencji odprawianych o tej samej porze (np. zbiorówki czy koncelebry) to faraid oraz id są zerowe!. Celem grupowania jest wyświetlenie wszystkich takich intencji jako jednego wpisu, a nie każdego oddzielnie.

/api/mass/wm_fetch_free_hours.php

POST

{
"uid" : NN,
"token" : "XXX"
"church" : N
}
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
 "properties": {
 "uid": {
 "type": "integer"
},
"token": {
"type": "string"
}
"church": {
"type": "integer"
}
  },
"required": ["uid", "token"],
"additionalProperties": false
}
  • uid: id użytkownika
  • token: token otrzymany z wm_auth
  • church: opcjonalny identyfikator kościoła (jeśli jest wiele ksiąg intencji)

ℹ️ Ta funkcja nie przyjmuje żadnych parametrów określających zakres czasu wyszukiwanych intencji. Zakres wyświetlanych intencji ustawia użytkownik w programie FARA.

{
"error" : "error message"
"data" : [
{"church": 99, "faraid": 99999, "id": 999999, "massdate": "2025-05-04","masshour": 700, "reservation": false, "stage": 1},
{"church": 99, ........}
]
}

 

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
 "properties": {
 "error": {
 "type": "string"
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"church": {
"type": "integer"
},
"faraid": {
"type": "integer"
},
"id": {
"type": "integer"
},
"massdate": {
"type": "string",
"format": "date"
},
"masshour": {
"type": "integer"
},
"reservation": {
"type": "boolean"
},
"stage": {
"type": "integer"
},
},
"additionalProperties": false
}
  },
"additionalProperties": false
}

Tablica obiektów:

  • church: id kościoła
  • faraid: identyfikator intencji w bazie źródłowej FARA
  • id: identyfikator intencji w bazie replik
  • massdate: data intencji w formacie yyyy-mm-dd
  • masshour: godzina intencji w formacie liczby całkowitej, np: 17:00 => 1700, 8:30 => 830
  • reservation: true, jeśli intencja jest w trakcie zamawiania lub rezerwowania. Nie wolno przypisać intencji do takiego rekordu!
  • stage: 1 jeśli termin jest wolny

Jeśli w ustawieniach aplikacji E-Intencje w programie FARA zaznaczono opcję pobierania także godzin już zajętych to ich właściwość stage jest zerowa!. Użytkownik może tak zadeklarować, jeśli chce oprócz godzin wolnych, wyświetlać także w innej stylistyce godziny już zajęte.

/api/mass/wm_fetch_church_data.php

POST

{
"uid" : NN,
"token" : "XXX"
}
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
 "properties": {
 "uid": {
 "type": "integer"
},
"token": {
"type": "string"
}
  },
"required": ["uid", "token"],
"additionalProperties": false
}

Pobiera informacje o kościołach (księgach intencji) zarejestrowanych w programie FARA

  • uid: id użytkownika
  • token: token otrzymany z wm_auth
{
"error" : "error message"
"data" : [
{"id": 1, "type": 1, "symbol": "XXX", "data": "Kościół parafialny", "allow_order_from_calendar": 1,"allow_order_with_no_date": 0, collective_limit:0},
{"id": 1, ........}
]
}
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
 "properties": {
 "error": {
 "type": "string"
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"type": {
"type": "integer",
"enum": [0, 1, 2]
},
"id": {
"type": "integer"
},
"symbol": {
"type": "string",
},
"data": {
"type": "string"
},
"allow_order_from_calendar": {
"type": "integer",
"enum": [0, 1]
},
"allow_order_with_no_date": {
"type": "integer"
"enum": [0, 1]
},
"collective_limit": {
"type": "integer"
}
},
"additionalProperties": false
}
  },
"additionalProperties": false
}

Tablica obiektów:

  • id: id kościoła
  • data: nazwa kościoła
  • symbol: krótki symbol tekstowy
  • type: typ kościoła (właściwie księgi intencji)
  • 0: zwykły (99,99% przypadków)
  • 1: osobna księga przeznaczona tylko i wyłącznie na zbiorówki
  • 2: osobna księga tylko na msze wieczyste
  • allow_order_from_calendar: 1 jeśli można na liście intencji, w miejscu wolnej intencji umieścic przycisk lub link do formularza zamówienia intencji na tę date i godzinę
  • allow_order_with_no_date: 1 jeśli dla takiego kościoła mozna zamawiać mszę bez podania określonego terminu
  • collective_limit: tylko dla type==1 – limit intencji w zbiorówce
/api/mass/wm_fetch_settings.php

POST

{
"uid" : NN,
"token" : "XXX"
}
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
 "properties": {
 "uid": {
 "type": "integer"
},
"token": {
"type": "string"
}
  },
"required": ["uid", "token"],
"additionalProperties": false
}

Pobiera dodatkowe ustawienia konfiguracyjne w programie FARA określające zachowanie strony (dopuszczalne pola formularza zamówienia intencji, ich klauzule „required”, możliwości zamawiania intencji bezpośrednio przez stronę WWW, itd..)

  • uid: id użytkownika
  • token: token otrzymany z wm_auth

{„error” : „opis błędu”} lub json z ustawieniami. Poniżej zamieszczono przykładowy plik ustawień ze wszystkimi sekcjami i przykładowymi wartościami w formacie jsonc. Jsonc jest plikiem json z komentarzami – ten plik nie zostanie prawidłowo sparsowany – jego celem jest jedynie wyjaśnienie poszczególnych sekcji.

/api/mass/wm_order_mass.php

🚨 WAŻNE!

Ten endpoint pozwala na rejestrowanie w systemie zamówień intencji. Przed jego wykorzystaniem należy upewnić się, że w programie FARA została dodatkowo włączona usługa przyjmowania zgłoszeń. Jeśli usługa ta nie będzie włączona to zamówienia będą rejestrowane w systemie, ale nie zostaną odczytane !!!

W programie FARA są 2 tryby przyjmowania zdalnych intencji definiowane w panelu użytkownika programu FARA:

Tryb Wpisz do rejestru zgłoszeń i nie publikuj przed akceptacją powoduje, że złożona intencja nie zostaje natychmiast opublikowana i nie zostaje wpisana do księgi intencji FARY. Intencja zostaje zapisana do odrębnego rejestru zgłoszeń i widnieje jako „w trakcie rezerwacji”. Dopiero po ręcznej moderacji przez użytkownika po stronie FARY intencja taka zostaje albo odrzucona (i termin ponownie staje się wolny), albo zaakceptowana, co powoduje jej wpisanie do księgi i automatyczną publikację.

Tryb Automatycznie wpisz do księgi intencji i opublikuj powoduje, że złożona intencja zostaje natychmiast opublikowana i wpisana do księgi.

W komentarz używany jest zwrot logiczny mustAcceptMass określający aktywny tryb przyjmowania zdalnych intencji.

POST

{
"uid" : NN,
"token" : "XXX",
"church" : N,
"massid" : 99999,
"faraid" : 55555,
"massdate" : "2028-12-20",
"masshour" : 1800,
"nazwisko" : "Jan Kowalski",
"adres" : "Przykładowice",
"telefon" : 999 999 999,
"email" : "something@somewhere.eu",
"ofiara" : 0,
"uwagi" : "Zażółć żółtą jaźń",
"intencja" : "treść intencji"
}
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
 "properties": {
"uid": {
 "type": "integer"
},
"token": {
"type": "string"
},
 "massid": {
 "type": "integer"
},
"faraid": {
"type": "integer"
},
"massdate": {
 "type": "string",
"format": "date"
},
"masshour": {
"type": "integer"
},
 "church": {
 "type": "integer"
},
"nazwisko": {
"type": "string"
},
"adres": {
"type": "string"
},
"telefon": {
"type": "string"
},
"email": {
"type": "string"
},
"ofiara": {
"type": "number"
},
"uwagi": {
"type": "string"
},
"intencja": {
"type": "string"
},
  },
"required": ["uid", "token", "intencja", "massid", "church"],
"additionalProperties": false
}
  • uid: id użytkownika
  • token: token otrzymany z wm_auth
  • massid: unikalny id intencji z bazy replik. Może być zerowy => patrz „Wyjaśnienia dodatkowe” => „Kiedy massid i faraid mogą być zerowe”
  • faraid: unikalny wewnętrzny id rekordu intencji z programu FARA. Może być zerowy => patrz „Wyjaśnienia dodatkowe” => „Kiedy massid i faraid mogą być zerowe”
  • massdate: data intencji „yyyy-mm-dd” lub pusta (jeśli ustawienia programu na to zezwalają)
  • masshour: godzina intencji w postaci liczby integer, np. 8:00 => 800, 20:00 => 2000
  • church: id kościoła (księgi intencji w programie FARA)
  • nazwisko: Imię i nazwisko (nazwa) Zamawiającego
  • adres: Adres Zamawiającego
  • telefon: telefon
  • email: email Zamawiającego
  • ofiara: Deklarowana ofiara
  • uwagi: dodatkowe uwagi
  • intencja: Treść intencji

⚠️ Wybór aktywnych pól formularza zamawiania intencji oraz określanie ich klauzul „required” odbywa się w interfejsie graficznym programu FARA. Wartości te można odczytać przy pomocy endpointu wm_fetch_settings.php

{
"error": numer błędu,
"description": opis błędu,
"success": 1
"order": {
"resvid" : NNNNN,
"ip" : "NNN.NNN.NNN.NNN",
"server": "....".
"uid": NNNN,
"massid" : 99999,
"faraid" : 55555,
"content": "W intencji udanego kodowania",
"massdate" : "2028-12-20",
"masshour" : 1800,
"church" : N,
"orderName" : "Jan Kowalski",
"orderAddress" : "Przykładowice",
"orderPhone" : 999 999 999,
"orderEmail" : "something@somewhere.eu",
"donation" : 0,
"notes" : "Zażółć żółtą jaźń"
}
}
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
 "properties": {
"error": {
 "type": "integer"
},
"description": {
 "type": "string"
},
"success": {
 "type": "integer"
},
"order": {
"type": "object",
"properties": {
"resvid": {
 "type": "integer"
},
"ip": {
 "type": "ipv4"
},
"server": {
 "type": "string"
},
"uid": {
 "type": "integer"
},
 "massid": {
 "type": "integer"
},
"faraid": {
"type": "integer"
},
"content": {
"type": "string"
},
"massdate": {
 "type": "string",
"format": "date"
},
"masshour": {
"type": "integer"
},
 "church": {
 "type": "integer"
},
"orderName": {
"type": "string"
},
"orderAddress": {
"type": "string"
},
"orderPhone": {
"type": "string"
},
"orderEmail": {
"type": "string"
},
"donation": {
"type": "number"
},
"notes": {
"type": "string"
},
},
  },
"required": ["order"],
"additionalProperties": false
}

Numery błędów zwracane w sekcji „error”

  • 1: Brak głównego identyfikatora intencji w trybie mustAcceptMass
  • 2: Brak treści intencji
  • 3: Ten termin nie jest już dostępny
  • 4: Ten termin został już zarezerwowany
  • -1: Błąd skryptu lub połączenia z bazą danych
  • -2: Błąd połączenia z bazą danych
  • -3: Rejestracja zamówienia nie powiodła się (treść komunikatu o błędzie z bazy danych)

Jeśli success==1 to obiekt order zawiera informacje o zarejestrowanej rezerwacji / zamówieniu intencji

  • resvid: unikalny id rezerwacji/zamówienia nadany przez system
  • ip: Adres IP, z którego nastąpiło zgłoszenie
  • server: nazwa serwera
  • uid: uid klienta (zawsze taki sam jak uid w wm_auth.php)
  • massid: unikalny identyfikator intencji w bazie replik
  • faraid: wewnętrzny, unikalny id intencji w bazie głównej programu FARA
  • content: treść intencji
  • massdate: Data intencji yyyy-mm-dd lub nic
  • masshour: godzina intencji w postaci liczby integer
  • church: id kościoła
  • orderName: Zamawiający
  • orderAddress: adres zamawiającego
  • orderPhone: telefon
  • orderEmail: email
  • donation: deklarowana ofiara
  • notes: uwagi dodatkowe

⚠️ Dane wejściowe są sanitizowane – proszę nie używać formatowań HTML, bo dane wyjściowe będą odmienne od wejściowych!

⚠️ Ten endpoint nie wysyła maili z powiadomieniem. Jeśli w programie FARA włączono wysyłanie powiadomień do parafii i/lub do Zamawiającego to w swoim kodzie musisz sam zakodować te operacje. Status powiadomień oraz adres email parafii znajdują się w ustawieniach, które można odczytać przez endpoint wm_fetch_settings.php

/api/mass/wm_fetch_order_mode.php

Funkcja zapisu intencji (wm_order_mass) zapisuje intencje w zależności od wartości mustAcceptMass (Tryby przyjmowania zdalnych intencji opisane w wm_order_mass). Nie ma potrzeby samodzielnego odnoszenia się do tej wartości. Dla zasady mona ją odczytać przy pomocy tego endpointa.

POST

{
"uid" : NN,
"token" : "XXX"
}
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
 "properties": {
 "uid": {
 "type": "integer"
},
"token": {
"type": "string"
}
  },
"required": ["uid", "token"],
"additionalProperties": false
}
  • uid: id użytkownika
  • token: token otrzymany z wm_auth
{
"error" : "error message"
"mode" : 1 (mustAcceptMass - intencja została zarejestrowana w rejestrze zgłoszeń), 0 (intencja została automatycznie opublikowana)
}
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
 "properties": {
 "error": {
 "type": "string"
},
"mode": {
"type": "integer",
}
},
"additionalProperties": false
}

mode == 1 => Tryb mustAcceptMass, mode == 0 => tryb bezpośredni

Wyjaśnienia dodatkowe

Klasy księgi intencji

W programie FARA są 2 klasy księgi intencji:

  • typowa – 99,9 % wszystkich przypadków
  • Ogromna liczba intencji – przeznaczona dla sanktuariów, domów misyjnych, itp.

Klasę księgi definiuje użytkownik po stronie programu FARA: 

W przypadku klasy Ogromna liczba intencji (niezwykle rzadko) każda wewnętrzna księga programu (każdy kościół) ma swój typ opisany w funkcji wm_fetch_church_data (normalny, same zbiorówki, wieczyste). 

Jak są wyznaczane wolne terminy ?
Klasa księgi: typowa, Klasa księgi: ogromna liczba intencji => typ kościoła: 0

W bazie danych znajduję się wpisy na konkretne terminy, lecz z pustą treścią intencji. FARA traktuje je jako wolne i wyszukuje terminy na podstawie takich wpisów, o ile nie są już zarezerwowane.

Klasa księgi: ogromna liczba intencji => typ kościoła: 1 (same zbiorówki)

Wolne terminy wyznaczane są na podstawie zapisanego w Farze harmonogramu i dziennego limitu

Kiedy massid i faraid mogą być zerowe ?

Jeśli klasa księgi to Ogromna liczba intencji i typ kościoła ma wartość 2 – same zbiorówki.

W takiej sytuacji wolnych terminów nie zapisuje się w Farze jako pustych intencji – wolny termin wyznaczany jest na podstawie harmonogramu i limitów. Wówczas identyfikatory massid oraz faraid są zerowe i zostają nadane automatycznie po zarejestrowaniu intencji.