Aller au contenu principal

Implement integrated promotions

Prerequisites

DoorDash has enhanced its OpenAPI contract to provide more comprehensive promotion data within the order payload. This now includes merchant-funded, DoorDash-funded, and co-funded promotions, as well as support for stacked promotions.

When a consumer redeems a promotion configured in DoorDash Campaign Manager, the order payload will now include detailed discount funding breakdowns, enabling merchants to reconcile promotional expenses more accurately in their POS systems.

Overview

Merchants want their point-of-sale (POS) system to be the source of truth for accounting reconciliation. Previously, integrated promotions only surfaced merchant-funded discounts. With this upgrade, merchants can now see:

  • Funding source (Merchant, DoorDash, or Co-funded)
  • The exact merchant-funded discount amount
  • The exact DoorDash-funded discount amount
  • Support for stacked promotions (multiple promotions applied to a single order)

This ensures full visibility into promotional spend and enables merchants to correctly attribute costs when promotions are shared between DoorDash and the merchant.

Get Started

How to enable

  1. After configuring an eligible promotional campaign in DoorDash Campaign Manager, provide the external_campaign_id to your DoorDash Account Owner.

  2. The DoorDash Engineering team will enable Promotions functionality in the OpenAPI Order Service.

  3. Once enabled, DoorDash will send additional promotion-related fields within the order payload.

Field details

Fields present for all orders

FieldDescription
subtotal_for_taxTaxable amount subject to a sales tax logic factoring in discount, discount funding source and store state’s marketplace facilitator status.
subtotal_tax_amountTax amount calculated after discounts are applied to the subtotal (excludes fees like delivery or service charges).

Fields for promotions/discounts

FieldDescription
applied_discountsArray of all promotions redeemed on the order.
discount_amountPromotional value applied (in cents).
promo_idUnique identifier for the DoorDash promotional campaign.
promo_code (optional)Promo code entered by the consumer.
external_campaign_idCampaign reference id as defined by the merchant.

New fields for co-funded and stacked promotions

FieldDescription
discount_funding_sourceFunding source: merchant, doordash, or cofunded.
merchant_funded_discount_amountMerchant-funded portion of the discount (in cents).
doordash_funded_discount_amountDoorDash-funded portion of the discount (in cents).
total_merchant_funded_discount_amountTotal merchant-funded discount across the order (in cents).
promo_quantity (optional)Only applicable for item-level discounts. Promotion quantity on either item or option.

Note: The field subtotal_discount_funding_source is deprecated. Use discount_funding_source at the discount level instead.

Example Payloads

Order-level co-funded discount

"applied_discounts": [
{
"discount_amount": 200,
"promo_id": "0ea502da-66bd-41f7-b6cf-e8ad3f96bdaa",
"promo_code": "$5 off",
"external_campaign_id": "PLU-123456"
}
],
"applied_discounts_details": [
{
"discount_amount": 500,
"promo_id": "0ea502da-66bd-41f7-b6cf-e8ad3f96bdaa",
"promo_code": "$5 off",
"external_campaign_id": "PLU-123456",
"doordash_funded_discount_amount": 300,
"merchant_funded_discount_amount": 200
}
],
"subtotal_for_tax": 3771,
"total_merchant_funded_discount_amount": 200

Co-funded + stacked promotions

"applied_discounts": [
{
"discount_amount": 200,
"promo_id": "0ea502da-66bd-41f7-b6cf-e8ad3f96bdaa",
"promo_code": "$5 off",
"external_campaign_id": "PLU-123456"
},
{
"discount_amount": 400,
"promo_id": "2f1225a2-8570-47cd-8819-8f8e0a362630",
"promo_code": "20% off",
"external_campaign_id": "PLU-123789"
}
],
"applied_discounts_details": [
{
"discount_amount": 500,
"promo_id": "0ea502da-66bd-41f7-b6cf-e8ad3f96bdaa",
"promo_code": "$5 off",
"external_campaign_id": "PLU-123456",
"doordash_funded_discount_amount": 300,
"merchant_funded_discount_amount": 200
},
{
"discount_amount": 400,
"promo_id": "2f1225a2-8570-47cd-8819-8f8e0a362630",
"promo_code": "20% off",
"external_campaign_id": "PLU-123789",
"doordash_funded_discount_amount": 0,
"merchant_funded_discount_amount": 400
}
],
"subtotal_for_tax": 3771,
"total_merchant_funded_discount_amount": 600

Item-level discount

"categories": [
{
"name": "Sides",
"items": [
{
"name": "Mozzarella Sticks (4 ea.)",
"quantity": 1,
"price": 379,
"applied_item_discount": {
"discount_amount": 379,
"promo_id": "7f85583b-03a1-4a54-b6e8-ac4b7b241d2d",
"external_campaign_id": "Free 4pc Mozz-Delivery",
"promo_quantity": {
"free_item_promo_quantity": 1,
"free_option_promo_quantity": 1
}
},
"applied_item_discount_details": [
{
"doordash_funded_discount_amount": 0,
"merchant_funded_discount_amount": 379,
"promo_id": "7f85583b-03a1-4a54-b6e8-ac4b7b241d2d",
"external_campaign_id": "Free 4pc Mozz-Delivery",
"promo_quantity": {
"free_item_promo_quantity": 1,
"free_option_promo_quantity": 1
}
}
]
}
]
}
],
"subtotal_for_tax": 1577,
"total_merchant_funded_discount_amount": 379

FAQ

1. Will subtotal and tax reflect the promotion?

Yes. Use subtotal_for_tax to see the taxable amount after promotions are applied.

2. Which promotions are eligible?

All subtotal and item-based discounts, including co-funded promotions, are eligible.

3. Can promotions apply to item options or extras?

Yes. DoorDash supports promotions at the menu item, option, or combined level.

4. Will DoorDash send who funded the promotion?

Yes. The new discount_funding_source field and breakdown fields show whether the discount was merchant-funded, DoorDash-funded, or co-funded.

5. Can multiple promotions be applied?

Yes. Orders can have multiple promotions at both order and item level. However, a single item can only have one applicable promotion.

Sample order without discount

No promotion information included in the message.

{
"id": "1825578540",
"delivery_uuid": "d810eed5-ecb1-417c-80dd-96f0c9f9c809",
"cart_uuid": "b6f30543-aacf-4da2-b79c-cef7194ce12c",
"cart_updated_at": 1622505569692,
"store_order_cart_id": "4648815252",
"tax": 270,
"subtotal": 3085,
"estimated_pickup_time": "2021-06-01T00:22:08.836357+00:00",
"is_pickup": false,
"tip_amount": 400,
"order_special_instructions": "",
"delivery_address": {},
"consumer": { ... },
"store": { ... },
"categories": [ ... ],
"delivery_short_code": "500543",
"tax_transaction_id": "",
"delivery_fee": 299,
"subtotal_tax_amount": 270,
"taxes_on_fees": 0,
"is_demand_gen": false,
"extra_cart_order_fee": 0,
"is_marketplace_facilitator": false,
"commission_type": "dashpass",
"external_order_reference": "",

Example Promo Quantity Free item only. i.e. free pizza without topping

"promo_quantity": {
"free_item_promo_quantity": 1
}

Discount item only. Half price for 2nd piece of pizza.

"promo_quantity": {
"discount_item_promo_quantity": 1
}

Free item with option. i.e. free pizza with topping

"promo_quantity": {
"free_item_promo_quantity": 1,
"free_option_promo_quantity": 1
}

Modified: 9/26/2025