Servd Agentic Ordering

Discover Servd venues, browse menus, validate carts, place confirmed orders, and track status.

사용해야 할까요

품질 및 안전성

A
설명 품질
97%
스키마 완전성
93%
이름 품질
97%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~4,775토큰 (도구 정의)
~9.0 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 3.73%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "servd-agent-ordering": {
      "url": "https://app.getservd.me/api/v1/agent/mcp"
    }
  }
}

원격 엔드포인트

https://app.getservd.me/api/v1/agent/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (6)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢find_venues(query, limit)

Find restaurants on Servd. Returns each venue’s slug, name and city — the slug is what every other tool needs. Pass `query` to filter by name or city.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Optional name or city filter, case-insensitive."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 25
    }
  },
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "count": {
      "type": "integer",
      "minimum": 0
    },
    "venues": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "slug",
          "name",
          "city",
          "country"
        ],
        "properties": {
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "city": {
            "type": [
              "string",
              "null"
            ]
          },
          "country": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      }
    }
  },
  "required": [
    "count",
    "venues"
  ],
  "additionalProperties": false
}
🟢get_venue(slug)

Get one venue’s opening hours, current open state, pickup and delivery availability, published policies, and available agent-order payment mode.

입력 스키마

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "The venue slug."
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "slug": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "currency": {
      "type": "string",
      "description": "ISO 4217 currency code."
    },
    "phone": {
      "type": [
        "string",
        "null"
      ]
    },
    "email": {
      "type": [
        "string",
        "null"
      ]
    },
    "address": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "line1",
        "city",
        "country",
        "latitude",
        "longitude"
      ],
      "properties": {
        "line1": {
          "type": [
            "string",
            "null"
          ]
        },
        "city": {
          "type": [
            "string",
            "null"
          ]
        },
        "country": {
          "type": [
            "string",
            "null"
          ]
        },
        "latitude": {
          "type": [
            "number",
            "null"
          ]
        },
        "longitude": {
          "type": [
            "number",
            "null"
          ]
        }
      }
    },
    "timezone": {
      "type": [
        "string",
        "null"
      ]
    },
    "url": {
      "type": "string",
      "format": "uri"
    },
    "orderUrl": {
      "type": "string",
      "format": "uri"
    },
    "logoUrl": {
      "type": [
        "string",
        "null"
      ],
      "format": "uri"
    },
    "coverUrl": {
      "type": [
        "string",
        "null"
      ],
      "format": "uri"
    },
    "rating": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "value",
            "count"
          ],
          "properties": {
            "value": {
              "type": "number"
            },
            "count": {
              "type": "integer",
              "minimum": 0
            }
          }
        },
        {
          "type": "null"
        }
      ]
    },
    "openNow": {
      "type": "boolean"
    },
    "hours": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "day",
          "opens",
          "closes",
          "closed",
          "is24h"
        ],
        "properties": {
          "day": {
            "type": "integer",
            "minimum": 0,
            "maximum": 6
          },
          "opens": {
            "type": [
              "string",
              "null"
            ]
          },
          "closes": {
            "type": [
              "string",
              "null"
            ]
          },
          "closed": {
            "type": "boolean"
          },
          "is24h": {
            "type": "boolean"
          }
        }
      }
    },
    "serviceModes": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "dineIn",
        "pickup",
        "delivery"
      ],
      "properties": {
        "dineIn": {
          "type": "boolean"
        },
        "pickup": {
          "type": "boolean"
        },
        "delivery": {
          "type": "boolean"
        }
      }
    },
    "acceptsReservations": {
      "type": "boolean"
    },
    "agentOrdering": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "enabled",
        "paymentMode",
        "sandbox"
      ],
      "properties": {
        "enabled": {
          "type": "boolean"
        },
        "paymentMode": {
          "type": "string",
          "enum": [
            "instant",
            "link",
            "none"
          ]
        },
        "sandbox": {
          "type": "boolean",
          "description": "True only for an explicit reviewer tenant. Confirmed creates are simulated and never reach payment or a kitchen."
        }
      }
    },
    "policies": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "type",
          "url"
        ],
        "properties": {
          "type": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          }
        }
      }
    }
  },
  "required": [
    "id",
    "slug",
    "name",
    "currency",
    "phone",
    "email",
    "address",
    "timezone",
    "url",
    "orderUrl",
    "logoUrl",
    "coverUrl",
    "rating",
    "openNow",
    "hours",
    "serviceModes",
    "acceptsReservations",
    "agentOrdering",
    "policies"
  ],
  "additionalProperties": false
}
🟢get_menu(slug)

Get a venue’s full live menu. Use item ids in validate_cart and place_order. Prices are major-unit decimal strings in the menu currency; required modifier groups declare min and max selections.

입력 스키마

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "The venue slug."
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "venue": {
      "type": "string",
      "description": "Venue slug."
    },
    "currency": {
      "type": "string",
      "description": "ISO 4217 currency code."
    },
    "categories": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "name",
          "nameAr",
          "descriptionAr",
          "sortOrder",
          "imageUrl",
          "items"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "nameAr": {
            "type": [
              "string",
              "null"
            ]
          },
          "descriptionAr": {
            "type": [
              "string",
              "null"
            ]
          },
          "sortOrder": {
            "type": "integer"
          },
          "imageUrl": {
            "type": [
              "string",
              "null"
            ],
            "format": "uri"
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "id",
                "name",
                "nameAr",
                "description",
                "descriptionAr",
                "price",
                "salePrice",
                "currency",
                "available",
                "imageUrl",
                "tags",
                "modifierGroups",
                "quantity"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "nameAr": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "description": {
                  "type": "string"
                },
                "descriptionAr": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "price": {
                  "type": "string",
                  "pattern": "^[0-9]+\\.[0-9]{2}$"
                },
                "salePrice": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "pattern": "^[0-9]+\\.[0-9]{2}$"
                },
                "currency": {
                  "type": "string"
                },
                "available": {
                  "type": "boolean"
                },
                "imageUrl": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "uri"
                },
                "tags": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "modifierGroups": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "name",
                      "nameAr",
                      "required",
                      "min",
                      "max",
                      "options"
                    ],
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "nameAr": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "required": {
                        "type": "boolean"
                      },
                      "min": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "max": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "options": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "name",
                            "nameAr",
                            "priceAdjustment"
                          ],
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "nameAr": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "priceAdjustment": {
                              "type": "string",
                              "pattern": "^-?[0-9]+\\.[0-9]{2}$"
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "quantity": {
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "min",
                    "max",
                    "step"
                  ],
                  "properties": {
                    "min": {
                      "type": "integer",
                      "minimum": 1
                    },
                    "max": {
                      "type": "integer",
                      "minimum": 1
                    },
                    "step": {
                      "type": "integer",
                      "minimum": 1
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "required": [
    "venue",
    "currency",
    "categories"
  ],
  "additionalProperties": false
}
🟢validate_cart(slug, fulfillment, items, combos, customer, ...)

Validate a proposed cart and calculate authoritative lines, discounts, fees, tax and total without creating an order. Call this immediately before asking the diner to confirm. Send only the minimum diner contact and fulfillment data required for this order.

입력 스키마

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "minLength": 1,
      "maxLength": 160,
      "description": "The venue slug returned by find_venues."
    },
    "fulfillment": {
      "type": "string",
      "enum": [
        "pickup",
        "delivery"
      ]
    },
    "items": {
      "type": "array",
      "minItems": 1,
      "maxItems": 100,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "menu_item_id",
          "quantity"
        ],
        "properties": {
          "menu_item_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128,
            "description": "The item id returned by get_menu."
          },
          "quantity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 99
          },
          "selected_modifiers": {
            "type": "array",
            "maxItems": 50,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "group",
                "name"
              ],
              "properties": {
                "group": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "price_adj": {
                  "type": "number",
                  "description": "Informational major-unit amount from get_menu; the server recalculates it."
                }
              }
            }
          },
          "special_instructions": {
            "type": "string",
            "maxLength": 1000
          }
        }
      }
    },
    "combos": {
      "type": "array",
      "minItems": 1,
      "maxItems": 100,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "combo_id",
          "quantity"
        ],
        "properties": {
          "combo_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "quantity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 99
          }
        }
      }
    },
    "customer": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 200
        },
        "phone": {
          "type": "string",
          "maxLength": 64
        },
        "email": {
          "type": "string",
          "format": "email",
          "maxLength": 320
        }
      }
    },
    "delivery": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "street": {
          "type": "string",
          "maxLength": 500
        },
        "city": {
          "type": "string",
          "maxLength": 200
        },
        "building": {
          "type": "string",
          "maxLength": 200
        },
        "floor": {
          "type": "string",
          "maxLength": 200
        },
        "apartment": {
          "type": "string",
          "maxLength": 200
        },
        "latitude": {
          "type": "number",
          "minimum": -90,
          "maximum": 90
        },
        "longitude": {
          "type": "number",
          "minimum": -180,
          "maximum": 180
        }
      }
    },
    "payment_method": {
      "type": "string",
      "enum": [
        "cash",
        "online"
      ],
      "default": "online"
    },
    "tip_amount": {
      "type": "number",
      "minimum": 0,
      "description": "Major currency units."
    }
  },
  "required": [
    "slug",
    "fulfillment"
  ],
  "additionalProperties": false,
  "anyOf": [
    {
      "required": [
        "items"
      ]
    },
    {
      "required": [
        "combos"
      ]
    }
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "valid": {
      "type": "boolean",
      "const": true
    },
    "createsOrder": {
      "type": "boolean",
      "const": false
    },
    "venue": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "id",
        "slug",
        "name",
        "currency",
        "sandbox"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "slug": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "currency": {
          "type": "string"
        },
        "sandbox": {
          "type": "boolean"
        }
      }
    },
    "fulfillment": {
      "type": "string",
      "enum": [
        "pickup",
        "delivery"
      ]
    },
    "paymentMethod": {
      "type": "string",
      "enum": [
        "cash",
        "online"
      ]
    },
    "paymentMode": {
      "type": "string",
      "enum": [
        "instant",
        "link",
        "none"
      ]
    },
    "lines": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "menu_item_id",
          "item_name",
          "unit_price",
          "quantity",
          "line_total",
          "discount_amount",
          "combo_id",
          "selected_modifiers"
        ],
        "properties": {
          "menu_item_id": {
            "type": "string"
          },
          "item_name": {
            "type": "string"
          },
          "unit_price": {
            "type": "integer",
            "description": "Authoritative minor-unit price."
          },
          "quantity": {
            "type": "integer",
            "minimum": 1
          },
          "line_total": {
            "type": "integer",
            "description": "Authoritative minor-unit line total."
          },
          "discount_amount": {
            "type": "integer",
            "minimum": 0
          },
          "combo_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "selected_modifiers": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "group",
                "name",
                "price_adj"
              ],
              "properties": {
                "group": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "price_adj": {
                  "type": "integer",
                  "description": "Authoritative minor-unit adjustment."
                }
              }
            }
          }
        }
      }
    },
    "totals": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "currency",
        "subtotal",
        "discount",
        "tax",
        "serviceCharge",
        "deliveryFee",
        "tip",
        "total"
      ],
      "properties": {
        "currency": {
          "type": "string"
        },
        "subtotal": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "minor",
            "decimal"
          ],
          "properties": {
            "minor": {
              "type": "integer",
              "description": "Amount in the currency minor unit."
            },
            "decimal": {
              "type": "string",
              "pattern": "^-?[0-9]+\\.[0-9]{2}$"
            }
          }
        },
        "discount": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "minor",
            "decimal"
          ],
          "properties": {
            "minor": {
              "type": "integer",
              "description": "Amount in the currency minor unit."
            },
            "decimal": {
              "type": "string",
              "pattern": "^-?[0-9]+\\.[0-9]{2}$"
            }
          }
        },
        "tax": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "minor",
            "decimal"
          ],
          "properties": {
            "minor": {
              "type": "integer",
              "description": "Amount in the currency minor unit."
            },
            "decimal": {
              "type": "string",
              "pattern": "^-?[0-9]+\\.[0-9]{2}$"
            }
          }
        },
        "serviceCharge": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "minor",
            "decimal"
          ],
          "properties": {
            "minor": {
              "type": "integer",
              "description": "Amount in the currency minor unit."
            },
            "decimal": {
              "type": "string",
              "pattern": "^-?[0-9]+\\.[0-9]{2}$"
            }
          }
        },
        "deliveryFee": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "minor",
            "decimal"
          ],
          "properties": {
            "minor": {
              "type": "integer",
              "description": "Amount in the currency minor unit."
            },
            "decimal": {
              "type": "string",
              "pattern": "^-?[0-9]+\\.[0-9]{2}$"
            }
          }
        },
        "tip": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "minor",
            "decimal"
          ],
          "properties": {
            "minor": {
              "type": "integer",
              "description": "Amount in the currency minor unit."
            },
            "decimal": {
              "type": "string",
              "pattern": "^-?[0-9]+\\.[0-9]{2}$"
            }
          }
        },
        "total": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "minor",
            "decimal"
          ],
          "properties": {
            "minor": {
              "type": "integer",
              "description": "Amount in the currency minor unit."
            },
            "decimal": {
              "type": "string",
              "pattern": "^-?[0-9]+\\.[0-9]{2}$"
            }
          }
        }
      }
    },
    "confirmation": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "token",
        "expiresAt",
        "idempotencyKey",
        "boundToLatestQuote"
      ],
      "properties": {
        "token": {
          "type": [
            "string",
            "null"
          ],
          "description": "Short-lived signed receipt for this exact cart and quote. Null until all required customer and fulfillment fields are present."
        },
        "expiresAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "idempotencyKey": {
          "type": [
            "string",
            "null"
          ],
          "description": "Use this exact value as place_order.idempotency_key. Null until the request is complete."
        },
        "boundToLatestQuote": {
          "type": "boolean",
          "const": true
        }
      }
    },
    "requirements": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "missing",
        "explicitConfirmationRequired",
        "createRequestMustSet",
        "confirmationTokenRequired",
        "idempotencyKeyRequired"
      ],
      "properties": {
        "missing": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "explicitConfirmationRequired": {
          "type": "boolean",
          "const": true
        },
        "createRequestMustSet": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "confirmed"
          ],
          "properties": {
            "confirmed": {
              "type": "boolean",
              "const": true
            }
          }
        },
        "confirmationTokenRequired": {
          "type": "boolean",
          "const": true
        },
        "idempotencyKeyRequired": {
          "type": "boolean",
          "const": true
        }
      }
    }
  },
  "required": [
    "valid",
    "createsOrder",
    "venue",
    "fulfillment",
    "paymentMethod",
    "paymentMode",
    "lines",
    "totals",
    "confirmation",
    "requirements"
  ],
  "additionalProperties": false
}
🔴place_order(slug, fulfillment, items, combos, customer, ...)

Create a REAL restaurant order only after showing the latest validate_cart result and receiving explicit diner confirmation. A venue explicitly marked agentOrdering.sandbox instead returns a no-charge, no-kitchen simulation with sandbox=true and createsProductionOrder=false. Pass that result’s confirmation.token so the server can prove the cart and live quote did not change. The server recalculates all prices. Use a unique idempotency key, show orderNumber and the labeled customerLinks, and poll check_order for payment and fulfillment status. Unpaid online orders expire after 30 minutes.

입력 스키마

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "minLength": 1,
      "maxLength": 160,
      "description": "The venue slug returned by find_venues."
    },
    "fulfillment": {
      "type": "string",
      "enum": [
        "pickup",
        "delivery"
      ]
    },
    "items": {
      "type": "array",
      "minItems": 1,
      "maxItems": 100,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "menu_item_id",
          "quantity"
        ],
        "properties": {
          "menu_item_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128,
            "description": "The item id returned by get_menu."
          },
          "quantity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 99
          },
          "selected_modifiers": {
            "type": "array",
            "maxItems": 50,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "group",
                "name"
              ],
              "properties": {
                "group": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "price_adj": {
                  "type": "number",
                  "description": "Informational major-unit amount from get_menu; the server recalculates it."
                }
              }
            }
          },
          "special_instructions": {
            "type": "string",
            "maxLength": 1000
          }
        }
      }
    },
    "combos": {
      "type": "array",
      "minItems": 1,
      "maxItems": 100,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "combo_id",
          "quantity"
        ],
        "properties": {
          "combo_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "quantity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 99
          }
        }
      }
    },
    "customer": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 200
        },
        "phone": {
          "type": "string",
          "maxLength": 64
        },
        "email": {
          "type": "string",
          "format": "email",
          "maxLength": 320
        }
      },
      "required": [
        "name",
        "phone"
      ],
      "description": "The diner’s minimum contact details required by the venue."
    },
    "delivery": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "street": {
          "type": "string",
          "maxLength": 500
        },
        "city": {
          "type": "string",
          "maxLength": 200
        },
        "building": {
          "type": "string",
          "maxLength": 200
        },
        "floor": {
          "type": "string",
          "maxLength": 200
        },
        "apartment": {
          "type": "string",
          "maxLength": 200
        },
        "latitude": {
          "type": "number",
          "minimum": -90,
          "maximum": 90
        },
        "longitude": {
          "type": "number",
          "minimum": -180,
          "maximum": 180
        }
      },
      "description": "For delivery, street is required and coordinates may be needed for fees/radius."
    },
    "payment_method": {
      "type": "string",
      "enum": [
        "cash",
        "online"
      ],
      "default": "online"
    },
    "tip_amount": {
      "type": "number",
      "minimum": 0,
      "description": "Major currency units."
    },
    "confirmed": {
      "type": "boolean",
      "const": true,
      "description": "Set true only after the diner explicitly confirms the latest validate_cart result."
    },
    "confirmation_token": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2048,
      "description": "The short-lived confirmation.token from the exact validate_cart result shown to the diner."
    },
    "idempotency_key": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255,
      "description": "Use validate_cart.confirmation.idempotencyKey exactly; reuse it for retries of this confirmed order."
    }
  },
  "required": [
    "slug",
    "fulfillment",
    "customer",
    "confirmed",
    "confirmation_token",
    "idempotency_key"
  ],
  "additionalProperties": false,
  "anyOf": [
    {
      "required": [
        "items"
      ]
    },
    {
      "required": [
        "combos"
      ]
    }
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "sandbox": {
      "type": "boolean"
    },
    "createsProductionOrder": {
      "type": "boolean",
      "description": "False for reviewer sandbox receipts. True only when a production order was created."
    },
    "orderId": {
      "type": "string",
      "description": "Machine-facing private id for check_order."
    },
    "orderNumber": {
      "type": "string",
      "description": "Customer-facing order number."
    },
    "friendlyId": {
      "type": "string"
    },
    "paymentRequired": {
      "type": "boolean"
    },
    "paymentMode": {
      "type": "string",
      "enum": [
        "instant",
        "link",
        "none"
      ]
    },
    "paymentProvider": {
      "type": [
        "string",
        "null"
      ]
    },
    "paymentUrl": {
      "type": [
        "string",
        "null"
      ],
      "format": "uri"
    },
    "trackingUrl": {
      "type": "string",
      "format": "uri"
    },
    "customerLinks": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "payment",
        "tracking"
      ],
      "properties": {
        "payment": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "label",
                "url"
              ],
              "properties": {
                "label": {
                  "type": "string"
                },
                "url": {
                  "type": "string",
                  "format": "uri"
                }
              }
            },
            {
              "type": "null"
            }
          ]
        },
        "tracking": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "label",
            "url"
          ],
          "properties": {
            "label": {
              "type": "string"
            },
            "url": {
              "type": "string",
              "format": "uri"
            }
          }
        }
      }
    },
    "checkoutUrl": {
      "type": "string",
      "format": "uri"
    },
    "trackUrl": {
      "type": "string",
      "format": "uri"
    },
    "statusUrl": {
      "type": "string",
      "format": "uri"
    },
    "expiresAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "paymentError": {
      "type": [
        "string",
        "null"
      ]
    },
    "message": {
      "type": "string"
    }
  },
  "required": [
    "sandbox",
    "createsProductionOrder",
    "orderId",
    "orderNumber",
    "friendlyId",
    "paymentRequired",
    "paymentMode",
    "paymentProvider",
    "paymentUrl",
    "trackingUrl",
    "customerLinks",
    "checkoutUrl",
    "trackUrl",
    "statusUrl",
    "expiresAt",
    "paymentError",
    "message"
  ],
  "additionalProperties": false
}
🟢check_order(order_id)

Check payment and fulfillment state for an order created by place_order, or verify a signed sandbox simulation. The result intentionally omits diner contact, address, notes, and line items. Poll while state is awaiting_payment; stop when it becomes paid, preparing, ready, out_for_delivery, completed, cancelled, or expired.

입력 스키마

{
  "type": "object",
  "properties": {
    "order_id": {
      "type": "string",
      "description": "The machine-facing orderId from place_order."
    }
  },
  "required": [
    "order_id"
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "sandbox": {
      "type": "boolean"
    },
    "createsProductionOrder": {
      "type": "boolean"
    },
    "orderId": {
      "type": "string"
    },
    "orderNumber": {
      "type": [
        "string",
        "null"
      ]
    },
    "state": {
      "type": "string",
      "enum": [
        "awaiting_payment",
        "expired",
        "paid",
        "preparing",
        "ready",
        "out_for_delivery",
        "completed",
        "cancelled"
      ]
    },
    "status": {
      "type": "string"
    },
    "paymentStatus": {
      "type": [
        "string",
        "null"
      ]
    },
    "paymentMethod": {
      "type": [
        "string",
        "null"
      ]
    },
    "paid": {
      "type": "boolean"
    },
    "total": {
      "type": "integer",
      "description": "Total in minor currency units."
    },
    "currency": {
      "type": "string"
    },
    "venue": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "slug",
            "name"
          ],
          "properties": {
            "slug": {
              "type": "string"
            },
            "name": {
              "type": "string"
            }
          }
        },
        {
          "type": "null"
        }
      ]
    },
    "placedAt": {
      "type": "string",
      "format": "date-time"
    },
    "expiresAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "estimatedReadyMinutes": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0
    },
    "friendlyId": {
      "type": [
        "string",
        "null"
      ]
    },
    "trackingUrl": {
      "type": [
        "string",
        "null"
      ],
      "format": "uri"
    },
    "trackUrl": {
      "type": [
        "string",
        "null"
      ],
      "format": "uri"
    },
    "message": {
      "type": "string"
    }
  },
  "required": [
    "sandbox",
    "createsProductionOrder",
    "orderId",
    "orderNumber",
    "state",
    "status",
    "paymentStatus",
    "paymentMethod",
    "paid",
    "total",
    "currency",
    "venue",
    "placedAt",
    "expiresAt",
    "estimatedReadyMinutes",
    "friendlyId",
    "trackingUrl",
    "trackUrl",
    "message"
  ],
  "additionalProperties": false
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 6개
검증됨버전이 기록되지 않음도구 6개