NAV Navbar
Sezzle primary reverse slate padded

Introduction

The Sezzle Pay API is intended for merchants interested in accepting Sezzle Pay as a payment option. The Sezzle Pay Integration Flow illustrates the user payment interaction.

Sezzle supports individually authorized transactions for a single purchase of goods or services.

Sezzle offers integrations with some of the most popular eCommerce platforms.
Please choose your platform to see the relevant documentation:
1. WooCommerce
2. Magento 1
3. Magento 2
4. Zoey
5. NopCommerce
6. BigCommerce
7. Bold Cashier

If you have any questions regarding our API, please reach out to our team by email at dev@sezzle.com.

Integration Flow

Overview of Integration Flow

payment flow

Explanation of payment flow

  1. Merchant calls /v1/checkouts to send cart data to Sezzle.
  2. Sezzle returns URL to redirect consumer to make payment at Sezzle checkout.
  3. Merchant redirects the consumer to Sezzle.
  4. When the consumer completes the Sezzle checkout flow, they are redirected back to merchant’s website.
  5. Alternatvely, on approval, the consumer is redirected from Sezzle checkout to merchant’s website and merchant captures the order by calling /v1/complete.

Authentication

Obtain Authentication Token

To authorize, use the following format:

Request Body

{
    "public_key": "myPublicKey",
    "private_key": "myPrivateKey"
}

Make sure to replace keys with your API keys from your Merchant Dashboard.

Response Body

{
    "token": "authToken",
    "expiration_date": "2017-01-01T01:30:25.388940303Z",
    "merchant_uuid": "merchant1234567890"
}

POST https://gateway.sezzle.com/v1/authentication

Sezzle Pay uses scoped API keys to allow access to the API. You can find/generate these keys on your merchant dashboard once you have been approved by Sezzle.

Once you have a valid token, it must be used as a Header for subsequent requests to our API, using the format below.

Authorization: Bearer authToken

Configuration

Setting your configuration

Request Body

{
    "webhook_url": "https://yourdomain.com/webhook"
}

There is no response body for this request on a success, we return an HTTP 200 Status OK.

POST https://gateway.sezzle.com/v1/configuration

At this time, Sezzle only allows configuration of the URL that we send our webhooks to.

Parameter Type Description
webhook_url* string A URL for us to send our webhooks to.

Checkouts

Create a Checkout

Request Body

{
    "amount_in_cents": 12999,
    "currency_code": "USD",
    "order_reference_id": "Ref123456789",
    "order_description": "Order #1800",
    "checkout_cancel_url": "https://sezzle.com/cart",
    "checkout_complete_url": "https://sezzle.com/complete",
    "customer_details":
    {
        "first_name": "John",
        "last_name": "Doe",
        "email": "john.doe@sezzle.com",
        "phone": "5555045294"
    },
    "billing_address": {
        "name": "John Doe",
        "street": "123 W Lake St",
        "street2": "Unit 104",
        "city": "Minneapolis",
        "state": "MN",
        "postal_code": "55408",
        "country_code": "US",
        "phone_number": "5555045294"
    },
    "shipping_address": {
        "name": "John Doe",
        "street": "123 W Lake St",
        "street2": "Unit 104",
        "city": "Minneapolis",
        "state": "MN",
        "postal_code": "55408",
        "country_code": "US",
        "phone_number": "5555045294"
    },
    "requires_shipping_info": false,
    "items": [
        {
          "name": "widget",
          "sku": "sku123456",
          "quantity": 1,
          "price": {
              "amount_in_cents": 1000,
              "currency": "USD"
          }
        }
    ],
    "discounts": [
        {
          "name": "20% off",
          "amount": {
              "amount_in_cents": 1000,
              "currency": "USD"
          }
        }
    ],
    "tax_amount": {
        "amount_in_cents": 1000,
        "currency": "USD"
    },
    "shipping_amount": {
        "amount_in_cents": 1000,
        "currency": "USD"
    },
    "metadata": {
      "location_id": "123",
      "store_name": "Downtown Minneapolis",
      "store_manager": "Jane Doe"
    }
}

Response Body

{
    "checkout_url": "https://checkout.sezzle.com/?id=<checkout_id>",
    "checkout_uuid": "<checkout_id>"
}

HTTP Request

POST https://gateway.sezzle.com/v1/checkouts

This checkout endpoint creates a checkout in our system, and returns the URL that you should redirect the user to. We suggest you provide as much optional information about the user as you have available, since this will speed up our checkout process and increase conversion.

Sezzle is able to handle the entire checkout process after a Checkout has been provided. However, if your flow requires that the user confirm their checkout on your site after being approved by Sezzle, you may include the merchant_completes parameter with the checkout request. In this flow, Sezzle will not complete the order unless you make a checkout completion request.

Checkout Object

Parameter Type Description
amount_in_cents* int The amount of the checkout. Must be a least 100
currency_code* string The currency code of the checkout
order_reference_id* string A reference to this checkout in your systems
order_description* string A user-facing description for this checkout
checkout_cancel_url* string The URL we should redirect the customer to in the case of a cancellation
checkout_complete_url* string The URL we should redirect to in the case of a successful checkout
customer_details object The customer in the checkout
billing_address object The billing address of the checkout
shipping_address object The shipping address of the checkout
requires_shipping_info boolean Optional flag to indicate if you would like us to collect shipping information for this checkout from the customer
items array The items being purchased
discounts array The discounts applied. Must be included in the total
tax_amount object The taxes applied to this checkout. Must be included in the total
shipping_amount object The shipping fees applied to this checkout. Must be included in the total
merchant_completes boolean Optional flag to determine whether this checkout must be completed by the merchant.
metadata object Optional object for any custom data you want to submit with the checkout

Customer Details Object

Parameter Type Description
first_name string The user’s first name
last_name string The user’s last name
email string The user’s email address
phone string The user’s phone number

Address Object

This is used for both billing and shipping

Parameter Type Description
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

Item Object

Parameter Type Description
name* string The name of the item
sku* string The sku identifier
quantity* int The quantity purchased
price* object The price object

Tax Amount Object

Parameter Type Description
tax_amount* object A price object

Shipping Amount Object

Parameter Type Description
shipping_amount* object A price object

Discount Object

Parameter Type Description
name* string The description of the discount
amount* object A price object

Price Object

Parameter Type Description
amount_in_cents* int The amount of the item in pennies
currency* string The 3 character currency code as defined by ISO 4217

Metadata Object

Use the metadata object for any additional information you would like to attach to the checkout. All values must be strings.

Parameter Type Description
some_field_name string Custom metadata field
some_other_field_name string Custom metadata field

Complete a Checkout (optional)

Success response

Echos the given Checkout.

Rejection response

{
    "status": 409,
    "id": "checkout_expired",
    "message": "checkout not completed within time limit"
}

POST https://gateway.sezzle.com/v1/checkouts/{order_reference_id}/complete

If you pass true to merchant_completes in our Create Checkout flow, then you must call our Complete Checkout endpoint.

For some checkouts, a merchant may need to have the user return to their site for additional steps before completing the purchase. If this is the case, the order completion endpoint is used to complete the Checkout with Sezzle. From the time the user is redirected back to the Merchant’s site, you must make the request to complete the checkout within 30 minutes, or the checkout will be cancelled by Sezzle. If the checkout has expired, we will return the rejection response on the right, with a Status 409.

There are two non-error responses expected. Either an HTTP 200, which echos all accepted fields given at Checkout creation, or a rejection message.

Orders

Order Details

Order Details Response Body

{
    "created_at": "2018-11-02T20:09:59Z",
    "captured_at": "2018-11-02T20:18:50Z",
    "capture_expiration": "2018-11-02T20:48:45Z",
    "description": "Description of order",
    "amount_in_cents": 20000,
    "usd_amount_in_cents": 20000,
    "customer_amount_in_cents": 20000,
    "currency_code": "USD",
    "customer_currency_code": "USD",
    "reference_id": "Ref123456789",
    "customer": {
        "first_name": "John",
        "last_name": "Doe",
        "email": "john.doe@sezzle.com",
        "phone": "5555045294"
    },
    "shipping_address": {
        "name": "John Doe",
        "phone_number": "5555045294",
        "street": "123 W Lake St",
        "street2": "Unit 104",
        "city": "Minneapolis",
        "state": "MN",
        "postal_code": "55408",
        "country_code": "US"
    },
    "billing_address": {
        "name": "John Doe",
        "phone_number": "5555045294",
        "street": "123 W Lake St",
        "street2": "Unit 104",
        "city": "Minneapolis",
        "state": "MN",
        "postal_code": "55408",
        "country_code": "US"
    },
    "refunds": [
      {
        "amount": {
          "amount_in_cents": 10000,
          "currency": "USD"
        },
        "created_at": "2018-11-02T20:09:59Z",
        "is_full_refund": false,
        "order_reference_id": "Ref123456789",
        "refund_id": "52b2O9Lv-8",
        "refund_reason": "broken"
      }
    ],
    "metadata": {
      "location_id": "123",
      "store_name": "Downtown Minneapolis",
      "store_manager": "Jane Doe"
    }
}

GET https://gateway.sezzle.com/v1/orders/{order_reference_id}

Once an order is created, you can retrieve the details of the order using this endpoint.

Optional Query Parameter(s)

Parameter Type Values Description
include-shipping-info string true or false If your checkout post data required us to collect shipping information from the customer, then you can request that information alongside the order details.

Order Refunds

Refund Request Body

{
    "refund_id": "41a2O9Lv-7",
    "amount": {
        "amount_in_cents": 500,
        "currency": "USD"
    },
    "refund_reason": "Item returned by user"
}

POST https://gateway.sezzle.com/v1/orders/{order_reference_id}/refund

Sezzle allows refunds for orders either through our Merchant Dashboard or through the API. If the refund is processed through the dashboard, a webhook will be sent to your system. In either case, Sezzle allows for either partial or complete refunds. Refund amounts are relative to the order total, not the amount that has been paid by the shopper.

Refund Request

Parameter Type Description
amount* object A price object that defines the amount to be refunded. Amount may not be 0, negative, or exceed the total order amount. Currency must either be the order’s currency or the customer’s paying currency. This field is optional if the is_full_refund parameter is true.
refund_id string UUID for the Refund. Must be unique to a Merchant.
refund_reason string An optional reason for the refund.
is_full_refund boolean An optional amount override. If used, the order will be fully refunded.

Reporting

Settlement Reports

These endpoints allow you to view a list of payout summaries or a detailed report of an individual payout.

Settlement Summaries Response Body

[
    {
        "uuid": "b7916fbe-f30a-4435-b411-124634287a8ca",
        "payout_currency": "USD",
        "payout_date": "2019-12-09T15:52:33Z",
        "net_settlement_amount": 9370,
        "forex_fees": 0,
        "status": "Complete"
    },
    {
        "uuid": "c51343hba-d54b-5641-e341-15235523b3at",
        "payout_currency": "USD",
        "payout_date": "2019-12-10T15:52:33Z",
        "net_settlement_amount": 23470,
        "forex_fees": 0,
        "status": "Complete"
    }
]

Settlement Summaries Request

GET https://gateway.sezzle.com/v1/settlements/summaries

Query Parameter Description
start-date* The start date for the report. Must be in yyyy-mm-dd format.
end-date The end date for the report. Must be in yyyy-mm-dd format. If omitted, will default to the current date.
offset The offset for the report.
currency-code The ISO-4217 currency code of the account. If omitted, will default to USD.

Settlement Details Response

total_order_amount,total_refund_amount,total_fee_amount,total_returned_fee_amount,total_chargeback_amount,total_chargeback_reversal_amount,total_interest_transfer_amount,total_correction_amount, total_referral_revenue_transfer_amount, forex_fees,net_settlement_amount,payment_uuid,settlement_currency,payout_date,payout_status
703.20,-5.00,-43.80,.30,0.00,0.00,-4.30,1.71,10.00,0.00,693.61,,USD,2019-11-02 00:05:00 +0000 UTC,Complete
type,order_capture_date,order_created_at,event_date,order_uuid,customer_order_id,external_reference_id,amount,posting_currency,type_code,chargeback_code
ORDER,2019-11-01T19:09:50Z,2019-11-01T19:09:50Z,2019-10-22T19:09:50Z,bm99f-31vu1-kg00e-rae1g,1,12345,500.00,USD,001,
ORDER,2019-11-01T19:09:50Z,2019-11-01T19:09:50Z,2019-10-22T19:09:50Z,va13d-474s9-3000e-nungg,13,12346,200.00,USD,001,
ORDER,2019-11-01T20:00:01Z,2019-11-01T00:00:01Z,2019-11-01T00:00:01Z,as41g-4v4s9-3000e-nunh0,1,12347,1.40,USD,001,
ORDER,2019-11-01T20:00:01Z,2019-11-01T20:00:01Z,2019-11-01T20:00:01Z,as62l-5ptqs-9g00e-pvk10,2,12348,1.80,USD,001,
FEE,2019-11-01T19:09:50Z,2019-11-01T19:09:50Z,2019-11-01T19:09:50Z,bm99f-31vu1-kg00e-rae1g,1,12345,-30.00,USD,003,
FEE,2019-11-01T19:09:50Z,2019-11-01T19:09:50Z,2019-11-01T19:09:50Z,va13d-474s9-3000e-nungg,13,12346,-12.00,USD,003,
FEE,2019-11-01T20:00:01Z,2019-11-01T00:00:01Z,2019-11-01T20:00:01Z,as41g-4v4s9-3000e-nunh0,1,12347,-1.20,USD,003,
FEE,2019-11-01T20:00:01Z,2019-11-01T20:00:01Z,2019-11-01T20:00:01Z,as62l-5ptqs-9g00e-pvk10,2,12348,-0.60,USD,003,
REFUND,2019-10-22T19:09:50Z,2019-10-22T19:09:50Z,2019-11-01T19:09:50Z,bm5rm-vg2js-1tsky-c2dsky,8,12344,5.00,USD,002,
RETURNED_FEE,2019-10-22T19:09:50Z,2019-10-22T19:09:50Z,2019-11-01T19:09:50Z,bm5rm-vg2js-1tsky-c2dsky,7,12344,.30,USD,004,
CORRECTION,,,2019-11-01T17:00:01Z,,,,-1.29,,007,
CORRECTION,,,2019-11-01T17:00:01Z,,,,3.00,,007,
INTEREST_TRANSFER,,,2019-11-01T18:00:01Z,,,,-4.30,,008,
REFERRAL_REVENUE_TRANSFER,,,2019-11-01T15:00:01Z,,,,10.00,, 009,

Settlement Details Request

GET https://gateway.sezzle.com/v1/settlements/details/{payout_uuid}

The settlement details response contains two sections. The first two rows are a summary of the payout. The remaining rows contain the individual line items that contributed to the payout.

Summary column definitions:

Column Header Description
Total order amount The sum of all orders on this payout.
Total refund amount The sum of all refunds on this payout.
Total fee amount The sum of all fees on this payout.
Total returned fee amount The sum of all returned fees on this payout.
Total chargeback amount The sum of all chargebacks on this payout.
Total chargeback reversal amount The sum of all chargeback reversals on this payout.
Total interest transfer amount The sum of all interest transfers on this payout. If you are not participating in the interest program, this field will be omitted.
Total correction amount The sum of all corrections on this payout.
Total referral revenue transfer amount The sum of all referral revenue transfers on this payout.
Forex fees The cost of foreign exchange fees associated with this payout.
Net settlement amount Net amount of settlement.
Payment uuid The UUID for this payout.
Settlement currency The currency in which this payout was sent.
Payout date The date this payout was sent.
Payout status The current status of this payout.

Line item column definitions:

Column Header Description
Type Describes the type of event (Order, Fee, Refund, etc.).
Order capture date The date at which the order was captured. This field is empty if the order has not yet been captured.
Order created at The date at which the order was created.
Event date The date at which the event took place.
Order uuid The Sezzle order number.
Customer order id The customer’s order number.
External reference id The external reference ID submitted with the order.
Amount The amount of the event.
Posting currency The customer’s currency code.
Type code A numeric code that corresponds with the Type field.
Chargeback code A numeric code that corresponds with the type of chargeback submitted.

Interest Account Reports

Sezzle gives merchants the option to enroll in an interest account program. If you are enrolled in the interest account program, you can use these endpoints to get the current balance and activity on the interest account. Fractions of cents are tracked to properly calculate daily interest accrual even if the interest balance is low.

Interest Account Balance Response Body

{
  "interest_balance": 5183.4624
}

Interest Account Balance Request

GET https://gateway.sezzle.com/v1/interest/balance

Query Parameter Description
currency-code The ISO-4217 currency code of the interest account. If omitted, will default to USD.

Interest Account Activity Response Body

type,event_date,interest_account_change_amount,interest_account_balance_after_change
INTEREST_PAYOUT,2019-12-21T19:10:00Z,122.8718,5101.4676 
INTEREST_WITHDRAWAL,2019-12-21T19:20:00Z,-26.1000,5075.3676 
INTEREST_ACCRUAL,2019-12-21T19:15:00Z,1.0702,5182.3922
INTEREST_ACCRUAL,2019-12-22T19:15:00Z,1.0702,5183.4624

Interest Account Activity Request

GET https://gateway.sezzle.com/v1/interest/activity

Query Parameter Description
start-date* The start date for the report. Must be in yyyy-mm-dd format.
end-date The end date for the report. Must be in yyyy-mm-dd format. If omitted, will default to the current date.
offset The offset for the report.
currency-code The ISO-4217 currency code of the interest account. If omitted, will default to USD.

Webhooks

Order Webhooks

Webhook

{
    "time": "2017-10-19T00:33:10.548372055Z",
    "uuid": "02c5a2a0-8394-4b45-80b3-52d40c494322",
    "type": "order_update",
    "event": "order_complete",
    "object_uuid": "Ref123456789",
    "refund_id": "szl-a0293Pn-3948-80b3-ao34JAia39zQ",
    "refund_amount": {
        "amount_in_cents": 500,
        "currency": "USD"
    }
}

Because the majority of a consumer’s checkout process happens on Sezzle’s pages, our API uses webhooks to communicate information about checkout updates, completions, or refunds to your system.

We expect any response in the 200 range on submitting webhooks.

Order Webhook Object

Parameter Type Description
time string The time (UTC) at which the Webhook was generated.
uuid string A unique identifier for the webhook.
type string The high-level category. For example, order_update
event string The specific action. For example, order_complete
object_uuid string The ID for the Checkout/Order.
refund_id string optional Unique ID for a refund. Included if the webhook event is order_refund.
refund_amount object optional Price object. Included if the webhook event is order_refund.

Order Update Events/Types

Type Event Description
order_update order_complete The checkout was completed successfully
order_update order_refund The order was refunded from the Sezzle Merchant Dashboard

Errors

Sezzle API Errors

Response Error Body

{
    "status": 400,
    "id": "error_id",
    "message": "Descriptive message"
}

Unless otherwise specified in our documentation, Sezzle returns a standard API error object.

We attempt to keep these errors as consistent as possible, and will announce any changes in advance if they are required.

Error Object

Parameter Type Description
Status int Matches the HTTP Status code of the response
ID string A programmatic identifier for the error. These rarely (if at all) change.
Message string A human-friendly string. These may change, and are intended to assist in debugging rather than program logic.

SezzleJS

Purpose

sezzle.js serves to load our sales widgets to web pages. The widgets would not show unless you provide a config before loading the script. The repository for this project can be found at https://github.com/sezzle/sezzle-js.

Configuring the Widgets

An example of how to configure the widget:

    document.sezzleConfig = 
    {
        targetXPath: '<path-to-price-element>',
        renderToPath: '<relative-path-to-element-to-which-to-render-this-widget>',
        forcedShow: false,
        alignment: 'left',
        merchantID: '<your-sezzle-merchant-id-here>',
        theme: 'light',
        widthType: 'thin',
        widgetType: 'product-page',
        minPrice: 0,
        maxPrice: 100000,
        imageUrl: 'example.com/example.png',
        hideClasses: ['class-to-hide'],
        priceElementClass: 'class-to-element-which-contains-price',
        sezzleWidgetContainerClass: 'class-to-element-where-sezzle-element-will-be-rendered',
        hidePrice: true,
        altVersionTemplate: 'sezzle is the best %%logo%% %%link%%',
        fontWeight: 200,
        alignmentSwitchMinWidth: 800,
        alignmentSwitchType: 'right',
        maxWidth: 200,
        marginTop: -20,
        marginBottom: -20,
        fontSize: 13
    }

Not all options in the config above are required.

The config must be specified in a property of the document object called document.sezzleConfig. SezzleJS provides various options in order to customize the widget. The explanation for all the options can be found below:

targetXPath (required)

Purpose: Path to the element in your webpage from where the product price would be picked up from.
Type: string, array of strings
Default: empty
Additional Details: Specify one path if only one price element is targeted. Specify multiple paths in an array if multiple price elements are targeted. The path may contain multiple subpaths. All subpaths need to be separated by the ’/’ character. IDs need to be preceeded by a ’#’ character. Classes needed to be preeceeded by a ’.’ character and tag names have to have the indexes specified. The format of a tagname is as follows: tagName-Index (e.g. SPAN-2). The indexes are zero based.

Example: #ProductSection/.product-price/SPAN-1 would target the 2nd SPAN element contained within elements which contain the product-price class which are contained within the element with an ID of ProductSection.

renderToPath (optional)

Purpose: Path to the element in your webpage where the sezzle widget will be rendered to. This is relative to targetXPath.
Type: string, array of strings
Default: ../
Additional Details: Path to the element right above the widget (widget’s previous element sibling). You may want to place widgets in multiple places. So you can pass multiple paths in an array. The price path in the ith index of targetXPath array will rendered at the path given in the ith index of this array(renderToPath). If you do not pass any thing to ith index of this array but there is a path in ith index of targetXPath, then the widget will be rendered right below the parent of the corresponding target element. Like, targetXPath, prepend IDs with ’#’, classes with ’.’ and append tag names with the index (tagName-Index)
../ => go up one parent element
./ => place widget as next element sibling of the target element

forcedShow (optional)

Purpose: Shows the widget in every country if true. Else it shows up only in the United States.
Type: boolean
Options: false, true
Default: false

alignment (optional)

Purpose: Aligns the widget relative to the parent element.
Type: string
Options: left, center, right
Default: center

merchantID (required)

Purpose: ID given by Sezzle to the merchant. This can be found in the upper right corner of the Sezzle merchant dashboard. Only approved merchants get an ID.
Type: string
Default: empty

theme (optional)

Purpose: Dark and light theme for the widget to work with different background colors of websites.
Type: string
Options: dark, light
Default: light

widthType (optional)

Purpose: Number of lines the widget should be rendered on. thin renders to 3 lines and thick renders to 2 lines.
Type: string
Options: thin, thick
Default: thick

widgetType (optional)

Purpose:The page type on which this widget is to be rendered.
Type: string
Options: cart, product-page, product-preview
Default: product-page

minPrice (optional)

Purpose: Minimum price in cents in which the widget would be rendered.
Type: number
Default: 0

maxPrice (optional)

Purpose: Maximum price in cents in which the widget would be rendered.
Type: number
Default: 100000

imageUrl (optional)

Purpose: The sezzle logo can be replaced in the widget with an external image of choice.
Type: string
Default: empty

hideClasses (optional)

Purpose: The classes of elements that should be hidden when sezzle’s logo is showing. This is useful when you want to hide a similar product as Sezzle and is not available in a country where Sezzle is.
Type: array of strings
Default: empty

priceElementClass (optional)

Purpose: Class to the price element. This option is used instead of targetXPath to make the integration simple. You can pass this as a class of your choice else it defaults to sezzle-price-element. If you have just one element in your page with this class added to it (which should be the price element), the system would pick up price using this.
Type: string
Default: sezzle-price-element

sezzleWidgetContainerClass (optional)

Purpose: Class to the element in which you want to render the sezzle widget. This option is used instead of renderToPath to render the sezzle widget in a simpler way. This is supposed to be used with priceElementClass. You can pass this as a class of your choice else it defaults to sezzle-widget-container. You should have one element in your page which has this as a class and then the system would render the widget below that element.
Type: string
Default: sezzle-widget-container

hidePrice (optional)

Purpose: Some websites have problems rendering the sezzle widget on variant change. This can be used to not have the price rendered in the sezzle widget and only the text and logo would be shown.
Type: boolean
Default: false

altVersionTemplate (optional)

Purpose: This is used to change the text of the widget and also change the arrangement of text, logo and the know more url within the widget. As an example, or 4 automatic, interest free payments with %%price%% %%logo%% %%link%% will render the default widget.
Type: string
Default: empty
Additional Details: Currently available templates: %%price%%, %%logo%%, %%link%%, %%info%%, %%question-mark%%

fontSize (optional)

Purpose: This sets the font size of the widget text in pixels (Enter numbers only. Do not enter px!)
Type: number
Default: inherited from the website’s stylesheet.

fontWeight (optional)

Purpose: This is used to set the boldness of the text. 100 is the lightest, 900 is the boldest.
Type: number
Default: 300

fontFamily (optional)

Purpose: This is used to set the font family of the widget’s text.
Type: string
Default: inherited from the website’s stylesheet.

color (optional)

Purpose: This is used to set the widget’s text color. Accepts all kinds of values (hexadecimal, rgb(), hsl(), etc…)
Type: string
Default: inherited from the website’s stylesheet.

alignmentSwitchMinWidth (optional)

Purpose: Minimum screen width in pixels below which the alignment switches to alignmentSwitchType.
Type: number
Default: 760

alignmentSwitchType (optional)

Purpose: A viewport width of anything but not including alignmentSwitchMinWidth would render the widget to the specified position.
Type: string
Default: empty

maxWidth (optional)

Purpose: Maximum width of the widget element in pixels.
Type: number
Default: empty
Additional Details: 200 (on most sites, 240 for some) if you would like to render the widget nicely on 3 lines, 340 for 2 lines.

marginTop (optional)

Purpose: Amount of space above the widget in pixels.
Type: number
Default: 0

marginBottom (optional)

Purpose: Amount of space below the widget in pixels.
Type: number
Default: 0

splitPriceElementsOn (optional)

Purpose: Character/string to split the price elements on (for elements with price ranges)
Type: string
Default: empty
Additional Details: Certain websites, especially wooCommerce websites have price ranges as their price element (e.g. $650 - $1000). Setting this field to the character/string which separates the prices(e.g. in the case above, it is ’-’) enables the widgets to parse the price elements separately. For instance, setting this field to ’-’ would cause the widget to render the widget price above to $162.50 - $250.00.

Uploading the Widgets

After building up the config, it is time to upload the widgets to your web pages! sezzle.js needs to be called in the HTML of your webpage in order for the widgets to be rendered. Place the config and the sezzle.js script at the bottom of your HTML page and you should be all set!

Placing the code snippet below in your HTML loads sezzle.js into your webpage.

<script src="https://widget.sezzle.com/v1/javascript/price-widget/initial"></script>

The script must be called only after the config is specified (document.sezzleConfig is defined). Here is a complete example:

<script>
    document.sezzleConfig = 
    {
        targetXPath: '<path-to-price-element>',
        renderToPath: '<relative-path-to-element-to-which-to-render-this-widget>',
        forcedShow: false,
        alignment: 'left',
        merchantID: '<your-sezzle-merchant-id-here>',
        theme: 'light',
        widthType: 'thin',
        widgetType: 'product-page',
        minPrice: 0,
        maxPrice: 100000,
        imageUrl: 'example.com/example.png',
        hideClasses: ['class-to-hide'],
        priceElementClass: 'class-to-element-which-contains-price',
        sezzleWidgetContainerClass: 'class-to-element-where-sezzle-element-will-be-rendered',
        hidePrice: true,
        altVersionTemplate: 'sezzle is the best %%logo%% %%link%%',
        fontWeight: 200,
        alignmentSwitchMinWidth: 800,
        alignmentSwitchType: 'right',
        maxWidth: 200,
        marginTop: -20,
        marginBottom: -20,
        fontSize: 13
    }
</script>

<script src="https://widget.sezzle.com/v1/javascript/price-widget/initial"></script>

Testing

While you are working on the integration, you should test it before going live. Please use this section for information on testing.

Sandbox

API Endpoint https://sandbox.gateway.sezzle.com
Sandbox Dashboard https://sandbox.dashboard.sezzle.com/merchant

Test Data

You can use the following test data to test your integration

Bank

Bank Test Bank
Username demo
Password go

Card

Card Number 4242424242424242
CVV/CVC any (3 numbers)
Expiration Date any
Name any
Address any

Phone and other information

  1. Please use any valid phone number.
  2. The expected OTP is 123123.
  3. Personal information does not need to be real.

Open API

The OpenAPI Specification (OAS) defines a standard, language-agnostic interface to RESTful APIs which allows both humans and computers to discover and understand the capabilities of the service without access to source code, documentation, or through network traffic inspection.

Specification

Download the Sezzle Pay OpenAPI Specification for Sandbox or Production.

Client Generator

The Sezzle Pay OpenAPI Specification can be imported into the Swagger Editor to easily generate a Sezzle Pay client in a variety of programming languages. Generate a Sezzle Pay client for Sandbox or Production.

 

Platform Integrations

WooCommerce

This guide describes how to integrate Sezzle into your WooCommerce website so that you can provide Sezzle as a payment option for your customers. After integrating Sezzle, your WooCommerce site will:

  1. Offer Sezzle as a payment option on the checkout page.
  2. Refund Sezzle payments from your WooCommerce order management system.
  3. Display Sezzle promotional messaging.

Integrations steps:

  1. Install and configure the Sezzle WooCommerce extension
  2. Test your integration
  3. (Optional) Sandbox Testing

Before you begin

  1. You should have a Sezzle merchant account. Please visit our signup page if you don’t have an account.
  2. The transaction flow when buying with Sezzle

Install and configure the Sezzle Payment WooCommerce extension

  1. The Sezzle plugin extends WooCommerce, allowing your customers to buy now and pay later in easy, interest free, installments
  2. Login to your website’s Wordpress admin wordpress login
  3. Click on Plugins -> Add New in the left sidebar plugin install page
  4. Search for Sezzle search sezzle
  5. Click on Install Now
  6. Click on Activate activate sezzle
  7. Click on WooCommerce -> Settings and select Payments tab in settings payment settings
  8. Click on Sezzle. select sezzle
  9. Now you are in the Sezzle configuration page. sezzle page overview
  10. You will need your Sezzle Merchant ID and your Sezzle API Keys for the configuration. You will find them in your Sezzle Merchant dashboard.
  11. Login to the Sezzle Merchant Dashboard.
  12. You will find your Sezzle Merchant ID on your dashboard’s business page and your Sezzle API Keys on your dashboard’s API keys page.
  13. In your Wordpress admin, paste your Merchant ID, Private Key and Public Key that copied from your Sezzle Merchant dashboard, one by one.
  14. Fill up the Widget information to show Sezzle Widget in Product Page. widget product
  15. Click on Save changes.
  16. Verify if the data got saved.
  17. Installation is complete.
  18. Warning Wrong API Keys will result in Sezzle payment not working on your checkout.

Test your WooCommerce integration

  1. Go to your website.
  2. Add an item to your cart and go to checkout page.
  3. Select Sezzle as the payment method. select sezzle payment
  4. Click on Place Order.
  5. If redirection to Sezzle checkout is successful and you see the following page, your integration is complete. Congratulations! sezzle checkout
  6. Warning Don’t complete the payment because you will be charged if you complete. Go back to your website. To test complete payment flow, follow Sandbox Testing

WooCommerce Sandbox Testing

  1. In Sezzle settings in your WooCommerce admin, set Sezzle API URL to https://sandbox.gateway.sezzle.com/v1. Make sure you are doing this on your dev/staging website.
  2. Select Sezzle as the payment method. select sezzle payment
  3. Click on Place order and you will be redirected to Sezzle to make payment.
  4. Go ahead and complete the payment using test data.
  5. After payment is completed on Sezzle, you will be redirected back to your website with a successful payment page.
  6. Sandbox testing is complete. You can login to your Sezzle Merchant Sandbox dashboard to see the test order you just placed.

Magento 1

This guide describes how to integrate Sezzle into your Magento 1 website so that you can provide Sezzle as a payment option for your customers. After integrating Sezzle, your Magento 1 site will:

  1. Offer Sezzle as a payment option on the checkout page.
  2. Refund Sezzle payments from your Magento 1 order management system.
  3. Display Sezzle promotional messaging.
  4. Authorization and capture of payments.

Integrations steps:

  1. Install and configure the Sezzle Magento 1 extension
  2. Test your integration
  3. (Optional) Sandbox Testing

Before you begin

  1. You should have a Sezzle merchant account. Visit our signup page if you don’t have an account.
  2. The transaction flow when buying with Sezzle

Install and configure the Sezzle Magento 1 extension

For all purposes assume [Magento] as your root Magento directory.

  1. Download the .zip or tar.gz file from Sezzle’s github repository.
  2. Unzip the file and follow the following instructions.
  3. Copy all files in the extracted folder’s: /app/code/community/ to: [MAGENTO]/app/code/community.
  4. Copy all files in the extracted folder’s /app/design/frontend/base/default/layout/ to: [MAGENTO]/app/design/frontend/base/default/layout.
  5. Copy all files in the extracted folder’s /app/design/frontend/base/default/template/ to: [MAGENTO]/app/design/frontend/base/default/template.
  6. Copy all files in the extracted folder’s: /app/etc/ to: [MAGENTO]/app/etc.
  7. Copy all files in the extracted folder’s: /js to: [MAGENTO]/js.
  8. Login to Magento Admin and navigate to System/Cache Management.
  9. Flush the cache storage by selecting Flush Cache Storage.

Admin Configuration

  1. To configure your Sezzle Pay in Magento Admin complete the following steps. Prerequisite for this section is to obtain a Private Key and Public Key from Sezzle Merchant Dashboard.
  2. Go to System > Configuration > Sales > Payment Methods > Sezzle Pay
  3. Configure the plugin as follows:

    1. Set Enabled to Yes.
    2. Set Merchant Id.
    3. Set Api Mode to either Sandbox/Test or Live.
    4. Set Payment from Applicable Countries to Specific Countries.
    5. Set Payment from Specific Countries to United States or Canada.
    6. Set Private Key as received from API Keys section of Sezzle Merchant Dashboard.
    7. Set Public Key as received from your API Keys section of Sezzle Merchant Dashboard.
    8. Set Payment Action as Authorize only for doing payment authorization only and Authorize and Capture for doing authorization as well as payment capture. admin sezzle
    9. Save the configuration.
  4. Go to System > Configuration > General > Sezzle Widget

  5. Fill up the details for Product Page to show Sezzle Widget in Product Page. product widget sezzle

  6. Fill up the details for Cart Page to show Sezzle Widget in Product Page. cart widget sezzle

  7. Save the configuration.

  8. Navigate to System/Cache Management.

  9. Flush the cache storage by selecting Flush Cache Storage.

Your store is now ready to accept payments through Sezzle.

Frontend Experience

  1. If you have setup the Sezzle Widget configuration for Product Page properly, you will be able to see the Sezzle Widget in the Product View page just like as below. front product widget sezzle
  2. If you have setup the Sezzle Widget configuration for Cart Page properly, you will be able to see the Sezzle Widget in the Cart page just like as below. front cart widget sezzle
  3. Proceed to Checkout to see Sezzle as a payment option. onepage movement
  4. Select Sezzle and click on Place Order to get redirected to the Sezzle Checkout page.
  5. Provide your sign in credentials to get logged in and complete your purchase. sezzle sign
  6. Final step where you will able to see if your purchase has been approved or not. If yes, click on Complete Order to finish your purchase. sezzle approval page
  7. If Sezzle checkout is completed successfully, you will be redirected to the order success page. order complete page

Note : The process of upgrading this plugin involves the complete removal of Sezzle Magento plugin files, followed by copying the new files.

Test your Magento 1 integration

  1. Go to your website.
  2. Add an item to your cart and go to checkout page.
  3. Select Sezzle as the payment method. onepage movement
  4. Click on Place Order.
  5. If redirection to Sezzle checkout is successful and you see the following page, your integration is complete. Congratulations! sezzle sign
  6. Warning Don’t complete the payment because you will be charged if you complete. Go back to your website. To test complete payment flow, follow Sandbox Testing

Magento 1 Sandbox Testing

  1. In Sezzle Payment configuration in your Magento 1 admin, set Api Mode to Sandbox/Test. Make sure you are doing this on your dev/staging website.
  2. Choose Payment Action as Authorize Only if you want to authorize the payment during placing of order and later capture the payment and if you want to authorize and capture at the time of placing order, select Authorize and Capture.
  3. If Authorize Only is selected, then the capture expiry time will be visible in the Order Details page. You need to capture the payment before that given time by choosing Capture Online while you create invoice.
  4. Save the configuration.
  5. Select Sezzle as the payment method. onepage movement
  6. Click on Place Order and you will be redirected to Sezzle to make payment.
  7. Go ahead and complete the payment using test data.
  8. After payment is completed on Sezzle, you will be redirected back to your website with a successful payment page.
  9. Sandbox testing is complete. You can login to your Sezzle Merchant Sandbox dashboard to see the test order you just placed.

Magento 2

This guide describes how to integrate Sezzle into your Magento 2 website so that you can provide Sezzle as a payment option for your customers. After integrating Sezzle, your site will:

  1. Offer Sezzle as a payment option on the checkout page.
  2. Refund Sezzle payments from your Magento 2 order management system.
  3. Display Sezzle promotional messaging.
  4. Offer instant and delayed capture.

Before you begin

  1. You should have a Sezzle merchant account. Please visit our signup page if you don’t have an account.
  2. The transaction flow when buying with Sezzle

Integrations steps:

  1. Install and configure the Sezzle Magento 2 extension
  2. Test your integration
  3. (Optional) Sandbox Testing

Install and configure the Sezzle Magento 2 extension

For all purposes assume [Magento] as your root Magento directory.

Composer Way

  1. composer require sezzle/sezzlepay
  2. php bin/magento setup:upgrade
  3. php bin/magento setup:di:compile
  4. php bin/magento setup:static-content:deploy
  5. php bin/magento cache:clean

Manual Way

  1. Sign up for Sezzle at https://dashboard.sezzle.com/merchant/signup/. Login to your dashboard and keep your API Keys page open.
  2. In your Magento 2 [Magento]/app/code/ create folder called Sezzle.
  3. Inside Sezzle, create folder called Sezzlepay.
  4. Inside it, extract the files from this repo.
  5. Open the command line.
  6. Run the below command to enable Sezzle: php bin/magento module:enable Sezzle_Sezzlepay
  7. Run the Magento setup upgrade: php bin/magento setup:upgrade
  8. Run the Magento Dependencies Injection Compile: php bin/magento setup:di:compile
  9. Run the Magento Static Content deployment: php bin/magento setup:static-content:deploy
  10. Login to Magento Admin and navigate to System/Cache Management.
  11. Flush the cache storage by selecting Flush Cache Storage.

Admin Configuration

  1. To configure your Sezzle Pay in Magento Admin complete the following steps. Prerequisite for this section is to obtain a Private Key and Public Key from Sezzle Merchant Dashboard.
  2. Go to Store > Configuration > Sales > Payment Methods > Sezzle > Payment Settings admin sezzle magento2 option admin sezzle magento2 option expand

  3. Click on Register for Sezzle Pay if you have not registered for Sezzle Pay yet. This will redirect you to Sezzle Merchant Sign up page where you can do the registration. If you have already registered and have the Merchant ID, Public Key and Private Key in place, click on I've already setup Sezzle Pay, I want to edit my settings.

  4. Configure the plugin as follows:

    1. Set Enabled to Yes.
    2. Set Merchant ID.
    3. Set Payment Mode to either Sandbox or Live.
    4. Set Payment from Applicable Countries to Specific Countries.
    5. Set Payment from Specific Countries to United States or Canada.
    6. Set Private Key as received from API Keys section of Sezzle Merchant Dashboard.
    7. Set Public Key as received from your API Keys section of Sezzle Merchant Dashboard.
    8. Set Payment Action as Authorize only for doing payment authorization only and Authorize and Capture for doing authorization as well as payment capture. admin sezzle magento2 pay
    9. Save the configuration.
  5. Go to Store > Configuration > Sales > Payment Methods > Sezzle > Widget Settings

  6. Fill up the details for Product Page to show Sezzle Widget in Product Page. product widget magento2 sezzle

  7. Fill up the details for Cart Page to show Sezzle Widget in Product Page. cart widget magento2 sezzle

  8. Save the configuration.

  9. Navigate to System/Cache Management.

  10. Flush the cache storage by selecting Flush Cache Storage.

Your store is now ready to accept payments through Sezzle.

Frontend Experience

  1. If you have setup the Sezzle Widget configuration for Product Page properly, you will be able to see the Sezzle Widget in the Product View page just like as below. front product magento2 widget
  2. If you have setup the Sezzle Widget configuration for Cart Page properly, you will be able to see the Sezzle Widget in the Cart page just like as below. front cart magento2 widget
  3. Proceed to Checkout to see Sezzle as a payment option. onepage magento2
  4. Select Sezzle and click on Place Order to get redirected to the Sezzle Checkout page.
  5. Provide your sign in credentials to get logged in and complete your purchase. sezzle sign
  6. Final step where you will able to see if your purchase has been approved or not. If yes, click on Complete Order to finish your purchase. sezzle approval page
  7. If Sezzle checkout is completed successfully, you will be redirected to the order success page. order magento2 complete page

Note : If you have installed the module via Composer Way, upgrade it executing composer remove sezzle/sezzlepay and then follow the above Composer Way process. For manual installation, remove Sezzle directory from [Magento]/app/code and again upload the newer version using the above mentioned step.

Test your Magento 2 integration

  1. Go to your website.
  2. Add an item to your cart and go to checkout page.
  3. Select Sezzle as the payment method. onepage magento2
  4. Click on Place Order.
  5. If redirection to Sezzle checkout is successful and you see the following page, your integration is complete. Congratulations! sezzle sign
  6. Warning Don’t complete the payment because you will be charged if you complete. Go back to your website. To test complete payment flow, follow Sandbox Testing

Magento 2 Sandbox Testing

  1. In Sezzle Payment configuration in your Magento 2 admin, set Payment Mode to Sandbox. Make sure you are doing this on your dev/staging website.
  2. Choose Payment Action as Authorize Only if you want to authorize the payment during placing of order and later capture the payment and if you want to authorize and capture at the time of placing order, select Authorize and Capture.
  3. If Authorize Only is selected, then the capture expiry time will be visible in the Order Details page. You need to capture the payment before that given time by choosing Capture Online while you create invoice.
  4. Save the configuration.
  5. Select Sezzle as the payment method. onepage magento2
  6. Click on Place Order and you will be redirected to Sezzle to make payment.
  7. Go ahead and complete the payment using test data.
  8. After payment is completed on Sezzle, you will be redirected back to your website with a successful payment page.
  9. Sandbox testing is complete. You can login to your Sezzle Merchant Sandbox dashboard to see the test order you just placed.

Zoey

This guide describes how to integrate Sezzle into your Zoey website so that you can provide Sezzle as a payment option for your customers. After integrating Sezzle, your Zoey site will:

  1. Offer Sezzle as a payment option on the checkout page.
  2. Refund Sezzle payments from your Zoey order management system.
  3. Display Sezzle promotional messaging.

Integrations steps:

  1. Install and configure the Sezzle Zoey extension
  2. Review your order management functions
  3. Test your integration
  4. (Optional) Sandbox Testing

Before you begin

  1. You should have a Sezzle merchant account. Please visit our signup page if you don’t have an account.
  2. The transaction flow when buying with Sezzle

Install and configure the Sezzle Zoey extension

  1. Get the App from https://www.zoey.com/apps/sezzle-pay/ to add the Sezzle App in your store.
  2. Make sure you have the following Sezzle details handy.
    1. Merchant ID
    2. Public Key
    3. Private Key

Admin Configuration

  1. To configure your Sezzle Pay in Zoey Admin complete the following steps.
  2. Go to Set-up > Payment Methods > Sezzle Pay admin zoey
  3. Configure the plugin as follows:

    1. Set Enabled to Yes.
    2. Set Merchant ID.
    3. Set Api Mode to either Sandbox/Test or Live.
    4. Set Payment from Applicable Countries to Specific Countries.
    5. Set Payment from Specific Countries to United States or Canada.
    6. Set Private Key as received from API Keys section of Sezzle Merchant Dashboard.
    7. Set Public Key as received from your API Keys section of Sezzle Merchant Dashboard. admin zoey sezzlepay
    8. Save the configuration.
  4. Go to Apps > Sezzle Widget

  5. Fill up the details for Product Page to show Sezzle Widget in Product Page. product widget zoey sezzle

  6. Fill up the details for Cart Page to show Sezzle Widget in Product Page. cart widget zoey sezzle

  7. Save the configuration.

  8. Refresh your store by clicking on Advanced/Refresh Your Store.

Your store is now ready to accept payments through Sezzle.

Frontend Experience

  1. If you have setup the Sezzle Widget configuration for Product Page properly, you will be able to see the Sezzle Widget in the Product View page just like as below. front product zoey widget
  2. If you have setup the Sezzle Widget configuration for Cart Page properly, you will be able to see the Sezzle Widget in the Cart page just like as below. front cart zoey widget
  3. Proceed to Checkout to see Sezzle as a payment option. onepage zoey payment movement
  4. Select Sezzle and click on Continue and in the next step, click Place Order to get redirected to the Sezzle Checkout page.
  5. Provide your sign in credentials to get logged in and complete your purchase. sezzle sign
  6. Final step where you will able to see if your purchase has been approved or not. If yes, click on Complete Order to finish your purchase. sezzle approval page
  7. If Sezzle checkout is completed successfully, you will be redirected to the order success page. order zoey complete page

Note : For upgrading the Plugin, you need to get it again from https://www.zoey.com/apps/sezzle-pay/

Test your Zoey integration

  1. Go to your website.
  2. Add an item to your cart and go to checkout page.
  3. Select Sezzle as the payment method. onepage zoey payment movement
  4. Click on Continue and finally Place Order.
  5. If redirection to Sezzle checkout is successful and you see the following page, your integration is complete. Congratulations! sezzle sign
  6. Warning Don’t complete the payment because you will be charged if you complete. Go back to your website. To test complete payment flow, follow Sandbox Testing

Zoey Sandbox Testing

  1. In Sezzle Payment configuration in your Zoey admin, set Api Mode to Sandbox/Test. Make sure you are doing this on your dev/staging website.
  2. Save the configuration.
  3. Select Sezzle as the payment method. onepage zoey payment movement
  4. Click on Place Order and you will be redirected to Sezzle to make payment.
  5. Go ahead and complete the payment using test data.
  6. After payment is completed on Sezzle, you will be redirected back to your website with a successful payment page.
  7. Sandbox testing is complete. You can login to your Sezzle Merchant Sandbox dashboard to see the test order you just placed.

NopCommerce

This guide describes how to integrate Sezzle into your NopCommerce website so that you can provide Sezzle as a payment option for your customers. After integrating Sezzle, your NopCommerce site will:

  1. Offer Sezzle as a payment option on the checkout page.
  2. Refund Sezzle payments from your NopCommerce order management system.
  3. Minimum order total checkout.
  4. Instant and Delayed Capture.

Integrations steps:

  1. Install and configure the Sezzle NopCommerce plugin
  2. Review your order management functions
  3. Test your integration
  4. (Optional) Sandbox Testing

Before you begin

  1. You should have a Sezzle merchant account. Please visit our signup page if you don’t have an account.
  2. The transaction flow when buying with Sezzle

Install and configure the Sezzle NopCommerce plugin

  1. Get the Extension from https://www.nopcommerce.com/p/5814/sezzle.aspx.
  2. Make sure you have the following Sezzle details handy.
    1. Merchant ID
    2. Public Key
    3. Private Key

Admin Configuration

  1. To configure your Sezzle in NopCommerce Admin complete the following steps.
  2. Go to Configuration > Local plugins.
  3. Click on Upload plugin or theme and select the downloaded zipped file as per the instructions given.
  4. After upload, you will get an option to Install the plugin. admin nopcommerce
  5. You can Configure the Plugin either from the Local Plugin list or going to Configuration > Payment methods.
  6. Click on Edit from the Payment Method list to activate the payment method etc.
  7. Set Use Sandbox as true if you want to do testing else set to false for Production.
  8. Set Merchant ID.
  9. Set Transaction Mode to either Authorize or Authorize and Capture.
  10. Set Private Key as received from API Keys section of Sezzle Merchant Dashboard.
  11. Set Public Key as received from your API Keys section of Sezzle Merchant Dashboard.
  12. Set Minimum Checkout Amount to restrict checkout if order total does not reaches that amount. admin nopcommerce sezzlepay
  13. Save.
  14. For restriction based on Billing country, navigate to Configuration > Payment restrictions.
  15. Choose the country which you want to restrict for Sezzle. admin nopcommerce_sezzlepay restriction

Your store is now ready to accept payments through Sezzle.

Frontend Experience

  1. Add items to cart and Proceed to Checkout to see Sezzle as a payment option. onepage nopcommerce payment movement
  2. Select Sezzle and in the final step,click Confirm to get redirected to the Sezzle Checkout page.
  3. Provide your sign in credentials to get logged in and complete your purchase. sezzle sign
  4. Final step where you will able to see if your purchase has been approved or not. If yes, click on Complete Order to finish your purchase. sezzle approval page
  5. If Sezzle checkout is completed successfully, you will be redirected to the order success page. order nopcommerce complete page

Test your NopCommerce integration

  1. Go to your website.
  2. Add an item to your cart and go to checkout page.
  3. Select Sezzle as the payment method. onepage nopcommerce payment movement
  4. Click on Continue and finally Confirm.
  5. If redirection to Sezzle checkout is successful and you see the following page, your integration is complete. Congratulations! sezzle sign
  6. Warning Don’t complete the payment because you will be charged if you complete. Go back to your website. To test complete payment flow, follow Sandbox Testing

NopCommerce Sandbox Testing

  1. In Sezzle Payment configuration in your NopCommerce admin, set Use Sandbox to true. Make sure you are doing this on your dev/staging website.
  2. Save the configuration.
  3. Select Sezzle as the payment method. onepage nopcommerce payment movement
  4. Click on Confirm and you will be redirected to Sezzle to make payment.
  5. Go ahead and complete the payment using test data.
  6. After payment is completed on Sezzle, you will be redirected back to your website with a successful payment page.
  7. Sandbox testing is complete. You can login to your Sezzle Merchant Sandbox dashboard to see the test order you just placed.

BigCommerce

This guide describes how to integrate Sezzle into your BigCommerce website so that you can provide Sezzle as a payment option for your customers. After integrating Sezzle, your BigCommerce site will:

  1. Offer Sezzle as a payment option on the checkout page.
  2. Refund Sezzle payments from your BigCommerce order management system.

This integration is only available with BigCommerce’s Optimized One Page Checkout.

Integrations steps:

  1. Install and configure the Sezzle BigCommerce App
  2. Review your order management functions
  3. Test your integration
  4. (Optional) Sandbox Testing

Before you begin

  1. You should have a Sezzle merchant account. Please visit our signup page if you don’t have an account.
  2. The transaction flow when buying with Sezzle

Installation of the Sezzle BigCommerce App

  1. Get the Sezzle App from https://www.bigcommerce.com/apps/sezzle/. sezzle_app_bigcommerce_marketplace
  2. Click on Install to proceed to the next step. sezzle_app_install_step1
  3. Confirm the PCI Compliance checkbox. On confirming, it will start installing. sezzle_app_install_step2
  4. Make sure you have the following Sezzle details handy.
    1. Merchant ID
    2. Public Key
    3. Private Key

Admin Configuration

  1. Navigate to your BigCommerce store dashboard to configure the Sezzle app.
  2. Go to Store Setup > Payments.
  3. Choose one unused Offline Payment method and set the Display Name as Sezzle.
  4. Select from the Available Countries list to restrict Sezzle based on country.
  5. Click on Save. sezzle_app_offline_payments
  6. Go to Apps > Sezzle.
  7. Provide the Merchant ID, Public Key, Private Key, Offline Payment Method selected in step 3.
  8. Select the Use Sandbox checkbox if you want test mode else uncheck the box.
  9. Check the Add Sezzle Widget Script to inject the Widget script. This will help Sezzle to configure the Sezzle Widget in PDP and Cart Page of your store. sezzle_app_control_panel
  10. Save the configuration.
  11. Go to Storefront > Script Manager. Verify that the Checkout Script has been injected. If not, you can manually create the script by following the Checkout Loader Script instructions in Apps > Sezzle. sezzle_app_script_manager

Your store is now ready to accept payments through Sezzle.

Frontend Experience

  1. If the Widget is configured, go to any product and you will see the Sezzle widget under the price label. sezzle_app_product_widget
  2. Add items to cart and Proceed to Checkout to see Sezzle as a payment option. onepage bigcommerce payment movement
  3. Select Sezzle and click Place Order to get redirected to the Sezzle Checkout page.
  4. Provide your sign in credentials to get logged in and complete your purchase. sezzle sign
  5. Final step where you will able to see if your purchase has been approved or not. If yes, click on Complete Order to finish your purchase. sezzle approval page
  6. If Sezzle checkout is completed successfully, you will be redirected to the order confirmation page. order bigcommerce complete page

Test your BigCommerce integration

  1. Go to your website.
  2. Add an item to your cart and go to checkout page.
  3. Select Sezzle as the payment method and Click on Place Order to get redirected to Sezzle Checkout. onepage bigcommerce payment movement
  4. If redirection to Sezzle checkout is successful and you see the following page, your integration is complete. Congratulations! sezzle sign
  5. Warning Don’t complete the payment because you will be charged if you complete. Go back to your website. To test complete payment flow, follow Sandbox Testing

BigCommerce Sandbox Testing

  1. Go to Apps > Sezzle in your BigCommerce dashboard, check the Use Sandbox. Make sure you are doing this on your dev/staging website.
  2. Save the configuration.
  3. Select Sezzle as the payment method. onepage bigcommerce payment movement
  4. Click on Place Order and you will be redirected to Sezzle to make payment.
  5. Go ahead and complete the payment using test data.
  6. After payment is completed on Sezzle, you will be redirected back to your website with a successful confirmation page.
  7. Sandbox testing is complete. You can login to your Sezzle Merchant Sandbox dashboard to see the test order you just placed.
  8. Verify the payment by checking the order in the BigCommerce dashboard. You will be able to see Staff Notes with the Sezzle Reference ID and order status as Awaiting Fulfilment.
  9. If payment is unsuccessful, order status will be Awaiting Payment and there will be no Sezzle Reference ID in Staff Notes.

Uninstall Steps

  1. Go to Apps > My Apps
  2. In the Sezzle App, click on Uninstall to uninstall the App. sezzle uninstall
  3. Go to Store Setup > Payments.
  4. Disable the Offline Payment method that was being used for Sezzle.

Bold Cashier

This guide describes how to integrate Sezzle into your Bold Cashier checkout so that you can provide Sezzle as a payment option for your customers. After integrating Sezzle, your Bold Cashier checkout will:

  1. Offer Sezzle as a payment option on the checkout page.
  2. Refund Sezzle payments from your Bold Cashier app.

This integration is currently only available on Shopify.

Before you begin

  1. You should have an approved Sezzle merchant account. Please visit our signup page if you don’t have an account.
  2. You should generate API Keys using your Sezzle Merchant Dashboard.
  3. The transaction flow when buying with Sezzle

Integration steps:

  1. Install the Sezzle Bold Cashier app
  2. Test your integration

Installation of the Sezzle Bold Cashier App

  1. First you must install the Bold Cashier app to your platform and store url. You can do this from the Bold Cashier site.
  2. Log in to the store as an admin, navigate to Apps, and click Bold Cashier. Bold cashier
  3. In the Bold Cashier navigation menu, click Marketplace, then scroll down to find Sezzle. Click Install.
    Note: you will be redirected back to our API documentation page if you are not an approved merchant with API keys. Bold install
  4. Click Allow to accept permissions and complete the installation. Bold permissions
  5. At this point installation is complete. You can click Configure to be redirected to your Sezzle Merchant Dashboard. Bold marketplace

Frontend experience

Once installation is complete, Sezzle will appear as a payment option during checkout.

Test your Bold Cashier integration

Add an item to your cart and proceed to the payment options screen. If Sezzle appears as a checkout option, then your integration was successful. Bold cashier

Uninstall Steps

  1. Navigate to your Bold Cashier marketplace and scroll to find Sezzle. Bold marketplace
  2. Click Uninstall.