Sezzle Order API
The Order API from Sezzle — 7 operation(s) for order.
The Order API from Sezzle — 7 operation(s) for order.
openapi: 3.0.1
info:
title: Sezzle API v2 Bearer Authentication Order API
description: This Sezzle API is for merchants who want to accept Sezzle as a payment option
termsOfService: https://legal.sezzle.com
version: 2.0.0
x-logo:
url: https://media.sezzle.com/branding/2.0/png/Logo_WhiteWordmark_500x126.png
backgroundColor: '#392558'
servers:
- url: https://sandbox.gateway.sezzle.com/v2
description: development server, usa, ca
- url: https://gateway.sezzle.com/v2
description: production server, usa, ca
security:
- Bearer: []
tags:
- name: Order
paths:
/order/{order_uuid}:
get:
tags:
- Order
summary: Get order details
operationId: getV2Order
parameters:
- name: order_uuid
in: path
description: Order UUID
required: true
schema:
type: string
responses:
'200':
description: Successful operation
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SessionStatus'
- type: object
properties:
intent:
$ref: '#/components/schemas/Intent'
reference_id:
type: string
description:
type: string
checkout_expiration:
type: string
format: date-time
checkout_status:
$ref: '#/components/schemas/CheckoutStatus'
metadata:
type: object
additionalProperties:
type: string
order_amount:
$ref: '#/components/schemas/Price'
customer:
$ref: '#/components/schemas/Customer'
authorization:
$ref: '#/components/schemas/OrderAuthorization'
is_upcharge:
type: boolean
description: True if this order was created via the Upcharge endpoint to capture an additional amount on a parent order.
parent_order_uuid:
type: string
description: When `is_upcharge` is true, the UUID of the original (parent) order that this upcharge was applied to.
upcharges:
type: array
description: When the order is a parent that has had upcharges applied, lists each upcharge order's UUID and amount. Use the listed UUIDs with other Order API endpoints (Get Order, Capture, Refund, etc).
items:
type: object
properties:
uuid:
type: string
amount:
$ref: '#/components/schemas/Price'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- Order
summary: Update order
operationId: patchV2Checkout
parameters:
- name: order_uuid
in: path
description: Order UUID
required: true
schema:
type: string
requestBody:
description: Session request
content:
application/json:
schema:
type: object
properties:
reference_id:
type: string
required: true
responses:
'204':
description: Updated
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/Unprocessable'
/order/{order_uuid}/release:
post:
tags:
- Order
summary: Release amount by order
operationId: postV2ReleaseByOrder
parameters:
- name: order_uuid
in: path
description: Order UUID
required: true
schema:
type: string
- name: Sezzle-Request-Id
in: header
description: Unique client-generated ID to enforce idempotency
required: false
schema:
type: string
requestBody:
description: Release request
content:
application/json:
schema:
$ref: '#/components/schemas/Price'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
properties:
uuid:
type: string
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/Unprocessable'
/order/{order_uuid}/capture:
post:
tags:
- Order
summary: Capture amount by order
operationId: postV2CaptureByOrder
parameters:
- name: order_uuid
in: path
description: Order UUID
required: true
schema:
type: string
- name: Sezzle-Request-Id
in: header
description: Unique client-generated ID to enforce idempotency
required: false
schema:
type: string
requestBody:
description: Capture request
content:
application/json:
schema:
type: object
properties:
capture_amount:
$ref: '#/components/schemas/Price'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
properties:
uuid:
type: string
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/Unprocessable'
/order/{order_uuid}/refund:
post:
tags:
- Order
summary: Refund amount by order
operationId: postV2RefundByOrder
parameters:
- name: order_uuid
in: path
description: Order UUID
required: true
schema:
type: string
- name: Sezzle-Request-Id
in: header
description: Unique client-generated ID to enforce idempotency
required: false
schema:
type: string
requestBody:
description: Refund request
content:
application/json:
schema:
$ref: '#/components/schemas/Price'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
properties:
uuid:
type: string
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/Unprocessable'
/order/{order_uuid}/reauthorize:
post:
tags:
- Order
summary: Reauthorize amount by order
description: '- Allowed once the original order authorization has expired
- Response will be a new order and its `uuid` can be used on the Order API endpoints
'
operationId: postV2ReauthorizeByOrder
parameters:
- name: order_uuid
in: path
description: Order UUID
required: true
schema:
type: string
- name: Sezzle-Request-Id
in: header
description: Unique client-generated ID to enforce idempotency
required: false
schema:
type: string
requestBody:
description: Reauthorize request
content:
application/json:
schema:
$ref: '#/components/schemas/Price'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SessionStatus'
- type: object
properties:
intent:
type: string
reference_id:
type: string
description:
type: string
metadata:
type: object
additionalProperties:
type: string
order_amount:
$ref: '#/components/schemas/Price'
authorization:
$ref: '#/components/schemas/OrderAuthorization'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/Unprocessable'
/order/{order_uuid}/upcharge:
post:
tags:
- Order
summary: Upcharge amount by order
description: "Charges an additional amount against an existing order by creating a new standalone Pay In Full order\nfor the original shopper. The upcharge order is independent from the parent for capture, refund, and\nsettlement -- the parent order is not released or modified.\n\n- The currency of the upcharge must match the currency of the original order.\n- The cumulative total of all upcharges on a given parent order must not exceed 15% of the parent order amount.\n- The returned `uuid` is the new upcharge order's UUID and can be used with all other Order API endpoints\n (Get Order, Capture, Refund, etc).\n- The relationship is queryable via Get Order on the new UUID, which returns `is_upcharge: true` and\n `parent_order_uuid` referencing the original order.\n"
operationId: postV2UpchargeByOrder
parameters:
- name: order_uuid
in: path
description: Order UUID
required: true
schema:
type: string
- name: Sezzle-Request-Id
in: header
description: Unique client-generated ID to enforce idempotency
required: false
schema:
type: string
requestBody:
description: Upcharge request
content:
application/json:
schema:
type: object
properties:
intent:
$ref: '#/components/schemas/Intent'
upcharge_amount:
$ref: '#/components/schemas/Price'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SessionStatus'
- type: object
properties:
intent:
type: string
reference_id:
type: string
description:
type: string
metadata:
type: object
additionalProperties:
type: string
order_amount:
$ref: '#/components/schemas/Price'
authorization:
$ref: '#/components/schemas/OrderAuthorization'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/Unprocessable'
/order/{order_uuid}/checkout:
delete:
tags:
- Order
summary: Delete checkout by order
operationId: deleteV2DeleteCheckoutByOrder
parameters:
- name: order_uuid
in: path
description: Order UUID
required: true
schema:
type: string
responses:
'204':
description: Successful operation
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/Unprocessable'
components:
schemas:
Link:
type: object
properties:
href:
type: string
method:
type: string
rel:
type: string
Capture:
type: object
properties:
uuid:
type: string
amount:
$ref: '#/components/schemas/Price'
Address:
required:
- city
- country_code
- postal_code
- state
- street
type: object
properties:
city:
type: string
country_code:
type: string
name:
type: string
nullable: true
phone:
type: string
nullable: true
postal_code:
type: string
state:
type: string
street:
type: string
street2:
type: string
nullable: true
Customer:
type: object
properties:
email:
type: string
first_name:
type: string
last_name:
type: string
phone:
type: string
dob:
type: string
token_expiration:
type: string
format: date-time
billing_address:
$ref: '#/components/schemas/Address'
shipping_address:
$ref: '#/components/schemas/Address'
Refund:
type: object
properties:
uuid:
type: string
amount:
$ref: '#/components/schemas/Price'
Price:
required:
- amount_in_cents
- currency
type: object
properties:
amount_in_cents:
type: integer
format: int32
currency:
type: string
CheckoutStatus:
type: string
enum:
- active
- completed
- deleted
- denied
Error:
type: array
items:
type: object
properties:
code:
type: string
location:
type: string
message:
type: string
debug_uuid:
type: string
OrderAuthorization:
type: object
properties:
authorization_amount:
$ref: '#/components/schemas/Price'
authorization_amount_in_user_currency:
$ref: '#/components/schemas/Price'
description: 'Authorization amount denominated in the shopper''s currency. Sezzle always settles in the shopper''s local currency, so this is the amount actually authorized against the shopper''s account. Only populated after the shopper has completed checkout and the order has been created; the field is omitted on pre-order calls and on the rare upstream regression.
'
approved:
type: boolean
expiration:
type: string
format: date-time
financing_option:
type: string
sezzle_order_id:
type: string
description: Internal Sezzle Order ID (in Merchant Dashboard)
releases:
type: array
items:
$ref: '#/components/schemas/Capture'
captures:
type: array
items:
$ref: '#/components/schemas/Capture'
refunds:
type: array
items:
$ref: '#/components/schemas/Refund'
SessionStatus:
type: object
properties:
uuid:
type: string
links:
type: array
items:
$ref: '#/components/schemas/Link'
Intent:
type: string
enum:
- AUTH
- CAPTURE
responses:
BadRequest:
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorized:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: The specified resource was not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unprocessable:
description: Unable to process the request entity
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
securitySchemes:
Bearer:
type: apiKey
name: Authorization
in: header
externalDocs:
description: Sezzle API guides and tutorials
url: https://docs.sezzle.com/sezzle-integration