grubhub Merchant Onboarding API

Endpoints for onboarding merchants to the Grubhub platform, including referrals, activation, and association.

OpenAPI Specification

grubhub-merchant-onboarding-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Grubhub Deliveries Delivery Status Merchant Onboarding 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 Onboarding
  description: Endpoints for onboarding merchants to the Grubhub platform, including referrals, activation, and association.
paths:
  /pos/v1/onboarding/referral:
    post:
      operationId: createMerchantReferral
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      summary: Grubhub Create a New Merchant Referral
      description: Sends over the details of a new merchant for onboarding them to Grubhub. This initiates the merchant onboarding process and can significantly reduce the time to get a merchant live on the platform.
      tags:
      - Merchant Onboarding
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MerchantReferral'
            examples:
              CreateMerchantReferralRequestExample:
                summary: Default createMerchantReferral request
                x-microcks-default: true
                value:
                  business_name: string
                  address:
                    street_address: 111 W Washington St
                    city: Chicago
                    state: IL
                    zip: '60602'
                  contact:
                    name: Sample Name
                    email: partner@example.com
                    phone: '+13125550142'
                  external_id: id-1234567890
                  cuisine_types:
                  - string
      responses:
        '201':
          description: Merchant referral created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReferralResponse'
              examples:
                CreateMerchantReferral201Example:
                  summary: Default createMerchantReferral 201 response
                  x-microcks-default: true
                  value:
                    referral_id: id-1234567890
                    merchant_id: ghm-1234567890
                    status: PENDING
        '400':
          description: Invalid referral data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                CreateMerchantReferral400Example:
                  summary: Default createMerchantReferral 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:
                CreateMerchantReferral401Example:
                  summary: Default createMerchantReferral 401 response
                  x-microcks-default: true
                  value:
                    error: invalid_request
                    message: Operation completed successfully.
                    status: 0
  /pos/v1/onboarding/activate:
    post:
      operationId: activateMerchant
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      summary: Grubhub Activate a Merchant
      description: Activates a merchant for integration with the partner, enabling the merchant to receive orders through the partner's system on the Grubhub platform.
      tags:
      - Merchant Onboarding
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MerchantActivationRequest'
            examples:
              ActivateMerchantRequestExample:
                summary: Default activateMerchant request
                x-microcks-default: true
                value:
                  merchant_id: ghm-1234567890
      responses:
        '200':
          description: Merchant activated successfully
        '400':
          description: Invalid activation request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                ActivateMerchant400Example:
                  summary: Default activateMerchant 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:
                ActivateMerchant401Example:
                  summary: Default activateMerchant 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:
                ActivateMerchant404Example:
                  summary: Default activateMerchant 404 response
                  x-microcks-default: true
                  value:
                    error: invalid_request
                    message: Operation completed successfully.
                    status: 0
  /pos/v1/onboarding/deactivate:
    post:
      operationId: deactivateMerchant
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      summary: Grubhub Deactivate a Merchant
      description: Validates a merchant and removes its association with the partner. The deactivation request uses partner authentication to identify the calling partner.
      tags:
      - Merchant Onboarding
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MerchantDeactivationRequest'
            examples:
              DeactivateMerchantRequestExample:
                summary: Default deactivateMerchant request
                x-microcks-default: true
                value:
                  merchant_id: ghm-1234567890
                  reason: Out of an item.
      responses:
        '200':
          description: Merchant deactivated successfully
        '400':
          description: Invalid deactivation request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                DeactivateMerchant400Example:
                  summary: Default deactivateMerchant 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:
                DeactivateMerchant401Example:
                  summary: Default deactivateMerchant 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:
                DeactivateMerchant404Example:
                  summary: Default deactivateMerchant 404 response
                  x-microcks-default: true
                  value:
                    error: invalid_request
                    message: Operation completed successfully.
                    status: 0
  /pos/v1/onboarding/deactivate/partner:
    post:
      operationId: deactivateMerchantPartner
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      summary: Grubhub Deactivate a Merchant (partner Auth)
      description: Deactivates a merchant using partner-level authentication. Validates the merchant and removes its association with the partner account.
      tags:
      - Merchant Onboarding
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MerchantDeactivationRequest'
            examples:
              DeactivateMerchantPartnerRequestExample:
                summary: Default deactivateMerchantPartner request
                x-microcks-default: true
                value:
                  merchant_id: ghm-1234567890
                  reason: Out of an item.
      responses:
        '200':
          description: Merchant deactivated successfully
        '400':
          description: Invalid deactivation request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                DeactivateMerchantPartner400Example:
                  summary: Default deactivateMerchantPartner 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:
                DeactivateMerchantPartner401Example:
                  summary: Default deactivateMerchantPartner 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:
                DeactivateMerchantPartner404Example:
                  summary: Default deactivateMerchantPartner 404 response
                  x-microcks-default: true
                  value:
                    error: invalid_request
                    message: Operation completed successfully.
                    status: 0
  /pos/v1/onboarding/associate:
    post:
      operationId: associateMerchants
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      summary: Grubhub Associate Merchants with Partner
      description: Binds provided merchants to the partner for onboarding. Associates a list of merchant IDs with the partner account, enabling the partner to manage these merchants through the API.
      tags:
      - Merchant Onboarding
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MerchantAssociationRequest'
            examples:
              AssociateMerchantsRequestExample:
                summary: Default associateMerchants request
                x-microcks-default: true
                value:
                  merchant_ids:
                  - string
      responses:
        '200':
          description: Merchants associated successfully
        '400':
          description: Invalid association request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                AssociateMerchants400Example:
                  summary: Default associateMerchants 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:
                AssociateMerchants401Example:
                  summary: Default associateMerchants 401 response
                  x-microcks-default: true
                  value:
                    error: invalid_request
                    message: Operation completed successfully.
                    status: 0
components:
  schemas:
    MerchantAssociationRequest:
      type: object
      description: Request to associate merchants with the partner.
      required:
      - merchant_ids
      properties:
        merchant_ids:
          type: array
          description: List of merchant IDs to associate with the partner.
          items:
            type: string
          minItems: 1
    MerchantDeactivationRequest:
      type: object
      description: Request to deactivate a merchant and remove partner association.
      required:
      - merchant_id
      properties:
        merchant_id:
          type: string
          description: The Grubhub merchant identifier to deactivate.
          example: ghm-1234567890
        reason:
          type: string
          description: Reason for deactivating the merchant.
          example: Out of an item.
    Address:
      type: object
      description: A physical address.
      properties:
        street_address:
          type: string
          description: The street address line.
          example: 111 W Washington St
        city:
          type: string
          description: The city name.
          example: Chicago
        state:
          type: string
          description: The state abbreviation.
          maxLength: 2
          example: IL
        zip:
          type: string
          description: The ZIP code.
          pattern: ^\d{5}(-\d{4})?$
          example: '60602'
    ReferralResponse:
      type: object
      description: Response after successfully creating a merchant referral.
      properties:
        referral_id:
          type: string
          description: The unique identifier for this referral.
          example: id-1234567890
        merchant_id:
          type: string
          description: The assigned Grubhub merchant identifier.
          example: ghm-1234567890
        status:
          type: string
          description: The current status of the referral.
          enum:
          - PENDING
          - APPROVED
          - REJECTED
          example: PENDING
    Contact:
      type: object
      description: Contact information for a merchant.
      properties:
        name:
          type: string
          description: The contact person's name.
          example: Sample Name
        email:
          type: string
          format: email
          description: The contact email address.
          example: partner@example.com
        phone:
          type: string
          description: The contact phone number.
          example: '+13125550142'
    MerchantReferral:
      type: object
      description: Details of a new merchant being referred for onboarding.
      required:
      - business_name
      - address
      - contact
      properties:
        business_name:
          type: string
          description: The name of the merchant's business.
          example: string
        address:
          $ref: '#/components/schemas/Address'
        contact:
          $ref: '#/components/schemas/Contact'
        external_id:
          type: string
          description: The partner's external identifier for this merchant.
          example: id-1234567890
        cuisine_types:
          type: array
          description: Types of cuisine offered by the merchant.
          items:
            type: string
    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
    MerchantActivationRequest:
      type: object
      description: Request to activate a merchant for partner integration.
      required:
      - merchant_id
      properties:
        merchant_id:
          type: string
          description: The Grubhub merchant identifier to activate.
          example: ghm-1234567890
  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