---
title: "Create a Checkout"
method: POST
path: "/v1/checkouts"
tags: ["v1", "Session"]
---

# Create a Checkout

`POST /v1/checkouts`

Initiate a Sezzle session with shopper order details, redirect links, and capture settings

## Request body

- object
  - `amount_in_cents` string, required — The total order amount in cents, which must be at least 100 which is $1.00. Please note your merchant configuration might have a higher minimum.
  - `currency_code` string, required — The 3 character currency code as defined by ISO 4217
  - `order_reference_id` string, required — Your reference ID for this order (must contain only alphanumeric characters, dashes (-), and underscores (_))
  - `order_description` string, required — A user-facing description for this checkout
  - `checkout_cancel_url` string, required — The HTTP request information used to redirect the customer in the case of a cancellation
  - `checkout_complete_url` string, required — The HTTP request information used to redirect the customer upon completion of the session
  - `customer_details` object — Customer details for this session. To optimize checkout and boost conversion, it is recommended to include as much customer information as possible.
    - `first_name` string — The customer's first name
    - `last_name` string — The customer's last name
    - `email` string — The customer's email address
    - `phone` string — The customer's phone number
  - `billing_address` AddressV1
    - `name` string — The name on the address
    - `street` string — The street and number of the address
    - `street2` string — The apt or unit
    - `city` string — The city
    - `state` string — The 2 character state code
    - `postal_code` string — The postal delivery code
    - `country_code` string — The 2 character country code
    - `phone_number` string — The phone number at the delivery location
  - `shipping_address` AddressV1
    - `name` string — The name on the address
    - `street` string — The street and number of the address
    - `street2` string — The apt or unit
    - `city` string — The city
    - `state` string — The 2 character state code
    - `postal_code` string — The postal delivery code
    - `country_code` string — The 2 character country code
    - `phone_number` string — The phone number at the delivery location
  - `requires_shipping_info` boolean — Flag to indicate if you would like us to collect shipping information for this checkout from the customer. If omitted, defaults to false.
  - `items` LineItemBasic[] — The items being purchased
    - `name` string — The name of the item
    - `sku` string — The sku identifier
    - `quantity` integer — The quantity purchased
    - `price` Price
      - `amount_in_cents` integer, required — The amount in cents
      - `currency` string, required — The 3 character currency code as defined by ISO 4217
    - `category_path` string — The category path where the product is located. Use `>` only as the category delimiter, not as part of a product or category name. Example: Camping Gear & Supplies > Tents & Shelters.
  - `discounts` Discount[] — The discounts applied to this order. Must be included in total
    - `name` string — The description of the discount
    - `amount` Price
      - `amount_in_cents` integer, required — The amount in cents
      - `currency` string, required — The 3 character currency code as defined by ISO 4217
  - `tax_amount` Price
    - `amount_in_cents` integer, required — The amount in cents
    - `currency` string, required — The 3 character currency code as defined by ISO 4217
  - `shipping_amount` Price
    - `amount_in_cents` integer, required — The amount in cents
    - `currency` string, required — The 3 character currency code as defined by ISO 4217
  - `metadata` object — Object for any custom data you want to submit with the checkout. You are not limited to the key-value pairs shown in the example, and you may use any key-value pairs you like
    - `any` string — Custom metadata field
  - `merchant_completes` boolean — If your checkout flow requires the user to confirm their checkout on your site after being approved by Sezzle, use `true` to only authorize the payment. If you prefer the checkout be captured immediately, use `false`. Defaults to false.
  - `send_checkout_url` Notification
    - `to_sms_phone` string — The SMS phone number of the notification
    - `to_email` string — The email address of the notification
    - `language` 'en' | 'fr-CA' — The 2-character ISO 639 langauge code of the notification. Acceptable values are en and fr-CA. Will default to English if not provided.
  - `locale` 'en-US' | 'en-CA' | 'fr-CA' — Localizes the checkout. Defaults to `en-US`.

## Response `201`

Successful operation

- object
  - `checkout_uuid` string — The unique identifier for this response
  - `checkout_url` string — The URL to which the shopper should be directed to complete their order with Sezzle

## Other responses

- `400` — Invalid request
- `401` — Unauthorized
- `404` — The specified resource was not found
- `422` — Unable to process the request entity

---

[API](https://skmtc.dev/sezzle/apis/sezzle-api-v2.md) · [All operations](https://skmtc.dev/sezzle/apis/sezzle-api-v2/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/sezzle/sezzle-api-v2/revisions/878c32abbb37/schema)
