{
  "openapi": "3.1.0",
  "info": {
    "title": "FlowEQ - External API V1",
    "description": "FlowEQ external facing REST API",
    "version": "1.0",
    "contact": {
      "name": "FlowEQ",
      "url": "https://www.floweq.com/",
      "email": "support@floweq.com"
    }
  },
  "paths": {
    "/checks": {
      "get": {
        "summary": "Retrieve Lob Checks",
        "description": "Retrieve a list of Lob checks matching the criteria set by the query parameter.  If no query parameters are set, all checks affiliated with the company Lob bank account will match the criteria.  A valid Lob account with a bank account ID is required to consume this endpoint.",
        "tags": [
          "Checks"
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "The number of checks to list.  Default set to 100, maximum set to 10,000.",
            "example": "1000",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_created",
            "in": "query",
            "description": "Filter by date created. Accepted formats are ISO-8601 date or datetime.  Supports operators: date_created__gt, date_created__gte, date_created__lt, date_created__lte.",
            "example": "2022-11-13T15:01:42.015Z",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "send_date",
            "in": "query",
            "description": "Filter by send date. Accepted formats are ISO-8601 date or datetime.  Supports operators: send_date__gt, send_date__gte, send_date__lt, send_date__lte.",
            "example": "2022-11-13T15:01:42.015Z",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "scheduled",
            "in": "query",
            "description": "true - only return orders (past or future) where send_date is greater than date_created.  false - only return orders where send_date is equal to date_created.",
            "example": "true",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "mail_type",
            "in": "query",
            "description": "A string designating the mail postage type.",
            "example": "usps_first_class",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort_by",
            "in": "query",
            "description": "Sorts items by ascending or descending dates. Use either date_created or send_date, not both.",
            "example": "date_created",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "An array of checks matching the criteria of the query parameters.  Default limit set to 100 checks per request.",
            "content": {
              "application/json": {
                "schema": {
                  "title": "List of checks",
                  "type": "object",
                  "properties": {
                    "count": {
                      "description": "Number of checks retrieved in request.  Default limit set to 100.",
                      "type": "integer",
                      "example": 1
                    },
                    "results": {
                      "description": "An array of checks matching the criteria of the query parameters.  Default limit set to 100 checks per request.",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Check"
                      },
                      "example": []
                    },
                    "next_url": {
                      "description": "Link to fetch the next set of checks.",
                      "type": "string",
                      "example": "https://api.lob.com/v1/checks?limit=2&after=eyJkYXRlT2Zmc2V0IjoiMjAxOS0wOC0wOFQxOTozNDoyNy44MDJaIiwiaWRPZmZzZXQiOiJjaGtfOTJiOWE2NzE0YmMwNTU3YyJ0"
                    },
                    "previous_url": {
                      "description": "Link to fetch the previous set of checks.",
                      "type": "string",
                      "example": "https://api.lob.com/v1/checks?limit=2&before=eyJkYXRlT2Zmc2V0IjoiMjAxOS0wOC0wOFQxOTozNDoyNy44MDJaIiwiaWRPZmZzZXQiOiJjaGtfOTJiOWE2NzE0YmMwNTU3YyJ0"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/responses/BadRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/responses/Unauthorized"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/responses/Forbidden"
                }
              }
            }
          }
        }
      }
    },
    "/connection": {
      "put": {
        "summary": "Manage a custom connection object",
        "description": "Create or update a custom connection object",
        "tags": [
          "Connections"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "title": "Custom Connection",
                "description": "Provides custom context to the client for processing flows",
                "type": "object",
                "example": {
                  "context": "floweq",
                  "record": "1029384756",
                  "source": "freshchat",
                  "customVariables": {
                    "myVariableAccessor": "myVariableValue",
                    "another_variable": "This is a different value"
                  },
                  "language": "de"
                },
                "properties": {
                  "source": {
                    "type": "string",
                    "description": "Record source"
                  },
                  "context": {
                    "type": "string",
                    "description": "Client ID"
                  },
                  "record": {
                    "type": "string",
                    "description": "Record ID"
                  },
                  "customVariables": {
                    "type": "object",
                    "description": "Object that contains custom variables for the client to consume. Keys must be strings (no spaces). Variables are then accessible by the client as `custom.{Key}`.`",
                    "properties": {}
                  },
                  "language": {
                    "type": "string",
                    "description": "Optional: Sets the language for text sent by Sidekick to the end-user"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Details of the invidual connection object",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/responses/BadRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/responses/Unauthorized"
                }
              }
            }
          },
          "404": {
            "description": "Connection object not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/responses/NotFound"
                }
              }
            }
          }
        }
      }
    },
    "/events": {
      "get": {
        "summary": "Retrieve FlowEQ Events",
        "description": "Retrieve a list of events matching the criteria set by the query parameter.  If no query parameters are set, all events affiliated with the company ID in the JWT authorization token will match the criteria.",
        "tags": [
          "Events"
        ],
        "parameters": [
          {
            "name": "connection_key",
            "in": "query",
            "description": "The key to the Sidekick connection record the event is related to.\n            Supports operators: connection_key__contains, connection_key__gt, connection_key__gte, connection_key__lt, connection_key__lte",
            "example": "zendesk-new-ticket_floweq_roKym",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "flow_key",
            "in": "query",
            "description": "The key to the flow the event is related to.\n            Supports operators: flow_key__contains, flow_key__gt, flow_key__gte, flow_key__lt, flow_key__lte",
            "example": "-Fkji0978jhsxA",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "flow_session",
            "in": "query",
            "description": "The flow session the event is related to.\n            Supports operators: flow_session__gt, flow_session__gte, flow_session__lt, flow_session__lte",
            "example": "flow_session__gt",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The number of events to list.  Default set to 100, maximum set to 10,000.",
            "example": 1000,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "step_key",
            "in": "query",
            "description": "The key to the step the event is related to.\n            Supports operators: step_key__contains, step_key__gt, step_key__gte, step_key__lt, step_key__lte",
            "example": "-Skji0978jhsxA",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "selected_decision",
            "in": "query",
            "description": "The selected_decision is the title of the decision branch selected on a Decision step type.",
            "example": "Send email",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "The event type",
            "example": "user_flow_session_started",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "user_id",
            "in": "query",
            "description": "The UUID to the user the event is related to.",
            "example": "32179c2a-320d-455e-909f-4179b76d87bc",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "version_key",
            "in": "query",
            "description": "The key to the flow version the event is related to.\n            Supports operators: version_key__contains, version_key__gt, version_key__gte, version_key__lt, version_key__lte",
            "example": "-Vkji0978jhsxA",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "The event creation timestamp in UTC ISO format.  \n              Supports operators: created_at__contains, created_at__gt, created_at__gte, created_at__lt, created_at__lte",
            "example": "2020-05-28T19:57:06.000Z",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Query for a specific page of events results",
            "example": 2,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "order_by",
            "in": "query",
            "description": "List events ordered by specified field",
            "example": "created_at",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "An array of events matching the criteria of the query parameters.  Limited to 100 events per request.",
            "content": {
              "application/json": {
                "schema": {
                  "title": "List of events",
                  "type": "object",
                  "properties": {
                    "count": {
                      "description": "Number of events retrieved in request.  Limited to 100.",
                      "type": "integer",
                      "example": 1
                    },
                    "results": {
                      "description": "An array of events matching the criteria of the query parameters.  Limited to 100 events per request.",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Event"
                      },
                      "example": []
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/responses/BadRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/responses/Unauthorized"
                }
              }
            }
          }
        }
      }
    },
    "/records": {
      "get": {
        "summary": "Retrieve Workboard Records",
        "description": "Retrieve a list of records matching the criteria set by the query parameter.  If no query parameters are set, all records affiliated with the user ID and company ID in the JWT authorization token will match the criteria.",
        "tags": [
          "Records"
        ],
        "parameters": [
          {
            "name": "created_after",
            "in": "query",
            "description": "Lists records created after this timestamp. Cannot be combined with another timestamp query due to limitations of querying Firestore.  \"createdAfter\" also supported.",
            "example": "2019-04-01T18:51:17.491263Z",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "created_before",
            "in": "query",
            "description": "Lists records created before this timestamp. Cannot be combined with another timestamp query due to limitations of querying Firestore. \"createdBefore\" also supported.",
            "example": "2019-04-01T18:51:17.491263Z",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "updated_after",
            "in": "query",
            "description": "Lists records updated after this timestamp. Cannot be combined with another timestamp query due to limitations of querying Firestore. \"updatedAfter\" also supported.",
            "example": "2019-04-01T18:51:17.491263Z",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "updated_before",
            "in": "query",
            "description": "Lists records updated before this timestamp. Cannot be combined with another timestamp query due to limitations of querying Firestore. \"updatedBefore\" also supported.",
            "example": "2019-04-01T18:51:17.491263Z",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "next",
            "in": "query",
            "description": "The record ID to provide to the Firestore database in order to fetch the next batch of records. Cannot be present if the \"prev\" query parameter is also in the request.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "prev",
            "in": "query",
            "description": "The record ID to provide to the Firestore database in order to fetch the previous batch of records.  Cannot be present if the \"next\" query parameter is also in the request.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "record_type",
            "in": "query",
            "description": "The type of record. \"recordType\" also supported.",
            "example": "uccfiling",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "view_id",
            "in": "query",
            "description": "Unique ID of view (bucket) that records may be a part of. \"viewId\" also supported.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "An array of records matching the criteria of the query parameters.  Limited to 100 records per request.",
            "content": {
              "application/json": {
                "schema": {
                  "title": "List of records",
                  "type": "object",
                  "properties": {
                    "count": {
                      "description": "Number of records retrieved in request.  Limited to 100.",
                      "type": "integer",
                      "example": 1
                    },
                    "next": {
                      "description": "URL to fetch the next batch of records matching the request query parameters.",
                      "type": "string"
                    },
                    "prev": {
                      "description": "URL to fetch the previous batch of records matching the request query parameters.",
                      "type": "string"
                    },
                    "results": {
                      "description": "An array of records matching the criteria of the query parameters.  Limited to 100 records per request.",
                      "type": "array"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request:\n\n              - A query with both \"next\" and \"prev\" will throw a 400 error.\n\n              - A query with multiple timestamp queries (created_after, created_before, updated_after, updated_before) will throw a 400 error.\n\n              - A query with an unsupported query parameter will throw a 400.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/responses/BadRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/responses/Unauthorized"
                }
              }
            }
          }
        }
      }
    },
    "/records/{record_id}": {
      "get": {
        "summary": "Retrieve a Workboard Record",
        "description": "Retrieve a Workboard record with the specified record_id.",
        "tags": [
          "Records"
        ],
        "parameters": [
          {
            "name": "record_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Details of the individual record retrieved.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/responses/Unauthorized"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/responses/NotFound"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update a Workboard Record",
        "description": "Update a specific Workboard Record with the specified record_id",
        "tags": [
          "Records"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {}
            }
          }
        },
        "parameters": [
          {
            "name": "record_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Details of the updated record.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/responses/BadRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/responses/Unauthorized"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/responses/NotFound"
                }
              }
            }
          }
        }
      }
    },
    "/records/{record_id}/steps": {
      "put": {
        "parameters": [
          {
            "name": "record_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "summary": "Run a FlowEQ Step in Workboard",
        "description": "Run a specific FlowEQ step against a specific Workboard Record",
        "tags": [
          "Records"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "title": "Record Step Run Request",
                "description": "Create a temporary access token that may be used to update a single record",
                "type": "object",
                "example": {
                  "type": "pdf_create",
                  "inputs": {
                    "pdf_filename": "pdf_filename",
                    "pdf_title": "PDF Title",
                    "template_id": "template_id"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Step Run Success",
            "content": {
              "application/json": {
                "schema": {
                  "example": {
                    "details": {
                      "status": "success",
                      "submission": {
                        "id": "submission_id",
                        "template_id": "template_id",
                        "batch_id": null,
                        "state": "pending",
                        "test": true,
                        "editable": null,
                        "expired": false,
                        "expires_at": null,
                        "password": null,
                        "json_schema_errors": [],
                        "truncated_text": {},
                        "metadata": {
                          "company_id": "company_id",
                          "pdf_filename": "pdf_filename",
                          "record_id": "record_id"
                        },
                        "processed_at": null,
                        "data_requests": [],
                        "pdf_hash": null,
                        "download_url": null,
                        "permanent_download_url": null,
                        "actions": []
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/records/{record_id}/tokens": {
      "post": {
        "parameters": [
          {
            "name": "record_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "summary": "Generate Temporary Workboard Token",
        "description": "Create a temporary access token that may be used to update a single Workboard record",
        "tags": [
          "Records"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "title": "Token Request",
                "description": "Create a temporary access token that may be used to update a single record",
                "type": "object",
                "example": {
                  "expires_in": 86400,
                  "record_id": "record_id"
                },
                "properties": {
                  "expires": {
                    "type": "number",
                    "description": "Optional seconds until the token expires. Default expiration after 86400 seconds (1 day)"
                  },
                  "recordId": {
                    "type": "string",
                    "description": "Workboard Record ID which may be updated by the returned token"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Temporary access token that may be used to update a single record",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Token",
                  "description": "Temporary access token that may be used to update a single record",
                  "type": "object",
                  "example": {
                    "company_id": "company_id",
                    "created_at": "created_at",
                    "expires_at": "expires_at",
                    "token": "access_token",
                    "record_id": "record_id",
                    "user_id": "user_id"
                  },
                  "properties": {
                    "expires": {
                      "type": "number",
                      "description": "Seconds until the token expires. Default expiration after 86400 seconds (1 day)"
                    },
                    "token": {
                      "type": "string",
                      "description": "Access Token"
                    },
                    "recordId": {
                      "type": "string",
                      "description": "Workboard Record ID which may be updated by this token"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/responses/Unauthorized"
                }
              }
            }
          }
        }
      }
    }
  },
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "servers": [
    {
      "url": "https://api.floweq.com/v1",
      "description": ""
    }
  ],
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "description": "Enter your bearer token in the format: Bearer {token}"
      }
    },
    "responses": {
      "BadRequest": {
        "description": "Bad Request",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "Unauthorized": {
        "description": "Unauthorized",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "Forbidden": {
        "description": "Forbidden",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "NotFound": {
        "description": "NotFound",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      }
    },
    "schemas": {
      "Check": {
        "title": "Check",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique ID.",
            "example": "chk_534f10713683daa8",
            "readOnly": true
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Description of check.",
            "example": "Demo check"
          },
          "date_created": {
            "type": "string",
            "description": "ISO Timestamp",
            "example": "2017-09-05T17:47:53.896Z",
            "readOnly": true
          },
          "date_modified": {
            "type": "string",
            "description": "ISO Timestamp.",
            "example": "2017-10-05T17:47:53.896Z",
            "readOnly": true
          },
          "metadata": {
            "type": "object",
            "description": "ISO Timestamp",
            "example": "Use metadata to store custom information for tagging and labeling back to your internal systems. Must be an object with up to 20 key-value pairs. Keys must be at most 40 characters and values must be at most 500 characters."
          },
          "check_number": {
            "type": "number",
            "description": "An integer that designates the check number. If check_number is not provided, checks created from a new bank_account will start at 10000 and increment with each check created with the bank_account. A provided check_number overrides the defaults. Subsequent checks created with the same bank_account will increment from the provided check number.",
            "example": 10062
          },
          "memo": {
            "type": [
              "string",
              "null"
            ],
            "description": "Text to include on the memo line of the check.",
            "example": "rent"
          },
          "amount": {
            "type": "number",
            "description": "The payment amount to be sent in US dollars.",
            "example": 22.5
          },
          "url": {
            "type": "string",
            "description": "A signed link served over HTTPS. The link returned will expire in 30 days to prevent mis-sharing. Each time a GET request is initiated, a new signed URL will be generated.",
            "example": "https://lob-assets.com/checks/chk_534f10783683daa0.pdf?expires=1540372221&signature=Ty3IV2bGPEoQfrdraYHlNYTaarnHLX1"
          },
          "to": {
            "type": "object",
            "description": "Destination address of the check.",
            "example": {
              "id": "adr_bae820679f3f536b",
              "description": "Harry - Office",
              "name": "HARRY ZHANG",
              "company": "LOB",
              "email": "harry@lob.com",
              "phone": "5555555555",
              "address_line1": "210 KING ST STE 6100",
              "address_line2": "",
              "address_city": "SAN FRANCISCO",
              "address_state": "CA",
              "address_zip": "94107-1741",
              "address_country": "UNITED STATES",
              "metadata": {},
              "date_created": "2018-12-08T03:08:43.446Z",
              "date_modified": "2018-12-08T03:08:43.446Z",
              "object": "address",
              "recipient_moved": false
            }
          },
          "from": {
            "type": "object",
            "description": "Origin address of the check.",
            "example": {
              "id": "adr_b8fb5acf3a2b55db",
              "name": "LEORE AVIDAR",
              "address_line1": "210 KING ST STE 6100",
              "address_city": "SAN FRANCISCO",
              "address_state": "CA",
              "address_zip": "94107-1741",
              "address_country": "UNITED STATES",
              "metadata": {},
              "date_created": "2017-09-05T17:47:53.767Z",
              "date_modified": "2017-09-05T17:47:53.767Z",
              "object": "address"
            }
          },
          "bank_account": {
            "type": "object",
            "description": "Object of the bank account.",
            "example": {
              "id": "bank_8cad8df5354d33f",
              "description": "Test Bank Account",
              "metadata": {},
              "routing_number": "322271627",
              "account_number": "123456789",
              "signatory": "John Doe",
              "bank_name": "J.P. MORGAN CHASE BANK, N.A.",
              "verified": true,
              "account_type": "company",
              "date_created": "2015-11-06T19:24:24.440Z",
              "date_modified": "2015-11-06T19:41:28.312Z",
              "object": "bank_account",
              "signature_url": "https://lob-assets.com/bank-accounts/asd_asdfghjkqwertyui.pdf?expires=1234567890&signature=aksdf"
            }
          },
          "carrier": {
            "type": "string",
            "description": "Mail carrier.",
            "example": "USPS"
          },
          "tracking_events": {
            "type": "array",
            "description": "An array of tracking_event objects ordered by ascending time. Will not be populated for checks created in test mode.",
            "example": []
          },
          "thumbnails": {
            "type": "array",
            "description": "An array of thumbnails urls of the check image.",
            "example": [
              {
                "small": "https://lob-assets.com/checks/chk_534f10783683daa0_thumb_small_1.png?expires=1540372221&signature=ShhPpH74wYkNiAj7Il9B6q8ZKkzlGd4",
                "medium": "https://lob-assets.com/checks/chk_534f10783683daa0_thumb_medium_1.png?expires=1540372221&signature=tmIOq6aAyKgzAECp7STj1rvJuMS5Svd",
                "large": "https://lob-assets.com/checks/chk_534f10783683daa0_thumb_large_1.png?expires=1540372221&signature=04nLEwE9d2qgQJNgJYWSOgPnU0FZbEv"
              }
            ]
          },
          "merge_variables": {
            "type": "object",
            "description": "You can input a merge variable payload object to your template to render dynamic content.",
            "example": {
              "name": "Harry"
            }
          },
          "expected_delivery_date": {
            "type": "string",
            "description": "A date in YYYY-MM-DD format of the mailpiece's expected delivery date based on its send_date.",
            "example": "2017-09-12"
          },
          "mail_type": {
            "type": "string",
            "description": "The specified mail class.",
            "example": "usps_first_class"
          },
          "send_date": {
            "type": "string",
            "description": "A timestamp in ISO 8601 format which specifies a date after the current time and up to 180 days in the future to send the letter off for production.",
            "example": "2017-09-05T17:47:53.896Z"
          },
          "object": {
            "type": "string",
            "description": "The resource type being interacted with.",
            "example": "check"
          },
          "message": {
            "type": "string",
            "description": "Max of 400 characters to be included at the bottom of the check page.",
            "example": "check"
          },
          "check_bottom_template_id": {
            "type": "string",
            "description": "The unique ID of the HTML template used for the check bottom.",
            "example": "tmpl_a"
          },
          "attachment_template_id": {
            "type": "string",
            "description": "The unique ID of the HTML template used for the attachment.",
            "example": "tmpl_a"
          },
          "check_bottom_template_version_id": {
            "type": "string",
            "description": "The unique ID of the specific version of the HTML template used for the check bottom.",
            "example": "vrsn_a"
          },
          "attachment_template_version_id": {
            "type": "string",
            "description": "The unique ID of the specific version of the HTML template used for the attachment.",
            "example": "vrsn_a"
          },
          "use_type": {
            "type": [
              "string",
              "null"
            ],
            "description": "The use type for each mailpiece. Can be one of marketing, operational, or null. Null use_type is only allowed if an account default use_type is selected in Lob Account Settings.",
            "example": "marketing"
          },
          "deleted": {
            "type": "boolean",
            "description": "Only returned if the resource has been successfully deleted.",
            "example": true
          }
        }
      },
      "Connection": {
        "title": "Connection",
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "description": "ISO Timestamp"
          },
          "id": {
            "type": "string",
            "description": "Unique ID"
          },
          "updated_at": {
            "type": "string",
            "description": "ISO Timestamp"
          }
        }
      },
      "Event": {
        "title": "Event",
        "description": "An event tracking various interactions within the FlowEQ application",
        "type": "object",
        "example": {
          "id": "3132de87-242b-4ffasx4-af5f-52316f2272dc3c",
          "key": "sj28908091hkjnd-hsdkjajsd-kjh29djkl",
          "created_at": "2018-05-08T04:20:27.000Z",
          "type": "user_step_session_restarted",
          "updated_at": "2023-10-06T23:53:14.555Z",
          "company_id": "sj28908091hkjnd-hsdkjajsd",
          "connection_key": "zendesk_floweq_32",
          "excluded": false,
          "flow_key": "-L-8Goa90xHdpnlnOcCC7Q",
          "flow_session": 1,
          "seconds_active": null,
          "seconds_running": null,
          "step_key": "SJjfkj&jsdk3xf",
          "selected_decision": "Selected Decision",
          "user_id": "e68f57dc-0a39-11kjf-b1lkmsdf-b6fc76094279",
          "version_key": "0",
          "connection_id": null,
          "flow_id": null,
          "version_id": null,
          "step_id": null
        },
        "properties": {
          "id": {
            "type": "string",
            "readOnly": true,
            "example": "1f3b543a-5c1b-47b3-a7c-13e7k5bcb83e"
          },
          "key": {
            "type": "string",
            "readOnly": true,
            "example": "a644ade92-5cb-4ae6-be-b6f216acef66_eOCeiFD8P9me69WbtAQI-5c1b-a7bx-a7c-13e7kxbcb83e"
          },
          "company_id": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true,
            "example": "a66ade92-cb0-4a6-be5-b6f26acef66"
          },
          "connection_key": {
            "type": "string",
            "readOnly": true,
            "example": "zendesk-new-ticket_floweq_rJJf84TYym"
          },
          "connection_id": {
            "type": "string",
            "readOnly": true,
            "example": "zendesk-new-ticket_floweq_rJJf84TYym"
          },
          "created_at": {
            "type": "string",
            "readOnly": true,
            "example": "2018-05-28T22:02:00.000Z"
          },
          "excluded": {
            "type": "boolean",
            "readOnly": true,
            "example": false
          },
          "flow_key": {
            "type": "string",
            "readOnly": true,
            "example": "-LDYRXnQnZKAJ878rqViK_"
          },
          "flow_id": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true,
            "example": "-LDYRXnQnZKAJ878rqViK_"
          },
          "flow_session": {
            "type": "number",
            "readOnly": true,
            "example": 1
          },
          "seconds_active": {
            "type": [
              "number",
              "null"
            ],
            "readOnly": true,
            "example": 100
          },
          "seconds_running": {
            "type": [
              "number",
              "null"
            ],
            "readOnly": true,
            "example": 101
          },
          "step_key": {
            "type": "string",
            "readOnly": true,
            "example": "101"
          },
          "step_id": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true,
            "example": "101"
          },
          "selected_decision": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true,
            "example": "Selected Decision"
          },
          "type": {
            "type": "string",
            "readOnly": true,
            "example": "-SDYRXnQnZKAJ878rqViK_"
          },
          "updated_at": {
            "type": "string",
            "readOnly": true,
            "example": "2023-10-06T23:53:14.555Z"
          },
          "user_id": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true,
            "example": "u68f57dc-0a39-31bc-g11f-b6fc7600l4279"
          },
          "version_key": {
            "type": "string",
            "readOnly": true,
            "example": "0"
          },
          "version_id": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true,
            "example": "0"
          }
        }
      },
      "Record": {
        "title": "Record",
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "description": "ISO Timestamp"
          },
          "id": {
            "type": "string",
            "description": "Unique ID"
          },
          "updated_at": {
            "type": "string",
            "description": "ISO Timestamp"
          }
        }
      },
      "Error": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  }
}