> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dintero.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Dintero Checkout Express

> Speed up returning-customer checkout with Dintero Checkout Express by storing payment details and using one-click sessions configured via the express object.

### Introduction

Checkout Express is a streamlined checkout solution designed to simplify and speed up the payment process for returning customers. By leveraging stored payment information and a simplified user interface, Checkout Express reduces friction and enhances the overall user experience, making it ideal for businesses looking to improve conversion rates and customer satisfaction.

### What is Checkout Express?

Checkout Express is a checkout option that allows returning customers to complete their purchases with just a few clicks. By storing customer payment details securely, Checkout Express enables a faster, more convenient checkout process without the need for customers to re-enter their payment information every time they make a purchase.

![woo-download-plugin](https://mintcdn.com/dintero-c3a7bfec/TiCvqt4VXcXnNQNe/docs/assets/backoffice/checkout-client/checkout_express.png?fit=max\&auto=format\&n=TiCvqt4VXcXnNQNe\&q=85\&s=9a6efb4699a68d604a088a3f07fa3836)

### How to create an express session

Add an `express` section to the request body when [creating a new session](https://docs.dintero.com/docs/checkout/create-session.md).

```json theme={null}
{
  "url": {
    "return_url": "https://example.com/thankyou",
    "callback_url": "https://example.com/callback"
  },
  "order": {
    "amount": 33890,
    "currency": "NOK",
    "merchant_reference": "merchants_order_number",
    "items": [
      {
        "id": "chair-1",
        "line_id": "1",
        "description": "Stablestol",
        "quantity": 1,
        "amount": 29990,
        "vat_amount": 6000,
        "vat": 25
      }
    ],
    "shipping_option": {
      "id": "local-pick-up-point",
      "line_id": "local-pick-up-point",
      "amount": 3900,
      "operator": "",
      "title": "Pick up at a pick-up point",
      "delivery_method": "pick_up"
    }
  },
  "express": {
    "shipping_options": [{
      "id": "local-pick-up-point",
      "line_id": "local-pick-up-point",
      "amount": 3900,
      "operator": "",
      "title": "Pick up at a pick-up point",
      "delivery_method": "pick_up"
    }],
    "shipping_address_callback_url": "https://example.com/shipping_address_changed",
    "shipping_mode": "shipping_required",
    "customer_types": ["b2b", "b2c"],
  },
  "profile_id": "default"
}
```

### Checkout Express features

Dintero **Checkout Express** offers the following features.

**Customer details**

* Save customer details for faster repeat purchases.
* Limit customer types to `b2b`, `b2c`, or both.
* Fetch company data for `b2b` customers from public registries (Norway and Denmark only).
* Prefill `order.shipping_address` and `order.billing_address` if you already have the customer's details on file.

**Shipping**

* Define a fixed set of [shipping options](https://docs.dintero.com/docs/checkout/shipping-options.md).
* Return [dynamic shipping options](https://docs.dintero.com/docs/checkout/shipping-address-callback.md) based on the customer's address, using a callback.
* Set a [default shipping option](https://docs.dintero.com/docs/checkout/shipping-options.md#specifying-a-default-shipping-option).
* Split orders into [multiple shipments](https://docs.dintero.com/docs/checkout/shipping-options-multiple-shipments.md).
* Create [sessions without shipping options, or hide the shipping option](https://docs.dintero.com/docs/checkout/shipping-options.md#sessions-without-shipping-options-or-hiding-the-shipping-option).

**Payment and checkout**

* Offer one-click payments with [Apple Pay](https://docs.dintero.com/docs/checkout/apple-pay/apple-pay-hosted-checkout.md#one-click-apple-pay-in-checkout-express) and [Google Pay](https://docs.dintero.com/docs/checkout/google-pay/google-pay-hosted-checkout.md#one-click-google-pay-in-checkout-express).
* Accept [discount codes](https://docs.dintero.com/docs/checkout/checkout-express-discount-code.md).
* Add [custom checkboxes](#adding-custom-checkboxes), for example for newsletter signup or marketing consent.

### Adding custom checkboxes

You can add up to two custom checkboxes to an Express Checkout session. Use them to collect input such as newsletter signup or marketing consent.

Add a top-level `checkboxes` array when you [create the session](https://docs.dintero.com/api-reference/session/checkout_session_profile_post.md). To apply the same checkboxes to every session that uses a profile, set `configuration.checkboxes` on the [session profile](https://docs.dintero.com/docs/checkout/payment-profiles.md) instead.

![Checkout express - custom checkboxes](https://mintcdn.com/dintero-c3a7bfec/u32FcZKh3IK_yuYw/docs/assets/checkout/checkout-express.png?fit=max\&auto=format\&n=u32FcZKh3IK_yuYw\&q=85\&s=f2f381254122dd622f3091737a8d048c)

```json theme={null}
{
  "url": {
    "return_url": "https://example.com/thankyou",
    "callback_url": "https://example.com/callback"
  },
  "order": {
    "amount": 29990,
    "currency": "NOK",
    "merchant_reference": "merchants_order_number"
  },
  "express": {
    "shipping_options": []
  },
  "checkboxes": [
    {
      "id": "newsletter",
      "label": "Sign me up for the newsletter",
      "checked": false,
      "required": false,
      "link": {
        "url": "https://example.com/newsletter-terms",
        "text": "Newsletter terms"
      }
    }
  ],
  "profile_id": "default"
}
```

| Field | Required | Description |
| - | - | - |
| `id` | Yes | Your ID for the checkbox. Use it to read the customer's choice later. |
| `label` | Yes | Text shown next to the checkbox. Must be 2 to 99 characters. |
| `checked` | No | Set to `true` to check the checkbox by default. |
| `required` | No | Set to `true` to require the customer to check the checkbox before paying. |
| `link` | No | Link shown with the checkbox, with `url` and `text`. |

When the customer checks or unchecks a checkbox, the checkout updates the session. After payment, the transaction includes a `checkboxes` array with the `checked` value for each checkbox. Read it from the [transaction](https://docs.dintero.com/api-reference/transactions/transactions_id_get.md) to act on the customer's choice, for example to add them to your newsletter list.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.