Deliverect Programs API

Programs operations for the Deliverect Loyalty API.

OpenAPI Specification

deliverect-programs-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Deliverect Channel Accounts Programs 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: Programs
  description: Programs operations for the Deliverect Loyalty API.
paths:
  /loyalty/{channelLinkId}/programs/retrieve:
    post:
      summary: Deliverect Get Loyalty Programs
      description: Deliverect Get Loyalty Programs
      operationId: loyalty_channel_get_programs
      parameters:
      - name: channelLinkId
        in: path
        schema:
          type: string
        required: true
        description: The channelLinkId value.
        example: 5e8abc11dec0001a009b
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - order
              properties:
                order:
                  type: object
                  description: For the full order schema, please refer to [Glossary - Channel Orders](https://developers.deliverect.com/page/glossary-channel-orders)
                  properties:
                    orderType:
                      type: integer
                      description: The type of the order (Pickup, Delivery, Eat-in)
                      format: int32
                      example: 1
                    items:
                      type: object
                      properties:
                        plu:
                          type: string
                          example: PIE1
                        name:
                          type: string
                          example: Deliverect's Pizza Place
                        price:
                          type: integer
                          format: int32
                          example: 1250
                        quantity:
                          type: integer
                          format: int32
                          example: 1
                        subItems:
                          type: object
                          properties: {}
                    customer:
                      type: object
                      properties:
                        email:
                          type: string
                          example: customer@example.com
                        phoneNumber:
                          type: string
                          example: '+15555550123'
                        name:
                          type: string
                          example: Deliverect's Pizza Place
                    decimalDigits:
                      type: integer
                      description: number of decimal for the order currency
                      format: int32
                      example: 1
                    subTotal:
                      type: integer
                      format: int32
                      example: 1250
                    payment:
                      type: object
                      properties:
                        amount:
                          type: integer
                          format: int32
                          example: 1250
            examples:
              Request Example:
                value:
                  order:
                    orderType: 1
                    items:
                    - plu: BEEF-02
                      price: 1100
                      quantity: 1
                      name: Beef Opor
                      productType: 1
                      _id: 620d19e940411b30c49b1005
                      deliveryTax: 9000
                    customer:
                      email: customer@loyalty.com
                      phoneNumber: '+31201234567'
                    decimalDigits: 2
                    subTotal: 1100
                    payment:
                      amount: 1100
                      type: 3
              JSON - short payload:
                value:
                  order:
                    orderType: 1
                    customer:
                      email: customer@loyalty.com
                      phoneNumber: '+31201234567'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "[\n    {\n        \"programId\":\"1234\",\n        \"title\":\"$10 off order\",\n        \"description\":\"Discount amount off the order\",\n        \"cost\":100,\n        \"type\":\"discount_amount\",\n        \"discount\":1000,\n        \"applicable\": true,\n        \"expiresAt\": \"2024-12-31 23:59:59.000000\",\n        \"media\": null\n    \n    },\n    {\n        \"programId\":\"4578\",\n        \"title\":\"50% off order\",\n        \"description\":\"Discount percentage off the order.\",\n        \"cost\":100,\n        \"type\":\"discount_percentage\",\n        \"discount\":5000,\n        \"applicable\": true,\n        \"expiresAt\": \"2024-12-31 23:59:59.000000\",\n        \"media\": null\n\n    \n    },\n    {\n        \"programId\":\"765\",\n        \"title\":\"Free item\",\n        \"description\":\"Get an item for free.\",\n        \"cost\":200,\n        \"type\":\"free_item\",\n        \"itemPLU\":\"DRN-01\",\n        \"media\":{\n            \"url\":\"https://program.media/image\",\n            \"mediaType\":\"image\"\n        },\n        \"applicable\": true,\n        \"expiresAt\": \"2024-12-31 23:59:59.000000\"\n    },\n    {\n        \"programId\":\"12456\",\n        \"title\":\"Buy one get one for free\",\n        \"description\":\"Order an item and get another one for free.\",\n        \"cost\":500,\n        \"type\":\"buy_one_get_one_free\",\n        \"itemPLU\":\"DRN-02\",\n        \"media\":{\n            \"url\":\"https://program.media/image\",\n            \"mediaType\":\"image\"\n        },\n        \"applicable\": false,\n        \"expiresAt\": \"2024-12-31 23:59:59.000000\"\n    },\n    {\n        \"programId\": \"36996\",\n        \"title\": \"Coke $5 off\",\n        \"type\": \"item_discount_amount\",\n        \"applicable\": true,\n        \"description\": \"$10 off for a single item\",\n        \"cost\": 150.0,\n        \"media\": {\n            \"url\": \"https://res.cloudinary.com/punchh/image/upload/c_limit,f_auto,fl_lossy,g_center,q_auto/v1/punchhstatic-mothership2/redeemables/redeemable_images/000/036/996/original/4b189839dd5c99f7bccee13cdb675af19f9b9d37.jpeg\",\n            \"mediaType\": \"image\"\n        },\n        \"expiresAt\": null,\n        \"discount\": 500,\n        \"itemPLU\": \"ABC-123\",\n        \"minOrderValue\": 1000\n    },\n    {\n        \"programId\": \"36998\",\n        \"title\": \"Coke 50% off\",\n        \"type\": \"item_discount_percentage\",\n        \"applicable\": true,\n        \"description\": \"50% off Coke!\",\n        \"cost\": 150.0,\n        \"media\": {\n            \"url\": \"https://res.cloudinary.com/punchh/image/upload/c_limit,f_auto,fl_lossy,g_center,q_auto/v1/punchhstatic-mothership2/redeemables/redeemable_images/000/036/996/original/4b189839dd5c99f7bccee13cdb675af19f9b9d37.jpeg\",\n            \"mediaType\": \"image\"\n        },\n        \"expiresAt\": null,\n        \"discount\": 5000,\n        \"itemPLU\": \"ABC-123\",\n        \"minOrderValue\": null\n    }\n]"
              schema:
                type: array
                items:
                  type: object
                  properties:
                    programId:
                      type: string
                      example: '1234'
                    title:
                      type: string
                      example: $10 off order
                    description:
                      type: string
                      example: Discount amount off the order
                    cost:
                      type: integer
                      example: 100
                      default: 0
                    type:
                      type: string
                      example: discount_amount
                    discount:
                      type: integer
                      example: 1000
                      default: 0
                    applicable:
                      type: boolean
                      example: true
                      default: true
                    expiresAt:
                      type: string
                      example: '2024-12-31 23:59:59.000000'
                    media: {}
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n    \"error\": \"no active loyalty profile found\",\n    \"http_code\": 400,\n    \"description\": \"no active loyalty profile found\"\n}"
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: no active loyalty profile found
                  http_code:
                    type: integer
                    example: 400
                    default: 0
                  description:
                    type: string
                    example: no active loyalty profile found
      deprecated: false
      tags:
      - Programs
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /loyalty/{channelLinkId}/programs/validate:
    post:
      description: Deliverect Post_new_endpoint
      operationId: post_new_endpoint
      responses:
        '200':
          description: ''
          content:
            application/json:
              examples:
                OK:
                  summary: OK
                  value:
                    validationErrors: []
                    discounts:
                    - externalId: null
                      provider: loyalty
                      scope:
                        type: order
                      offer:
                        type: flat_off
                        value: 500
                    maxRedeemableAmount: 1000
      parameters:
      - in: path
        name: channelLinkId
        schema:
          type: string
        required: true
        description: The channelLinkId value.
        example: 5e8abc11dec0001a009b
      x-readme:
        code-samples:
        - code: "{\n  \"sessionId\": \"test\",\n  \"order\": {\n    \"accountId\": \"6798b2b2a030bcf7dd6c1ee0\",\n    \"channelLinkId\": \"684940251579e410c7792352\",\n    \"locationId\": \"684940131579e410c7792348\",\n    \"orderType\": 2,\n    \"paymentAmount\": 0,\n    \"customer\": {\n      \"email\": \"test@deliverect.com\",\n      \"phoneNumber\": \"+32474081356\",\n      \"loyaltyProviderCustomerId\": \"88017991\",\n      \"name\": \"John Doe\"\n    },\n    \"items\": [\n      {\n        \"plu\": \"3726\",\n        \"name\": \"Sisi No Bubbles mango\",\n        \"price\": 10000,\n        \"quantity\": 1,\n        \"subItems\": []\n      }\n    ],\n    \"subTotal\": 10000,\n    \"discounts\": [],\n    \"decimalDigits\": 2,\n    \"serviceCharge\": 0,\n    \"deliveryCost\": 0,\n    \"bagFee\": 0,\n    \"tip\": 0,\n    \"driverTip\": 0,\n    \"smallOrderFee\": 0\n  },\n  \"wallet\": {\n    \"type\": \"cash\",\n    \"amount\": 500\n  }\n}"
          language: json
          name: json
        samples-languages:
        - json
      summary: Deliverect Post_new_endpoint
      tags:
      - Programs
      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: {}