Skip to content

DemoWebApp: send-invoice nie pozwala wysłać własnej treści faktury #236

Description

@vysogot

Opis

POST /onlinesession/send-invoice wysyła wyłącznie fakturę wbudowaną w aplikację — po poprawce z #235 jest to Templates/invoice-template-fa-3.xml z podstawionym NIP-em z kontekstu. Nie ma sposobu, aby przez sesję interaktywną wysłać własny dokument FA(3).

W praktyce oznacza to, że integrator, który chce sprawdzić własny XML na środowisku testowym, musi rozwidlić DemoWebApp i podmienić jedną linię w kontrolerze. U nas dokładnie tak było — i to jest ten sam powód, dla którego powstały #232 i #234: kontrolery z demo są kopiowane jako punkt wyjścia do własnych integracji.

Propozycja

Opcjonalne ciało żądania z treścią faktury, z zachowaniem obecnego zachowania, gdy ciała nie ma:

public sealed class SendInvoicePayload
{
    public string? Invoice { get; set; }
}
[HttpPost("send-invoice")]
public async Task<ActionResult<SendInvoiceResponse>> SendInvoiceOnlineSessionAsync(
    string sessionReferenceNumber,
    string accessToken,
    [FromBody] SendInvoicePayload? payload,
    CancellationToken cancellationToken)
{
    byte[] invoice = string.IsNullOrWhiteSpace(payload?.Invoice)
        ? ReadInvoiceTemplate()
        : System.Text.Encoding.UTF8.GetBytes(payload.Invoice);

    // dalej bez zmian
}

Zmiana jest zgodna wstecznie: wywołanie bez ciała działa dokładnie tak jak dziś, więc obecne scenariusze demonstracyjne pozostają nienaruszone.

Uwaga

Rozumiem, że DemoWebApp jest PoC-em o celowo ograniczonej funkcjonalności — to wynika wprost z odpowiedzi na #234. Dlatego zgłaszam to jako propozycję do decyzji, a nie od razu jako PR: jeśli uznacie, że własna treść faktury wykracza poza rolę aplikacji demonstracyjnej, zamykam zgłoszenie bez dyskusji.

Jeśli natomiast pomysł jest w porządku, chętnie przygotuję PR wraz z testami — po tym, jak #235 zostanie rozpatrzony, żeby zmiany się nie nakładały na tym samym kontrolerze.

Środowisko

  • main, commit 04f01c1 (tag 2.7.1)
  • .NET 10
  • Środowisko testowe KSeF (api-test.ksef.mf.gov.pl)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions