Авторизация
Authorization: Bearer <HALLIFY_GUEST_PAYMENT_ACCESS_TOKEN>Приватный гостевой платёжный токен, связанный с нативным actor, tenant, источником, transport origin и текущими полномочиями. Для списания требуется явное согласие; точное раскрытие исходного результата не разрешает новую денежную команду и не предоставляет сессию аккаунта Hallify.
Параметры
originЗаголовок · ОбязательноФактический HTTP Origin вызывающей стороны; должен точно совпадать с текущей транспортной аудиторией платёжного доступа.
stringПолное определение
{ "type": "string", "maxLength": 2048, "example": "example" }accessIdПуть · ОбязательноНесекретный UUID, выданный при открытии или передаче нативного платёжного доступа. Используйте с Bearer-токеном этого доступа; сам UUID полномочий не даёт.
string · uuidПолное определение
{ "format": "uuid", "type": "string", "example": "9b6163a8-afea-4877-818b-8e2ae28a2845" }
Ответы
200Текущий нативный счёт, доступный к оплате, с нулевыми остатками там, где это допустимо, разрешённой доступностью позиций и допустимыми merchant-вариантами.
Полное определение
{
"$ref": "#/components/schemas/GuestPaymentBillDto"
}{
"payee": {
"venueName": "Example name",
"legalName": "Example name"
},
"currency": "USD",
"collectibleAmount": "12.50",
"merchantChoices": [
{
"merchantBindingId": "a9365a46-0f50-4efd-89fb-cd79e20e0439",
"provider": "BOG_PAYMENT_MANAGER",
"label": "example"
}
],
"orders": [
{
"orderId": "f3127edf-ce4f-4da7-8be5-81b962024e6c",
"revision": 1,
"collectibleAmount": "12.50",
"items": [
{
"orderItemId": "48069d23-be97-4039-8099-9db268ddf890",
"label": "Example name",
"availableQuantity": "1.0000",
"collectibleAmount": "12.50"
}
]
}
]
}400Неверное представление ограниченного запроса или ключа команды.
Полное определение
{
"$ref": "#/components/schemas/TranslatedErrorDto"
}{
"statusCode": 400,
"error": "errors:http.badRequest",
"code": "HTTP_BAD_REQUEST",
"message": "errors:http.badRequest",
"translationKey": "errors:http.badRequest"
}401Отклоняет отсутствующий, неверно представленный, истёкший, отозванный или недействительный guestPaymentAccessToken на границе соответствующего домена.
Полное определение
{
"$ref": "#/components/schemas/TranslatedErrorDto"
}{
"statusCode": 401,
"error": "errors:http.unauthorized",
"code": "HTTP_UNAUTHORIZED",
"message": "errors:http.unauthorized",
"translationKey": "errors:http.unauthorized"
}404Текущие нативные полномочия, приватный платёжный токен или точный исходный checkout недоступны.
Полное определение
{
"$ref": "#/components/schemas/TranslatedErrorDto"
}{
"statusCode": 404,
"error": "errors:http.notFound",
"code": "HTTP_NOT_FOUND",
"message": "errors:http.notFound",
"translationKey": "errors:http.notFound"
}409Изменились нативный источник, проверенный счёт, ревизия согласия или состояние параллельной команды.
Полное определение
{
"$ref": "#/components/schemas/TranslatedErrorDto"
}{
"statusCode": 409,
"error": "errors:http.conflict",
"code": "HTTP_CONFLICT",
"message": "errors:http.conflict",
"translationKey": "errors:http.conflict"
}Схемы
GuestPaymentBillDto
Текущий доступный к оплате нативный счёт и допустимые merchant-варианты для подготовки оплаты с гостевым доступом вызывающей стороны, привязанным к origin.
purposeНеобязательноПрисутствует для настоящей гарантии брони. Ответы счёта Order сохраняют прежнюю форму.
stringПолное определение
{ "type": "string", "enum": [ "RESERVATION_GUARANTEE" ], "description": "Присутствует для настоящей гарантии брони. Ответы счёта Order сохраняют прежнюю форму.", "example": "RESERVATION_GUARANTEE" }guaranteeНеобязательноОбзор гарантии брони; Orders пусты для этого источника.
allOfПолное определение
{ "description": "Обзор гарантии брони; Orders пусты для этого источника.", "allOf": [ { "$ref": "#/components/schemas/GuestPaymentGuaranteeReviewDto" } ], "example": { "reservationId": "b21b31e5-56ea-442f-8594-270e4efd0f5e", "guaranteeRequirementId": "97101ce8-3e48-412d-8520-b38e371ebe3b", "revision": 1, "kind": "DEPOSIT", "termsHash": null, "dueAt": null, "authorizationExpiresAt": null, "terms": null } }payeeОбязательноТекущие серверные сведения о заведении и юридическом лице получателя этого нативного счёта; финансовое предложение сохраняет собственный неизменяемый снимок.
allOfПолное определение
{ "description": "Текущие серверные сведения о заведении и юридическом лице получателя этого нативного счёта; финансовое предложение сохраняет собственный неизменяемый снимок.", "allOf": [ { "$ref": "#/components/schemas/GuestPaymentPayeeDto" } ], "example": { "venueName": "Example name", "legalName": "Example name" } }currencyОбязательноВалюта счёта заведения для всех основных сумм и последующих чаевых в этом сценарии гостевой оплаты.
stringПолное определение
{ "type": "string", "enum": [ "USD", "GEL" ], "description": "Валюта счёта заведения для всех основных сумм и последующих чаевых в этом сценарии гостевой оплаты.", "example": "USD" }collectibleAmountОбязательноОбщая доступная к оплате основная сумма возвращённых нативных Orders без новых чаевых, строкой с двумя дробными знаками; 0.00 означает отсутствие доступной основной суммы сейчас.
stringПолное определение
{ "type": "string", "example": "12.50", "description": "Общая доступная к оплате основная сумма возвращённых нативных Orders без новых чаевых, строкой с двумя дробными знаками; 0.00 означает отсутствие доступной основной суммы сейчас." }merchantChoicesОбязательноДопустимые сейчас настроенные провайдеры для доступных к оплате Orders в пределах серверного лимита выбора; список пуст, если доступной основной суммы нет.
arrayПолное определение
{ "description": "Допустимые сейчас настроенные провайдеры для доступных к оплате Orders в пределах серверного лимита выбора; список пуст, если доступной основной суммы нет.", "type": "array", "items": { "$ref": "#/components/schemas/GuestPaymentMerchantChoiceDto" }, "example": [ { "merchantBindingId": "a9365a46-0f50-4efd-89fb-cd79e20e0439", "provider": "BOG_PAYMENT_MANAGER", "label": "example" } ] }ordersОбязательноТекущие канонические проекции счетов нативных Orders, допущенных этим платёжным scope.
arrayПолное определение
{ "description": "Текущие канонические проекции счетов нативных Orders, допущенных этим платёжным scope.", "type": "array", "items": { "$ref": "#/components/schemas/GuestPaymentOrderBillDto" }, "example": [ { "orderId": "f3127edf-ce4f-4da7-8be5-81b962024e6c", "revision": 1, "collectibleAmount": "12.50", "items": [ { "orderItemId": "48069d23-be97-4039-8099-9db268ddf890", "label": "Example name", "availableQuantity": "1.0000", "collectibleAmount": "12.50" } ] } ] }
Полное определение
{
"type": "object",
"properties": {
"purpose": {
"type": "string",
"enum": [
"RESERVATION_GUARANTEE"
],
"description": "Присутствует для настоящей гарантии брони. Ответы счёта Order сохраняют прежнюю форму.",
"example": "RESERVATION_GUARANTEE"
},
"guarantee": {
"description": "Обзор гарантии брони; Orders пусты для этого источника.",
"allOf": [
{
"$ref": "#/components/schemas/GuestPaymentGuaranteeReviewDto"
}
],
"example": {
"reservationId": "b21b31e5-56ea-442f-8594-270e4efd0f5e",
"guaranteeRequirementId": "97101ce8-3e48-412d-8520-b38e371ebe3b",
"revision": 1,
"kind": "DEPOSIT",
"termsHash": null,
"dueAt": null,
"authorizationExpiresAt": null,
"terms": null
}
},
"payee": {
"description": "Текущие серверные сведения о заведении и юридическом лице получателя этого нативного счёта; финансовое предложение сохраняет собственный неизменяемый снимок.",
"allOf": [
{
"$ref": "#/components/schemas/GuestPaymentPayeeDto"
}
],
"example": {
"venueName": "Example name",
"legalName": "Example name"
}
},
"currency": {
"type": "string",
"enum": [
"USD",
"GEL"
],
"description": "Валюта счёта заведения для всех основных сумм и последующих чаевых в этом сценарии гостевой оплаты.",
"example": "USD"
},
"collectibleAmount": {
"type": "string",
"example": "12.50",
"description": "Общая доступная к оплате основная сумма возвращённых нативных Orders без новых чаевых, строкой с двумя дробными знаками; 0.00 означает отсутствие доступной основной суммы сейчас."
},
"merchantChoices": {
"description": "Допустимые сейчас настроенные провайдеры для доступных к оплате Orders в пределах серверного лимита выбора; список пуст, если доступной основной суммы нет.",
"type": "array",
"items": {
"$ref": "#/components/schemas/GuestPaymentMerchantChoiceDto"
},
"example": [
{
"merchantBindingId": "a9365a46-0f50-4efd-89fb-cd79e20e0439",
"provider": "BOG_PAYMENT_MANAGER",
"label": "example"
}
]
},
"orders": {
"description": "Текущие канонические проекции счетов нативных Orders, допущенных этим платёжным scope.",
"type": "array",
"items": {
"$ref": "#/components/schemas/GuestPaymentOrderBillDto"
},
"example": [
{
"orderId": "f3127edf-ce4f-4da7-8be5-81b962024e6c",
"revision": 1,
"collectibleAmount": "12.50",
"items": [
{
"orderItemId": "48069d23-be97-4039-8099-9db268ddf890",
"label": "Example name",
"availableQuantity": "1.0000",
"collectibleAmount": "12.50"
}
]
}
]
}
},
"description": "Текущий доступный к оплате нативный счёт и допустимые merchant-варианты для подготовки оплаты с гостевым доступом вызывающей стороны, привязанным к origin.",
"required": [
"payee",
"currency",
"collectibleAmount",
"merchantChoices",
"orders"
],
"example": {
"payee": {
"venueName": "Example name",
"legalName": "Example name"
},
"currency": "USD",
"collectibleAmount": "12.50",
"merchantChoices": [
{
"merchantBindingId": "a9365a46-0f50-4efd-89fb-cd79e20e0439",
"provider": "BOG_PAYMENT_MANAGER",
"label": "example"
}
],
"orders": [
{
"orderId": "f3127edf-ce4f-4da7-8be5-81b962024e6c",
"revision": 1,
"collectibleAmount": "12.50",
"items": [
{
"orderItemId": "48069d23-be97-4039-8099-9db268ddf890",
"label": "Example name",
"availableQuantity": "1.0000",
"collectibleAmount": "12.50"
}
]
}
]
}
}GuestPaymentGuaranteeReviewDto
Настоящая нативная гарантия брони для просмотра; проекция не содержит цели Order или приватного доступа/capability.
reservationIdОбязательноUUID нативной Reservation.
string · uuidПолное определение
{ "type": "string", "format": "uuid", "description": "UUID нативной Reservation.", "example": "b21b31e5-56ea-442f-8594-270e4efd0f5e" }guaranteeRequirementIdОбязательноUUID точного исходного требования гарантии; другое соглашение не принимает его средства.
string · uuidПолное определение
{ "type": "string", "format": "uuid", "description": "UUID точного исходного требования гарантии; другое соглашение не принимает его средства.", "example": "97101ce8-3e48-412d-8520-b38e371ebe3b" }revisionОбязательноНативная ревизия требования, использованная в обзоре.
integerПолное определение
{ "type": "integer", "minimum": 1, "description": "Нативная ревизия требования, использованная в обзоре.", "example": 1 }kindОбязательноНативный вид гарантии, определяющий автоматическое списание или ручное удержание на карте.
stringПолное определение
{ "type": "string", "enum": [ "DEPOSIT", "PREPAID", "CARD_HOLD" ], "description": "Нативный вид гарантии, определяющий автоматическое списание или ручное удержание на карте.", "example": "DEPOSIT" }termsHashОбязательноDigest принятого нативного финансового соглашения; null только для сохранённого legacy-свидетельства.
string · nullПолное определение
{ "type": "string", "nullable": true, "minLength": 64, "maxLength": 64, "pattern": "^[a-f0-9]{64}$", "description": "Digest принятого нативного финансового соглашения; null только для сохранённого legacy-свидетельства.", "example": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef" }dueAtОбязательноНативный срок внесения средств, сохранённый в обзоре.
string · date-time · nullПолное определение
{ "type": "string", "nullable": true, "format": "date-time", "description": "Нативный срок внесения средств, сохранённый в обзоре.", "example": "2026-12-31T18:00:00.000Z" }authorizationExpiresAtОбязательноНативный срок авторизации при наличии. В исходном обзоре может быть null; защитой управляет фактический аутентифицированный срок провайдера.
string · date-time · nullПолное определение
{ "type": "string", "nullable": true, "format": "date-time", "description": "Нативный срок авторизации при наличии. В исходном обзоре может быть null; защитой управляет фактический аутентифицированный срок провайдера.", "example": "2026-12-31T18:00:00.000Z" }termsОбязательноТочные принятые нативные финансовые условия отмены и неявки, спроецированные для просмотра.
object · nullПолное определение
{ "nullable": true, "description": "Точные принятые нативные финансовые условия отмены и неявки, спроецированные для просмотра.", "type": "object", "properties": { "kind": { "type": "string", "enum": [ "DEPOSIT", "PREPAID", "CARD_HOLD" ], "description": "Принятый тип гарантии.", "example": "DEPOSIT" }, "amountBasis": { "type": "string", "enum": [ "FIXED", "PER_GUEST" ], "description": "Принятый расчёт фиксированной суммы или суммы за гостя.", "example": "FIXED" }, "unitAmount": { "type": "string", "pattern": "^(0|[1-9]\\d*)\\.\\d{2}$", "description": "Принятый единичный principal с двумя десятичными знаками.", "example": "1.00" }, "totalAmount": { "type": "string", "pattern": "^(0|[1-9]\\d*)\\.\\d{2}$", "description": "Принятый общий principal гарантии с двумя десятичными знаками.", "example": "1.00" }, "currency": { "type": "string", "minLength": 3, "maxLength": 3, "pattern": "^[A-Z]{3}$", "description": "Валюта принятой гарантии.", "example": "GEL" }, "partySize": { "type": "integer", "minimum": 1, "description": "Число гостей, связанное с принятыми финансовыми условиями.", "example": 1 }, "scheduledAt": { "type": "string", "format": "date-time", "description": "Запланированный момент брони, связанный с соглашением.", "example": "2026-01-15T12:00:00.000Z" }, "dueAt": { "type": "string", "format": "date-time", "description": "Принятый срок внесения средств гарантии.", "example": "2026-12-31T18:00:00.000Z" }, "freeCancellationAt": { "type": "string", "format": "date-time", "description": "Принятый срок бесплатной отмены.", "example": "2026-01-15T12:00:00.000Z" }, "noShowAfter": { "type": "string", "format": "date-time", "description": "Принятый момент решения о неявке; фактическая авторизация карты должна покрывать требуемый период защиты.", "example": "2026-01-15T12:00:00.000Z" }, "forfeitOnLateCancellation": { "type": "boolean", "description": "Разрешают ли принятые условия удержание после поздней отмены.", "example": true }, "forfeitOnNoShow": { "type": "boolean", "description": "Разрешают ли принятые условия удержание при неявке.", "example": true }, "termsVersion": { "type": "string", "description": "Принятая нативная версия условий.", "example": "example" }, "privacyVersion": { "type": "string", "description": "Принятая нативная версия конфиденциальности.", "example": "example" } }, "required": [ "kind", "amountBasis", "unitAmount", "totalAmount", "currency", "partySize", "scheduledAt", "dueAt", "freeCancellationAt", "noShowAfter", "forfeitOnLateCancellation", "forfeitOnNoShow", "termsVersion", "privacyVersion" ], "example": { "kind": "DEPOSIT", "amountBasis": "FIXED", "unitAmount": "1.00", "totalAmount": "1.00", "currency": "GEL", "partySize": 1, "scheduledAt": "2026-01-15T12:00:00.000Z", "dueAt": "2026-12-31T18:00:00.000Z", "freeCancellationAt": "2026-01-15T12:00:00.000Z", "noShowAfter": "2026-01-15T12:00:00.000Z", "forfeitOnLateCancellation": true, "forfeitOnNoShow": true, "termsVersion": "example", "privacyVersion": "example" } }
Полное определение
{
"type": "object",
"properties": {
"reservationId": {
"type": "string",
"format": "uuid",
"description": "UUID нативной Reservation.",
"example": "b21b31e5-56ea-442f-8594-270e4efd0f5e"
},
"guaranteeRequirementId": {
"type": "string",
"format": "uuid",
"description": "UUID точного исходного требования гарантии; другое соглашение не принимает его средства.",
"example": "97101ce8-3e48-412d-8520-b38e371ebe3b"
},
"revision": {
"type": "integer",
"minimum": 1,
"description": "Нативная ревизия требования, использованная в обзоре.",
"example": 1
},
"kind": {
"type": "string",
"enum": [
"DEPOSIT",
"PREPAID",
"CARD_HOLD"
],
"description": "Нативный вид гарантии, определяющий автоматическое списание или ручное удержание на карте.",
"example": "DEPOSIT"
},
"termsHash": {
"type": "string",
"nullable": true,
"minLength": 64,
"maxLength": 64,
"pattern": "^[a-f0-9]{64}$",
"description": "Digest принятого нативного финансового соглашения; null только для сохранённого legacy-свидетельства.",
"example": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef"
},
"dueAt": {
"type": "string",
"nullable": true,
"format": "date-time",
"description": "Нативный срок внесения средств, сохранённый в обзоре.",
"example": "2026-12-31T18:00:00.000Z"
},
"authorizationExpiresAt": {
"type": "string",
"nullable": true,
"format": "date-time",
"description": "Нативный срок авторизации при наличии. В исходном обзоре может быть null; защитой управляет фактический аутентифицированный срок провайдера.",
"example": "2026-12-31T18:00:00.000Z"
},
"terms": {
"nullable": true,
"description": "Точные принятые нативные финансовые условия отмены и неявки, спроецированные для просмотра.",
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"DEPOSIT",
"PREPAID",
"CARD_HOLD"
],
"description": "Принятый тип гарантии.",
"example": "DEPOSIT"
},
"amountBasis": {
"type": "string",
"enum": [
"FIXED",
"PER_GUEST"
],
"description": "Принятый расчёт фиксированной суммы или суммы за гостя.",
"example": "FIXED"
},
"unitAmount": {
"type": "string",
"pattern": "^(0|[1-9]\\d*)\\.\\d{2}$",
"description": "Принятый единичный principal с двумя десятичными знаками.",
"example": "1.00"
},
"totalAmount": {
"type": "string",
"pattern": "^(0|[1-9]\\d*)\\.\\d{2}$",
"description": "Принятый общий principal гарантии с двумя десятичными знаками.",
"example": "1.00"
},
"currency": {
"type": "string",
"minLength": 3,
"maxLength": 3,
"pattern": "^[A-Z]{3}$",
"description": "Валюта принятой гарантии.",
"example": "GEL"
},
"partySize": {
"type": "integer",
"minimum": 1,
"description": "Число гостей, связанное с принятыми финансовыми условиями.",
"example": 1
},
"scheduledAt": {
"type": "string",
"format": "date-time",
"description": "Запланированный момент брони, связанный с соглашением.",
"example": "2026-01-15T12:00:00.000Z"
},
"dueAt": {
"type": "string",
"format": "date-time",
"description": "Принятый срок внесения средств гарантии.",
"example": "2026-12-31T18:00:00.000Z"
},
"freeCancellationAt": {
"type": "string",
"format": "date-time",
"description": "Принятый срок бесплатной отмены.",
"example": "2026-01-15T12:00:00.000Z"
},
"noShowAfter": {
"type": "string",
"format": "date-time",
"description": "Принятый момент решения о неявке; фактическая авторизация карты должна покрывать требуемый период защиты.",
"example": "2026-01-15T12:00:00.000Z"
},
"forfeitOnLateCancellation": {
"type": "boolean",
"description": "Разрешают ли принятые условия удержание после поздней отмены.",
"example": true
},
"forfeitOnNoShow": {
"type": "boolean",
"description": "Разрешают ли принятые условия удержание при неявке.",
"example": true
},
"termsVersion": {
"type": "string",
"description": "Принятая нативная версия условий.",
"example": "example"
},
"privacyVersion": {
"type": "string",
"description": "Принятая нативная версия конфиденциальности.",
"example": "example"
}
},
"required": [
"kind",
"amountBasis",
"unitAmount",
"totalAmount",
"currency",
"partySize",
"scheduledAt",
"dueAt",
"freeCancellationAt",
"noShowAfter",
"forfeitOnLateCancellation",
"forfeitOnNoShow",
"termsVersion",
"privacyVersion"
],
"example": {
"kind": "DEPOSIT",
"amountBasis": "FIXED",
"unitAmount": "1.00",
"totalAmount": "1.00",
"currency": "GEL",
"partySize": 1,
"scheduledAt": "2026-01-15T12:00:00.000Z",
"dueAt": "2026-12-31T18:00:00.000Z",
"freeCancellationAt": "2026-01-15T12:00:00.000Z",
"noShowAfter": "2026-01-15T12:00:00.000Z",
"forfeitOnLateCancellation": true,
"forfeitOnNoShow": true,
"termsVersion": "example",
"privacyVersion": "example"
}
}
},
"description": "Настоящая нативная гарантия брони для просмотра; проекция не содержит цели Order или приватного доступа/capability.",
"required": [
"reservationId",
"guaranteeRequirementId",
"revision",
"kind",
"termsHash",
"dueAt",
"authorizationExpiresAt",
"terms"
],
"example": {
"reservationId": "b21b31e5-56ea-442f-8594-270e4efd0f5e",
"guaranteeRequirementId": "97101ce8-3e48-412d-8520-b38e371ebe3b",
"revision": 1,
"kind": "DEPOSIT",
"termsHash": null,
"dueAt": null,
"authorizationExpiresAt": null,
"terms": null
}
}GuestPaymentPayeeDto
Определённые сервером имена ресторана и юридического лица получателя из точных разрешённых заведения и юридического лица. Quotes сохраняют эти отображаемые сведения в неизменяемом manifest согласия.
venueNameОбязательноКаноническое имя нативного заведения — получателя проверяемой оплаты Order, определённое в текущем scope организации, заведения и юридического лица; это не клиентская подпись и не служебное имя merchant-привязки.
stringПолное определение
{ "type": "string", "minLength": 1, "maxLength": 255, "description": "Каноническое имя нативного заведения — получателя проверяемой оплаты Order, определённое в текущем scope организации, заведения и юридического лица; это не клиентская подпись и не служебное имя merchant-привязки.", "example": "Example name" }legalNameОбязательноКаноническое юридическое наименование получателя, которому принадлежат разрешённые заведение и merchant custody. Это сохранённая идентичность юридического лица, а не предположение о PSP statement descriptor.
stringПолное определение
{ "type": "string", "minLength": 1, "maxLength": 255, "description": "Каноническое юридическое наименование получателя, которому принадлежат разрешённые заведение и merchant custody. Это сохранённая идентичность юридического лица, а не предположение о PSP statement descriptor.", "example": "Example name" }
Полное определение
{
"type": "object",
"properties": {
"venueName": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Каноническое имя нативного заведения — получателя проверяемой оплаты Order, определённое в текущем scope организации, заведения и юридического лица; это не клиентская подпись и не служебное имя merchant-привязки.",
"example": "Example name"
},
"legalName": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Каноническое юридическое наименование получателя, которому принадлежат разрешённые заведение и merchant custody. Это сохранённая идентичность юридического лица, а не предположение о PSP statement descriptor.",
"example": "Example name"
}
},
"description": "Определённые сервером имена ресторана и юридического лица получателя из точных разрешённых заведения и юридического лица. Quotes сохраняют эти отображаемые сведения в неизменяемом manifest согласия.",
"required": [
"venueName",
"legalName"
],
"example": {
"venueName": "Example name",
"legalName": "Example name"
}
}GuestPaymentMerchantChoiceDto
Публичный вариант merchant-привязки, разрешённый текущей конфигурацией заведения и scope доступных к оплате нативных Orders.
merchantBindingIdОбязательноUUID допустимой merchant-привязки заведения для запроса проверки платёжного расчёта.
string · uuidПолное определение
{ "type": "string", "format": "uuid", "description": "UUID допустимой merchant-привязки заведения для запроса проверки платёжного расчёта.", "example": "a9365a46-0f50-4efd-89fb-cd79e20e0439" }providerОбязательноНастроенный платёжный провайдер этой merchant-привязки; текущая merchant-конфигурация определяет режим выполнения и возможности.
stringПолное определение
{ "type": "string", "enum": [ "BOG_PAYMENT_MANAGER", "TBC_CHECKOUT", "STRIPE_CONNECT" ], "description": "Настроенный платёжный провайдер этой merchant-привязки; текущая merchant-конфигурация определяет режим выполнения и возможности.", "example": "BOG_PAYMENT_MANAGER" }labelОбязательноПубличная отображаемая подпись провайдера для этого допустимого варианта оплаты.
stringПолное определение
{ "type": "string", "description": "Публичная отображаемая подпись провайдера для этого допустимого варианта оплаты.", "example": "example" }
Полное определение
{
"type": "object",
"properties": {
"merchantBindingId": {
"type": "string",
"format": "uuid",
"description": "UUID допустимой merchant-привязки заведения для запроса проверки платёжного расчёта.",
"example": "a9365a46-0f50-4efd-89fb-cd79e20e0439"
},
"provider": {
"type": "string",
"enum": [
"BOG_PAYMENT_MANAGER",
"TBC_CHECKOUT",
"STRIPE_CONNECT"
],
"description": "Настроенный платёжный провайдер этой merchant-привязки; текущая merchant-конфигурация определяет режим выполнения и возможности.",
"example": "BOG_PAYMENT_MANAGER"
},
"label": {
"type": "string",
"description": "Публичная отображаемая подпись провайдера для этого допустимого варианта оплаты.",
"example": "example"
}
},
"description": "Публичный вариант merchant-привязки, разрешённый текущей конфигурацией заведения и scope доступных к оплате нативных Orders.",
"required": [
"merchantBindingId",
"provider",
"label"
],
"example": {
"merchantBindingId": "a9365a46-0f50-4efd-89fb-cd79e20e0439",
"provider": "BOG_PAYMENT_MANAGER",
"label": "example"
}
}GuestPaymentOrderBillDto
Текущие доступная основная сумма, ревизия и разрешённая доступность позиций одного нативного Order, полученные каноническим расчётом Orders.
orderIdОбязательноUUID нативного Order, входящего в текущий платёжный источник вызывающей стороны.
string · uuidПолное определение
{ "type": "string", "format": "uuid", "description": "UUID нативного Order, входящего в текущий платёжный источник вызывающей стороны.", "example": "f3127edf-ce4f-4da7-8be5-81b962024e6c" }revisionОбязательноРевизия нативного Order при расчёте этого счёта; последующая подготовка канонического quote повторно проверяет текущие ревизии источников.
integerПолное определение
{ "type": "integer", "minimum": 1, "description": "Ревизия нативного Order при расчёте этого счёта; последующая подготовка канонического quote повторно проверяет текущие ревизии источников.", "example": 1 }collectibleAmountОбязательноТекущая доступная к оплате основная сумма этого Order после платежей, holds и нативных ограничений распределения, без новых чаевых, строкой с двумя дробными знаками в валюте счёта.
stringПолное определение
{ "type": "string", "example": "12.50", "description": "Текущая доступная к оплате основная сумма этого Order после платежей, holds и нативных ограничений распределения, без новых чаевых, строкой с двумя дробными знаками в валюте счёта." }itemsОбязательноНативные позиции, разрешённые для этого гостевого счёта, с оставшимися доступными к оплате количествами и основными суммами.
arrayПолное определение
{ "description": "Нативные позиции, разрешённые для этого гостевого счёта, с оставшимися доступными к оплате количествами и основными суммами.", "type": "array", "items": { "$ref": "#/components/schemas/GuestPaymentBillItemDto" }, "example": [ { "orderItemId": "48069d23-be97-4039-8099-9db268ddf890", "label": "Example name", "availableQuantity": "1.0000", "collectibleAmount": "12.50" } ] }
Полное определение
{
"type": "object",
"properties": {
"orderId": {
"type": "string",
"format": "uuid",
"description": "UUID нативного Order, входящего в текущий платёжный источник вызывающей стороны.",
"example": "f3127edf-ce4f-4da7-8be5-81b962024e6c"
},
"revision": {
"type": "integer",
"minimum": 1,
"description": "Ревизия нативного Order при расчёте этого счёта; последующая подготовка канонического quote повторно проверяет текущие ревизии источников.",
"example": 1
},
"collectibleAmount": {
"type": "string",
"example": "12.50",
"description": "Текущая доступная к оплате основная сумма этого Order после платежей, holds и нативных ограничений распределения, без новых чаевых, строкой с двумя дробными знаками в валюте счёта."
},
"items": {
"description": "Нативные позиции, разрешённые для этого гостевого счёта, с оставшимися доступными к оплате количествами и основными суммами.",
"type": "array",
"items": {
"$ref": "#/components/schemas/GuestPaymentBillItemDto"
},
"example": [
{
"orderItemId": "48069d23-be97-4039-8099-9db268ddf890",
"label": "Example name",
"availableQuantity": "1.0000",
"collectibleAmount": "12.50"
}
]
}
},
"description": "Текущие доступная основная сумма, ревизия и разрешённая доступность позиций одного нативного Order, полученные каноническим расчётом Orders.",
"required": [
"orderId",
"revision",
"collectibleAmount",
"items"
],
"example": {
"orderId": "f3127edf-ce4f-4da7-8be5-81b962024e6c",
"revision": 1,
"collectibleAmount": "12.50",
"items": [
{
"orderItemId": "48069d23-be97-4039-8099-9db268ddf890",
"label": "Example name",
"availableQuantity": "1.0000",
"collectibleAmount": "12.50"
}
]
}
}GuestPaymentBillItemDto
Разрешённая позиция нативного счёта с сохранённым наименованием, оставшимся количеством и доступной основной суммой после канонического расчёта платежей и holds.
orderItemIdОбязательноUUID нативной позиции Order, доступной в пределах содержащего её Order и текущего гостевого scope распределения.
string · uuidПолное определение
{ "type": "string", "format": "uuid", "description": "UUID нативной позиции Order, доступной в пределах содержащего её Order и текущего гостевого scope распределения.", "example": "48069d23-be97-4039-8099-9db268ddf890" }labelОбязательноСнимок наименования, сохранённый в нативной позиции Order и отображаемый в этой строке счёта.
stringПолное определение
{ "type": "string", "description": "Снимок наименования, сохранённый в нативной позиции Order и отображаемый в этой строке счёта.", "example": "Example name" }availableQuantityОбязательноОставшееся количество позиции, доступное к оплате по текущему нативному распределению после предыдущих платежей и активных holds, строкой с четырьмя дробными знаками; ноль записывается как 0.0000.
stringПолное определение
{ "type": "string", "example": "1.0000", "description": "Оставшееся количество позиции, доступное к оплате по текущему нативному распределению после предыдущих платежей и активных holds, строкой с четырьмя дробными знаками; ноль записывается как 0.0000." }collectibleAmountОбязательноДоступная к оплате основная сумма этой части позиции в валюте счёта без новых чаевых, строкой с двумя дробными знаками; допускается 0.00.
stringПолное определение
{ "type": "string", "example": "12.50", "description": "Доступная к оплате основная сумма этой части позиции в валюте счёта без новых чаевых, строкой с двумя дробными знаками; допускается 0.00." }
Полное определение
{
"type": "object",
"properties": {
"orderItemId": {
"type": "string",
"format": "uuid",
"description": "UUID нативной позиции Order, доступной в пределах содержащего её Order и текущего гостевого scope распределения.",
"example": "48069d23-be97-4039-8099-9db268ddf890"
},
"label": {
"type": "string",
"description": "Снимок наименования, сохранённый в нативной позиции Order и отображаемый в этой строке счёта.",
"example": "Example name"
},
"availableQuantity": {
"type": "string",
"example": "1.0000",
"description": "Оставшееся количество позиции, доступное к оплате по текущему нативному распределению после предыдущих платежей и активных holds, строкой с четырьмя дробными знаками; ноль записывается как 0.0000."
},
"collectibleAmount": {
"type": "string",
"example": "12.50",
"description": "Доступная к оплате основная сумма этой части позиции в валюте счёта без новых чаевых, строкой с двумя дробными знаками; допускается 0.00."
}
},
"description": "Разрешённая позиция нативного счёта с сохранённым наименованием, оставшимся количеством и доступной основной суммой после канонического расчёта платежей и holds.",
"required": [
"orderItemId",
"label",
"availableQuantity",
"collectibleAmount"
],
"example": {
"orderItemId": "48069d23-be97-4039-8099-9db268ddf890",
"label": "Example name",
"availableQuantity": "1.0000",
"collectibleAmount": "12.50"
}
}TranslatedErrorDto
Стабильная оболочка ошибки общего обработчика HTTP-исключений. Дополнительные машинные данные домена вложены в details.
statusCodeОбязательноHTTP-статус, повторённый из ответа.
integerПолное определение
{ "type": "integer", "description": "HTTP-статус, повторённый из ответа.", "example": 400 }errorОбязательноКлюч перевода HTTP-категории, например errors:http.conflict. Конкретную причину определяют code и translationKey.
stringПолное определение
{ "type": "string", "description": "Ключ перевода HTTP-категории, например errors:http.conflict. Конкретную причину определяют code и translationKey.", "example": "errors.request.invalid" }codeОбязательноСтабильный машинный код домена либо стандартный HTTP_*, если доменный код не задан. Используйте это поле и HTTP-статус для программной логики; локализованная формулировка не управляет повторами или бизнес-решениями.
stringПолное определение
{ "type": "string", "example": "HTTP_BAD_REQUEST", "description": "Стабильный машинный код домена либо стандартный HTTP_*, если доменный код не задан. Используйте это поле и HTTP-статус для программной логики; локализованная формулировка не управляет повторами или бизнес-решениями." }messageОбязательноКлюч перевода, идентичный translationKey. API не возвращает локализованный текст интерфейса. Найдите перевод ключа и подставьте translationValues в приложении-потребителе.
stringПолное определение
{ "type": "string", "example": "errors:http.badRequest", "description": "Ключ перевода, идентичный translationKey. API не возвращает локализованный текст интерфейса. Найдите перевод ключа и подставьте translationValues в приложении-потребителе." }translationKeyОбязательноКанонический ключ перевода, идентичный message. Ключи errors:http.* соответствующего статуса описывают неуточнённые ошибки. Публичные ключи и пояснения EN/RU перечислены в Developers; неизвестный ключ требует локализованного запасного сообщения в клиенте.
stringПолное определение
{ "type": "string", "example": "errors:http.badRequest", "description": "Канонический ключ перевода, идентичный message. Ключи errors:http.* соответствующего статуса описывают неуточнённые ошибки. Публичные ключи и пояснения EN/RU перечислены в Developers; неизвестный ключ требует локализованного запасного сообщения в клиенте." }translationValuesНеобязательноНеобязательные скалярные значения параметров шаблона перевода. Обрабатывайте их как данные, экранируйте при отображении и никогда не используйте как настройки переводчика.
objectПолное определение
{ "type": "object", "additionalProperties": { "oneOf": [ { "type": "string", "example": "example" }, { "type": "number", "example": 0 }, { "type": "boolean", "example": true } ], "example": "example" }, "description": "Необязательные скалярные значения параметров шаблона перевода. Обрабатывайте их как данные, экранируйте при отображении и никогда не используйте как настройки переводчика.", "example": { "exampleKey": "example" } }validationErrorsНеобязательноОшибки проверки полей с ключами переводов и стабильными кодами валидаторов. Введённые значения и исходные тексты валидаторов не включаются.
arrayПолное определение
{ "description": "Ошибки проверки полей с ключами переводов и стабильными кодами валидаторов. Введённые значения и исходные тексты валидаторов не включаются.", "type": "array", "items": { "$ref": "#/components/schemas/ValidationErrorDto" }, "example": [ { "field": "email", "translationKey": "validation:isEmail", "code": "isEmail", "message": "validation:isEmail" } ] }detailsНеобязательноНеобязательные сведения о доменных препятствиях или ошибках валидации.
oneOfПолное определение
{ "description": "Необязательные сведения о доменных препятствиях или ошибках валидации.", "oneOf": [ { "type": "array", "items": { "$ref": "#/components/schemas/JsonValue" }, "example": [ "example" ] }, { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/JsonValue" }, "example": { "exampleKey": "example" } } ], "example": [ "example" ] }
Полное определение
{
"type": "object",
"properties": {
"statusCode": {
"type": "integer",
"description": "HTTP-статус, повторённый из ответа.",
"example": 400
},
"error": {
"type": "string",
"description": "Ключ перевода HTTP-категории, например errors:http.conflict. Конкретную причину определяют code и translationKey.",
"example": "errors.request.invalid"
},
"code": {
"type": "string",
"example": "HTTP_BAD_REQUEST",
"description": "Стабильный машинный код домена либо стандартный HTTP_*, если доменный код не задан. Используйте это поле и HTTP-статус для программной логики; локализованная формулировка не управляет повторами или бизнес-решениями."
},
"message": {
"type": "string",
"example": "errors:http.badRequest",
"description": "Ключ перевода, идентичный translationKey. API не возвращает локализованный текст интерфейса. Найдите перевод ключа и подставьте translationValues в приложении-потребителе."
},
"translationKey": {
"type": "string",
"example": "errors:http.badRequest",
"description": "Канонический ключ перевода, идентичный message. Ключи errors:http.* соответствующего статуса описывают неуточнённые ошибки. Публичные ключи и пояснения EN/RU перечислены в Developers; неизвестный ключ требует локализованного запасного сообщения в клиенте."
},
"translationValues": {
"type": "object",
"additionalProperties": {
"oneOf": [
{
"type": "string",
"example": "example"
},
{
"type": "number",
"example": 0
},
{
"type": "boolean",
"example": true
}
],
"example": "example"
},
"description": "Необязательные скалярные значения параметров шаблона перевода. Обрабатывайте их как данные, экранируйте при отображении и никогда не используйте как настройки переводчика.",
"example": {
"exampleKey": "example"
}
},
"validationErrors": {
"description": "Ошибки проверки полей с ключами переводов и стабильными кодами валидаторов. Введённые значения и исходные тексты валидаторов не включаются.",
"type": "array",
"items": {
"$ref": "#/components/schemas/ValidationErrorDto"
},
"example": [
{
"field": "email",
"translationKey": "validation:isEmail",
"code": "isEmail",
"message": "validation:isEmail"
}
]
},
"details": {
"description": "Необязательные сведения о доменных препятствиях или ошибках валидации.",
"oneOf": [
{
"type": "array",
"items": {
"$ref": "#/components/schemas/JsonValue"
},
"example": [
"example"
]
},
{
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/JsonValue"
},
"example": {
"exampleKey": "example"
}
}
],
"example": [
"example"
]
}
},
"required": [
"statusCode",
"error",
"code",
"message",
"translationKey"
],
"description": "Стабильная оболочка ошибки общего обработчика HTTP-исключений. Дополнительные машинные данные домена вложены в details.",
"example": {
"statusCode": 400,
"error": "errors:http.badRequest",
"code": "HTTP_BAD_REQUEST",
"message": "errors:http.badRequest",
"translationKey": "errors:http.badRequest"
}
}ValidationErrorDto
Ошибка проверки поля с путём поля, стабильным кодом валидатора и ключом перевода. Человекочитаемый текст принадлежит приложению-потребителю.
fieldОбязательноПубличный путь поля. Вложенные свойства и индексы массива разделены точками.
stringПолное определение
{ "type": "string", "example": "email", "description": "Публичный путь поля. Вложенные свойства и индексы массива разделены точками." }translationKeyОбязательноКлюч перевода этого валидатора, идентичный message. Найдите его в клиентском словаре; см. публичный каталог ошибок Developers.
stringПолное определение
{ "type": "string", "example": "validation:isEmail", "description": "Ключ перевода этого валидатора, идентичный message. Найдите его в клиентском словаре; см. публичный каталог ошибок Developers." }codeОбязательноСтабильный идентификатор валидатора для ошибки поля. Пользовательские валидаторы могут определять дополнительные идентификаторы.
stringПолное определение
{ "type": "string", "example": "isEmail", "description": "Стабильный идентификатор валидатора для ошибки поля. Пользовательские валидаторы могут определять дополнительные идентификаторы." }messageОбязательноКлюч перевода, описывающий ошибку проверки поля, идентичный translationKey. Введённые значения и тексты валидаторов не включаются.
stringПолное определение
{ "type": "string", "example": "validation:isEmail", "description": "Ключ перевода, описывающий ошибку проверки поля, идентичный translationKey. Введённые значения и тексты валидаторов не включаются." }translationValuesНеобязательноНеобязательные скалярные значения параметров шаблона перевода. Обрабатывайте их как данные, экранируйте при отображении и никогда не используйте как настройки переводчика.
objectПолное определение
{ "type": "object", "additionalProperties": { "oneOf": [ { "type": "string", "example": "example" }, { "type": "number", "example": 0 }, { "type": "boolean", "example": true } ], "example": "example" }, "description": "Необязательные скалярные значения параметров шаблона перевода. Обрабатывайте их как данные, экранируйте при отображении и никогда не используйте как настройки переводчика.", "example": { "exampleKey": "example" } }
Полное определение
{
"type": "object",
"properties": {
"field": {
"type": "string",
"example": "email",
"description": "Публичный путь поля. Вложенные свойства и индексы массива разделены точками."
},
"translationKey": {
"type": "string",
"example": "validation:isEmail",
"description": "Ключ перевода этого валидатора, идентичный message. Найдите его в клиентском словаре; см. публичный каталог ошибок Developers."
},
"code": {
"type": "string",
"example": "isEmail",
"description": "Стабильный идентификатор валидатора для ошибки поля. Пользовательские валидаторы могут определять дополнительные идентификаторы."
},
"message": {
"type": "string",
"example": "validation:isEmail",
"description": "Ключ перевода, описывающий ошибку проверки поля, идентичный translationKey. Введённые значения и тексты валидаторов не включаются."
},
"translationValues": {
"type": "object",
"additionalProperties": {
"oneOf": [
{
"type": "string",
"example": "example"
},
{
"type": "number",
"example": 0
},
{
"type": "boolean",
"example": true
}
],
"example": "example"
},
"description": "Необязательные скалярные значения параметров шаблона перевода. Обрабатывайте их как данные, экранируйте при отображении и никогда не используйте как настройки переводчика.",
"example": {
"exampleKey": "example"
}
}
},
"required": [
"field",
"translationKey",
"code",
"message"
],
"description": "Ошибка проверки поля с путём поля, стабильным кодом валидатора и ключом перевода. Человекочитаемый текст принадлежит приложению-потребителю.",
"example": {
"field": "email",
"translationKey": "validation:isEmail",
"code": "isEmail",
"message": "validation:isEmail"
}
}JsonValue
Рекурсивно допустимое JSON-значение. Используется только там, где контракт явно разрешает произвольные структурированные данные.
Полное определение
{
"oneOf": [
{
"type": "string",
"nullable": true,
"example": "example"
},
{
"type": "number",
"example": 0
},
{
"type": "boolean",
"example": true
},
{
"type": "array",
"items": {
"$ref": "#/components/schemas/JsonValue"
},
"example": [
"example"
]
},
{
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/JsonValue"
},
"example": {
"exampleKey": "example"
}
}
],
"description": "Рекурсивно допустимое JSON-значение. Используется только там, где контракт явно разрешает произвольные структурированные данные.",
"example": "example"
}