Авторизация
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" }
Тело запроса
Обязательно
Проверенный выбор расчёта и выданный для него semantic quoteHash, а также expectedConsentRevision: null для нового предложения или текущая ревизия при замене существующего.
application/json
Полное определение
{
"$ref": "#/components/schemas/GuestPaymentOfferRequestDto"
}Ответы
200Сохранённые идентификатор согласия OFFERED, ревизия, digest полного manifest, срок и terms вместе с публичной проекцией сохранённого финансового предложения.
Полное определение
{
"$ref": "#/components/schemas/GuestPaymentOfferDto"
}{
"consent": {
"consentId": "a78d3537-1595-4dbd-8fad-560c53ecc15c",
"revision": 1,
"manifestHash": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef",
"expiresAt": "2026-12-31T18:00:00.000Z",
"terms": {
"version": "example",
"digest": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef",
"locale": "en"
}
},
"quote": {
"payee": {
"venueName": "Example name",
"legalName": "Example name"
},
"quoteHash": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef",
"currency": "USD",
"principalAmount": "12.50",
"tipAmount": "0.00",
"totalAmount": "12.50",
"provider": "BOG_PAYMENT_MANAGER",
"merchantBindingId": "a9365a46-0f50-4efd-89fb-cd79e20e0439",
"expiresAt": "2026-12-31T18:00:00.000Z",
"terms": {
"version": "example",
"digest": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef",
"locale": "en",
"text": "en"
},
"targets": [
{
"orderId": "f3127edf-ce4f-4da7-8be5-81b962024e6c",
"principalAmount": "12.50",
"tipAmount": "0.00",
"totalAmount": "12.50",
"items": [
{
"orderItemId": "48069d23-be97-4039-8099-9db268ddf890",
"quantityPortion": "1.0000",
"totalAmount": "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"
}Схемы
GuestPaymentOfferRequestDto
Ранее проверенный выбор quote, его semantic финансовый digest и ожидаемая ревизия offer для сохранения manifest согласия.
quoteОбязательноТочные привязка эквайринга, purpose гарантии либо выбор Order и чаевых, а также locale, связанные с просмотренным quoteHash.
oneOfПолное определение
{ "example": { "purpose": "RESERVATION_GUARANTEE", "merchantBindingId": "a9365a46-0f50-4efd-89fb-cd79e20e0439", "locale": "en" }, "allOf": [ { "$ref": "#/components/schemas/GuestPaymentQuoteRequestDto" } ], "oneOf": [ { "required": [ "purpose" ], "not": { "anyOf": [ { "required": [ "targets" ], "example": { "targets": "example" } }, { "required": [ "requestedTipAmount" ], "example": { "requestedTipAmount": "example" } } ], "example": { "targets": "example" } }, "example": { "purpose": "example" } }, { "required": [ "targets", "requestedTipAmount" ], "not": { "required": [ "purpose" ], "example": { "purpose": "example" } }, "example": { "targets": "example", "requestedTipAmount": "example" } } ], "description": "Точные привязка эквайринга, purpose гарантии либо выбор Order и чаевых, а также locale, связанные с просмотренным quoteHash." }quoteHashОбязательноВыданный для этого выбора SHA-256 semantic digest финансового предложения в нижнем регистре; новый канонический расчёт должен воспроизвести его до сохранения offer.
stringПолное определение
{ "type": "string", "pattern": "^[a-f0-9]{64}$", "description": "Выданный для этого выбора SHA-256 semantic digest финансового предложения в нижнем регистре; новый канонический расчёт должен воспроизвести его до сохранения offer.", "example": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef" }expectedConsentRevisionОбязательноОбязательная nullable ожидаемая ревизия согласия OFFERED. Используйте null при отсутствии сохранённого offer; замена изменённого существующего предложения требует его текущей ревизии. Неизменённый расчёт может сохранить существующий receipt.
integer · nullПолное определение
{ "type": "integer", "nullable": true, "minimum": 1, "description": "Обязательная nullable ожидаемая ревизия согласия OFFERED. Используйте null при отсутствии сохранённого offer; замена изменённого существующего предложения требует его текущей ревизии. Неизменённый расчёт может сохранить существующий receipt.", "example": 1 }
Полное определение
{
"type": "object",
"properties": {
"quote": {
"example": {
"purpose": "RESERVATION_GUARANTEE",
"merchantBindingId": "a9365a46-0f50-4efd-89fb-cd79e20e0439",
"locale": "en"
},
"allOf": [
{
"$ref": "#/components/schemas/GuestPaymentQuoteRequestDto"
}
],
"oneOf": [
{
"required": [
"purpose"
],
"not": {
"anyOf": [
{
"required": [
"targets"
],
"example": {
"targets": "example"
}
},
{
"required": [
"requestedTipAmount"
],
"example": {
"requestedTipAmount": "example"
}
}
],
"example": {
"targets": "example"
}
},
"example": {
"purpose": "example"
}
},
{
"required": [
"targets",
"requestedTipAmount"
],
"not": {
"required": [
"purpose"
],
"example": {
"purpose": "example"
}
},
"example": {
"targets": "example",
"requestedTipAmount": "example"
}
}
],
"description": "Точные привязка эквайринга, purpose гарантии либо выбор Order и чаевых, а также locale, связанные с просмотренным quoteHash."
},
"quoteHash": {
"type": "string",
"pattern": "^[a-f0-9]{64}$",
"description": "Выданный для этого выбора SHA-256 semantic digest финансового предложения в нижнем регистре; новый канонический расчёт должен воспроизвести его до сохранения offer.",
"example": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef"
},
"expectedConsentRevision": {
"type": "integer",
"nullable": true,
"minimum": 1,
"description": "Обязательная nullable ожидаемая ревизия согласия OFFERED. Используйте null при отсутствии сохранённого offer; замена изменённого существующего предложения требует его текущей ревизии. Неизменённый расчёт может сохранить существующий receipt.",
"example": 1
}
},
"description": "Ранее проверенный выбор quote, его semantic финансовый digest и ожидаемая ревизия offer для сохранения manifest согласия.",
"required": [
"quote",
"quoteHash",
"expectedConsentRevision"
],
"example": {
"quote": {
"purpose": "RESERVATION_GUARANTEE",
"merchantBindingId": "a9365a46-0f50-4efd-89fb-cd79e20e0439",
"locale": "en"
},
"quoteHash": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef",
"expectedConsentRevision": null
}
}GuestPaymentQuoteRequestDto
Привязка эквайринга и locale согласия вместе с фиксированным purpose нативной гарантии либо выбором principal, позиций и чаевых Order для расчёта гостевого платёжного обзора.
purposeНеобязательноВыбирает точную нативную гарантию брони. Опустите для существующего выбора счёта Order. Сумму гарантии и capture mode определяет сервер; цели Order и чаевые опускаются.
stringПолное определение
{ "type": "string", "enum": [ "RESERVATION_GUARANTEE" ], "description": "Выбирает точную нативную гарантию брони. Опустите для существующего выбора счёта Order. Сумму гарантии и capture mode определяет сервер; цели Order и чаевые опускаются.", "example": "RESERVATION_GUARANTEE" }merchantBindingIdОбязательноUUID текущей допустимой merchant-привязки заведения из счёта; текущая конфигурация определяет провайдера, режим и допустимость автоматического capture.
string · uuidПолное определение
{ "type": "string", "format": "uuid", "description": "UUID текущей допустимой merchant-привязки заведения из счёта; текущая конфигурация определяет провайдера, режим и допустимость автоматического capture.", "example": "a9365a46-0f50-4efd-89fb-cd79e20e0439" }requestedTipAmountНеобязательноНеотрицательная общая сумма запрошенных чаевых для выбранных Orders в валюте счёта, строкой ровно с двумя дробными знаками; канонический расчёт распределяет её между принятыми целями.
stringПолное определение
{ "type": "string", "example": "0.00", "maxLength": 32, "description": "Неотрицательная общая сумма запрошенных чаевых для выбранных Orders в валюте счёта, строкой ровно с двумя дробными знаками; канонический расчёт распределяет её между принятыми целями." }localeОбязательноЯзык показанного текста согласия и его terms digest. Язык checkout провайдера определяется из этого значения по поддерживаемому языковому контракту провайдера.
stringПолное определение
{ "type": "string", "enum": [ "en", "ru", "ka" ], "description": "Язык показанного текста согласия и его terms digest. Язык checkout провайдера определяется из этого значения по поддерживаемому языковому контракту провайдера.", "example": "en" }targetsНеобязательноОт одного до пятидесяти разных нативных Orders с положительными запрошенными основными суммами и nullable-выбором позиций в пределах текущего платёжного scope вызывающей стороны.
arrayПолное определение
{ "minItems": 1, "maxItems": 50, "description": "От одного до пятидесяти разных нативных Orders с положительными запрошенными основными суммами и nullable-выбором позиций в пределах текущего платёжного scope вызывающей стороны.", "type": "array", "items": { "$ref": "#/components/schemas/GuestPaymentOrderSelectionDto" }, "example": [ { "orderId": "f3127edf-ce4f-4da7-8be5-81b962024e6c", "principalAmount": "12.50", "items": null } ] }
Полное определение
{
"type": "object",
"properties": {
"purpose": {
"type": "string",
"enum": [
"RESERVATION_GUARANTEE"
],
"description": "Выбирает точную нативную гарантию брони. Опустите для существующего выбора счёта Order. Сумму гарантии и capture mode определяет сервер; цели Order и чаевые опускаются.",
"example": "RESERVATION_GUARANTEE"
},
"merchantBindingId": {
"type": "string",
"format": "uuid",
"description": "UUID текущей допустимой merchant-привязки заведения из счёта; текущая конфигурация определяет провайдера, режим и допустимость автоматического capture.",
"example": "a9365a46-0f50-4efd-89fb-cd79e20e0439"
},
"requestedTipAmount": {
"type": "string",
"example": "0.00",
"maxLength": 32,
"description": "Неотрицательная общая сумма запрошенных чаевых для выбранных Orders в валюте счёта, строкой ровно с двумя дробными знаками; канонический расчёт распределяет её между принятыми целями."
},
"locale": {
"type": "string",
"enum": [
"en",
"ru",
"ka"
],
"description": "Язык показанного текста согласия и его terms digest. Язык checkout провайдера определяется из этого значения по поддерживаемому языковому контракту провайдера.",
"example": "en"
},
"targets": {
"minItems": 1,
"maxItems": 50,
"description": "От одного до пятидесяти разных нативных Orders с положительными запрошенными основными суммами и nullable-выбором позиций в пределах текущего платёжного scope вызывающей стороны.",
"type": "array",
"items": {
"$ref": "#/components/schemas/GuestPaymentOrderSelectionDto"
},
"example": [
{
"orderId": "f3127edf-ce4f-4da7-8be5-81b962024e6c",
"principalAmount": "12.50",
"items": null
}
]
}
},
"description": "Привязка эквайринга и locale согласия вместе с фиксированным purpose нативной гарантии либо выбором principal, позиций и чаевых Order для расчёта гостевого платёжного обзора.",
"required": [
"merchantBindingId",
"locale"
],
"example": {
"merchantBindingId": "a9365a46-0f50-4efd-89fb-cd79e20e0439",
"locale": "en"
}
}GuestPaymentOrderSelectionDto
Запрошенная основная сумма и nullable-выбор явных позиций одного нативного Order для автоматической гостевой оплаты счёта.
orderIdОбязательноUUID Order, входящего в текущий проверенный нативный платёжный источник; каждый Order может присутствовать в запросе quote только один раз.
string · uuidПолное определение
{ "type": "string", "format": "uuid", "description": "UUID Order, входящего в текущий проверенный нативный платёжный источник; каждый Order может присутствовать в запросе quote только один раз.", "example": "f3127edf-ce4f-4da7-8be5-81b962024e6c" }principalAmountОбязательноСтрого положительная запрошенная основная сумма этого Order в валюте счёта без чаевых, строкой ровно с двумя дробными знаками; канонический расчёт Orders проверяет предел доступной оплаты.
stringПолное определение
{ "type": "string", "example": "12.50", "maxLength": 32, "description": "Строго положительная запрошенная основная сумма этого Order в валюте счёта без чаевых, строкой ровно с двумя дробными знаками; канонический расчёт Orders проверяет предел доступной оплаты." }itemsОбязательноОбязательный nullable-выбор позиций. Null запрашивает каноническое автоматическое распределение основной суммы; массив задаёт от одной до пятисот явных частей позиций. Совокупный выбор по всем Orders также ограничен пятьюстами позициями.
array · nullПолное определение
{ "nullable": true, "minItems": 1, "maxItems": 500, "description": "Обязательный nullable-выбор позиций. Null запрашивает каноническое автоматическое распределение основной суммы; массив задаёт от одной до пятисот явных частей позиций. Совокупный выбор по всем Orders также ограничен пятьюстами позициями.", "type": "array", "items": { "$ref": "#/components/schemas/GuestPaymentItemSelectionDto" }, "example": [ { "orderItemId": "48069d23-be97-4039-8099-9db268ddf890", "quantityPortion": "1.0000" } ] }
Полное определение
{
"type": "object",
"properties": {
"orderId": {
"type": "string",
"format": "uuid",
"description": "UUID Order, входящего в текущий проверенный нативный платёжный источник; каждый Order может присутствовать в запросе quote только один раз.",
"example": "f3127edf-ce4f-4da7-8be5-81b962024e6c"
},
"principalAmount": {
"type": "string",
"example": "12.50",
"maxLength": 32,
"description": "Строго положительная запрошенная основная сумма этого Order в валюте счёта без чаевых, строкой ровно с двумя дробными знаками; канонический расчёт Orders проверяет предел доступной оплаты."
},
"items": {
"nullable": true,
"minItems": 1,
"maxItems": 500,
"description": "Обязательный nullable-выбор позиций. Null запрашивает каноническое автоматическое распределение основной суммы; массив задаёт от одной до пятисот явных частей позиций. Совокупный выбор по всем Orders также ограничен пятьюстами позициями.",
"type": "array",
"items": {
"$ref": "#/components/schemas/GuestPaymentItemSelectionDto"
},
"example": [
{
"orderItemId": "48069d23-be97-4039-8099-9db268ddf890",
"quantityPortion": "1.0000"
}
]
}
},
"description": "Запрошенная основная сумма и nullable-выбор явных позиций одного нативного Order для автоматической гостевой оплаты счёта.",
"required": [
"orderId",
"principalAmount",
"items"
],
"example": {
"orderId": "f3127edf-ce4f-4da7-8be5-81b962024e6c",
"principalAmount": "12.50",
"items": null
}
}GuestPaymentItemSelectionDto
Одна нативная позиция Order и положительное количество с четырьмя дробными знаками в пределах текущего гостевого распределения.
orderItemIdОбязательноUUID нативной позиции Order, принадлежащей выбранному содержащему Order и разрешённой текущим платёжным scope.
string · uuidПолное определение
{ "type": "string", "format": "uuid", "description": "UUID нативной позиции Order, принадлежащей выбранному содержащему Order и разрешённой текущим платёжным scope.", "example": "48069d23-be97-4039-8099-9db268ddf890" }quantityPortionОбязательноСтрого положительное количество позиции строкой ровно с четырьмя дробными знаками; доступное количество ограничено оплаченными частями, активными holds и назначением.
stringПолное определение
{ "type": "string", "example": "1.0000", "maxLength": 32, "description": "Строго положительное количество позиции строкой ровно с четырьмя дробными знаками; доступное количество ограничено оплаченными частями, активными holds и назначением." }
Полное определение
{
"type": "object",
"properties": {
"orderItemId": {
"type": "string",
"format": "uuid",
"description": "UUID нативной позиции Order, принадлежащей выбранному содержащему Order и разрешённой текущим платёжным scope.",
"example": "48069d23-be97-4039-8099-9db268ddf890"
},
"quantityPortion": {
"type": "string",
"example": "1.0000",
"maxLength": 32,
"description": "Строго положительное количество позиции строкой ровно с четырьмя дробными знаками; доступное количество ограничено оплаченными частями, активными holds и назначением."
}
},
"description": "Одна нативная позиция Order и положительное количество с четырьмя дробными знаками в пределах текущего гостевого распределения.",
"required": [
"orderItemId",
"quantityPortion"
],
"example": {
"orderItemId": "48069d23-be97-4039-8099-9db268ddf890",
"quantityPortion": "1.0000"
}
}GuestPaymentOfferDto
Сохранённый offer согласия вместе с его финансовым предложением до принятия или создания финансовых holds.
consentОбязательноИдентификатор, предложенная ревизия, digest полного manifest, срок и terms, необходимые для явного принятия согласия.
allOfПолное определение
{ "description": "Идентификатор, предложенная ревизия, digest полного manifest, срок и terms, необходимые для явного принятия согласия.", "allOf": [ { "$ref": "#/components/schemas/GuestPaymentConsentReceiptDto" } ], "example": { "consentId": "a78d3537-1595-4dbd-8fad-560c53ecc15c", "revision": 1, "manifestHash": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef", "expiresAt": "2026-12-31T18:00:00.000Z", "terms": { "version": "example", "digest": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef", "locale": "en" } } }quoteОбязательноПубличная проекция сохранённого manifest, связанного с consent.manifestHash, с суммами, нативным распределением и текстом, предложенными для принятия.
allOfПолное определение
{ "description": "Публичная проекция сохранённого manifest, связанного с consent.manifestHash, с суммами, нативным распределением и текстом, предложенными для принятия.", "allOf": [ { "$ref": "#/components/schemas/GuestPaymentQuoteDto" } ], "example": { "payee": { "venueName": "Example name", "legalName": "Example name" }, "quoteHash": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef", "currency": "USD", "principalAmount": "12.50", "tipAmount": "0.00", "totalAmount": "12.50", "provider": "BOG_PAYMENT_MANAGER", "merchantBindingId": "a9365a46-0f50-4efd-89fb-cd79e20e0439", "expiresAt": "2026-12-31T18:00:00.000Z", "terms": { "version": "example", "digest": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef", "locale": "en", "text": "en" }, "targets": [ { "orderId": "f3127edf-ce4f-4da7-8be5-81b962024e6c", "principalAmount": "12.50", "tipAmount": "0.00", "totalAmount": "12.50", "items": [ { "orderItemId": "48069d23-be97-4039-8099-9db268ddf890", "quantityPortion": "1.0000", "totalAmount": "12.50" } ] } ] } }
Полное определение
{
"type": "object",
"properties": {
"consent": {
"description": "Идентификатор, предложенная ревизия, digest полного manifest, срок и terms, необходимые для явного принятия согласия.",
"allOf": [
{
"$ref": "#/components/schemas/GuestPaymentConsentReceiptDto"
}
],
"example": {
"consentId": "a78d3537-1595-4dbd-8fad-560c53ecc15c",
"revision": 1,
"manifestHash": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef",
"expiresAt": "2026-12-31T18:00:00.000Z",
"terms": {
"version": "example",
"digest": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef",
"locale": "en"
}
}
},
"quote": {
"description": "Публичная проекция сохранённого manifest, связанного с consent.manifestHash, с суммами, нативным распределением и текстом, предложенными для принятия.",
"allOf": [
{
"$ref": "#/components/schemas/GuestPaymentQuoteDto"
}
],
"example": {
"payee": {
"venueName": "Example name",
"legalName": "Example name"
},
"quoteHash": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef",
"currency": "USD",
"principalAmount": "12.50",
"tipAmount": "0.00",
"totalAmount": "12.50",
"provider": "BOG_PAYMENT_MANAGER",
"merchantBindingId": "a9365a46-0f50-4efd-89fb-cd79e20e0439",
"expiresAt": "2026-12-31T18:00:00.000Z",
"terms": {
"version": "example",
"digest": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef",
"locale": "en",
"text": "en"
},
"targets": [
{
"orderId": "f3127edf-ce4f-4da7-8be5-81b962024e6c",
"principalAmount": "12.50",
"tipAmount": "0.00",
"totalAmount": "12.50",
"items": [
{
"orderItemId": "48069d23-be97-4039-8099-9db268ddf890",
"quantityPortion": "1.0000",
"totalAmount": "12.50"
}
]
}
]
}
}
},
"description": "Сохранённый offer согласия вместе с его финансовым предложением до принятия или создания финансовых holds.",
"required": [
"consent",
"quote"
],
"example": {
"consent": {
"consentId": "a78d3537-1595-4dbd-8fad-560c53ecc15c",
"revision": 1,
"manifestHash": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef",
"expiresAt": "2026-12-31T18:00:00.000Z",
"terms": {
"version": "example",
"digest": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef",
"locale": "en"
}
},
"quote": {
"payee": {
"venueName": "Example name",
"legalName": "Example name"
},
"quoteHash": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef",
"currency": "USD",
"principalAmount": "12.50",
"tipAmount": "0.00",
"totalAmount": "12.50",
"provider": "BOG_PAYMENT_MANAGER",
"merchantBindingId": "a9365a46-0f50-4efd-89fb-cd79e20e0439",
"expiresAt": "2026-12-31T18:00:00.000Z",
"terms": {
"version": "example",
"digest": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef",
"locale": "en",
"text": "en"
},
"targets": [
{
"orderId": "f3127edf-ce4f-4da7-8be5-81b962024e6c",
"principalAmount": "12.50",
"tipAmount": "0.00",
"totalAmount": "12.50",
"items": [
{
"orderItemId": "48069d23-be97-4039-8099-9db268ddf890",
"quantityPortion": "1.0000",
"totalAmount": "12.50"
}
]
}
]
}
}
}GuestPaymentConsentReceiptDto
Сохранённые идентификатор согласия OFFERED, ревизия, digest полного manifest, срок и описание terms для явного принятия.
consentIdОбязательноUUID offer согласия, сохранённого для этого платёжного доступа и нативного actor.
string · uuidПолное определение
{ "type": "string", "format": "uuid", "description": "UUID offer согласия, сохранённого для этого платёжного доступа и нативного actor.", "example": "a78d3537-1595-4dbd-8fad-560c53ecc15c" }revisionОбязательноТекущая ревизия согласия OFFERED для повтора при принятии или использования как ожидаемой ревизии при изменении offer; потребление увеличивает сохранённую ревизию.
integerПолное определение
{ "type": "integer", "minimum": 1, "description": "Текущая ревизия согласия OFFERED для повтора при принятии или использования как ожидаемой ревизии при изменении offer; потребление увеличивает сохранённую ревизию.", "example": 1 }manifestHashОбязательноSHA-256 digest полного сохранённого manifest предложения в нижнем регистре, включая зафиксированные полномочия, идентичности получателей средств и terms; точный replay неизменённого offer сохраняет этот digest.
stringПолное определение
{ "type": "string", "pattern": "^[a-f0-9]{64}$", "description": "SHA-256 digest полного сохранённого manifest предложения в нижнем регистре, включая зафиксированные полномочия, идентичности получателей средств и terms; точный replay неизменённого offer сохраняет этот digest.", "example": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef" }expiresAtОбязательноСрок непринятого offer в UTC ISO-8601; принятие должно произойти до него и в пределах текущего финансового окна платёжного доступа.
string · date-timeПолное определение
{ "type": "string", "format": "date-time", "description": "Срок непринятого offer в UTC ISO-8601; принятие должно произойти до него и в пределах текущего финансового окна платёжного доступа.", "example": "2026-12-31T18:00:00.000Z" }termsОбязательноТочные версия, digest и язык текста согласия, привязанные к этому offer и обязательные при принятии.
allOfПолное определение
{ "description": "Точные версия, digest и язык текста согласия, привязанные к этому offer и обязательные при принятии.", "allOf": [ { "$ref": "#/components/schemas/GuestPaymentTermsDto" } ], "example": { "version": "example", "digest": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef", "locale": "en" } }
Полное определение
{
"type": "object",
"properties": {
"consentId": {
"type": "string",
"format": "uuid",
"description": "UUID offer согласия, сохранённого для этого платёжного доступа и нативного actor.",
"example": "a78d3537-1595-4dbd-8fad-560c53ecc15c"
},
"revision": {
"type": "integer",
"minimum": 1,
"description": "Текущая ревизия согласия OFFERED для повтора при принятии или использования как ожидаемой ревизии при изменении offer; потребление увеличивает сохранённую ревизию.",
"example": 1
},
"manifestHash": {
"type": "string",
"pattern": "^[a-f0-9]{64}$",
"description": "SHA-256 digest полного сохранённого manifest предложения в нижнем регистре, включая зафиксированные полномочия, идентичности получателей средств и terms; точный replay неизменённого offer сохраняет этот digest.",
"example": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef"
},
"expiresAt": {
"type": "string",
"format": "date-time",
"description": "Срок непринятого offer в UTC ISO-8601; принятие должно произойти до него и в пределах текущего финансового окна платёжного доступа.",
"example": "2026-12-31T18:00:00.000Z"
},
"terms": {
"description": "Точные версия, digest и язык текста согласия, привязанные к этому offer и обязательные при принятии.",
"allOf": [
{
"$ref": "#/components/schemas/GuestPaymentTermsDto"
}
],
"example": {
"version": "example",
"digest": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef",
"locale": "en"
}
}
},
"description": "Сохранённые идентификатор согласия OFFERED, ревизия, digest полного manifest, срок и описание terms для явного принятия.",
"required": [
"consentId",
"revision",
"manifestHash",
"expiresAt",
"terms"
],
"example": {
"consentId": "a78d3537-1595-4dbd-8fad-560c53ecc15c",
"revision": 1,
"manifestHash": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef",
"expiresAt": "2026-12-31T18:00:00.000Z",
"terms": {
"version": "example",
"digest": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef",
"locale": "en"
}
}
}GuestPaymentTermsDto
Версия, SHA-256 digest и язык, определяющие точный показанный текст платёжного согласия.
versionОбязательноНепустая версия показанного текста согласия; при принятии должна точно совпадать с версией, сохранённой в offer.
stringПолное определение
{ "type": "string", "maxLength": 64, "description": "Непустая версия показанного текста согласия; при принятии должна точно совпадать с версией, сохранённой в offer.", "example": "example" }digestОбязательноSHA-256 digest в нижнем регистре, связывающий версию terms, язык и точный показанный текст; при принятии повторяется предложенный digest.
stringПолное определение
{ "type": "string", "pattern": "^[a-f0-9]{64}$", "description": "SHA-256 digest в нижнем регистре, связывающий версию terms, язык и точный показанный текст; при принятии повторяется предложенный digest.", "example": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef" }localeОбязательноЯзык, охваченный показанным текстом согласия и digest; при принятии должен совпадать с языком, сохранённым в offer.
stringПолное определение
{ "type": "string", "enum": [ "en", "ru", "ka" ], "description": "Язык, охваченный показанным текстом согласия и digest; при принятии должен совпадать с языком, сохранённым в offer.", "example": "en" }
Полное определение
{
"type": "object",
"properties": {
"version": {
"type": "string",
"maxLength": 64,
"description": "Непустая версия показанного текста согласия; при принятии должна точно совпадать с версией, сохранённой в offer.",
"example": "example"
},
"digest": {
"type": "string",
"pattern": "^[a-f0-9]{64}$",
"description": "SHA-256 digest в нижнем регистре, связывающий версию terms, язык и точный показанный текст; при принятии повторяется предложенный digest.",
"example": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef"
},
"locale": {
"type": "string",
"enum": [
"en",
"ru",
"ka"
],
"description": "Язык, охваченный показанным текстом согласия и digest; при принятии должен совпадать с языком, сохранённым в offer.",
"example": "en"
}
},
"description": "Версия, SHA-256 digest и язык, определяющие точный показанный текст платёжного согласия.",
"required": [
"version",
"digest",
"locale"
],
"example": {
"version": "example",
"digest": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef",
"locale": "en"
}
}GuestPaymentQuoteDto
Рассчитанное сервером автоматическое платёжное предложение с каноническими итогами, merchant/провайдером, локализованным текстом согласия, распределением нативных позиций и действующим сроком проверки.
purposeНеобязательноПрисутствует, если рассматриваемый платёж вносит средства нативной гарантии брони.
stringПолное определение
{ "type": "string", "enum": [ "RESERVATION_GUARANTEE" ], "description": "Присутствует, если рассматриваемый платёж вносит средства нативной гарантии брони.", "example": "RESERVATION_GUARANTEE" }guaranteeНеобязательноТочная нативная гарантия и принятые финансовые условия; цели Order пусты.
allOfПолное определение
{ "description": "Точная нативная гарантия и принятые финансовые условия; цели Order пусты.", "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ОбязательноТочный отображаемый снимок ресторана и юридического лица получателя, связанный quoteHash и сохранённым manifestHash согласия. Replay предложения возвращает сохранённый снимок, а не текущие переименованные данные заведения.
allOfПолное определение
{ "description": "Точный отображаемый снимок ресторана и юридического лица получателя, связанный quoteHash и сохранённым manifestHash согласия. Replay предложения возвращает сохранённый снимок, а не текущие переименованные данные заведения.", "allOf": [ { "$ref": "#/components/schemas/GuestPaymentPayeeDto" } ], "example": { "venueName": "Example name", "legalName": "Example name" } }quoteHashОбязательноSHA-256 digest semantic финансового предложения в нижнем регистре; передаётся с тем же выбором при запросе offer. Принятие ссылается на полный manifestHash, возвращённый в consent receipt этого предложения.
stringПолное определение
{ "type": "string", "pattern": "^[a-f0-9]{64}$", "description": "SHA-256 digest semantic финансового предложения в нижнем регистре; передаётся с тем же выбором при запросе offer. Принятие ссылается на полный manifestHash, возвращённый в consent receipt этого предложения.", "example": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef" }currencyОбязательноВалюта всех основных сумм, чаевых и итогов в этом проверенном расчёте.
stringПолное определение
{ "type": "string", "enum": [ "USD", "GEL" ], "description": "Валюта всех основных сумм, чаевых и итогов в этом проверенном расчёте.", "example": "USD" }principalAmountОбязательноОбщая каноническая основная сумма выбранных Orders до чаевых, положительной строкой с двумя дробными знаками.
stringПолное определение
{ "type": "string", "example": "12.50", "description": "Общая каноническая основная сумма выбранных Orders до чаевых, положительной строкой с двумя дробными знаками." }tipAmountОбязательноОбщие запрошенные чаевые, распределённые каноническим расчётом по выбранным Orders, неотрицательной строкой с двумя дробными знаками.
stringПолное определение
{ "type": "string", "example": "0.00", "description": "Общие запрошенные чаевые, распределённые каноническим расчётом по выбранным Orders, неотрицательной строкой с двумя дробными знаками." }totalAmountОбязательноСумма общих проверенных основной суммы и чаевых строкой с двумя дробными знаками в валюте расчёта.
stringПолное определение
{ "type": "string", "example": "12.50", "description": "Сумма общих проверенных основной суммы и чаевых строкой с двумя дробными знаками в валюте расчёта." }providerОбязательноПлатёжный провайдер из текущей допустимой merchant-привязки, сохранённой в этом финансовом предложении.
stringПолное определение
{ "type": "string", "enum": [ "BOG_PAYMENT_MANAGER", "TBC_CHECKOUT", "STRIPE_CONNECT" ], "description": "Платёжный провайдер из текущей допустимой merchant-привязки, сохранённой в этом финансовом предложении.", "example": "BOG_PAYMENT_MANAGER" }merchantBindingIdОбязательноUUID merchant-привязки, чьи текущие custody, режим и возможности автоматического capture охвачены этим предложением.
string · uuidПолное определение
{ "type": "string", "format": "uuid", "description": "UUID merchant-привязки, чьи текущие custody, режим и возможности автоматического capture охвачены этим предложением.", "example": "a9365a46-0f50-4efd-89fb-cd79e20e0439" }expiresAtОбязательноСрок финансовой проверки предварительного расчёта в UTC ISO-8601 либо срок сохранённого offer при возврате с предложением согласия; изменение источника или счёта может сделать расчёт недействительным раньше.
string · date-timeПолное определение
{ "type": "string", "format": "date-time", "description": "Срок финансовой проверки предварительного расчёта в UTC ISO-8601 либо срок сохранённого offer при возврате с предложением согласия; изменение источника или счёта может сделать расчёт недействительным раньше.", "example": "2026-12-31T18:00:00.000Z" }termsОбязательноТочный локализованный текст согласия и версия, digest и язык, охваченные этим финансовым предложением.
allOfПолное определение
{ "description": "Точный локализованный текст согласия и версия, digest и язык, охваченные этим финансовым предложением.", "allOf": [ { "$ref": "#/components/schemas/GuestPaymentDisplayedTermsDto" } ], "example": { "version": "example", "digest": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef", "locale": "en", "text": "en" } }targetsОбязательноПроверенные канонические распределения основной суммы, чаевых и нативных позиций выбранных Orders.
arrayПолное определение
{ "description": "Проверенные канонические распределения основной суммы, чаевых и нативных позиций выбранных Orders.", "type": "array", "items": { "$ref": "#/components/schemas/GuestPaymentQuotedOrderDto" }, "example": [ { "orderId": "f3127edf-ce4f-4da7-8be5-81b962024e6c", "principalAmount": "12.50", "tipAmount": "0.00", "totalAmount": "12.50", "items": [ { "orderItemId": "48069d23-be97-4039-8099-9db268ddf890", "quantityPortion": "1.0000", "totalAmount": "12.50" } ] } ] }
Полное определение
{
"type": "object",
"properties": {
"purpose": {
"type": "string",
"enum": [
"RESERVATION_GUARANTEE"
],
"description": "Присутствует, если рассматриваемый платёж вносит средства нативной гарантии брони.",
"example": "RESERVATION_GUARANTEE"
},
"guarantee": {
"description": "Точная нативная гарантия и принятые финансовые условия; цели Order пусты.",
"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": "Точный отображаемый снимок ресторана и юридического лица получателя, связанный quoteHash и сохранённым manifestHash согласия. Replay предложения возвращает сохранённый снимок, а не текущие переименованные данные заведения.",
"allOf": [
{
"$ref": "#/components/schemas/GuestPaymentPayeeDto"
}
],
"example": {
"venueName": "Example name",
"legalName": "Example name"
}
},
"quoteHash": {
"type": "string",
"pattern": "^[a-f0-9]{64}$",
"description": "SHA-256 digest semantic финансового предложения в нижнем регистре; передаётся с тем же выбором при запросе offer. Принятие ссылается на полный manifestHash, возвращённый в consent receipt этого предложения.",
"example": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef"
},
"currency": {
"type": "string",
"enum": [
"USD",
"GEL"
],
"description": "Валюта всех основных сумм, чаевых и итогов в этом проверенном расчёте.",
"example": "USD"
},
"principalAmount": {
"type": "string",
"example": "12.50",
"description": "Общая каноническая основная сумма выбранных Orders до чаевых, положительной строкой с двумя дробными знаками."
},
"tipAmount": {
"type": "string",
"example": "0.00",
"description": "Общие запрошенные чаевые, распределённые каноническим расчётом по выбранным Orders, неотрицательной строкой с двумя дробными знаками."
},
"totalAmount": {
"type": "string",
"example": "12.50",
"description": "Сумма общих проверенных основной суммы и чаевых строкой с двумя дробными знаками в валюте расчёта."
},
"provider": {
"type": "string",
"enum": [
"BOG_PAYMENT_MANAGER",
"TBC_CHECKOUT",
"STRIPE_CONNECT"
],
"description": "Платёжный провайдер из текущей допустимой merchant-привязки, сохранённой в этом финансовом предложении.",
"example": "BOG_PAYMENT_MANAGER"
},
"merchantBindingId": {
"type": "string",
"format": "uuid",
"description": "UUID merchant-привязки, чьи текущие custody, режим и возможности автоматического capture охвачены этим предложением.",
"example": "a9365a46-0f50-4efd-89fb-cd79e20e0439"
},
"expiresAt": {
"type": "string",
"format": "date-time",
"description": "Срок финансовой проверки предварительного расчёта в UTC ISO-8601 либо срок сохранённого offer при возврате с предложением согласия; изменение источника или счёта может сделать расчёт недействительным раньше.",
"example": "2026-12-31T18:00:00.000Z"
},
"terms": {
"description": "Точный локализованный текст согласия и версия, digest и язык, охваченные этим финансовым предложением.",
"allOf": [
{
"$ref": "#/components/schemas/GuestPaymentDisplayedTermsDto"
}
],
"example": {
"version": "example",
"digest": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef",
"locale": "en",
"text": "en"
}
},
"targets": {
"description": "Проверенные канонические распределения основной суммы, чаевых и нативных позиций выбранных Orders.",
"type": "array",
"items": {
"$ref": "#/components/schemas/GuestPaymentQuotedOrderDto"
},
"example": [
{
"orderId": "f3127edf-ce4f-4da7-8be5-81b962024e6c",
"principalAmount": "12.50",
"tipAmount": "0.00",
"totalAmount": "12.50",
"items": [
{
"orderItemId": "48069d23-be97-4039-8099-9db268ddf890",
"quantityPortion": "1.0000",
"totalAmount": "12.50"
}
]
}
]
}
},
"description": "Рассчитанное сервером автоматическое платёжное предложение с каноническими итогами, merchant/провайдером, локализованным текстом согласия, распределением нативных позиций и действующим сроком проверки.",
"required": [
"payee",
"quoteHash",
"currency",
"principalAmount",
"tipAmount",
"totalAmount",
"provider",
"merchantBindingId",
"expiresAt",
"terms",
"targets"
],
"example": {
"payee": {
"venueName": "Example name",
"legalName": "Example name"
},
"quoteHash": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef",
"currency": "USD",
"principalAmount": "12.50",
"tipAmount": "0.00",
"totalAmount": "12.50",
"provider": "BOG_PAYMENT_MANAGER",
"merchantBindingId": "a9365a46-0f50-4efd-89fb-cd79e20e0439",
"expiresAt": "2026-12-31T18:00:00.000Z",
"terms": {
"version": "example",
"digest": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef",
"locale": "en",
"text": "en"
},
"targets": [
{
"orderId": "f3127edf-ce4f-4da7-8be5-81b962024e6c",
"principalAmount": "12.50",
"tipAmount": "0.00",
"totalAmount": "12.50",
"items": [
{
"orderItemId": "48069d23-be97-4039-8099-9db268ddf890",
"quantityPortion": "1.0000",
"totalAmount": "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"
}
}GuestPaymentDisplayedTermsDto
Точный локализованный текст согласия с определяющими его для финансовой проверки версией, языком и digest.
versionОбязательноНепустая версия показанного текста согласия; при принятии должна точно совпадать с версией, сохранённой в offer.
stringПолное определение
{ "type": "string", "maxLength": 64, "description": "Непустая версия показанного текста согласия; при принятии должна точно совпадать с версией, сохранённой в offer.", "example": "example" }digestОбязательноSHA-256 digest в нижнем регистре, связывающий версию terms, язык и точный показанный текст; при принятии повторяется предложенный digest.
stringПолное определение
{ "type": "string", "pattern": "^[a-f0-9]{64}$", "description": "SHA-256 digest в нижнем регистре, связывающий версию terms, язык и точный показанный текст; при принятии повторяется предложенный digest.", "example": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef" }localeОбязательноЯзык, охваченный показанным текстом согласия и digest; при принятии должен совпадать с языком, сохранённым в offer.
stringПолное определение
{ "type": "string", "enum": [ "en", "ru", "ka" ], "description": "Язык, охваченный показанным текстом согласия и digest; при принятии должен совпадать с языком, сохранённым в offer.", "example": "en" }textОбязательноТочный локализованный текст, охваченный этими версией terms, языком и digest.
stringПолное определение
{ "type": "string", "description": "Точный локализованный текст, охваченный этими версией terms, языком и digest.", "example": "en" }
Полное определение
{
"type": "object",
"properties": {
"version": {
"type": "string",
"maxLength": 64,
"description": "Непустая версия показанного текста согласия; при принятии должна точно совпадать с версией, сохранённой в offer.",
"example": "example"
},
"digest": {
"type": "string",
"pattern": "^[a-f0-9]{64}$",
"description": "SHA-256 digest в нижнем регистре, связывающий версию terms, язык и точный показанный текст; при принятии повторяется предложенный digest.",
"example": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef"
},
"locale": {
"type": "string",
"enum": [
"en",
"ru",
"ka"
],
"description": "Язык, охваченный показанным текстом согласия и digest; при принятии должен совпадать с языком, сохранённым в offer.",
"example": "en"
},
"text": {
"type": "string",
"description": "Точный локализованный текст, охваченный этими версией terms, языком и digest.",
"example": "en"
}
},
"description": "Точный локализованный текст согласия с определяющими его для финансовой проверки версией, языком и digest.",
"required": [
"version",
"digest",
"locale",
"text"
],
"example": {
"version": "example",
"digest": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef",
"locale": "en",
"text": "en"
}
}GuestPaymentQuotedOrderDto
Зафиксированные основная сумма и распределённая доля запрошенных чаевых для одного нативного Order с частями позиций, охваченными предложением.
orderIdОбязательноUUID нативного Order, на который направлено это проверенное распределение основной суммы и чаевых.
string · uuidПолное определение
{ "type": "string", "format": "uuid", "description": "UUID нативного Order, на который направлено это проверенное распределение основной суммы и чаевых.", "example": "f3127edf-ce4f-4da7-8be5-81b962024e6c" }principalAmountОбязательноКаноническая основная сумма, отнесённая на этот Order до чаевых, строкой с двумя дробными знаками в валюте расчёта.
stringПолное определение
{ "type": "string", "example": "12.50", "description": "Каноническая основная сумма, отнесённая на этот Order до чаевых, строкой с двумя дробными знаками в валюте расчёта." }tipAmountОбязательноКаноническая доля запрошенных чаевых для этого Order, неотрицательной строкой с двумя дробными знаками в валюте расчёта.
stringПолное определение
{ "type": "string", "example": "0.00", "description": "Каноническая доля запрошенных чаевых для этого Order, неотрицательной строкой с двумя дробными знаками в валюте расчёта." }totalAmountОбязательноСумма основной суммы и распределённых чаевых этой цели Order строкой с двумя дробными знаками в валюте расчёта.
stringПолное определение
{ "type": "string", "example": "12.50", "description": "Сумма основной суммы и распределённых чаевых этой цели Order строкой с двумя дробными знаками в валюте расчёта." }itemsОбязательноКанонические части нативных позиций и их основные суммы, охваченные этим выбранным Order в проверенном расчёте.
arrayПолное определение
{ "description": "Канонические части нативных позиций и их основные суммы, охваченные этим выбранным Order в проверенном расчёте.", "type": "array", "items": { "$ref": "#/components/schemas/GuestPaymentQuotedItemDto" }, "example": [ { "orderItemId": "48069d23-be97-4039-8099-9db268ddf890", "quantityPortion": "1.0000", "totalAmount": "12.50" } ] }
Полное определение
{
"type": "object",
"properties": {
"orderId": {
"type": "string",
"format": "uuid",
"description": "UUID нативного Order, на который направлено это проверенное распределение основной суммы и чаевых.",
"example": "f3127edf-ce4f-4da7-8be5-81b962024e6c"
},
"principalAmount": {
"type": "string",
"example": "12.50",
"description": "Каноническая основная сумма, отнесённая на этот Order до чаевых, строкой с двумя дробными знаками в валюте расчёта."
},
"tipAmount": {
"type": "string",
"example": "0.00",
"description": "Каноническая доля запрошенных чаевых для этого Order, неотрицательной строкой с двумя дробными знаками в валюте расчёта."
},
"totalAmount": {
"type": "string",
"example": "12.50",
"description": "Сумма основной суммы и распределённых чаевых этой цели Order строкой с двумя дробными знаками в валюте расчёта."
},
"items": {
"description": "Канонические части нативных позиций и их основные суммы, охваченные этим выбранным Order в проверенном расчёте.",
"type": "array",
"items": {
"$ref": "#/components/schemas/GuestPaymentQuotedItemDto"
},
"example": [
{
"orderItemId": "48069d23-be97-4039-8099-9db268ddf890",
"quantityPortion": "1.0000",
"totalAmount": "12.50"
}
]
}
},
"description": "Зафиксированные основная сумма и распределённая доля запрошенных чаевых для одного нативного Order с частями позиций, охваченными предложением.",
"required": [
"orderId",
"principalAmount",
"tipAmount",
"totalAmount",
"items"
],
"example": {
"orderId": "f3127edf-ce4f-4da7-8be5-81b962024e6c",
"principalAmount": "12.50",
"tipAmount": "0.00",
"totalAmount": "12.50",
"items": [
{
"orderItemId": "48069d23-be97-4039-8099-9db268ddf890",
"quantityPortion": "1.0000",
"totalAmount": "12.50"
}
]
}
}GuestPaymentQuotedItemDto
Каноническая часть нативной позиции и её основная сумма, включённые в проверенный расчёт автоматической гостевой оплаты.
orderItemIdОбязательноUUID нативной позиции Order, выбранной в распределении содержащего её проверенного Order.
string · uuidПолное определение
{ "type": "string", "format": "uuid", "description": "UUID нативной позиции Order, выбранной в распределении содержащего её проверенного Order.", "example": "48069d23-be97-4039-8099-9db268ddf890" }quantityPortionОбязательноКаноническое выбранное количество позиции, сохранённое в этом предложении, положительной строкой ровно с четырьмя дробными знаками.
stringПолное определение
{ "type": "string", "example": "1.0000", "description": "Каноническое выбранное количество позиции, сохранённое в этом предложении, положительной строкой ровно с четырьмя дробными знаками." }totalAmountОбязательноКаноническая основная сумма выбранной части позиции в валюте расчёта строкой с двумя дробными знаками; чаевые распределяются отдельно на содержащую цель Order.
stringПолное определение
{ "type": "string", "example": "12.50", "description": "Каноническая основная сумма выбранной части позиции в валюте расчёта строкой с двумя дробными знаками; чаевые распределяются отдельно на содержащую цель Order." }
Полное определение
{
"type": "object",
"properties": {
"orderItemId": {
"type": "string",
"format": "uuid",
"description": "UUID нативной позиции Order, выбранной в распределении содержащего её проверенного Order.",
"example": "48069d23-be97-4039-8099-9db268ddf890"
},
"quantityPortion": {
"type": "string",
"example": "1.0000",
"description": "Каноническое выбранное количество позиции, сохранённое в этом предложении, положительной строкой ровно с четырьмя дробными знаками."
},
"totalAmount": {
"type": "string",
"example": "12.50",
"description": "Каноническая основная сумма выбранной части позиции в валюте расчёта строкой с двумя дробными знаками; чаевые распределяются отдельно на содержащую цель Order."
}
},
"description": "Каноническая часть нативной позиции и её основная сумма, включённые в проверенный расчёт автоматической гостевой оплаты.",
"required": [
"orderItemId",
"quantityPortion",
"totalAmount"
],
"example": {
"orderItemId": "48069d23-be97-4039-8099-9db268ddf890",
"quantityPortion": "1.0000",
"totalAmount": "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"
}