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: {}