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.
merchantTaxIdstringRequiredUniwersalny identyfikator podatkowy merchanta, na przykład polski NIP.
pinCodestringRequiredKrótkotrwały PIN aktywacyjny wyświetlany w panelu merchanta.
posInstallationIdstringOptionalStabilny identyfikator instalacji POS po stronie merchanta.
softwareNamestringRequiredNazwa produktu oprogramowania POS.
softwareVersionstringRequiredCiąg wersji oprogramowania POS.
PosActivationResponse
Zwracane przez OpenApp w odpowiedzi na ActivatePos.
- Sukces
- Błąd
successbooleanRequiredtrue.
merchantIdstringRequiredIdentyfikator merchanta ustalony z merchantTaxId.
integrationProfileIdstringRequiredProfil integracji ograniczony do lokalizacji, z którym POS jest teraz powiązany.
locationIdstringRequiredIdentyfikator fizycznej lokalizacji.
posIdstringRequiredIdentyfikator POS nadany przez OpenApp.
apiConfigurationobjectRequiredObiekt z credentials (apiKey, secret) używanymi do podpisywania wywołań POS -> OpenApp.
queueConfigurationobjectOptionalObecne tylko wtedy, gdy skonfigurowano dostarczanie przez kolejkę. Zawiera URL kolejki, region i poświadczenia AWS ograniczone do kolejki funkcji POS.
successbooleanRequiredfalse.
failureReasonstringRequiredZobacz 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.
healthybooleanRequiredAktualny stan zdrowia POS.
softwareNamestringRequiredNazwa produktu oprogramowania POS.
softwareVersionstringRequiredCią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.
openbooleanRequiredtrue, gdy lokalizacja jest otwarta dla zamówień obsługiwanych przez OpenApp; false, gdy jest zamknięta.
reasonCodestringOptionalPowód czytelny maszynowo, na przykład CLOSED_FOR_DAY, TEMPORARILY_CLOSED albo POS_OPERATOR_ACTION.
messagestringOptionalKomunikat czytelny dla człowieka, który OpenApp może mapować na treść widoczną dla klienta.
effectiveAtstringOptionalZnacznik 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 objectsRequiredLista 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.
Show child parametersHide child parameters
orderTypeOrderTypeRequiredTyp zamówienia do zmiany. Zobacz Order types.
stateOrderTypeAvailabilityStateRequiredDocelowy stan tego typu zamówienia. Zobacz Order type availability states.
reasonCodestringOptionalPowód stanu tego typu zamówienia czytelny maszynowo, na przykład KITCHEN_OVERLOADED, NO_DRIVERS.
effectiveUntilstringOptionalZnacznik 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 | nullRequiredOstatni punkt kontrolny synchronizacji. null żąda pełnej synchronizacji. Obiekt zawiera znacznik czasu ostatniego
pomyślnego pobrania i ostatni widziany identyfikator listingu POS.
ProductListingsSynced
checkpointobjectRequiredNastępny punkt kontrolny do użycia w kolejnych synchronizacjach przyrostowych.
listingsarrayRequiredListingi produktów zmienione po żądanym punkcie kontrolnym. Puste, gdy nic się nie zmieniło.
ProductListingsUpdated
listingsarrayRequiredZmienione dane listingu produktu, ceny albo stanu magazynowego. Zawiera tylko różnicę.
Wiadomości zamawiania przy stoliku
TableOrderSnapshotRequested
tableIdstringRequiredIdentyfikator stolika POS ustalony przez OpenApp z QR.
checkpointstringOptionalOstatni 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
successbooleanRequiredtrue.
tableSessionContextobjectRequiredZobacz tableSessionContext.
tableOrderSnapshotobjectRequiredZobacz tableOrderSnapshot.
successbooleanRequiredfalse.
reasonCodestringRequiredPowód odrzucenia czytelny maszynowo.
retryablebooleanRequiredCzy OpenApp może ponowić żądanie.
messagestringOptionalCzytelny dla człowieka opis odrzucenia.
currentStatusstringOptionalAktualny 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ą.
orderContextobjectRequiredZobacz orderContext.
itemsarrayRequiredPozycje wysyłane do POS. TBD
paymentobjectOptionalZakoń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
successbooleanRequiredtrue. Wszystkie wysłane pozycje zostały zaakceptowane.
acceptedItemsarrayRequiredPozycje zaakceptowane przez POS. TBD
tableOrderSnapshotobjectOptionalZaktualizowany snapshot stolika POS. Tylko przepływ stolika. Zobacz tableOrderSnapshot.
receiptobjectOptionalParagon albo potwierdzenie fiskalne dla wysłań prepaid, gdy OrderSubmissionRequested.payment było obecne. Zobacz receipt.
successbooleanRequiredfalse. Co najmniej jedna pozycja została odrzucona.
acceptedItemsarrayOptionalPozycje zaakceptowane przez POS, jeśli istnieją. TBD
rejectedItemsarrayRequiredPozycje odrzucone przez POS, każda z reasonCode. Zobacz Mutation rejection reasons. TBD
tableOrderSnapshotobjectOptionalZaktualizowany snapshot stolika POS. Tylko przepływ stolika. Zobacz tableOrderSnapshot.
TableOrderSnapshotChanged
Wysyłane przez POS, gdy stan zamówienia stolika zmienia się po stronie POS.
changeTypestringRequiredZobacz Change types.
diffobjectRequiredZmienione linie zamówienia, usunięte identyfikatory linii i zmiany statusu względem poprzedniego snapshotu. TBD
reasonCodestringOptionalWymagane, 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
orderContextobjectRequiredIdentyfikuje stolik albo zamówienie. Zobacz orderContext.
checkpointstringRequiredNajnowszy 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.
billingDetailsobjectOptionalDane faktury, jeśli klient poprosił o fakturę. Zobacz billingDetails.
itemsarrayOptionalPozycje 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
successbooleanRequiredtrue.
posBillIdstringRequiredIdentyfikator przygotowanego rachunku nadany przez POS.
billobjectRequiredZobacz bill.
successbooleanRequiredfalse.
reasonCodestringRequiredretryablebooleanRequiredCzy OpenApp może ponowić żądanie.
currentSnapshotobjectOptionalAktualny snapshot stolika POS, jeśli dostępny. Zobacz tableOrderSnapshot.
BillPaymentCompleted
Używane, gdy płatność OpenApp następuje po przygotowaniu rachunku przez POS.
paymentobjectRequiredSzczegóły płatności do zarejestrowania. Zobacz payment.
posBillIdstringRequiredIdentyfikator 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.
posBillIdstringRequiredIdentyfikator nadany przez POS i zwrócony w BillPreparationResult.
reasonCodestringRequiredPowó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
successbooleanRequiredtrue.
receiptobjectRequiredZobacz receipt.
successbooleanRequiredfalse. OpenApp zwraca płatność OpenApp.
reasonCodestringRequiredPowód odrzucenia czytelny maszynowo.
retryablebooleanRequiredCzy 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
typestringRequiredTABLE. Kontekst zamówienia przy stoliku.
tableIdstringRequiredIdentyfikator stolika POS.
customerNotestringOptionalNotatka tekstowa widoczna dla POS.
typestringRequiredPICKUP. Kontekst zamówienia z odbiorem osobistym.
pickupDetailsobjectRequiredSzczegóły odbioru. TBD
customerNotestringOptionalNotatka tekstowa widoczna dla POS.
typestringRequiredDELIVERY. Kontekst zamówienia z dostawą.
deliveryDetailsobjectRequiredSzczegóły dostawy: adres, kontakt, wskazówka dla kuriera. TBD
customerNotestringOptionalNotatka tekstowa widoczna dla POS.
tableSessionContext
Metadane sesji stolika zwracane razem ze snapshotami stolika, gdy stolik zostanie rozwiązany.
locationIdstringRequiredFizyczna lokalizacja restauracji.
tableIdstringRequiredIdentyfikator stolika POS.
tableNumberstringRequiredNumer stolika czytelny dla człowieka.
statusstringRequiredZobacz Table status.
openedAtstringRequiredZnacznik czasu ISO 8601 otwarcia stolika.
closedAtstringOptionalZnacznik 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.
tableIdstringRequiredIdentyfikator stolika POS.
statusstringRequiredZobacz Table status.
linesarrayRequiredLinie zamówienia POS. TBD
totalsobjectRequiredSumy rachunku. TBD
paymentsarrayRequiredPłatności zastosowane w POS. TBD
updatedAtstringRequiredZnacznik 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
taxIdstringRequiredIdentyfikator podatkowy podmiotu fakturowanego, na przykład polski NIP.
companyNamestringRequiredNazwa prawna na fakturze.
addressobjectRequiredAdres pocztowy. TBD
bill
Zwracane przez POS w BillPreparationResult, gdy rachunek zostanie przygotowany. TBD
posBillIdstringRequiredIdentyfikator przygotowanego rachunku nadany przez POS.
linesarrayRequiredLinie rachunku zamrożone przez POS. TBD
totalsobjectRequiredSumy rachunku. TBD
billingDetailsobjectOptionalZobacz billingDetails.
preparedAtstringRequiredZnacznik czasu ISO 8601 przygotowania i zamrożenia rachunku.
payment
Szczegóły pomyślnej płatności OpenApp.TBD
oaPaymentIdstringRequiredIdentyfikator płatności OpenApp.
amountobjectRequiredObiekt pieniędzy z value (integer, jednostki mniejsze) i currency (string). TBD
paidAtstringRequiredZnacznik czasu ISO 8601 zakończenia płatności.
receipt
Zwracane przez POS po zarejestrowaniu albo zastosowaniu płatności OpenApp. TBD
receiptNumberstringRequiredNumer paragonu nadany przez POS.
fiscalSignaturestringOptionalPodpis fiskalizacji, jeśli dotyczy.
issuedAtstringRequiredZnacznik czasu ISO 8601 wystawienia paragonu.
receiptUrlstringOptionalURL, 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. |