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

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 !!!

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
  • faraid: unikalny wewnętrzny id rekordu intencji z programu FARA
  • 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
  • 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