Odbieranie Invoice Response

Przetwarzanie aktualizacji statusu od odbiorców przez hooki: acknowledged, accepted, rejected, paid.

Gdy odbiorca przekazuje status Państwa faktury za pomocą Invoice Response (komunikaty statusowe), PSB wysyła powiadomienie na webhook. Dzięki temu jako nadawca wiedzą Państwo, czy faktura została zatwierdzona, odrzucona, czy odbiorca potrzebuje dodatkowych informacji. Ten artykuł opisuje, jak przechwytywać i przetwarzać te powiadomienia.

Jak to działa?

Po wysłaniu faktury odbiorca może wysyłać komunikaty o statusie przez sieć Peppol. PSB automatycznie łączy każdy otrzymany Invoice Response z Państwa oryginalną fakturą i publikuje zdarzenie webhook.

Przepływ:

  1. Państwo wysyłają fakturę przez PSB
  2. Odbiorca przetwarza fakturę i wysyła Invoice Response
  3. PSB odbiera wiadomość response i łączy ją z Państwa fakturą
  4. Państwa webhook otrzymuje zdarzenie InvoiceResponseReceived
Konfiguracja webhooka

Należy zarejestrować hook na topicu InvoiceResponseReceived:

POST /api/v1/hook
{
  "action": "https://mijn-systeem.nl/webhook/responses#mijnSecretKey",
  "topics": ["InvoiceResponseReceived"]
}

Payload webhooka zawiera documentId oryginalnej faktury i responseDocumentId wiadomości Invoice Response.

Pobieranie Invoice Response

Pełną wiadomość Invoice Response pobiera się przez API:

GET /api/v1/{partyId}/salesInvoice/{documentId}/response/{responseDocumentId}/download HTTP/1.1
Host: psb.econnect.eu
Authorization: Bearer {access_token}

Wiadomość zawiera kod statusu, ewentualne kody wyjaśniające i opcjonalną notatkę od odbiorcy.

Interpretacja kodów statusu

Otrzymany kod statusu wskazuje, na jakim etapie u odbiorcy znajduje się faktura:

KodNazwaCo to oznacza dla Państwa jako nadawcy?ABAcknowledgeFaktura została odebrana i jest czytelnaIPIn ProcessFaktura jest przetwarzana, brak jeszcze ocenyUQUnder QueryOdbiorca ma pytania, wymagane jest działanieRERejectedFaktura odrzucona, należy poprawić i wysłać ponownieAPAcceptedFaktura zatwierdzona, zapłata nastąpiPDFully PaidFaktura została zapłacona

Przy statusach UQ i RE ważne jest przeczytanie załączonego Reason code i Action code. Wskazują one, co jest nie tak i jakiego działania odbiorca oczekuje. Przegląd wszystkich Reason i Action code znajduje się w artykule Wysyłanie Invoice Response.

Wymagania dotyczące odbierania response

Aby móc odbierać Invoice Response jako nadawca, Państwa organizacja musi być zarejestrowana w Peppol SMP z capability invoiceResponse. Bez tej rejestracji Access Point odbiorcy nie może dostarczyć wiadomości response.

Sprawdzenie i aktywacja capability:

PUT /api/v1/peppol/config HTTP/1.1
Host: psb.econnect.eu
Authorization: Bearer {access_token}
Content-Type: application/json

{
  "invoiceResponse": {
    "state": "on"
  }
}
Przetwarzanie we własnym systemie

Kilka zaleceń dotyczących przetwarzania Invoice Response:

  • Łączenie z fakturą: należy użyć documentId z payloadu, aby powiązać response z odpowiednią fakturą we własnej administracji.
  • Wyświetlanie statusu: status faktury powinien być widoczny dla użytkowników. Wskaźnik "zatwierdzona" lub "odrzucona" zapobiega niepotrzebnym pytaniom.
  • Reagowanie na odrzucenia: przy statusie RE zwyczajowo poprawia się fakturę i wysyła nową wersję. Uwaga: należy użyć nowego X-EConnect-DocumentId, ponieważ jest to nowy dokument.
  • Przechowywanie śladu audytu: każdy otrzymany Invoice Response należy zapisać jako część historii faktury.
Często zadawane pytania
Jakiego webhooka i pól użyć do odebrania Invoice Response?

Należy zarejestrować hook na topic InvoiceResponseReceived. Payload zawiera documentId pierwotnie wysłanej faktury oraz responseDocumentId komunikatu statusu. Pozwala to powiązać odpowiedź w systemie z właściwą fakturą sprzedażową.

Jak pobrać pełny XML Invoice Response?

Należy użyć GET /api/v1/{partyId}/salesInvoice/{documentId}/response/{responseDocumentId}/download z documentId faktury i responseDocumentId z webhooka. Wiadomość zawiera kod statusu oraz ewentualne informacje wyjaśniające od odbiorcy.

Co zrobić przy statusie RE i dlaczego nowy X-EConnect-DocumentId?

Przy RE (Rejected) należy poprawić fakturę i wysłać ją ponownie; kody Reason i Action wskazują, co jest nie tak. Dla nowej wersji należy użyć nowego X-EConnect-DocumentId, ponieważ jest to nowy dokument, a idempotency działa na podstawie documentId.


Invoice Response są opcjonalne w sieci Peppol. Nie każdy odbiorca je wysyła. Jednak gdy są stosowane, oferują cenne informacje o procesie fakturowania.

Wypróbuj w API