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 API
Gett Marketfront 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/marketplace/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:

  • gettPayment — Payment is handled by Gett (SDK integrations)
  • cardOnFile — Your platform's saved card. Requires cardToken and processorType.
  • savedCard — 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

Request to place an order. Extends ExternalOrder with payment details. For validation, use ExternalOrder directly.
PlaceOrderRequest
​Cart · required

Shopping cart with line items.

fulfillmentType
​FulfillmentType · enum · required

Flat 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.

Enum values:
PickUp
DeliveryByMerchant
​PaymentInfo · required

Payment details — see the Payments Guide.

​Amounts

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.

​ExternalCustomer

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.

​ExternalDeliveryInfo

Delivery details. Required when FulfillmentType is DeliveryByMerchant.

​null | array

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.

gettOrderId
​string · uuid

Unique order identifier assigned by Gett. Empty in wire requests — set by server on placement.

isValid
​boolean · readOnly

Whether the order passed validation (no errors).

partnerOrderId
​null | string

Partner's own order identifier, assigned after placement by the provider.

placedAt
​null | string · date-time

When the order was placed.

traceId
​null | string

W3C 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).

RFC 9457 Problem Details for HTTP APIs. Standard error response format with operational extension members for deterministic retry/escalation decisions.
ProblemDetail
status
​integer · int32 · required

The HTTP status code.

title
​null | string · required

A short, human-readable summary of the problem type.

type
​null | string · required

A URI reference that identifies the problem type.

detail
​null | string

A human-readable explanation specific to this occurrence.

errorCategory
​null | string

Machine-readable error category (e.g. validation, rate_limit, payment, availability, server_error).

errorCode
​null | string

Machine-readable error code for domain-specific errors.

​null | array

Validation error details, when applicable.

instance
​null | string

A URI reference that identifies the specific occurrence.

requestId
​null | string

Unique identifier for this request, useful for support.

retryAfter
​null | integer · int32

Seconds to wait before retrying. Present when retryable is true and a wait period is known.

retryable
​null | boolean

Whether the request can be retried with a reasonable expectation of success.

timestamp
​null | string · date-time

When the error occurred.

traceId
​null | string

W3C 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.

POST/v1/marketplace/orders/place
curl --request POST \ --url https://api.gett-tech.com/v1/marketplace/orders/place \ --header 'Content-Type: application/*+json' \ --header 'Idempotency-Key: <string>' \ --data ' { "amounts": { "adjustments": 0, "adjustmentsDetails": [ { "amount": 0, "description": "description" } ], "fees": 0, "feesDetails": [ { "amount": 0, "description": "description" } ], "promotions": 0, "promotionsDetails": [ { "amount": 0, "description": "description" } ], "subTotal": 0, "taxes": 0, "taxesDetails": [ { "amount": 0, "description": "description" } ], "tip": 0, "tipDescription": "tipDescription", "total": 0 }, "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" }, "customer": { "email": "email", "firstName": "firstName", "lastName": "lastName", "partnerUserId": "partnerUserId", "phone": "phone" }, "deliveryInfo": { "address": { "address1": "address1", "address2": "address2", "city": "city", "latLong": { "lat": 0, "lng": 0 }, "postalCode": "postalCode", "state": "state" }, "instructions": "instructions", "type": "DoorToDoor" }, "errors": [ { "code": "code", "itemId": "itemId", "jsonPath": "jsonPath", "message": "message" } ], "fulfillmentType": "PickUp", "gettOrderId": "00000000-0000-0000-0000-000000000000", "isValid": true, "partnerOrderId": "partnerOrderId", "payment": { "cardToken": "cardToken", "paymentId": "00000000-0000-0000-0000-000000000000", "processorType": "processorType", "type": "type" }, "placedAt": "2024-08-25T15:00:00Z", "traceId": "traceId" } '
Example Request Body
{ "amounts": { "adjustments": 0, "adjustmentsDetails": [ { "amount": 0, "description": "description" } ], "fees": 0, "feesDetails": [ { "amount": 0, "description": "description" } ], "promotions": 0, "promotionsDetails": [ { "amount": 0, "description": "description" } ], "subTotal": 0, "taxes": 0, "taxesDetails": [ { "amount": 0, "description": "description" } ], "tip": 0, "tipDescription": "tipDescription", "total": 0 }, "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" }, "customer": { "email": "email", "firstName": "firstName", "lastName": "lastName", "partnerUserId": "partnerUserId", "phone": "phone" }, "deliveryInfo": { "address": { "address1": "address1", "address2": "address2", "city": "city", "latLong": { "lat": 0, "lng": 0 }, "postalCode": "postalCode", "state": "state" }, "instructions": "instructions", "type": "DoorToDoor" }, "errors": [ { "code": "code", "itemId": "itemId", "jsonPath": "jsonPath", "message": "message" } ], "fulfillmentType": "PickUp", "gettOrderId": "00000000-0000-0000-0000-000000000000", "isValid": true, "partnerOrderId": "partnerOrderId", "payment": { "cardToken": "cardToken", "paymentId": "00000000-0000-0000-0000-000000000000", "processorType": "processorType", "type": "type" }, "placedAt": "2024-08-25T15:00:00Z", "traceId": "traceId" }
json
Example Responses
{ "detail": "detail", "errorCategory": "errorCategory", "errorCode": "errorCode", "errors": [ { "code": "code", "itemId": "itemId", "jsonPath": "jsonPath", "message": "message" } ], "instance": "instance", "requestId": "requestId", "retryAfter": 0, "retryable": true, "status": 0, "timestamp": "2024-08-25T15:00:00Z", "title": "title", "traceId": "traceId", "type": "type" }
json
application/problem+json

Validate order

POST
https://api.gett-tech.com
/v1/marketplace/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 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

Clean, partner-facing order representation. Used as both request and response for the Marketfront API. Excludes internal fields: UserId, PaymentId, DistributionPartnerId, ProviderMetadata.
ExternalOrder
​Cart · required

Shopping cart with line items.

fulfillmentType
​FulfillmentType · enum · required

Flat 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.

Enum values:
PickUp
DeliveryByMerchant
​Amounts

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.

​ExternalCustomer

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.

​ExternalDeliveryInfo

Delivery details. Required when FulfillmentType is DeliveryByMerchant.

​null | array

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.

gettOrderId
​string · uuid

Unique order identifier assigned by Gett. Empty in wire requests — set by server on placement.

isValid
​boolean · readOnly

Whether the order passed validation (no errors).

partnerOrderId
​null | string

Partner's own order identifier, assigned after placement by the provider.

placedAt
​null | string · date-time

When the order was placed.

traceId
​null | string

W3C 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

Clean, partner-facing order representation. Used as both request and response for the Marketfront API. Excludes internal fields: UserId, PaymentId, DistributionPartnerId, ProviderMetadata.
ExternalOrder
​Cart · required

Shopping cart with line items.

fulfillmentType
​FulfillmentType · enum · required

Flat 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.

Enum values:
PickUp
DeliveryByMerchant
​Amounts

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.

​ExternalCustomer

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.

​ExternalDeliveryInfo

Delivery details. Required when FulfillmentType is DeliveryByMerchant.

​null | array

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.

gettOrderId
​string · uuid

Unique order identifier assigned by Gett. Empty in wire requests — set by server on placement.

isValid
​boolean · readOnly

Whether the order passed validation (no errors).

partnerOrderId
​null | string

Partner's own order identifier, assigned after placement by the provider.

placedAt
​null | string · date-time

When the order was placed.

traceId
​null | string

W3C 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.

POST/v1/marketplace/orders/validate
curl --request POST \ --url https://api.gett-tech.com/v1/marketplace/orders/validate \ --header 'Content-Type: application/*+json' \ --data ' { "amounts": { "adjustments": 0, "adjustmentsDetails": [ { "amount": 0, "description": "description" } ], "fees": 0, "feesDetails": [ { "amount": 0, "description": "description" } ], "promotions": 0, "promotionsDetails": [ { "amount": 0, "description": "description" } ], "subTotal": 0, "taxes": 0, "taxesDetails": [ { "amount": 0, "description": "description" } ], "tip": 0, "tipDescription": "tipDescription", "total": 0 }, "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" }, "customer": { "email": "email", "firstName": "firstName", "lastName": "lastName", "partnerUserId": "partnerUserId", "phone": "phone" }, "deliveryInfo": { "address": { "address1": "address1", "address2": "address2", "city": "city", "latLong": { "lat": 0, "lng": 0 }, "postalCode": "postalCode", "state": "state" }, "instructions": "instructions", "type": "DoorToDoor" }, "errors": [ { "code": "code", "itemId": "itemId", "jsonPath": "jsonPath", "message": "message" } ], "fulfillmentType": "PickUp", "gettOrderId": "00000000-0000-0000-0000-000000000000", "isValid": true, "partnerOrderId": "partnerOrderId", "placedAt": "2024-08-25T15:00:00Z", "traceId": "traceId" } '
Example Request Body
{ "amounts": { "adjustments": 0, "adjustmentsDetails": [ { "amount": 0, "description": "description" } ], "fees": 0, "feesDetails": [ { "amount": 0, "description": "description" } ], "promotions": 0, "promotionsDetails": [ { "amount": 0, "description": "description" } ], "subTotal": 0, "taxes": 0, "taxesDetails": [ { "amount": 0, "description": "description" } ], "tip": 0, "tipDescription": "tipDescription", "total": 0 }, "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" }, "customer": { "email": "email", "firstName": "firstName", "lastName": "lastName", "partnerUserId": "partnerUserId", "phone": "phone" }, "deliveryInfo": { "address": { "address1": "address1", "address2": "address2", "city": "city", "latLong": { "lat": 0, "lng": 0 }, "postalCode": "postalCode", "state": "state" }, "instructions": "instructions", "type": "DoorToDoor" }, "errors": [ { "code": "code", "itemId": "itemId", "jsonPath": "jsonPath", "message": "message" } ], "fulfillmentType": "PickUp", "gettOrderId": "00000000-0000-0000-0000-000000000000", "isValid": true, "partnerOrderId": "partnerOrderId", "placedAt": "2024-08-25T15:00:00Z", "traceId": "traceId" }
json
Example Responses
{ "amounts": { "adjustments": 0, "adjustmentsDetails": [ { "amount": 0, "description": "description" } ], "fees": 0, "feesDetails": [ { "amount": 0, "description": "description" } ], "promotions": 0, "promotionsDetails": [ { "amount": 0, "description": "description" } ], "subTotal": 0, "taxes": 0, "taxesDetails": [ { "amount": 0, "description": "description" } ], "tip": 0, "tipDescription": "tipDescription", "total": 0 }, "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" }, "customer": { "email": "email", "firstName": "firstName", "lastName": "lastName", "partnerUserId": "partnerUserId", "phone": "phone" }, "deliveryInfo": { "address": { "address1": "address1", "address2": "address2", "city": "city", "latLong": { "lat": 0, "lng": 0 }, "postalCode": "postalCode", "state": "state" }, "instructions": "instructions", "type": "DoorToDoor" }, "errors": [ { "code": "code", "itemId": "itemId", "jsonPath": "jsonPath", "message": "message" } ], "fulfillmentType": "PickUp", "gettOrderId": "00000000-0000-0000-0000-000000000000", "isValid": true, "partnerOrderId": "partnerOrderId", "placedAt": "2024-08-25T15:00:00Z", "traceId": "traceId" }
json
application/json

CatalogCart