Gett Developer Portal
  • Welcome
  • Distribution Partners
  • Brand Partners
  • Commerce Partners
  • Ecosystem Partners
  • Errors
  • API Reference
Documentation
  • Get Started
  • Marketfront SDK
  • API Reference
Resources
  • Payments
Company
  • Gett
  • Terms of Service
  • Privacy Policy

Copyright 2026 Gett. All rights reserved.

Information
Stores
    Discover StorespostGet Storeget
Catalog
    Get CatalogSetget
Orders
    Place orderpostValidate orderpost
Cart
    Add item to cartpostRemove item from cartpostUpdate item quantitypost
Schemas
powered by Zuplo
Gett Marketfront Partner API
Gett Marketfront Partner API

Orders

Order validation and placement.

  1. validateOrder — Validate the cart, get accurate pricing, and receive a validatedOrderToken
  2. placeOrder — Submit the order using the token (expires in 15 minutes); requires the Idempotency-Key header (UUID v4)

Place order

POST
https://api.gett-tech.com
/v1/marketfront/orders/place

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:

  • GETT_PAYMENT — Payment is handled by Gett (SDK integrations)
  • CARD_ON_FILE — A card token from your own payment solution. Requires paymentToken.
  • SAVED_CARD — A Gett-managed saved card (iframe checkout flow). Requires paymentId and 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.

Place order › Headers

Idempotency-Key
​string · required

Required 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

Place-order request — a validate request plus payment.
OrderPlaceRequest
​Cart · required

Shopping cart with line items.

​ClientContext · required

The end user's own IP and user agent. Required on every order request — Gett cannot observe them, because your call reaches us server-to-server.

​Fulfillment · required

How and when the order should be fulfilled — the mode (delivery or pickup), schedule, and (for delivery) the destination Address and handoff details. Supply it on the request; on the response it is returned fully resolved.

​PaymentInfo · required

Payment details — see the Payments Guide.

​Amounts

Pricing breakdown. On validateOrder you supply tip and the response returns the rest of the breakdown; on placeOrder the response returns the final, authoritative amounts. Optional on requests that only need validation.

​Customer

Customer contact information for the order. Supply it on your order requests; it is echoed back, fully resolved, on the response.

Place order › Responses

Order placed. Returns the created Order with the server-assigned gettOrderId, placedAt, and the final amounts breakdown.

The order resource — the shape returned by validate and place. Read-only, server-assigned fields (the order id, placement time, errors, and trace id) appear on responses only; the shared request/response fields live on OrderCore.
Order
POST/v1/marketfront/orders/place
curl https://api.gett-tech.com/v1/marketfront/orders/place \ --request POST \ --header 'Content-Type: application/*+json' \ --header 'Idempotency-Key: <string>' \ --header 'Authorization: Bearer <token>' \ --data '{ "amounts": { "adjustments": "adjustments", "adjustmentsDetails": [ { "amount": "amount", "description": "description" } ], "currency": "currency", "fees": "fees", "feesDetails": [ { "amount": "amount", "description": "description" } ], "promotions": "promotions", "promotionsDetails": [ { "amount": "amount", "description": "description" } ], "subTotal": "subTotal", "taxes": "taxes", "taxesDetails": [ { "amount": "amount", "description": "description" } ], "tip": "tip", "tipDetails": [ { "amount": "amount", "description": "description" } ], "total": "total" }, "cart": { "catalogSetId": "00000000-0000-0000-0000-000000000000", "lineItems": [ { "itemId": "00000000-0000-0000-0000-000000000000", "lineItemId": "00000000-0000-0000-0000-000000000000", "modifierGroups": [ { "lineItems": [ null ], "modifierGroupId": "00000000-0000-0000-0000-000000000000" } ], "quantity": 0 } ], "storeId": "00000000-0000-0000-0000-000000000000" }, "client": { "ip": "203.0.113.7", "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0 Safari/537.36" }, "customer": { "email": "email", "firstName": "firstName", "lastName": "lastName", "partnerUserId": "partnerUserId", "phone": "phone" }, "fulfillment": { "mode": "PICKUP", "scheduleType": "ASAP", "scheduledTime": "2024-08-25T15:00:00Z" }, "payment": { "paymentToken": "paymentToken", "type": "CARD_ON_FILE" } }'
Example Request Body
{ "amounts": { "adjustments": "adjustments", "adjustmentsDetails": [ { "amount": "amount", "description": "description" } ], "currency": "currency", "fees": "fees", "feesDetails": [ { "amount": "amount", "description": "description" } ], "promotions": "promotions", "promotionsDetails": [ { "amount": "amount", "description": "description" } ], "subTotal": "subTotal", "taxes": "taxes", "taxesDetails": [ { "amount": "amount", "description": "description" } ], "tip": "tip", "tipDetails": [ { "amount": "amount", "description": "description" } ], "total": "total" }, "cart": { "catalogSetId": "00000000-0000-0000-0000-000000000000", "lineItems": [ { "itemId": "00000000-0000-0000-0000-000000000000", "lineItemId": "00000000-0000-0000-0000-000000000000", "modifierGroups": [ { "lineItems": [ null ], "modifierGroupId": "00000000-0000-0000-0000-000000000000" } ], "quantity": 0 } ], "storeId": "00000000-0000-0000-0000-000000000000" }, "client": { "ip": "203.0.113.7", "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0 Safari/537.36" }, "customer": { "email": "email", "firstName": "firstName", "lastName": "lastName", "partnerUserId": "partnerUserId", "phone": "phone" }, "fulfillment": { "mode": "PICKUP", "scheduleType": "ASAP", "scheduledTime": "2024-08-25T15:00:00Z" }, "payment": { "paymentToken": "paymentToken", "type": "CARD_ON_FILE" } }
json
Example Responses
{}
json
application/json

Validate order

POST
https://api.gett-tech.com
/v1/marketfront/orders/validate

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 Order with amounts (pricing breakdown) and errors (validation issues). Check isValid to determine if the order can be placed.

Send an OrderValidateRequest (cart, fulfillment, optional customer/tip); get back the validated Order with server-computed fields filled in.

Validate order › Request Body

Validate-order request. Carries only client-providable order fields — cart, the discriminated fulfillment (pickup/delivery, with schedule + a delivery `address`), an optional tip in `amounts`, and an optional `customer` (required for api-key callers). Inherits these from OrderCore; the server fills the response-only fields (gettOrderId, amounts breakdown, errors, …) on the returned Order.
OrderValidateRequest
​Cart · required

Shopping cart with line items.

​ClientContext · required

The end user's own IP and user agent. Required on every order request — Gett cannot observe them, because your call reaches us server-to-server.

​Fulfillment · required

How and when the order should be fulfilled — the mode (delivery or pickup), schedule, and (for delivery) the destination Address and handoff details. Supply it on the request; on the response it is returned fully resolved.

​Amounts

Pricing breakdown. On validateOrder you supply tip and the response returns the rest of the breakdown; on placeOrder the response returns the final, authoritative amounts. Optional on requests that only need validation.

​Customer

Customer contact information for the order. Supply it on your order requests; it is echoed back, fully resolved, on the response.

Validate order › Responses

OK

The order resource — the shape returned by validate and place. Read-only, server-assigned fields (the order id, placement time, errors, and trace id) appear on responses only; the shared request/response fields live on OrderCore.
Order
POST/v1/marketfront/orders/validate
curl https://api.gett-tech.com/v1/marketfront/orders/validate \ --request POST \ --header 'Content-Type: application/*+json' \ --header 'Authorization: Bearer <token>' \ --data '{ "amounts": { "adjustments": "adjustments", "adjustmentsDetails": [ { "amount": "amount", "description": "description" } ], "currency": "currency", "fees": "fees", "feesDetails": [ { "amount": "amount", "description": "description" } ], "promotions": "promotions", "promotionsDetails": [ { "amount": "amount", "description": "description" } ], "subTotal": "subTotal", "taxes": "taxes", "taxesDetails": [ { "amount": "amount", "description": "description" } ], "tip": "tip", "tipDetails": [ { "amount": "amount", "description": "description" } ], "total": "total" }, "cart": { "catalogSetId": "00000000-0000-0000-0000-000000000000", "lineItems": [ { "itemId": "00000000-0000-0000-0000-000000000000", "lineItemId": "00000000-0000-0000-0000-000000000000", "modifierGroups": [ { "lineItems": [ null ], "modifierGroupId": "00000000-0000-0000-0000-000000000000" } ], "quantity": 0 } ], "storeId": "00000000-0000-0000-0000-000000000000" }, "client": { "ip": "203.0.113.7", "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0 Safari/537.36" }, "customer": { "email": "email", "firstName": "firstName", "lastName": "lastName", "partnerUserId": "partnerUserId", "phone": "phone" }, "fulfillment": { "mode": "PICKUP", "scheduleType": "ASAP", "scheduledTime": "2024-08-25T15:00:00Z" } }'
Example Request Body
{ "amounts": { "adjustments": "adjustments", "adjustmentsDetails": [ { "amount": "amount", "description": "description" } ], "currency": "currency", "fees": "fees", "feesDetails": [ { "amount": "amount", "description": "description" } ], "promotions": "promotions", "promotionsDetails": [ { "amount": "amount", "description": "description" } ], "subTotal": "subTotal", "taxes": "taxes", "taxesDetails": [ { "amount": "amount", "description": "description" } ], "tip": "tip", "tipDetails": [ { "amount": "amount", "description": "description" } ], "total": "total" }, "cart": { "catalogSetId": "00000000-0000-0000-0000-000000000000", "lineItems": [ { "itemId": "00000000-0000-0000-0000-000000000000", "lineItemId": "00000000-0000-0000-0000-000000000000", "modifierGroups": [ { "lineItems": [ null ], "modifierGroupId": "00000000-0000-0000-0000-000000000000" } ], "quantity": 0 } ], "storeId": "00000000-0000-0000-0000-000000000000" }, "client": { "ip": "203.0.113.7", "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0 Safari/537.36" }, "customer": { "email": "email", "firstName": "firstName", "lastName": "lastName", "partnerUserId": "partnerUserId", "phone": "phone" }, "fulfillment": { "mode": "PICKUP", "scheduleType": "ASAP", "scheduledTime": "2024-08-25T15:00:00Z" } }
json
Example Responses
{}
json
application/json

CatalogCart