Strona główna › Biblioteka › Dostawcy usług

Dostawcy usług

Katalog dostawców usług komunalnych

Czym jest dostawca usług?

Dostawca usług to przedsiębiorstwo z pełnymi danymi prawnymi zarejestrowane w oficjalnej bazie danych osób prawnych kraju, w którym działa.

Szczegóły specyficzne dla kraju

Ukraina

  • Identyfikator prawny: EDRPOU (ЄДРПОУ) - 8-cyfrowy unikalny identyfikator z Jednolitego Państwowego Rejestru Przedsiębiorstw i Organizacji
  • Oficjalny rejestr: Jednolity Państwowy Rejestr Przedsiębiorstw i Organizacji Ukrainy
  • Identyfikator bankowy: MFO (МФО) - 6-cyfrowy kod banku

Przykłady

  • Firmy energetyczne (elektryczność, gaz)
  • Firmy wodociągowe
  • Dostawcy usług internetowych
  • Firmy zarządzające (spółdzielnie mieszkaniowe)
  • Inni dostawcy usług komunalnych

Ograniczenia bazy danych

Niestety baza danych dostawców usług może być niekompletna. Nie wszystkie firmy z ukraińskiego rejestru mogą być obecne w systemie.

Rozwiązanie: Jeśli nie możesz znaleźć potrzebnego dostawcy usług w bazie danych, możesz utworzyć niestandardowego kontrahenta ze wszystkimi niezbędnymi danymi.

Niestandardowi kontrahenci

Niestandardowi kontrahenci to utworzone przez użytkownika wpisy dla firm, których nie ma w oficjalnej bazie dostawców usług. Możesz ręcznie wprowadzić wszystkie niezbędne informacje.

Dostępne pola

Wymagane

  • Nazwa - Pełna nazwa firmy (minimum 3 znaki)

Opcjonalne

  • Skrócona nazwa - Skrócona nazwa
  • Forma prawna - Sp. z o.o., JDG itp.
  • NIP - NIP/EDRPOU (8-12 cyfr)
  • Numer VAT
  • System podatkowy - Ogólny, Uproszczony itp.
  • IBAN - Międzynarodowy numer konta bankowego
  • Nazwa banku
  • Kod banku - Kod banku (6 cyfr)
  • Kod SWIFT - Międzynarodowy kod banku (8 lub 11 znaków)
  • Email
  • Telefon
  • Strona internetowa
  • Imię i nazwisko dyrektora
  • Osoba kontaktowa
  • Data rejestracji
  • Adres prawny
  • Adres faktyczny
  • Notatki

Zasady walidacji

  • Nazwa: Nazwa musi zawierać co najmniej 3 znaki
  • NIP: Nieprawidłowy format NIP (musi mieć 8-12 cyfr)
  • IBAN: Nieprawidłowy format IBAN
  • Kod banku: Nieprawidłowy format kodu banku (musi mieć 6 cyfr)
  • Kod SWIFT: Nieprawidłowy format kodu SWIFT
  • Email: Nieprawidłowy format email
  • Telefon: Nieprawidłowy format telefonu (7-20 znaków: cyfry, spacje, +, -, (, ))
  • Strona internetowa: Nieprawidłowy format URL (musi zaczynać się od http:// lub https://)
  • Data rejestracji: Data rejestracji nie może być w przyszłości

Dostęp użytkownika

Możesz zarządzać swoimi niestandardowymi kontrahentami na dedykowanej stronie:

REST API

API dla dostawców usług (tylko odczyt)

Dostawcy usług z oficjalnej bazy danych są dostępni przez punkty końcowe API tylko do odczytu:

Punkty końcowe API

GET /api/v1/service-providers              # List all active providers
GET /api/v1/service-providers/{id}         # Get specific provider details

Parametry zapytania

  • page (integer, optional) - Page number, starts from 1. Default: 1
  • limit (integer, optional) - Items per page, max 100. Default: 50
  • search (string, optional) - Search by company name or EDRPOU code
  • region (string, optional) - Filter by region (exact match)

Przykłady zapytań

Przykład 1: Pobierz pierwszych 50 aktywnych dostawców

Przypadek użycia: początkowe ładowanie listy dostawców usług

GET /api/v1/service-providers

Przykład 2: Wyszukiwanie po nazwie firmy

Przypadek użycia: użytkownik wpisuje nazwę firmy w polu wyszukiwania. Zwraca dostawców pasujących do zapytania w polach nazwy lub krótkiej nazwy.

GET /api/v1/service-providers?search=Kyiv Energy Company

Przykład 3: Wyszukiwanie po kodzie EDRPOU

Przypadek użycia: użytkownik wprowadza 8-cyfrowy kod EDRPOU z rachunku. Zwraca dokładne dopasowanie, jeśli dostawca istnieje w bazie danych.

GET /api/v1/service-providers?search=00131305

Przykład 4: Filtrowanie po regionie z paginacją

Przypadek użycia: pokaż dostawców tylko z określonego regionu, 20 na stronę. Przydatne do filtrowania lokalnych firm użyteczności publicznej.

GET /api/v1/service-providers?region=Kyiv&page=1&limit=20

Przykład 5: Pobierz szczegóły konkretnego dostawcy

Przypadek użycia: użytkownik klika dostawcę z listy, aby zobaczyć pełne szczegóły. Zwraca pełne informacje wraz z znacznikami czasu.

GET /api/v1/service-providers/1

Przykład odpowiedzi z listą

{
  "items": [
    {
      "id": 1,
      "edrpou": "00131305",
      "name": "Public Joint Stock Company Kyiv Energy",
      "short_name": "Kyiv Energy JSC",
      "legal_address": "Kyiv, Sakharov St, 139",
      "region": "Kyiv",
      "website": "https://kyivenergo.ua",
      "description": "Electricity distribution company serving Kyiv",
      "phone": "+380 44 467 0067",
      "email": "[email protected]",
      "is_active": true,
      "country": {
        "id": 1,
        "code": "UA",
        "name": {
          "uk": "Україна",
          "en": "Ukraine",
          "ru": "Украина",
          "pl": "Ukraina",
          "de": "Ukraine"
        }
      }
    }
  ],
  "total": 1234,
  "pages": 25
}

Pola odpowiedzi:

  • items - Tablica obiektów dostawców (max 100 elementów na stronę)
  • total - Całkowita liczba dostawców pasujących do kryteriów
  • pages - Całkowita liczba stron (obliczona jako: ceil(total / limit))

Przykład szczegółowej odpowiedzi

{
  "id": 1,
  "edrpou": "00131305",
  "name": "Public Joint Stock Company Kyiv Energy",
  "website": "https://kyivenergo.ua",
  "description": "Electricity distribution company serving Kyiv",
  "phone": "+380 44 467 0067",
  "country": {
    "id": 1,
    "code": "UA",
    "name": {
      "uk": "Україна",
      "en": "Ukraine",
      "ru": "Украина",
      "pl": "Ukraina",
      "de": "Ukraine"
    }
  },
  "created_at": "2024-01-15T10:30:00+02:00",
  "updated_at": "2024-06-20T14:45:00+02:00"
}

Dodatkowe pola w widoku szczegółowym:

  • created_at - Kiedy rekord został dodany do bazy danych (format ISO 8601)
  • updated_at - Ostatnia modyfikacja rekordu (format ISO 8601)

Błędy

404 Not Found - Dostawca nie istnieje lub jest nieaktywny

{
  "error": "Service provider not found"
}

Przypadek użycia: nieprawidłowe ID lub dostawca został dezaktywowany w bazie danych

API dla niestandardowych kontrahentów (pełny CRUD)

Niestandardowi kontrahenci obsługują pełne operacje CRUD ze ścisłą walidacją:

Punkty końcowe API

GET    /api/v1/user/custom-contragents           # List all user contragents
POST   /api/v1/user/custom-contragents           # Create new contragent
GET    /api/v1/user/custom-contragents/{id}      # Get contragent details
PUT    /api/v1/user/custom-contragents/{id}      # Update contragent
DELETE /api/v1/user/custom-contragents/{id}      # Delete contragent

Wymagana autentykacja: Wszystkie punkty końcowe wymagają uwierzytelnienia użytkownika. Możesz zarządzać tylko własnymi kontrahentami.

Przykłady zapytań

Przykład 1: Pobierz listę swoich kontrahentów

Przypadek użycia: wyświetlenie wszystkich kontrahentów użytkownika w liście rozwijanej formularza wydatków lub na stronie zarządzania.

GET /api/v1/user/custom-contragents

Przykład 2: Utwórz nowego kontrahenta

Przypadek użycia: użytkownik dodaje nową firmę, której nie ma w oficjalnej bazie danych. Wymagane jest tylko pole nazwy, wszystkie inne pola są opcjonalne, ale walidowane jeśli podane.

POST /api/v1/user/custom-contragents
Content-Type: application/json

{
  "name": "Example Company LLC",
  "short_name": "Example Co",
  "legal_form": "LLC",
  "tax_number": "12345678",
  "vat_number": "123456789012",
  "iban": "UA123456789012345678901234567",
  "bank_name": "PrivatBank",
  "bank_mfo": "305299",
  "swift": "PBANUA2X",
  "email": "[email protected]",
  "phone": "+380 44 123 4567",
  "website": "https://example.com",
  "director_name": "John Doe",
  "legal_address": "Kyiv, Khreshchatyk St, 1",
  "registration_date": "2020-01-15"
}

Przykład 3: Pobierz szczegóły kontrahenta

Przypadek użycia: wyświetlenie pełnych informacji o konkretnym kontrahencie na stronie szczegółów.

GET /api/v1/user/custom-contragents/01a06b0b-5f36-7d8b-b211-b03c9c7d9a24

Przykład 4: Zaktualizuj kontrahenta

Przypadek użycia: użytkownik edytuje informacje o kontrahencie. Wysyłaj tylko pola wymagające aktualizacji. Wszystkie zasady walidacji obowiązują.

PUT /api/v1/user/custom-contragents/01a06b0b-5f36-7d8b-b211-b03c9c7d9a24
Content-Type: application/json

{
  "phone": "+380 44 999 8888",
  "email": "[email protected]",
  "website": "https://new-website.com"
}

Przykład 5: Usuń kontrahenta

Przypadek użycia: użytkownik usuwa kontrahenta, który nie jest już potrzebny. Nie można usunąć, jeśli kontrahent jest używany w wydatkach.

DELETE /api/v1/user/custom-contragents/01a06b0b-5f36-7d8b-b211-b03c9c7d9a24

Przykład odpowiedzi z listą

{
  "contragents": [
    {
      "id": 1,
      "name": "Example Company LLC",
      "short_name": "Example Co",
      "legal_form": "LLC",
      "tax_number": "12345678",
      "vat_number": "123456789012",
      "iban": "UA123456789012345678901234567",
      "bank_name": "PrivatBank",
      "bank_mfo": "305299",
      "swift": "PBANUA2X",
      "email": "[email protected]",
      "phone": "+380 44 123 4567",
      "website": "https://example.com",
      "director_name": "John Doe",
      "contact_person": "Jane Smith",
      "legal_address": "Kyiv, Khreshchatyk St, 1",
      "actual_address": "Kyiv, Khreshchatyk St, 1",
      "registration_date": "2020-01-15",
      "notes": "Primary utility provider",
      "created_at": "2024-01-15T10:30:00+02:00",
      "updated_at": "2024-06-20T14:45:00+02:00"
    }
  ]
}

Odpowiedź na utworzenie/aktualizację

{
  "id": 1,
  "name": "Example Company LLC",
  "message": "Contragent created successfully"
}

Odpowiedź na usunięcie

{
  "message": "Contragent deleted successfully"
}

Odpowiedź z błędami walidacji

Zwracane z HTTP 400, gdy walidacja się nie powiedzie. Zawiera nazwy pól i komunikaty błędów.

{
  "error": "Validation failed",
  "violations": {
    "name": "Name must be at least 3 characters long",
    "tax_number": "Tax number must be 8-12 digits",
    "iban": "Invalid IBAN format",
    "email": "Invalid email address"
  }
}

403 Zabroniony - Dostęp zabroniony

Zwracane przy próbie dostępu lub modyfikacji kontrahenta należącego do innego użytkownika.

{
  "error": "Access denied"
}

404 Nie znaleziono - Kontrahent nie znaleziony

Zwracane, gdy kontrahent o podanym ID nie istnieje.

{
  "error": "Contragent not found"
}

409 Konflikt - Nie można usunąć

Zwracane przy próbie usunięcia kontrahenta używanego w wydatkach lub innych rekordach.

{
  "error": "Cannot delete contragent. It is used in 5 expense records."
}

Swagger / OpenAPI

Pełna dokumentacja API jest dostępna w Swagger UI:

Dostawcy z bazy danych

Przeglądaj aktywnych dostawców usług z bazy danych systemu

Ładowanie...