Introduction
The Sezzle API v2 is intended for merchants interested in accepting Sezzle as a payment option while using the latest features offered by v2.
In addition to a direct API integration, Sezzle also offers integrations with some of the most popular eCommerce platforms.
Sezzle offers integrations with some of the most popular eCommerce platforms.
Note that v1 indicates support for v1 API only.
Please choose your platform to see the relevant documentation:
1. Shift4Shop
2. BigCommerce v2
3. Bold Cashier
4. BuyItLive
5. CommentSold
6. Lightspeed v2
7. Magento 1
8. Magento 2 v2
9. Mojo v2
10. NopCommerce
11. Salesforce Commerce Cloud v2
12. Shopify
13. Prestashop v2
14. Shopware 5 v2
15. Wix v2
16. WooCommerce
17. Zoey
Field or header names in bold case followed by an asterisk are required. For example, this_is_required* is a required field whereas this_is_optional is not.
If you have any questions regarding our API, please reach out to our team by email at dev@sezzle.com.
API
Obtain Authentication Token
US/CA: POST https://gateway.sezzle.com/v2/authentication
EU: POST https://gateway.eu.sezzle.com/v2/authentication
Sezzle uses scoped API keys to allow access to the API. You can find/generate these keys on your merchant dashboard (US/CA) or (EU) 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
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"
}
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
View the Sezzle v2 OpenAPI Specification.
Client Generator
The OpenAPI Specification can be imported into the Swagger Editor to easily generate a Sezzle client in a variety of programming languages. If your language is not supported by Swagger, an alternate tool is OpenAPI Generator.
Testing
While you are working on the integration, you should test it before going live. Please use this section for information on testing.
Sandbox Testing
(US)
API Endpoint https://sandbox.gateway.sezzle.com/v2
Sandbox Dashboard https://sandbox.dashboard.sezzle.com/merchant
(EU)
API Endpoint https://sandbox.gateway.eu.sezzle.com/v2
Sandbox Dashboard https://sandbox.dashboard.eu.sezzle.com/merchant
Test Data
You can use the following test data to test your integration
Card
Card Number 4242424242424242
CVV/CVC any (3 numbers)
Expiration Date any
Name any
Address any
Phone and other information
- Please use any valid US or CA phone number.
- The expected
OTP
is123123
. - Personal information does not need to be real.
Debit card
IBAN Number DE89370400440532013000
Email Address any
Name any
Click here to test more countries.
Errors
v2 endpoints will return an array of standardized error objects.
We attempt to keep these errors as consistent as possible, and will announce any changes in advance if they are required.
Error Response Body
[
{
"code": "invalid",
"location": "order.amount.amount_in_cents",
"message": "Order amount must be greater than $0.99",
"debug_uuid": "919f40d0-874b-4d98-810d-ed2246a8ad77"
}
]
Sessions
A session represents an order, a tokenization of a customer, or both. Use the session endpoints to post a new session or get the details of an existing session.
Create a session
US/CA: POST https://gateway.sezzle.com/v2/session
EU: POST https://gateway.eu.sezzle.com/v2/session
This endpoint creates a session in our system, and it returns the URL that you should redirect the user to. You can use a session to create an order, tokenize a customer, or both.
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.
If you submit an order with a session, then Sezzle is able to handle the entire checkout process after an order has been provided. However, if your flow requires that the user confirm their checkout on your site after being approved by Sezzle, you may set the intent
parameter to AUTH
with the session request. In this flow, Sezzle will not complete the transaction unless you make a capture request. Capture requests can be made to capture all or part of the original order amount. You must send the capture request before the authorization expires. By default, authorizations expire within in 30 minutes, but the expiration period for new authorizations may be extended up to 7 days in your merchant dashboard US/CN or merchant dashboard EU.
If you tokenize a customer, then the customer will have the option to agree to allow you to process future transactions on their behalf. This gives you the ability to preapprove, authorize, and capture future transactions on behalf of the customer.
Request Body
{
"cancel_url": {
"href": "https://sezzle.com/cart",
"method": "GET"
},
"complete_url": {
"href": "https://sezzle.com/complete",
"method": "GET"
},
"customer": {
"tokenize": true,
"email": "john.doe@sezzle.com",
"first_name": "John",
"last_name": "Doe",
"phone": "5555045294",
"dob": "1990-02-25",
"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"
}
},
"order": {
"intent": "CAPTURE",
"reference_id": "ord_12345",
"description": "sezzle-store - #12749253509255",
"requires_shipping_info": true,
"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"
}
}
],
"metadata": {
"location_id": "123",
"store_name": "Downtown Minneapolis",
"store_manager": "Jane Doe"
},
"shipping_amount": {
"amount_in_cents": 1000,
"currency": "USD"
},
"tax_amount": {
"amount_in_cents": 1000,
"currency": "USD"
},
"order_amount": {
"amount_in_cents": 10000,
"currency": "USD"
}
}
}
Response Body
{
"uuid": "fadbc642-05a4-4e38-9e74-80e325623af9",
"links": [
{
"href": "https://gateway.sezzle.com/v2/session/fadbc642-05a4-4e38-9e74-80e325623af9",
"method": "GET",
"rel": "self"
}
],
"order": {
"uuid": "12a34bc5-6de7-890f-g123-4hi1238jk902",
"checkout_url": "https://checkout.sezzle.com/?id=12a34bc5-6de7-890f-g123-4hi1238jk902",
"intent": "CAPTURE",
"links": [
{
"href": "https://gateway.sezzle.com/v2/order/12a34bc5-6de7-890f-g123-4hi1238jk902",
"method": "GET",
"rel": "self"
},
{
"href": "https://gateway.sezzle.com/v2/order/12a34bc5-6de7-890f-g123-4hi1238jk902",
"method": "PATCH",
"rel": "self"
},
{
"href": "https://gateway.sezzle.com/v2/order/12a34bc5-6de7-890f-g123-4hi1238jk902/release",
"method": "POST",
"rel": "release"
},
{
"href": "https://gateway.sezzle.com/v2/order/12a34bc5-6de7-890f-g123-4hi1238jk902/capture",
"method": "POST",
"rel": "capture"
},
{
"href": "https://gateway.sezzle.com/v2/order/12a34bc5-6de7-890f-g123-4hi1238jk902/refund",
"method": "POST",
"rel": "refund"
}
]
},
"tokenize": {
"token": "7ec98824-67cc-469c-86ab-f9e047f9cf1a",
"expiration": "2020-04-27T14:46:59Z",
"approval_url": "https://dashboard.sezzle.com/customer/checkout-approval?merchant-request-id=3f3244fd-78ce-4994-af0c-b8c760d47794",
"links": [
{
"href": "https://gateway.sezzle.com/v2/token/7ec98824-67cc-469c-86ab-f9e047f9cf1a/session",
"method": "GET",
"rel": "token"
}
]
}
}
Session Object
A valid session object contains at a minimum an Order object or a Customer object with tokenize set to true.
Parameter | Type | Description |
---|---|---|
cancel_url* | object | The HTTP request information used to redirect the customer in the case of a cancellation |
complete_url* | object | The HTTP request infromation used to redirect the customer upon completion of the session |
customer | object | The customer for this session |
order | object | The order for this session |
URL Object
This is used for both the cancel and complete URL objects
Parameter | Type | Description |
---|---|---|
href* | string | The URL used when redirecting a customer |
method | string | The HTTP request method used when redirecting a customer. Currently only the GET method is supported. If omitted, will default to GET. |
Customer object
Parameter | Type | Description |
---|---|---|
tokenize | boolean | Determines whether to tokenize customer. If omitted, will default to false. |
string | The customer’s email address | |
first_name | string | The customer’s first name |
last_name | string | The customer’s last name |
phone | string | The customer’s phone number |
dob | string | The customer’s date of birth in YYYY-MM-DD format (parameter is input only) |
billing_address | object | The customer’s billing address |
shipping_address | object | The customer’s shipping address |
Address Object
This format is used for both billing_address and shipping_address in the Customer object.
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 |
Order object
Parameter | Type | Description |
---|---|---|
intent* | string | Accepted values are “AUTH” or “CAPTURE”. If your checkout flow requires the user to confirm their checkout on your site after being approved by Sezzle, use “AUTH” as your intent. If you prefer the checkout be captured immediately, use “CAPTURE”. |
reference_id* | string | Your reference ID for this order |
description* | string | Your description for this order |
order_amount* | object | A Price object containing the amount of the order, which must be at least 100 . All fields of the Price object are required. |
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 | object | The items being purchased |
discounts | object | The discounts applied to this order. Must be included in total |
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 |
shipping_amount | object | The shipping fees applied to this order. Must be included in the total |
tax_amount | object | The taxes applied to this order. Must be included in the total |
checkout_expiration | string | The expiration for the order checkout in ISO 8601 date/time format |
send_checkout_url | object | A Notification object for sending checkout URL to the customer |
locale | string | Localizes the checkout. Accepted values are en-US (English, United States), en-CA (English, Canada), fr-CA (French, Canada) and de-DE (German, Germany), Defaults to en-US if not provided. |
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 |
Discount Object
Parameter | Type | Description |
---|---|---|
name | string | The description of the discount |
amount | object | A price object |
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 |
Shipping Amount Object
A price object
Tax Amount Object
A price object
Price Object
The price object is used for items, discounts, shipping amount, tax amount, and order amount.
Parameter | Type | Description |
---|---|---|
amount_in_cents | int | The amount of the item in cents |
currency | string | The 3 character currency code as defined by ISO 4217 |
Notification Object
A valid notification object contains at a minimum a phone or an email.
Parameter | Type | Description |
---|---|---|
to_sms_phone | string | The SMS phone number of the notification |
to_email | string | The email address of the notification |
language | string | The 2-character ISO 639 langauge code of the notification. Acceptable values are “en” and “fr”. Will default to English if not provided |
Get a session
US/CA: GET https://gateway.sezzle.com/v2/session/{session_uuid}
EU: GET https://gateway.eu.sezzle.com/v2/session/{session_uuid}
You can retrieve the details of an existing session using this endpoint.
Response Body
{
"uuid": "fadbc642-05a4-4e38-9e74-80e325623af9",
"links": [
{
"href": "https://gateway.sezzle.com/v2/session/fadbc642-05a4-4e38-9e74-80e325623af9",
"method": "GET",
"rel": "self"
}
],
"order": {
"uuid": "12a34bc5-6de7-890f-g123-4hi1238jk902",
"intent": "CAPTURE",
"checkout_url": "https://checkout.sezzle.com/?id=12a34bc5-6de7-890f-g123-4hi1238jk902",
"links": [
{
"href": "https://gateway.sezzle.com/v2/order/12a34bc5-6de7-890f-g123-4hi1238jk902",
"method": "GET",
"rel": "self"
},
{
"href": "https://gateway.sezzle.com/v2/order/12a34bc5-6de7-890f-g123-4hi1238jk902",
"method": "PATCH",
"rel": "self"
},
{
"href": "https://gateway.sezzle.com/v2/order/12a34bc5-6de7-890f-g123-4hi1238jk902/release",
"method": "POST",
"rel": "release"
},
{
"href": "https://gateway.sezzle.com/v2/order/12a34bc5-6de7-890f-g123-4hi1238jk902/capture",
"method": "POST",
"rel": "capture"
},
{
"href": "https://gateway.sezzle.com/v2/order/12a34bc5-6de7-890f-g123-4hi1238jk902/refund",
"method": "POST",
"rel": "refund"
}
]
},
"tokenize": {
"token": "7ec98824-67cc-469c-86ab-f9e047f9cf1a",
"expiration": "2020-04-27T14:46:59Z",
"approval_url": "https://dashboard.sezzle.com/customer/checkout-approval?merchant-request-id=3f3244fd-78ce-4994-af0c-b8c760d47794",
"links": [
{
"href": "https://gateway.sezzle.com/v2/token/7ec98824-67cc-469c-86ab-f9e047f9cf1a/session ",
"method": "GET",
"rel": "token"
}
]
}
}
Orders
Use the orders endpoints to get order details, update an order, release an amount by order, capture an amount by order, or refund an amount by order.
Order payment flow
- Merchant calls
/v2/session
with order and intent ofAUTH
orCAPTURE
. Optionally, the merchant can send customer information. - Sezzle returns order uuid and checkout URL.
- Merchant redirects customer to Sezzle checkout URL.
- Customer completes the Sezzle checkout and is redirected to the session complete URL.
- If the intent was to
CAPTURE
, Sezzle will capture the total order amount. - If the intent was to
AUTH
, Sezzle will only authorize the total order amount and the merchant can call/v2/order
later to release or capture amounts using the order uuid.
- If the intent was to
Get an order
US/CA: GET https://gateway.sezzle.com/v2/order/{order_uuid}
EU: GET https://gateway.eu.sezzle.com/v2/order/{order_uuid}
Use this endpoint to get details on an existing order
Response Body
{
"uuid": "12a34bc5-6de7-890f-g123-4hi1238jk902",
"links": [
{
"href": "https://gateway.sezzle.com/v2/order/12a34bc5-6de7-890f-g123-4hi1238jk902",
"method": "GET",
"rel": "self"
},
{
"href": "https://gateway.sezzle.com/v2/order/12a34bc5-6de7-890f-g123-4hi1238jk902",
"method": "PATCH",
"rel": "self"
},
{
"href": "https://gateway.sezzle.com/v2/order/12a34bc5-6de7-890f-g123-4hi1238jk902/release",
"method": "POST",
"rel": "release"
},
{
"href": "https://gateway.sezzle.com/v2/order/12a34bc5-6de7-890f-g123-4hi1238jk902/capture",
"method": "POST",
"rel": "capture"
},
{
"href": "https://gateway.sezzle.com/v2/order/12a34bc5-6de7-890f-g123-4hi1238jk902/refund",
"method": "POST",
"rel": "refund"
}
],
"intent": "AUTH",
"reference_id": "ord_12345",
"description": "sezzle-store - #12749253509255",
"metadata": {
"location_id": "123",
"store_name": "Downtown Minneapolis",
"store_manager": "Jane Doe"
},
"order_amount": {
"amount_in_cents": 10000,
"currency": "USD"
},
"items": [
{
"name": "widget",
"sku": "sku123456",
"quantity": 1,
"price": {
"amount_in_cents": 1000,
"currency": "USD"
}
}
],
"customer": {
"email": "john.doe@sezzle.com",
"first_name": "John",
"last_name": "Doe",
"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"
}
},
"authorization": {
"authorization_amount": {
"amount_in_cents": 10000,
"currency": "USD"
},
"approved": true,
"expiration":"2020-04-23T16:13:44Z" ,
"releases": [
{
"uuid": "4b4d217c-18f1-4bfb-996e-767470c04661",
"amount": {
"amount_in_cents": 3000,
"currency": "USD"
}
}
],
"captures": [
{
"uuid": "f4415e94-e562-47cc-94f3-92279f27dc20",
"amount": {
"amount_in_cents": 7000,
"currency": "USD"
}
}
],
"refunds": [
{
"uuid": "83162d2f-d5f1-43ad-91ed-e8231920ce6d",
"amount": {
"amount_in_cents": 1000,
"currency": "USD"
}
}
]
}
}
Update an order
US/CA: PATCH https://gateway.sezzle.com/v2/order/{order_uuid}
EU: PATCH https://gateway.eu.sezzle.com/v2/order/{order_uuid}
Use this endpoint to update an existing order. Only the reference ID can be updated.
Update Order Object
Parameter | Type | Description |
---|---|---|
reference_id* | string | Your reference ID for this order |
Request Body
{
"reference_id": "ord_9876"
}
There is no response body for this request. If successful, we return an HTTP 204 Status No Content.
Release amount by order
US/CA: POST https://gateway.sezzle.com/v2/order/{order_uuid}/release
EU: POST https://gateway.eu.sezzle.com/v2/order/{order_uuid}/release
Use this endpoint to release an amount by order.
Header Parameters
Parameter |
Type | Description |
---|---|---|
Sezzle-Request-Id | string | A unique, merchant-generated ID. Use this header to enforce idempotency when releasing an authorization. |
Release Order Object
A price object
Price Object
Parameter | Type | Description |
---|---|---|
amount_in_cents* | number | The amount you would like to release on this order, in cents |
currency* | string | The 3 character currency code as defined by ISO 4217 |
Request Body
{
"amount_in_cents": 5000,
"currency": "USD"
}
Response Body
{
"uuid": "6c9db5d4-d09a-4224-860a-b5438ac32ca8"
}
Capture amount by order
US/CA: POST https://gateway.sezzle.com/v2/order/{order_uuid}/capture
EU: POST https://gateway.eu.sezzle.com/v2/order/{order_uuid}/capture
Use this endpoint to capture an amount by order.
Header Parameters
Parameter |
Type | Description |
---|---|---|
Sezzle-Request-Id | string | A unique, merchant-generated ID. Use this header to enforce idempotency when capturing an order. |
Capture Amount By Order Object
Parameter | Type | Description |
---|---|---|
capture_amount* | object | Details the amount and currency being captured |
partial_capture | boolean | Determines whether this capture is a partial capture. |
Capture Amount Object
A price object.
Price Object
Parameter | Type | Description |
---|---|---|
amount_in_cents* | string | The amount to be captured, in cents |
currency* | string | The 3 character currency code as defined by ISO 4217 |
Request Body
{
"capture_amount": {
"amount_in_cents": 5000,
"currency": "USD"
},
"partial_capture": true
}
Response Body
{
"uuid": "6c9db5d4-d09a-4224-860a-b5438ac32ca8"
}
Refund amount by order
US/CA: POST https://gateway.sezzle.com/v2/order/{order_uuid}/refund
EU: POST https://gateway.eu.sezzle.com/v2/order/{order_uuid}/refund
Use this endpoint to refund an amount by order
Header Parameters
Parameter |
Type | Description |
---|---|---|
Sezzle-Request-Id | string | A unique, merchant-generated ID. Use this header to enforce idempotency when refunding an order. |
Refund Amount Object
A price object.
Price Object
Parameter | Type | Description |
---|---|---|
amount_in_cents* | string | The amount in cents to be refunded, in cents |
currency* | string | The 3 character currency code as defined by ISO 4217 |
Request Body
{
"amount_in_cents": 5000,
"currency": "USD"
}
Response Body
{
"uuid": "6c9db5d4-d09a-4224-860a-b5438ac32ca8"
}
Delete checkout by order
DELETE https://gateway.sezzle.com/v2/order/{order_uuid}/checkout
Use this endpoint to delete a checkout for an order. The request fails if the checkout has already been successfully completed by the customer.
If you have redirected the customer to the Sezzle checkout and subsequently cancel the order in your ecommerce platform, then you should immediately call this endpoint to prevent the possibility of the customer completing the Sezzle checkout.
There is no response body for this request. If successful, we return an HTTP 204 Status No Content.
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
US/CA: GET https://gateway.sezzle.com/v2/settlements/summaries
EU: GET https://gateway.eu.sezzle.com/v2/settlements/summaries
Query Parameter | Description |
---|---|
start-date* | The UTC start date for the report. Must be in yyyy-mm-dd format. |
end-date | The UTC 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. Limit is 20. |
currency-code | The ISO-4217 currency code selected by users at checkout. 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,total_bank_account_withdrawals,total_bank_account_withdrawal_reversals,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,100.00,-100.00,0.00,693.61,a5c13qt1-4126-41d3-2fq8-9ca431f51431,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,sezzle_order_id
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,,66d78e86-fd96-4266-9217-b769c102a0a0
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,,5e0d4886-8c3d-4d4e-901a-2046a06c1e0f
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,,a2c1a142-96ad-48c9-93d2-1acaaee9f073
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,,3f62dcba-f5a4-41be-ad8f-53e938b5f310
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,,66d78e86-fd96-4266-9217-b769c102a0a0
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,,5e0d4886-8c3d-4d4e-901a-2046a06c1e0f
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,,a2c1a142-96ad-48c9-93d2-1acaaee9f073
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,,3f62dcba-f5a4-41be-ad8f-53e938b5f310
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,,e4194956-de70-4958-9da4-6c05f276fdab
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,,e4194956-de70-4958-9da4-6c05f276fdab
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,
BANK_ACCOUNT_WITHDRAWAL,,,2019-11-02T00:05:00Z,,,,100.00,,010,
BANK_ACCOUNT_WITHDRAWAL_REVERSAL,,,2019-11-02T00:05:00Z,,,,-100.00,,011,
Settlement Details Request
US/CA: GET https://gateway.sezzle.com/v2/settlements/details/{payout_uuid}
EU: GET https://gateway.eu.sezzle.com/v2/settlements/details/{payout_uuid}
Query Parameter | Description |
---|---|
metadata | An optional comma-separated list of metadata keys. To add a metadata key as a column to the report line items, include the key in this list. When applicable, the value of the metadata key will be added to the line item. If no line items contain the metadata key, the key will not be added as a column. |
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. |
Total bank account withdrawal amount | The sum of all bank account withdrawals. |
Total bank account withdrawal reversal amount | The sum of all bank account withdrawal reversals, which reflect a bank account withdrawal that has failed. |
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 uuid associated with the order. |
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. |
Sezzle order ID | The internal ID Sezzle has assigned to this order. |
Line item event type definitions:
Type | Description | Type Code |
---|---|---|
ORDER | A completed order with Sezzle. | 001 |
REFUND | An order that has been refunded. | 002 |
FEE | The fee assessed by Sezzle for a given order. | 003 |
RETURNED_FEE | A fee refunded by Sezzle. | 004 |
CHARGEBACK | A chargeback resulting from a disputed order. | 005 |
CHARGEBACK_REVERSAL | A reversal of a chargeback resulting from a disputed order. | 006 |
CORRECTION | A manual correction to a payout. | 007 |
INTEREST_TRANSFER | A transfer from the Sezzle interest account. | 008 |
REFERRAL_REVENUE_TRANSFER | A payment earned from Sezzle’s merchant referral program. | 009 |
BANK_ACCOUNT_WITHDRAWAL | A withdrawal of funds from your bank to cover a negative balance with Sezzle. | 010 |
BANK_ACCOUNT_WITHDRAWAL_REVERSAL | A failed BANK_ACCOUNT_WITHDRAWAL. | 011 |
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 Request
US/CA: GET https://gateway.sezzle.com/v2/interest/balance
EU: GET https://gateway.eu.sezzle.com/v2/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 Request
US/CA: GET https://gateway.sezzle.com/v2/interest/activity
EU: GET https://gateway.eu.sezzle.com/v2/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. Limit is 20. |
currency-code | The ISO-4217 currency code of the interest account. If omitted, will default to USD. |
Interest Account Balance Response Body
{
"interest_balance": 5183.4624
}
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
Customers
Use the customers endpoints to get a list of customers, get details on an existing customer, delete a customer, preapprove an amount for the customer, or create an order for a customer.
Get a list of customers
US/CA: GET https://gateway.sezzle.com/v2/customer
EU: GET https://gateway.eu.sezzle.com/v2/customer
You can retrieve a list of existing customers using this endpoint.
Response Body
[
{
"uuid": "a9d8e15c-5e4a-4201-aa8f-7540f934a9a2",
"expiration": "2020-04-28T17:58:11Z",
"links": [
{
"href": "https://gateway.sezzle.com/v2/customer/a9d8e15c-5e4a-4201-aa8f-7540f934a9a2",
"method": "GET",
"rel": "self"
},
{
"href": "https://gateway.sezzle.com/v2/customer/a9d8e15c-5e4a-4201-aa8f-7540f934a9a2",
"method": "DELETE",
"rel": "self"
},
{
"href": "https://gateway.sezzle.com/v2/customer/a9d8e15c-5e4a-4201-aa8f-7540f934a9a2/preapprove",
"method": "POST",
"rel": "preapprove"
},
{
"href": "https://gateway.sezzle.com/v2/customer/a9d8e15c-5e4a-4201-aa8f-7540f934a9a2/order",
"method": "POST",
"rel": "order"
}
]
}
]
Get a customer
US/CA: GET https://gateway.sezzle.com/v2/customer/{customer_uuid}
EU: GET https://gateway.eu.sezzle.com/v2/customer/{customer_uuid}
You can use this endpoint to get details on an existing customer
Response Body
{
"uuid": "a9d8e15c-5e4a-4201-aa8f-7540f934a9a2",
"links": [
{
"href": "https://gateway.sezzle.com/v2/customer/a9d8e15c-5e4a-4201-aa8f-7540f934a9a2",
"method": "GET",
"rel": "self"
},
{
"href": "https://gateway.sezzle.com/v2/customer/a9d8e15c-5e4a-4201-aa8f-7540f934a9a2",
"method": "DELETE",
"rel": "self"
},
{
"href": "https://gateway.sezzle.com/v2/customer/a9d8e15c-5e4a-4201-aa8f-7540f934a9a2/preapprove",
"method": "POST",
"rel": "preapprove"
},
{
"href": "https://gateway.sezzle.com/v2/customer/a9d8e15c-5e4a-4201-aa8f-7540f934a9a2/order",
"method": "POST",
"rel": "order"
}
],
"email": "john.doe@sezzle.com",
"first_name": "John",
"last_name": "Doe",
"phone": "5555045294",
"dob": "1990-02-25",
"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"
}
}
Delete a customer
US/CA: DELETE https://gateway.sezzle.com/v2/customer/{customer_uuid}
EU: DELETE https://gateway.eu.sezzle.com/v2/customer/{customer_uuid}
You can use this endpoint to delete an existing customer
There is no response body for this request. If successful, we return an HTTP 204 Status No Content.
Preapprove amount by customer
US/CA: POST https://gateway.sezzle.com/v2/customer/{customer_uuid}/preapprove
EU: POST https://gateway.eu.sezzle.com/v2/customer/{customer_uuid}/preapprove
You can use this endpoint to preapprove an amount for a customer
Request Body
{
"amount_in_cents": 5000,
"currency": "USD"
}
Preapprove Object
A price Object
Price Object
Parameter | Type | Description |
---|---|---|
amount_in_cents* | number | The amount you would like to preapprove, in cents |
currency* | string | The 3 character currency code as defined by ISO 4217 |
Response Body
{
"uuid": "6c9db5d4-d09a-4224-860a-b5438ac32ca8",
"approved": true
}
Create order by customer
US/CA: POST https://gateway.sezzle.com/v2/customer/{customer_uuid}/order
EU: POST https://gateway.eu.sezzle.com/v2/customer/{customer_uuid}/order
You can use this endpoint to create an order for a customer
Header Parameters
Parameter |
Type | Description |
---|---|---|
Sezzle-Request-Id | string | A unique, merchant-generated ID. Use this header to enforce idempotency when authorizing order payment. |
Request Body
{
"intent": "AUTH",
"reference_id": "monthly_sub_123",
"order_amount": {
"amount_in_cents": 5000,
"currency": "USD"
}
}
Order Payment Object
Parameter | Type | Description |
---|---|---|
intent* | string | Accepted values are “AUTH” or “CAPTURE” |
reference_id* | string | A reference ID for the order |
order_amount* | object | The amount and currency of the order |
Order Amount Object
A price object. The amount must be greater than 99.
Price Object
Parameter | Type | Description |
---|---|---|
amount_in_cents* | number | The amount you would like to authorize, in cents |
currency* | string | The 3 character currency code as defined by ISO 4217 |
Response Body
{
"uuid": "6c9db5d4-d09a-4224-860a-b5438ac32ca8",
"links": [
{
"href": "https://gateway.sezzle.com/v2/order/6c9db5d4-d09a-4224-860a-b5438ac32ca8",
"method": "GET",
"rel": "self"
},
{
"href": "https://gateway.sezzle.com/v2/order/6c9db5d4-d09a-4224-860a-b5438ac32ca8",
"method": "PATCH",
"rel": "self"
},
{
"href": "https://gateway.sezzle.com/v2/order/6c9db5d4-d09a-4224-860a-b5438ac32ca8/release",
"method": "POST",
"rel": "release"
},
{
"href": "https://gateway.sezzle.com/v2/order/6c9db5d4-d09a-4224-860a-b5438ac32ca8/capture",
"method": "POST",
"rel": "capture"
},
{
"href": "https://gateway.sezzle.com/v2/order/6c9db5d4-d09a-4224-860a-b5438ac32ca8/refund",
"method": "POST",
"rel": "refund"
},
],
"intent": "AUTH",
"reference_id": "monthly_sub_123",
"order_amount": {
"amount_in_cents": 5000,
"currency": "USD"
},
"authorization": {
"authorization_amount": {
"amount_in_cents": 5000,
"currency": "USD"
},
"approved": true,
"expiration":"2020-04-23T16:13:44Z"
}
}
Tokenization
Use the token endpoints to get the status of a customer tokenization
Customer tokenization
- Merchant calls
/v2/session
with customer tokenize oftrue
. Optionally, the merchant can send customer information. - Sezzle returns the tokenize session token and approval URL.
- Merchant redirects customer to Sezzle approval URL.
- Customer can agree (or disagree) to allow future Sezzle transactions by the merchant and is redirected to the session complete URL. If the customer agrees to be tokenized, Sezzle will add a query parameter to the complete URL named
customer-uuid
, allowing the merchant to get the uuid of the customer.- Alternatively, the merchant can call
/v2/token
with this tokenize session token to get the uuid of the customer.
- Alternatively, the merchant can call
- Merchant can subsequently charge the customer by calling
/v2/customer
to create an order using thecustomer-uuid
.- If successful, merchant can call
/v2/order
to release, capture, or refund the order.
- If successful, merchant can call
Response Body
{
"token": "4f8cf865-2089-4423-85fd-ea833a16b62d",
"expiration": "2020-04-29T19:31:54Z",
"links": [
{
"href": "https://gateway.sezzle.com/v2/token/4f8cf865-2089-4423-85fd-ea833a16b62d/session",
"method": "GET",
"rel": "self"
}
],
"customer": {
"uuid": "a9d8e15c-5e4a-4201-aa8f-7540f934a9a2",
"expiration": "2020-10-13T14:29:41Z",
"links": [
{
"href": "https://gateway.sezzle.com/v2/customer/a9d8e15c-5e4a-4201-aa8f-7540f934a9a2",
"method": "GET",
"rel": "self"
}
]
}
}
Get session tokenization
US/CA: GET https://gateway.sezzle.com/v2/token/{token}/session
EU: GET https://gateway.eu.sezzle.com/v2/token/{token}/session
You can use this endpoint to get the current state of a session (tokenize) token
If the customer is not tokenized, then the customer object will be omitted.
Webhooks
You can use these endpoints to configure your webhooks
Create webhooks
US/CA: POST https://gateway.sezzle.com/v2/webhooks
EU: POST https://gateway.eu.sezzle.com/v2/webhooks
This endpoint can be used to subscribe to webhooks
Request Body
{
"url": "https://example.com/webhooks",
"events": [
"customer.tokenized"
]
}
Webhooks Object
Parameter | Type | Description |
---|---|---|
url* | string | The url you are using to receive webhooks |
events* | array | An array of events to subscribe to |
Response Body
{
"uuid": "747cf28a-bb5c-46a8-a288-d9b006fd6113",
"links": [
]
}
Valid Webhook Events
We accept the following Webhook events
Event | Description |
---|---|
customer.tokenized | This webhook is called when a customer is tokenized |
order.authorized | This webhook is called when an order is authorized by Sezzle |
order.captured | This webhook is called when an order is captured by Sezzle |
order.refunded | This webhook is called when an order is refunded by Sezzle |
List webhooks
US/CA: GET https://gateway.sezzle.com/v2/webhooks
EU: GET https://gateway.eu.sezzle.com/v2/webhooks
You can get a list of your webhooks using this endpoint
Response Body
[
{
"uuid": "747cf28a-bb5c-46a8-a288-d9b006fd6113",
"links": [
{}
],
"url": "https://example.com/webhooks",
"events": [
"customer.tokenized"
]
}
]
Delete webhooks
US/CA: DELETE https://gateway.sezzle.com/v2/webhooks/{webhooks_uuid}
EU: DELETE https://gateway.eu.sezzle.com/v2/webhooks/{webhooks_uuid}
You can delete your webhooks using this endpoint
There is no response body for this request. If successful, we return an HTTP 204 Status No Content.
Test Webhooks
POST https://gateway.sezzle.com/v2/webhooks/test
You can trigger a test event using this endpoint
Test Webhooks Object
Parameter | Type | Description |
---|---|---|
event* | string | One of the Valid Webhook Events |
url | string | A url to receive the test webhook. If omitted, the test webhook is sent to all urls subscribed to that event (see List Webhooks) |
There is no response body for this request. If successful, we return an HTTP 201 Status Created.
Webhook Signature
Webhooks are signed with an HMAC using the SHA256 algorithm. The header Sezzle-Signature
value is a hash of the webhook’s body with your merchant private key. You should always verify that the signature matches the webhook data to ensure that the webhook came from Sezzle.
Webhook Acceptance and Retries
A webhook has been successfully sent when we receive an HTTP 200 Status OK response. Any other response will queue the webhook to be retried. We will retry several times within the first hour, and a few times for the remainder of that day. The final two attempts are made one day later, and then 3 days later, for a total elapsed time of five days. If the final retry fails, then that subscribed webhook will be deleted for all events. You will need to create the webhook again to resubscribe, if desired.
It is possible that new webhooks will arrive before old webhooks have been retried, so webhooks are not guaranteed to be received in cronological order.
Webhooks are signed using the current merchant private key, not the private key at the time of their creation, so a retried webhook may have a different signature if the keys are changed after its originating event.
SDK
Javascript SDK
The Javascript SDK is for creating an in-context checkout by hosting the Sezzle checkout in a modal iframe or pop-up window.
Javascript SDK Features
- Create Checkout
- Capture Payment
- Supports Sezzle Checkout in an iframe, pop-up window, or redirect to Sezzle
- Handle Payment Success
- Handle Payment Cancel
- Handle Payment Failure
- Render Sezzle Button
Installing the Javascript SDK
- Include
https://checkout-sdk.sezzle.com/checkout.min.js
in the<head>
section of the page.
Implement the Javascript SDK
Button Configuration
Create a placeholder element for the Sezzle Button to be rendered on the page(s).
Use HTML attributes to customize the button.
Attribute | Description |
---|---|
templateText | Text that will prepended with the Sezzle logo. Default is Checkout with %%logo%% |
borderType | Options are square and semi-rounded |
customClass | Custom classes to be applied |
paddingX | X-axis padding. Default is 13px |
paddingY | Y-axis padding. Default is 7px |
width | Width of the button |
height | Height of the button. Default is 20% |
Button Placeholder
<div id="sezzle-smart-button-container"></div>
Button Customization
<div id="sezzle-smart-button-container" style="text-align: center"
templateText="Pay with %%logo%%"
borderType="semi-rounded"
customClass="action,primary,checkout">
</div>
Checkout Configuration
- Edit the page file to implement the SDK.
- Configure the SDK with the following options:
Attribute | Options |
---|---|
mode | iframe |popup |redirect |
apiMode | sandbox |live |
apiVersion | v2 |v1 |
publicKey* | xxxx (used only when creating a checkout or capturing payment) |
Configure Checkout
const checkout = new Checkout({
'mode': "iframe",
'publicKey': "xxxx",
'apiMode': "sandbox",
'apiVersion': "v2"
});
Render the Sezzle Button
Call renderSezzleButton
passing the id
of the placeholder element defined in Button Configuration, above.
Render Button
checkout.renderSezzleButton("sezzle-smart-button-container");
Initialize the Checkout
The SDK requires the following event handlers:
Event | Description |
---|---|
onClick* | Sezzle Button is clicked by the user |
onComplete* | Sezzle payment is successfully completed |
onCancel* | Sezzle payment is cancelled |
onFailure* | Sezzle payment has failed |
Initialize Checkout
checkout.init({
onClick: function () {},
onComplete : function (event) {},
onCancel: function () {},
onFailure: function (event) {}
});
Hosting the Checkout
To be implemented in the onClick
handler. There are two methods for hosting a checkout.
Use an existing checkout url.
Use a checkout payload as detailed in the Session Object.
- The cancel and complete urls are not required for
iframe
andpopup
mode. - Tokenization is not supported in the SDK.
- The cancel and complete urls are not required for
Start Checkout with URL
checkout.startCheckout({
checkout_url: "https://checkout.sezzle.com/?id=example"
});
Start Checkout with Payload
checkout.startCheckout({
checkout_payload: {
"order": {
"intent": "AUTH",
"reference_id": "ord_12345",
"description": "sezzle-store - #12749253509255",
"order_amount": {
"amount_in_cents": 10000,
"currency": "USD"
}
}
}
});
Checkout Events
- A successfully completed Sezzle checkout will trigger an event to the
onComplete
handler. The event should include adata
object with thesession_uuid
andorder_uuid
. - If the user exits the Sezzle checkout for any reason, the
onCancel
handler will be executed. - Any error will trigger an event to the
onFailure
handler. The event should include adata
object with the error details.
Checkout Completed
function onCompleteHandler(event) {
var data = event.data || Object.create(null);
console.log('checkout data:',
data.session_uuid,
data.order_uuid);
}
checkout.init({
onComplete : onCompleteHandler
});
Capture the Order
Typically implemented in the onComplete
handler. Capturing an order is not required if the CAPTURE
intent was used when creating the checkout.
The capture payment method requires two parameters, the order_uuid
and the payload as detailed in the Capture Amount By Order Object.
Capture Order
var payload = {
capture_amount: {
amount_in_cents: 5000,
currency: "USD"
},
partial_capture: false
};
checkout.capturePayment(data.order_uuid, payload);
Mobile SDK
The Mobile SDK is for integrating the Sezzle checkout and widget into a native mobile app.
Android
The Android SDK is available in Gradle or Maven.
iOS
The iOS SDK is available in CocoaPods.
Widget SDK
Purpose
The Widget SDK serves to load our sales widgets to web pages. The widgets will not show unless a config is provided before the script is loaded. The repository for this project can be found at https://github.com/sezzle/sezzle-js.
Configuring the Widgets
The config must be specified in a property of the document
object called document.sezzleConfig
. The SDK also provides various options to customize the widget’s position and appearance. The explanation for all the options can be found below:
targetXPath
(required)
Purpose: Path to the element in the webpage where the product price text value will be detected.
Type: string, or array of strings
Default: “
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 preceded by a ‘#’ character. Classes needed to be preceded by a ‘.’ character. Tag names need to be followed by the applicable index. The format of a tagname is as follows: tagName-Index (e.g. ‘SPAN-2’). The indexes are zero-based, such that the first element of the specified type within the parent element is at index 0.
Example: ‘#ProductSection/.product-price/SPAN-1’ would target the 2nd ‘SPAN’ element contained within elements that contain the ‘product-price’ class which are contained within the element with an ID of ‘ProductSection’.
An example of how to configure the widget:
document.sezzleConfig =
{
targetXPath: ['.price'],
renderToPath: ['..'],
urlMatch: 'product',
theme: 'light',
scaleFactor: 1.0,
logoSize: 1.00,
logoStyle: {'margin': '0px 0px -4px 1px','transformOrigin': 'center top'},
altVersionTemplate: {
'en': 'or 4 interest-free payments of %%price%% with %%logo%% %%info%%',
'fr': 'ou 4 paiements de %%price%% sans intérêts avec %%logo%% %%info%%'
},
splitPriceElementsOn: '-',
ignoredPriceElements: ['.Price-compareAt'],
ignoredFormattedPriceText: ['Subtotal', 'Total:', 'Sold Out'],
hideClasses: ['.afterpay-paragraph'],
fontFamily: 'inherit',
fontSize: 12,
fontWeight: 300,
color: 'inherit',
alignment: 'auto',
alignmentSwitchMinWidth: 768,
alignmentSwitchType: 'center',
lineHeight: '13px',
maxWidth: 400,
marginTop: 0,
marginBottom: 0,
marginLeft: 0,
marginRight: 0,
language: navigator.language,
forcedShow: false
}
Only the targetXPath is required in the local config. Each key using the default value may be removed from the sezzleConfig, and the default values will be used automatically.
An example of targetXPath:
<div id="ProductSection">
<div class="product-price">
<span>Price: </span>
<span>$15.99</span>
</div>
</div>
<script type="text/javascript">
document.sezzleConfig = {
targetXPath: '#ProductSection/.product-price/SPAN-1'
}
</script>
renderToPath
(optional)
Purpose: Path to the element in the webpage relative to targetXPath
where the Sezzle widget should be rendered.
Type: string, or array of strings
Default: ‘..’
Additional Details: Path to the element below which the widget should render (widget’s previous element sibling). If you wish to place widgets in multiple places, you can pass multiple paths in an array. The price path at the nth index of the targetXPath
array will be rendered at the path given at the nth index of the renderToPath
array. If you do not pass anything to the nth index of the renderToPath
array but there is a path at the nth index of targetXPath
, then the widget will default to be rendered directly below the parent of the corresponding target element.
‘./’ will place the widget as the next element sibling of the target element.
‘../’ means go up one parent element.
As with targetXPath, prepend IDs with ‘#’, classes with ‘.’, and append tag names with the index (tagName-Index). It is recommended to keep the renderToPath
as simple as possible to maximize compatibility.
urlMatch
(optional)
Purpose: Specific word appearing in the url of pages where the widget config should be applied.
Type: string
Default: ”
Additional Details: Typical values are ‘product’ or ‘cart’, as applicable
theme
(optional)
Purpose: Updates the logo color to coordinate and contrast with different background colors of websites.
Type: string
Options: dark, light, grayscale, black-flat, white, white-flat
Default: ‘light’
scaleFactor
(optional)
Purpose: Ratio at which to scale the Sezzle widget.
Type: number
Default: 1.0
logoSize
(optional)
Purpose: Ratio at which to scale the Sezzle logo.
Type: number
Default: 1.00
Additional Details: The space the logo occupies between the widget text and the More Info link/icon is determined by the font size. When dramatically scaling the widget, it may be necessary to override the styling to adjust the left and right margins of the logo using logoStyle
.
logoStyle
(optional)
Purpose: Custom styling to apply to the Sezzle logo within the widget, particularly when using logoSize
.
Type: object
Default: {}
Additional Details: The object will accept any CSS styling in JSON format. Keys must be surrounded by “, given in camelCase instead of kebob-case, and separated from the following key by a comma instead of a semi-colon.
altVersionTemplate
(optional)
Purpose: Text content of the widget. Also changes the arrangement of price, logo, and the info/learn-more icon within the widget.
Type: string, or object
Default: {en: ‘or 4 interest-free payments of %%price%% with %%logo%% %%info%%’, fr: ‘ou 4 paiements de %%price%% sans intérêts avec %%logo%% %%info%%’}
Additional Details: Currently available templates: %%price%%, %%logo%%, %%link%%, %%info%%, %%question-mark%%, %%line-break%%
splitPriceElementsOn
(optional)
Purpose: Character or string at which to split the price elements (for elements with price ranges).
Type: string
Default: ”
Additional Details: Certain websites, especially WooCommerce websites, have price ranges as their price element (e.g. $650 - $1000). Setting this field to the character or 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 as $162.50 - $250.00.
An example of splitPriceElementsOn:
<div class="price">
<span class="woocommerce-Price-amount">$12</span>
" - "
<span class="woocommerce-Price-amount">$15</span>
</div>
<script type="text/javascript">
document.sezzleConfig = {
targetXPath: '.price/.woocommerce-Price-amount',
splitPriceElementsOn: '-',
relatedElementActions: [{
relatedPath: '.',
initialAction:(e, t)=> {
if(e.nextSibling&&" – "===e.nextSibling.textContent) {
let i=(e.nextElementSibling.innerText.replace(",", "").substr(1)/4).toFixed(2);
t.getElementsByClassName("sezzle-price-split")[0].innerText+=" - $"+i
}
}
},
{
relatedPath: '.',
initialAction:(e, t)=> {
e.previousSibling&&" –" ===e.previousSibling.textContent&&(t.style="display: none")
}
}]
}
</script>
ignoredPriceElements
(optional)
Purpose: Child elements of targetXPath
to be disregarded when detecting the price and rendering the widget.
Type: array of strings
Default: []
Additional Details: ignoredPriceElements
can be used to solve targetXPath
variations between sale and regular-priced items. In this case, targetXPath
should point to the parent element surrounding the old and the new prices, then ignoredPriceElements
will specify the old/compare-at price element. As with targetXPath
, prepend IDs with ‘#’, classes with ‘.’, and append tag names with the index (tagName-Index).
An example of ignoredPriceElements:
<span class="ProductMeta__PriceList">
<span class="product__price--regular">$20</span>
<span class="product__price--sale">$15</span>
</span>
<script type="text/javascript">
document.sezzleConfig = {
targetXPath: '.ProductMeta__PriceList',
ignoredPriceElements: ['.product__price--regular']
}
</script>
ignoredFormattedPriceText
(optional)
Purpose: Text strings within the targetXPath
to be disregarded when detecting the price and rendering the widget.
Type: array of strings
Default: [‘Subtotal’, ‘Total:’, ‘Sold Out’]
hideClasses
(optional)
Purpose: Classes of elements that should be hidden when Sezzle’s logo is showing. This is useful for hiding a product similar to Sezzle that is not available in a country where Sezzle is.
Type: array of strings
Default: []
fontFamily
(optional)
Purpose: Font family of the widget text.
Type: string
Default: ‘inherit’
fontSize
(optional)
Purpose: Font size of the widget text in pixels.
Type: number
Default: 12
Additional Details: Enter numbers only. Do not enter the unit (e.g. px)!
fontWeight
(optional)
Purpose: Boldness of the widget text.
Type: number
Default: 300
Additional Details: 100 is the lightest, 900 is the boldest.
color
(optional)
Purpose: Color of the widget text.
Type: string
Default: ‘inherit’
Additional Details: Accepts all kinds of values (hexadecimal, rgb(), hsl(), etc…)
alignment
(optional)
Purpose: Alignment of the widget relative to the parent element.
Type: string
Options: left, center, right, auto
Default: ‘auto’
alignmentSwitchMinWidth
(optional)
Purpose: Screen width in pixels below which the alignment switches to alignmentSwitchType
instead of alignment
.
Type: number
Default: 0
Additional Details: The most common breakpoint is 768 (handheld vs desktop). alignmentSwitchMinWidth
is typically only necessary when alignment is not auto.
alignmentSwitchType
(optional)
Purpose: Alignment of the widget relative to the parent element to be applied when the viewport width is narrower than alignmentSwitchMinWidth
.
Type: string
Options: left, center, right, auto
Default: ‘auto’
lineHeight
(optional)
Purpose: Content height of the widget.
Type: string
Default: ‘13px’
Additional Details: Include unit (e.g.: px)
maxWidth
(optional)
Purpose: Maximum width of the widget element in pixels.
Type: number
Default: 400
Additional Details: 200 to render the widget nicely on 2 lines, 120 for 3 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
marginLeft
(optional)
Purpose: Amount of space left of the widget in pixels.
Type: number
Default: 0
marginRight
(optional)
Purpose: Amount of space right of the widget in pixels.
Type: number
Default: 0
language
(optional)
Purpose: Language in which the widget text should be rendered.
Type: string
Options: ‘en’, ‘fr’
Default: navigator.language
Additional Details: To match the selected language in the window instead of the user’s default browser language, use document.querySelector(‘html’).lang. Currently, the SDK only supports ‘en’ and ‘fr’
forcedShow
(optional)
Purpose: Shows the widget in every country if true. Shows the widget in only the United States and Canada if false.
Type: boolean
Options: false, true
Default: false
Uploading the Widgets
After building up the config, it is time to upload the widgets to your webpages! The SDK needs to be called in the HTML of the webpage in order for the widgets to be rendered. Place the config and the widget script at the bottom of the code file for the HTML page, and you should be all set!
Placing the following code snippet into your HTML loads the SDK into the webpage.
US/CA
html <script src="https://widget.sezzle.com/v1/javascript/price-widget?uuid={{replace_with_your_merchant_id}}"></script>
EU
html <script src="https://widget.eu.sezzle.com/v1/javascript/price-widget?uuid={{replace_with_your_merchant_id}}"></script>
The script reflecting the applicable merchant ID must be called only after the config is specified (
document.sezzleConfig
is defined). Here is a complete example:
<script type="text/javascript">
document.sezzleConfig =
{
targetXPath: ['.price'],
renderToPath: ['..'],
urlMatch: 'product',
theme: 'light',
scaleFactor: 1.0,
logoSize: 1.00,
logoStyle: {'margin': '0px 0px -4px 1px','transformOrigin': 'center top'},
altVersionTemplate: {
'en': 'or 4 interest-free payments of %%price%% with %%logo%% %%info%%',
'fr': 'ou 4 paiements de %%price%% sans intérêts avec %%logo%% %%info%%'
},
splitPriceElementsOn: '-',
ignoredPriceElements: ['.Price-compareAt'],
ignoredFormattedPriceText: ['Subtotal', 'Total:', 'Sold Out'],
hideClasses: ['.afterpay-paragraph'],
fontFamily: 'inherit',
fontSize: 12,
fontWeight: 300,
color: 'inherit',
alignment: 'auto',
alignmentSwitchMinWidth: 768,
alignmentSwitchType: 'center',
lineHeight: '13px',
maxWidth: 400,
marginTop: 0,
marginBottom: 0,
marginLeft: 0,
marginRight: 0,
language: navigator.language,
forcedShow: false
}
</script>
<script src="https://widget.sezzle.com/v1/javascript/price-widget?uuid=12a34bc5-6de7-890f-g123-4hi5678jk901"></script>
The “simple” configuration above is intended for a single template of code (product or cart page) individually. Alternatively, a single configuration could be created for the entire webpage using an array of objects called configGroups. The script will determine which configGroup(s) applies to the active webpage and render the widget(s) accordingly.
<script type="text/javascript">
document.sezzleConfig = {
configGroups: [
{
targetXPath: ['.price'],
renderToPath: ['..'],
urlMatch: 'product',
theme: 'light',
scaleFactor: 1.0,
logoSize: 1.00,
logoStyle: {'margin': '0px 0px -4px 1px','transformOrigin': 'center top'},
altVersionTemplate: {
'en': 'or 4 interest-free payments of %%price%% with %%logo%% %%info%%',
'fr': 'ou 4 paiements de %%price%% sans intérêts avec %%logo%% %%info%%'
},
splitPriceElementsOn: '-',
ignoredPriceElements: ['.Price-compareAt'],
ignoredFormattedPriceText: ['Subtotal', 'Total:', 'Sold Out'],
hideClasses: ['.afterpay-paragraph'],
fontFamily: 'inherit',
fontSize: 12,
fontWeight: 300,
color: 'inherit',
alignment: 'auto',
alignmentSwitchMinWidth: 768,
alignmentSwitchType: 'center',
lineHeight: '13px',
maxWidth: 400,
marginTop: 0,
marginBottom: 0,
marginLeft: 0,
marginRight: 0
},
{
targetXPath: '.cart__subtotal',
renderToPath: '../..',
urlMatch: 'cart',
}
],
forcedShow: false,
language: document.querySelector('html').lang || navigator.language,
}
</script>
<script src="https://widget.sezzle.com/v1/javascript/price-widget?uuid=12a34bc5-6de7-890f-g123-4hi5678jk901"></script>
Plugin integration
Need help?
If you have any questions about integration, please go here for US/CA and go here for EU
Shift4Shop
This guide describes how to integrate Sezzle into your Shift4Shop website so that you can provide Sezzle as a payment option for your customers. After integrating Sezzle, your Shift4Shop site will:
- Offer Sezzle as a payment option on the checkout page.
- Refund Sezzle payments from your Shift4Shop order management system.
- Display Sezzle promotional messaging.
- Authorize and capture payments.
Integration Steps Overview
Before You Begin
- You should have a Sezzle merchant account.
- Please visit our signup page (US/CA) or signup page (EU) if you don’t have an account.
Make sure you have the following Sezzle details handy.
US/US
EU
Merchant ID
- Public API Key
- Private API Key
Familiarize yourself with the transaction flow when buying with Sezzle.
Install the Sezzle Shift4Shop Extension
- Log in to your website’s Shift4Shop admin.
- Get the app here.
- Copy+paste your
Store URL
into the input area, then clickProceed
. - Check the PCI Compliance box, then click
Acknowledge and Authorize the App
to start the installation.
Admin Configuration
- In your Shift4Shop admin, go to
Settings
>Payment
. - Click
Select Payment Methods
.
- Turn the Sezzle switch to
On
. - Copy your
Public Key
from your Sezzle Merchant Dashboard (US/CA) or Sezzle Merchant Dashboard (EU), and paste it into the corresponding field in the Sezzle configuration page of your Shift4Shop admin. - Next to
Private Key
, clickChange
. Then, copy yourPrivate Key
from your Sezzle Merchant Dashboard (US/CA) or Sezzle Merchant Dashboard (EU), and paste it into the corresponding field in the Sezzle configuration page of your Shift4Shop admin. - Click
Save
.
- To restrict Sezzle usage by country, click the
Exclude List
hyperlink under the Sezzle switch. - Click
Add Location
. - Select the desired country, then click
Add
.
- Installation is complete.
Shift4Shop Sandbox Testing
- In the Sezzle configuration page of your Shift4Shop admin, enter the Sandbox API Keys from your Sezzle Merchant Dashboard (US/CA) or Sezzle Merchant Dashboard (EU) and check the
Test Mode
checkbox, then save the configuration. Make sure you are doing this on yourdev
/staging
website. - On your website, add an item to the cart, then proceed to checkout and select
Sezzle
as the payment method. - Click
Place Order
and you should be redirected to the Sezzle checkout page. If prompted, sign in. - Enter the payment details using test data, then click
Complete Order
. - After the payment is completed on Sezzle, you should be redirected back to your website and see a successful payment page.
- Sandbox testing is complete. You can log in to your Sezzle Merchant Sandbox Dashboard (US/CA) or Sezzle Merchant Sandbox Dashboard (EU) to see the test order you just placed.
Shift4Shop Live Checkout
- In the Sezzle configuration page of your Shift4Shop admin, enter the API Keys from your Sezzle Merchant Dashboard (US/CA) or Sezzle Merchant Dashboard (EU) and uncheck the
Test Mode
checkbox, then save the configuration. - On your website, add an item to your cart, then proceed to
Checkout
and selectSezzle
as the payment method. - Click
Place Order
. - If you are redirected to the Sezzle checkout page, your integration is complete. Congratulations!
- Warning Don’t complete the payment. Your checkout is now live, so you will be charged if you complete.
Troubleshooting
If testing was unsuccessful, review the following:
- Sezzle Shift4Shop extension is the most updated version.
- Sezzle payment method is enabled.
- API Keys were entered correctly.
- It is recommended to use the Copy icon in the Sezzle Merchant Dashboard to avoid typos or extra spaces.
- If you have multiple accounts with Sezzle, the merchant ID and API Keys are tied to only one URL.
- Widget script is present on your website and reflects the
Merchant ID
from your Sezzle Merchant Dashboard (US/CA) or Sezzle Merchant Dashboard (EU).- Go to a product page on your website.
- Right-click then select
Inspect
. - In the
Elements
tab, search forwidget.sezzle
.
Manual Theme Integration
If the Shift4Shop app fails to maintain the widget script on the product pages, or to add the script manually for additional pages, complete the following steps:
- From your Shift4Shop admin, go to
Settings
>Design
>Themes & Styles
. - In your
Current Theme
, click the button labeledMore
then selectEdit Template(HTML)
. - Find the copy of your theme under
Go to Folder
. - Click the
gear
icon next to theproduct_items.html
file, then clickEdit
. - When the dashboard asks if you want to edit your theme files, click the
Edit Theme Files
button. - In the
Source Code
text area, copy+paste the script at the very beginning of the file. - Click
Save
.
The script to be inserted into your webpage is as follows:
Template:
<script src="https://widget.sezzle.com/v1/javascript/price-widget?uuid={sezzle_merchant_uuid}"></script>
Note: Update {sezzle_merchant_uuid}
in the above script template to reflect your site’s Merchant ID (removing the curly brackets), which can be found in the Sezzle Merchant Dashboard.
Example:
<script src="https://widget.sezzle.com/v1/javascript/price-widget?uuid=12a34bc5-6de7-890f-g123-4hi5678jk901"></script>
Instructions may vary slightly depending on your active plug-ins. For assistance with widget configuration, click Request Addition of Widgets
in the widget step of your Sezzle Merchant Dashboard Setup Checklist.
Uninstall Steps
- Go to
Settings
>Payment
. - Click
Select Payment Methods
. - Under the Sezzle App, click the
gear
icon then clickDelete
.
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:
- Offer Sezzle as a payment option on the checkout page.
- Refund Sezzle payments from your BigCommerce order management system.
- Display Sezzle promotional messaging.
- Authorize and capture payments.
This integration is only available with BigCommerce’s Optimized One Page Checkout.
Integration Steps Overview
- Enable Sezzle as an online payment method
- Install and configure the Sezzle BigCommerce App
- Test your integration
- (Optional) Sandbox Testing
Before You Begin
- You should have a Sezzle merchant account.
- Please visit our signup page if you don’t have an account.
Make sure you have the following Sezzle details handy.
US/USEU
Merchant ID
- Public API Key
- Private API Key
Familiarize yourself with the transaction flow when buying with Sezzle.
Enable Sezzle as an online payment method
- Go to
Store Setup
>Payments
.
- Go to
Online Payment Methods
, findSezzle
and clickSet up
.
- Copy your
Public Key
andPrivate Key
from your Sezzle Merchant Dashboard, and paste them into the corresponding fields. - Select the
Transaction Type
.- Note: If you select
Authorize only
, payment will only be authorized and will have to be captured later in BigCommerce.
- Note: If you select
- Select the
Test Mode
:No(Recommended)
, orYes
for testing. - Click on
Save
.
Install the Sezzle BigCommerce App
- Log in to your website’s BigCommerce store admin page.
- In the left sidebar, click
Apps
>Marketplace
. - Click
BigCommerce.com/Apps
. - Search for
Sezzle
. - Click
Sezzle
, then clickGet This App
. - Click
Install
. - Check the PCI Compliance box, then click
Confirm
to start the installation.
BigCommerce Sandbox Testing
- Select the
Test Mode
asYes
fromSezzle Settings
inPayments
section of BigCommerce admin. Make sure you are doing this on yourdev
/staging
website. - On your website, add an item to the cart, then proceed to
Checkout
and selectSezzle
as the payment method. - Click
Place Order
and you should be redirected to the Sezzle checkout page. If prompted, sign in. - Enter the payment details using test data, then click
Complete Order
. - After the payment is completed on Sezzle, you should be redirected back to your website and see a successful payment page.
- Sandbox testing is complete. You can log in to your Sezzle Merchant Sandbox Dashboard (US/CA) or Sezzle Merchant Sandbox Dashboard (EU) to see the test order you just placed.
BigCommerce Live Checkout
- Select the
Test Mode
asNo(Recommended)
fromSezzle Settings
inPayments
section of BigCommerce admin. - On your website, add an item to your cart, then proceed to
Checkout
and selectSezzle
as the payment method. - Click
Place Order
. - If you are redirected to the Sezzle checkout page, your integration is complete. Congratulations!
- Warning Don’t complete the payment. Your checkout is now live, so you will be charged if you complete it.
Widget Pre-Configuration
- Make sure you have the
Sezzle
App installed in your store. - Go to
Apps
>Sezzle
. - Copy your
Merchant ID
from your Sezzle Merchant Dashboard, and paste them into the corresponding fields in the Sezzle App of your BigCommerce admin. - Check the
Add Sezzle Widget Script
box. This will inject the widget script into the product and cart pages of your store. - Save the configuration.
- Go to
Storefront
>Script Manager
. Confirm that the Sezzle Widget scripts appear in the list of installed scripts.
- Widget is now ready to be configured.
- For finalizing the widget configuration, click
Request Addition of Widgets
in the widget step of your Sezzle Merchant Dashboard Setup Checklist (US/CA) or Sezzle Merchant Dashboard Setup Checklist (EU).
Troubleshooting
If testing was unsuccessful, review the following:
- Site has Optimized One-Page Checkout enabled.
- Go to
Advanced Settings
>Checkout
.
- Go to
- API Keys were entered correctly.
- To avoid typos or extra spaces, use the Copy icon in the Sezzle Merchant Dashboard (US/CA) or Sezzle Merchant Dashboard (EU).
- If you have multiple accounts with Sezzle, each store has its own merchant ID and API Keys that are tied to the store’s URL.
Add Sezzle Widget Script
box is checked.- Widget script is present on your website and reflects the
Merchant ID
from your Sezzle Merchant Dashboard (US/CA) or Sezzle Merchant Dashboard (EU).- Go to a product page on your website.
- Right-click then select
Inspect
. - In the
Elements
tab, search forwidget.sezzle
.
Manual Theme Integration
If the Sezzle App fails to maintain the widget script on the product pages, or to add the script manually for additional pages, complete the following steps:
- Go to
Storefront
>Script Manager
. - Click the
Create a Script
button. - Set
Name of script
toSezzle Widget
. - Set
Location on page
toFooter
. - Set
Select pages where script will be added
toAll pages
. - Set
Script category
toEssential
. - Set
Script type
toScript
. - In the Script content area, copy+paste the script, then click Save.
The script to be inserted into your webpage is as follows:
Template:
<script src="https://widget.sezzle.com/v1/javascript/price-widget?uuid={sezzle_merchant_uuid}"></script>
Example:
<script src="https://widget.sezzle.com/v1/javascript/price-widget?uuid=12a34bc5-6de7-890f-g123-4hi5678jk901"></script>
Instructions may vary slightly depending on your active plug-ins. If the issue persists after completing the above steps, look for other available features that allow the addition of a custom HTML code snippet to the site footer. If no such feature is found, the below steps may be followed as a last resort:
- Go to
Storefront
>My Themes
. - In your
Current Theme
, clickAdvanced
then selectEdit Theme Files
. - In the confirmation window, click
Edit Theme Files
. - In the file list, go to
templates
>pages
, then selectproduct.html
. - Copy+paste the script into the very bottom of the file, then click
Save and Apply Files
. - Repeat the previous step for the cart.html file.
For any kind of assistance, reach out to merchantsupport@sezzle.com
.
Uninstall Steps
- Go to
Apps
>My Apps
. - Under the Sezzle App, click
Uninstall
. - Toggle the button against
Sezzle
underStore Setup
>Payments
>Online Payment Methods
to disableSezzle
as a payment option.
Bold Cashier
This guide describes how to integrate Sezzle into your Bold Cashier website so that you can provide Sezzle as a payment option for your customers. After integrating Sezzle, your Bold Cashier site will:
- Offer Sezzle as a payment option on the checkout page.
- Refund Sezzle payments from your Bold Cashier order management system.
- Authorize and capture payments.
This integration is currently only available on Shopify.
Integration Steps Overview
- Install the Sezzle Bold Cashier app
- Test your integration
Before You Begin
- You should have a Sezzle merchant account.
- Please visit our signup page if you don’t have an account.
- You should generate API Keys using your Sezzle Merchant Dashboard
- Familiarize yourself with the transaction flow when buying with Sezzle.
Install the Sezzle Bold Cashier Extension
- First you must install the Bold Cashier app to your platform and store url. You can do this from the Bold Cashier site.
- Log in to your Shopify admin.
- Go to
Apps
>Bold Cashier
. - In the Bold Cashier left sidebar, click
Marketplace
, then findSezzle
and clickInstall
. - Click
Allow
to accept permissions and complete the installation. - Installation is complete.
Bold Cashier Live Checkout
- On your website, add an item to your cart, then proceed to
Checkout
and selectSezzle
as the payment method. - Click
Complete Order
. - If you are redirected to the Sezzle checkout page, your integration is complete. Congratulations!
- Warning Don’t complete the payment. Your checkout is now live, so you will be charged if you complete.
Uninstall Steps
- Go to your Bold Cashier
Marketplace
and scroll to findSezzle
. - Click
Uninstall
.
BuyItLive
This guide describes how to integrate Sezzle into your BuyItLive website so that you can provide Sezzle as a payment option for your customers. After integrating Sezzle, your BuyItLive site will:
- Offer Sezzle as a payment option on the checkout page.
- Refund Sezzle payments from your BuyItLive order management system.
- Authorize and capture payments.
Integration Steps Overview
Before You Begin
- You should have a Sezzle merchant account.
- Please visit our signup page if you don’t have an account.
Make sure you have the following Sezzle details handy.
(US/CA)
(EU)
Familiarize yourself with the transaction flow when buying with Sezzle.
BuyItLive Admin Configuration
- Log in to your website’s BuyItLive admin.
- Click
Add Payment Provider
. - Select
Connect with Sezzle
. - Go to
Sezzle Payments
>Tools
. - Copy your
Private Key
andPublic Key
from your Sezzle Merchant Dashboard, and paste them into the corresponding fields in the Sezzle configuration page of your BuyItLive admin. - Click
Save Settings
. - Go to
Cart Settings
and ensure the Sezzle switch is in theOn
position. - Installation is complete.
BuyItLive Live Checkout
- On your website, add an item to your cart, then proceed to
Checkout
and selectSezzle
as the payment method. - Click
Place Order
. - If you are redirected to the Sezzle checkout page, your integration is complete. Congratulations!
- Warning Don’t complete the payment. Your checkout is now live, so you will be charged if you complete.
CommentSold
This guide describes how to integrate Sezzle into your CommentSold website so that you can provide Sezzle as a payment option for your customers. After integrating Sezzle, your CommentSold site will:
- Offer Sezzle as a payment option on the checkout page.
- Refund Sezzle payments from your CommentSold order management system.
- Authorize and capture payments.
Integration Steps Overview
Before You Begin
- You should have a Sezzle merchant account.
- Please visit our signup page if you don’t have an account.
Make sure you have the following Sezzle details handy.
(US/CA)
(EU)
Familiarize yourself with the transaction flow when buying with Sezzle.
CommentSold Admin Configuration
- In your CommentSold admin, go to
Setup
. - Click
Payment Gateways
. - Copy your
Private Key
andPublic Key
from your Sezzle Merchant Dashboard, and paste them into the corresponding fields in the Sezzle configuration page of your CommentSold admin. - Click
Update Keys
. - Installation is complete.
CommentSold Live Checkout
- In the Sezzle configuration page of your CommentSold admin, enter the API Keys from your Sezzle Merchant Dashboard and uncheck the
Use Sandbox
checkbox, then save the configuration. - On your website, add an item to your cart, then proceed to
Checkout
and selectSezzle
as the payment method. - Click
Place Order
. - If you are redirected to the Sezzle checkout page, your integration is complete. Congratulations!
- Warning Don’t complete the payment. Your checkout is now live, so you will be charged if you complete.
Lightspeed
This guide describes how to integrate Sezzle into your Lightspeed website so that you can provide Sezzle as a payment option for your customers.
Sezzle’s Lightspeed App is certified and available here in the App Store.
After integrating Sezzle, your Lightspeed site will:
- Offer Sezzle as a payment option on the checkout page.
- Refund Sezzle payments from your Lightspeed backend.
- Display Sezzle promotional messaging.
- Authorize and capture payments.
Integration Steps Overview
- Install and configure the Sezzle Lightspeed App
- Test your integration
- (Optional) Sandbox Testing
Before You Begin
- You should have a Sezzle merchant account.
- Please visit our signup page if you don’t have an account.
Make sure you have the following Sezzle details handy.
(US/CA)
(EU)
Familiarize yourself with the transaction flow when buying with Sezzle.
Install the Sezzle Lightspeed App
- Log in to your Lightspeed back office.
- Navigate to
Apps > App Store
. - Search for
Sezzle
in the search bar and click on the Sezzle app. - Click on
Install App
in the top right corner. - Grant permission by clicking on
Grant access
. - On successful install, you will be redirected to Sezzle App.
Configure Sezzle
Navigate to the Sezzle App by clicking on Go to App
located at Apps > Purchased Apps > Sezzle
.
Account Verification
- Copy your
Public Key
andPrivate Key
from your Sezzle Merchant Dashboard (US/CA) or Sezzle Merchant Dashboard (EU), and paste them into the corresponding fields. - Click on
link sezzle account
to link your Sezzle account with your Lightspeed store.- The message
Account successfully linked
is displayed when the account is verified.
- The message
Settings
- Toggle the
Sezzle at Checkout
checkbox to enable (On
) or disable (Off
) Sezzle as a payment option in the checkout page. - Toggle the
Sezzle Widgets
checkbox to enable (On
) or disable (Off
) Sezzle widget in the PDP and Cart pages.
Payment Refund
- In your Lightspeed back office, go to
Orders > Orders
. - Select the order to be refunded.
- Click
Add Credit Invoice
.- Select the item and enter the quantity.
- Ensure that Status is set to
Not Paid
. - Click
Add
.
- Cancelling a
Paid
order will also refund the payments for thePaid
Invoices. - On successful refund:
- An invoice with the status of
Not Paid
will be created in theOrders > Invoices
section. - The Order Status will be displayed as
Refunded
in your Sezzle Merchant Dashboard.
- An invoice with the status of
Lightspeed Sandbox Testing
- A Lightspeed test store must be used for Sandbox testing.
- On your website, add an item to the cart, then proceed to
Checkout
and selectSezzle
as the payment method. - Click
Buy
to be redirected to the Sezzle checkout page. If prompted, sign in. - Enter the payment details using test data, then click
Complete Order
. - After the payment is completed on Sezzle, you should be redirected back to your website and see a successful payment page.
- Sandbox testing is complete. You can log in to your Sezzle Merchant Sandbox Dashboard (US/CA) or Sezzle Merchant Sandbox Dashboard (EU) to see the test order you just placed.
Lightspeed Live Checkout
- Installing the Sezzle App in a live Lightspeed store will result in live checkouts.
- On your website, add an item to your cart, then proceed to
Checkout
and selectSezzle
as the payment method. - Click
Buy
. - If you are redirected to the Sezzle checkout page, your integration is complete. Congratulations!
- Warning Don’t complete the payment. Your checkout is now live, so you will be charged if you complete it.
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.
Sezzle’s Magento 2 extension is certified in the marketplace and can also be downloaded from github.
After integrating Sezzle, your site will:
- Offer Sezzle as a payment option on the checkout page.
- Refund Sezzle payments from your Magento 2 order management system.
- Display Sezzle promotional messaging.
- Authorize and capture payments.
- Offer instant and delayed capture.
Integration Steps Overview
- Install and configure the Sezzle Magento 2 extension
- Test your integration
- (Optional) Sandbox Testing
Before You Begin
- You should have a Sezzle merchant account.
- Please visit our signup page (US/CA) or signup page (EU) if you don’t have an account.
- Make sure you have the following Sezzle details handy.
US/CA
EU
And familiarize yourself with the transaction flow when buying with Sezzle.
Install the Sezzle Magento 2 Extension
In the following section, [magento]
refers to your Magento 2 root directory.
Using the Composer
Go to the Magento 2 installation directory, then run the below commands:
composer require sezzle/sezzlepay
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy
php bin/magento cache:clean
Manual Method
- Download the .zip file from Sezzle’s github repository.
- Unzip the file
- Navigate to
Magento
[Magento]/app/code/
usingSFTP
orSSH
. - Copy
Sezzle
directory from unzipped folder to[Magento]/app/code/
. - Open a terminal window and run the following command to enable
Sezzle
:php bin/magento module:enable Sezzle_Sezzlepay
- Run the
Magento
setup upgrade:php bin/magento setup:upgrade
- Run the
Magento
Dependencies Injection Compile:php bin/`magento` setup:di:compile
- Run the
Magento
Static Content deployment:php bin/magento setup:static-content:deploy
- Log in to
Magento
Admin and navigate toSystem > Cache Management
. - Flush the cache storage by selecting
Flush Cache Storage
.
You can now directly navigate from the Configuration Page to get signed up for Sezzle
. To do so, you need to click on Register for Sezzle
which will redirect you to the Sezzle Merchant Signup
Page. If you have the details already, you can simply click on I've already set up Sezzle, I want to edit my settings
to move ahead.
- In your Magento 2
[Magento]/app/code/
directory, create a directory namedSezzle
. - Inside the new
Sezzle
directory, create a directory namedSezzlepay
. - Inside the new
Sezzlepay
directory, extract the files from this repository. - Open the command line and run these commands:
php bin/magento module:enable Sezzle_Sezzlepay
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy
- Log in to your Magento 2 admin and go to
System/Cache Management
. - Flush the cache storage by selecting
Flush Cache Storage
.
Upgrade the Magento 2 Extension
Using the Composer
- Open terminal and navigate to
Magento
root path. - Execute the following commands in the terminal:
composer update sezzle/sezzlepay
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy
php bin/magento cache:clean
Configure Sezzle
Payment Configuration
- In the
Magento
admin site, navigate toStores > Configuration > Sales > Payment Methods > Sezzle > Payment Settings
- Select the Payment Mode:
Live
, orSandbox
for testing. - Enter your
Merchant UUID
,Public Key
andPrivate Key
. These can be found at the Sezzle Merchant Dashboard (US/CA) or Sezzle Merchant Dashboard (EU). - Select the
Payment Action
.Authorize only
will only authorize payment and requires that the payment be captured later.Authorize and Capture
will perform both in a single step. - Set the
Merchant Country
as per the origin. - Set
Min Checkout Amount
to restrict Sezzle payment method below that amount. - Set
Payment from Applicable Countries
toSpecific Countries
. - Set
Payment from Specific Countries
toUnited States
orCanada
as Sezzle is currently available for US and Canada only. - Select
Enable Customer Tokenization
.Yes
prompts the customer to allow their account to be tokenized. See Customer tokenization - Save the configuration and clear the cache.
In-Context Configuration
- Set
Enable In-Context Solution
toYes
to enable In-Context Checkout. - Set
In-Context Checkout Mode
toIFrame
orPopUp
to select how Sezzle Checkout is hosted.
Settlement Report Configuration
- Set
Enable Settlement Reports
toYes
to enable the Settlement Reports Dashboard. - Set
Range
to a value based on which you want to fetch the Settlement Reports. - Set
Enable Automatic Syncing
to fetch the Settlement Reports asynchronously. (Note that this requirescron
to be enabled.) - Set Schedule and Time of Day for the automatic sync to run.
Widget Configuration
- Set
Enable Static Widget Module
toYes
to load the Sezzle Widget from your server, orNo
to load it from the Sezzle server. - Set
Enable Widget in PDP
toYes
when adding the widget script in the Product Display Page, helping to enable theSezzle Widget
Modal in PDP. - Set
Enable Widget in Cart Page
toYes
when adding the widget script in the Cart Page, helping to enableSezzle Widget
Modal in the Cart Page. - Save the configuration and clear the cache.
Developer Configuration
- Enable the log tracker to trace the
Sezzle
checkout process. - Set
Send Logs to Sezzle
toYes
to send the logs to Sezzle on a periodic basic. (Note that this requires cron to be enabled.) - You may download the latest logs by clicking on
Sezzle Log
. - Save the configuration and clear the cache.
Your store is now ready to accept payments through Sezzle.
Frontend Functionality
- When you have correctly set up
Sezzle
, you will seeSezzle
as a payment method in the checkout page. - Select
Sezzle
and continue. - Click
Continue to Sezzle
orPlace Order
to be redirected to theSezzle Checkout
to complete the checkout. If your account is tokenized, skip the next two steps, you will not be redirected to Sezzle. - [Optional] To tokenize your account in the Sezzle checkout, check the box
Approve {Store Name} to process payments from your Sezzle account for future transactions. You may revoke this authorization at any time in your Sezzle Dashboard
. - Click
Complete Order
to complete your purchase. - On successful order placement, you will be redirected to the order confirmation page.
Capture Payment
- If
Payment Action
is set toAuthorize and Capture
, capture will be performed instantly from the extension after order is created and validated inMagento
. - If
Payment Action
is set toAuthorize
, you will need to capture the payment manually from theMagento
admin using the following steps:- Go the order and click on
Invoice
. - Verify your input in the
Create Invoice
page and click onSave
to create the invoice. - This will automatically capture the payment in
Sezzle
.
- Go the order and click on
Refund Payment
- Go to
Sales > Orders
in theMagento
admin. - Select the order for which you want to refund the payment.
- Click on
Credit Memo
and verify your input in theCreate Credit Memo
page. - Save it to initiate the refund in
Sezzle
. - Check the
Order Status
in theSezzle Merchant Dashboard
.Refunded
indicates that payment has been fully refunded whilePartially Refunded
indicates that the payment has been partially refunded.
Release Payment
- Go to
Sales > Orders
in theMagento
admin. - Select the order for which you want to release the payment.
- Click on
Void
and confirm your action. - Check the
Order Status
inSezzle Merchant Dashboard
.Deleted due to checkout not being captured before expiration
indicates that the payment has been fully released. Magento does not support partial releases.
Order Verification in Magento Admin
- Log in to
Magento
admin, navigate toSales > Orders
, and select the order to verify. - If Order Status is
Processing
andTotal Paid
equalsGrand Total
, then payment was successfully captured bySezzle
. - If Order Status is
Pending
andTotal Paid
does not equalGrand Total
, then payment is authorized but yet not captured. - If Order Status is
Closed
, then payment has been refunded. - If Order Status is
Canceled
, then payment has been released.
Order Verification in Sezzle Merchant Dashboard
- Log in to
Sezzle Merchant Dashboard
, navigate toOrders
, and select the order to veriy. Approved
status indicates that payment was successfully captured bySezzle
.Authorized, uncaptured
indicates that payment was authorized but yet not captured.Refunded
status indicates that the payment was refunded.Deleted due to checkout not being captured before expiration
status indicates that either the payment was not captured before the authorization expired, or that the payment has been released.
Customer Tokenization Details
- Log in to
Magento
admin, navigate toCustomers > All Customers
, and select the customer to view tokenization details. - If the customer is tokenizard, the
Sezzle
tab will appear. - The
Customer UUID
,Expiration Date
andStatus
will appear on the tab.
Settlement Reports
- Log in to
Magento
admin and navigate toReports > Sales > Sezzle Settlement
. A list of recent Settlement Reports will be shown. - To make a quick sync, enter the
From
andTo
Date and click onSync
. - Click on
Download
from theAction
column to download a Settlement Report. - To view details of a particular Settlement Report, click on
View
from theAction
column. You may also download the Settlement Report details from the Settlement Report view. - You can download the Settlement Report in
CSV
orExcel
format.
Magento 2 Sandbox Testing
- In the
Sezzle
configuration page of yourMagento
admin, enter theSandbox
API Keys
from your Sezzle Merchant Sandbox Dashboard and set thePayment Mode
toSandbox
, and save the configuration. Make sure you are doing this on yourdev/staging
website. - On your website, add an item to the cart, then proceed to
Checkout
and selectSezzle
as the payment method. - To pay with Sezzle:
- If customer is not tokenized, click
Continue to Sezzle
. - If customer is tokenized, click
Place Order
. - If In-Context checkout, click
Pay with Sezzle
.
- If customer is not tokenized, click
- For In-Context checkout, the Sezzle checkout will be hosted in the configured mode,
iFrame
orPopup
. Otherwise, you will be redirected to the Sezzle checkout. - Sign In or Sign Up to continue.
- Enter the payment details using test data, then advance to the final page.
- Check the
Approve {Website Name} to process payments from your Sezzle account for future transactions. You may revoke this authorization at any time in your Sezzle Dashboard
to tokenize your account. - If your account is tokenized, the order will be placed without redirection. Otherwise you will be redirected to Sezzle Checkout to complete the purchase.
- After payment is completed at Sezzle, you will be directed to your site’s successful payment page.
Sandbox
testing is complete. You can log in to yourSezzle Merchant Sandbox Dashboard
to see the test order you just placed.
Magento 2 Live Checkout
- In the Sezzle configuration page of your Magento 2 admin, enter the API Keys from your Sezzle Merchant Dashboard and disable
Sandbox/Test
as theAPI Mode
, then save the configuration. - On your website, add an item to the cart, then proceed to
Checkout
and selectSezzle
as the payment method. - Click
Place Order
. - If you are redirected to the Sezzle checkout page, your integration is complete. Congratulations!
- Warning Don’t complete the payment. Your checkout is now live, so you will be charged if you complete it.
Troubleshooting
If testing was unsuccessful, review the following:
- Sezzle-Magento2 extension is the latest version.
- Sezzle extension is enabled.
- Go to
System
>Configuration
>Sales
>Payment Methods
>Sezzle
and ensureEnabled
dropdown is reflectingYes
.
- Go to
Merchant ID
was entered correctly.- API Keys were entered correctly.
- It is recommended to use the Copy icon in the Sezzle Merchant Dashboard (US/CA) or Sezzle Merchant Dashboard (EU) to avoid typos or extra spaces.
- If you have multiple accounts with Sezzle, the merchant ID and API Keys are tied to only one URL.
- It is recommended to use the Copy icon in the Sezzle Merchant Dashboard (US/CA) or Sezzle Merchant Dashboard (EU) to avoid typos or extra spaces.
- Cache Storage was flushed.
- Widget script is present on your website and reflects the
Merchant ID
from your Sezzle Merchant Dashboard (US/CA) or Sezzle Merchant Dashboard (EU).- Go to a product page on your website.
- Right-click then select
Inspect
. - In the
Elements
tab, search forwidget.sezzle
.
Mojo
This guide describes how to integrate Sezzle into your Mojo website so that you can provide Sezzle as a payment option for your customers. After integrating Sezzle, your site will:
- Offer Sezzle as a payment option on the checkout page.
- Refund Sezzle payments from your Mojo order management system.
- Display Sezzle promotional messaging.
- Authorize and capture payments.
Integration Steps Overview
- Add Sezzle to your store as a payment method
- Test your integration
Before You Begin
- You should have a Sezzle merchant account.
Make sure you have the following Sezzle details handy.
US/CA
EU
Familiarize yourself with the transaction flow when buying with Sezzle.
Add Payment Method
- Log into your Mojo admin account and navigate to the
Integrations
tab. - Select Payment Systems in the dropdown menu and click on
Sezzle
in the next window. - Toggle Enable to ‘ON’.
- Next, toggle Test Mode to ‘OFF’ unless you are testing your integration in Sandbox. For Sandbox testing instructions, see Mojo sandbox testing.
- Next, enter your Sezzle Public and Private Key within the appropriate fields.
- In order to ensure consistency between your webpage offers and payment options upon final checkout, take a moment to navigate to your Site Settings to enable or disable those features that you want enabled with Sezzle.
- NOTE: the Hide pay-over-time solutions switch will be automatically hidden for those customers that choose the multi-pay order option.
- Once satisfied with your transaction flow, click the blue Save Changes button.
Mojo Sandbox testing
- In the
Sezzle
Payment Systems configuration page of yourIntegrations
tab, enter the Sandbox API Keys from your Sezzle Merchant Sandbox Dashboard. - Next, toggle Test Mode to ‘ON’, then save the configuration. Make sure you are doing this on your
dev
/staging
website. - On your website, add an item to the cart, then proceed to
Checkout
and selectSezzle
as the payment method. - Complete the Mojo checkout process, and you should be redirected to the Sezzle checkout page. If prompted, sign in.
- Enter the payment details using test data, then click
Complete Order
. - After the payment is completed on Sezzle, you should be redirected back to your website and see a successful payment page.
- Sandbox testing is complete. You can log in to your Sezzle Merchant Sandbox Dashboard to see the test order you just placed.
Mojo Live Checkout
- On your store website, add an item to your cart, then proceed to check out and select
Sezzle
as the payment method. - Follow the Mojo checkout process until you are redirected to Sezzle.
- If you are redirected to the Sezzle checkout page, your integration is complete. Congratulations!
Warning: Don’t complete the payment. Your checkout is now live, so you will be charged if you complete it.
Salesforce Commerce Cloud
This guide describes how to integrate Sezzle into your Salesforce Commerce Cloud website so that you can provide Sezzle as a payment option for your customers. This integration supports sites built with both the SiteGenesis and Reference Architecture. After integrating Sezzle, your site will:
- Offer Sezzle as a payment option on the checkout page.
- Refund Sezzle payments from your order management system.
- Display Sezzle promotional messaging.
- Authorize and capture payments.
Please contact our team at dev@sezzle.com to request installation documentation for the Salesforce cartridge.
Wix
This guide describes how to integrate Sezzle into your Wix website so that you can provide Sezzle as a payment option for your customers. After integrating Sezzle, your site will:
- Offer Sezzle as a payment option on the checkout page.
- Refund Sezzle payments from your Wix order management system.
- Display Sezzle promotional messaging.
- Authorize and capture payments.
Integration Steps Overview
- Add Sezzle to your store as a payment method
- Test your integration
Before You Begin
- You should have a Sezzle merchant account.
- Make sure you have the following Sezzle details handy.
- Familiarize yourself with the transaction flow when buying with Sezzle.
Add Payment Method
- From your Wix store dashboard, select
Settings
, andAccept Payments
. - Choose the
See More Payment Options
link at the bottom of the page. - Locate Sezzle in the list, and choose
Connect
. This takes you to the Connect Sezzle page. - Enter your API Keys from the Sezzle Merchant Dashboard, and choose Connect. Sezzle will now be available as a payment method at checkout.
Wix Live Checkout
- On your store website, add an item to your cart, then proceed to
Checkout
and selectSezzle
as the payment method. - Follow the Wix checkout process to the final step and choose
Place Order
. - If you are redirected to the Sezzle checkout page, your integration is complete. Congratulations!
Warning: Don’t complete the payment. Your checkout is now live, so you will be charged if you complete it.
Troubleshooting
For account connection problems, check the following:
- API Keys were entered correctly.
- To avoid typos or extra spaces, use the Copy icon in the Sezzle Merchant Dashboard.
- If you have multiple accounts with Sezzle, each store has its own merchant ID and API Keys that are tied to the store’s URL.
If Sezzle does not appear as a payment option during live testing:
- Ensure that Sezzle is activated as a payment provider on your site.
- Go to
Settings
>Accept Payments
and ensure that “Accepting Payments” is displayed for Sezzle.
- Go to
Shopware 5
This guide describes how to integrate Sezzle into your Shopware 5 website so that you can provide Sezzle as a payment option for your customers. Additionally, it includes steps to upgrade existing integrations to the latest version of the plugin.
Sezzle’s Shopware 5 plugin can be Download from github.
After integrating Sezzle, your site will:
- Offer Sezzle as a payment option on the checkout page.
- Refund Sezzle payments from your Shopware 5 backend.
- Authorize and capture payments.
- Offer instant and delayed capture.
Integration Steps Overview
- Install and configure the Sezzle Shopware 5 Plugin
- Test your integration
- (Optional) Sandbox Testing
Before You Begin
- You should have a Sezzle merchant account.
- Please visit our signup page if you don’t have an account.
Make sure you have the following Sezzle details handy.
US/CA
EU
Familiarize yourself with the transaction flow when buying with Sezzle.
Install the Sezzle Shopware 5 Plugin
In the following section, [Shopware]
refers to your Shopware 5 root directory.
Using the Composer
Go to the Shopware 5 installation directory, then run the below commands:
- Open terminal and navigate to
Shopware
root path. - Run the below command for the adding the plugin into your codebase:
composer require sezzle/shopware5
Manual Method
- Download the .zip or tar.gz file from
Sezzle's
github repository. - Unzip the file.
- Navigate to
Shopware
[Shopware]/custom/plugins/
either throughSFTP
orSSH
. - Copy
SwagPaymentSezzle
directory from unzipped folder to[Shopware]/custom/plugins/
. - Log in to
Shopware 5
Backend and navigate toConfiguration > Plugin Manager > Management > Installed
. - Find
Sezzle
from theUninstalled
list and click on the+
button to install the plugin. - Once installed, you will see
Sezzle
underInactive
list. Click on thex
button to activate the plugin. - After successful activation, you will be able to see
Sezzle
underConfiguration > Payment Methods
.
Upgrade the Shopware 5 Plugin
Using the Composer
- Change the version number of the
sezzle/sezzlepay
insidecomposer.json
. - Open terminal and navigate to
Shopware
root path. - Run the following command for the updating the plugin to a newer version:
composer update sezzle/sezzlepay
Manual Method
- Download the .zip or tar.gz file from
Sezzle's
github repository. - Unzip the file.
- Delete the contents from
[Shopware]/custom/plugins/SwagPaymentSezzle
. - Copy the contents of
SwagPaymentSezzle
directory from unzipped folder to[Shopware]/custom/plugins/SwagPaymentSezzle/
. - Log in to
Shopware
Backend and navigate toConfiguration > Cache/performance
. - Flush the cache storage by selecting
Clear shop cache
.
Configure Sezzle
Payment Configuration
- Make sure you have the
Merchant UUID
and theAPI Keys
from the Sezzle Merchant Dashboard (US/CA) or Sezzle Merchant Dashboard (EU). You must be registered with Sezzle (US/CA) or Sezzle (EU) to access the Merchant Dashboard. - Navigate to
Customers > Payments > Sezzle > Settings
in yourShopware
Backend. - Enable
Sezzle
by checking theEnable for this shop
checkbox. - Set the
Public Key
andPrivate Key
. - For testing, enable the Sandbox mode by checking the
Enable sandbox
checkbox. - You can also verify your
API Keys
by clicking on theTest API Settings
button. - Set the
Merchant UUID
. - Set the
Merchant Location
as per the store origin. - Check the
Enable Tokenization
checkbox to enable customer tokenization in the Sezzle checkout. If the customer agrees to be tokenized, then future checkouts for this customer will not require a redirect to Sezzle. See Customer tokenization - Set
Payment Action
asAuthorize only
for doing payment authorization only andAuthorize and Capture
for doing instant capture. - Check the
Enable Widget in PDP
checkbox to add the widget script and theSezzle Widget
Modal to the Product Display Page. - Check the
Enable Widget in Cart
checkbox to add the widget script and theSezzle Widget
Modal to the Cart Page. - Check the
Display errors
checkbox for showing upSezzle
related error code in the web URL on failure. - Set
Logging
toERROR
to log only error messages orALL
to log all messages, including errors, warnings, and notices. - Save the settings and clear the cache.
Your store is now ready to accept payments through Sezzle.
Frontend Functionality
- If you have successfully installed the Sezzle plugin, then Sezzle will be included as a payment method in the checkout page.
- Select
Sezzle
and continue. - Once you click
Complete Payment
, you will be redirected toSezzle Checkout
to complete the checkout. Note: If your account is already tokenized, skip the next two steps as you will not be redirected to Sezzle. - [Optional] On the final page of Sezzle Checkout, check the
Approve {Store Name} to process payments from your Sezzle account for future transactions. You may revoke this authorization at any time in your Sezzle Dashboard
to tokenize your account. - Finally, click on
Complete Order
to complete your purchase. - On successful order placement, you will be redirected to the order confirmation page.
Capture Payment
- If
Payment Action
is set toAuthorize and Capture
, capture will be performed instantly from the plugin after order is created and validated inShopware
. - If
Payment Action
is set toAuthorize
, capture needs to be performed manually from theShopware
backend. Follow the below steps to capture.- Go the order and click on
Sezzle
tab. - Enter a value in
Amount
field and click onCapture
to capture the payment inSezzle
.
- Go the order and click on
Refund Payment
- Go the order and click on
Sezzle
tab. - Enter a value in
Amount
field and click onRefund
to refund the payment inSezzle
.
Release Payment
- Go the order and click on
Sezzle
tab. - Enter a value in
Amount
field and click onRelease
to release the payment inSezzle
.
Order Verification in Shopware Backend
Merchants should always check the payment status and amount of all orders. The following steps ensure that each action has been completed as expected.
- Log in to
Shopware
admin and navigate toCustomers > Orders
. - Proceed into the corresponding order.
- Payment is successfully captured by
Sezzle
when:- Current Payment Status is
Completely Paid
. Capture Amount
equals theAuth Amount
.
- Current Payment Status is
- Payment is only authorized when:
- Current Payment Status is
Open
. Auth Amount
equals theOrder Amount
.Capture Amount
equals0
.
- Current Payment Status is
- Payment is refunded when:
- Current Payment Status is
Re-crediting
. Refund Amount
is equal to or less than theCapture Amount
.
- Current Payment Status is
- Payment is released when:
- Current Payment Status is
The process is cancelled for a full release or Open for a partial release
. - Amount will be deducted from
Auth Amount
and should appear inReleased Amount
.
- Current Payment Status is
Order Verification in Sezzle Merchant Dashboard
- Log in to
Sezzle Merchant Dashboard
and navigate toOrders
. - Proceed into the corresponding order.
- Payment successfully captured has a status of
Approved
. - Payment authorized but not captured has a status of
Authorized, uncaptured
. - Payment refunded has a status of
Refunded
orPartially refunded
. - Payment released or not captured before the authorization expired has a status of
Deleted due to checkout not being captured before expiration
.
Customer Tokenization Details
- Log in to
Shopware
Backend and navigate toCustomers > Customers
. - Select customer to view tokenization details.
Sezzle Customer UUID
,Sezzle Customer UUID Expiry
andSezzle Customer UUID Status
will appear underFree text fields
.
Shopware 5 Sandbox Testing
- In the
Sezzle
settings page of yourShopware
Backend, enter theSandbox
API Keys
from your Sezzle Sezzle Merchant Dashboard (US/CA) or Sezzle Merchant Dashboard (EU) and check theEnable sandbox
checkbox, then save the configuration. Make sure you are doing this on yourdev/staging
website. - On your website, add an item to the cart, then proceed to
Checkout
and selectSezzle
as the payment method. - Once you click
Complete Payment
, you will be redirected toSezzle Checkout
to complete the checkout. Note: If your account is already tokenized, skip the next four steps as you will not be redirected to Sezzle. - Sign In or Sign Up to continue.
- Enter the payment details using test data, then move to final page.
- [Optional] Check the
Approve {Store Name} to process payments from your Sezzle account for future transactions. You may revoke this authorization at any time in your Sezzle Dashboard
to tokenize your account. - Finally, click on
Complete Order
to complete your purchase. Sandbox
testing is complete. You can log in to yourSezzle Merchant Sandbox Dashboard
to see the test order you just placed.
Shopware 5 Live Checkout
- In the
Sezzle
settings page of yourShopware
Backend, enter theAPI Keys
from your Sezzle Merchant Dashboard (US/CA) or Merchant Dashboard (EU) and uncheck theEnable sandbox
checkbox, then save the configuration. - On your website, add an item to the cart, then proceed to
Checkout
and selectSezzle
as the payment method. - Click
Complete Payment
. - If you are redirected to the Sezzle checkout page, your integration is complete. Congratulations!
- Warning Don’t complete the payment. Your checkout is now live, so you will be charged if you complete it.
Troubleshooting
Sezzle
plugin creates logs ofSezzle
action.- In the event that
Merchant Success
andSupport
teams are unable to resolve any issue, the Merchant may request that these logs be forwarded to thePlatform Integrations
team for further troubleshooting.. - Logs are named as
plugin_dev-<current-date>.log
. To facilitate troubleshooting, we recommend sending thecore_dev-<current-date>.log
as well.. - Logs can be find in
[Shopware]/var/log/
.
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:
- Offer Sezzle as a payment option on the checkout page.
- Refund Sezzle payments from your NopCommerce order management system.
- Authorize and capture payments.
- Offer instant and delayed capture.
Integration Steps Overview
- Install and configure the Sezzle NopCommerce extension
- Test your integration
- (Optional) Sandbox Testing
Before You Begin
- You should have a Sezzle merchant account.
- Please visit our signup page (US/CA) or signup page (EU) if you don’t have an account.
Make sure you have the following Sezzle details handy.
US/CA
EU
Familiarize yourself with the transaction flow when buying with Sezzle.
Install the Sezzle NopCommerce Extension
Go to https://www.nopcommerce.com/sezzle and click Get Extension
.
Admin Configuration
- Go to
Configuration
>Local Plugins
. - Click
Upload Plugin or Theme
and select the downloaded zipped file per the instructions given. - After the extension has been uploaded, click
Install
. - Under
Configuration
, go toPayment Methods
and then clickConfigure
underSezzle
. - Click
Edit
from thePayment Method
list. - Copy your
Merchant ID
from your Sezzle Merchant Dashboard (US/CA) or Sezzle Merchant Dashboard (EU), and paste it into the corresponding field in the Sezzle configuration page of your NopCommerce admin. - Copy your
Public Key
andPrivate Key
from your Sezzle Merchant Dashboard (US/CA) or Sezzle Merchant Dashboard (EU), and paste them into the corresponding fields in the Sezzle configuration page of your NopCommerce admin. - Set
Transaction Mode
to eitherAuthorize
orAuthorize and Capture
. - Save the configuration.
- To restrict Sezzle usage based on billing country, go to
Configuration
>Payment Restrictions
. - Choose the country you want to restrict for Sezzle. Please note that Sezzle is currently available for customers from
The United States
andCanada
. You may wish to restrict all countries where Sezzle is not available. - Integration is complete.
NopCommerce Sandbox Testing
- In the Sezzle configuration page of your NopCommerce admin, enter the Sandbox API Keys from your Sezzle Merchant Sandbox Dashboard (US/CA) or Sezzle Merchant Sandbox Dashboard (EU) and check the
Use Sandbox
checkbox, then save the configuration. Make sure you are doing this on yourdev
/staging
website. - On your website, add an item to the cart, then proceed to
Checkout
and selectSezzle
as the payment method. - Click
Confirm
and you should be redirected to the Sezzle checkout page. If prompted, sign in. - Enter the payment details using test data, then click
Complete Order
. - After the payment is completed on Sezzle, you should be redirected back to your website and see a successful payment page.
- Sandbox testing is complete. You can log in to your Sezzle Merchant Sandbox Dashboard (US/CA) or Sezzle Merchant Sandbox Dashboard (EU) to see the test order you just placed.
NopCommerce Live Checkout
- In the Sezzle configuration page of your NopCommerce admin, enter the API Keys from your Sezzle Merchant Dashboard (US/CA) or Sezzle Merchant Dashboard (EU) and uncheck the
Use Sandbox
checkbox, then save the configuration. - On your website, add an item to the cart, then proceed to
Checkout
and selectSezzle
as the payment method. - Click
Continue
thenConfirm
. - If you are redirected to the Sezzle checkout page, your integration is complete. Congratulations!
- Warning Don’t complete the payment. Your checkout is now live, so you will be charged if you complete.
Shopify
This guide describes how to integrate Sezzle into your Shopify website so that you can provide Sezzle as a payment option for your customers. After integrating Sezzle, your Shopify site will:
- Offer Sezzle as a payment option on the checkout page.
- Refund Sezzle payments from your Shopify order management system.
- Display Sezzle promotional messaging.
- Authorize and capture payments.
Integration Steps Overview
Before You Begin
- You should have a Sezzle merchant account.
- Please visit our signup page if you don’t have an account.
Make sure you have the following Sezzle details handy.
US/CA
EU
Familiarize yourself with the transaction flow when buying with Sezzle.
Install the Sezzle Shopify App
- Log in to your website’s Shopify admin.
- In your Sezzle Merchant Dashboard Setup Checklist (US/CA) or Sezzle Merchant Dashboard Setup Checklist (EU), click
Download Shopify App
. - Click
Get the App
. - Click
Install App
.
Configure Widgets
- Within the Sezzle app, enter your Public API Key and click
link sezzle account
.
- Once your account is linked, click
add widgets
to add widgets to your shop. This process may take a minute.
- After widgets have been added, navigate to a product page to confirm that the Sezzle widget has been added.
- If you ever need to remove Sezzle widgets from your shop, click the
remove widgets
button within the Sezzle app.
Note: If the Sezzle app is unable to automatically add widgets to your shop, one of our team members will automatically be notified and will work to manually add widgets to your shop within 7 business days.
Install the Sezzle Payment Gateway
- In your Sezzle Merchant Dashboard Setup Checklist (US/CA) or Sezzle Merchant Dashboard Setup Checklist (EU), click
Connect Sezzle to Shopify
. - Click
Instructions
. - Click the first hyperlink on the new page to enable the gateway for your shop. If prompted, select your Shopify store.
- Click
Install Payment Provider
.
Admin Configuration
- In your Shopify admin, go to
Settings
>Payment Providers
.
- Under
Alternative Payment Methods
, clickChoose Alternative Payment
.
- Search for and click on
Sezzle
.
- Copy your
Public Key
andPrivate Key
from your Sezzle Merchant Dashboard (US/CA) or Sezzle Merchant Dashboard (EU), and paste them into the corresponding fields in the Sezzle configuration page of your Shopify admin. - Click the
Activate Sezzle
button.
- Installation is complete.
Shopify Live Checkout
- In the Sezzle configuration page of your Shopify admin, enter the API Keys from your Sezzle Merchant Dashboard (US/CA) or Sezzle Merchant Dashboard (EU) and uncheck the
Enable Test Mode
checkbox, then save the configuration. - On your website, add an item to your cart, then proceed to
Checkout
and selectSezzle
as the payment method. - Click
Place Order
. - If you are redirected to the Sezzle checkout page, your integration is complete. Congratulations!
- Warning Don’t complete the payment. Your checkout is now live, so you will be charged if you complete.
Troubleshooting
If testing was unsuccessful, review the following:
- Sezzle Shopify extension is the most updated version.
- Go to
Apps
>Sezzle
, then clickAbout
. If there is an option to upgrade, do so now.
- Go to
- Sezzle gateway is activated.
- Go to
Settings
>Payment Providers
and ensure “Sezzle is active” is listed under theAlternative Payment Methods
section.
- Go to
- API Keys were entered correctly.
- It is recommended to use the Copy icon in the Sezzle Merchant Dashboard (US/CA) or Sezzle Merchant Dashboard (EU) to avoid typos or extra spaces.
- If you have multiple accounts with Sezzle, the merchant ID and API Keys are tied to only one URL.
- Widget script is present on your website and reflects the
Merchant ID
from your Sezzle Merchant Dashboard (US/CA) or Sezzle Merchant Dashboard (EU).- Go to a product page on your website.
- Right-click then select
Inspect
. - In the
Elements
tab, search forwidget.sezzle
.
Manual Theme Integration
If the Shopify app fails to maintain the widget script on the product pages, or to add the script manually for additional pages, complete the following steps:
- Go to
Sales Channels
>Online Store
>Themes
. - Click
Actions
, then selectEdit Code
. - In the
Code Explorer
, go to theTemplates
folder and select theproduct.liquid
file. - Copy+paste the script to the very bottom of the file, then click
Save
. - Repeat the previous step in the
cart.liquid
file.
Note: If you have additional custom product templates, step 4 will need to be repeated for each file, or the script added to a global file, such as layout/theme.liquid
.
The script to be inserted into your webpage is as follows:
Template:
<script src="https://widget.sezzle.com/v1/javascript/price-widget?uuid={sezzle_merchant_uuid}"></script>
Example:
<script src="https://widget.sezzle.com/v1/javascript/price-widget?uuid=12a34bc5-6de7-890f-g123-4hi5678jk901"></script>
For assistance with widget configuration, click Request Addition of Widgets
in the widget step of your Sezzle Merchant Dashboard Setup Checklist (US/CA) or Sezzle Merchant Dashboard Setup Checklist (EU).
Uninstall Steps
- Go to
Apps
. - Under Sezzle, click
Delete
. - Go to
Settings
>Payment Providers
. - Under
Alternative Payment Methods
, findSezzle
and clickEdit
. - Click
Deactivate Sezzle
. - Click
Deactivate Sezzle
to confirm.
Inventory Locking
Our Shopify integration has an optional feature to prevent overselling while a customer is checking out with Sezzle. To enable this feature, please reach out to our Merchant Success team at accounts@sezzle.com.
Shopify Sandbox Testing
Sezzle offers an alternate sandbox payment gateway that can be used to test your integration. If you would like to install this gateway for testing, please reach out to our Merchant Success team at accounts@sezzle.com.
Prestashop
Download the Sezzle module from the PrestaShop Marketplace.
- In your PrestaShop back office, go to Modules > Module Manager
.
- Select ‘Upload a module’ , and select the .zip file that you downloaded on
your computer.
- Go to Payment > Payment methods
.
- Find ‘Sezzle’, and select ‘Enable Module’.
- The plugin is now ready to be configured.
- To learn how to install the plugin after you’ve downloaded it, you can also
watch the official PrestaShop video tutorial.
Configuration
In your PrestaShop back office, go to Modules > Module Manager
.
In the Payment section, find Sezzle and select Configure. Fill out the following fields:
- Live Mode : Enable or Disable for testing.
- Merchant Id : Enter the Merchant Id that you got from Merchant
Dashboard.
- Public Key : Enter the Public Key that you got from Merchant
Dashboard.
- Private Key : Enter the Private Key that you got from Merchant
Dashboard.
- Payment Action : Authorize and Capture for instant capture and
Authorize Only for just authorization(needs to be captured manually
from backoffice).
- Allow Customer Tokenization : Enable to offer returning shoppers a
faster checkout experience by saving their card details.
- Enable Widget : Enable for showing Sezzle widget in PDP and Cart
Page.
Payment Capture
Payment will be automatically captured during the checkout process.
- Payment Action as Authorize Only
- In your PrestaShop backoffice, go to Orders > Orders
.
- Select the order for which you want to capture the payment.
- In the Payment
section right below, enter and below information
and click Add
- Date
- Payment method
- Amount
- Change the Order Status to Payment Accepted
if capture is
successful.
Payment Refund
- In your PrestaShop backoffice, go to
Orders > Orders
. - Select the order for which you want to refund the payment.
- Click on
Partial Refund
, enter the amount and click onPartial Refund
right below - For Full Refund, you have to fill up all the order related amounts in
respective places.
- Change the Order Status to
Refunded
only if full refund is successful.
Payment Release
- In your PrestaShop backoffice, go to
Orders > Orders
. - Select the order for which you want to refund the payment.
- Change the Order status to
Cancelled
, and click onUpdate Status
.
Upgrading the module
If you are already using an older Sezzle PrestaShop module version earlier and want to use the latest version, proceed as follows:
- Uninstall the existing Sezzle module.
- In the Upgrade drop-down menu select Uninstall.
- Manually remove the /sezzle folder from the /modules folder(if not removed during uninstall action).
- Install the latest plugin version as described in Installation step.
- Configure the latest plugin version as described in Configuration step.
Reinstallation
When you reinstall the plugin, the plugin takes care of most of its configurations and functions except for the items listed below. We recommend that you follow the steps here to make sure that when you reinstall the plugin, it won’t pick up settings from a previous installation.
Order status
- The plugin keeps the Awaiting Sezzle Payment
order status
because existing orders might still use them. If you would also like to remove these statuses, first make sure that these are no longer in use.
- To check if the status are is in use:
- Go to the Orders
page in your Prestashop admin panel.
- Filter the orders for the Awaiting Sezzle Payment
order status.
- If there are any, move them to another status that you would like to use.
When there are no more orders using this status, you can delete the status from your order status list. - Configurations
- The plugin keeps the AWAITING_SEZZLE_PAYMENT
configuration fields in your database in case there are still orders in your system with the corresponding statuses. If you have already removed the status, you can also remove these leftover configurations.
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:
- Offer Sezzle as a payment option on the checkout page.
- Refund Sezzle payments from your WooCommerce order management system.
- Display Sezzle promotional messaging.
- Authorize and capture payments.
Integration Steps Overview
- Install and configure the Sezzle WooCommerce extension
- Test your integration
- (Optional) Sandbox Testing
Before You Begin
- You should have a Sezzle merchant account.
- Please visit our signup page (US/CA) or signup page (EU) if you don’t have an account.
Make sure you have the following Sezzle details handy.
US/CA
EU
Familiarize yourself with the transaction flow when buying with Sezzle.
Install the Sezzle WooCommerce Extension
- Log in to your website’s Wordpress admin.
- Ex: your-website.com/wp-admin
- Ex: your-website.com/wp-admin
- In the left sidebar, click
Plugins
>Add New
. - Search for
Sezzle
. - Click
Install Now
. - Click
Activate
.
Admin Configuration
- In the left sidebar, click
WooCommerce
>Settings
. - Select the
Payments
tab. - Click the
Manage
button forSezzle
. - Check the
Enable/Disable
checkbox for enabling Sezzle. - Check the
Payment option availability in other countries
if you want to allow Sezzle outside ofUS
andCanada
.- Note, Sezzle operates only in
US
andCanada
. Be sure to check this option.
- Note, Sezzle operates only in
- Set
Merchant ID
as received from theBusiness
section of Sezzle Merchant Dashboard. - Copy your
Private Key
andPublic Key
from your Sezzle Merchant Dashboard (US/CA) or Sezzle Merchant Dashboard (EU), and paste them into the corresponding fields. - Set
Minimum Checkout Amount
if you want to restrict Sezzle based on a minimum order total. - Set the
Transaction Mode
asLive
for production andSandbox
for sandbox testing mode. - Check the
Show Sezzle widget in product pages
checkbox for adding widget script in the Product Display Page, which allows enabling Sezzle Widget Modal in PDP. - Configure the installment plan widget under
Installment Plan Widget Configuration
settings- Check the
Enable Installment Widget Plan in Checkout page
checkbox for enabling installment widget plan. - Set the
Order Total Container Class Name
. Default iswoocommerce-Price-amount
. - Set the
Order Total Container Parent Class Name
. Default isorder-total
.
- Check the
- Check the
Enable Logging
checkbox for logging Sezzle checkout related data. This is helpful for debugging issues, if encountered. - Click
Save Changes
.
WooCommerce Sandbox Testing
- In the
Sezzle
configuration page of your WooCommerce admin, enter the Sandbox API Keys from your Sezzle Merchant Sandbox Dashboard (US/CA) or Sezzle Merchant Sandbox Dashboard (EU) and set theTransaction Mode
toSandbox
, then save the configuration. Make sure you are doing this on yourdev
/staging
website. - On your website, add an item to the cart, then proceed to
Checkout
and selectSezzle
as the payment method. - Click
Place Order
, and you should be redirected to the Sezzle checkout page. If prompted, sign in. - Enter the payment details using test data, then click
Complete Order
. - After the payment is completed on Sezzle, you should be redirected back to your website and see a successful payment page.
- Sandbox testing is complete. You can log in to your Sezzle Merchant Sandbox Dashboard to see the test order you just placed.
WooCommerce Live Checkout
- In the
Sezzle
configuration page of your WooCommerce admin, enter the API Keys from your Sezzle Merchant Dashboard (US/CA) or Sezzle Merchant Dashboard (EU) and set theTransaction Mode
toLive
, then save the configuration. - On your website, add an item to the cart, then proceed to
Checkout
and selectSezzle
as the payment method. - Click
Place Order
. - If you are redirected to the Sezzle checkout page, your integration is complete. Congratulations!
- Warning Don’t complete the payment. Your checkout is now live, so you will be charged if you complete.
Important Note on Order Fulfillment
Before shipping the order, ensure that the Order Notes in the WooCommerce interface show the order status is Processing and include Payment approved by Sezzle. When these notes exist, you know that the customer completed the checkout at Sezzle, and you will be paid for the order.
WooCommerce will create an order regardless of whether the customer completes the checkout at Sezzle. Check the Order Notes and do not fulfill orders where the Sezzle checkout is not completed.
Troubleshooting
If testing was unsuccessful, review the following:
- Sezzle WooCommerce extension is the most updated version.
- Go to
Plugins
>Installed Plugins
, then clickView Details
next to theSezzle WooCommerce Payment
. If there is an option to upgrade, do so now.
- Go to
- Sezzle extension is activated.
- Go to
WooCommerce
>Settings
and ensure the switch is turned On.
- Go to
Merchant ID
was entered correctly.- API Keys were entered correctly.
- It is recommended to use the Copy icon in the Sezzle Merchant Dashboard (US/CA) or Sezzle Merchant Dashboard (EU) to avoid typos or extra spaces.
- If you have multiple accounts with Sezzle, the merchant ID and API Keys are tied to only one URL.
Show Sezzle widget in product pages
box is checked.- Widget script is present on your website and reflects the
Merchant ID
from your Sezzle Merchant Dashboard (US/CA) or Sezzle Merchant Dashboard (EU).- Go to a product page on your website.
- Right-click then select
Inspect
. - In the
Elements
tab, search forwidget.sezzle
.
Uninstall Steps
- Go to
Plugins
>Installed Plugins
. - Under
Sezzle WooCommerce Payment
, clickDeactivate
then clickDelete
.
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:
- Offer Sezzle as a payment option on the checkout page.
- Refund Sezzle payments from your Zoey order management system.
- Authorize and capture payments.
Integration Steps Overview
Before You Begin
- You should have a Sezzle merchant account.
- Please visit our signup page if you don’t have an account.
- Make sure you have the following Sezzle details handy.
- Familiarize yourself with the transaction flow when buying with Sezzle.
Install the Sezzle Zoey Extension
Go to https://www.zoey.com/apps/sezzle/ and click Get App
.
Admin Configuration
- Go to
Set-up
>Payment Methods
>Sezzle
. - Click
Configure
. - Configure the extension as follows:
- Set
Enabled
toYes
. - Copy your
Merchant ID
from your Sezzle Merchant Dashboard, and paste it into the corresponding field in the Sezzle configuration page of your Zoey admin. - Copy your
Public Key
andPrivate Key
from your Sezzle Merchant Dashboard, and paste them into the corresponding fields in the Sezzle configuration page of your Zoey admin. - If you want the widget script added to the Product Display Page, set
Add Widget Script in PDP
toYes
- If you want the widget script added to the Cart Page, set
Add Widget Script in Cart Page
toYes
- Set
Payment from Applicable Countries
toSpecific Countries
. - Set
Payment from Specific Countries
toUnited States
orCanada
as applicable. - Save the configuration.
- Set
- Click
Advanced/Refresh Your Store
. Installation is complete.
Zoey Sandbox Testing
In the Sezzle configuration page of your Zoey admin, enter the Sandbox API Keys from your Sezzle Merchant Sandbox Dashboard and set the
API Mode
toSandbox/Test
, then save the configuration. Make sure you are doing this on yourdev
/staging
website.On your website, add an item to the cart, then proceed to
Checkout
and selectSezzle
as the payment method.Click
Continue
thenPlace Order
and you should be redirected to the Sezzle checkout page. If prompted, sign in.Enter the payment details using test data, then click
Complete Order
.After the payment is completed on Sezzle, you should be redirected back to your website and see a successful payment page.
Sandbox testing is complete. You can log in to your Sezzle Merchant Sandbox Dashboard to see the test order you just placed.
Zoey Live Checkout
- In the Sezzle configuration page of your Zoey admin, enter the API Keys from your Sezzle Merchant Dashboard and set the
API Mode
toLive
, then save the configuration. - On your website, add an item to your cart, then proceed to
Checkout
and selectSezzle
as the payment method. - Click
Continue
thenPlace Order
. - If you are redirected to the Sezzle checkout page, your integration is complete. Congratulations!
- Warning Don’t complete the payment. Your checkout is now live, so you will be charged if you complete.
Canada In-Store
In-Store Direct API - Canadian Merchants
Overview
The integrated POS checkout API enables merchants to send a Sezzle Checkout link to a customer via text or email and then receive payment updates on their POS when the checkout has been completed.


The customer can click on the Sezzle URL in the text or email to complete the checkout:
Customer experience for new Sezzle users
Customer experience for existing Sezzle users
Direct API
Checkout Steps
- Merchant creates Sezzle checkout
- API Link
- Set order
intent
toAUTH
- The customer checkout is texted or emailed as set in
send_checkout_url
- Set order
- API Link
- Sezzle returns order uuid and checkout URL
- Customer receives Sezzle URL via text or email to check out
- Customer completes the Sezzle checkout
- Merchant receives order-complete notification
- (optional) Update the order reference
- Capture the payment
- (optional) Expire the checkout manually
- Delete the checkout if the customer has not completed the checkout and the merchant has canceled the order
- API Link
- (optional) Refund the order