Sezzle Session API

The Session API from Sezzle — 2 operation(s) for session.

OpenAPI Specification

sezzle-session-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Sezzle API v2 Bearer Authentication Session 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: Session
paths:
  /session:
    post:
      tags:
      - Session
      summary: Create a new session
      description: Create new customer checkout and/or tokenize customer.
      operationId: postV2Session
      requestBody:
        description: Session request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Session'
        required: true
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  uuid:
                    type: string
                  links:
                    type: array
                    items:
                      $ref: '#/components/schemas/Link'
                  order:
                    type: object
                    properties:
                      uuid:
                        type: string
                      checkout_url:
                        type: string
                      links:
                        type: array
                        items:
                          $ref: '#/components/schemas/Link'
                  tokenize:
                    type: object
                    properties:
                      token:
                        type: string
                      expiration:
                        type: string
                        format: date-time
                      links:
                        type: array
                        items:
                          $ref: '#/components/schemas/Link'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '422':
          $ref: '#/components/responses/Unprocessable'
  /session/{session_uuid}:
    get:
      tags:
      - Session
      summary: Get session status
      operationId: getV2Session
      parameters:
      - name: session_uuid
        in: path
        description: Session UUID
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/SessionStatus'
                - type: object
                  properties:
                    order:
                      type: object
                      properties:
                        intent:
                          $ref: '#/components/schemas/Intent'
                        uuid:
                          type: string
                        checkout_url:
                          type: string
                        links:
                          type: array
                          items:
                            $ref: '#/components/schemas/Link'
                    tokenize:
                      type: object
                      properties:
                        token:
                          type: string
                        expiration:
                          type: string
                          format: date-time
                        links:
                          type: array
                          items:
                            $ref: '#/components/schemas/Link'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    Link:
      type: object
      properties:
        href:
          type: string
        method:
          type: string
        rel:
          type: string
    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
    Session:
      required:
      - cancel_url
      - complete_url
      type: object
      properties:
        cancel_url:
          type: object
          properties:
            href:
              type: string
            method:
              type: string
        complete_url:
          type: object
          properties:
            href:
              type: string
            method:
              type: string
        customer:
          allOf:
          - type: object
            properties:
              tokenize:
                type: boolean
          - $ref: '#/components/schemas/Customer'
        order:
          allOf:
          - type: object
            properties:
              intent:
                $ref: '#/components/schemas/Intent'
          - $ref: '#/components/schemas/Order'
          - type: object
            properties:
              order_amount:
                $ref: '#/components/schemas/Price'
              checkout_financing_options:
                description: '*currently not supported, defaults to 4-pay-biweekly*

                  '
                type: array
                items:
                  $ref: '#/components/schemas/InstallmentPlan'
              send_checkout_url:
                $ref: '#/components/schemas/Notification'
              locale:
                type: string
    Discount:
      required:
      - amount
      - name
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/Price'
        name:
          type: string
    Price:
      required:
      - amount_in_cents
      - currency
      type: object
      properties:
        amount_in_cents:
          type: integer
          format: int32
        currency:
          type: string
    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'
    Order:
      type: object
      properties:
        reference_id:
          type: string
        description:
          type: string
        requires_shipping_info:
          type: boolean
        items:
          type: array
          items:
            $ref: '#/components/schemas/LineItem'
        discounts:
          type: array
          items:
            $ref: '#/components/schemas/Discount'
        metadata:
          type: object
          additionalProperties:
            type: string
        shipping_amount:
          $ref: '#/components/schemas/Price'
        tax_amount:
          $ref: '#/components/schemas/Price'
        checkout_expiration:
          type: string
          format: date-time
    Notification:
      type: object
      properties:
        to_sms_phone:
          type: string
        to_email:
          type: string
        language:
          type: string
    InstallmentPlan:
      type: string
      enum:
      - 4-pay-biweekly
      - 4-pay-monthly
      - 6-pay-monthly
    LineItem:
      required:
      - name
      - price
      - quantity
      - sku
      type: object
      properties:
        name:
          type: string
        price:
          $ref: '#/components/schemas/Price'
        quantity:
          type: integer
          format: int32
        sku:
          type: string
    Error:
      type: array
      items:
        type: object
        properties:
          code:
            type: string
          location:
            type: string
          message:
            type: string
          debug_uuid:
            type: string
    SessionStatus:
      type: object
      properties:
        uuid:
          type: string
        links:
          type: array
          items:
            $ref: '#/components/schemas/Link'
    Intent:
      type: string
      enum:
      - AUTH
      - CAPTURE
  responses:
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Invalid request
      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