MarketMan Deliveries API

Vendor-side delivery note endpoints (GetDeliveryNotesByDate, ValidateDoc, SetDocs) used to submit and retrieve delivery documents tied to fulfilled orders.

OpenAPI Specification

marketman-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: MarketMan API V3
  description: >-
    MarketMan provides a JSON REST API for integration with third-party
    applications such as accounting, ERP, e-commerce, and self-service portals.
    The V3 API exposes separate Buyer and Vendor surfaces for inventory, items,
    vendors, purchase orders, invoices/docs, deliveries, recipes/menu costing,
    POS sales, and webhooks. All operations are HTTP POST that accept and return
    JSON. Authentication is token-based: call /v3/buyers/auth/GetToken (or the
    vendor equivalent) with an APIKey and APIPassword to obtain a Token, then
    send that token on every subsequent request in the AUTH_TOKEN header.
    Endpoints, request fields, and response shapes here reflect the publicly
    published MarketMan API V3 Postman documentation; field-level detail not
    documented publicly is left unconstrained.
  termsOfService: https://www.marketman.com/
  contact:
    name: MarketMan
    url: https://www.marketman.com/
  version: '3.0'
servers:
  - url: https://api.marketman.com/v3
    description: MarketMan API V3 production base URL
security:
  - AuthToken: []
tags:
  - name: Authentication
    description: Token acquisition and token status.
  - name: Accounts
    description: Authorised buyer accounts and connected POS systems.
  - name: Inventory
    description: Inventory items, counts, transfers, waste, and UOM types.
  - name: Items
    description: Vendors connected to a buyer account.
  - name: Recipes
    description: Menu items, availability, and menu profitability.
  - name: Orders
    description: Purchase orders and vendor catalog items.
  - name: Docs
    description: Invoices and accounting documents.
  - name: Deliveries
    description: Vendor delivery notes and document submission.
  - name: Webhooks
    description: Webhook subscriptions for order and account events.
paths:
  /buyers/auth/GetToken:
    post:
      operationId: getToken
      tags:
        - Authentication
      summary: Obtain an access token
      description: >-
        Exchanges an APIKey and APIPassword for an access Token used in the
        AUTH_TOKEN header on all subsequent requests.
      security: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetTokenRequest'
      responses:
        '200':
          description: Authentication result with a token on success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTokenResponse'
  /buyers/auth/GetTokenDetails:
    post:
      operationId: getTokenDetails
      tags:
        - Authentication
      summary: Get details about the current token
      responses:
        '200':
          description: Token details.
          content:
            application/json:
              schema:
                type: object
  /buyers/partneraccounts/GetAuthorisedAccounts:
    post:
      operationId: getAuthorisedAccounts
      tags:
        - Accounts
      summary: List authorised buyer accounts
      description: >-
        Returns the buyer accounts (each identified by a Guid) that the
        authenticated API credentials may operate on.
      responses:
        '200':
          description: Authorised accounts.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthorisedAccountsResponse'
  /buyers/inventory/GetItems:
    post:
      operationId: getItems
      tags:
        - Inventory
      summary: Get catalog/inventory items
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetItemsRequest'
      responses:
        '200':
          description: Inventory items.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InventoryItemsResponse'
  /buyers/inventory/GetInventoryItems:
    post:
      operationId: getInventoryItems
      tags:
        - Inventory
      summary: Get inventory items for a buyer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BuyerRequest'
      responses:
        '200':
          description: Inventory items.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InventoryItemsResponse'
  /buyers/inventory/SetInventoryCount:
    post:
      operationId: setInventoryCount
      tags:
        - Inventory
      summary: Submit an inventory count
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BuyerRequest'
      responses:
        '200':
          description: Result of the count submission.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResponse'
  /buyers/inventory/GetUOMTypes:
    post:
      operationId: getUOMTypes
      tags:
        - Inventory
      summary: Get units of measure
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BuyerRequest'
      responses:
        '200':
          description: Units of measure.
          content:
            application/json:
              schema:
                type: object
  /buyers/items/GetVendors:
    post:
      operationId: getVendors
      tags:
        - Items
      summary: Get vendors connected to a buyer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BuyerRequest'
      responses:
        '200':
          description: Vendors connected to the buyer account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VendorsResponse'
  /buyers/inventory/GetMenuItems:
    post:
      operationId: getMenuItems
      tags:
        - Recipes
      summary: Get menu items (recipes)
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetMenuItemsRequest'
      responses:
        '200':
          description: Menu items.
          content:
            application/json:
              schema:
                type: object
  /buyers/inventory/GetMenuItemsAvailability:
    post:
      operationId: getMenuItemsAvailability
      tags:
        - Recipes
      summary: Get menu item availability
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BuyerRequest'
      responses:
        '200':
          description: Menu item availability.
          content:
            application/json:
              schema:
                type: object
  /buyers/inventory/GetMenuProfitability:
    post:
      operationId: getMenuProfitability
      tags:
        - Recipes
      summary: Get menu profitability report
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BuyerRequest'
      responses:
        '200':
          description: Menu profitability data.
          content:
            application/json:
              schema:
                type: object
  /buyers/orders/GetOrdersByDeliveryDate:
    post:
      operationId: getOrdersByDeliveryDate
      tags:
        - Orders
      summary: Get purchase orders by delivery date
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DateRangeRequest'
      responses:
        '200':
          description: Orders within the delivery date range.
          content:
            application/json:
              schema:
                type: object
  /buyers/orders/GetOrdersBySentDate:
    post:
      operationId: getOrdersBySentDate
      tags:
        - Orders
      summary: Get purchase orders by sent date
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DateRangeRequest'
      responses:
        '200':
          description: Orders within the sent date range.
          content:
            application/json:
              schema:
                type: object
  /buyers/orders/GetCatalogItems:
    post:
      operationId: getCatalogItems
      tags:
        - Orders
      summary: Get a vendor catalog
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CatalogItemsRequest'
      responses:
        '200':
          description: Catalog items for a vendor.
          content:
            application/json:
              schema:
                type: object
  /buyers/orders/CreateOrder:
    post:
      operationId: createOrder
      tags:
        - Orders
      summary: Create a purchase order
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateOrderRequest'
      responses:
        '200':
          description: Result of the order creation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResponse'
  /buyers/docs/GetDocsByDocDate:
    post:
      operationId: getDocsByDocDate
      tags:
        - Docs
      summary: Get invoices/documents by document date
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DateRangeRequest'
      responses:
        '200':
          description: Documents within the date range.
          content:
            application/json:
              schema:
                type: object
  /buyers/docs/SetDocsExported:
    post:
      operationId: setDocsExported
      tags:
        - Docs
      summary: Mark documents as exported
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BuyerRequest'
      responses:
        '200':
          description: Result of the export-flag update.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResponse'
  /vendors/docs/GetDeliveryNotesByDate:
    post:
      operationId: getDeliveryNotesByDate
      tags:
        - Deliveries
      summary: Get delivery notes by date
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DateRangeRequest'
      responses:
        '200':
          description: Delivery notes within the date range.
          content:
            application/json:
              schema:
                type: object
  /vendors/docs/ValidateDoc:
    post:
      operationId: validateDoc
      tags:
        - Deliveries
      summary: Validate a delivery/invoice document
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Validation result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResponse'
  /vendors/docs/SetDocs:
    post:
      operationId: setDocs
      tags:
        - Deliveries
      summary: Submit delivery/invoice documents
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Result of the document submission.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResponse'
  /buyers/webhooks/CreateWebhook:
    post:
      operationId: createWebhook
      tags:
        - Webhooks
      summary: Create a webhook subscription
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWebhookRequest'
      responses:
        '200':
          description: Result of the webhook creation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResponse'
  /buyers/webhooks/GetWebhooks:
    post:
      operationId: getWebhooks
      tags:
        - Webhooks
      summary: List webhook subscriptions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BuyerRequest'
      responses:
        '200':
          description: Webhook subscriptions.
          content:
            application/json:
              schema:
                type: object
  /buyers/webhooks/GetWebhookEventByOrder:
    post:
      operationId: getWebhookEventByOrder
      tags:
        - Webhooks
      summary: Get webhook events by order
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BuyerRequest'
      responses:
        '200':
          description: Webhook events for the order.
          content:
            application/json:
              schema:
                type: object
  /buyers/webhooks/DeleteWebhook:
    post:
      operationId: deleteWebhook
      tags:
        - Webhooks
      summary: Delete a webhook subscription
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteWebhookRequest'
      responses:
        '200':
          description: Result of the webhook deletion.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResponse'
components:
  securitySchemes:
    AuthToken:
      type: apiKey
      in: header
      name: AUTH_TOKEN
      description: >-
        Access token returned by GetToken, sent on every authenticated request
        in the AUTH_TOKEN header.
  schemas:
    GetTokenRequest:
      type: object
      required:
        - APIKey
        - APIPassword
      properties:
        APIKey:
          type: string
          description: API key issued by MarketMan support.
        APIPassword:
          type: string
          description: API password issued by MarketMan support.
    GetTokenResponse:
      type: object
      properties:
        Token:
          type: string
          description: Access token to send in the AUTH_TOKEN header.
        IsSuccess:
          type: boolean
        ErrorMessage:
          type: string
          nullable: true
    BuyerRequest:
      type: object
      required:
        - BuyerGuid
      properties:
        BuyerGuid:
          type: string
          description: GUID identifying the buyer account to operate on.
    GetItemsRequest:
      allOf:
        - $ref: '#/components/schemas/BuyerRequest'
        - type: object
          properties:
            itemIDs:
              type: array
              items:
                type: string
              nullable: true
            Take:
              type: integer
            Skip:
              type: integer
    GetMenuItemsRequest:
      allOf:
        - $ref: '#/components/schemas/BuyerRequest'
        - type: object
          properties:
            GetDeleted:
              type: boolean
            itemIDs:
              type: array
              items:
                type: string
              nullable: true
    DateRangeRequest:
      allOf:
        - $ref: '#/components/schemas/BuyerRequest'
        - type: object
          required:
            - DateTimeFromUTC
            - DateTimeToUTC
          properties:
            DateTimeFromUTC:
              type: string
              description: Start of the range in UTC, format yyyy/MM/dd HH:mm:ss.
              example: '2025/02/18 00:00:00'
            DateTimeToUTC:
              type: string
              description: End of the range in UTC, format yyyy/MM/dd HH:mm:ss.
              example: '2025/02/20 23:59:59'
    CatalogItemsRequest:
      allOf:
        - $ref: '#/components/schemas/BuyerRequest'
        - type: object
          required:
            - VendorGuid
          properties:
            VendorGuid:
              type: string
              description: GUID identifying the vendor whose catalog to retrieve.
    CreateOrderRequest:
      allOf:
        - $ref: '#/components/schemas/BuyerRequest'
        - type: object
          required:
            - VendorGuid
            - catalogItems
          properties:
            VendorGuid:
              type: string
            OrderStatus:
              type: string
              example: Sent
            deliveryDateUTC:
              type: string
              example: '2020/05/06 00:00:00'
            sentDateUTC:
              type: string
              example: '2020/05/06 00:00:00'
            BuyerUserGuid:
              type: string
            comment:
              type: string
            catalogItems:
              type: array
              items:
                $ref: '#/components/schemas/OrderCatalogItem'
    OrderCatalogItem:
      type: object
      properties:
        CatalogItemCode:
          type: string
        Quantity:
          type: number
    CreateWebhookRequest:
      allOf:
        - $ref: '#/components/schemas/BuyerRequest'
        - type: object
          required:
            - Type
            - URL
          properties:
            Type:
              type: string
              description: Event type to subscribe to, e.g. "Order create".
              example: Order create
            URL:
              type: string
              description: Destination URL that will receive webhook payloads.
    DeleteWebhookRequest:
      allOf:
        - $ref: '#/components/schemas/BuyerRequest'
        - type: object
          required:
            - Guid
          properties:
            Guid:
              type: string
              description: GUID of the webhook to delete.
    AuthorisedAccountsResponse:
      type: object
      properties:
        Buyers:
          type: array
          items:
            type: object
            properties:
              Guid:
                type: string
              Name:
                type: string
        IsSuccess:
          type: boolean
    InventoryItemsResponse:
      type: object
      properties:
        InventoryItems:
          type: array
          items:
            type: object
        IsSuccess:
          type: boolean
    VendorsResponse:
      type: object
      properties:
        Vendors:
          type: array
          items:
            type: object
        IsSuccess:
          type: boolean
    GenericResponse:
      type: object
      properties:
        IsSuccess:
          type: boolean
        ErrorMessage:
          type: string
          nullable: true