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