---
title: "Creates a new Drop-in checkout session"
method: POST
path: "/drop-in/checkout-sessions"
tags: ["Drop-in Checkout Sessions"]
---

# Creates a new Drop-in checkout session

`POST /drop-in/checkout-sessions`

Creates a new Drop-in checkout session

## Request body

- DropInCheckoutRequest
  - `upstreamId` string — The upstream checkout identifier if it is different from the Digital River checkout identifier.
  - `currency` string — A three-letter ISO currency code.
  - `customerId` string — The identifier of a registered customer.
  - `language` 'ar' | 'cs' | 'da' | 'de' | 'el' | 'en' | 'en-us' | 'en-gb' | 'es' | 'es-419' | 'fi' | 'fr' | 'fr-ca' | 'hu' | 'it' | 'ja' | 'ko' | 'nl' | 'no' | 'pl' | 'pt' | 'pt-br' | 'ru' | 'sk' | 'sv' | 'th' | 'tr' | 'zh' | 'zh-hk' | 'zh-tw' — The assigned language.
  - `email` string, email — The customer's email address.
  - `taxInclusive` boolean
  - `items` SkuItemRequest[]
    - `skuId` string — The identifier of the stock keeping unit (SKU).
    - `productDetails` SessionProductDetails
      - `id` string — The identifier of the product in the upstream system.
      - `skuGroupId` string — The identifier of the SKU group.
      - `name` string — The name of the product.
      - `description` string — The description of the product.
      - `categories` string — The full path to the category where item is included. Categories should be separated by “ > “.
      - `url` string — The product url.
      - `countryOfOrigin` string — The country of origin of the product.
      - `image` string — The image of the product.
      - `weight` number, double — The weight of the product measured in the unit specified by weightUnit.
      - `weightUnit` 'oz' | 'lb' | 'g' | 'kg' — The unit of measurement applied to the weight.
      - `partNumber` string — The manufacturer's part number.
      - `partnerAccountId` string — The unique, Digital River identifier (account Id) of the partner associated with the sku.
    - `logisticsOptions` ItemLogisticsOptions — In the [Global Logistics](https://docs.digitalriver.com/digital-river-api/using-our-services/global-logistics) solution, <code>logisticsOptions</code> allows you to define a list of services that you want the carrier to provide. If you select any of these options, the appropriate fees are added to the shipping quotes that customers select from during the checkout process and the necessary information is added to shipping labels during the fulfillment process.<br><br>There are two ways to provide these <code>logisticsOptions</code>. You can either (1) store them in the product's [SKU Group](https://docs.digitalriver.com/digital-river-api/product-management/setting-up-sku-groups) or (2) pass them in checkout and shipping quotes requests at run-time. If you take the second approach, and <code>logisticsOptions</code> exist in a request, then you’re required to define a list of <code>deliveryOptions</code> and/or <code>dangerousGoods</code>.<br><br>In either case, we pass your selected options to the [Global Logistics Provider](https://docs.digitalriver.com/digital-river-api/using-our-services/global-logistics#global-logistics-providers) so that the carrier is made aware that these services need to be provided.
      - `deliveryOptions` string[] — <br>A set of value-added services offered by the [Global Logistics Provider](https://docs.digitalriver.com/digital-river-api/using-our-services/global-logistics#global-logistics-providers). They provide additional assurances that packages are delivered successfully and that shipping rates are appropriately calculated.<br><br> <code>signature_required</code> - Requires that an individual signs for the package at the time of delivery.<br><br><code>adult_signature_required</code> - Requires that an individual who is at least 21 years of age signs for the package at the time of delivery. It’s useful for high-value, dangerous, and age-sensitive items, or as a prevention against theft. After an adult signs for the delivery, the purchaser receives a notification that contains an image of that signature, along with other delivery details.<br><br><code>direct_delivery_only</code> - Ensures that the package is only delivered to the address provided by the customer at the time of purchase. In other words, the package can't be redirected to another address. No signature is required with this option, so if that's something you'd like to collect, you'll need to add <code>signature_required</code> or <code>adult_signature_required</code> to <code>deliveryOptions</code>.<br><br><code>additional_handling</code> - Indicates that a product requires special handling because it's heavy and/or shipped in a large package. If you select this option, then a surcharge is automatically added to each shipping quote that customers select from, regardless of the package’s weight or dimensions.<br><br> However, if <code>additional_handling</code> doesn’t exist, but the weight and dimensional values in the request exceed thresholds established by the carrier, that same surcharge is still applied.<br><br> Using <code>additional_handling</code> can help minimize your financial risk. This is because if a package’s dimensions and weight are omitted or incorrectly defined in a request and the actual scale weight of the package at the time of shipment exceeds the carrier defined thresholds, thereby incurring a surcharge, then the customer will have underpaid for shipping at checkout, leaving you to make up the difference.<br><br>
      - `dangerousGoods` string[] — Indicates that the product poses unreasonable health, safety, or property risks when shipped and therefore requires special packaging, handling, and modes of transportation. For example, some products, such as lithium batteries and (in)flammable perfumes, are susceptible to static electricity as well as temperature and pressure variations. These forces can cause them to leak, emit toxic fumes, ignite, or even explode.<br><br> If a product is considered hazardous, and you opt not to store this information in its [SKU Group](https://docs.digitalriver.com/digital-river-api/product-management/setting-up-sku-groups), then <code>dangerousGoods</code> must list the category it falls into.
    - `subscriptionInfo` CheckoutSessionSubscriptionInfo — The subscription information of the item.
      - `freeTrial` boolean — If <code>true</code>, indicates that this is a free trial.
      - `autoRenewal` boolean — If <code>true</code>, indicates that renewals for this subscription are automatic rather than manual.
      - `terms` string — For auto renewal subscriptions, the terms displayed to the customer at acquisition.
      - `planId` string — The unique identifier of the plan
      - `plan` object
        - `interval` 'year' | 'month' | 'week' | 'day' — The supported billing intervals
        - `intervalCount` integer — How often the customer is billed per the unit of time specified by <code>interval</code> (e.g. every 3 months).
      - `subscriptionId` string — The subscription identifier.
      - `billingAgreementId` string — The Digital River billing agreement identifier.
      - `startTime` string, date-time — The start date and time of the subscription.
      - `endTime` string, date-time — The <code>startTime</code> plus the subscription duration.
    - `price` number, double — The price of an item.
    - `aggregatePrice` number, double — The aggregate price of an item.
    - `strikeThroughPrice` number, double — The striked through (i.e., crossed out) price of an item.
    - `quantity` integer, nullable — The number of items.
    - `discount` SkuDiscount
      - `amountOff` number, double — The discount expressed as an amount.
      - `percentOff` number, double — The discount expressed as a percentage.
      - `quantity` number — The quantity of the item to which the discount applies.
    - `shipFrom` ShipFrom — The address from which a physical product is shipped.
      - `address` Address — Represents basic address information.
        - `line1` string, nullable — The first line of the address.
        - `line2` string — The second line of the address.
        - `city` string, nullable — The city of the address.
        - `postalCode` string, nullable — The postal code of the address.
        - `state` string, nullable — The state, county, province, or region.
        - `country` string, required — A [two-letter Alpha-2 country code](https://www.iban.com/country-codes) as described in the [ISO 3166](https://www.iso.org/iso-3166-country-codes.html) international standard.
      - `additionalAddressInfo` AdditionalAddressInfo — Captures any information that's not included in the basic address.
        - `neighborhood` string, nullable — The neighborhood of the address.
        - `division` string, nullable — A division within an organization.
        - `phoneticName` string, nullable — The phonetic spelling of a name.
    - `metadata` Metadata — Key-value pairs used to store additional data. Value can be string, boolean or integer types.
  - `shipTo` IntegrationAddress
    - `address` Address — Represents basic address information.
      - `line1` string, nullable — The first line of the address.
      - `line2` string — The second line of the address.
      - `city` string, nullable — The city of the address.
      - `postalCode` string, nullable — The postal code of the address.
      - `state` string, nullable — The state, county, province, or region.
      - `country` string, required — A [two-letter Alpha-2 country code](https://www.iban.com/country-codes) as described in the [ISO 3166](https://www.iso.org/iso-3166-country-codes.html) international standard.
    - `name` string, nullable — The customer's name.
    - `phone` string, nullable — The customer's phone number.
    - `email` string, email, nullable — The customer's email address.
    - `organization` string, nullable — The customer's organization.
    - `additionalAddressInfo` AdditionalAddressInfo — Captures any information that's not included in the basic address.
      - `neighborhood` string, nullable — The neighborhood of the address.
      - `division` string, nullable — A division within an organization.
      - `phoneticName` string, nullable — The phonetic spelling of a name.
  - `billTo` IntegrationAddress
    - `address` Address — Represents basic address information.
      - `line1` string, nullable — The first line of the address.
      - `line2` string — The second line of the address.
      - `city` string, nullable — The city of the address.
      - `postalCode` string, nullable — The postal code of the address.
      - `state` string, nullable — The state, county, province, or region.
      - `country` string, required — A [two-letter Alpha-2 country code](https://www.iban.com/country-codes) as described in the [ISO 3166](https://www.iso.org/iso-3166-country-codes.html) international standard.
    - `name` string, nullable — The customer's name.
    - `phone` string, nullable — The customer's phone number.
    - `email` string, email, nullable — The customer's email address.
    - `organization` string, nullable — The customer's organization.
    - `additionalAddressInfo` AdditionalAddressInfo — Captures any information that's not included in the basic address.
      - `neighborhood` string, nullable — The neighborhood of the address.
      - `division` string, nullable — A division within an organization.
      - `phoneticName` string, nullable — The phonetic spelling of a name.
  - `shipFrom` ShipFrom — The address from which a physical product is shipped.
    - `address` Address — Represents basic address information.
      - `line1` string, nullable — The first line of the address.
      - `line2` string — The second line of the address.
      - `city` string, nullable — The city of the address.
      - `postalCode` string, nullable — The postal code of the address.
      - `state` string, nullable — The state, county, province, or region.
      - `country` string, required — A [two-letter Alpha-2 country code](https://www.iban.com/country-codes) as described in the [ISO 3166](https://www.iso.org/iso-3166-country-codes.html) international standard.
    - `additionalAddressInfo` AdditionalAddressInfo — Captures any information that's not included in the basic address.
      - `neighborhood` string, nullable — The neighborhood of the address.
      - `division` string, nullable — A division within an organization.
      - `phoneticName` string, nullable — The phonetic spelling of a name.
  - `discount` Discount — The applied discount.
    - `amountOff` number, double — The discount expressed as an amount.
    - `percentOff` number, double — The discount expressed as a percentage.
  - `browserIp` string — The IP address of the browser used by the customer when checking out.
  - `applicationId` string — An arbitrary identifier that can be used to track the application type.
  - `locale` string — A designator that combines the two-letter ISO 639-1 language code with the ISO 3166-1 alpha-2 country code.
  - `customerType` 'business' | 'individual' — The type of customer.
  - `chargeType` 'customer_initiated' | 'merchant_initiated' | 'moto' — Represents the charge type.
  - `taxIdentifiers` CheckoutTaxIdentifierRequest[]
    - `id` string — The unique identifier of a tax identifier.
  - `disclosures` DisclosureDetails[]
    - `type` 'termsOfSale' | 'privacyPolicy' | 'cookiePolicy' | 'legalNotice' | 'autoRenewalPlanTerms' | 'saveCardMandate' | 'idealRecurringAgreement' | 'businessEntity' | 'resellerDisclosure' | 'confirmDisclosure' | 'californiaPrivacyRights', required — The type of disclosure.
    - `entityName` string — The name related to the entity.
    - `entityId` string — The id associated to the entity.
    - `localizedText` string — The translated text of the disclosure.
    - `url` string — The url related to the disclosure.
  - `style` object — Style for drop-in
  - `options` DropInOptionsRequest
    - `addresses` Shipping[]
      - `address` Address — Represents basic address information.
        - `line1` string, nullable — The first line of the address.
        - `line2` string — The second line of the address.
        - `city` string, nullable — The city of the address.
        - `postalCode` string, nullable — The postal code of the address.
        - `state` string, nullable — The state, county, province, or region.
        - `country` string, required — A [two-letter Alpha-2 country code](https://www.iban.com/country-codes) as described in the [ISO 3166](https://www.iso.org/iso-3166-country-codes.html) international standard.
      - `name` string, nullable — The recipient’s name.
      - `phone` string, nullable — The recipient’s phone number.
      - `email` string, email, nullable — The recipient’s email address.
      - `organization` string, nullable — The recipient’s organization.
      - `additionalAddressInfo` AdditionalAddressInfo — Captures any information that's not included in the basic address.
        - `neighborhood` string, nullable — The neighborhood of the address.
        - `division` string, nullable — A division within an organization.
        - `phoneticName` string, nullable — The phonetic spelling of a name.
    - `shippingMethods` IntegrationShippingMethod[]
      - `amount` number, double, required — The shipping method's cost.
      - `description` string, required — The shipping method's description.
      - `serviceLevel` string, required
      - `deliveryInformation` DeliveryInformation — Represents a shipping option's delivery informationi in the [Global Logistics](https://docs.digitalriver.com/digital-river-api/using-our-services/global-logistics) solution.<br><br>Which nested objects exist within <code>deliveryInformation</code> depends on the [Global logistics provider](https://docs.digitalriver.com/digital-river-api/using-our-services/global-logistics#global-logistics-providers) that is facilitating the transaction. For example, not all [GLPs](https://docs.digitalriver.com/digital-river-api/using-our-services/global-logistics#global-logistics-providers) provide an <code>estimatedArrival</code>. <br><br>The <code>estimatedArrival</code> is conditional on <code>pickupDate</code> and <code>supportCutoffTime</code>. If the final mile carrier collects the shipment by <code>supportCutoffTime</code> on <code>pickupDate</code>, then it should be at its destination by <code>estimatedArrival.date</code>.
        - `businessDaysInTransit` string — The estimated number of business days that the shipment will take to arrive at its final destination. Its value might be a single day or a range of days.
        - `estimatedArrival` EstimatedArrival — The estimated <code>date</code> and <code>dayOfWeek</code> that the shipment will arrive.
          - `date` string, date-time — The estimated date and time the shipment will arrive at its final destination.
          - `dayOfWeek` string — The estimated day of the week that the shipment will arrive at its final destination.
        - `pickupDate` string, date-time — The estimated time and date that the carrier will take possession of the packages in the shipment.
        - `weekendService` WeekendService
          - `saturdayDelivery` boolean — If <code>true</code>, then delivery will be scheduled for Saturday and, in the [Global Logistics](https://docs.digitalriver.com/digital-river-api/using-our-services/global-logistics) solution, an additional fee is charged for the service. If <code>false</code>, then delivery on that day is not available or it is available but additional fees are not collected. In this case, check <code>dayOfWeek</code> to determine if it's a Saturday delivery.
          - `sundayDelivery` boolean — If <code>true</code>, then delivery will be scheduled for Sunday and, in the [Global Logistics](https://docs.digitalriver.com/digital-river-api/using-our-services/global-logistics) solution, an additional fee is charged for the service. If <code>false</code>, then delivery on that day is not available or it is available but additional fees are not collected. In this case, check <code>dayOfWeek</code> to determine if it's a Sunday delivery.
        - `supportCutoffTime` string — In the [Global Logistics](https://docs.digitalriver.com/digital-river-api/using-our-services/global-logistics) solution, this represents the time of day by which the carrier must take possession of the shipment on <code>pickUpDate</code> for it to get to its final destination by <code>estimatedArrival.date</code>.
    - `storeCredits` IntegrationStoreCreditRequest[]
      - `amount` number, double, required — The store credit amount.
      - `name` string — The store credit name.
      - `upstreamId` string, required — The upstream store credit identifier.
      - `iconUrl` string — The store credit image url.
      - `lastFour` string — The last four digits of the store credit.
  - `redirects` Redirects
    - `successUrl` string
    - `cancelUrl` string
  - `metadata` Metadata — Key-value pairs used to store additional data. Value can be string, boolean or integer types.

## Response `201`

201 Created

- CreateDropInCheckoutTokenResponse
  - `id` string — The unique checkout session identifier.
  - `link` string — The domain of the hosted link.
  - `liveMode` boolean — Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.

## Other responses

- `400` — 400 Bad Request
- `401` — 401 Unauthorized
- `403` — 403 Forbidden
- `405` — 405 Method Not Allowed
- `406` — 406 Not Acceptable
- `408` — 408 Request Timeout
- `409` — 409 Conflict
- `429` — 429 Too Many Requests
- `500` — 500 Internal Server Error
- `502` — 502 Bad Gateway Error
- `503` — 503 Service Unavailable Error
- `504` — 504 Gateway Timeout Error

---

[API](https://skmtc.net/digitalriver/apis/digital-river-api-reference.md) · [All operations](https://skmtc.net/digitalriver/apis/digital-river-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/digitalriver/digital-river-api-reference/revisions/f21981db32be/schema)
