{
  "openapi": "3.0.1",
  "info": {
    "title": "Export API",
    "description": "This API enables you to perform the following:\n- Retrieve a list of accounting entries that have been exported to the external ERP/accounting system.\n- Create a new export job event.\n- Retrieve a list of existing export jobs and create a new one.\n- Retrieve details of an export job.\n- Retrieve a list of export job items and update their information.\n",
    "termsOfService": "https://pleo.io/terms/",
    "contact": {
      "email": "apiteam@pleo.io"
    },
    "license": {
      "name": "Apache 2.0",
      "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
    },
    "version": "33.15.0"
  },
  "servers": [
    {
      "url": "https://external.pleo.io",
      "description": "Production server"
    },
    {
      "url": "https://external.staging.pleo.io",
      "description": "Staging server"
    }
  ],
  "security": [
    {
      "bearerAuth": []
    },
    {
      "basicAuth": []
    }
  ],
  "tags": [
    {
      "name": "health"
    },
    {
      "name": "export-items"
    },
    {
      "name": "export-jobs"
    },
    {
      "name": "admin"
    },
    {
      "name": "export-job-items"
    },
    {
      "name": "Export API (v2)"
    },
    {
      "name": "Export Items (v2)"
    },
    {
      "name": "Export API (v3)"
    },
    {
      "name": "Export Items (v3)"
    }
  ],
  "paths": {
    "/v0/export-items": {
      "get": {
        "tags": [
          "Export Items (v0)"
        ],
        "summary": "Get Export Items",
        "description": "Fetch a list of export items that have been marked for export for a given job. The data for these accounting entries are transformed accordingly for export purposes.",
        "operationId": "getExportItems",
        "parameters": [
          {
            "name": "job_id",
            "in": "query",
            "description": "The Export Job ID in which the accounting entries have been included for export.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "before",
            "in": "query",
            "description": "Lower bound of the page of data to return (cannot be used together with [after] or [offset]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "pattern": "^[A-Z2-7=~]+$",
              "type": "string"
            }
          },
          {
            "name": "after",
            "in": "query",
            "description": "Upper bound of the page of data to return (cannot be used together with [before] or [offset]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "pattern": "^[A-Z2-7=~]+$",
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Offset of the page of data to return (cannot be used together with [before] or [after]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "minimum": 0,
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum amount of items to return.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sorting_keys",
            "in": "query",
            "description": "The keys to sort the results by.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sorting_order",
            "in": "query",
            "description": "The order to sort the results by. Must be the same length as [sortingKeys]; one order per key.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/PageOrder"
              }
            }
          }
        ],
        "responses": {
          "default": {
            "description": "default response",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/CursorPaginatedResponseExportItem"
                }
              }
            }
          }
        },
        "deprecated": true
      }
    },
    "/v0/export-job-events": {
      "post": {
        "tags": [
          "Export API (v0)"
        ],
        "summary": "Create an Export Job Event",
        "description": "\n            The Export Job Events imply the different status of an Export Job through the export lifecycle.\n            Use this endpoint to create a new status.\n            For example, started event implies the export job is initiated.\n            The existing Export Job Events are as follows:\n            - started: An export job is initiated. This allows the integration\n                service to start processing the export job items.\n            - failed: The export job has failed when an irrecoverable error happens and this could have happened while processing the export job items.\n            - completed: The export job items have been successfully exported.\n            - completed_with_errors: The export job items have been processed, although some of them could not be exported.\n            ",
        "operationId": "createExportJobEvent",
        "requestBody": {
          "content": {
            "application/json;charset=UTF-8": {
              "schema": {
                "$ref": "#/components/schemas/CreateExportJobEvent"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "default response",
            "content": {
              "application/json;charset=UTF-8": {}
            }
          }
        },
        "deprecated": true
      }
    },
    "/v0/export-jobs": {
      "get": {
        "tags": [
          "Export API (v0)"
        ],
        "summary": "Get a list of Export Jobs",
        "description": "Fetch a list of export jobs",
        "operationId": "getExportJobsList",
        "parameters": [
          {
            "name": "company_id",
            "in": "query",
            "description": "Enter the specific company ID for which you want to retrieve the list of export jobs processed before.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Fetch a list of jobs for a specific status.",
            "required": false,
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string",
              "nullable": true,
              "enum": [
                "pending",
                "in_progress",
                "failed",
                "completed",
                "completed_with_errors"
              ]
            }
          },
          {
            "name": "statuses",
            "in": "query",
            "description": "Fetch a list of jobs for specific statuses.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "pending",
                  "in_progress",
                  "failed",
                  "completed",
                  "completed_with_errors"
                ]
              }
            }
          },
          {
            "name": "before",
            "in": "query",
            "description": "Lower bound of the page of data to return (cannot be used together with [after] or [offset]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "pattern": "^[A-Z2-7=~]+$",
              "type": "string"
            }
          },
          {
            "name": "after",
            "in": "query",
            "description": "Upper bound of the page of data to return (cannot be used together with [before] or [offset]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "pattern": "^[A-Z2-7=~]+$",
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Offset of the page of data to return (cannot be used together with [before] or [after]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "minimum": 0,
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum amount of items to return.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sorting_keys",
            "in": "query",
            "description": "The keys to sort the results by.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sorting_order",
            "in": "query",
            "description": "The order to sort the results by. Must be the same length as [sortingKeys]; one order per key.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/PageOrder"
              }
            }
          }
        ],
        "responses": {
          "default": {
            "description": "default response",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/CursorPaginatedResponseExportJob"
                }
              }
            }
          }
        },
        "deprecated": true
      },
      "post": {
        "tags": [
          "Export API (v0)"
        ],
        "summary": "Create a new export job",
        "operationId": "createExportJob",
        "requestBody": {
          "content": {
            "application/json;charset=UTF-8": {
              "schema": {
                "$ref": "#/components/schemas/CreateExportJob"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "default response",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/DataResponseExportJob"
                }
              }
            }
          }
        },
        "deprecated": true
      }
    },
    "/v0/export-jobs/{jobId}": {
      "get": {
        "tags": [
          "Export API (v0)"
        ],
        "summary": "Get an Export Job",
        "description": "Retrieve an export job for a given export job ID",
        "operationId": "getExportJobById",
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "description": "Export Job ID to fetch",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "default response",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/DataResponseExportJob"
                }
              }
            }
          }
        },
        "deprecated": true
      }
    },
    "/v0/export-jobs/{jobId}/items": {
      "get": {
        "tags": [
          "Export API (v0)"
        ],
        "summary": "Get Export Job Items",
        "description": "Fetch a list of export job items",
        "operationId": "getExportJobItems",
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "description": "Export Job ID",
              "format": "uuid"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Enter a specific status with which the list of export job items returned conforms.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string",
              "nullable": true,
              "enum": [
                "pending",
                "in_progress",
                "failed",
                "successful",
                "abandoned"
              ]
            }
          },
          {
            "name": "before",
            "in": "query",
            "description": "Lower bound of the page of data to return (cannot be used together with [after] or [offset]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "pattern": "^[A-Z2-7=~]+$",
              "type": "string"
            }
          },
          {
            "name": "after",
            "in": "query",
            "description": "Upper bound of the page of data to return (cannot be used together with [before] or [offset]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "pattern": "^[A-Z2-7=~]+$",
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Offset of the page of data to return (cannot be used together with [before] or [after]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "minimum": 0,
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum amount of items to return.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sorting_keys",
            "in": "query",
            "description": "The keys to sort the results by.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sorting_order",
            "in": "query",
            "description": "The order to sort the results by. Must be the same length as [sortingKeys]; one order per key.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/PageOrder"
              }
            }
          }
        ],
        "responses": {
          "default": {
            "description": "default response",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/CursorPaginatedResponseExportJobItem"
                }
              }
            }
          }
        },
        "deprecated": true
      },
      "put": {
        "tags": [
          "Export API (v0)"
        ],
        "summary": "Update Export Job Items",
        "description": "Update the status and other attributes of the export job items in batches of 100. This API only supports updating up to 100 items.",
        "operationId": "updateExportJobItems",
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "description": "Export Job ID",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json;charset=UTF-8": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/UpdateExportJobItem"
                }
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "default response",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ExportJobItemUpdate"
                }
              }
            }
          }
        },
        "deprecated": true
      }
    },
    "/v1/export-items": {
      "get": {
        "tags": [
          "Export Items (v1)"
        ],
        "summary": "Get Export Items",
        "description": "Fetch a list of export items that have been marked for export for a given job. The data for these accounting entries are transformed accordingly for export purposes.",
        "operationId": "getExportItemsV1",
        "parameters": [
          {
            "name": "job_id",
            "in": "query",
            "description": "The Export Job ID in which the accounting entries have been included for export.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "before",
            "in": "query",
            "description": "Lower bound of the page of data to return (cannot be used together with [after] or [offset]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "pattern": "^[A-Z2-7=~]+$",
              "type": "string"
            }
          },
          {
            "name": "after",
            "in": "query",
            "description": "Upper bound of the page of data to return (cannot be used together with [before] or [offset]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "pattern": "^[A-Z2-7=~]+$",
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Offset of the page of data to return (cannot be used together with [before] or [after]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "minimum": 0,
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum amount of items to return.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sorting_keys",
            "in": "query",
            "description": "The keys to sort the results by.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sorting_order",
            "in": "query",
            "description": "The order to sort the results by. Must be the same length as [sortingKeys]; one order per key.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/PageOrder"
              }
            }
          }
        ],
        "responses": {
          "default": {
            "description": "default response",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/CursorPaginatedResponseExportItemV1"
                }
              }
            }
          }
        },
        "deprecated": true
      }
    },
    "/v1/export-job-events": {
      "post": {
        "tags": [
          "Export API (v1)"
        ],
        "summary": "Create an Export Job Event",
        "description": "\n            The Export Job Events imply the different status of an Export Job through the export lifecycle.\n            Use this endpoint to create a new status.\n            For example, started event implies the export job is initiated.\n            The existing Export Job Events are as follows:\n            - started: An export job is initiated. This allows the integration\n                service to start processing the export job items.\n            - failed: The export job has failed when an irrecoverable error happens and this could have happened while processing the export job items.\n            - completed: The export job items have been successfully exported.\n            - completed_with_errors: The export job items have been processed, although some of them could not be exported.\n            ",
        "operationId": "createExportJobEventV1",
        "requestBody": {
          "content": {
            "application/json;charset=UTF-8": {
              "schema": {
                "$ref": "#/components/schemas/CreateExportJobEvent"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "default response",
            "content": {
              "application/json;charset=UTF-8": {}
            }
          }
        },
        "deprecated": true
      }
    },
    "/v1/export-jobs": {
      "get": {
        "tags": [
          "Export API (v1)"
        ],
        "summary": "Get a list of Export Jobs",
        "description": "Fetch a list of export jobs",
        "operationId": "getExportJobsListV1",
        "parameters": [
          {
            "name": "company_id",
            "in": "query",
            "description": "Enter the specific company ID for which you want to retrieve the list of export jobs processed before.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Fetch a list of jobs for a specific status.",
            "required": false,
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string",
              "nullable": true,
              "enum": [
                "pending",
                "in_progress",
                "failed",
                "completed",
                "completed_with_errors"
              ]
            }
          },
          {
            "name": "statuses",
            "in": "query",
            "description": "Fetch a list of jobs for specific statuses.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "pending",
                  "in_progress",
                  "failed",
                  "completed",
                  "completed_with_errors"
                ]
              }
            }
          },
          {
            "name": "before",
            "in": "query",
            "description": "Lower bound of the page of data to return (cannot be used together with [after] or [offset]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "pattern": "^[A-Z2-7=~]+$",
              "type": "string"
            }
          },
          {
            "name": "after",
            "in": "query",
            "description": "Upper bound of the page of data to return (cannot be used together with [before] or [offset]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "pattern": "^[A-Z2-7=~]+$",
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Offset of the page of data to return (cannot be used together with [before] or [after]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "minimum": 0,
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum amount of items to return.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sorting_keys",
            "in": "query",
            "description": "The keys to sort the results by.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sorting_order",
            "in": "query",
            "description": "The order to sort the results by. Must be the same length as [sortingKeys]; one order per key.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/PageOrder"
              }
            }
          }
        ],
        "responses": {
          "default": {
            "description": "default response",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/CursorPaginatedResponseExportJob"
                }
              }
            }
          }
        },
        "deprecated": true
      },
      "post": {
        "tags": [
          "Export API (v1)"
        ],
        "summary": "Create a new export job",
        "operationId": "createExportJobV1",
        "requestBody": {
          "content": {
            "application/json;charset=UTF-8": {
              "schema": {
                "$ref": "#/components/schemas/CreateExportJob"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "default response",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/DataResponseExportJob"
                }
              }
            }
          }
        },
        "deprecated": true
      }
    },
    "/v1/export-jobs/{jobId}": {
      "get": {
        "tags": [
          "Export API (v1)"
        ],
        "summary": "Get an Export Job",
        "description": "Retrieve an export job for a given export job ID",
        "operationId": "getExportJobByIdV1",
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "description": "Export Job ID to fetch",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "default response",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/DataResponseExportJob"
                }
              }
            }
          }
        },
        "deprecated": true
      }
    },
    "/v1/export-jobs/{jobId}/items": {
      "get": {
        "tags": [
          "Export API (v1)"
        ],
        "summary": "Get Export Job Items",
        "description": "Fetch a list of export job items",
        "operationId": "getExportJobItemsV1",
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "description": "Export Job ID",
              "format": "uuid"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Enter a specific status with which the list of export job items returned conforms.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string",
              "nullable": true,
              "enum": [
                "pending",
                "in_progress",
                "failed",
                "successful",
                "abandoned"
              ]
            }
          },
          {
            "name": "before",
            "in": "query",
            "description": "Lower bound of the page of data to return (cannot be used together with [after] or [offset]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "pattern": "^[A-Z2-7=~]+$",
              "type": "string"
            }
          },
          {
            "name": "after",
            "in": "query",
            "description": "Upper bound of the page of data to return (cannot be used together with [before] or [offset]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "pattern": "^[A-Z2-7=~]+$",
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Offset of the page of data to return (cannot be used together with [before] or [after]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "minimum": 0,
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum amount of items to return.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sorting_keys",
            "in": "query",
            "description": "The keys to sort the results by.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sorting_order",
            "in": "query",
            "description": "The order to sort the results by. Must be the same length as [sortingKeys]; one order per key.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/PageOrder"
              }
            }
          }
        ],
        "responses": {
          "default": {
            "description": "default response",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/CursorPaginatedResponseExportJobItem"
                }
              }
            }
          }
        },
        "deprecated": true
      },
      "put": {
        "tags": [
          "Export API (v1)"
        ],
        "summary": "Update Export Job Items",
        "description": "Update the status and other attributes of the export job items in batches of 100. This API only supports updating up to 100 items.",
        "operationId": "updateExportJobItemsV1",
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "description": "Export Job ID",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json;charset=UTF-8": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/UpdateExportJobItem"
                }
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "default response",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ExportJobItemUpdate"
                }
              }
            }
          }
        },
        "deprecated": true
      }
    },
    "/v2/export-items": {
      "get": {
        "tags": [
          "Export Items (v2)"
        ],
        "summary": "Get Export Items",
        "description": "An export item = an accounting entry that has been transformed into an exportable entry.\nThe required accounting and bookkeeping information is aggregated from an accounting entry to become an export item. Use this endpoint to retrieve a list of export items that have been selected for export. Please note that you can retrieve list of export items only from `pending` and `in_progress` export jobs.",
        "operationId": "getExportItemsV2",
        "parameters": [
          {
            "name": "job_id",
            "in": "query",
            "description": "The Export Job ID in which the accounting entries have been included for export.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "before",
            "in": "query",
            "description": "Lower bound of the page of data to return (cannot be used together with [after] or [offset]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "pattern": "^[A-Z2-7=~]+$",
              "type": "string"
            }
          },
          {
            "name": "after",
            "in": "query",
            "description": "Upper bound of the page of data to return (cannot be used together with [before] or [offset]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "pattern": "^[A-Z2-7=~]+$",
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Offset of the page of data to return (cannot be used together with [before] or [after]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "minimum": 0,
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum amount of items to return.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sorting_keys",
            "in": "query",
            "description": "The keys to sort the results by.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sorting_order",
            "in": "query",
            "description": "The order to sort the results by. Must be the same length as [sortingKeys]; one order per key.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/PageOrder"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Export Items retrieved successfully.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/CursorPaginatedResponseExportItemV2"
                }
              }
            }
          },
          "422": {
            "description": "Export Job has finished. Only Export Items from running jobs can be retrieved.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionInfo"
                },
                "example": {
                  "type": "EXPORT_JOB_STATUS_UNPROCESSABLE",
                  "message": "Export Job is finished and can no longer be processed."
                }
              }
            }
          }
        }
      }
    },
    "/v2/export-job-events": {
      "post": {
        "tags": [
          "Export API (v2)"
        ],
        "summary": "Create an Export Job Event",
        "description": "\n            The Export Job Events imply the current status of the Export Job through the export lifecycle.\n            Send a request to this endpoint to update the status of the export job. If an export job has failed,\n            mention the failure reason and the reason type.\n            ",
        "operationId": "createExportJobEventV2",
        "requestBody": {
          "content": {
            "application/json;charset=UTF-8": {
              "schema": {
                "$ref": "#/components/schemas/CreateExportJobEvent"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Export Job Event created successfully."
          },
          "422": {
            "description": "Attempted invalid operation (trying to mark a `completed` job as `started`, and so on.)",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionInfo"
                },
                "example": {
                  "type": "INVALID_EXPORT_JOB_STATUS_CHANGE",
                  "message": "Export Job status change failed"
                }
              }
            }
          }
        }
      }
    },
    "/v2/export-jobs": {
      "get": {
        "tags": [
          "Export API (v2)"
        ],
        "summary": "Get a list of Export Jobs",
        "description": "Fetch a list of export jobs.",
        "operationId": "getExportJobsListV2",
        "parameters": [
          {
            "name": "company_id",
            "in": "query",
            "description": "Enter the specific company ID for which you want to retrieve the list of export jobs processed before.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Fetch a list of jobs for a specific status.",
            "required": false,
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string",
              "nullable": true,
              "enum": [
                "pending",
                "in_progress",
                "failed",
                "completed",
                "completed_with_errors"
              ]
            }
          },
          {
            "name": "statuses",
            "in": "query",
            "description": "Fetch a list of jobs for specific statuses.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "pending",
                  "in_progress",
                  "failed",
                  "completed",
                  "completed_with_errors"
                ]
              }
            }
          },
          {
            "name": "before",
            "in": "query",
            "description": "Lower bound of the page of data to return (cannot be used together with [after] or [offset]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "pattern": "^[A-Z2-7=~]+$",
              "type": "string"
            }
          },
          {
            "name": "after",
            "in": "query",
            "description": "Upper bound of the page of data to return (cannot be used together with [before] or [offset]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "pattern": "^[A-Z2-7=~]+$",
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Offset of the page of data to return (cannot be used together with [before] or [after]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "minimum": 0,
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum amount of items to return.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sorting_keys",
            "in": "query",
            "description": "The keys to sort the results by.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sorting_order",
            "in": "query",
            "description": "The order to sort the results by. Must be the same length as [sortingKeys]; one order per key.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/PageOrder"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of export jobs. If no jobs are found, an empty list is returned.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/CursorPaginatedResponseExportJob"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Export API (v2)"
        ],
        "summary": "Create a new export job",
        "description": "Use this endpoint to create a new export job that would transfer a list of specific accounting entries from Pleo to the target ERP/accounting system.",
        "operationId": "createExportJobV2",
        "requestBody": {
          "content": {
            "application/json;charset=UTF-8": {
              "schema": {
                "$ref": "#/components/schemas/CreateExportJob"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Export job created successfully.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/DataResponseExportJob"
                }
              }
            }
          },
          "409": {
            "description": "An export job is already in progress for this specific company. You cannot create a new export job until the current one has finished.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionInfo"
                },
                "example": {
                  "type": "EXPORT_ALREADY_IN_PROGRESS",
                  "message": "Export Job already in progress for this company."
                }
              }
            }
          }
        }
      }
    },
    "/v2/export-jobs/{jobId}": {
      "get": {
        "tags": [
          "Export API (v2)"
        ],
        "summary": "Get an Export Job",
        "description": "Retrieve an export job by a specific export job ID.",
        "operationId": "getExportJobByIdV2",
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "description": "Enter the specific export job ID that you are looking for.",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Export job found.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/DataResponseExportJob"
                }
              }
            }
          },
          "404": {
            "description": "Export job not found.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionInfo"
                },
                "example": {
                  "type": "EXPORT_NOT_FOUND",
                  "message": "Export job not found."
                }
              }
            }
          }
        }
      }
    },
    "/v2/export-jobs/{jobId}/items": {
      "get": {
        "tags": [
          "Export API (v2)"
        ],
        "summary": "Get Export Job Items",
        "description": "An export job item tracks the export progress of a specific accounting entry in an export job.\nUse this endpoint to retrieve a list of export job items that you want to track.",
        "operationId": "getExportJobItemsV2",
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "description": "Enter the specific export job ID to retrieve details about the job items included in this export job.",
              "format": "uuid"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Enter a specific status with which the list of export job items returned conforms.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string",
              "nullable": true,
              "enum": [
                "pending",
                "in_progress",
                "failed",
                "successful",
                "abandoned"
              ]
            }
          },
          {
            "name": "before",
            "in": "query",
            "description": "Lower bound of the page of data to return (cannot be used together with [after] or [offset]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "pattern": "^[A-Z2-7=~]+$",
              "type": "string"
            }
          },
          {
            "name": "after",
            "in": "query",
            "description": "Upper bound of the page of data to return (cannot be used together with [before] or [offset]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "pattern": "^[A-Z2-7=~]+$",
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Offset of the page of data to return (cannot be used together with [before] or [after]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "minimum": 0,
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum amount of items to return.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sorting_keys",
            "in": "query",
            "description": "The keys to sort the results by.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sorting_order",
            "in": "query",
            "description": "The order to sort the results by. Must be the same length as [sortingKeys]; one order per key.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/PageOrder"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Export job items found.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/CursorPaginatedResponseExportJobItem"
                }
              }
            }
          },
          "404": {
            "description": "Export job not found.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionInfo"
                },
                "example": {
                  "type": "EXPORT_NOT_FOUND",
                  "message": "Export job not found."
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Export API (v2)"
        ],
        "summary": "Update Export Job Items",
        "description": "Update the status and other attributes of the export job items in batches of 100. This API only supports updating up to 100 items.",
        "operationId": "updateExportJobItemsV2",
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "description": "Export Job ID",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json;charset=UTF-8": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/UpdateExportJobItem"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Export job items updated successfully.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ExportJobItemUpdate"
                }
              }
            }
          },
          "404": {
            "description": "Export job not found.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionInfo"
                },
                "example": {
                  "type": "EXPORT_NOT_FOUND",
                  "message": "Export job not found."
                }
              }
            }
          },
          "413": {
            "description": "Number of items to update is more than 100.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionInfo"
                },
                "example": {
                  "type": "EXPORT_JOB_ITEMS_UPDATE_LIMIT",
                  "message": "Number of items to update is more than 100."
                }
              }
            }
          },
          "422": {
            "description": "Export job is finished.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionInfo"
                },
                "example": {
                  "type": "EXPORT_JOB_STATUS_UNPROCESSABLE",
                  "message": "Export job is finished."
                }
              }
            }
          }
        }
      }
    },
    "/v3/export-items": {
      "get": {
        "tags": [
          "Export Items (v3)"
        ],
        "summary": "Get Export Items",
        "description": "An export item = an accounting entry transformed into an exportable entry. The accounting and bookkeeping information is collected from an accounting entry to form an export item.\n\n•  A request to this endpoint retrieves a list of export items selected for export.\n\n•  Please note that you can retrieve a list of export items only from `pending` and `in_progress` export jobs.",
        "operationId": "getExportItemsV3",
        "parameters": [
          {
            "name": "job_id",
            "in": "query",
            "description": "The Export Job ID in which the accounting entries have been included for export.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "before",
            "in": "query",
            "description": "Lower bound of the page of data to return (cannot be used together with [after] or [offset]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "pattern": "^[A-Z2-7=~]+$",
              "type": "string"
            }
          },
          {
            "name": "after",
            "in": "query",
            "description": "Upper bound of the page of data to return (cannot be used together with [before] or [offset]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "pattern": "^[A-Z2-7=~]+$",
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Offset of the page of data to return (cannot be used together with [before] or [after]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "minimum": 0,
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum amount of items to return.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sorting_keys",
            "in": "query",
            "description": "The keys to sort the results by.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sorting_order",
            "in": "query",
            "description": "The order to sort the results by. Must be the same length as [sortingKeys]; one order per key.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/PageOrder"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Export Items retrieved successfully.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/CursorPaginatedResponseExportItemV3"
                }
              }
            }
          },
          "400": {
            "description": "Contra accounts are not fully configured. Please map contra accounts in the Accounting settings. Export items cannot be retrieved until all Pleo accounts have corresponding contra accounts configured in the ERP/accounting system.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionInfo"
                },
                "example": {
                  "type": "MISSING_CONTRA_ACCOUNTS",
                  "message": "Contra accounts are not fully configured. Please map contra accounts in the Accounting settings."
                }
              }
            }
          },
          "422": {
            "description": "Export Job has finished. Only Export Items from running jobs can be retrieved.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionInfo"
                },
                "example": {
                  "type": "EXPORT_JOB_STATUS_UNPROCESSABLE",
                  "message": "Export Job is finished and can no longer be processed."
                }
              }
            }
          }
        }
      }
    },
    "/v3/export-job-events": {
      "post": {
        "tags": [
          "Export API (v3)"
        ],
        "summary": "Create an Export Job Event",
        "description": "\n            The Export Job Events imply the current status of the Export Job through the export lifecycle.\n            Send a request to this endpoint to update the status of the export job. If an export job has failed,\n            mention the failure reason and the reason type.\n            ",
        "operationId": "createExportJobEventV3",
        "requestBody": {
          "content": {
            "application/json;charset=UTF-8": {
              "schema": {
                "$ref": "#/components/schemas/CreateExportJobEvent"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Export Job Event created successfully."
          },
          "422": {
            "description": "Attempted invalid operation (trying to mark a `completed` job as `started`, and so on.)",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionInfo"
                },
                "example": {
                  "type": "INVALID_EXPORT_JOB_STATUS_CHANGE",
                  "message": "Export Job status change failed"
                }
              }
            }
          }
        }
      }
    },
    "/v3/export-job-items": {
      "get": {
        "tags": [
          "Export API (v3)"
        ],
        "summary": "Retrieve an export job item for a given accounting entry ID",
        "operationId": "getExportJobItemByAccountingEntryIdV3",
        "parameters": [
          {
            "name": "company_id",
            "in": "query",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "accounting_entry_id",
            "in": "query",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "target_system",
            "in": "query",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Export Job Item retrieved successfully.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/DataResponseExportJobItemV3"
                }
              }
            }
          },
          "404": {
            "description": "Export Job Item not found.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionInfo"
                },
                "example": {
                  "type": "EXPORT_ENTRY_NOT_FOUND",
                  "message": "Export Job Item not found"
                }
              }
            }
          },
          "422": {
            "description": "The supplied targetSystem filter does not match any active installation for this company.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionInfo"
                },
                "examples": {
                  "INVALID_TARGET_SYSTEM_FILTER": {
                    "description": "INVALID_TARGET_SYSTEM_FILTER",
                    "value": {
                      "type": "INVALID_TARGET_SYSTEM_FILTER",
                      "message": "targetSystems [netsuite] do not match an active installation for company 0b1e6a1a-4f6f-4a4b-9d0f-3e2f1a5c7b90"
                    }
                  }
                }
              }
            }
          }
        },
        "x-exclude": "true"
      }
    },
    "/v3/export-job-items:search": {
      "post": {
        "tags": [
          "Export API (v3)"
        ],
        "summary": "Search for export job items by accounting entry IDs",
        "description": "This endpoint is a temporary workaround and should not be used by external consumers.",
        "operationId": "searchExportJobItemsV3",
        "parameters": [
          {
            "name": "company_id",
            "in": "query",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "before",
            "in": "query",
            "description": "Lower bound of the page of data to return (cannot be used together with [after] or [offset]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "pattern": "^[A-Z2-7=~]+$",
              "type": "string"
            }
          },
          {
            "name": "after",
            "in": "query",
            "description": "Upper bound of the page of data to return (cannot be used together with [before] or [offset]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "pattern": "^[A-Z2-7=~]+$",
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Offset of the page of data to return (cannot be used together with [before] or [after]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "minimum": 0,
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum amount of items to return.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sorting_keys",
            "in": "query",
            "description": "The keys to sort the results by.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sorting_order",
            "in": "query",
            "description": "The order to sort the results by. Must be the same length as [sortingKeys]; one order per key.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/PageOrder"
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json;charset=UTF-8": {
              "schema": {
                "$ref": "#/components/schemas/SearchExportJobItemsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Export Job Items retrieved successfully.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/CursorPaginatedResponseExportJobItemV3"
                }
              }
            }
          },
          "422": {
            "description": "The supplied targetSystem filter does not match any active installation for this company.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionInfo"
                },
                "examples": {
                  "INVALID_TARGET_SYSTEM_FILTER": {
                    "description": "INVALID_TARGET_SYSTEM_FILTER",
                    "value": {
                      "type": "INVALID_TARGET_SYSTEM_FILTER",
                      "message": "targetSystems [netsuite] do not match an active installation for company 0b1e6a1a-4f6f-4a4b-9d0f-3e2f1a5c7b90"
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": true,
        "x-exclude": "true"
      }
    },
    "/v3/export-jobs": {
      "get": {
        "tags": [
          "Export API (v3)"
        ],
        "summary": "Get a list of Export Jobs",
        "description": "Fetch a list of export jobs.",
        "operationId": "getExportJobsListV3",
        "parameters": [
          {
            "name": "company_id",
            "in": "query",
            "description": "Enter the company ID for which you want to retrieve the list of export jobs processed previously.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "statuses",
            "in": "query",
            "description": "Fetch a list of jobs in specific states.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ExportJobStatus"
              }
            }
          },
          {
            "name": "target_systems",
            "in": "query",
            "description": "Restrict the returned export jobs to those recorded against any of the named target systems; the value is case-insensitive.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "before",
            "in": "query",
            "description": "Lower bound of the page of data to return (cannot be used together with [after] or [offset]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "pattern": "^[A-Z2-7=~]+$",
              "type": "string"
            }
          },
          {
            "name": "after",
            "in": "query",
            "description": "Upper bound of the page of data to return (cannot be used together with [before] or [offset]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "pattern": "^[A-Z2-7=~]+$",
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Offset of the page of data to return (cannot be used together with [before] or [after]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "minimum": 0,
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum amount of items to return.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sorting_keys",
            "in": "query",
            "description": "The keys to sort the results by.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sorting_order",
            "in": "query",
            "description": "The order to sort the results by. Must be the same length as [sortingKeys]; one order per key.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/PageOrder"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of export jobs. If no jobs are found, an empty list is returned.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/CursorPaginatedResponseExportJobV3"
                }
              }
            }
          },
          "422": {
            "description": "One or more values in the supplied targetSystems filter do not match any active installation for this company.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionInfo"
                },
                "examples": {
                  "INVALID_TARGET_SYSTEM_FILTER": {
                    "description": "INVALID_TARGET_SYSTEM_FILTER",
                    "value": {
                      "type": "INVALID_TARGET_SYSTEM_FILTER",
                      "message": "targetSystems [netsuite] do not match an active installation for company 0b1e6a1a-4f6f-4a4b-9d0f-3e2f1a5c7b90"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Export API (v3)"
        ],
        "summary": "Create a new export job",
        "description": "Use this endpoint to create a new export job that would transfer a list of specific accounting entries from Pleo to the target ERP/accounting system.",
        "operationId": "createExportJobV3",
        "requestBody": {
          "content": {
            "application/json;charset=UTF-8": {
              "schema": {
                "$ref": "#/components/schemas/CreateExportJob"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Export job created successfully.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/DataResponseExportJobV3"
                }
              }
            }
          },
          "400": {
            "description": "Contra accounts are not fully configured. Please map contra accounts in the Accounting settings. A new export job cannot be created until all Pleo accounts have corresponding contra accounts configured in the ERP/accounting system",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionInfo"
                },
                "example": {
                  "type": "MISSING_CONTRA_ACCOUNTS",
                  "message": "Contra accounts are not fully configured. Please map contra accounts in the Accounting settings."
                }
              }
            }
          },
          "409": {
            "description": "An export job is already in progress for this specific company. You cannot create a new export job until the current one has finished.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionInfo"
                },
                "example": {
                  "type": "EXPORT_ALREADY_IN_PROGRESS",
                  "message": "Export Job already in progress for this company."
                }
              }
            }
          },
          "422": {
            "description": "No active accounting integration was found for this company, or the supplied targetSystem does not match any active installation for this company.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionInfo"
                },
                "examples": {
                  "ACCOUNTING_INTEGRATION_NOT_FOUND": {
                    "description": "ACCOUNTING_INTEGRATION_NOT_FOUND",
                    "value": {
                      "type": "ACCOUNTING_INTEGRATION_NOT_FOUND",
                      "message": "No active accounting integration found for company 0b1e6a1a-4f6f-4a4b-9d0f-3e2f1a5c7b90 with accounting system exact_online_v2"
                    }
                  },
                  "INVALID_TARGET_SYSTEM": {
                    "description": "INVALID_TARGET_SYSTEM",
                    "value": {
                      "type": "INVALID_TARGET_SYSTEM",
                      "message": "targetSystem 'netsuite' does not match an active installation for company 0b1e6a1a-4f6f-4a4b-9d0f-3e2f1a5c7b90"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v3/export-jobs/{jobId}": {
      "get": {
        "tags": [
          "Export API (v3)"
        ],
        "summary": "Get an Export Job",
        "description": "Retrieve an export job by a specific export job ID.",
        "operationId": "getExportJobByIdV3",
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "description": "Enter the specific export job ID that you are looking for.",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Export job found.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/DataResponseExportJobV3"
                }
              }
            }
          },
          "404": {
            "description": "Export job not found.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionInfo"
                },
                "example": {
                  "type": "EXPORT_NOT_FOUND",
                  "message": "Export job not found."
                }
              }
            }
          }
        }
      }
    },
    "/v3/export-jobs/{jobId}/items": {
      "get": {
        "tags": [
          "Export API (v3)"
        ],
        "summary": "Get Export Job Items",
        "description": "An export job item tracks the export progress of a specific accounting entry in an export job. Use this endpoint to retrieve a list of export job items that you want to track.",
        "operationId": "getExportJobItemsV3",
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "description": "Enter the specific export job ID to retrieve details about the job items included in this export job.",
              "format": "uuid"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Enter a status to retrieve a list of export job items in the specified state.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "$ref": "#/components/schemas/ExportJobItemStatus"
            }
          },
          {
            "name": "before",
            "in": "query",
            "description": "Lower bound of the page of data to return (cannot be used together with [after] or [offset]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "pattern": "^[A-Z2-7=~]+$",
              "type": "string"
            }
          },
          {
            "name": "after",
            "in": "query",
            "description": "Upper bound of the page of data to return (cannot be used together with [before] or [offset]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "pattern": "^[A-Z2-7=~]+$",
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Offset of the page of data to return (cannot be used together with [before] or [after]).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "minimum": 0,
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum amount of items to return.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sorting_keys",
            "in": "query",
            "description": "The keys to sort the results by.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sorting_order",
            "in": "query",
            "description": "The order to sort the results by. Must be the same length as [sortingKeys]; one order per key.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/PageOrder"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Export job items found.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/CursorPaginatedResponseExportJobItemV3"
                }
              }
            }
          },
          "404": {
            "description": "Export job not found.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionInfo"
                },
                "example": {
                  "type": "EXPORT_NOT_FOUND",
                  "message": "Export job not found."
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Export API (v3)"
        ],
        "summary": "Update Export Job Items",
        "description": "Update the status and other attributes of the export job items in batches of 100. This API only supports updating up to 100 items.",
        "operationId": "updateExportJobItemsV3",
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "description": "Export Job ID",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json;charset=UTF-8": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/UpdateExportJobItemV3"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Export job items updated successfully.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ExportJobItemUpdateV3"
                }
              }
            }
          },
          "404": {
            "description": "Export job not found.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionInfo"
                },
                "example": {
                  "type": "EXPORT_NOT_FOUND",
                  "message": "Export job not found."
                }
              }
            }
          },
          "413": {
            "description": "Number of items to update is more than 100.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionInfo"
                },
                "example": {
                  "type": "EXPORT_JOB_ITEMS_UPDATE_LIMIT",
                  "message": "Number of items to update is more than 100."
                }
              }
            }
          },
          "422": {
            "description": "Export job is finished.",
            "content": {
              "application/json;charset=UTF-8": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionInfo"
                },
                "example": {
                  "type": "EXPORT_JOB_STATUS_UNPROCESSABLE",
                  "message": "Export job is finished."
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Account": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "The account code or number.",
            "nullable": true
          },
          "identifier": {
            "type": "string",
            "description": "The internal account identifier in the accounting system.",
            "nullable": true
          }
        },
        "description": "This is the GL account this accounting entry line is allocated to. The account code or the account identifier be present if an account has been allocated, or both.",
        "nullable": true
      },
      "AccountV1": {
        "required": [
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "The account code or number.",
            "nullable": true
          },
          "id": {
            "type": "string",
            "description": "This is the Pleo internal identifier of the account.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "identifier": {
            "type": "string",
            "description": "The internal account identifier in the accounting system.",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "This is the name of the account as set on the Pleo UI.",
            "example": "Meals and Entertainment"
          }
        },
        "description": "This is the GL account this accounting entry line is allocated to. The account code or the account identifier be present if an account has been allocated, or both.",
        "nullable": true
      },
      "AccountV2": {
        "required": [
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "The account code or number.",
            "nullable": true
          },
          "id": {
            "type": "string",
            "description": "This is the Pleo internal identifier of the account.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "identifier": {
            "type": "string",
            "description": "The internal account identifier in the accounting system.",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "This is the name of the account as set on the Pleo UI.",
            "example": "Meals and Entertainment"
          }
        },
        "description": "This is the specific General Ledger (GL) account allocated to the export item - the account code, the identifier, or both are mentioned, if any GL account is allocated.",
        "nullable": true
      },
      "AccountV3": {
        "required": [
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Account code or number.",
            "nullable": true
          },
          "id": {
            "type": "string",
            "description": "Account identifier assigned by Pleo.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "identifier": {
            "type": "string",
            "description": "Account identifier assigned by the ERP/accounting system.",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "Name of the account as set on the Pleo UI.",
            "example": "Meals and Entertainment"
          }
        },
        "description": "Specific General Ledger (GL) account allocated to the export item - the account code, the identifier, or both are mentioned, if any GL account is allocated.",
        "nullable": true
      },
      "AggregatedInvoiceStatusV1": {
        "type": "string",
        "description": "\n| Value  | Description |\n| ------ | ----------- |\n| received | Invoice received but not ready. |\n| parsing_pending_human_review | Automatic OCR and tagging was finished and human review is required. |\n| missing_information | Invoice is missing information, e.g. amount. |\n| pending_approval | Invoice is awaiting review by user (owner). |\n| parsed | Invoice parsing results have been processed; next status is being determined. |\n| preparing | Funds request sent and payment not yet initiated. |\n| prepared | Funds were frozen successfully but payment not yet initiated. |\n| ready | Invoice is ready to be scheduled for payment. |\n| rejected_by_approver | Approver rejected the invoice. |\n| marked_as_paid | User indicates the invoice has been paid outside of Pleo. |\n| scheduled | Invoice is scheduled for payment. |\n| queued_for_payment | Invoice has been moved to a queue for being paid. |\n| payment_in_progress | Payment is in progress. |\n| paid | Invoice has been paid, payment was confirmed. |\n| voided_by_user | User indicates invoice does not need to be processed; can only be used before the READY state. |\n| rejected_by_user | User can void an invoice even after approval. |\n| failed_payment | Invoice payment has been returned as failed. |\n| failed_internal_validation | Failed internal Pleo validation, e.g. rejected due to supplier. |\n| failed | Catch-all failure. |",
        "enum": [
          "received",
          "parsing_pending_human_review",
          "missing_information",
          "pending_approval",
          "parsed",
          "preparing",
          "prepared",
          "ready",
          "rejected_by_approver",
          "marked_as_paid",
          "scheduled",
          "queued_for_payment",
          "payment_in_progress",
          "paid",
          "voided_by_user",
          "rejected_by_user",
          "failed_payment",
          "failed_internal_validation",
          "failed"
        ]
      },
      "AttendeeV3": {
        "required": [
          "firstName",
          "id",
          "lastName"
        ],
        "type": "object",
        "properties": {
          "companyName": {
            "type": "string",
            "description": "Name of the company the attendee belongs to.",
            "nullable": true,
            "example": "Company Name"
          },
          "firstName": {
            "type": "string",
            "description": "First name of the attendee.",
            "example": "Thomas"
          },
          "id": {
            "type": "string",
            "description": "Pleo internal identifier of the attendee.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "lastName": {
            "type": "string",
            "description": "Last name of the attendee.",
            "example": "Schmidt"
          }
        },
        "description": "A participant who attended the spend, either an employee or an external contact."
      },
      "AttendeesV3": {
        "required": [
          "contacts",
          "employees"
        ],
        "type": "object",
        "properties": {
          "contacts": {
            "type": "array",
            "description": "External contacts who attended the spend.",
            "items": {
              "$ref": "#/components/schemas/AttendeeV3"
            }
          },
          "employees": {
            "type": "array",
            "description": "Company employees who attended the spend.",
            "items": {
              "$ref": "#/components/schemas/AttendeeV3"
            }
          }
        },
        "description": "Structured attendee data, including name and company, for participants at the time of the spend.",
        "nullable": true
      },
      "BookkeepingMethodV2": {
        "type": "string",
        "description": "Specifies the type of bookkeeping system used for recording the accounting entry.",
        "enum": [
          "none",
          "journal",
          "accounts_payable"
        ]
      },
      "BookkeepingMethodV3": {
        "type": "string",
        "description": "\n| Value  | Description |\n| ------ | ----------- |\n| none | No specific bookkeeping method is mentioned. |\n| journal | The accounting entries must be bookkept as one journal entry. |\n| accounts_payable | The accounting entry must be bookkept as an accounts payable entry. If this option is selected, the Vendor parameter must be present. |",
        "enum": [
          "none",
          "journal",
          "accounts_payable"
        ]
      },
      "BookkeepingV2": {
        "required": [
          "method"
        ],
        "type": "object",
        "properties": {
          "method": {
            "$ref": "#/components/schemas/BookkeepingMethodV2"
          }
        },
        "description": "Bookkeeping related configurations for an accounting entry.",
        "nullable": true
      },
      "BookkeepingV3": {
        "required": [
          "method"
        ],
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "This can be one of BookkeepingMethodV3 values",
            "example": "none"
          }
        },
        "description": "Bookkeeping related configurations for an accounting entry.",
        "nullable": true
      },
      "ContraAccount": {
        "required": [
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Contra account code or number.",
            "nullable": true
          },
          "id": {
            "type": "string",
            "description": "Contra account identifier assigned by Pleo.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "identifier": {
            "type": "string",
            "description": "Contra account identifier assigned by the ERP/accounting system.",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "Contra account name as specified in the Pleo app.",
            "example": "Pleo GBP Account"
          }
        },
        "description": "Account in the ERP/accounting system corresponding to each account of the customer in Pleo.",
        "nullable": true
      },
      "CountryCode": {
        "type": "string",
        "description": "Country of registration of the vendor (ISO 3166-1 alpha-2 country code (2 letters))",
        "example": "DK",
        "enum": [
          "UNDEFINED",
          "AC",
          "AD",
          "AE",
          "AF",
          "AG",
          "AI",
          "AL",
          "AM",
          "AN",
          "AO",
          "AQ",
          "AR",
          "AS",
          "AT",
          "AU",
          "AW",
          "AX",
          "AZ",
          "BA",
          "BB",
          "BD",
          "BE",
          "BF",
          "BG",
          "BH",
          "BI",
          "BJ",
          "BL",
          "BM",
          "BN",
          "BO",
          "BQ",
          "BR",
          "BS",
          "BT",
          "BU",
          "BV",
          "BW",
          "BY",
          "BZ",
          "CA",
          "CC",
          "CD",
          "CF",
          "CG",
          "CH",
          "CI",
          "CK",
          "CL",
          "CM",
          "CN",
          "CO",
          "CP",
          "CR",
          "CS",
          "CU",
          "CV",
          "CW",
          "CX",
          "CY",
          "CZ",
          "DE",
          "DG",
          "DJ",
          "DK",
          "DM",
          "DO",
          "DZ",
          "EA",
          "EC",
          "EE",
          "EG",
          "EH",
          "ER",
          "ES",
          "ET",
          "EU",
          "EZ",
          "FI",
          "FJ",
          "FK",
          "FM",
          "FO",
          "FR",
          "FX",
          "GA",
          "GB",
          "GD",
          "GE",
          "GF",
          "GG",
          "GH",
          "GI",
          "GL",
          "GM",
          "GN",
          "GP",
          "GQ",
          "GR",
          "GS",
          "GT",
          "GU",
          "GW",
          "GY",
          "HK",
          "HM",
          "HN",
          "HR",
          "HT",
          "HU",
          "IC",
          "ID",
          "IE",
          "IL",
          "IM",
          "IN",
          "IO",
          "IQ",
          "IR",
          "IS",
          "IT",
          "JE",
          "JM",
          "JO",
          "JP",
          "KE",
          "KG",
          "KH",
          "KI",
          "KM",
          "KN",
          "KP",
          "KR",
          "KW",
          "KY",
          "KZ",
          "LA",
          "LB",
          "LC",
          "LI",
          "LK",
          "LR",
          "LS",
          "LT",
          "LU",
          "LV",
          "LY",
          "MA",
          "MC",
          "MD",
          "ME",
          "MF",
          "MG",
          "MH",
          "MK",
          "ML",
          "MM",
          "MN",
          "MO",
          "MP",
          "MQ",
          "MR",
          "MS",
          "MT",
          "MU",
          "MV",
          "MW",
          "MX",
          "MY",
          "MZ",
          "NA",
          "NC",
          "NE",
          "NF",
          "NG",
          "NI",
          "NL",
          "NO",
          "NP",
          "NR",
          "NT",
          "NU",
          "NZ",
          "OM",
          "PA",
          "PE",
          "PF",
          "PG",
          "PH",
          "PK",
          "PL",
          "PM",
          "PN",
          "PR",
          "PS",
          "PT",
          "PW",
          "PY",
          "QA",
          "RE",
          "RO",
          "RS",
          "RU",
          "RW",
          "SA",
          "SB",
          "SC",
          "SD",
          "SE",
          "SF",
          "SG",
          "SH",
          "SI",
          "SJ",
          "SK",
          "SL",
          "SM",
          "SN",
          "SO",
          "SR",
          "SS",
          "ST",
          "SU",
          "SV",
          "SX",
          "SY",
          "SZ",
          "TA",
          "TC",
          "TD",
          "TF",
          "TG",
          "TH",
          "TJ",
          "TK",
          "TL",
          "TM",
          "TN",
          "TO",
          "TP",
          "TR",
          "TT",
          "TV",
          "TW",
          "TZ",
          "UA",
          "UG",
          "UK",
          "UM",
          "US",
          "UY",
          "UZ",
          "VA",
          "VC",
          "VE",
          "VG",
          "VI",
          "VN",
          "VU",
          "WF",
          "WS",
          "XI",
          "XU",
          "XK",
          "YE",
          "YT",
          "YU",
          "ZA",
          "ZM",
          "ZR",
          "ZW"
        ]
      },
      "CreateExportJob": {
        "required": [
          "accountingEntryIds",
          "companyId"
        ],
        "type": "object",
        "properties": {
          "accountingEntryIds": {
            "type": "array",
            "description": "The IDs of accounting entries that you want to include in the export job for transmission.",
            "items": {
              "type": "string",
              "description": "The IDs of accounting entries that you want to include in the export job for transmission.",
              "format": "uuid"
            }
          },
          "companyId": {
            "type": "string",
            "description": "The unique company ID for which you want to create the export job.",
            "format": "uuid"
          },
          "employeeId": {
            "type": "string",
            "description": "This is the Pleo unique identifier of the user that initiated the export job.",
            "format": "uuid",
            "nullable": true
          },
          "isInteractive": {
            "type": "boolean",
            "description": "Non-interactive jobs are jobs that are not initiated by a user. These jobs are usually triggered in the background and require no user interaction. Interactive jobs are the opposite. Set this flag to true if the export job is to be initiated by a user. By default, this is set to true.",
            "nullable": true,
            "default": true
          },
          "options": {
            "$ref": "#/components/schemas/Options"
          },
          "targetSystem": {
            "type": "string",
            "description": "The target system for this export job, for example, an ERP system or another integrated system. Must match an active Pleo App marketplace installation or currently connected integration for the company; the value is case-insensitive. If omitted, the target system is inferred automatically.",
            "nullable": true
          }
        }
      },
      "CreateExportJobEvent": {
        "required": [
          "event",
          "jobId"
        ],
        "type": "object",
        "properties": {
          "event": {
            "$ref": "#/components/schemas/ExportJobEventType"
          },
          "failureReason": {
            "type": "string",
            "description": "Reason why the job failed in the case of a failure. Include this only when the export job event has a `failed` status."
          },
          "failureReasonType": {
            "$ref": "#/components/schemas/ExportJobFailureReasonType"
          },
          "jobId": {
            "type": "string",
            "description": "Identifier of the job the event is to be processed for.",
            "format": "uuid"
          }
        }
      },
      "CreditNoteAllocationV3": {
        "required": [
          "allocatedAmount",
          "allocatedBy",
          "id",
          "invoiceId",
          "invoiceInformation"
        ],
        "type": "object",
        "properties": {
          "allocatedAmount": {
            "$ref": "#/components/schemas/MoneyModel"
          },
          "allocatedBy": {
            "type": "string",
            "description": "Identifier of the employee who performed the allocation.",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
          },
          "id": {
            "type": "string",
            "description": "Unique identifier of the allocation.",
            "format": "uuid",
            "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
          },
          "invoiceId": {
            "type": "string",
            "description": "The ID of the invoice this allocation applies to.",
            "example": "c3c0f9a1-0c4b-4b88-9b3a-2b2e2f39e2c1"
          },
          "invoiceInformation": {
            "$ref": "#/components/schemas/InvoiceInformationV3"
          }
        },
        "description": "Allocations linking this credit note to one or more invoices. Can be empty if the credit note is not allocated to any invoice."
      },
      "CreditNoteInformationV3": {
        "required": [
          "allocations"
        ],
        "type": "object",
        "properties": {
          "allocations": {
            "type": "array",
            "description": "Allocations linking this credit note to one or more invoices. Can be empty if the credit note is not allocated to any invoice.",
            "items": {
              "$ref": "#/components/schemas/CreditNoteAllocationV3"
            }
          },
          "creditNoteNumber": {
            "type": "string",
            "description": "Credit note identifier/number.",
            "nullable": true,
            "example": "CN-000123"
          },
          "issuingDate": {
            "pattern": "YYYY-MM-DDTHH:mi:ssZ",
            "type": "string",
            "description": "Date the credit note was issued.",
            "format": "date-time",
            "nullable": true
          }
        },
        "description": "Credit note details, if applicable. Only included for credit note entries.",
        "nullable": true
      },
      "CursorPageCurrentRequestInfo": {
        "required": [
          "parameters"
        ],
        "type": "object",
        "properties": {
          "after": {
            "type": "string"
          },
          "before": {
            "type": "string"
          },
          "limit": {
            "type": "integer",
            "format": "int32"
          },
          "offset": {
            "type": "integer",
            "format": "int64"
          },
          "parameters": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "sortingKeys": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "sortingOrder": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PageOrder"
            }
          }
        }
      },
      "CursorPageInfo": {
        "required": [
          "currentRequestPagination",
          "hasNextPage",
          "hasPreviousPage"
        ],
        "type": "object",
        "properties": {
          "currentRequestPagination": {
            "$ref": "#/components/schemas/CursorPageCurrentRequestInfo"
          },
          "endCursor": {
            "type": "string"
          },
          "hasNextPage": {
            "type": "boolean"
          },
          "hasPreviousPage": {
            "type": "boolean"
          },
          "startCursor": {
            "type": "string"
          },
          "total": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "CursorPaginatedResponseExportItem": {
        "required": [
          "data",
          "pagination"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExportItem"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/CursorPageInfo"
          }
        }
      },
      "CursorPaginatedResponseExportItemV1": {
        "required": [
          "data",
          "pagination"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExportItemV1"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/CursorPageInfo"
          }
        }
      },
      "CursorPaginatedResponseExportItemV2": {
        "required": [
          "data",
          "pagination"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExportItemV2"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/CursorPageInfo"
          }
        }
      },
      "CursorPaginatedResponseExportItemV3": {
        "required": [
          "data",
          "pagination"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExportItemV3"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/CursorPageInfo"
          }
        }
      },
      "CursorPaginatedResponseExportJob": {
        "required": [
          "data",
          "pagination"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExportJob"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/CursorPageInfo"
          }
        }
      },
      "CursorPaginatedResponseExportJobItem": {
        "required": [
          "data",
          "pagination"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExportJobItem"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/CursorPageInfo"
          }
        }
      },
      "CursorPaginatedResponseExportJobItemV3": {
        "required": [
          "data",
          "pagination"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExportJobItemV3"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/CursorPageInfo"
          }
        }
      },
      "CursorPaginatedResponseExportJobV3": {
        "required": [
          "data",
          "pagination"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExportJobV3"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/CursorPageInfo"
          }
        }
      },
      "DataResponseExportJob": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ExportJob"
          }
        }
      },
      "DataResponseExportJobItemV3": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ExportJobItemV3"
          }
        }
      },
      "DataResponseExportJobV3": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ExportJobV3"
          }
        }
      },
      "ExceptionInfo": {
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        }
      },
      "ExportItem": {
        "required": [
          "_links",
          "accountingEntryId",
          "accountingEntryLines",
          "amount",
          "companyId",
          "date",
          "metadata",
          "type",
          "user"
        ],
        "type": "object",
        "properties": {
          "_links": {
            "$ref": "#/components/schemas/LinksResponse"
          },
          "accountingEntryId": {
            "type": "string",
            "description": "This is the Pleo internal identifier of the export item.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "accountingEntryLines": {
            "type": "array",
            "description": "Accounting entry broken down in entry lines. There will always be an accounting entry line. If the accounting entry has been split into separate lines, then each line would represent the details of that accounting entry line, else there would only be one line present, representing the whole entry.",
            "items": {
              "$ref": "#/components/schemas/ExportItemLine"
            }
          },
          "amount": {
            "$ref": "#/components/schemas/ExportItemAmount"
          },
          "companyId": {
            "type": "string",
            "description": "Pleo company identifier this export item belongs to.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "date": {
            "pattern": "YYYY-MM-DDTHH:mi:ssZ",
            "type": "string",
            "description": "The date when the accounting entry was recorded.",
            "format": "date-time"
          },
          "files": {
            "type": "array",
            "description": "Files that have been attached to this accounting entry.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ExportItemFile"
            }
          },
          "metadata": {
            "$ref": "#/components/schemas/ExportItemMetadata"
          },
          "note": {
            "type": "string",
            "description": "Additional comments potentially describing the accounting entry.",
            "nullable": true
          },
          "supplier": {
            "$ref": "#/components/schemas/Supplier"
          },
          "teamCode": {
            "type": "string",
            "description": "Team code is an identifier assigned to an expense to categorize it or associate it with a specific team.",
            "nullable": true
          },
          "type": {
            "type": "string",
            "description": "This is the Pleo internal identifier of the accounting entry this export item is associated with.",
            "enum": [
              "card_purchase",
              "card_invoice",
              "out_of_pocket",
              "mileage",
              "per_diem",
              "external_reimbursement",
              "direct_reimbursement",
              "invoice",
              "invoice_payment",
              "chargeback",
              "refund",
              "cashback",
              "atm_withdrawal",
              "wallet_topup",
              "wallet_unload"
            ]
          },
          "user": {
            "$ref": "#/components/schemas/ExportItemUser"
          }
        }
      },
      "ExportItemAdditionalInformationV1": {
        "required": [
          "reconciliationId"
        ],
        "type": "object",
        "properties": {
          "attendees": {
            "type": "array",
            "description": "Used to represent attendance involvement or participants at the time of the spend. E.g. if an employee took clients to dinner, this would be used to capture who was present at the dinner.",
            "nullable": true,
            "items": {
              "type": "string",
              "description": "Used to represent attendance involvement or participants at the time of the spend. E.g. if an employee took clients to dinner, this would be used to capture who was present at the dinner.",
              "nullable": true
            }
          },
          "invoiceInformation": {
            "$ref": "#/components/schemas/InvoiceInformationV1"
          },
          "reconciledEntries": {
            "uniqueItems": true,
            "type": "array",
            "description": "A list of reconciliation IDs for reimbursement expenses that are settled by this reimbursement. Only included for reimbursement transactions.",
            "nullable": true,
            "items": {
              "type": "string",
              "description": "A list of reconciliation IDs for reimbursement expenses that are settled by this reimbursement. Only included for reimbursement transactions.",
              "nullable": true
            }
          },
          "reconciliationId": {
            "type": "string",
            "description": "This is an identifier used to reconcile between Pleo and the accounting system. Also known in Pleo as the book ID."
          }
        },
        "description": "Additional information applicable to this accounting entry."
      },
      "ExportItemAdditionalInformationV2": {
        "required": [
          "reconciliationId"
        ],
        "type": "object",
        "properties": {
          "attendees": {
            "type": "array",
            "description": "Indicates attendance of participants at the time of the spend. For example, if an employee took clients to dinner, this attribute indicates who were present at the dinner.",
            "nullable": true,
            "items": {
              "type": "string",
              "description": "Indicates attendance of participants at the time of the spend. For example, if an employee took clients to dinner, this attribute indicates who were present at the dinner.",
              "nullable": true
            }
          },
          "invoiceInformation": {
            "$ref": "#/components/schemas/InvoiceInformationV2"
          },
          "reconciledEntries": {
            "uniqueItems": true,
            "type": "array",
            "description": "A list of reconciliation IDs for reimbursement expenses that are settled by this reimbursement. Only included for reimbursement transactions.",
            "nullable": true,
            "items": {
              "type": "string",
              "description": "A list of reconciliation IDs for reimbursement expenses that are settled by this reimbursement. Only included for reimbursement transactions.",
              "nullable": true
            }
          },
          "reconciliationId": {
            "type": "string",
            "description": "This is an identifier used to reconcile between Pleo and the accounting system. Also known in Pleo as the book ID."
          }
        },
        "description": "Additional information applicable to this accounting entry."
      },
      "ExportItemAdditionalInformationV3": {
        "required": [
          "reconciliationId"
        ],
        "type": "object",
        "properties": {
          "attendees": {
            "type": "array",
            "description": "Indicates attendance of participants at the time of the spend. For example, if an employee took clients to dinner, this attribute indicates who were present at the dinner.",
            "nullable": true,
            "items": {
              "type": "string",
              "description": "Indicates attendance of participants at the time of the spend. For example, if an employee took clients to dinner, this attribute indicates who were present at the dinner.",
              "nullable": true
            }
          },
          "attendeesData": {
            "$ref": "#/components/schemas/AttendeesV3"
          },
          "creditNoteInformation": {
            "$ref": "#/components/schemas/CreditNoteInformationV3"
          },
          "invoiceInformation": {
            "$ref": "#/components/schemas/InvoiceInformationV3"
          },
          "reconciledEntries": {
            "uniqueItems": true,
            "type": "array",
            "description": "A list of reconciliation IDs for reimbursement expenses that are settled by this reimbursement. Only included for reimbursement transactions.",
            "nullable": true,
            "items": {
              "type": "string",
              "description": "A list of reconciliation IDs for reimbursement expenses that are settled by this reimbursement. Only included for reimbursement transactions.",
              "nullable": true
            }
          },
          "reconciliationId": {
            "type": "string",
            "description": "Identifier used to reconcile between Pleo and the accounting system. Also known in Pleo as the book ID."
          }
        },
        "description": "Additional information applicable to this accounting entry."
      },
      "ExportItemAmount": {
        "required": [
          "inSupplierCurrency",
          "inWalletCurrency"
        ],
        "type": "object",
        "properties": {
          "inSupplierCurrency": {
            "$ref": "#/components/schemas/MoneyModel"
          },
          "inWalletCurrency": {
            "$ref": "#/components/schemas/MoneyModel"
          }
        },
        "description": "Export item amount."
      },
      "ExportItemAmountV3": {
        "required": [
          "inSupplierCurrency",
          "inWalletCurrency"
        ],
        "type": "object",
        "properties": {
          "inSupplierCurrency": {
            "$ref": "#/components/schemas/MoneyModel"
          },
          "inWalletCurrency": {
            "$ref": "#/components/schemas/MoneyModel"
          }
        },
        "description": "Export item amount."
      },
      "ExportItemFile": {
        "required": [
          "size",
          "type",
          "url"
        ],
        "type": "object",
        "properties": {
          "size": {
            "type": "integer",
            "description": "Size of the file in bytes.",
            "format": "int32",
            "example": 2084
          },
          "type": {
            "type": "string",
            "description": "Type of file, usually represented similar to mime type.",
            "example": "application/pdf"
          },
          "url": {
            "type": "string",
            "description": "URL to retrieve the file attachment from. This URL is active for a limited time (24 Hours) from the time the export item is fetched.",
            "example": "https://file.url"
          }
        },
        "description": "Files that have been attached to this accounting entry.",
        "nullable": true
      },
      "ExportItemLine": {
        "required": [
          "accountingEntryLineId",
          "lineAmount",
          "netAmount"
        ],
        "type": "object",
        "properties": {
          "account": {
            "$ref": "#/components/schemas/Account"
          },
          "accountingEntryLineId": {
            "type": "string",
            "description": "This is the Pleo internal identifier of this accounting entry line.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "lineAmount": {
            "$ref": "#/components/schemas/ExportItemAmount"
          },
          "netAmount": {
            "$ref": "#/components/schemas/ExportItemAmount"
          },
          "tags": {
            "type": "array",
            "description": "Tags are used to appropriate funds to specific projects, cost centers, departments, etc. This is what is known as \"tags\" in Pleo.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/Tag"
            }
          },
          "tax": {
            "$ref": "#/components/schemas/Tax"
          }
        },
        "description": "Accounting entry broken down in entry lines. There will always be an accounting entry line. If the accounting entry has been split into separate lines, then each line would represent the details of that accounting entry line, else there would only be one line present, representing the whole entry."
      },
      "ExportItemLineAmountV3": {
        "required": [
          "inSupplierCurrency",
          "inWalletCurrency"
        ],
        "type": "object",
        "properties": {
          "inSupplierCurrency": {
            "$ref": "#/components/schemas/MoneyModel"
          },
          "inWalletCurrency": {
            "$ref": "#/components/schemas/MoneyModel"
          }
        },
        "description": "Amount of the specific accounting entry line."
      },
      "ExportItemLineV1": {
        "required": [
          "accountingEntryLineId",
          "lineAmount",
          "netAmount"
        ],
        "type": "object",
        "properties": {
          "account": {
            "$ref": "#/components/schemas/AccountV1"
          },
          "accountingEntryLineId": {
            "type": "string",
            "description": "This is the Pleo internal identifier of this accounting entry line.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "lineAmount": {
            "$ref": "#/components/schemas/ExportItemAmount"
          },
          "netAmount": {
            "$ref": "#/components/schemas/ExportItemAmount"
          },
          "tags": {
            "type": "array",
            "description": "Tags are used to appropriate funds to specific projects, cost centers, departments, etc. This is what is known as \"tags\" in Pleo.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/TagV1"
            }
          },
          "tax": {
            "$ref": "#/components/schemas/TaxV1"
          }
        },
        "description": "Accounting entry broken down in entry lines. There will always be an accounting entry line. If the accounting entry has been split into separate lines, then each line would represent the details of that accounting entry line, else there would only be one line present, representing the whole entry."
      },
      "ExportItemLineV2": {
        "required": [
          "accountingEntryLineId",
          "lineAmount",
          "netAmount"
        ],
        "type": "object",
        "properties": {
          "account": {
            "$ref": "#/components/schemas/AccountV2"
          },
          "accountingEntryLineId": {
            "type": "string",
            "description": "This is the ID of the specific line.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "lineAmount": {
            "$ref": "#/components/schemas/ExportItemAmount"
          },
          "netAmount": {
            "$ref": "#/components/schemas/ExportItemAmount"
          },
          "tags": {
            "type": "array",
            "description": "Tags are cost centres allocated to an export item.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/TagV2"
            }
          },
          "tax": {
            "$ref": "#/components/schemas/TaxV2"
          }
        },
        "description": "An accounting entry is represented with either a single line or multiple lines that explain the details. So, if the accounting entry is split into multiple lines, each line has a unique ID."
      },
      "ExportItemLineV3": {
        "required": [
          "accountingEntryLineId",
          "lineAmount",
          "netAmount"
        ],
        "type": "object",
        "properties": {
          "account": {
            "$ref": "#/components/schemas/AccountV3"
          },
          "accountingEntryLineId": {
            "type": "string",
            "description": "ID of the specific line.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "lineAmount": {
            "$ref": "#/components/schemas/ExportItemLineAmountV3"
          },
          "netAmount": {
            "$ref": "#/components/schemas/ExportItemNetAmountV3"
          },
          "tags": {
            "type": "array",
            "description": "Tags are cost centres allocated to an export item.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/TagV3"
            }
          },
          "tax": {
            "$ref": "#/components/schemas/TaxV3"
          }
        },
        "description": "An accounting entry is represented with either a single line or multiple lines that explain the details. So, if the accounting entry is split into multiple lines, each line has a unique ID."
      },
      "ExportItemMetadata": {
        "required": [
          "reconciliationId"
        ],
        "type": "object",
        "properties": {
          "attendees": {
            "type": "array",
            "description": "Used to represent attendance involvement or participants at the time of the spend. E.g. if an employee took clients to dinner, this would be used to capture who was present at the dinner.",
            "nullable": true,
            "items": {
              "type": "string",
              "description": "Used to represent attendance involvement or participants at the time of the spend. E.g. if an employee took clients to dinner, this would be used to capture who was present at the dinner.",
              "nullable": true
            }
          },
          "invoiceInformation": {
            "$ref": "#/components/schemas/InvoiceInformation"
          },
          "reconciliationId": {
            "type": "string",
            "description": "This is an identifier used to reconcile between Pleo and the accounting system. Also known in Pleo as the book ID."
          }
        },
        "description": "Additional metadata applicable to this accounting entry."
      },
      "ExportItemNetAmountV3": {
        "required": [
          "inSupplierCurrency",
          "inWalletCurrency"
        ],
        "type": "object",
        "properties": {
          "inSupplierCurrency": {
            "$ref": "#/components/schemas/MoneyModel"
          },
          "inWalletCurrency": {
            "$ref": "#/components/schemas/MoneyModel"
          }
        },
        "description": "Amount either including or excluding tax. This depends on the tax code, represented in the tax type attribute."
      },
      "ExportItemSubTypeV3": {
        "type": "string",
        "description": "\n| Value  | Description |\n| ------ | ----------- |\n| reimbursement_to_employee_refund | Return of a reimbursement to an employee that bounced and/or failed, reversing the original reimbursement transaction. |\n| reimbursement_to_company | Reimbursement paid to the company, typically when an employee returns funds or makes an accidental purchase with a Pleo card. |\n| reimbursement_to_employee | Reimbursement paid to an employee for expenses made out of pocket, either through direct transfer or external payment method. |\n| invoice_payment_returned | Invoice payment that was returned or reversed, typically due to payment failure or cancellation after the payment was initially processed. |\n| invoice_payment_sent | Invoice payment that was successfully sent, confirming the payment for an invoice. |\n| interest | Interest charged as a fee, typically for overdraft usage. |",
        "enum": [
          "reimbursement_to_employee_refund",
          "reimbursement_to_company",
          "reimbursement_to_employee",
          "invoice_payment_returned",
          "invoice_payment_sent",
          "interest"
        ]
      },
      "ExportItemTypeV3": {
        "type": "string",
        "description": "\n| Value  | Description |\n| ------ | ----------- |\n| card_purchase | An expense made using Pleo cards. |\n| card_invoice | An invoice paid using a card containing details of an invoice number, amounts, supplier information, and taxes. |\n| out_of_pocket | An expense made by an employee using their personal funds, for which they need to be reimbursed. |\n| mileage | An allowance which a company can pay out to employees for driving their own car on business trips. |\n| per_diem | A daily travel allowance for business travel. |\n| external_reimbursement | Refund, through cash or payroll, to an employee for an expense made using their personal funds. This is handled outside of Pleo and does not affect the Pleo Wallet balance. |\n| direct_reimbursement | Refund, by directly transferring funds from the Pleo Wallet, to an employee’s personal card or bank account for an expense made using their personal funds. |\n| invoice | Invoice document with details of invoice number, amounts, supplier information, and taxes. |\n| invoice_payment | Information about the payment made for an invoice. |\n| chargeback | Return of funds for a previous card expense, usually as a result of a dispute. |\n| refund | Refund on a spend from the supplier. |\n| cashback | Cashback offered by Pleo, a way to reward customers for spending on Pleo. |\n| atm_withdrawal | Cash withdrawn from an ATM. |\n| wallet_topup | Transferring funds to the Pleo wallet from your company's bank account. |\n| wallet_unload | Withdrawing funds from the Pleo wallet to your company's bank account. |\n| personal_spend | An expense made by an employee using their card for personal reasons. |\n| fee | Any fees charged to the customer, including forex fees, overdraft fees, and interest. |\n| credit_note | A supplier-issued document that reduces or cancels an invoice amount and can be applied to future payments. |",
        "enum": [
          "card_purchase",
          "card_invoice",
          "out_of_pocket",
          "mileage",
          "per_diem",
          "external_reimbursement",
          "direct_reimbursement",
          "invoice",
          "invoice_payment",
          "chargeback",
          "refund",
          "cashback",
          "atm_withdrawal",
          "wallet_topup",
          "wallet_unload",
          "personal_spend",
          "fee",
          "credit_note"
        ]
      },
      "ExportItemUser": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "This would usually represent the employee code.",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "Full name of the user.",
            "example": "John Doe"
          }
        },
        "description": "This applies to the person that initiated the spend. This would in most cases be the employee."
      },
      "ExportItemUserV1": {
        "required": [
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "This would usually represent the employee code.",
            "nullable": true
          },
          "id": {
            "type": "string",
            "description": "This is the Pleo internal identifier of the user.",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "name": {
            "type": "string",
            "description": "Full name of the user.",
            "example": "John Doe"
          }
        },
        "description": "This applies to the person that initiated the spend. This would in most cases be the employee."
      },
      "ExportItemUserV2": {
        "required": [
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "This would usually represent the employee code.",
            "nullable": true
          },
          "id": {
            "type": "string",
            "description": "This is the Pleo internal identifier of the user.",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "name": {
            "type": "string",
            "description": "Full name of the user.",
            "example": "John Doe"
          }
        },
        "description": "This applies to the person that initiated the spend. In most cases this would be the employee.",
        "nullable": true
      },
      "ExportItemUserV3": {
        "required": [
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "This would usually represent the employee code.",
            "nullable": true
          },
          "id": {
            "type": "string",
            "description": "Pleo internal identifier of the user.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "name": {
            "type": "string",
            "description": "Full name of the user.",
            "example": "John Doe"
          }
        },
        "description": "This applies to the person that initiated the spend. In most cases this would be the employee.",
        "nullable": true
      },
      "ExportItemV1": {
        "required": [
          "_links",
          "accountingEntryId",
          "accountingEntryLines",
          "additionalInformation",
          "amount",
          "companyId",
          "date",
          "type",
          "user"
        ],
        "type": "object",
        "properties": {
          "_links": {
            "$ref": "#/components/schemas/LinksResponse"
          },
          "accountingEntryId": {
            "type": "string",
            "description": "This is the Pleo internal identifier of the export item.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "accountingEntryLines": {
            "type": "array",
            "description": "Accounting entry broken down in entry lines. There will always be an accounting entry line. If the accounting entry has been split into separate lines, then each line would represent the details of that accounting entry line, else there would only be one line present, representing the whole entry.",
            "items": {
              "$ref": "#/components/schemas/ExportItemLineV1"
            }
          },
          "additionalInformation": {
            "$ref": "#/components/schemas/ExportItemAdditionalInformationV1"
          },
          "amount": {
            "$ref": "#/components/schemas/ExportItemAmount"
          },
          "companyId": {
            "type": "string",
            "description": "Pleo company identifier this export item belongs to.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "date": {
            "pattern": "YYYY-MM-DDTHH:mi:ssZ",
            "type": "string",
            "description": "Date the accounting entry should be bookkept.",
            "format": "date-time"
          },
          "files": {
            "type": "array",
            "description": "Files that have been attached to this accounting entry.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ExportItemFile"
            }
          },
          "note": {
            "type": "string",
            "description": "Additional comments potentially describing the accounting entry.",
            "nullable": true
          },
          "supplier": {
            "$ref": "#/components/schemas/SupplierV1"
          },
          "team": {
            "$ref": "#/components/schemas/TeamV1"
          },
          "teamCode": {
            "type": "string",
            "description": "Team code is an identifier assigned to an expense to categorize it or associate it with a specific team.",
            "nullable": true
          },
          "type": {
            "type": "string",
            "description": "This is the Pleo internal identifier of the accounting entry this export item is associated with.",
            "enum": [
              "card_purchase",
              "card_invoice",
              "out_of_pocket",
              "mileage",
              "per_diem",
              "external_reimbursement",
              "direct_reimbursement",
              "invoice",
              "invoice_payment",
              "chargeback",
              "refund",
              "cashback",
              "atm_withdrawal",
              "wallet_topup",
              "wallet_unload",
              "personal_spend",
              "fee"
            ]
          },
          "user": {
            "$ref": "#/components/schemas/ExportItemUserV1"
          }
        }
      },
      "ExportItemV2": {
        "required": [
          "_links",
          "accountingEntryId",
          "accountingEntryLines",
          "additionalInformation",
          "amount",
          "companyId",
          "date",
          "type"
        ],
        "type": "object",
        "properties": {
          "_links": {
            "$ref": "#/components/schemas/LinksResponse"
          },
          "accountingEntryId": {
            "type": "string",
            "description": "This is the Pleo internal identifier of the export item (identifier of the expense).",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "accountingEntryLines": {
            "type": "array",
            "description": "An accounting entry is represented with either a single line or multiple lines that explain the details. So, if the accounting entry is split into multiple lines, each line has a unique ID.",
            "items": {
              "$ref": "#/components/schemas/ExportItemLineV2"
            }
          },
          "additionalInformation": {
            "$ref": "#/components/schemas/ExportItemAdditionalInformationV2"
          },
          "amount": {
            "$ref": "#/components/schemas/ExportItemAmount"
          },
          "bookkeeping": {
            "$ref": "#/components/schemas/BookkeepingV2"
          },
          "companyId": {
            "type": "string",
            "description": "Pleo company identifier this export item belongs to.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "date": {
            "pattern": "YYYY-MM-DDTHH:mi:ssZ",
            "type": "string",
            "description": "The date when the export item was book kept.",
            "format": "date-time"
          },
          "files": {
            "type": "array",
            "description": "Files that have been attached to this accounting entry.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ExportItemFile"
            }
          },
          "note": {
            "type": "string",
            "description": "Additional comments potentially describing the accounting entry.",
            "nullable": true
          },
          "servicePeriod": {
            "$ref": "#/components/schemas/ServicePeriodV2"
          },
          "subType": {
            "type": "string",
            "description": "Optional subtype for the export item, providing additional categorisation within the main type.",
            "nullable": true
          },
          "supplier": {
            "$ref": "#/components/schemas/SupplierV2"
          },
          "team": {
            "$ref": "#/components/schemas/TeamV2"
          },
          "teamCode": {
            "type": "string",
            "description": "Team code is an identifier assigned to an expense to categorize it or associate it with a specific team.",
            "nullable": true
          },
          "type": {
            "type": "string",
            "description": "This is the Pleo internal identifier assigned to the export item, based on the type of expense it is. For example, a specific identifier is assigned to a card_purchase accounting entry.",
            "enum": [
              "card_purchase",
              "card_invoice",
              "out_of_pocket",
              "mileage",
              "per_diem",
              "external_reimbursement",
              "direct_reimbursement",
              "invoice",
              "invoice_payment",
              "chargeback",
              "refund",
              "cashback",
              "atm_withdrawal",
              "wallet_topup",
              "wallet_unload",
              "personal_spend",
              "fee"
            ]
          },
          "user": {
            "$ref": "#/components/schemas/ExportItemUserV2"
          },
          "vendor": {
            "$ref": "#/components/schemas/VendorV2"
          }
        }
      },
      "ExportItemV3": {
        "required": [
          "_links",
          "accountingEntryId",
          "accountingEntryLines",
          "additionalInformation",
          "amount",
          "companyId",
          "date",
          "type"
        ],
        "type": "object",
        "properties": {
          "_links": {
            "$ref": "#/components/schemas/LinksResponse"
          },
          "accountingEntryId": {
            "type": "string",
            "description": "Pleo internal identifier of the export item (identifier of the expense).",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "accountingEntryLines": {
            "type": "array",
            "description": "An accounting entry is represented with either a single line or multiple lines that explain the details. So, if the accounting entry is split into multiple lines, each line has a unique ID.",
            "items": {
              "$ref": "#/components/schemas/ExportItemLineV3"
            }
          },
          "additionalInformation": {
            "$ref": "#/components/schemas/ExportItemAdditionalInformationV3"
          },
          "amount": {
            "$ref": "#/components/schemas/ExportItemAmountV3"
          },
          "bookkeeping": {
            "$ref": "#/components/schemas/BookkeepingV3"
          },
          "companyId": {
            "type": "string",
            "description": "Pleo company identifier this export item belongs to.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "contraAccount": {
            "$ref": "#/components/schemas/ContraAccount"
          },
          "date": {
            "pattern": "YYYY-MM-DDTHH:mi:ssZ",
            "type": "string",
            "description": "The date when the export item was book kept.",
            "format": "date-time"
          },
          "files": {
            "type": "array",
            "description": "Files that have been attached to this accounting entry.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ExportItemFile"
            }
          },
          "note": {
            "type": "string",
            "description": "Additional comments potentially describing the accounting entry.",
            "nullable": true
          },
          "servicePeriod": {
            "$ref": "#/components/schemas/ServicePeriodV3"
          },
          "subType": {
            "type": "string",
            "description": "This can be one of ExportItemSubTypeV3 values",
            "example": "reimbursement_to_employee_refund"
          },
          "supplier": {
            "$ref": "#/components/schemas/SupplierV3"
          },
          "team": {
            "$ref": "#/components/schemas/TeamV3"
          },
          "type": {
            "type": "string",
            "description": "This can be one of ExportItemTypeV3 values",
            "example": "card_purchase"
          },
          "user": {
            "$ref": "#/components/schemas/ExportItemUserV3"
          },
          "vendor": {
            "$ref": "#/components/schemas/VendorV3"
          }
        }
      },
      "ExportJob": {
        "required": [
          "companyId",
          "createdAt",
          "expiresIn",
          "id",
          "isInteractive",
          "numberOfItems",
          "status",
          "vendorBasedBookkeeping"
        ],
        "type": "object",
        "properties": {
          "companyId": {
            "type": "string",
            "description": "The Pleo unique identifier of the company the export job belongs to.",
            "format": "uuid"
          },
          "completedAt": {
            "pattern": "YYYY-MM-DDTHH:mi:ssZ",
            "type": "string",
            "description": "Date and time when the export job was completed.",
            "format": "date-time",
            "nullable": true
          },
          "createdAt": {
            "pattern": "YYYY-MM-DDTHH:mi:ssZ",
            "type": "string",
            "description": "Date and time when the export job was initiated by the user, that is, when the user clicked the Export button in the Pleo application.",
            "format": "date-time"
          },
          "createdBy": {
            "type": "string",
            "description": "This is the Pleo unique identifier of the user that initiated the export job.",
            "format": "uuid",
            "nullable": true,
            "default": null
          },
          "expiredAt": {
            "pattern": "YYYY-MM-DDTHH:mi:ssZ",
            "type": "string",
            "description": "Date and time when the export job expired.",
            "format": "date-time",
            "nullable": true
          },
          "expiresIn": {
            "type": "integer",
            "description": "This is the time specified in seconds when the job would expire; this is calculated since the last action performed on the job. The last time an action was taken on the job is reflected in the lastUpdatedAt attribute.",
            "format": "int32"
          },
          "failureReason": {
            "type": "string",
            "description": "Reason why the job failed in the case of a failure.",
            "nullable": true
          },
          "failureReasonType": {
            "type": "string",
            "description": "The classification for the failure from a list of described failure reason types.",
            "nullable": true,
            "enum": [
              "invalid_configuration",
              "missing_configuration",
              "authentication_failure",
              "accounting_system_authentication_failure",
              "pleo_rate_limit",
              "accounting_system_rate_limit",
              "service_unreachable",
              "accounting_system_unreachable",
              "validation_failure",
              "authorization_failure",
              "integration_unusable",
              "job_expired",
              "service_timeout",
              "accounting_system_timeout",
              "canceled_by_user"
            ]
          },
          "id": {
            "type": "string",
            "description": "The unique identifier generated by Pleo for the export job.",
            "format": "uuid"
          },
          "isInteractive": {
            "type": "boolean",
            "description": "Indicates whether the export job was initiated by a user or by the system."
          },
          "lastUpdatedAt": {
            "pattern": "YYYY-MM-DDTHH:mi:ssZ",
            "type": "string",
            "description": "Last time the job was updated or action on the job was taken.",
            "format": "date-time",
            "nullable": true
          },
          "numberOfItems": {
            "type": "integer",
            "description": "Number of accounting entries that were selected for processing."
          },
          "startedAt": {
            "pattern": "YYYY-MM-DDTHH:mi:ssZ",
            "type": "string",
            "description": "Date and time when the export job was started - this indicates the time when the export job event was triggered to change the status of the export job to in_progress.",
            "format": "date-time",
            "nullable": true
          },
          "status": {
            "type": "string",
            "description": "Specifies the current execution state of the export job. Some here are the definitions of the values that are supported for this field.",
            "enum": [
              "pending",
              "in_progress",
              "failed",
              "completed",
              "completed_with_errors"
            ]
          },
          "vendorBasedBookkeeping": {
            "type": "boolean",
            "description": "When enabled, the export items would include vendor and bookkeeping data"
          }
        }
      },
      "ExportJobEventType": {
        "type": "string",
        "description": "\n| Value  | Description |\n| ------ | ----------- |\n| started | The integration has started processing the job. |\n| failed | The job has failed due to a connection error, authentication failure, or similar issue. |\n| completed | The job has been successfully processed. |\n| completed_with_errors | The job has been completed, but only some accounting entries were exported successfully. |",
        "enum": [
          "started",
          "failed",
          "completed",
          "completed_with_errors"
        ]
      },
      "ExportJobFailureReasonType": {
        "type": "string",
        "description": "\n| Value  | Description |\n| ------ | ----------- |\n| invalid_configuration | This would define a failure reason pertaining to invalid configuration needed to complete the export job or interact with the accounting system. |\n| missing_configuration | This would define a failure reason pertaining to incomplete configuration needed to complete the export job or interact with the accounting system. |\n| authentication_failure | Pleo API failed to authenticate with the integration service when sending off a WebHook API call. |\n| accounting_system_authentication_failure | Integration service could not authenticate with the accounting system. |\n| pleo_rate_limit | Irrecoverable rate limit issue with Pleo API. |\n| accounting_system_rate_limit | Irrecoverable rate limit issue with the accounting system. |\n| service_unreachable | Integration service unreachable. |\n| accounting_system_unreachable | Integration service unable to reach accounting system. |\n| validation_failure | Irrecoverable validation error making the job unprocessable. |\n| authorization_failure | Authorisation revoked or user no longer has access in the accounting system. |\n| integration_unusable | Integration service blocked or unusable for the customer. |\n| job_expired | Job not updated within expiry time limit. |\n| service_timeout | Irrecoverable timeout communicating with integration service. |\n| accounting_system_timeout | Irrecoverable timeout communicating with accounting system. |\n| canceled_by_user | Job was canceled by user. |",
        "enum": [
          "invalid_configuration",
          "missing_configuration",
          "authentication_failure",
          "accounting_system_authentication_failure",
          "pleo_rate_limit",
          "accounting_system_rate_limit",
          "service_unreachable",
          "accounting_system_unreachable",
          "validation_failure",
          "authorization_failure",
          "integration_unusable",
          "job_expired",
          "service_timeout",
          "accounting_system_timeout",
          "canceled_by_user"
        ]
      },
      "ExportJobItem": {
        "required": [
          "accountingEntryId",
          "exportJobId",
          "status"
        ],
        "type": "object",
        "properties": {
          "accountingEntryId": {
            "type": "string",
            "description": "The accounting entry identifier being exported.",
            "format": "uuid"
          },
          "exportJobId": {
            "type": "string",
            "description": "The export job identifier for which this item belongs to.",
            "format": "uuid"
          },
          "exportedAt": {
            "pattern": "YYYY-MM-DDTHH:mi:ssZ",
            "type": "string",
            "description": "Date and time the item was exported.",
            "format": "date-time",
            "nullable": true
          },
          "externalId": {
            "type": "string",
            "description": "This is an external identifier of the corresponding accounting entry in the accounting system after export.",
            "nullable": true
          },
          "externalUrl": {
            "type": "string",
            "description": "This is the external URL pointing to the accounting entry resource in the accounting system after the export.",
            "nullable": true
          },
          "failureReason": {
            "type": "string",
            "description": "Reason why the export of this item failed in the case of a failure.",
            "nullable": true
          },
          "failureReasonType": {
            "type": "string",
            "description": "The classification for the failure from a list of described failure reason types.",
            "nullable": true,
            "enum": [
              "receipt_upload_failure",
              "receipt_download_failure",
              "receipt_file_size_limit_exceeded",
              "receipt_conversion_failure",
              "unexpected_failure",
              "invalid_configuration",
              "missing_configuration",
              "accounting_system_authentication_failure",
              "accounting_system_rate_limit",
              "accounting_system_unreachable",
              "validation_failure",
              "accounting_system_validation_failure",
              "authorization_failure",
              "accounting_system_timeout"
            ]
          },
          "status": {
            "type": "string",
            "description": "Status of the export job Item after being processed. The status of the export job item is null until an attempt has been made to process the export job item.",
            "enum": [
              "pending",
              "in_progress",
              "failed",
              "successful",
              "abandoned"
            ]
          }
        }
      },
      "ExportJobItemFailureReasonType": {
        "type": "string",
        "description": "\n| Value  | Description |\n| ------ | ----------- |\n| receipt_upload_failure | An error occurred while uploading the receipt file to the accounting system. |\n| receipt_download_failure | An error occurred while downloading the receipt file from Pleo. |\n| receipt_file_size_limit_exceeded | If the receipt file size has exceeded the limit specified by the accounting system. |\n| receipt_conversion_failure | When an attempt to convert the receipt to a different file type and the conversion failed. |\n| unexpected_failure | An unexpected error occurred. |\n| invalid_configuration | This would define a failure reason pertaining to invalid configuration needed to complete the export of the item or interact with the accounting system. |\n| missing_configuration | This would define a failure reason pertaining to incomplete configuration needed to complete the export of the item or interact with the accounting system. |\n| accounting_system_authentication_failure | The integration service could not authenticate with the accounting system. |\n| accounting_system_rate_limit | There was an irrecoverable rate limit issue that the integration service encountered at any stage of the export job process while communicating with the accounting system. |\n| accounting_system_unreachable | This would be an error that occurs if the integration service is unable to reach the accounting system. |\n| validation_failure | If there was an irrecoverable validation error that occurred while validating the export item. |\n| accounting_system_validation_failure | If there was an irrecoverable validation error encountered by the accounting system as a result of exporting the item. |\n| authorization_failure | This is an error that may have occurred because the authorization granted with the token that was generated during the installation of the integration, has been revoked or the user that authorized no longer has that access in the accounting system. |\n| accounting_system_timeout | This would be an error that occurs if the integration service encounters an irrecoverable timeout while communicating with the accounting system. |\n| vendor_unknown | Failure due to unknown or invalid vendor account number in the accounting system at time of exporting the item. |\n| account_unknown | Failure due to unknown or invalid account number in the accounting system at time of exporting the item. |\n| tax_code_unknown | Failure due to unknown or invalid tax code in the accounting system at time of exporting the item. |\n| tag_unknown | Failure due to unknown or invalid tag in the accounting system at time of exporting the item. |",
        "enum": [
          "receipt_upload_failure",
          "receipt_download_failure",
          "receipt_file_size_limit_exceeded",
          "receipt_conversion_failure",
          "unexpected_failure",
          "invalid_configuration",
          "missing_configuration",
          "accounting_system_authentication_failure",
          "accounting_system_rate_limit",
          "accounting_system_unreachable",
          "validation_failure",
          "accounting_system_validation_failure",
          "authorization_failure",
          "accounting_system_timeout",
          "vendor_unknown",
          "account_unknown",
          "tax_code_unknown",
          "tag_unknown"
        ]
      },
      "ExportJobItemStatus": {
        "type": "string",
        "description": "\n| Value  | Description |\n| ------ | ----------- |\n| pending | The export job item is selected for export, yet it is waiting to be exported. |\n| in_progress | The export job item is currently being exported to the ERP/accounting system. |\n| failed | The export job item could not be exported to the ERP/accounting system. |\n| successful | The export job item is successfully exported to the ERP/accounting system. |\n| abandoned | The export job item could not be exported to the ERP/accounting system because the export job could not be completed. |",
        "enum": [
          "pending",
          "in_progress",
          "failed",
          "successful",
          "abandoned"
        ]
      },
      "ExportJobItemUpdate": {
        "required": [
          "data",
          "errors"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExportJobItem"
            }
          },
          "errors": {
            "type": "array",
            "description": "If any errors occurred in updating the export job items, they will be listed here.",
            "items": {
              "$ref": "#/components/schemas/ExportJobItemUpdateError"
            }
          }
        }
      },
      "ExportJobItemUpdateError": {
        "required": [
          "accountingEntryId",
          "message",
          "type"
        ],
        "type": "object",
        "properties": {
          "accountingEntryId": {
            "type": "string",
            "description": "Accounting entry ID for which this error occurred.",
            "format": "uuid"
          },
          "message": {
            "type": "string",
            "description": "Descriptive error message."
          },
          "type": {
            "type": "string",
            "description": "Descriptive error type.",
            "enum": [
              "ACCOUNTING_ENTRY_DOES_NOT_EXIST",
              "EXPORT_ENTRY_STATUS_UPDATE_FAILED",
              "ACCOUNTING_ENTRY_UPDATE_FAILED"
            ]
          }
        },
        "description": "If any errors occurred in updating the export job items, they will be listed here."
      },
      "ExportJobItemUpdateErrorType": {
        "type": "string",
        "description": "\n| Value  | Description |\n| ------ | ----------- |\n| ACCOUNTING_ENTRY_DOES_NOT_EXIST | Accounting entry does not exist. |\n| EXPORT_ENTRY_STATUS_UPDATE_FAILED | Export entry does not exist. |\n| ACCOUNTING_ENTRY_UPDATE_FAILED | Export entry status update failed. |",
        "enum": [
          "ACCOUNTING_ENTRY_DOES_NOT_EXIST",
          "EXPORT_ENTRY_STATUS_UPDATE_FAILED",
          "ACCOUNTING_ENTRY_UPDATE_FAILED"
        ]
      },
      "ExportJobItemUpdateErrorV3": {
        "required": [
          "accountingEntryId",
          "message",
          "type"
        ],
        "type": "object",
        "properties": {
          "accountingEntryId": {
            "type": "string",
            "description": "Accounting entry ID for which this error occurred.",
            "format": "uuid"
          },
          "message": {
            "type": "string",
            "description": "Descriptive error message."
          },
          "type": {
            "type": "string",
            "description": "This can be one of ExportJobItemUpdateErrorType values",
            "example": "ACCOUNTING_ENTRY_DOES_NOT_EXIST"
          }
        },
        "description": "If any errors occurred in updating the export job items, they will be listed here."
      },
      "ExportJobItemUpdateV3": {
        "required": [
          "data",
          "errors"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExportJobItemV3"
            }
          },
          "errors": {
            "type": "array",
            "description": "If any errors occurred in updating the export job items, they will be listed here.",
            "items": {
              "$ref": "#/components/schemas/ExportJobItemUpdateErrorV3"
            }
          }
        }
      },
      "ExportJobItemV3": {
        "required": [
          "accountingEntryId",
          "exportJobId",
          "status"
        ],
        "type": "object",
        "properties": {
          "accountingEntryId": {
            "type": "string",
            "description": "The accounting entry identifier being exported.",
            "format": "uuid"
          },
          "exportJobId": {
            "type": "string",
            "description": "The export job identifier for which this item belongs to.",
            "format": "uuid"
          },
          "exportedAt": {
            "pattern": "YYYY-MM-DDTHH:mi:ssZ",
            "type": "string",
            "description": "Date and time the item was exported.",
            "format": "date-time",
            "nullable": true
          },
          "externalId": {
            "type": "string",
            "description": "This is an external identifier of the corresponding accounting entry in the accounting system after export.",
            "nullable": true
          },
          "externalUrl": {
            "type": "string",
            "description": "This is the external URL pointing to the accounting entry resource in the accounting system after the export.",
            "nullable": true
          },
          "failureReason": {
            "type": "string",
            "description": "Reason why the export of this item failed in the case of a failure.",
            "nullable": true
          },
          "failureReasonType": {
            "type": "string",
            "description": "This can be one of ExportJobItemFailureReasonType values",
            "example": "receipt_upload_failure"
          },
          "status": {
            "type": "string",
            "description": "This can be one of ExportJobItemStatus values",
            "example": "pending"
          }
        }
      },
      "ExportJobStatus": {
        "type": "string",
        "enum": [
          "pending",
          "in_progress",
          "failed",
          "completed",
          "completed_with_errors"
        ]
      },
      "ExportJobV3": {
        "required": [
          "companyId",
          "createdAt",
          "expiresIn",
          "id",
          "isInteractive",
          "numberOfItems",
          "status",
          "targetSystem",
          "vendorBasedBookkeeping"
        ],
        "type": "object",
        "properties": {
          "companyId": {
            "type": "string",
            "description": "The Pleo unique identifier of the company the export job belongs to.",
            "format": "uuid"
          },
          "completedAt": {
            "pattern": "YYYY-MM-DDTHH:mi:ssZ",
            "type": "string",
            "description": "Date and time when the export job was completed.",
            "format": "date-time",
            "nullable": true
          },
          "createdAt": {
            "pattern": "YYYY-MM-DDTHH:mi:ssZ",
            "type": "string",
            "description": "Date and time when the export job was initiated by the user, that is, when the user clicked the Export button in the Pleo application.",
            "format": "date-time"
          },
          "createdBy": {
            "type": "string",
            "description": "This is the Pleo unique identifier of the user that initiated the export job.",
            "format": "uuid",
            "nullable": true,
            "default": null
          },
          "expiredAt": {
            "pattern": "YYYY-MM-DDTHH:mi:ssZ",
            "type": "string",
            "description": "Date and time when the export job expired.",
            "format": "date-time",
            "nullable": true
          },
          "expiresIn": {
            "type": "integer",
            "description": "The time in seconds when the job will expire; calculated since the last action. The last time an action was taken on the job is reflected in the `lastUpdatedAt` attribute.",
            "format": "int32"
          },
          "failureReason": {
            "type": "string",
            "description": "Reason why the job failed in the case of a failure.",
            "nullable": true
          },
          "failureReasonType": {
            "type": "string",
            "description": "This can be one of ExportJobFailureReasonType values",
            "example": "invalid_configuration"
          },
          "id": {
            "type": "string",
            "description": "The unique identifier generated by Pleo for the export job.",
            "format": "uuid"
          },
          "isInteractive": {
            "type": "boolean",
            "description": "Indicates whether the export job was initiated by a user or by the system."
          },
          "lastUpdatedAt": {
            "pattern": "YYYY-MM-DDTHH:mi:ssZ",
            "type": "string",
            "description": "Last time the job was updated or action on the job was taken.",
            "format": "date-time",
            "nullable": true
          },
          "numberOfItems": {
            "type": "integer",
            "description": "Number of accounting entries that were selected for processing."
          },
          "startedAt": {
            "pattern": "YYYY-MM-DDTHH:mi:ssZ",
            "type": "string",
            "description": "Date and time when the export job was started - this indicates the time when the export job event was triggered to change the status of the export job to in_progress.",
            "format": "date-time",
            "nullable": true
          },
          "status": {
            "type": "string",
            "description": "This can be one of ExportJobStatus values",
            "example": "pending"
          },
          "targetSystem": {
            "type": "string",
            "description": "The target system (ERP/accounting system or payroll provider) the export job's accounting entries were recorded against."
          },
          "vendorBasedBookkeeping": {
            "type": "boolean",
            "description": "When enabled, the export items would include vendor and bookkeeping data"
          }
        }
      },
      "InvoiceInformation": {
        "required": [
          "invoiceDate",
          "invoiceNumber",
          "status"
        ],
        "type": "object",
        "properties": {
          "dueDate": {
            "pattern": "YYYY-MM-DD",
            "type": "string",
            "description": "Date the payment is due.",
            "format": "date-time",
            "nullable": true
          },
          "invoiceDate": {
            "pattern": "YYYY-MM-DD",
            "type": "string",
            "description": "Date the invoice was issued.",
            "format": "date-time"
          },
          "invoiceNumber": {
            "type": "string",
            "description": "The invoice number."
          },
          "paymentDate": {
            "pattern": "YYYY-MM-DD",
            "type": "string",
            "description": "Date the invoice was paid if the status is paid.",
            "format": "date-time",
            "nullable": true
          },
          "status": {
            "type": "string",
            "description": "The invoice status.",
            "enum": [
              "pending_approval",
              "parsed",
              "preparing",
              "prepared",
              "ready",
              "rejected_by_approver",
              "marked_as_paid",
              "scheduled",
              "payment_in_progress",
              "paid",
              "voided_by_user",
              "rejected_by_user",
              "failed_payment"
            ]
          },
          "supplierBankAccount": {
            "$ref": "#/components/schemas/SupplierBankAccount"
          }
        },
        "description": "In the case of an invoice, additional information pertaining to the invoice would be represented here.",
        "nullable": true
      },
      "InvoiceInformationStatusV3": {
        "type": "string",
        "description": "\n| Value  | Description |\n| ------ | ----------- |\n| pending_approval | Invoice is awaiting review by user (owner). |\n| parsed | Invoice parsing results have been processed; next status is being determined. |\n| preparing | Funds request sent and payment not yet initiated. |\n| prepared | Funds were frozen successfully but payment not yet initiated. |\n| ready | Invoice is ready to be scheduled for payment. |\n| rejected_by_approver | Approver rejected the invoice. |\n| marked_as_paid | User indicates the invoice has been paid outside of Pleo. |\n| scheduled | Invoice is scheduled for payment. |\n| payment_in_progress | Payment is in progress. |\n| paid | Invoice has been paid, payment was confirmed. |\n| voided_by_user | User indicates invoice does not need to be processed; can only be used before the READY state. |\n| rejected_by_user | User can void an invoice even after approval. |\n| failed_payment | Invoice payment has been returned as failed. |",
        "enum": [
          "pending_approval",
          "parsed",
          "preparing",
          "prepared",
          "ready",
          "rejected_by_approver",
          "marked_as_paid",
          "scheduled",
          "payment_in_progress",
          "paid",
          "voided_by_user",
          "rejected_by_user",
          "failed_payment"
        ]
      },
      "InvoiceInformationV1": {
        "required": [
          "invoiceDate",
          "invoiceNumber",
          "status"
        ],
        "type": "object",
        "properties": {
          "dueDate": {
            "pattern": "YYYY-MM-DD",
            "type": "string",
            "description": "Date the payment is due.",
            "format": "date-time",
            "nullable": true
          },
          "invoiceDate": {
            "pattern": "YYYY-MM-DD",
            "type": "string",
            "description": "Date the invoice was issued.",
            "format": "date-time"
          },
          "invoiceNumber": {
            "type": "string",
            "description": "The invoice number."
          },
          "paymentDate": {
            "pattern": "YYYY-MM-DD",
            "type": "string",
            "description": "Date the invoice was paid if the status is paid.",
            "format": "date-time",
            "nullable": true
          },
          "status": {
            "type": "string",
            "description": "The invoice status.",
            "enum": [
              "pending_approval",
              "parsed",
              "preparing",
              "prepared",
              "ready",
              "rejected_by_approver",
              "marked_as_paid",
              "scheduled",
              "payment_in_progress",
              "paid",
              "voided_by_user",
              "rejected_by_user",
              "failed_payment"
            ]
          },
          "supplierBankAccount": {
            "$ref": "#/components/schemas/SupplierBankAccount"
          }
        },
        "description": "In the case of an invoice, additional information pertaining to the invoice would be represented here.",
        "nullable": true
      },
      "InvoiceInformationV2": {
        "required": [
          "invoiceDate",
          "invoiceNumber",
          "status"
        ],
        "type": "object",
        "properties": {
          "dueDate": {
            "pattern": "YYYY-MM-DD",
            "type": "string",
            "description": "Date the payment is due.",
            "format": "date-time",
            "nullable": true
          },
          "invoiceDate": {
            "pattern": "YYYY-MM-DD",
            "type": "string",
            "description": "Date the invoice was issued.",
            "format": "date-time"
          },
          "invoiceNumber": {
            "type": "string",
            "description": "The invoice number."
          },
          "paymentDate": {
            "pattern": "YYYY-MM-DD",
            "type": "string",
            "description": "Date the invoice was paid if the status is paid.",
            "format": "date-time",
            "nullable": true
          },
          "status": {
            "type": "string",
            "description": "The invoice status.",
            "enum": [
              "pending_approval",
              "parsed",
              "preparing",
              "prepared",
              "ready",
              "rejected_by_approver",
              "marked_as_paid",
              "scheduled",
              "payment_in_progress",
              "paid",
              "voided_by_user",
              "rejected_by_user",
              "failed_payment"
            ]
          },
          "supplierBankAccount": {
            "$ref": "#/components/schemas/SupplierBankAccount"
          }
        },
        "description": "For an invoice, additional information related to the invoice is specified in this attribute.",
        "nullable": true
      },
      "InvoiceInformationV3": {
        "required": [
          "invoiceDate",
          "invoiceNumber",
          "status"
        ],
        "type": "object",
        "properties": {
          "discountAmount": {
            "$ref": "#/components/schemas/MoneyModel"
          },
          "discountPercentage": {
            "type": "number",
            "description": "The early-payment (Skonto) discount percentage applied to this payment, if any.",
            "nullable": true
          },
          "dueDate": {
            "pattern": "YYYY-MM-DDTHH:mi:ssZ",
            "type": "string",
            "description": "Date the payment is due.",
            "format": "date-time",
            "nullable": true
          },
          "invoiceDate": {
            "pattern": "YYYY-MM-DDTHH:mi:ssZ",
            "type": "string",
            "description": "Date the invoice was issued.",
            "format": "date-time"
          },
          "invoiceNumber": {
            "type": "string",
            "description": "The invoice number."
          },
          "paymentDate": {
            "pattern": "YYYY-MM-DDTHH:mi:ssZ",
            "type": "string",
            "description": "Date the invoice was paid if the status is paid.",
            "format": "date-time",
            "nullable": true
          },
          "status": {
            "type": "string",
            "description": "This can be one of InvoiceInformationStatusV3 values",
            "example": "pending_approval"
          },
          "supplierBankAccount": {
            "$ref": "#/components/schemas/SupplierBankAccount"
          }
        },
        "description": "For an invoice, additional information related to the invoice is specified in this attribute.",
        "nullable": true
      },
      "LinksResponse": {
        "type": "object",
        "properties": {
          "api": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "mobile": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "web": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        },
        "description": "Contains links relevant to the export item.",
        "example": {
          "web": {
            "exportItem": "https://example.com"
          },
          "mobile": {
            "exportItem": "https://example.com"
          },
          "api": {
            "exportItem": "https://example.com"
          }
        }
      },
      "MoneyModel": {
        "required": [
          "currency",
          "value"
        ],
        "type": "object",
        "properties": {
          "currency": {
            "type": "string",
            "description": "Represents the currency code (ISO 4217) of the supplier.",
            "enum": [
              "UNDEFINED",
              "AED",
              "AFN",
              "ALL",
              "AMD",
              "ANG",
              "AOA",
              "ARS",
              "AUD",
              "AWG",
              "AZN",
              "BAM",
              "BBD",
              "BDT",
              "BGN",
              "BHD",
              "BIF",
              "BMD",
              "BND",
              "BOB",
              "BOV",
              "BRL",
              "BSD",
              "BTN",
              "BWP",
              "BYN",
              "BYR",
              "BZD",
              "CAD",
              "CDF",
              "CHE",
              "CHF",
              "CHW",
              "CLF",
              "CLP",
              "CNY",
              "COP",
              "COU",
              "CRC",
              "CUC",
              "CUP",
              "CVE",
              "CZK",
              "DJF",
              "DKK",
              "DOP",
              "DZD",
              "EGP",
              "ERN",
              "ETB",
              "EUR",
              "FJD",
              "FKP",
              "GBP",
              "GEL",
              "GHS",
              "GIP",
              "GMD",
              "GNF",
              "GTQ",
              "GYD",
              "HKD",
              "HNL",
              "HRK",
              "HTG",
              "HUF",
              "IDR",
              "ILS",
              "INR",
              "IQD",
              "IRR",
              "ISK",
              "JMD",
              "JOD",
              "JPY",
              "KES",
              "KGS",
              "KHR",
              "KMF",
              "KPW",
              "KRW",
              "KWD",
              "KYD",
              "KZT",
              "LAK",
              "LBP",
              "LKR",
              "LRD",
              "LSL",
              "LTL",
              "LYD",
              "MAD",
              "MDL",
              "MGA",
              "MKD",
              "MMK",
              "MNT",
              "MOP",
              "MRO",
              "MRU",
              "MUR",
              "MVR",
              "MWK",
              "MXN",
              "MXV",
              "MYR",
              "MZN",
              "NAD",
              "NGN",
              "NIO",
              "NOK",
              "NPR",
              "NZD",
              "OMR",
              "PAB",
              "PEN",
              "PGK",
              "PHP",
              "PKR",
              "PLN",
              "PYG",
              "QAR",
              "RON",
              "RSD",
              "RUB",
              "RUR",
              "RWF",
              "SAR",
              "SBD",
              "SCR",
              "SDG",
              "SEK",
              "SGD",
              "SHP",
              "SLE",
              "SLL",
              "SOS",
              "SRD",
              "SSP",
              "STD",
              "STN",
              "SVC",
              "SYP",
              "SZL",
              "THB",
              "TJS",
              "TMT",
              "TND",
              "TOP",
              "TRY",
              "TTD",
              "TWD",
              "TZS",
              "UAH",
              "UGX",
              "USD",
              "USN",
              "USS",
              "UYI",
              "UYU",
              "UYW",
              "UZS",
              "VED",
              "VEF",
              "VES",
              "VND",
              "VUV",
              "WST",
              "XAD",
              "XAF",
              "XAG",
              "XAU",
              "XBA",
              "XBB",
              "XBC",
              "XBD",
              "XCD",
              "XCG",
              "XDR",
              "XOF",
              "XPD",
              "XPF",
              "XPT",
              "XSU",
              "XTS",
              "XUA",
              "XXX",
              "YER",
              "ZAR",
              "ZMW",
              "ZWG",
              "ZWL"
            ]
          },
          "value": {
            "type": "number",
            "description": "Represents the amount in cents (amount/100). For example, 896.96 SEK is represented as 89696."
          }
        },
        "description": "The total amount paid or owed to the supplier/vendor, in the currency the supplier/vendor operates in."
      },
      "Options": {
        "type": "object",
        "properties": {
          "vendorBasedBookkeeping": {
            "type": "boolean",
            "description": "When enabled, the export items will include vendor and bookkeeping data.",
            "nullable": true,
            "default": false
          }
        },
        "description": "Provides additional configurations for the export job.",
        "nullable": true
      },
      "PageOrder": {
        "type": "string",
        "enum": [
          "ASC",
          "ASC_NULLS_FIRST",
          "ASC_NULLS_LAST",
          "DESC",
          "DESC_NULLS_FIRST",
          "DESC_NULLS_LAST"
        ]
      },
      "ReportExportJobStatusV1": {
        "type": "string",
        "description": "\n| Value  | Description |\n| ------ | ----------- |\n| processing | The job is being processed. |\n| completed | The report has been generated and is available for download. |\n| failed | The job failed to complete; see errorCode and errorMessage for details. |",
        "enum": [
          "processing",
          "completed",
          "failed"
        ]
      },
      "SearchExportJobItemsRequest": {
        "required": [
          "accountingEntryIds"
        ],
        "type": "object",
        "properties": {
          "accountingEntryIds": {
            "type": "array",
            "description": "List of accounting entry IDs to search for export job items.",
            "items": {
              "type": "string",
              "description": "List of accounting entry IDs to search for export job items.",
              "format": "uuid"
            }
          },
          "status": {
            "$ref": "#/components/schemas/ExportJobItemStatus"
          },
          "targetSystem": {
            "type": "string",
            "description": "Optional target system filter; the value is case-insensitive. Restricts results to export job items recorded against this target system."
          }
        }
      },
      "ServicePeriodV2": {
        "required": [
          "from",
          "to"
        ],
        "type": "object",
        "properties": {
          "from": {
            "pattern": "yyyy-MM-dd'T'HH:mm:ss'Z'",
            "type": "string",
            "description": "The start of the service period in ISO 8601 datetime format.",
            "format": "date-time",
            "example": "2025-01-01T00:00:00Z"
          },
          "to": {
            "pattern": "yyyy-MM-dd'T'HH:mm:ss'Z'",
            "type": "string",
            "description": "The end of the service period in ISO 8601 datetime format.",
            "format": "date-time",
            "example": "2025-01-31T00:00:00Z"
          }
        },
        "description": "The period during which a service was provided, goods were delivered, or an expense was incurred.",
        "nullable": true
      },
      "ServicePeriodV3": {
        "required": [
          "from",
          "to"
        ],
        "type": "object",
        "properties": {
          "from": {
            "pattern": "yyyy-MM-dd'T'HH:mm:ss'Z'",
            "type": "string",
            "description": "The start of the service period in ISO 8601 datetime format.",
            "format": "date-time",
            "example": "2025-01-01T00:00:00Z"
          },
          "to": {
            "pattern": "yyyy-MM-dd'T'HH:mm:ss'Z'",
            "type": "string",
            "description": "The end of the service period in ISO 8601 datetime format.",
            "format": "date-time",
            "example": "2025-01-31T00:00:00Z"
          }
        },
        "description": "The period during which a service was provided, goods were delivered, or an expense was incurred.",
        "nullable": true
      },
      "Supplier": {
        "type": "object",
        "properties": {
          "account": {
            "type": "string",
            "description": "Supplier account code in the accounting system.",
            "nullable": true
          },
          "categoryCode": {
            "type": "string",
            "description": "This is the category code that describes the merchant/supplier's activity.",
            "nullable": true,
            "example": "5999"
          },
          "country": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "The 2-letter country code the merchant or supplier operates in.",
            "nullable": true,
            "example": "DK",
            "enum": [
              "UNDEFINED",
              "AC",
              "AD",
              "AE",
              "AF",
              "AG",
              "AI",
              "AL",
              "AM",
              "AN",
              "AO",
              "AQ",
              "AR",
              "AS",
              "AT",
              "AU",
              "AW",
              "AX",
              "AZ",
              "BA",
              "BB",
              "BD",
              "BE",
              "BF",
              "BG",
              "BH",
              "BI",
              "BJ",
              "BL",
              "BM",
              "BN",
              "BO",
              "BQ",
              "BR",
              "BS",
              "BT",
              "BU",
              "BV",
              "BW",
              "BY",
              "BZ",
              "CA",
              "CC",
              "CD",
              "CF",
              "CG",
              "CH",
              "CI",
              "CK",
              "CL",
              "CM",
              "CN",
              "CO",
              "CP",
              "CR",
              "CS",
              "CU",
              "CV",
              "CW",
              "CX",
              "CY",
              "CZ",
              "DE",
              "DG",
              "DJ",
              "DK",
              "DM",
              "DO",
              "DZ",
              "EA",
              "EC",
              "EE",
              "EG",
              "EH",
              "ER",
              "ES",
              "ET",
              "EU",
              "EZ",
              "FI",
              "FJ",
              "FK",
              "FM",
              "FO",
              "FR",
              "FX",
              "GA",
              "GB",
              "GD",
              "GE",
              "GF",
              "GG",
              "GH",
              "GI",
              "GL",
              "GM",
              "GN",
              "GP",
              "GQ",
              "GR",
              "GS",
              "GT",
              "GU",
              "GW",
              "GY",
              "HK",
              "HM",
              "HN",
              "HR",
              "HT",
              "HU",
              "IC",
              "ID",
              "IE",
              "IL",
              "IM",
              "IN",
              "IO",
              "IQ",
              "IR",
              "IS",
              "IT",
              "JE",
              "JM",
              "JO",
              "JP",
              "KE",
              "KG",
              "KH",
              "KI",
              "KM",
              "KN",
              "KP",
              "KR",
              "KW",
              "KY",
              "KZ",
              "LA",
              "LB",
              "LC",
              "LI",
              "LK",
              "LR",
              "LS",
              "LT",
              "LU",
              "LV",
              "LY",
              "MA",
              "MC",
              "MD",
              "ME",
              "MF",
              "MG",
              "MH",
              "MK",
              "ML",
              "MM",
              "MN",
              "MO",
              "MP",
              "MQ",
              "MR",
              "MS",
              "MT",
              "MU",
              "MV",
              "MW",
              "MX",
              "MY",
              "MZ",
              "NA",
              "NC",
              "NE",
              "NF",
              "NG",
              "NI",
              "NL",
              "NO",
              "NP",
              "NR",
              "NT",
              "NU",
              "NZ",
              "OM",
              "PA",
              "PE",
              "PF",
              "PG",
              "PH",
              "PK",
              "PL",
              "PM",
              "PN",
              "PR",
              "PS",
              "PT",
              "PW",
              "PY",
              "QA",
              "RE",
              "RO",
              "RS",
              "RU",
              "RW",
              "SA",
              "SB",
              "SC",
              "SD",
              "SE",
              "SF",
              "SG",
              "SH",
              "SI",
              "SJ",
              "SK",
              "SL",
              "SM",
              "SN",
              "SO",
              "SR",
              "SS",
              "ST",
              "SU",
              "SV",
              "SX",
              "SY",
              "SZ",
              "TA",
              "TC",
              "TD",
              "TF",
              "TG",
              "TH",
              "TJ",
              "TK",
              "TL",
              "TM",
              "TN",
              "TO",
              "TP",
              "TR",
              "TT",
              "TV",
              "TW",
              "TZ",
              "UA",
              "UG",
              "UK",
              "UM",
              "US",
              "UY",
              "UZ",
              "VA",
              "VC",
              "VE",
              "VG",
              "VI",
              "VN",
              "VU",
              "WF",
              "WS",
              "XI",
              "XU",
              "XK",
              "YE",
              "YT",
              "YU",
              "ZA",
              "ZM",
              "ZR",
              "ZW"
            ]
          },
          "identifier": {
            "type": "string",
            "description": "Identifier of the supplier in the accounting system.",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "Name of the supplier or merchant.",
            "nullable": true,
            "example": "GOOGLE*ADS8693645259"
          },
          "taxIdentifier": {
            "type": "string",
            "description": "This is the tax identification of the supplier in their country of operation.",
            "nullable": true
          }
        },
        "description": "The supplier or the merchant involved associated with the accounting entries.",
        "nullable": true
      },
      "SupplierBankAccount": {
        "required": [
          "bankName",
          "country"
        ],
        "type": "object",
        "properties": {
          "accountNumber": {
            "type": "string",
            "description": "Bank account number.",
            "nullable": true
          },
          "bankCode": {
            "type": "string",
            "description": "Bank code.",
            "nullable": true
          },
          "bankName": {
            "type": "string",
            "description": "Name of the bank."
          },
          "bic": {
            "type": "string",
            "description": "Branch information.",
            "nullable": true
          },
          "country": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "Country the bank is located in. This is an ISO 3166-1 alpha-2 country code.",
            "example": "DK",
            "enum": [
              "UNDEFINED",
              "AC",
              "AD",
              "AE",
              "AF",
              "AG",
              "AI",
              "AL",
              "AM",
              "AN",
              "AO",
              "AQ",
              "AR",
              "AS",
              "AT",
              "AU",
              "AW",
              "AX",
              "AZ",
              "BA",
              "BB",
              "BD",
              "BE",
              "BF",
              "BG",
              "BH",
              "BI",
              "BJ",
              "BL",
              "BM",
              "BN",
              "BO",
              "BQ",
              "BR",
              "BS",
              "BT",
              "BU",
              "BV",
              "BW",
              "BY",
              "BZ",
              "CA",
              "CC",
              "CD",
              "CF",
              "CG",
              "CH",
              "CI",
              "CK",
              "CL",
              "CM",
              "CN",
              "CO",
              "CP",
              "CR",
              "CS",
              "CU",
              "CV",
              "CW",
              "CX",
              "CY",
              "CZ",
              "DE",
              "DG",
              "DJ",
              "DK",
              "DM",
              "DO",
              "DZ",
              "EA",
              "EC",
              "EE",
              "EG",
              "EH",
              "ER",
              "ES",
              "ET",
              "EU",
              "EZ",
              "FI",
              "FJ",
              "FK",
              "FM",
              "FO",
              "FR",
              "FX",
              "GA",
              "GB",
              "GD",
              "GE",
              "GF",
              "GG",
              "GH",
              "GI",
              "GL",
              "GM",
              "GN",
              "GP",
              "GQ",
              "GR",
              "GS",
              "GT",
              "GU",
              "GW",
              "GY",
              "HK",
              "HM",
              "HN",
              "HR",
              "HT",
              "HU",
              "IC",
              "ID",
              "IE",
              "IL",
              "IM",
              "IN",
              "IO",
              "IQ",
              "IR",
              "IS",
              "IT",
              "JE",
              "JM",
              "JO",
              "JP",
              "KE",
              "KG",
              "KH",
              "KI",
              "KM",
              "KN",
              "KP",
              "KR",
              "KW",
              "KY",
              "KZ",
              "LA",
              "LB",
              "LC",
              "LI",
              "LK",
              "LR",
              "LS",
              "LT",
              "LU",
              "LV",
              "LY",
              "MA",
              "MC",
              "MD",
              "ME",
              "MF",
              "MG",
              "MH",
              "MK",
              "ML",
              "MM",
              "MN",
              "MO",
              "MP",
              "MQ",
              "MR",
              "MS",
              "MT",
              "MU",
              "MV",
              "MW",
              "MX",
              "MY",
              "MZ",
              "NA",
              "NC",
              "NE",
              "NF",
              "NG",
              "NI",
              "NL",
              "NO",
              "NP",
              "NR",
              "NT",
              "NU",
              "NZ",
              "OM",
              "PA",
              "PE",
              "PF",
              "PG",
              "PH",
              "PK",
              "PL",
              "PM",
              "PN",
              "PR",
              "PS",
              "PT",
              "PW",
              "PY",
              "QA",
              "RE",
              "RO",
              "RS",
              "RU",
              "RW",
              "SA",
              "SB",
              "SC",
              "SD",
              "SE",
              "SF",
              "SG",
              "SH",
              "SI",
              "SJ",
              "SK",
              "SL",
              "SM",
              "SN",
              "SO",
              "SR",
              "SS",
              "ST",
              "SU",
              "SV",
              "SX",
              "SY",
              "SZ",
              "TA",
              "TC",
              "TD",
              "TF",
              "TG",
              "TH",
              "TJ",
              "TK",
              "TL",
              "TM",
              "TN",
              "TO",
              "TP",
              "TR",
              "TT",
              "TV",
              "TW",
              "TZ",
              "UA",
              "UG",
              "UK",
              "UM",
              "US",
              "UY",
              "UZ",
              "VA",
              "VC",
              "VE",
              "VG",
              "VI",
              "VN",
              "VU",
              "WF",
              "WS",
              "XI",
              "XU",
              "XK",
              "YE",
              "YT",
              "YU",
              "ZA",
              "ZM",
              "ZR",
              "ZW"
            ]
          },
          "iban": {
            "type": "string",
            "description": "Unique international bank account number.",
            "nullable": true
          }
        },
        "description": "Bank account information of the supplier.",
        "nullable": true
      },
      "SupplierV1": {
        "type": "object",
        "properties": {
          "account": {
            "type": "string",
            "description": "Supplier account code in the accounting system.",
            "nullable": true
          },
          "categoryCode": {
            "type": "string",
            "description": "This is the category code that describes the merchant/supplier's activity.",
            "nullable": true,
            "example": "5999"
          },
          "code": {
            "type": "string",
            "description": "Identifier of the supplier in the accounting system.",
            "nullable": true
          },
          "country": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "The 2-letter country code the merchant or supplier operates in.",
            "nullable": true,
            "example": "DK",
            "enum": [
              "UNDEFINED",
              "AC",
              "AD",
              "AE",
              "AF",
              "AG",
              "AI",
              "AL",
              "AM",
              "AN",
              "AO",
              "AQ",
              "AR",
              "AS",
              "AT",
              "AU",
              "AW",
              "AX",
              "AZ",
              "BA",
              "BB",
              "BD",
              "BE",
              "BF",
              "BG",
              "BH",
              "BI",
              "BJ",
              "BL",
              "BM",
              "BN",
              "BO",
              "BQ",
              "BR",
              "BS",
              "BT",
              "BU",
              "BV",
              "BW",
              "BY",
              "BZ",
              "CA",
              "CC",
              "CD",
              "CF",
              "CG",
              "CH",
              "CI",
              "CK",
              "CL",
              "CM",
              "CN",
              "CO",
              "CP",
              "CR",
              "CS",
              "CU",
              "CV",
              "CW",
              "CX",
              "CY",
              "CZ",
              "DE",
              "DG",
              "DJ",
              "DK",
              "DM",
              "DO",
              "DZ",
              "EA",
              "EC",
              "EE",
              "EG",
              "EH",
              "ER",
              "ES",
              "ET",
              "EU",
              "EZ",
              "FI",
              "FJ",
              "FK",
              "FM",
              "FO",
              "FR",
              "FX",
              "GA",
              "GB",
              "GD",
              "GE",
              "GF",
              "GG",
              "GH",
              "GI",
              "GL",
              "GM",
              "GN",
              "GP",
              "GQ",
              "GR",
              "GS",
              "GT",
              "GU",
              "GW",
              "GY",
              "HK",
              "HM",
              "HN",
              "HR",
              "HT",
              "HU",
              "IC",
              "ID",
              "IE",
              "IL",
              "IM",
              "IN",
              "IO",
              "IQ",
              "IR",
              "IS",
              "IT",
              "JE",
              "JM",
              "JO",
              "JP",
              "KE",
              "KG",
              "KH",
              "KI",
              "KM",
              "KN",
              "KP",
              "KR",
              "KW",
              "KY",
              "KZ",
              "LA",
              "LB",
              "LC",
              "LI",
              "LK",
              "LR",
              "LS",
              "LT",
              "LU",
              "LV",
              "LY",
              "MA",
              "MC",
              "MD",
              "ME",
              "MF",
              "MG",
              "MH",
              "MK",
              "ML",
              "MM",
              "MN",
              "MO",
              "MP",
              "MQ",
              "MR",
              "MS",
              "MT",
              "MU",
              "MV",
              "MW",
              "MX",
              "MY",
              "MZ",
              "NA",
              "NC",
              "NE",
              "NF",
              "NG",
              "NI",
              "NL",
              "NO",
              "NP",
              "NR",
              "NT",
              "NU",
              "NZ",
              "OM",
              "PA",
              "PE",
              "PF",
              "PG",
              "PH",
              "PK",
              "PL",
              "PM",
              "PN",
              "PR",
              "PS",
              "PT",
              "PW",
              "PY",
              "QA",
              "RE",
              "RO",
              "RS",
              "RU",
              "RW",
              "SA",
              "SB",
              "SC",
              "SD",
              "SE",
              "SF",
              "SG",
              "SH",
              "SI",
              "SJ",
              "SK",
              "SL",
              "SM",
              "SN",
              "SO",
              "SR",
              "SS",
              "ST",
              "SU",
              "SV",
              "SX",
              "SY",
              "SZ",
              "TA",
              "TC",
              "TD",
              "TF",
              "TG",
              "TH",
              "TJ",
              "TK",
              "TL",
              "TM",
              "TN",
              "TO",
              "TP",
              "TR",
              "TT",
              "TV",
              "TW",
              "TZ",
              "UA",
              "UG",
              "UK",
              "UM",
              "US",
              "UY",
              "UZ",
              "VA",
              "VC",
              "VE",
              "VG",
              "VI",
              "VN",
              "VU",
              "WF",
              "WS",
              "XI",
              "XU",
              "XK",
              "YE",
              "YT",
              "YU",
              "ZA",
              "ZM",
              "ZR",
              "ZW"
            ]
          },
          "name": {
            "type": "string",
            "description": "Name of the supplier or merchant.",
            "nullable": true,
            "example": "GOOGLE*ADS8693645259"
          },
          "taxIdentifier": {
            "type": "string",
            "description": "This is the tax identification of the supplier in their country of operation.",
            "nullable": true
          }
        },
        "description": "The supplier or merchant involved.",
        "nullable": true
      },
      "SupplierV2": {
        "type": "object",
        "properties": {
          "account": {
            "type": "string",
            "description": "Supplier account code in the accounting system.",
            "nullable": true
          },
          "categoryCode": {
            "type": "string",
            "description": "This is the category code that describes the merchant/supplier's activity.",
            "nullable": true,
            "example": "5999"
          },
          "code": {
            "type": "string",
            "description": "Identifier of the supplier in the accounting system.",
            "nullable": true
          },
          "country": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "The 2-letter country code the merchant or supplier operates in.",
            "nullable": true,
            "example": "DK",
            "enum": [
              "UNDEFINED",
              "AC",
              "AD",
              "AE",
              "AF",
              "AG",
              "AI",
              "AL",
              "AM",
              "AN",
              "AO",
              "AQ",
              "AR",
              "AS",
              "AT",
              "AU",
              "AW",
              "AX",
              "AZ",
              "BA",
              "BB",
              "BD",
              "BE",
              "BF",
              "BG",
              "BH",
              "BI",
              "BJ",
              "BL",
              "BM",
              "BN",
              "BO",
              "BQ",
              "BR",
              "BS",
              "BT",
              "BU",
              "BV",
              "BW",
              "BY",
              "BZ",
              "CA",
              "CC",
              "CD",
              "CF",
              "CG",
              "CH",
              "CI",
              "CK",
              "CL",
              "CM",
              "CN",
              "CO",
              "CP",
              "CR",
              "CS",
              "CU",
              "CV",
              "CW",
              "CX",
              "CY",
              "CZ",
              "DE",
              "DG",
              "DJ",
              "DK",
              "DM",
              "DO",
              "DZ",
              "EA",
              "EC",
              "EE",
              "EG",
              "EH",
              "ER",
              "ES",
              "ET",
              "EU",
              "EZ",
              "FI",
              "FJ",
              "FK",
              "FM",
              "FO",
              "FR",
              "FX",
              "GA",
              "GB",
              "GD",
              "GE",
              "GF",
              "GG",
              "GH",
              "GI",
              "GL",
              "GM",
              "GN",
              "GP",
              "GQ",
              "GR",
              "GS",
              "GT",
              "GU",
              "GW",
              "GY",
              "HK",
              "HM",
              "HN",
              "HR",
              "HT",
              "HU",
              "IC",
              "ID",
              "IE",
              "IL",
              "IM",
              "IN",
              "IO",
              "IQ",
              "IR",
              "IS",
              "IT",
              "JE",
              "JM",
              "JO",
              "JP",
              "KE",
              "KG",
              "KH",
              "KI",
              "KM",
              "KN",
              "KP",
              "KR",
              "KW",
              "KY",
              "KZ",
              "LA",
              "LB",
              "LC",
              "LI",
              "LK",
              "LR",
              "LS",
              "LT",
              "LU",
              "LV",
              "LY",
              "MA",
              "MC",
              "MD",
              "ME",
              "MF",
              "MG",
              "MH",
              "MK",
              "ML",
              "MM",
              "MN",
              "MO",
              "MP",
              "MQ",
              "MR",
              "MS",
              "MT",
              "MU",
              "MV",
              "MW",
              "MX",
              "MY",
              "MZ",
              "NA",
              "NC",
              "NE",
              "NF",
              "NG",
              "NI",
              "NL",
              "NO",
              "NP",
              "NR",
              "NT",
              "NU",
              "NZ",
              "OM",
              "PA",
              "PE",
              "PF",
              "PG",
              "PH",
              "PK",
              "PL",
              "PM",
              "PN",
              "PR",
              "PS",
              "PT",
              "PW",
              "PY",
              "QA",
              "RE",
              "RO",
              "RS",
              "RU",
              "RW",
              "SA",
              "SB",
              "SC",
              "SD",
              "SE",
              "SF",
              "SG",
              "SH",
              "SI",
              "SJ",
              "SK",
              "SL",
              "SM",
              "SN",
              "SO",
              "SR",
              "SS",
              "ST",
              "SU",
              "SV",
              "SX",
              "SY",
              "SZ",
              "TA",
              "TC",
              "TD",
              "TF",
              "TG",
              "TH",
              "TJ",
              "TK",
              "TL",
              "TM",
              "TN",
              "TO",
              "TP",
              "TR",
              "TT",
              "TV",
              "TW",
              "TZ",
              "UA",
              "UG",
              "UK",
              "UM",
              "US",
              "UY",
              "UZ",
              "VA",
              "VC",
              "VE",
              "VG",
              "VI",
              "VN",
              "VU",
              "WF",
              "WS",
              "XI",
              "XU",
              "XK",
              "YE",
              "YT",
              "YU",
              "ZA",
              "ZM",
              "ZR",
              "ZW"
            ]
          },
          "name": {
            "type": "string",
            "description": "Name of the supplier or merchant.",
            "nullable": true,
            "example": "GOOGLE*ADS8693645259"
          },
          "taxIdentifier": {
            "type": "string",
            "description": "This is the tax identification of the supplier in their country of operation.",
            "nullable": true
          }
        },
        "description": "The supplier or merchant involved.",
        "nullable": true
      },
      "SupplierV3": {
        "type": "object",
        "properties": {
          "account": {
            "type": "string",
            "description": "Supplier account code in the accounting system.",
            "nullable": true
          },
          "categoryCode": {
            "type": "string",
            "description": "Category code that describes the merchant/supplier's activity.",
            "nullable": true,
            "example": "5999"
          },
          "code": {
            "type": "string",
            "description": "Identifier of the supplier in the accounting system.",
            "nullable": true
          },
          "country": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "The ISO 3166-1 alpha-2 country code the merchant or supplier operates in.",
            "nullable": true,
            "example": "DK",
            "enum": [
              "UNDEFINED",
              "AC",
              "AD",
              "AE",
              "AF",
              "AG",
              "AI",
              "AL",
              "AM",
              "AN",
              "AO",
              "AQ",
              "AR",
              "AS",
              "AT",
              "AU",
              "AW",
              "AX",
              "AZ",
              "BA",
              "BB",
              "BD",
              "BE",
              "BF",
              "BG",
              "BH",
              "BI",
              "BJ",
              "BL",
              "BM",
              "BN",
              "BO",
              "BQ",
              "BR",
              "BS",
              "BT",
              "BU",
              "BV",
              "BW",
              "BY",
              "BZ",
              "CA",
              "CC",
              "CD",
              "CF",
              "CG",
              "CH",
              "CI",
              "CK",
              "CL",
              "CM",
              "CN",
              "CO",
              "CP",
              "CR",
              "CS",
              "CU",
              "CV",
              "CW",
              "CX",
              "CY",
              "CZ",
              "DE",
              "DG",
              "DJ",
              "DK",
              "DM",
              "DO",
              "DZ",
              "EA",
              "EC",
              "EE",
              "EG",
              "EH",
              "ER",
              "ES",
              "ET",
              "EU",
              "EZ",
              "FI",
              "FJ",
              "FK",
              "FM",
              "FO",
              "FR",
              "FX",
              "GA",
              "GB",
              "GD",
              "GE",
              "GF",
              "GG",
              "GH",
              "GI",
              "GL",
              "GM",
              "GN",
              "GP",
              "GQ",
              "GR",
              "GS",
              "GT",
              "GU",
              "GW",
              "GY",
              "HK",
              "HM",
              "HN",
              "HR",
              "HT",
              "HU",
              "IC",
              "ID",
              "IE",
              "IL",
              "IM",
              "IN",
              "IO",
              "IQ",
              "IR",
              "IS",
              "IT",
              "JE",
              "JM",
              "JO",
              "JP",
              "KE",
              "KG",
              "KH",
              "KI",
              "KM",
              "KN",
              "KP",
              "KR",
              "KW",
              "KY",
              "KZ",
              "LA",
              "LB",
              "LC",
              "LI",
              "LK",
              "LR",
              "LS",
              "LT",
              "LU",
              "LV",
              "LY",
              "MA",
              "MC",
              "MD",
              "ME",
              "MF",
              "MG",
              "MH",
              "MK",
              "ML",
              "MM",
              "MN",
              "MO",
              "MP",
              "MQ",
              "MR",
              "MS",
              "MT",
              "MU",
              "MV",
              "MW",
              "MX",
              "MY",
              "MZ",
              "NA",
              "NC",
              "NE",
              "NF",
              "NG",
              "NI",
              "NL",
              "NO",
              "NP",
              "NR",
              "NT",
              "NU",
              "NZ",
              "OM",
              "PA",
              "PE",
              "PF",
              "PG",
              "PH",
              "PK",
              "PL",
              "PM",
              "PN",
              "PR",
              "PS",
              "PT",
              "PW",
              "PY",
              "QA",
              "RE",
              "RO",
              "RS",
              "RU",
              "RW",
              "SA",
              "SB",
              "SC",
              "SD",
              "SE",
              "SF",
              "SG",
              "SH",
              "SI",
              "SJ",
              "SK",
              "SL",
              "SM",
              "SN",
              "SO",
              "SR",
              "SS",
              "ST",
              "SU",
              "SV",
              "SX",
              "SY",
              "SZ",
              "TA",
              "TC",
              "TD",
              "TF",
              "TG",
              "TH",
              "TJ",
              "TK",
              "TL",
              "TM",
              "TN",
              "TO",
              "TP",
              "TR",
              "TT",
              "TV",
              "TW",
              "TZ",
              "UA",
              "UG",
              "UK",
              "UM",
              "US",
              "UY",
              "UZ",
              "VA",
              "VC",
              "VE",
              "VG",
              "VI",
              "VN",
              "VU",
              "WF",
              "WS",
              "XI",
              "XU",
              "XK",
              "YE",
              "YT",
              "YU",
              "ZA",
              "ZM",
              "ZR",
              "ZW"
            ]
          },
          "name": {
            "type": "string",
            "description": "Name of the supplier or merchant.",
            "nullable": true,
            "example": "GOOGLE*ADS8693645259"
          },
          "taxIdentifier": {
            "type": "string",
            "description": "Tax identification of the supplier in their country of operation.",
            "nullable": true
          }
        },
        "description": "The supplier or merchant involved.",
        "nullable": true
      },
      "Tag": {
        "required": [
          "code",
          "groupCode"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "This is the identifier to the specific cost allocation item. e.g. the specific project, department, etc."
          },
          "groupCode": {
            "type": "string",
            "description": "Allocation grouping, e.g. project, cost center, department or if the if dimensions are being used, this would be the dimension group identifier."
          }
        },
        "description": "Tags are used to appropriate funds to specific projects, cost centers, departments, etc. This is what is known as \"tags\" in Pleo.",
        "nullable": true
      },
      "TagV1": {
        "required": [
          "code",
          "groupCode",
          "id"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "This is the identifier to the specific cost allocation item. e.g. the specific project, department, etc."
          },
          "groupCode": {
            "type": "string",
            "description": "Allocation grouping, e.g. project, cost center, department or if the if dimensions are being used, this would be the dimension group identifier."
          },
          "id": {
            "type": "string",
            "description": "This is the Pleo internal identifier of the tag.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          }
        },
        "description": "Tags are used to appropriate funds to specific projects, cost centers, departments, etc. This is what is known as \"tags\" in Pleo.",
        "nullable": true
      },
      "TagV2": {
        "required": [
          "code",
          "groupCode",
          "id"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "This is the unique identifier of the tag allocated to the export item."
          },
          "groupCode": {
            "type": "string",
            "description": "This is the unique identifier of the tag group (a tag group is a collection of tags)."
          },
          "id": {
            "type": "string",
            "description": "This is the Pleo internal identifier of the tag.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          }
        },
        "description": "Tags are cost centres allocated to an export item.",
        "nullable": true
      },
      "TagV3": {
        "required": [
          "code",
          "groupCode",
          "id"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Unique identifier of the tag allocated to the export item."
          },
          "groupCode": {
            "type": "string",
            "description": "Unique identifier of the tag group (a tag group is a collection of tags)."
          },
          "id": {
            "type": "string",
            "description": "Pleo internal identifier of the tag.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          }
        },
        "description": "Tags are cost centres allocated to an export item.",
        "nullable": true
      },
      "Tax": {
        "required": [
          "amount",
          "rate",
          "type"
        ],
        "type": "object",
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/ExportItemAmount"
          },
          "code": {
            "type": "string",
            "description": "Tax code.",
            "nullable": true
          },
          "rate": {
            "type": "number",
            "description": "Tax rate. This is represented in decimals and not the percentage. e.g. 20% tax rate would be 0.20.",
            "example": 0.2
          },
          "type": {
            "type": "string",
            "enum": [
              "inclusive",
              "exclusive",
              "reverse"
            ]
          }
        },
        "description": "Tax details applicable to this accounting entry line. The tax details would usually either have the code or the identifier or both.",
        "nullable": true
      },
      "TaxAmountV3": {
        "required": [
          "inSupplierCurrency",
          "inWalletCurrency"
        ],
        "type": "object",
        "properties": {
          "inSupplierCurrency": {
            "$ref": "#/components/schemas/MoneyModel"
          },
          "inWalletCurrency": {
            "$ref": "#/components/schemas/MoneyModel"
          }
        },
        "description": "Amount spent for tax."
      },
      "TaxTypeV3": {
        "type": "string",
        "description": "\n| Value  | Description |\n| ------ | ----------- |\n| inclusive | If the tax code type is inclusive, the net bill amount is the amount including tax and the gross bill amount is excluding tax. |\n| exclusive | If the tax code type is exclusive, the net bill amount is the amount excluding tax and the gross bill amount is including tax. |\n| reverse | Specifies whether the export item follows the EU reverse charge tax mechanism. |",
        "enum": [
          "inclusive",
          "exclusive",
          "reverse"
        ]
      },
      "TaxV1": {
        "required": [
          "amount",
          "id",
          "rate",
          "type"
        ],
        "type": "object",
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/ExportItemAmount"
          },
          "code": {
            "type": "string",
            "description": "Tax code",
            "nullable": true
          },
          "id": {
            "type": "string",
            "description": "This is the Pleo internal identifier of the tax code.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "rate": {
            "type": "number",
            "description": "Tax rate. This is represented in decimals and not the percentage. e.g. 20% tax rate would be 0.20.",
            "example": 0.2
          },
          "type": {
            "type": "string",
            "description": "Tax type",
            "enum": [
              "inclusive",
              "exclusive",
              "reverse"
            ]
          }
        },
        "description": "Tax details applicable to this accounting entry line. The tax details would usually either have the code or the identifier or both.",
        "nullable": true
      },
      "TaxV2": {
        "required": [
          "amount",
          "id",
          "rate",
          "type"
        ],
        "type": "object",
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/ExportItemAmount"
          },
          "code": {
            "type": "string",
            "description": "Tax code.",
            "nullable": true
          },
          "id": {
            "type": "string",
            "description": "This is the Pleo internal identifier of the tax code.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "rate": {
            "type": "number",
            "description": "Tax rate. This is represented in decimals and not the percentage. e.g. 20% tax rate would be 0.20.",
            "example": 0.2
          },
          "type": {
            "type": "string",
            "description": "Tax type.",
            "enum": [
              "inclusive",
              "exclusive",
              "reverse"
            ]
          }
        },
        "description": "Tax details applicable to this accounting entry line. The tax details would usually either have the code or the identifier or both.",
        "nullable": true
      },
      "TaxV3": {
        "required": [
          "amount",
          "id",
          "rate",
          "type"
        ],
        "type": "object",
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/TaxAmountV3"
          },
          "code": {
            "type": "string",
            "description": "Tax code.",
            "nullable": true
          },
          "id": {
            "type": "string",
            "description": "Pleo internal identifier of the tax code.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "ingoingTaxAccount": {
            "type": "string",
            "description": "Ingoing tax account used alongside tax codes or for reverse charge VAT.",
            "example": "123456"
          },
          "outgoingTaxAccount": {
            "type": "string",
            "description": "Outgoing tax account used alongside tax codes or for reverse charge VAT.",
            "example": "123456"
          },
          "rate": {
            "type": "number",
            "description": "Tax rate. Represented as a decimal, not as a percentage, e.g. a 20% tax rate would be 0.20.",
            "example": 0.2
          },
          "type": {
            "type": "string",
            "description": "This can be one of TaxTypeV3 values",
            "example": "inclusive"
          }
        },
        "description": "Tax details applicable to this accounting entry line. The tax details usually have the code, the identifier, or both.",
        "nullable": true
      },
      "TeamV1": {
        "required": [
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Team code, usually the unique identifier of the team in the accounting system.",
            "nullable": true
          },
          "id": {
            "type": "string",
            "description": "This is the Pleo internal identifier of the team.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "name": {
            "type": "string",
            "description": "This is the name of the team.",
            "example": "Marketing"
          }
        },
        "description": "Teams are assigned to an expense to categorize it or associate it with a specific team within the company.",
        "nullable": true
      },
      "TeamV2": {
        "required": [
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Team code, usually the unique identifier of the team in the accounting system.",
            "nullable": true
          },
          "id": {
            "type": "string",
            "description": "This is the Pleo internal identifier of the team.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "name": {
            "type": "string",
            "description": "This is the name of the team.",
            "example": "Marketing"
          }
        },
        "description": "Teams are assigned to an export item for categorisation or association with a specific team.",
        "nullable": true
      },
      "TeamV3": {
        "required": [
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Team code, usually the unique identifier of the team in the accounting system.",
            "nullable": true
          },
          "id": {
            "type": "string",
            "description": "Pleo internal identifier of the team.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "name": {
            "type": "string",
            "description": "Name of the team.",
            "example": "Marketing"
          }
        },
        "description": "Teams are assigned to an export item for categorisation or association with a specific team.",
        "nullable": true
      },
      "UpdateExportJobItem": {
        "required": [
          "accountingEntryId",
          "status"
        ],
        "type": "object",
        "properties": {
          "accountingEntryId": {
            "type": "string",
            "description": "ID of the accounting entry being updated.",
            "format": "uuid"
          },
          "exportedAt": {
            "pattern": "YYYY-MM-DDTHH:mi:ssZ",
            "type": "string",
            "description": "Date and time when the export job was initiated.",
            "format": "date-time"
          },
          "externalId": {
            "type": "string",
            "description": "The accounting system identifier of the entry after export."
          },
          "externalUrl": {
            "type": "string",
            "description": "URL to access the resource of the entry in the accounting system."
          },
          "failureReason": {
            "type": "string",
            "description": "Detailed message explaining the failure."
          },
          "failureReasonType": {
            "type": "string",
            "description": "If the export of this accounting entry failed, specify the failure reason type.",
            "enum": [
              "receipt_upload_failure",
              "receipt_download_failure",
              "receipt_file_size_limit_exceeded",
              "receipt_conversion_failure",
              "unexpected_failure",
              "invalid_configuration",
              "missing_configuration",
              "accounting_system_authentication_failure",
              "accounting_system_rate_limit",
              "accounting_system_unreachable",
              "validation_failure",
              "accounting_system_validation_failure",
              "authorization_failure",
              "accounting_system_timeout"
            ]
          },
          "status": {
            "type": "string",
            "description": "Status of the export Item after being processed.",
            "enum": [
              "pending",
              "in_progress",
              "failed",
              "successful",
              "abandoned"
            ]
          }
        }
      },
      "UpdateExportJobItemV3": {
        "required": [
          "accountingEntryId",
          "status"
        ],
        "type": "object",
        "properties": {
          "accountingEntryId": {
            "type": "string",
            "description": "ID of the accounting entry being updated.",
            "format": "uuid"
          },
          "exportedAt": {
            "pattern": "YYYY-MM-DDTHH:mi:ssZ",
            "type": "string",
            "description": "Date and time when the export job was initiated.",
            "format": "date-time"
          },
          "externalId": {
            "type": "string",
            "description": "The accounting system identifier of the entry after export."
          },
          "externalUrl": {
            "type": "string",
            "description": "URL to access the resource of the entry in the accounting system."
          },
          "failureReason": {
            "type": "string",
            "description": "Detailed message explaining the failure."
          },
          "failureReasonType": {
            "$ref": "#/components/schemas/ExportJobItemFailureReasonType"
          },
          "status": {
            "$ref": "#/components/schemas/ExportJobItemStatus"
          }
        }
      },
      "VendorV2": {
        "required": [
          "defaultCurrency",
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Unique identifier assigned to the vendor in the target ERP/accounting system for aiding users in identifying the correct record."
          },
          "country": {
            "$ref": "#/components/schemas/CountryCode"
          },
          "defaultCurrency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "Default currency in which the vendor’s financial operations, such as purchases, payments, or invoices, are primarily conducted. (ISO 4217 currency code (3 letters))",
            "example": "DKK"
          },
          "externalId": {
            "type": "string",
            "description": "Unique external identifier of the vendor, assigned by the target ERP/accounting system, used by the client for identification. Can be the same as code if no other identifier is available."
          },
          "id": {
            "type": "string",
            "description": "Pleo's internal identifier for the Vendor",
            "format": "uuid",
            "example": "123e4567-e89b-12d3-a456-426614174000"
          },
          "name": {
            "type": "string",
            "description": "The name field represents the official name of the Vendor as it is recorded in the target ERP/accounting system. This name is used to uniquely identify the vendor within the accounting workflow and is visible to the Pleo bookkeeper.",
            "example": "Pleo"
          },
          "registrationNumber": {
            "type": "string",
            "description": "Unique identification of a registered vendor in a country"
          },
          "taxRegistrationNumber": {
            "type": "string",
            "description": "VAT/GST/TaxId number of the Vendor"
          }
        },
        "description": "The vendor associated with the accounting entry."
      },
      "VendorV3": {
        "required": [
          "defaultCurrency",
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Unique identifier assigned to the vendor in the target ERP/accounting system for aiding users in identifying the correct record."
          },
          "country": {
            "$ref": "#/components/schemas/CountryCode"
          },
          "defaultCurrency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "Default currency in which the vendor’s financial operations, such as purchases, payments, or invoices, are primarily conducted. (ISO 4217 currency code (3 letters))",
            "example": "DKK"
          },
          "externalId": {
            "type": "string",
            "description": "Unique external identifier of the vendor, assigned by the target ERP/accounting system, used by the client for identification. Can be the same as code if no other identifier is available."
          },
          "id": {
            "type": "string",
            "description": "Pleo's internal identifier for the vendor",
            "format": "uuid",
            "example": "123e4567-e89b-12d3-a456-426614174000"
          },
          "name": {
            "type": "string",
            "description": "The name field represents the official name of the vendor as it is recorded in the target ERP/accounting system. This name is used to uniquely identify the vendor within the accounting workflow and is visible to the Pleo bookkeeper.",
            "example": "Pleo"
          },
          "registrationNumber": {
            "type": "string",
            "description": "Unique identification of a registered vendor in a country"
          },
          "taxRegistrationNumber": {
            "type": "string",
            "description": "VAT/GST/Tax ID number of the vendor"
          }
        },
        "description": "The vendor associated with the accounting entry.",
        "nullable": true
      }
    },
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "description": "JWT Bearer token authentication. Include the token in the Authorization header as: `Bearer <token>`",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      },
      "basicAuth": {
        "type": "http",
        "description": "Basic HTTP authentication using API key. Use your API key as the username and leave the password empty. The credentials will be Base64 encoded automatically.",
        "scheme": "basic"
      }
    }
  }
}
