UgrzejMnie — Developer Portal

API Documentation for ERP / TMS / Fuel & Heating Providers

Download OpenAPI (JSON)
API v1 Live

Standard Response Codes and Error Handling (Error Codes)

200 OKSuccessful operation execution.
Header: Idempotency-KeyProtection against duplicate requests (24h cache).
400 Bad RequestINVALID_PAYLOAD / INVALID_ID / Missing required field.
401 UnauthorizedInvalid or inactive X-API-Key.
409 ConflictREQUEST_ALREADY_ACCEPTED / OFFER_NOT_EDITABLE.
410 GoneREQUEST_EXPIRED / OFFER_NOT_WITHDRAWABLE.
GET /api/v1/integrations/ping
Auth Test

Verifies API key validity and returns details of the associated provider account.

GET /api/v1/integrations/service-requests
Order Funnel with Pagination & Filters

Retrieves paginated orders. Allows tracking requests across all lifecycle stages: status=pending,quoted,accepted,in_transit,completed,cancelled and delta sync via updated_since=...

PII / GDPR Protection: In pending / quoted statuses only general location (city, postal prefix 05-***, fuel/qty) is returned. Full client address & phone are revealed upon quote acceptance (accepted).
GET /api/v1/integrations/service-requests/{id}
Single Source of Truth (Reconciliation / Webhook Fetch)

Returns the complete, authoritative state of a single request including submitted quotes and customer contact info.

POST / PATCH /api/v1/integrations/service-requests/{id}/offers
Quote Submission, Revision & Withdrawal

Submit new quote (POST), modify price/schedule before acceptance (PATCH .../offers/{offerId}) and withdraw quote (POST .../offers/{offerId}/withdraw). Supports SKU breakdown and unloading logistics.

Sample JSON Payload (Supports Idempotency-Key):

{
  "assistance_cost_gross": 3444.00,
  "travel_cost_gross": 0.00,
  "approx_fulfillment_at": "2026-09-02T10:00:00Z",
  "unloading_method": "HDS",
  "estimated_duration_hours": 1.5,
  "items": [
    {
      "sku_code": "PELLET_A1_15KG",
      "name": "Pellet drzewny certyfikowany ENplus A1 worki 15kg",
      "unit": "T",
      "quantity": 2.0,
      "unit_price_net": 1400.00,
      "vat_rate": 0.23,
      "total_gross": 3444.00
    }
  ],
  "description": "Dostawa pelletu certyfikowanego A1 w workach 15kg z rozładunkiem HDS."
}
POST /api/v1/integrations/service-requests/{id}/(en-route | arrive | reschedule | cancel)
Driver & Vehicle TMS Logistics

Real-time logistics status updates:

  • POST .../en-routeDriver departed (provide driver_name, vehicle_plate, estimated_arrival_minutes).
  • POST .../arriveDriver arrived at the delivery location.
  • POST .../rescheduleDelivery slot update (new_fulfillment_at, reason).
  • POST .../cancelOrder cancellation (reason_code: out_of_stock, no_transport_capacity, area_out_of_range, client_unreachable, force_majeure, other).
POST /api/v1/integrations/service-requests/manual-delivery
Stream B — Own Yard Order

Creates an own-customer order, returns fulfillment_short_url for the driver QR/link. PESEL/ID is encrypted at rest (AES-GCM). Supports Idempotency-Key.

{
  "customer_name": "Anna Kowalska",
  "customer_phone": "501202303",
  "customer_pesel": "85010112345",
  "delivery_address": "ul. Polna 12, Mrozy",
  "fuel_type": "PELLET",
  "quantity": 2.0,
  "cod_amount_gross": 1450.0,
  "payment_method": "cash"
}
GET /api/v1/integrations/service-requests/{id}/pod.pdf
POD PDF Download

Downloads the generated Proof of Delivery PDF after COMPLETED. Also exposed as pod_pdf_url on GET /service-requests/{id}.

POST /api/v1/integrations/service-requests/{id}/complete
Completion Confirmation & Digital Signature

Marks request as COMPLETED in UgrzejMnie, uploading digital customer signature and execution telemetry.

Fuel Delivery (Tanker meter reading & delivered quantity):

{
  "signature_base64": "data:image/png;base64,iVBORw0KGgoAAA...",
  "signature_name": "Jan Kowalski",
  "delivered_quantity": 2150.0,
  "meter_reading_before": 142050.0,
  "meter_reading_after": 144200.0,
  "completed_notes": "Rozładunek bez uwag."
}

Service / Heat Pump Protocol:

{
  "signature_base64": "data:image/png;base64,iVBORw0KGgoAAA...",
  "signature_name": "Anna Nowak",
  "work_performed": "Wymiana zaworu trójdrożnego i odpowietrzenie układu",
  "parts_replaced": ["Zawór trójdrożny DN25", "Uszczelka EPDM"],
  "labor_hours": 2.5,
  "completed_notes": "Kocioł uruchomiony i przetestowany."
}
GET /api/v1/integrations/events?after_id={last_event_id}
Event Journal (Zero-loss Replay & Polling)

Sequential ledger of all events tied to your orders (e.g. offer.accepted, order.cancelled). Enables 100% loss-free synchronization after network drops or ERP server restarts.

POST / GET /api/v1/integrations/service-requests/{id}/attachments
Attachments (POD, Waybills, Photos, Invoices)

Attaching scanned POD waybills, signed acceptance certificates, meter photos or VAT invoices to the order.

Sample JSON Payload:

{
  "attachment_type": "POD_SCAN",
  "file_name": "WZ_2026_09_01_podpisany.pdf",
  "file_url": "https://your-s3-server.com/doc/wz_123.pdf",
  "mime_type": "application/pdf",
  "file_size_bytes": 1048576
}
POST /api/v1/integrations/service-requests/{id}/decline
Decline Request (Hide from pending feed)

Allows providers to explicitly decline quoting on an order (e.g. no vehicles/stock available), hiding it from their pending feed.

Sample JSON Payload:

{
  "reason_code": "out_of_stock",
  "reason_description": "Temporary lack of pellet in central warehouse."
}