Deliverect Fulfillment API

Fulfillment operations for the Deliverect Dispatch API.

OpenAPI Specification

deliverect-fulfillment-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Deliverect Channel Accounts Fulfillment API
  description: Integrate ordering channels and marketplaces with Deliverect to create and cancel orders, sync menus, snooze products, update store and courier status, and exchange payment events. Authenticates with OAuth 2.0 machine-to-machine access tokens scoped via genericChannel.
  version: '1.0'
  x-generated-from: documentation
  x-source-url: https://developers.deliverect.com/reference
  x-last-validated: '2026-06-02'
  contact:
    name: Kin Lane
    email: kin@apievangelist.com
  license:
    name: All Rights Reserved
servers:
- url: https://api.deliverect.com
  description: Production
- url: https://api.staging.deliverect.com
  description: Staging
security:
- oauth2: []
tags:
- name: Fulfillment
  description: Fulfillment operations for the Deliverect Dispatch API.
paths:
  /fulfillment/validate:
    post:
      summary: Deliverect Dispatch Availability
      description: Validate dispatch availability for a delivery location.
      operationId: post_fulfillment_validate
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                channelLinkId:
                  type: string
                  example: 5e8abc11dec0001a009b
                deliveryLocations:
                  type: object
                  properties:
                    packageSize:
                      type: string
                      example: string
                    name:
                      type: string
                      example: Deliverect's Pizza Place
                    phone:
                      type: string
                      example: '+15555550123'
                    street:
                      type: string
                      example: string
                    streetNumber:
                      type: string
                      example: string
                    city:
                      type: string
                      example: string
                    country:
                      type: string
                      example: BE
                    postalCode:
                      type: string
                      example: string
                    deliveryTime:
                      type: string
                      format: date-time
                      example: '2026-03-15T14:30:00Z'
                    coordinates:
                      type: object
                      properties:
                        coordinates:
                          type: array
                          items:
                            type: number
                            example: 1.0
                          minItems: 2
                          maxItems: 2
                  required:
                  - street
                  - city
                  - country
                  - postalCode
                  - deliveryTime
                pickupTime:
                  type: string
                  example: '2026-03-15T14:30:00Z'
              required:
              - channelLinkId
              - deliveryLocations
              - pickupTime
            examples:
              Dispatch Availability - Multiple Stores:
                summary: Dispatch Availability - Multiple Stores
                value:
                  channelLinkIds:
                  - 62********************7c
                  - 62********************7d
                  deliveryLocations:
                    deliveryTime: YYYY-MM-DDTHH:mm:ss.SSSSSSZ
                    packageSize: unknown
                    name: customer name
                    street: customer street and number
                    city: customer city
                    country: customer country
                    postalCode: postal code
                    phone: '+111111111'
                    coordinates:
                      longitude: 3.73361
                      latitude: 51.03111
              Dispatch Availability:
                summary: Dispatch Availability
                value:
                  channelLinkId: 62********************7c
                  pickupTime: YYYY-MM-DDTHH:mm:ss.SSSSSSZ
                  deliveryLocations:
                    deliveryTime: YYYY-MM-DDTHH:mm:ss.SSSSSSZ
                    packageSize: unknown
                    name: customer name
                    street: customer street and number
                    city: customer city
                    country: customer country
                    postalCode: postal code
                    source: customer address
                    phone: '+111111111'
                    coordinates:
                      longitude: 3.73361
                      latitude: 51.03111
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              examples:
                Offers Available - Multiple Stores:
                  summary: Offers Available - Multiple Stores
                  value:
                    channelLinkIds:
                    - 61bcc34**57cc48c23eb65
                    validationId: 62********************3e
                    available: true
                    expiresAt: YYYY-MM-DDTHH:mm:ss.SSSSSSZ
                    deliveryTimeETA: '2022-08-08 11:00:00'
                    pickupTimeEta: '2022-08-08 10:00:00'
                    price: 0
                Offers Not Available:
                  summary: Offers Not Available
                  value: "{\n  \"available\": False, \n  \"errors\": \"No valid offers available\"\n}"
                Offer Available:
                  summary: Offer Available
                  value:
                    validationId: 62********************3e
                    available: true
                    expiresAt: YYYY-MM-DDTHH:mm:ss.SSSSSSZ
                    deliveryTimeETA: YYYY-MM-DDTHH:mm:ss.SSSSSSZ
                    price: 0
        '400':
          content:
            application/json:
              schema:
                type: object
                properties: {}
              examples:
                Bad Request:
                  summary: Bad Request
                  value:
                  - loc:
                    - channelLinkId
                    msg: field required
                    type: value_error.missing
                  - loc:
                    - deliveryLocations
                    - deliveryTime
                    msg: field required
                    type: value_error.missing
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                type: object
                properties: {}
              examples:
                Unauthorized:
                  summary: Unauthorized
                  value:
                    code: token_expired
                    description: token is expired
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                type: object
                properties: {}
              examples:
                Forbidden:
                  summary: Forbidden
                  value:
                    error: ChannelLinkId sent is not linked to the account
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                type: object
                properties: {}
              examples:
                Not Found:
                  summary: Not Found
                  value:
                    error: ChannelLinkId sent is not found
          description: Not Found
      tags:
      - Fulfillment
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /fulfillment/cancel:
    post:
      tags:
      - Fulfillment
      summary: Deliverect Cancel Delivery
      responses:
        '200':
          description: Ok
          content:
            application/json:
              examples:
                OK:
                  summary: OK
                  value: '{}'
        '400':
          content:
            application/json:
              schema:
                type: object
                properties: {}
              examples:
                Bad Request:
                  summary: Bad Request
                  value: '{}'
          description: Bad Request
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties: {}
            examples:
              Cancel Example:
                summary: Cancel Example
                value:
                  deliveryJobId: 648******************874
                  reasonTag: CUSTOMER_UNRESPONSIVE
                  deliveryFeeCharged: 4500
                  extraDescription: Tried many times
      operationId: post_post_fulfillment_cancel
      description: Deliverect Cancel Delivery
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /fulfillment/generic/events:
    post:
      tags:
      - Fulfillment
      summary: Deliverect Update Delivery
      description: 'This webhook allows to persist updates from third party delivery systems to Deliverect. Currently updates to following delivery information are supported. See examples for technical details. - delivery status - pickup time & eta - delivery time & eta - courier information ##### Delivery job statuses: Following delivery job statuses exist in deliverect: | Status name | Integer value | |-|-| | `IN_DELIVERY` | 80 | | `EN_ROUTE_TO_PICKUP` | 83 | | `ARRIVED_AT_PICKUP` | 85 | | `EN_ROUTE_TO_DROPOFF` | 87 | | `ARRIVED_AT_DROPOFF` | 89 | | `DELIVERED` | 90 | ##### NOTE Please note, that here and later all dates and times, coming from/to Deliverect are UTC.'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              examples:
              - deliveryJobId: 602***66a
                externalJobId: DJ214233
                pickupTimeETA: '2021-05-13T13:59:00Z'
                transportType: bicycle
                courier:
                  name: Mac Miller
                  phone: '+3292331234'
                  longitude: '51.05433703603857'
                  latitude: '3.738214852809371'
                locations:
                - orderId: 602987dd539d9697c836198b
                  channelOrderDisplayId: '1234567890'
                  status: 40
                  deliveryTimeETA: '2021-05-13T14:13:00Z'
            examples:
              Update Example:
                summary: Update Example
                value:
                  deliveryJobId: 61********************b4
                  pickupTimeETA: YYYY-MM-DDTHH:mm:ss.SSSSSSZ
                  transportType: bicycle
                  trackingUrl: https://example.com
                  courier:
                    name: Mac Miller
                    phone: '+3292331234'
                    longitude: '51.05433703603857'
                    latitude: '3.738214852809371'
                  locations:
                  - orderId: 61********************b4
                    status: 83
                    deliveryTimeETA: YYYY-MM-DDTHH:mm:ss.SSSSSSZZ
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: object
              example: OK
            text/plain:
              schema:
                type: string
              example: OK
        default:
          description: default
          content:
            text/plain:
              schema:
                type: string
              example: null
      operationId: post_post_fulfillment_generic_events
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  securitySchemes:
    oauth2:
      type: oauth2
      description: OAuth 2.0 machine-to-machine client-credentials. Exchange client_id/client_secret at POST /oauth/token for a Bearer access_token.
      flows:
        clientCredentials:
          tokenUrl: https://api.deliverect.com/oauth/token
          scopes: {}