Order validation and placement.
- validateOrder — Validate the cart, get accurate pricing, and receive a
validatedOrderToken - placeOrder — Submit the order using the token (expires in 15 minutes); requires the
Idempotency-Keyheader (UUID v4)
Place order
Places an order with payment. The order is re-validated, payment is processed, and the order is submitted to the restaurant.
Payment
The payment object specifies how to pay. Three options:
gettPayment— Payment is handled by Gett (SDK integrations)cardOnFile— Your platform's saved card. RequirescardTokenandprocessorType.savedCard— A Gett-managed saved card (iframe checkout flow). RequirespaymentIdand a session JWT.
See the Payments Guide.
Idempotency
The Idempotency-Key header (UUID v4) is REQUIRED. Replays with the same key
return the original response (24h TTL). Use a fresh key for each distinct order;
reusing a key with a different payload is a future-error condition.
Headers
Idempotency-KeyRequired unique key (UUID v4) to ensure the request is processed at most once. If a request with the same key was already processed, the original response is returned.
Place order › Request Body
Shopping cart with line items.
fulfillmentTypeFlat fulfillment mode for the partner-facing wire shape. Lives on ExternalOrder
only — the internal Gett.Core.Order.Order carries a discriminated Gett.Core.Order.Fulfillment
variant instead. Projected from Order.Fulfillment.Mode by
Gett.Core.Order.ExternalOrderMapper on the way out; read and used to construct
Order.Fulfillment on the way in.
Payment details — see the Payments Guide.
Pricing breakdown. On validateOrder, the partner supplies Amounts.Tip;
the server computes and returns the rest of the breakdown. On placeOrder,
the provider returns the authoritative post-place breakdown that gets persisted.
Nullable because validate-only flows may omit it.
Customer contact information.
Required for partner api-key flows. Optional when the request is authenticated with a Marketfront session JWT — the server resolves the customer from the session user's profile.
Delivery details. Required when FulfillmentType is DeliveryByMerchant.
Validation or placement errors, if any. Same element shape as Gett.Core.ProblemDetail.Errors so partners get one parser across both inline-on-200 and 4xx error paths.
gettOrderIdUnique order identifier assigned by Gett. Empty in wire requests — set by server on placement.
isValidWhether the order passed validation (no errors).
partnerOrderIdPartner's own order identifier, assigned after placement by the provider.
placedAtWhen the order was placed.
traceIdW3C trace id (32-hex) for this response, populated only when Gett.Core.Order.ExternalOrder.Errors is
non-empty. Lets a tester or support agent jump straight from a failed validation/placement
to the distributed trace and correlated logs in SigNoz — the bridge that was missing when
a generic OTHER error gave no handle back to the server-side exception. Null on success.
Place order › Responses
Order placement failed. The errorCode field identifies the specific failure reason (e.g. payment declined, store rejected, missing idempotency key).
statusThe HTTP status code.
titleA short, human-readable summary of the problem type.
typeA URI reference that identifies the problem type.
detailA human-readable explanation specific to this occurrence.
errorCategoryMachine-readable error category (e.g. validation, rate_limit, payment, availability, server_error).
errorCodeMachine-readable error code for domain-specific errors.
Validation error details, when applicable.
instanceA URI reference that identifies the specific occurrence.
requestIdUnique identifier for this request, useful for support.
retryAfterSeconds to wait before retrying. Present when retryable is true and a wait period is known.
retryableWhether the request can be retried with a reasonable expectation of success.
timestampWhen the error occurred.
traceIdW3C trace id (32-hex) for this request. Paste into SigNoz trace search to find the distributed trace and correlated logs. Populated by the global exception filter.
Validate order
Validates an order and returns the full order with resolved pricing. Use this before placing to preview amounts and catch errors.
The response is an ExternalOrder with amounts (pricing breakdown) and errors (validation issues). Check isValid to determine if the order can be placed.
The request and response share the same ExternalOrder shape — send your order details, get back the validated version with server-computed fields filled in.
Validate order › Request Body
Shopping cart with line items.
fulfillmentTypeFlat fulfillment mode for the partner-facing wire shape. Lives on ExternalOrder
only — the internal Gett.Core.Order.Order carries a discriminated Gett.Core.Order.Fulfillment
variant instead. Projected from Order.Fulfillment.Mode by
Gett.Core.Order.ExternalOrderMapper on the way out; read and used to construct
Order.Fulfillment on the way in.
Pricing breakdown. On validateOrder, the partner supplies Amounts.Tip;
the server computes and returns the rest of the breakdown. On placeOrder,
the provider returns the authoritative post-place breakdown that gets persisted.
Nullable because validate-only flows may omit it.
Customer contact information.
Required for partner api-key flows. Optional when the request is authenticated with a Marketfront session JWT — the server resolves the customer from the session user's profile.
Delivery details. Required when FulfillmentType is DeliveryByMerchant.
Validation or placement errors, if any. Same element shape as Gett.Core.ProblemDetail.Errors so partners get one parser across both inline-on-200 and 4xx error paths.
gettOrderIdUnique order identifier assigned by Gett. Empty in wire requests — set by server on placement.
isValidWhether the order passed validation (no errors).
partnerOrderIdPartner's own order identifier, assigned after placement by the provider.
placedAtWhen the order was placed.
traceIdW3C trace id (32-hex) for this response, populated only when Gett.Core.Order.ExternalOrder.Errors is
non-empty. Lets a tester or support agent jump straight from a failed validation/placement
to the distributed trace and correlated logs in SigNoz — the bridge that was missing when
a generic OTHER error gave no handle back to the server-side exception. Null on success.
Validate order › Responses
OK
Shopping cart with line items.
fulfillmentTypeFlat fulfillment mode for the partner-facing wire shape. Lives on ExternalOrder
only — the internal Gett.Core.Order.Order carries a discriminated Gett.Core.Order.Fulfillment
variant instead. Projected from Order.Fulfillment.Mode by
Gett.Core.Order.ExternalOrderMapper on the way out; read and used to construct
Order.Fulfillment on the way in.
Pricing breakdown. On validateOrder, the partner supplies Amounts.Tip;
the server computes and returns the rest of the breakdown. On placeOrder,
the provider returns the authoritative post-place breakdown that gets persisted.
Nullable because validate-only flows may omit it.
Customer contact information.
Required for partner api-key flows. Optional when the request is authenticated with a Marketfront session JWT — the server resolves the customer from the session user's profile.
Delivery details. Required when FulfillmentType is DeliveryByMerchant.
Validation or placement errors, if any. Same element shape as Gett.Core.ProblemDetail.Errors so partners get one parser across both inline-on-200 and 4xx error paths.
gettOrderIdUnique order identifier assigned by Gett. Empty in wire requests — set by server on placement.
isValidWhether the order passed validation (no errors).
partnerOrderIdPartner's own order identifier, assigned after placement by the provider.
placedAtWhen the order was placed.
traceIdW3C trace id (32-hex) for this response, populated only when Gett.Core.Order.ExternalOrder.Errors is
non-empty. Lets a tester or support agent jump straight from a failed validation/placement
to the distributed trace and correlated logs in SigNoz — the bridge that was missing when
a generic OTHER error gave no handle back to the server-side exception. Null on success.