@extends('layouts.app') @section('title', 'KSeF – Status faktur w sesji') @php $statusResult = $statusResult ?? session('ksef_session_status_result') ?? null; $statusError = $statusError ?? session('ksef_session_status_error') ?? null; $sessionRef = $statusResult['sessionReference'] ?? ''; $continuationToken = $statusResult['continuationToken'] ?? ''; $invoices = $statusResult['invoices'] ?? []; $rawJson = $statusResult['raw'] ?? null; @endphp @section('content')

KSeF – Status faktur w sesji

Tu możesz podejrzeć listę faktur przesłanych w danej sesji online (po kroku wysyłki faktury), wraz z ich statusami wg KSeF.
KSeF udostępnia stronicowanie przez continuationToken.

{{-- Błąd --}} @if (!empty($statusError))
Błąd: {{ $statusError }}
@endif {{-- Formularz sprawdzania statusu --}}

Sprawdź sesję

@csrf
To jest referenceNumber zwrócony przez KSeF przy otwieraniu sesji (krok wysyłki faktury).
Ile rekordów faktur na stronę.
Jeśli puste – pobierzemy pierwszą stronę.
@if (!empty($statusResult)) {{-- Podsumowanie strony --}}
Wynik zapytania
Numer sesji
{{ $sessionRef }}
HTTP status
{{ $statusResult['statusCode'] ?? 'n/a' }}
continuationToken
@if($continuationToken) {{ $continuationToken }} @else brak (to może być ostatnia strona) @endif
{{-- Lista faktur w tej stronie --}}
Faktury w tej stronie odpowiedzi:
@if (empty($invoices))
Brak faktur na tej stronie (albo sesja pusta).
@else
@foreach ($invoices as $idx => $inv) @php // invoiceReferenceNumber (numer faktury w sesji) $invRefNum = $inv['invoiceReferenceNumber'] ?? $inv['referenceNumber'] ?? $inv['elementReferenceNumber'] ?? '(brak)'; // status może być stringiem albo strukturą $rawStatus = $inv['status'] ?? $inv['invoiceStatus'] ?? '(?)'; if (is_array($rawStatus) || is_object($rawStatus)) { $statusDisplay = json_encode($rawStatus, JSON_UNESCAPED_UNICODE); } else { $statusDisplay = (string) $rawStatus; } // message / description też bywa tablicą $rawMsg = $inv['message'] ?? $inv['description'] ?? $inv['errorMessage'] ?? ''; if (is_array($rawMsg) || is_object($rawMsg)) { $msgDisplay = json_encode($rawMsg, JSON_UNESCAPED_UNICODE); } else { $msgDisplay = (string) $rawMsg; } // timestamp / receivedAt / createdAt $ts = $inv['receivedAt'] ?? $inv['createdAt'] ?? $inv['timestamp'] ?? ''; @endphp @endforeach
# invoiceReferenceNumber status message / description receivedAt / createdAt
{{ $idx+1 }} {{ $invRefNum }} {{ $statusDisplay }} {{ $msgDisplay }} {{ $ts }}
@endif {{-- surowy JSON do debug --}}
Surowa odpowiedź (JSON)
{{ json_encode($rawJson, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) }}
                
@if($continuationToken)
Uwaga: Jest continuationToken. Możesz wkleić go w formularzu, żeby pobrać kolejną stronę.
@else
Brak continuationToken. To wygląda jak ostatnia strona wyników 🎉
@endif
@endif
@endsection