grubhub Merchant Properties API

Endpoints for updating merchant properties such as fulfillment settings and tax rates.

OpenAPI Specification

grubhub-merchant-properties-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Grubhub Deliveries Delivery Status Merchant Properties API
  description: The Grubhub Deliveries API enables partners to manage delivery logistics and interact with Grubhub's nationwide courier network. It provides delivery status tracking through key states including driver assignment, pickup ready, and out for delivery. Partners can leverage Grubhub Connect, a full-service delivery solution for delivery aggregators, marketplaces, and enterprise merchants to fulfill orders using Grubhub drivers. The API also supports driver communication through proxy phone numbers.
  version: 1.0.0
  x-last-validated: '2026-06-02'
  contact:
    name: Grubhub Developer Support
    url: https://grubhub-developers.zendesk.com/hc/en-us
  termsOfService: https://www.grubhub.com/legal/terms-of-use
servers:
- url: https://api-third-party-gtm.grubhub.com
  description: Production Server
- url: https://api-third-party-gtm-pp.grubhub.com
  description: Preproduction Server
security:
- hmacAuth: []
tags:
- name: Merchant Properties
  description: Endpoints for updating merchant properties such as fulfillment settings and tax rates.
paths:
  /pos/v1/merchant/{merchant_id}/fulfillment:
    get:
      operationId: getMerchantFulfillment
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      summary: Grubhub Get Merchant Fulfillment Info
      description: Returns a merchant's fulfillment configuration including delivery and pickup settings, estimated preparation times, and service area details.
      tags:
      - Merchant Properties
      parameters:
      - $ref: '#/components/parameters/MerchantId'
      responses:
        '200':
          description: Merchant fulfillment information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FulfillmentInfo'
              examples:
                GetMerchantFulfillment200Example:
                  summary: Default getMerchantFulfillment 200 response
                  x-microcks-default: true
                  value:
                    delivery_enabled: true
                    pickup_enabled: true
                    catering_enabled: true
                    estimated_prep_time_minutes: 15
                    delivery_radius_miles: 0.0
                    minimum_order_amount: 0.0
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                GetMerchantFulfillment401Example:
                  summary: Default getMerchantFulfillment 401 response
                  x-microcks-default: true
                  value:
                    error: invalid_request
                    message: Operation completed successfully.
                    status: 0
        '404':
          description: Merchant not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                GetMerchantFulfillment404Example:
                  summary: Default getMerchantFulfillment 404 response
                  x-microcks-default: true
                  value:
                    error: invalid_request
                    message: Operation completed successfully.
                    status: 0
  /pos/v1/merchants/properties:
    put:
      operationId: updateMerchantProperties
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      summary: Grubhub Update Merchant Properties in Batch
      description: Updates properties for a batch of merchants, such as fulfillment settings, tax rates, and configuration groups.
      tags:
      - Merchant Properties
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MerchantPropertiesUpdateRequest'
            examples:
              UpdateMerchantPropertiesRequestExample:
                summary: Default updateMerchantProperties request
                x-microcks-default: true
                value:
                  merchants:
                  - merchant_id: string
                    tax_rate: 0.0
                    fulfillment_settings:
                      delivery_enabled: true
                      pickup_enabled: true
                      estimated_prep_time_minutes: 0
      responses:
        '202':
          description: Properties update accepted for processing
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchJobResponse'
              examples:
                UpdateMerchantProperties202Example:
                  summary: Default updateMerchantProperties 202 response
                  x-microcks-default: true
                  value:
                    batch_id: id-1234567890
        '400':
          description: Invalid properties update request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                UpdateMerchantProperties400Example:
                  summary: Default updateMerchantProperties 400 response
                  x-microcks-default: true
                  value:
                    error: invalid_request
                    message: Operation completed successfully.
                    status: 0
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                UpdateMerchantProperties401Example:
                  summary: Default updateMerchantProperties 401 response
                  x-microcks-default: true
                  value:
                    error: invalid_request
                    message: Operation completed successfully.
                    status: 0
  /pos/v1/merchants/properties/{batch_id}:
    get:
      operationId: getMerchantPropertiesBatch
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      summary: Grubhub Get Merchant Properties Batch Progress
      description: Returns the status of a merchant properties update batch together with the progress for each individual merchant.
      tags:
      - Merchant Properties
      parameters:
      - $ref: '#/components/parameters/BatchId'
      responses:
        '200':
          description: Batch operation status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchJobStatus'
              examples:
                GetMerchantPropertiesBatch200Example:
                  summary: Default getMerchantPropertiesBatch 200 response
                  x-microcks-default: true
                  value:
                    batch_id: id-1234567890
                    status: PENDING
                    merchants:
                    - merchant_id: string
                      status: PENDING
                      error: string
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                GetMerchantPropertiesBatch401Example:
                  summary: Default getMerchantPropertiesBatch 401 response
                  x-microcks-default: true
                  value:
                    error: invalid_request
                    message: Operation completed successfully.
                    status: 0
        '404':
          description: Batch not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                GetMerchantPropertiesBatch404Example:
                  summary: Default getMerchantPropertiesBatch 404 response
                  x-microcks-default: true
                  value:
                    error: invalid_request
                    message: Operation completed successfully.
                    status: 0
components:
  schemas:
    FulfillmentInfo:
      type: object
      description: Fulfillment configuration for a merchant.
      properties:
        delivery_enabled:
          type: boolean
          description: Whether delivery is enabled for this merchant.
          example: true
        pickup_enabled:
          type: boolean
          description: Whether pickup is enabled for this merchant.
          example: true
        catering_enabled:
          type: boolean
          description: Whether catering is enabled for this merchant.
          example: true
        estimated_prep_time_minutes:
          type: integer
          description: Estimated preparation time in minutes.
          minimum: 0
          example: 15
        delivery_radius_miles:
          type: number
          format: double
          description: The delivery radius in miles.
          example: 0.0
        minimum_order_amount:
          type: number
          format: double
          description: The minimum order amount for delivery.
          example: 0.0
    MerchantPropertiesUpdateRequest:
      type: object
      description: Request to update properties for a batch of merchants.
      required:
      - merchants
      properties:
        merchants:
          type: array
          description: List of merchants with properties to update.
          items:
            type: object
            required:
            - merchant_id
            properties:
              merchant_id:
                type: string
                description: The Grubhub merchant identifier.
              tax_rate:
                type: number
                format: double
                description: Updated tax rate for the merchant.
              fulfillment_settings:
                type: object
                description: Updated fulfillment settings.
                properties:
                  delivery_enabled:
                    type: boolean
                    description: Whether delivery should be enabled.
                  pickup_enabled:
                    type: boolean
                    description: Whether pickup should be enabled.
                  estimated_prep_time_minutes:
                    type: integer
                    description: Updated estimated preparation time.
    BatchJobStatus:
      type: object
      description: Status of a batch operation with per-merchant progress.
      properties:
        batch_id:
          type: string
          description: The unique identifier for the batch operation.
          example: id-1234567890
        status:
          type: string
          description: The overall status of the batch.
          enum:
          - PENDING
          - PROCESSING
          - COMPLETED
          - FAILED
          example: PENDING
        merchants:
          type: array
          description: Progress for each individual merchant in the batch.
          items:
            type: object
            properties:
              merchant_id:
                type: string
                description: The merchant identifier.
              status:
                type: string
                description: The status for this merchant's update.
                enum:
                - PENDING
                - SUCCESS
                - FAILED
              error:
                type: string
                description: Error message if the update failed for this merchant.
    BatchJobResponse:
      type: object
      description: Response returned when a batch operation is accepted for processing.
      properties:
        batch_id:
          type: string
          description: The unique identifier for tracking the batch operation.
          example: id-1234567890
    Error:
      type: object
      description: Standard error response from the Grubhub API.
      properties:
        error:
          type: string
          description: Error type identifier.
          example: invalid_request
        message:
          type: string
          description: Human-readable error description.
          example: Operation completed successfully.
        status:
          type: integer
          description: HTTP status code.
          example: 0
  parameters:
    BatchId:
      name: batch_id
      in: path
      required: true
      description: The unique identifier for a batch operation.
      schema:
        type: string
    MerchantId:
      name: merchant_id
      in: path
      required: true
      description: The unique identifier for the merchant on Grubhub.
      schema:
        type: string
  securitySchemes:
    hmacAuth:
      type: apiKey
      in: header
      name: Authorization
      description: HMAC-based authentication. Every request must include X-GH-PARTNER-KEY and an Authorization header with MAC authentication details.
externalDocs:
  description: Grubhub Deliveries API Documentation
  url: https://developer.grubhub.com/api/deliveries