Saltar al contenido principal

Postman Collection

Import a ready-made collection of the calls a third-party provider uses to power a non-restaurant Marketplace storefront: catalog, inventory, store hours, inventory pull, promotions, store onboarding, and orders.

Marketplace API access is limited. Apply from the Developer Portal before these calls will succeed against your sandbox provider.

Download​

Download the Postman collection

To import from a URL in Postman, use:

https://developer.doordash.com/en-US/downloads/retail/doordash-retail-marketplace.postman_collection.json

The file is a Postman collection, not an OpenAPI document. In Postman, choose Import and select the file, or paste the URL.

What the requests cover​

FolderCalls
CatalogCreate and update business-scoped items
InventoryAdd and update store price and availability, and update business-wide pricing
Store hoursUpdate open hours, special hours, and fulfillment capacity
JobsTrigger an inventory pull for one store
PromotionsCreate and update an item promotion
Store reads and temporary deactivationStore summary, menu summary, the full menu, and pause or resume the store
OnboardingCreate the managed-merchant URL, submit a multi-location intent, and look up onboarding status
OrdersConfirm, fail, adjust, cancel, mark ready for pickup, and record a retail return
Inbound webhooksExample bodies DoorDash posts to you. These are not calls you send to DoorDash

Catalog pull, inventory pull, and store-hours pull are endpoints you host. The collection can ask DoorDash to pull inventory. It does not call your pull endpoints.

Set up the collection​

Open the collection Variables tab. You do not need a separate Postman environment.

Fill in:

  • developer_id, key_id, and signing_secret from the credential in the Developer Portal. The signing secret is base64-encoded. Collection auth already decodes it before signing.
  • provider_type, for example example_pos_sandbox. Sandbox and production are different provider types. If that variable is also set in a Postman environment, the environment value is the one the collection uses.

Before every request, a pre-request script rewrites user_agent from provider_type. Each underscore-separated word is capitalized and /1.0 is appended, so example_pos_sandbox becomes ExamplePosSandbox/1.0. Do not edit user_agent by hand. The next send replaces it. The same script sets the JWT iat and exp for five minutes.

Business, store, item, order, and onboarding ids are parameters on each request. Open Params on that request.

  • A value in the URL is a path variable, such as :location_id.
  • A value the API only accepts in the JSON body is on that same tab and left unchecked, so it is not sent as a query parameter. The pre-request script copies it into the body.

Read the responses​

Catalog, inventory, inventory-pull, promotion, and fulfillment-capacity writes return a 2xx with operation_status: QUEUED when DoorDash accepted the batch. The HTTP status is not always 202. A 2xx does not mean the menu changed. The collection saves operation_id on last_operation_id when the body includes one.

Store-hours update returns 200.

Business-wide pricing returns 403 until universal pricing is enabled for the business. Fulfillment capacity returns 403 until hybrid fulfillment signal reception is enabled for the provider.

Order adjustment in sandbox needs the header dd-tenant-id: doortest:default. That header is on the adjustment request and disabled. Enable it for sandbox. Do not send it in production.