Modele danych
Ta strona jest referencją dla wszystkich wiadomości integracji POS, wspólnych modeli bazowych i enumów.
Modele oznaczone jako TBD nie są jeszcze sfinalizowane w kontrakcie integracji i mogą zmienić się przed ogólną dostępnością.
Wiadomości aktywacji
ActivatePos
Wysyłane przez POS w celu aktywacji względem OpenApp.
merchantTaxIdstringWymaganeUniwersalny identyfikator podatkowy merchanta, na przykład polski NIP.
pinCodestringWymaganeKrótkotrwały PIN aktywacyjny wyświetlany w panelu merchanta.
posInstallationIdstringOpcjonalneStabilny identyfikator instalacji POS po stronie merchanta.
softwareNamestringWymaganeNazwa produktu oprogramowania POS.
softwareVersionstringWymaganeCiąg wersji oprogramowania POS.
PosActivationResponse
Zwracane przez OpenApp w odpowiedzi na ActivatePos.
- Sukces
- Błąd
successbooleanWymaganetrue.
merchantIdstringWymaganeIdentyfikator merchanta ustalony z merchantTaxId.
integrationProfileIdstringWymaganeProfil integracji ograniczony do lokalizacji, z którym POS jest teraz powiązany.
locationIdstringWymaganeIdentyfikator fizycznej lokalizacji.
posIdstringWymaganeIdentyfikator POS nadany przez OpenApp.
apiConfigurationobjectWymaganeObiekt z credentials (apiKey, secret) używanymi do podpisywania wywołań POS -> OpenApp.
queueConfigurationobjectOpcjonalneObecne tylko wtedy, gdy skonfigurowano dostarczanie przez kolejkę. Zawiera URL kolejki, region i poświadczenia AWS ograniczone do kolejki funkcji POS.
successbooleanWymaganefalse.
failureReasonstringWymaganeZobacz Activation failure reasons.
ReportPosHealth
Wysyłane przez POS bezpośrednio po aktywacji i w regularnych interwałach heartbeat. OpenApp odpowiada HTTP 204 No Content.
Jeśli OpenApp nie otrzyma sprawdzeń stanu w czasie skonfigurowanym w profilu integracji, OpenApp oznacza funkcję POS jako niedostępną, przestaje wysyłać komendy zamówień obsługiwane przez POS i informuje klientów, że lokalizacja jest obecnie niedostępna.
healthybooleanWymaganeAktualny stan zdrowia POS.
softwareNamestringWymaganeNazwa produktu oprogramowania POS.
softwareVersionstringWymaganeCiąg wersji oprogramowania POS.
Wiadomości kontroli dostępności
PosLocationAvailabilityChanged
Wysyłane przez POS, gdy lokalizacja jest otwierana lub zamykana dla zamówień obsługiwanych przez OpenApp. Zamknięcie lokalizacji wyłącza nowe zamówienia przy stoliku, zamówienia na odbiór i zamówienia z dostawą do czasu ponownego otwarcia przez POS albo otrzymania przez OpenApp równoważnej aktualizacji dostępności z innego autoryzowanego źródła.
openbooleanWymaganetrue, gdy lokalizacja jest otwarta dla zamówień obsługiwanych przez OpenApp; false, gdy jest zamknięta.
reasonCodestringOpcjonalnePowód czytelny maszynowo, na przykład CLOSED_FOR_DAY, TEMPORARILY_CLOSED albo POS_OPERATOR_ACTION.
messagestringOpcjonalneKomunikat czytelny dla człowieka, który OpenApp może mapować na treść widoczną dla klienta.
effectiveAtstringOpcjonalneZnacznik czasu ISO 8601, od którego stan zaczyna obowiązywać. Domyślnie czas otrzymania.
PosOrderTypeAvailabilityChanged
Wysyłane przez POS, gdy chce zmienić dostępność wybranych typów zamówień obsługiwanych przez OpenApp bez zamykania lokalizacji. Obsługuje to tymczasową kontrolę obciążenia, na przykład wstrzymanie odbioru i dostawy w godzinach szczytu przy pozostawieniu aktywnego zamawiania przy stoliku.
changesarray of objectsWymaganeLista zmian dostępności typów zamówień. Zmieniane są tylko wymienione typy zamówień; pominięte typy pozostają bez zmian. Każdy element zawiera orderType, state, opcjonalne reasonCode i opcjonalne effectiveUntil.
Pokaż parametry podrzędneUkryj parametry podrzędne4
orderTypeOrderTypeWymaganeTyp zamówienia do zmiany. Zobacz Order types.
stateOrderTypeAvailabilityStateWymaganeDocelowy stan tego typu zamówienia. Zobacz Order type availability states.
reasonCodestringOpcjonalnePowód stanu tego typu zamówienia czytelny maszynowo, na przykład KITCHEN_OVERLOADED, NO_DRIVERS.
effectiveUntilstringOpcjonalneZnacznik czasu ISO 8601, po którym OpenApp może wyczyścić stan tego typu zamówienia. Jeśli pominięte, stan pozostaje do kolejnej zmiany.
Przykład:
{
"changes": [
{
"orderType": "PICKUP",
"state": "PAUSED",
"reasonCode": "KITCHEN_OVERLOADED",
"effectiveUntil": "2026-05-29T18:00:00Z"
},
{
"orderType": "DELIVERY",
"state": "PAUSED",
"reasonCode": "NO_DRIVERS",
"effectiveUntil": "2026-05-29T19:00:00Z"
}
]
}
Wiadomości synchronizacji menu
ProductListingsSyncRequested
checkpointobject | nullWymaganeOstatni punkt kontrolny synchronizacji. null żąda pełnej synchronizacji. Obiekt zawiera znacznik czasu ostatniego
pomyślnego pobrania i ostatni widziany identyfikator listingu POS.
ProductListingsSynced
checkpointobjectWymaganeNastępny punkt kontrolny do użycia w kolejnych synchronizacjach przyrostowych.
listingsarrayWymaganeListingi produktów zmienione po żądanym punkcie kontrolnym. Puste, gdy nic się nie zmieniło.
ProductListingsUpdated
listingsarrayWymaganeZmienione dane listingu produktu, ceny albo stanu magazynowego. Zawiera tylko różnicę.
Wiadomości zamawiania przy stoliku
TableOrderSnapshotRequested
tableIdstringWymaganeIdentyfikator stolika POS ustalony przez OpenApp z QR.
checkpointstringOpcjonalneOstatni znacznik czasu aktualizacji POS zapisany przez OpenApp dla tego stolika. POS może go użyć, aby zdecydować, czy zwrócić snapshot.
TableOrderSnapshotResolutionResult
Zwracane przez POS w odpowiedzi na TableOrderSnapshotRequested.
- Sukces
- Błąd
successbooleanWymaganetrue.
tableSessionContextobjectWymaganeZobacz tableSessionContext.
tableOrderSnapshotobjectWymaganeZobacz tableOrderSnapshot.
successbooleanWymaganefalse.
reasonCodestringWymaganePowód odrzucenia czytelny maszynowo.
retryablebooleanWymaganeCzy OpenApp może ponowić żądanie.
messagestringOpcjonalneCzytelny dla człowieka opis odrzucenia.
currentStatusstringOpcjonalneAktualny status stolika, jeśli znany. Zobacz Table status.
OrderSubmissionRequested
Wysyła pozycje dla kontekstu realizacji TABLE, PICKUP albo DELIVERY.
Gdy payment jest obecne, OpenApp już zakończył płatność klienta, a wysłanie jest prepaid. Gdy payment jest pominięte, wysłanie jest nieopłacone/postpaid, a płatność jest obsługiwana później poza tą wiadomością.
orderContextobjectWymaganeZobacz orderContext.
itemsarrayWymaganePozycje wysyłane do POS. TBD
paymentobjectOpcjonalneZakończona płatność OpenApp dla wysłań prepaid. Pomiń dla wysłań nieopłaconych/postpaid. Zobacz payment.
OrderSubmissionResult
Zwracane przez POS w odpowiedzi na OrderSubmissionRequested. Używane przez konteksty stolika, odbioru i dostawy.
success: false jest też używane, gdy odrzucono tylko część pozycji.
- Sukces
- Błąd
successbooleanWymaganetrue. Wszystkie wysłane pozycje zostały zaakceptowane.
acceptedItemsarrayWymaganePozycje zaakceptowane przez POS. TBD
tableOrderSnapshotobjectOpcjonalneZaktualizowany snapshot stolika POS. Tylko przepływ stolika. Zobacz tableOrderSnapshot.
receiptobjectOpcjonalneParagon albo potwierdzenie fiskalne dla wysłań prepaid, gdy OrderSubmissionRequested.payment było obecne. Zobacz receipt.
successbooleanWymaganefalse. Co najmniej jedna pozycja została odrzucona.
acceptedItemsarrayOpcjonalnePozycje zaakceptowane przez POS, jeśli istnieją. TBD
rejectedItemsarrayWymaganePozycje odrzucone przez POS, każda z reasonCode. Zobacz Mutation rejection reasons. TBD
tableOrderSnapshotobjectOpcjonalneZaktualizowany snapshot stolika POS. Tylko przepływ stolika. Zobacz tableOrderSnapshot.
TableOrderSnapshotChanged
Wysyłane przez POS, gdy stan zamówienia stolika zmienia się po stronie POS.
changeTypestringWymaganeZobacz Change types.
diffobjectWymaganeZmienione linie zamówienia, usunięte identyfikatory linii i zmiany statusu względem poprzedniego snapshotu. TBD
reasonCodestringOpcjonalneWymagane, gdy zmiana ma powód biznesowy. Na przykład brak towaru, reklamacja albo anulowanie po stronie POS.
Wiadomości rachunku i płatności
BillPreparationRequested
orderContextobjectWymaganeIdentyfikuje stolik albo zamówienie. Zobacz orderContext.
checkpointstringWymaganeNajnowszy checkpoint stanu po stronie POS, który posiada OpenApp. Dla kontekstów stolika jest to updatedAt z
najnowszego tableOrderSnapshot. POS używa go, aby zdecydować, czy zwrócić ORDER_CHANGED, ponieważ jego stan
poszedł dalej. Znacznik czasu ISO 8601.
billingDetailsobjectOpcjonalneDane faktury, jeśli klient poprosił o fakturę. Zobacz billingDetails.
itemsarrayOpcjonalnePozycje do rozliczenia. Obecne, gdy opłacana jest tylko część zamówienia. Odwołuje się do istniejących identyfikatorów pozycji po stronie POS z tableOrderSnapshot.lines. Format selektora jest TBD razem ze schematem identyfikatorów pozycji w tableOrderSnapshot.lines.
BillPreparationResult
Zwracane przez POS w odpowiedzi na BillPreparationRequested.
- Sukces
- Błąd
successbooleanWymaganetrue.
posBillIdstringWymaganeIdentyfikator przygotowanego rachunku nadany przez POS.
billobjectWymaganeZobacz bill.
successbooleanWymaganefalse.
reasonCodestringWymaganeretryablebooleanWymaganeCzy OpenApp może ponowić żądanie.
currentSnapshotobjectOpcjonalneAktualny snapshot stolika POS, jeśli dostępny. Zobacz tableOrderSnapshot.
BillPaymentCompleted
Używane, gdy płatność OpenApp następuje po przygotowaniu rachunku przez POS.
paymentobjectWymaganeSzczegóły płatności do zarejestrowania. Zobacz payment.
posBillIdstringWymaganeIdentyfikator nadany przez POS i zwrócony w BillPreparationResult.
BillPaymentFailed
Wysyłane tylko wtedy, gdy płatność OpenApp nie powiedzie się po pomyślnym BillPreparationResult. Wysłania prepaid nigdy nie wywołują BillPaymentFailed, ponieważ OpenApp wykonuje płatność przed kontaktem z POS; jeśli płatność się nie powiedzie, OpenApp nie wysyła zamówienia.
posBillIdstringWymaganeIdentyfikator nadany przez POS i zwrócony w BillPreparationResult.
reasonCodestringWymaganePowód niepowodzenia czytelny maszynowo. POS zwalnia każdy przygotowany albo oczekujący na płatność stan.
BillPaymentResult
Zwracane przez POS w odpowiedzi na BillPaymentCompleted dla późniejszej płatności OpenApp dotyczącej przygotowanego rachunku. Nie jest używane dla wysłań prepaid, w których payment było zawarte w OrderSubmissionRequested.
- Sukces
- Błąd
successbooleanWymaganetrue.
receiptobjectWymaganeZobacz receipt.
successbooleanWymaganefalse. OpenApp zwraca płatność OpenApp.
reasonCodestringWymaganePowód odrzucenia czytelny maszynowo.
retryablebooleanWymaganeCzy OpenApp może ponowić zastosowanie płatności.
Modele bazowe
orderContext
Identyfikuje kontekst realizacji po stronie POS, którego dotyczy komenda.
- Stolik
- Odbiór
- Dostawa
typestringWymaganeTABLE. Kontekst zamówienia przy stoliku.
tableIdstringWymaganeIdentyfikator stolika POS.
customerNotestringOpcjonalneNotatka tekstowa widoczna dla POS.
typestringWymaganePICKUP. Kontekst zamówienia z odbiorem osobistym.
pickupDetailsobjectWymaganeSzczegóły odbioru. TBD
customerNotestringOpcjonalneNotatka tekstowa widoczna dla POS.
typestringWymaganeDELIVERY. Kontekst zamówienia z dostawą.
deliveryDetailsobjectWymaganeSzczegóły dostawy: adres, kontakt, wskazówka dla kuriera. TBD
customerNotestringOpcjonalneNotatka tekstowa widoczna dla POS.
tableSessionContext
Metadane sesji stolika zwracane razem ze snapshotami stolika, gdy stolik zostanie rozwiązany.
locationIdstringWymaganeFizyczna lokalizacja restauracji.
tableIdstringWymaganeIdentyfikator stolika POS.
tableNumberstringWymaganeNumer stolika czytelny dla człowieka.
statusstringWymaganeZobacz Table status.
openedAtstringWymaganeZnacznik czasu ISO 8601 otwarcia stolika.
closedAtstringOpcjonalneZnacznik czasu ISO 8601 zamknięcia stolika. Obecny, gdy status to closed albo cancelled.
tableOrderSnapshot
POS pozostaje źródłem prawdy dla stanu stolika/otwartego rachunku. OpenApp mapuje istotny stan do widoków klienckich.
tableIdstringWymaganeIdentyfikator stolika POS.
statusstringWymaganeZobacz Table status.
linesarrayWymaganeLinie zamówienia POS. TBD
totalsobjectWymaganeSumy rachunku. TBD
paymentsarrayWymaganePłatności zastosowane w POS. TBD
updatedAtstringWymaganeZnacznik czasu ISO 8601 ostatniej aktualizacji POS. Używany przez OpenApp jako następny punkt kontrolny synchronizacji.
billingDetails
Dane faktury dołączone do rachunku, gdy klient prosi o fakturę. TBD
taxIdstringWymaganeIdentyfikator podatkowy podmiotu fakturowanego, na przykład polski NIP.
companyNamestringWymaganeNazwa prawna na fakturze.
addressobjectWymaganeAdres pocztowy. TBD
bill
Zwracane przez POS w BillPreparationResult, gdy rachunek zostanie przygotowany. TBD
posBillIdstringWymaganeIdentyfikator przygotowanego rachunku nadany przez POS.
linesarrayWymaganeLinie rachunku zamrożone przez POS. TBD
totalsobjectWymaganeSumy rachunku. TBD
billingDetailsobjectOpcjonalneZobacz billingDetails.
preparedAtstringWymaganeZnacznik czasu ISO 8601 przygotowania i zamrożenia rachunku.
payment
Szczegóły pomyślnej płatności OpenApp.TBD
oaPaymentIdstringWymaganeIdentyfikator płatności OpenApp.
amountobjectWymaganeObiekt pieniędzy z value (integer, jednostki mniejsze) i currency (string). TBD
paidAtstringWymaganeZnacznik czasu ISO 8601 zakończenia płatności.
receipt
Zwracane przez POS po zarejestrowaniu albo zastosowaniu płatności OpenApp. TBD
receiptNumberstringWymaganeNumer paragonu nadany przez POS.
fiscalSignaturestringOpcjonalnePodpis fiskalizacji, jeśli dotyczy.
issuedAtstringWymaganeZnacznik czasu ISO 8601 wystawienia paragonu.
receiptUrlstringOpcjonalneURL, pod którym można pobrać paragon.
Enumy
Table status
Używane przez tableSessionContext.status i tableOrderSnapshot.status.
| Wartość | Znaczenie |
|---|---|
OPEN | Stolik jest otwarty i przyjmuje zmiany. |
CLOSING | Stolik jest zamykany; mutacje mogą zostać odrzucone. |
CLOSED | Stolik jest zamknięty. |
CANCELLED | Stolik został anulowany. |
Mutation rejection reasons
Używane przez OrderSubmissionResult.rejectedItems[].reasonCode.
| Powód | Znaczenie |
|---|---|
OUT_OF_STOCK | Pozycja nie jest już dostępna. |
INSUFFICIENT_STOCK | Żądana ilość jest niedostępna. |
DELISTED | Pozycja już nie istnieje albo nie może być sprzedawana. |
ORDER_CLOSED | Stolik albo rachunek jest zamknięty lub zamykany. |
PRICE_CHANGED | OpenApp musi odświeżyć cenę albo snapshot listingu. |
Change types
Używane przez TableOrderSnapshotChanged.changeType.
| Wartość | Przypadek użycia |
|---|---|
POS_LINE_ADDED | Kelner dodaje napoje albo jedzenie bezpośrednio w POS. |
LINE_CANCELLED | Kuchnia albo POS anuluje linię, na przykład z powodu braku towaru. |
LINE_DELIVERED | Kelner oznacza napoje albo jedzenie jako wydane. |
LINE_UPDATED | Kelner usuwa albo rabatuje linię po reklamacji. |
ORDER_CLOSED | POS zamyka stolik albo otwarte zamówienie. |
Bill preparation rejection reasons
Używane przez BillPreparationResult.reasonCode.
| Powód | Znaczenie |
|---|---|
ORDER_CHANGED | Rewizja POS się zmieniła; OpenApp musi odświeżyć i potwierdzić z klientem. |
ORDER_CLOSED | Rachunek albo zamówienie jest już zamknięte. |
PAYMENT_NOT_ALLOWED | POS nie może przyjąć płatności OpenApp dla tego stolika albo zamówienia. |
FISCAL_ERROR | Fiskalizacja albo przygotowanie paragonu nie powiodło się. |
POS_OFFLINE_OR_BUSY | Tymczasowa awaria POS. |
Activation failure reasons
Używane przez PosActivationResponse.failureReason.
| Powód | Znaczenie |
|---|---|
INVALID_OR_EXPIRED_PIN | PIN nie istnieje, wygasł, został już zużyty albo nie pasuje do przesłanego merchantTaxId. |
ACTIVATION_NOT_ALLOWED | Merchant, profil integracji, lokalizacja albo funkcja POS nie jest w stanie pozwalającym na aktywację. |
Order types
Używane przez PosOrderTypeAvailabilityChanged.changes[].orderType.
| Wartość | Znaczenie |
|---|---|
TABLE | Kontekst zamówienia przy stoliku. |
PICKUP | Kontekst odbioru osobistego. |
DELIVERY | Kontekst dostawy. |
Order type availability states
Używane przez PosOrderTypeAvailabilityChanged.changes[].state.
| Wartość | Znaczenie |
|---|---|
ACCEPTING | OpenApp może rozpoczynać nowe zamówienia tego typu. |
PAUSED | OpenApp nie może rozpoczynać nowych zamówień tego typu. |