{
 "openapi": "3.1.0",
 "info": {
  "title": "Devest Odoo REST API",
  "version": "1.0 (Odoo 18 and 19)",
  "description": "Connect your applications to Odoo through one secure, documented API, provided by **Devest** for its partners.\nIt covers **Accounting, Sales, Purchase and Inventory**, plus contacts and products, on **Odoo 18 and Odoo 19**.\n\n## Getting access\n1. **Devest enables the API** on the Odoo database you integrate with.\n2. The Odoo administrator creates a **dedicated user for your integration** with the group **REST API / User**\n   and only the app rights it needs (for example, Sales only).\n3. Signed in as that user, they open **REST API → My API key** and share the key with you securely.\n   Keys work only for this API, expire, and can be revoked at any time.\n\nSend the key on every request: `Authorization: Bearer <key>`. The base address is\n`https://<odoo-address>/api/v1`.\n\n## What you can see and change\nEvery request runs **as the integration user**: Odoo's access rights, record rules and companies apply,\nexactly as in the Odoo screens. Records that user cannot see answer `404`. Each endpoint also lists which\nfields can be read or written and which business steps can be run.\n\n## Companies and language\n* `X-Company-Id: 1` or `X-Company-Id: 1,3` chooses the companies to work in (default: all of the user's\n  companies). New records go to the first one.\n* `Accept-Language: ar` returns translated names when that language is installed in Odoo.\n\n## Reading lists\n| Parameter | Example | Meaning |\n|---|---|---|\n| `fields` | `name,partner_id(email)` | Fields to return; brackets for related records |\n| `limit`, `offset` | `limit=100&offset=200` | Page size (default 50, max 500) and start |\n| `order` | `date_order desc` | Sort |\n| `<field>=<value>` | `state=sale` | Simple filter |\n| `filter` | `[[\"amount_total\",\">\",1000]]` | Advanced filter (Odoo domain, JSON) |\n| `search` | `search=Acme` | Name contains |\n| `updated_since` | `2026-11-01T00:00:00Z` | Changed since (for syncing) |\n\nLists answer `{\"data\": [...], \"meta\": {\"total\", \"limit\", \"offset\", \"count\", \"next\", \"previous\"}}`.\n\n## Creating and updating\n* `POST /{resource}` creates (`201`), `PATCH /{resource}/{id}` updates, `DELETE /{resource}/{id}` deletes (`204`).\n* Link a record by its id: `\"partner_id\": 7`. Lists of links: `\"tax_ids\": [1, 2]`.\n* Order lines: `\"order_line\": [{\"product_id\": 5, \"product_uom_qty\": 2}]` adds lines; when updating,\n  `{\"id\": 12, \"price_unit\": 9}` changes a line and `{\"id\": 12, \"_delete\": true}` removes it.\n* Dates `YYYY-MM-DD`; date-times ISO 8601 in UTC.\n* `POST /{resource}/{id}/actions/{action}` runs a business step: confirm an order, post an invoice,\n  validate a delivery. If Odoo would need a decision on screen, nothing changes and the answer is\n  `409 wizard_required`.\n* Send `Idempotency-Key: <your unique id>` with every POST: if you retry after a network error, the\n  record is never created twice.\n\nField names follow the Odoo version: on Odoo 19, order lines use `product_uom_id` and `tax_ids`.\n\n## Errors and support\nErrors always answer `{\"error\": {\"code\", \"message\", \"request_id\"}}` with a matching HTTP status.\nEvery answer carries `X-Request-Id`: include it when you contact Devest support.\n\n## Limits\nUp to 300 requests per minute per integration user by default. Above that the answer is `429` with\n`Retry-After` (seconds to wait).\n"
 },
 "servers": [
  {
   "url": "https://{host}/api/v1",
   "variables": {
    "host": {
     "default": "your-company.odoo.com",
     "description": "Your Odoo address"
    }
   }
  }
 ],
 "security": [
  {
   "bearerAuth": []
  }
 ],
 "tags": [
  {
   "name": "Meta"
  },
  {
   "name": "Accounting"
  },
  {
   "name": "Common"
  },
  {
   "name": "Inventory"
  },
  {
   "name": "Purchase"
  },
  {
   "name": "Sales"
  }
 ],
 "paths": {
  "/": {
   "get": {
    "tags": [
     "Meta"
    ],
    "summary": "List the endpoints you can use",
    "operationId": "index",
    "responses": {
     "200": {
      "description": "Endpoints"
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     }
    }
   }
  },
  "/me": {
   "get": {
    "tags": [
     "Meta"
    ],
    "summary": "The user behind the API key",
    "operationId": "me",
    "responses": {
     "200": {
      "description": "Current user"
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     }
    }
   }
  },
  "/openapi.json": {
   "get": {
    "tags": [
     "Meta"
    ],
    "summary": "This document",
    "operationId": "openapi",
    "responses": {
     "200": {
      "description": "OpenAPI document"
     }
    }
   }
  },
  "/invoices": {
   "get": {
    "tags": [
     "Accounting"
    ],
    "summary": "List invoices",
    "description": "Customer invoices and credit notes",
    "operationId": "list_invoices",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/limit"
     },
     {
      "$ref": "#/components/parameters/offset"
     },
     {
      "$ref": "#/components/parameters/order"
     },
     {
      "$ref": "#/components/parameters/filter"
     },
     {
      "$ref": "#/components/parameters/search"
     },
     {
      "$ref": "#/components/parameters/updated_since"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "A page of records",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/Invoices"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/ListMeta"
          }
         }
        }
       }
      },
      "headers": {
       "X-Total-Count": {
        "schema": {
         "type": "integer"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     }
    }
   },
   "post": {
    "tags": [
     "Accounting"
    ],
    "summary": "Create a invoices record",
    "operationId": "create_invoices",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/InvoicesCreate"
       }
      }
     }
    },
    "responses": {
     "201": {
      "description": "Created",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Invoices"
          }
         }
        }
       }
      },
      "headers": {
       "Location": {
        "schema": {
         "type": "string"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "415": {
      "$ref": "#/components/responses/Error415"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/invoices/{id}": {
   "get": {
    "tags": [
     "Accounting"
    ],
    "summary": "Read one invoices record",
    "operationId": "read_invoices",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "The record",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Invoices"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     }
    }
   },
   "patch": {
    "tags": [
     "Accounting"
    ],
    "summary": "Update a invoices record",
    "operationId": "update_invoices",
    "parameters": [
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/InvoicesWrite"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "Updated",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Invoices"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "415": {
      "$ref": "#/components/responses/Error415"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   },
   "delete": {
    "tags": [
     "Accounting"
    ],
    "summary": "Delete a invoices record",
    "operationId": "delete_invoices",
    "parameters": [
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "204": {
      "description": "Deleted"
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   },
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ]
  },
  "/invoices/{id}/actions/action_post": {
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ],
   "post": {
    "tags": [
     "Accounting"
    ],
    "summary": "invoices: action post",
    "operationId": "invoices_action_post",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "Done; the record after the action",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Invoices"
          },
          "result": {}
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/invoices/{id}/actions/button_draft": {
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ],
   "post": {
    "tags": [
     "Accounting"
    ],
    "summary": "invoices: button draft",
    "operationId": "invoices_button_draft",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "Done; the record after the action",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Invoices"
          },
          "result": {}
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/invoices/{id}/actions/button_cancel": {
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ],
   "post": {
    "tags": [
     "Accounting"
    ],
    "summary": "invoices: button cancel",
    "operationId": "invoices_button_cancel",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "Done; the record after the action",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Invoices"
          },
          "result": {}
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/bills": {
   "get": {
    "tags": [
     "Accounting"
    ],
    "summary": "List bills",
    "description": "Vendor bills and refunds",
    "operationId": "list_bills",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/limit"
     },
     {
      "$ref": "#/components/parameters/offset"
     },
     {
      "$ref": "#/components/parameters/order"
     },
     {
      "$ref": "#/components/parameters/filter"
     },
     {
      "$ref": "#/components/parameters/search"
     },
     {
      "$ref": "#/components/parameters/updated_since"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "A page of records",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/Bills"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/ListMeta"
          }
         }
        }
       }
      },
      "headers": {
       "X-Total-Count": {
        "schema": {
         "type": "integer"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     }
    }
   },
   "post": {
    "tags": [
     "Accounting"
    ],
    "summary": "Create a bills record",
    "operationId": "create_bills",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/BillsCreate"
       }
      }
     }
    },
    "responses": {
     "201": {
      "description": "Created",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Bills"
          }
         }
        }
       }
      },
      "headers": {
       "Location": {
        "schema": {
         "type": "string"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "415": {
      "$ref": "#/components/responses/Error415"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/bills/{id}": {
   "get": {
    "tags": [
     "Accounting"
    ],
    "summary": "Read one bills record",
    "operationId": "read_bills",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "The record",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Bills"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     }
    }
   },
   "patch": {
    "tags": [
     "Accounting"
    ],
    "summary": "Update a bills record",
    "operationId": "update_bills",
    "parameters": [
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/BillsWrite"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "Updated",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Bills"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "415": {
      "$ref": "#/components/responses/Error415"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   },
   "delete": {
    "tags": [
     "Accounting"
    ],
    "summary": "Delete a bills record",
    "operationId": "delete_bills",
    "parameters": [
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "204": {
      "description": "Deleted"
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   },
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ]
  },
  "/bills/{id}/actions/action_post": {
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ],
   "post": {
    "tags": [
     "Accounting"
    ],
    "summary": "bills: action post",
    "operationId": "bills_action_post",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "Done; the record after the action",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Bills"
          },
          "result": {}
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/bills/{id}/actions/button_draft": {
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ],
   "post": {
    "tags": [
     "Accounting"
    ],
    "summary": "bills: button draft",
    "operationId": "bills_button_draft",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "Done; the record after the action",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Bills"
          },
          "result": {}
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/bills/{id}/actions/button_cancel": {
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ],
   "post": {
    "tags": [
     "Accounting"
    ],
    "summary": "bills: button cancel",
    "operationId": "bills_button_cancel",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "Done; the record after the action",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Bills"
          },
          "result": {}
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/journal-entries": {
   "get": {
    "tags": [
     "Accounting"
    ],
    "summary": "List journal-entries",
    "description": "Miscellaneous journal entries",
    "operationId": "list_journal_entries",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/limit"
     },
     {
      "$ref": "#/components/parameters/offset"
     },
     {
      "$ref": "#/components/parameters/order"
     },
     {
      "$ref": "#/components/parameters/filter"
     },
     {
      "$ref": "#/components/parameters/search"
     },
     {
      "$ref": "#/components/parameters/updated_since"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "A page of records",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/JournalEntries"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/ListMeta"
          }
         }
        }
       }
      },
      "headers": {
       "X-Total-Count": {
        "schema": {
         "type": "integer"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     }
    }
   },
   "post": {
    "tags": [
     "Accounting"
    ],
    "summary": "Create a journal-entries record",
    "operationId": "create_journal_entries",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/JournalEntriesCreate"
       }
      }
     }
    },
    "responses": {
     "201": {
      "description": "Created",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/JournalEntries"
          }
         }
        }
       }
      },
      "headers": {
       "Location": {
        "schema": {
         "type": "string"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "415": {
      "$ref": "#/components/responses/Error415"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/journal-entries/{id}": {
   "get": {
    "tags": [
     "Accounting"
    ],
    "summary": "Read one journal-entries record",
    "operationId": "read_journal_entries",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "The record",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/JournalEntries"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     }
    }
   },
   "patch": {
    "tags": [
     "Accounting"
    ],
    "summary": "Update a journal-entries record",
    "operationId": "update_journal_entries",
    "parameters": [
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/JournalEntriesWrite"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "Updated",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/JournalEntries"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "415": {
      "$ref": "#/components/responses/Error415"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   },
   "delete": {
    "tags": [
     "Accounting"
    ],
    "summary": "Delete a journal-entries record",
    "operationId": "delete_journal_entries",
    "parameters": [
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "204": {
      "description": "Deleted"
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   },
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ]
  },
  "/journal-entries/{id}/actions/action_post": {
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ],
   "post": {
    "tags": [
     "Accounting"
    ],
    "summary": "journal-entries: action post",
    "operationId": "journal_entries_action_post",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "Done; the record after the action",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/JournalEntries"
          },
          "result": {}
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/journal-entries/{id}/actions/button_draft": {
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ],
   "post": {
    "tags": [
     "Accounting"
    ],
    "summary": "journal-entries: button draft",
    "operationId": "journal_entries_button_draft",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "Done; the record after the action",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/JournalEntries"
          },
          "result": {}
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/journal-entries/{id}/actions/button_cancel": {
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ],
   "post": {
    "tags": [
     "Accounting"
    ],
    "summary": "journal-entries: button cancel",
    "operationId": "journal_entries_button_cancel",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "Done; the record after the action",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/JournalEntries"
          },
          "result": {}
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/journal-items": {
   "get": {
    "tags": [
     "Accounting"
    ],
    "summary": "List journal-items",
    "description": "Journal items (invoice lines and accounting lines)",
    "operationId": "list_journal_items",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/limit"
     },
     {
      "$ref": "#/components/parameters/offset"
     },
     {
      "$ref": "#/components/parameters/order"
     },
     {
      "$ref": "#/components/parameters/filter"
     },
     {
      "$ref": "#/components/parameters/search"
     },
     {
      "$ref": "#/components/parameters/updated_since"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "A page of records",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/JournalItems"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/ListMeta"
          }
         }
        }
       }
      },
      "headers": {
       "X-Total-Count": {
        "schema": {
         "type": "integer"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     }
    }
   }
  },
  "/journal-items/{id}": {
   "get": {
    "tags": [
     "Accounting"
    ],
    "summary": "Read one journal-items record",
    "operationId": "read_journal_items",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "The record",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/JournalItems"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     }
    }
   },
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ]
  },
  "/payments": {
   "get": {
    "tags": [
     "Accounting"
    ],
    "summary": "List payments",
    "description": "Customer and vendor payments",
    "operationId": "list_payments",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/limit"
     },
     {
      "$ref": "#/components/parameters/offset"
     },
     {
      "$ref": "#/components/parameters/order"
     },
     {
      "$ref": "#/components/parameters/filter"
     },
     {
      "$ref": "#/components/parameters/search"
     },
     {
      "$ref": "#/components/parameters/updated_since"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "A page of records",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/Payments"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/ListMeta"
          }
         }
        }
       }
      },
      "headers": {
       "X-Total-Count": {
        "schema": {
         "type": "integer"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     }
    }
   },
   "post": {
    "tags": [
     "Accounting"
    ],
    "summary": "Create a payments record",
    "operationId": "create_payments",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/PaymentsCreate"
       }
      }
     }
    },
    "responses": {
     "201": {
      "description": "Created",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Payments"
          }
         }
        }
       }
      },
      "headers": {
       "Location": {
        "schema": {
         "type": "string"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "415": {
      "$ref": "#/components/responses/Error415"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/payments/{id}": {
   "get": {
    "tags": [
     "Accounting"
    ],
    "summary": "Read one payments record",
    "operationId": "read_payments",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "The record",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Payments"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     }
    }
   },
   "patch": {
    "tags": [
     "Accounting"
    ],
    "summary": "Update a payments record",
    "operationId": "update_payments",
    "parameters": [
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/PaymentsWrite"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "Updated",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Payments"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "415": {
      "$ref": "#/components/responses/Error415"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   },
   "delete": {
    "tags": [
     "Accounting"
    ],
    "summary": "Delete a payments record",
    "operationId": "delete_payments",
    "parameters": [
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "204": {
      "description": "Deleted"
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   },
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ]
  },
  "/payments/{id}/actions/action_post": {
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ],
   "post": {
    "tags": [
     "Accounting"
    ],
    "summary": "payments: action post",
    "operationId": "payments_action_post",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "Done; the record after the action",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Payments"
          },
          "result": {}
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/payments/{id}/actions/action_draft": {
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ],
   "post": {
    "tags": [
     "Accounting"
    ],
    "summary": "payments: action draft",
    "operationId": "payments_action_draft",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "Done; the record after the action",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Payments"
          },
          "result": {}
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/payments/{id}/actions/action_cancel": {
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ],
   "post": {
    "tags": [
     "Accounting"
    ],
    "summary": "payments: action cancel",
    "operationId": "payments_action_cancel",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "Done; the record after the action",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Payments"
          },
          "result": {}
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/accounts": {
   "get": {
    "tags": [
     "Accounting"
    ],
    "summary": "List accounts",
    "description": "Chart of accounts",
    "operationId": "list_accounts",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/limit"
     },
     {
      "$ref": "#/components/parameters/offset"
     },
     {
      "$ref": "#/components/parameters/order"
     },
     {
      "$ref": "#/components/parameters/filter"
     },
     {
      "$ref": "#/components/parameters/search"
     },
     {
      "$ref": "#/components/parameters/updated_since"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "A page of records",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/Accounts"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/ListMeta"
          }
         }
        }
       }
      },
      "headers": {
       "X-Total-Count": {
        "schema": {
         "type": "integer"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     }
    }
   }
  },
  "/accounts/{id}": {
   "get": {
    "tags": [
     "Accounting"
    ],
    "summary": "Read one accounts record",
    "operationId": "read_accounts",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "The record",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Accounts"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     }
    }
   },
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ]
  },
  "/journals": {
   "get": {
    "tags": [
     "Accounting"
    ],
    "summary": "List journals",
    "description": "Journals",
    "operationId": "list_journals",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/limit"
     },
     {
      "$ref": "#/components/parameters/offset"
     },
     {
      "$ref": "#/components/parameters/order"
     },
     {
      "$ref": "#/components/parameters/filter"
     },
     {
      "$ref": "#/components/parameters/search"
     },
     {
      "$ref": "#/components/parameters/updated_since"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "A page of records",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/Journals"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/ListMeta"
          }
         }
        }
       }
      },
      "headers": {
       "X-Total-Count": {
        "schema": {
         "type": "integer"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     }
    }
   }
  },
  "/journals/{id}": {
   "get": {
    "tags": [
     "Accounting"
    ],
    "summary": "Read one journals record",
    "operationId": "read_journals",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "The record",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Journals"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     }
    }
   },
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ]
  },
  "/taxes": {
   "get": {
    "tags": [
     "Accounting"
    ],
    "summary": "List taxes",
    "description": "Taxes",
    "operationId": "list_taxes",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/limit"
     },
     {
      "$ref": "#/components/parameters/offset"
     },
     {
      "$ref": "#/components/parameters/order"
     },
     {
      "$ref": "#/components/parameters/filter"
     },
     {
      "$ref": "#/components/parameters/search"
     },
     {
      "$ref": "#/components/parameters/updated_since"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "A page of records",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/Taxes"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/ListMeta"
          }
         }
        }
       }
      },
      "headers": {
       "X-Total-Count": {
        "schema": {
         "type": "integer"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     }
    }
   }
  },
  "/taxes/{id}": {
   "get": {
    "tags": [
     "Accounting"
    ],
    "summary": "Read one taxes record",
    "operationId": "read_taxes",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "The record",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Taxes"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     }
    }
   },
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ]
  },
  "/payment-terms": {
   "get": {
    "tags": [
     "Accounting"
    ],
    "summary": "List payment-terms",
    "description": "Payment terms",
    "operationId": "list_payment_terms",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/limit"
     },
     {
      "$ref": "#/components/parameters/offset"
     },
     {
      "$ref": "#/components/parameters/order"
     },
     {
      "$ref": "#/components/parameters/filter"
     },
     {
      "$ref": "#/components/parameters/search"
     },
     {
      "$ref": "#/components/parameters/updated_since"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "A page of records",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/PaymentTerms"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/ListMeta"
          }
         }
        }
       }
      },
      "headers": {
       "X-Total-Count": {
        "schema": {
         "type": "integer"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     }
    }
   }
  },
  "/payment-terms/{id}": {
   "get": {
    "tags": [
     "Accounting"
    ],
    "summary": "Read one payment-terms record",
    "operationId": "read_payment_terms",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "The record",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/PaymentTerms"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     }
    }
   },
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ]
  },
  "/analytic-accounts": {
   "get": {
    "tags": [
     "Accounting"
    ],
    "summary": "List analytic-accounts",
    "description": "Analytic accounts (projects, cost centers)",
    "operationId": "list_analytic_accounts",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/limit"
     },
     {
      "$ref": "#/components/parameters/offset"
     },
     {
      "$ref": "#/components/parameters/order"
     },
     {
      "$ref": "#/components/parameters/filter"
     },
     {
      "$ref": "#/components/parameters/search"
     },
     {
      "$ref": "#/components/parameters/updated_since"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "A page of records",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/AnalyticAccounts"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/ListMeta"
          }
         }
        }
       }
      },
      "headers": {
       "X-Total-Count": {
        "schema": {
         "type": "integer"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     }
    }
   },
   "post": {
    "tags": [
     "Accounting"
    ],
    "summary": "Create a analytic-accounts record",
    "operationId": "create_analytic_accounts",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/AnalyticAccountsCreate"
       }
      }
     }
    },
    "responses": {
     "201": {
      "description": "Created",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/AnalyticAccounts"
          }
         }
        }
       }
      },
      "headers": {
       "Location": {
        "schema": {
         "type": "string"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "415": {
      "$ref": "#/components/responses/Error415"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/analytic-accounts/{id}": {
   "get": {
    "tags": [
     "Accounting"
    ],
    "summary": "Read one analytic-accounts record",
    "operationId": "read_analytic_accounts",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "The record",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/AnalyticAccounts"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     }
    }
   },
   "patch": {
    "tags": [
     "Accounting"
    ],
    "summary": "Update a analytic-accounts record",
    "operationId": "update_analytic_accounts",
    "parameters": [
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/AnalyticAccountsWrite"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "Updated",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/AnalyticAccounts"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "415": {
      "$ref": "#/components/responses/Error415"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   },
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ]
  },
  "/analytic-plans": {
   "get": {
    "tags": [
     "Accounting"
    ],
    "summary": "List analytic-plans",
    "description": "Analytic plans",
    "operationId": "list_analytic_plans",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/limit"
     },
     {
      "$ref": "#/components/parameters/offset"
     },
     {
      "$ref": "#/components/parameters/order"
     },
     {
      "$ref": "#/components/parameters/filter"
     },
     {
      "$ref": "#/components/parameters/search"
     },
     {
      "$ref": "#/components/parameters/updated_since"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "A page of records",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/AnalyticPlans"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/ListMeta"
          }
         }
        }
       }
      },
      "headers": {
       "X-Total-Count": {
        "schema": {
         "type": "integer"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     }
    }
   }
  },
  "/analytic-plans/{id}": {
   "get": {
    "tags": [
     "Accounting"
    ],
    "summary": "Read one analytic-plans record",
    "operationId": "read_analytic_plans",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "The record",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/AnalyticPlans"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     }
    }
   },
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ]
  },
  "/partners": {
   "get": {
    "tags": [
     "Common"
    ],
    "summary": "List partners",
    "description": "Contacts: customers, vendors and their addresses",
    "operationId": "list_partners",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/limit"
     },
     {
      "$ref": "#/components/parameters/offset"
     },
     {
      "$ref": "#/components/parameters/order"
     },
     {
      "$ref": "#/components/parameters/filter"
     },
     {
      "$ref": "#/components/parameters/search"
     },
     {
      "$ref": "#/components/parameters/updated_since"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "A page of records",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/Partners"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/ListMeta"
          }
         }
        }
       }
      },
      "headers": {
       "X-Total-Count": {
        "schema": {
         "type": "integer"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     }
    }
   },
   "post": {
    "tags": [
     "Common"
    ],
    "summary": "Create a partners record",
    "operationId": "create_partners",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/PartnersWrite"
       }
      }
     }
    },
    "responses": {
     "201": {
      "description": "Created",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Partners"
          }
         }
        }
       }
      },
      "headers": {
       "Location": {
        "schema": {
         "type": "string"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "415": {
      "$ref": "#/components/responses/Error415"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/partners/{id}": {
   "get": {
    "tags": [
     "Common"
    ],
    "summary": "Read one partners record",
    "operationId": "read_partners",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "The record",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Partners"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     }
    }
   },
   "patch": {
    "tags": [
     "Common"
    ],
    "summary": "Update a partners record",
    "operationId": "update_partners",
    "parameters": [
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/PartnersWrite"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "Updated",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Partners"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "415": {
      "$ref": "#/components/responses/Error415"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   },
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ]
  },
  "/products": {
   "get": {
    "tags": [
     "Common"
    ],
    "summary": "List products",
    "description": "Product variants (what is sold, bought and stocked)",
    "operationId": "list_products",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/limit"
     },
     {
      "$ref": "#/components/parameters/offset"
     },
     {
      "$ref": "#/components/parameters/order"
     },
     {
      "$ref": "#/components/parameters/filter"
     },
     {
      "$ref": "#/components/parameters/search"
     },
     {
      "$ref": "#/components/parameters/updated_since"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "A page of records",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/Products"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/ListMeta"
          }
         }
        }
       }
      },
      "headers": {
       "X-Total-Count": {
        "schema": {
         "type": "integer"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     }
    }
   },
   "post": {
    "tags": [
     "Common"
    ],
    "summary": "Create a products record",
    "operationId": "create_products",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/ProductsCreate"
       }
      }
     }
    },
    "responses": {
     "201": {
      "description": "Created",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Products"
          }
         }
        }
       }
      },
      "headers": {
       "Location": {
        "schema": {
         "type": "string"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "415": {
      "$ref": "#/components/responses/Error415"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/products/{id}": {
   "get": {
    "tags": [
     "Common"
    ],
    "summary": "Read one products record",
    "operationId": "read_products",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "The record",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Products"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     }
    }
   },
   "patch": {
    "tags": [
     "Common"
    ],
    "summary": "Update a products record",
    "operationId": "update_products",
    "parameters": [
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/ProductsWrite"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "Updated",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Products"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "415": {
      "$ref": "#/components/responses/Error415"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   },
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ]
  },
  "/product-categories": {
   "get": {
    "tags": [
     "Common"
    ],
    "summary": "List product-categories",
    "description": "Product categories",
    "operationId": "list_product_categories",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/limit"
     },
     {
      "$ref": "#/components/parameters/offset"
     },
     {
      "$ref": "#/components/parameters/order"
     },
     {
      "$ref": "#/components/parameters/filter"
     },
     {
      "$ref": "#/components/parameters/search"
     },
     {
      "$ref": "#/components/parameters/updated_since"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "A page of records",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/ProductCategories"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/ListMeta"
          }
         }
        }
       }
      },
      "headers": {
       "X-Total-Count": {
        "schema": {
         "type": "integer"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     }
    }
   }
  },
  "/product-categories/{id}": {
   "get": {
    "tags": [
     "Common"
    ],
    "summary": "Read one product-categories record",
    "operationId": "read_product_categories",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "The record",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/ProductCategories"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     }
    }
   },
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ]
  },
  "/uoms": {
   "get": {
    "tags": [
     "Common"
    ],
    "summary": "List uoms",
    "description": "Units of measure",
    "operationId": "list_uoms",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/limit"
     },
     {
      "$ref": "#/components/parameters/offset"
     },
     {
      "$ref": "#/components/parameters/order"
     },
     {
      "$ref": "#/components/parameters/filter"
     },
     {
      "$ref": "#/components/parameters/search"
     },
     {
      "$ref": "#/components/parameters/updated_since"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "A page of records",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/Uoms"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/ListMeta"
          }
         }
        }
       }
      },
      "headers": {
       "X-Total-Count": {
        "schema": {
         "type": "integer"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     }
    }
   }
  },
  "/uoms/{id}": {
   "get": {
    "tags": [
     "Common"
    ],
    "summary": "Read one uoms record",
    "operationId": "read_uoms",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "The record",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Uoms"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     }
    }
   },
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ]
  },
  "/currencies": {
   "get": {
    "tags": [
     "Common"
    ],
    "summary": "List currencies",
    "description": "Currencies and current rates",
    "operationId": "list_currencies",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/limit"
     },
     {
      "$ref": "#/components/parameters/offset"
     },
     {
      "$ref": "#/components/parameters/order"
     },
     {
      "$ref": "#/components/parameters/filter"
     },
     {
      "$ref": "#/components/parameters/search"
     },
     {
      "$ref": "#/components/parameters/updated_since"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "A page of records",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/Currencies"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/ListMeta"
          }
         }
        }
       }
      },
      "headers": {
       "X-Total-Count": {
        "schema": {
         "type": "integer"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     }
    }
   }
  },
  "/currencies/{id}": {
   "get": {
    "tags": [
     "Common"
    ],
    "summary": "Read one currencies record",
    "operationId": "read_currencies",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "The record",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Currencies"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     }
    }
   },
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ]
  },
  "/countries": {
   "get": {
    "tags": [
     "Common"
    ],
    "summary": "List countries",
    "description": "Countries",
    "operationId": "list_countries",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/limit"
     },
     {
      "$ref": "#/components/parameters/offset"
     },
     {
      "$ref": "#/components/parameters/order"
     },
     {
      "$ref": "#/components/parameters/filter"
     },
     {
      "$ref": "#/components/parameters/search"
     },
     {
      "$ref": "#/components/parameters/updated_since"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "A page of records",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/Countries"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/ListMeta"
          }
         }
        }
       }
      },
      "headers": {
       "X-Total-Count": {
        "schema": {
         "type": "integer"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     }
    }
   }
  },
  "/countries/{id}": {
   "get": {
    "tags": [
     "Common"
    ],
    "summary": "Read one countries record",
    "operationId": "read_countries",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "The record",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Countries"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     }
    }
   },
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ]
  },
  "/warehouses": {
   "get": {
    "tags": [
     "Inventory"
    ],
    "summary": "List warehouses",
    "description": "Warehouses",
    "operationId": "list_warehouses",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/limit"
     },
     {
      "$ref": "#/components/parameters/offset"
     },
     {
      "$ref": "#/components/parameters/order"
     },
     {
      "$ref": "#/components/parameters/filter"
     },
     {
      "$ref": "#/components/parameters/search"
     },
     {
      "$ref": "#/components/parameters/updated_since"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "A page of records",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/Warehouses"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/ListMeta"
          }
         }
        }
       }
      },
      "headers": {
       "X-Total-Count": {
        "schema": {
         "type": "integer"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     }
    }
   }
  },
  "/warehouses/{id}": {
   "get": {
    "tags": [
     "Inventory"
    ],
    "summary": "Read one warehouses record",
    "operationId": "read_warehouses",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "The record",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Warehouses"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     }
    }
   },
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ]
  },
  "/locations": {
   "get": {
    "tags": [
     "Inventory"
    ],
    "summary": "List locations",
    "description": "Stock locations",
    "operationId": "list_locations",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/limit"
     },
     {
      "$ref": "#/components/parameters/offset"
     },
     {
      "$ref": "#/components/parameters/order"
     },
     {
      "$ref": "#/components/parameters/filter"
     },
     {
      "$ref": "#/components/parameters/search"
     },
     {
      "$ref": "#/components/parameters/updated_since"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "A page of records",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/Locations"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/ListMeta"
          }
         }
        }
       }
      },
      "headers": {
       "X-Total-Count": {
        "schema": {
         "type": "integer"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     }
    }
   }
  },
  "/locations/{id}": {
   "get": {
    "tags": [
     "Inventory"
    ],
    "summary": "Read one locations record",
    "operationId": "read_locations",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "The record",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Locations"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     }
    }
   },
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ]
  },
  "/operation-types": {
   "get": {
    "tags": [
     "Inventory"
    ],
    "summary": "List operation-types",
    "description": "Operation types (receipts, deliveries, internal transfers)",
    "operationId": "list_operation_types",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/limit"
     },
     {
      "$ref": "#/components/parameters/offset"
     },
     {
      "$ref": "#/components/parameters/order"
     },
     {
      "$ref": "#/components/parameters/filter"
     },
     {
      "$ref": "#/components/parameters/search"
     },
     {
      "$ref": "#/components/parameters/updated_since"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "A page of records",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/OperationTypes"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/ListMeta"
          }
         }
        }
       }
      },
      "headers": {
       "X-Total-Count": {
        "schema": {
         "type": "integer"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     }
    }
   }
  },
  "/operation-types/{id}": {
   "get": {
    "tags": [
     "Inventory"
    ],
    "summary": "Read one operation-types record",
    "operationId": "read_operation_types",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "The record",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/OperationTypes"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     }
    }
   },
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ]
  },
  "/transfers": {
   "get": {
    "tags": [
     "Inventory"
    ],
    "summary": "List transfers",
    "description": "Transfers: receipts, deliveries and internal moves",
    "operationId": "list_transfers",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/limit"
     },
     {
      "$ref": "#/components/parameters/offset"
     },
     {
      "$ref": "#/components/parameters/order"
     },
     {
      "$ref": "#/components/parameters/filter"
     },
     {
      "$ref": "#/components/parameters/search"
     },
     {
      "$ref": "#/components/parameters/updated_since"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "A page of records",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/Transfers"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/ListMeta"
          }
         }
        }
       }
      },
      "headers": {
       "X-Total-Count": {
        "schema": {
         "type": "integer"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     }
    }
   },
   "post": {
    "tags": [
     "Inventory"
    ],
    "summary": "Create a transfers record",
    "operationId": "create_transfers",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/TransfersCreate"
       }
      }
     }
    },
    "responses": {
     "201": {
      "description": "Created",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Transfers"
          }
         }
        }
       }
      },
      "headers": {
       "Location": {
        "schema": {
         "type": "string"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "415": {
      "$ref": "#/components/responses/Error415"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/transfers/{id}": {
   "get": {
    "tags": [
     "Inventory"
    ],
    "summary": "Read one transfers record",
    "operationId": "read_transfers",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "The record",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Transfers"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     }
    }
   },
   "patch": {
    "tags": [
     "Inventory"
    ],
    "summary": "Update a transfers record",
    "operationId": "update_transfers",
    "parameters": [
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/TransfersWrite"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "Updated",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Transfers"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "415": {
      "$ref": "#/components/responses/Error415"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   },
   "delete": {
    "tags": [
     "Inventory"
    ],
    "summary": "Delete a transfers record",
    "operationId": "delete_transfers",
    "parameters": [
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "204": {
      "description": "Deleted"
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   },
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ]
  },
  "/transfers/{id}/actions/action_confirm": {
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ],
   "post": {
    "tags": [
     "Inventory"
    ],
    "summary": "transfers: action confirm",
    "operationId": "transfers_action_confirm",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "Done; the record after the action",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Transfers"
          },
          "result": {}
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/transfers/{id}/actions/action_assign": {
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ],
   "post": {
    "tags": [
     "Inventory"
    ],
    "summary": "transfers: action assign",
    "operationId": "transfers_action_assign",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "Done; the record after the action",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Transfers"
          },
          "result": {}
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/transfers/{id}/actions/do_unreserve": {
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ],
   "post": {
    "tags": [
     "Inventory"
    ],
    "summary": "transfers: do unreserve",
    "operationId": "transfers_do_unreserve",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "Done; the record after the action",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Transfers"
          },
          "result": {}
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/transfers/{id}/actions/button_validate": {
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ],
   "post": {
    "tags": [
     "Inventory"
    ],
    "summary": "transfers: button validate",
    "operationId": "transfers_button_validate",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "Done; the record after the action",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Transfers"
          },
          "result": {}
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/transfers/{id}/actions/action_cancel": {
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ],
   "post": {
    "tags": [
     "Inventory"
    ],
    "summary": "transfers: action cancel",
    "operationId": "transfers_action_cancel",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "Done; the record after the action",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Transfers"
          },
          "result": {}
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/stock-moves": {
   "get": {
    "tags": [
     "Inventory"
    ],
    "summary": "List stock-moves",
    "description": "Stock moves",
    "operationId": "list_stock_moves",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/limit"
     },
     {
      "$ref": "#/components/parameters/offset"
     },
     {
      "$ref": "#/components/parameters/order"
     },
     {
      "$ref": "#/components/parameters/filter"
     },
     {
      "$ref": "#/components/parameters/search"
     },
     {
      "$ref": "#/components/parameters/updated_since"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "A page of records",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/StockMoves"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/ListMeta"
          }
         }
        }
       }
      },
      "headers": {
       "X-Total-Count": {
        "schema": {
         "type": "integer"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     }
    }
   }
  },
  "/stock-moves/{id}": {
   "get": {
    "tags": [
     "Inventory"
    ],
    "summary": "Read one stock-moves record",
    "operationId": "read_stock_moves",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "The record",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/StockMoves"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     }
    }
   },
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ]
  },
  "/stock-levels": {
   "get": {
    "tags": [
     "Inventory"
    ],
    "summary": "List stock-levels",
    "description": "On-hand stock per product, location and lot",
    "operationId": "list_stock_levels",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/limit"
     },
     {
      "$ref": "#/components/parameters/offset"
     },
     {
      "$ref": "#/components/parameters/order"
     },
     {
      "$ref": "#/components/parameters/filter"
     },
     {
      "$ref": "#/components/parameters/search"
     },
     {
      "$ref": "#/components/parameters/updated_since"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "A page of records",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/StockLevels"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/ListMeta"
          }
         }
        }
       }
      },
      "headers": {
       "X-Total-Count": {
        "schema": {
         "type": "integer"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     }
    }
   }
  },
  "/stock-levels/{id}": {
   "get": {
    "tags": [
     "Inventory"
    ],
    "summary": "Read one stock-levels record",
    "operationId": "read_stock_levels",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "The record",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/StockLevels"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     }
    }
   },
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ]
  },
  "/lots": {
   "get": {
    "tags": [
     "Inventory"
    ],
    "summary": "List lots",
    "description": "Lots and serial numbers",
    "operationId": "list_lots",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/limit"
     },
     {
      "$ref": "#/components/parameters/offset"
     },
     {
      "$ref": "#/components/parameters/order"
     },
     {
      "$ref": "#/components/parameters/filter"
     },
     {
      "$ref": "#/components/parameters/search"
     },
     {
      "$ref": "#/components/parameters/updated_since"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "A page of records",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/Lots"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/ListMeta"
          }
         }
        }
       }
      },
      "headers": {
       "X-Total-Count": {
        "schema": {
         "type": "integer"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     }
    }
   }
  },
  "/lots/{id}": {
   "get": {
    "tags": [
     "Inventory"
    ],
    "summary": "Read one lots record",
    "operationId": "read_lots",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "The record",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Lots"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     }
    }
   },
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ]
  },
  "/purchase-orders": {
   "get": {
    "tags": [
     "Purchase"
    ],
    "summary": "List purchase-orders",
    "description": "Requests for quotation and purchase orders",
    "operationId": "list_purchase_orders",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/limit"
     },
     {
      "$ref": "#/components/parameters/offset"
     },
     {
      "$ref": "#/components/parameters/order"
     },
     {
      "$ref": "#/components/parameters/filter"
     },
     {
      "$ref": "#/components/parameters/search"
     },
     {
      "$ref": "#/components/parameters/updated_since"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "A page of records",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/PurchaseOrders"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/ListMeta"
          }
         }
        }
       }
      },
      "headers": {
       "X-Total-Count": {
        "schema": {
         "type": "integer"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     }
    }
   },
   "post": {
    "tags": [
     "Purchase"
    ],
    "summary": "Create a purchase-orders record",
    "operationId": "create_purchase_orders",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/PurchaseOrdersCreate"
       }
      }
     }
    },
    "responses": {
     "201": {
      "description": "Created",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/PurchaseOrders"
          }
         }
        }
       }
      },
      "headers": {
       "Location": {
        "schema": {
         "type": "string"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "415": {
      "$ref": "#/components/responses/Error415"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/purchase-orders/{id}": {
   "get": {
    "tags": [
     "Purchase"
    ],
    "summary": "Read one purchase-orders record",
    "operationId": "read_purchase_orders",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "The record",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/PurchaseOrders"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     }
    }
   },
   "patch": {
    "tags": [
     "Purchase"
    ],
    "summary": "Update a purchase-orders record",
    "operationId": "update_purchase_orders",
    "parameters": [
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/PurchaseOrdersWrite"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "Updated",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/PurchaseOrders"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "415": {
      "$ref": "#/components/responses/Error415"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   },
   "delete": {
    "tags": [
     "Purchase"
    ],
    "summary": "Delete a purchase-orders record",
    "operationId": "delete_purchase_orders",
    "parameters": [
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "204": {
      "description": "Deleted"
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   },
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ]
  },
  "/purchase-orders/{id}/actions/button_confirm": {
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ],
   "post": {
    "tags": [
     "Purchase"
    ],
    "summary": "purchase-orders: button confirm",
    "operationId": "purchase_orders_button_confirm",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "Done; the record after the action",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/PurchaseOrders"
          },
          "result": {}
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/purchase-orders/{id}/actions/button_approve": {
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ],
   "post": {
    "tags": [
     "Purchase"
    ],
    "summary": "purchase-orders: button approve",
    "operationId": "purchase_orders_button_approve",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "Done; the record after the action",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/PurchaseOrders"
          },
          "result": {}
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/purchase-orders/{id}/actions/button_cancel": {
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ],
   "post": {
    "tags": [
     "Purchase"
    ],
    "summary": "purchase-orders: button cancel",
    "operationId": "purchase_orders_button_cancel",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "Done; the record after the action",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/PurchaseOrders"
          },
          "result": {}
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/purchase-orders/{id}/actions/button_draft": {
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ],
   "post": {
    "tags": [
     "Purchase"
    ],
    "summary": "purchase-orders: button draft",
    "operationId": "purchase_orders_button_draft",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "Done; the record after the action",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/PurchaseOrders"
          },
          "result": {}
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/purchase-orders/{id}/actions/action_create_invoice": {
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ],
   "post": {
    "tags": [
     "Purchase"
    ],
    "summary": "purchase-orders: action create invoice",
    "operationId": "purchase_orders_action_create_invoice",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "Done; the record after the action",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/PurchaseOrders"
          },
          "result": {}
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/purchase-order-lines": {
   "get": {
    "tags": [
     "Purchase"
    ],
    "summary": "List purchase-order-lines",
    "description": "Purchase order lines",
    "operationId": "list_purchase_order_lines",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/limit"
     },
     {
      "$ref": "#/components/parameters/offset"
     },
     {
      "$ref": "#/components/parameters/order"
     },
     {
      "$ref": "#/components/parameters/filter"
     },
     {
      "$ref": "#/components/parameters/search"
     },
     {
      "$ref": "#/components/parameters/updated_since"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "A page of records",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/PurchaseOrderLines"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/ListMeta"
          }
         }
        }
       }
      },
      "headers": {
       "X-Total-Count": {
        "schema": {
         "type": "integer"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     }
    }
   }
  },
  "/purchase-order-lines/{id}": {
   "get": {
    "tags": [
     "Purchase"
    ],
    "summary": "Read one purchase-order-lines record",
    "operationId": "read_purchase_order_lines",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "The record",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/PurchaseOrderLines"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     }
    }
   },
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ]
  },
  "/sale-orders": {
   "get": {
    "tags": [
     "Sales"
    ],
    "summary": "List sale-orders",
    "description": "Quotations and sales orders",
    "operationId": "list_sale_orders",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/limit"
     },
     {
      "$ref": "#/components/parameters/offset"
     },
     {
      "$ref": "#/components/parameters/order"
     },
     {
      "$ref": "#/components/parameters/filter"
     },
     {
      "$ref": "#/components/parameters/search"
     },
     {
      "$ref": "#/components/parameters/updated_since"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "A page of records",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/SaleOrders"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/ListMeta"
          }
         }
        }
       }
      },
      "headers": {
       "X-Total-Count": {
        "schema": {
         "type": "integer"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     }
    }
   },
   "post": {
    "tags": [
     "Sales"
    ],
    "summary": "Create a sale-orders record",
    "operationId": "create_sale_orders",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/SaleOrdersCreate"
       }
      }
     }
    },
    "responses": {
     "201": {
      "description": "Created",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/SaleOrders"
          }
         }
        }
       }
      },
      "headers": {
       "Location": {
        "schema": {
         "type": "string"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "415": {
      "$ref": "#/components/responses/Error415"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/sale-orders/{id}": {
   "get": {
    "tags": [
     "Sales"
    ],
    "summary": "Read one sale-orders record",
    "operationId": "read_sale_orders",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "The record",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/SaleOrders"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     }
    }
   },
   "patch": {
    "tags": [
     "Sales"
    ],
    "summary": "Update a sale-orders record",
    "operationId": "update_sale_orders",
    "parameters": [
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/SaleOrdersWrite"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "Updated",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/SaleOrders"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "415": {
      "$ref": "#/components/responses/Error415"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   },
   "delete": {
    "tags": [
     "Sales"
    ],
    "summary": "Delete a sale-orders record",
    "operationId": "delete_sale_orders",
    "parameters": [
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "204": {
      "description": "Deleted"
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   },
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ]
  },
  "/sale-orders/{id}/actions/action_confirm": {
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ],
   "post": {
    "tags": [
     "Sales"
    ],
    "summary": "sale-orders: action confirm",
    "operationId": "sale_orders_action_confirm",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "Done; the record after the action",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/SaleOrders"
          },
          "result": {}
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/sale-orders/{id}/actions/action_cancel": {
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ],
   "post": {
    "tags": [
     "Sales"
    ],
    "summary": "sale-orders: action cancel",
    "operationId": "sale_orders_action_cancel",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "Done; the record after the action",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/SaleOrders"
          },
          "result": {}
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/sale-orders/{id}/actions/action_draft": {
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ],
   "post": {
    "tags": [
     "Sales"
    ],
    "summary": "sale-orders: action draft",
    "operationId": "sale_orders_action_draft",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "Done; the record after the action",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/SaleOrders"
          },
          "result": {}
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/sale-orders/{id}/actions/create_invoices": {
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ],
   "post": {
    "tags": [
     "Sales"
    ],
    "summary": "sale-orders: create invoices",
    "operationId": "sale_orders_create_invoices",
    "parameters": [
     {
      "$ref": "#/components/parameters/idempotency"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "Done; the record after the action",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/SaleOrders"
          },
          "result": {}
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     },
     "409": {
      "$ref": "#/components/responses/Error409"
     },
     "422": {
      "$ref": "#/components/responses/Error422"
     }
    }
   }
  },
  "/sale-order-lines": {
   "get": {
    "tags": [
     "Sales"
    ],
    "summary": "List sale-order-lines",
    "description": "Sales order lines",
    "operationId": "list_sale_order_lines",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/limit"
     },
     {
      "$ref": "#/components/parameters/offset"
     },
     {
      "$ref": "#/components/parameters/order"
     },
     {
      "$ref": "#/components/parameters/filter"
     },
     {
      "$ref": "#/components/parameters/search"
     },
     {
      "$ref": "#/components/parameters/updated_since"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "A page of records",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/SaleOrderLines"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/ListMeta"
          }
         }
        }
       }
      },
      "headers": {
       "X-Total-Count": {
        "schema": {
         "type": "integer"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     }
    }
   }
  },
  "/sale-order-lines/{id}": {
   "get": {
    "tags": [
     "Sales"
    ],
    "summary": "Read one sale-order-lines record",
    "operationId": "read_sale_order_lines",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "The record",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/SaleOrderLines"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     }
    }
   },
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ]
  },
  "/sales-teams": {
   "get": {
    "tags": [
     "Sales"
    ],
    "summary": "List sales-teams",
    "description": "Sales teams",
    "operationId": "list_sales_teams",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/limit"
     },
     {
      "$ref": "#/components/parameters/offset"
     },
     {
      "$ref": "#/components/parameters/order"
     },
     {
      "$ref": "#/components/parameters/filter"
     },
     {
      "$ref": "#/components/parameters/search"
     },
     {
      "$ref": "#/components/parameters/updated_since"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "A page of records",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/SalesTeams"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/ListMeta"
          }
         }
        }
       }
      },
      "headers": {
       "X-Total-Count": {
        "schema": {
         "type": "integer"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     }
    }
   }
  },
  "/sales-teams/{id}": {
   "get": {
    "tags": [
     "Sales"
    ],
    "summary": "Read one sales-teams record",
    "operationId": "read_sales_teams",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "The record",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/SalesTeams"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     }
    }
   },
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ]
  },
  "/pricelists": {
   "get": {
    "tags": [
     "Sales"
    ],
    "summary": "List pricelists",
    "description": "Pricelists",
    "operationId": "list_pricelists",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/limit"
     },
     {
      "$ref": "#/components/parameters/offset"
     },
     {
      "$ref": "#/components/parameters/order"
     },
     {
      "$ref": "#/components/parameters/filter"
     },
     {
      "$ref": "#/components/parameters/search"
     },
     {
      "$ref": "#/components/parameters/updated_since"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "A page of records",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/Pricelists"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/ListMeta"
          }
         }
        }
       }
      },
      "headers": {
       "X-Total-Count": {
        "schema": {
         "type": "integer"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     }
    }
   }
  },
  "/pricelists/{id}": {
   "get": {
    "tags": [
     "Sales"
    ],
    "summary": "Read one pricelists record",
    "operationId": "read_pricelists",
    "parameters": [
     {
      "$ref": "#/components/parameters/fields"
     },
     {
      "$ref": "#/components/parameters/company"
     }
    ],
    "responses": {
     "200": {
      "description": "The record",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Pricelists"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Error400"
     },
     "401": {
      "$ref": "#/components/responses/Error401"
     },
     "403": {
      "$ref": "#/components/responses/Error403"
     },
     "429": {
      "$ref": "#/components/responses/Error429"
     },
     "500": {
      "$ref": "#/components/responses/Error500"
     },
     "404": {
      "$ref": "#/components/responses/Error404"
     }
    }
   },
   "parameters": [
    {
     "$ref": "#/components/parameters/id"
    }
   ]
  }
 },
 "components": {
  "securitySchemes": {
   "bearerAuth": {
    "type": "http",
    "scheme": "bearer",
    "description": "Odoo API key of a user in the group REST API / User"
   }
  },
  "schemas": {
   "Ref": {
    "type": "object",
    "properties": {
     "id": {
      "type": "integer"
     },
     "name": {
      "type": "string"
     }
    },
    "description": "A related record"
   },
   "Error": {
    "type": "object",
    "properties": {
     "error": {
      "type": "object",
      "required": [
       "code",
       "message"
      ],
      "properties": {
       "code": {
        "type": "string"
       },
       "message": {
        "type": "string"
       },
       "request_id": {
        "type": "string"
       },
       "details": {}
      }
     }
    }
   },
   "ListMeta": {
    "type": "object",
    "properties": {
     "total": {
      "type": "integer"
     },
     "limit": {
      "type": "integer"
     },
     "offset": {
      "type": "integer"
     },
     "count": {
      "type": "integer"
     },
     "next": {
      "type": [
       "string",
       "null"
      ],
      "format": "uri"
     },
     "previous": {
      "type": [
       "string",
       "null"
      ],
      "format": "uri"
     }
    }
   },
   "Invoices": {
    "type": "object",
    "properties": {
     "campaign_id": {
      "description": "Campaign - This is a name that helps you keep track of your different campaign efforts, e.g. Fall_Drive, Christmas_Special",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "source_id": {
      "description": "Source - This is the source of the link, e.g. Search Engine, another domain, or name of email list",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "medium_id": {
      "description": "Medium - This is the method of delivery, e.g. Postcard, Email, or Banner Ad",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "sequence_prefix": {
      "description": "Sequence Prefix",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "sequence_number": {
      "description": "Sequence Number",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "activity_ids": {
      "description": "Activities",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "activity_state": {
      "description": "Activity State - Status based on activities\nOverdue: Due date is already passed\nToday: Activity date is today\nPlanned: Future activities.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "overdue",
       "today",
       "planned",
       null
      ],
      "x-labels": {
       "overdue": "Overdue",
       "today": "Today",
       "planned": "Planned"
      },
      "readOnly": true
     },
     "activity_user_id": {
      "description": "Responsible User",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "activity_type_id": {
      "description": "Next Activity Type",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "activity_type_icon": {
      "description": "Activity Type Icon - Font awesome icon e.g. fa-tasks",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "activity_date_deadline": {
      "description": "Next Activity Deadline",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "my_activity_date_deadline": {
      "description": "My Activity Deadline",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "activity_summary": {
      "description": "Next Activity Summary",
      "type": [
       "string",
       "null"
      ]
     },
     "activity_exception_decoration": {
      "description": "Activity Exception Decoration - Type of the exception activity on record.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "warning",
       "danger",
       null
      ],
      "x-labels": {
       "warning": "Alert",
       "danger": "Error"
      },
      "readOnly": true
     },
     "activity_exception_icon": {
      "description": "Icon - Icon to indicate an exception activity.",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "message_is_follower": {
      "description": "Is Follower",
      "type": "boolean",
      "readOnly": true
     },
     "message_follower_ids": {
      "description": "Followers",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_partner_ids": {
      "description": "Followers (Partners)",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_ids": {
      "description": "Messages",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "has_message": {
      "description": "Has Message",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction": {
      "description": "Action Needed - If checked, new messages require your attention.",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction_counter": {
      "description": "Number of Actions - Number of messages requiring action",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_has_error": {
      "description": "Message Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "message_has_error_counter": {
      "description": "Number of errors - Number of messages with delivery error",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_attachment_count": {
      "description": "Attachment Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "website_message_ids": {
      "description": "Website Messages - Website communication history",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_has_sms_error": {
      "description": "SMS Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "access_warning": {
      "description": "Access warning",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "name": {
      "description": "Number",
      "type": [
       "string",
       "null"
      ]
     },
     "name_placeholder": {
      "description": "Name Placeholder",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "ref": {
      "description": "Reference",
      "type": [
       "string",
       "null"
      ]
     },
     "date": {
      "description": "Date",
      "type": "string",
      "format": "date"
     },
     "state": {
      "description": "Status",
      "type": "string",
      "enum": [
       "draft",
       "posted",
       "cancel"
      ],
      "x-labels": {
       "draft": "Draft",
       "posted": "Posted",
       "cancel": "Cancelled"
      },
      "readOnly": true
     },
     "move_type": {
      "description": "Type",
      "type": "string",
      "enum": [
       "entry",
       "out_invoice",
       "out_refund",
       "in_invoice",
       "in_refund",
       "out_receipt",
       "in_receipt"
      ],
      "x-labels": {
       "entry": "Journal Entry",
       "out_invoice": "Customer Invoice",
       "out_refund": "Customer Credit Note",
       "in_invoice": "Vendor Bill",
       "in_refund": "Vendor Credit Note",
       "out_receipt": "Sales Receipt",
       "in_receipt": "Purchase Receipt"
      },
      "readOnly": true
     },
     "is_storno": {
      "description": "Is Storno",
      "type": "boolean"
     },
     "journal_id": {
      "description": "Journal",
      "$ref": "#/components/schemas/Ref"
     },
     "journal_group_id": {
      "description": "Ledger",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "company_id": {
      "description": "Company",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "line_ids": {
      "description": "Journal Items",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "origin_payment_id": {
      "description": "Payment",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "matched_payment_ids": {
      "description": "Matched Payments",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "reconciled_payment_ids": {
      "description": "Reconciled Payments - Payments that have been reconciled with this invoice.",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "payment_count": {
      "description": "Payment Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "statement_line_id": {
      "description": "Statement Line",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "statement_id": {
      "description": "Statement",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "tax_cash_basis_rec_id": {
      "description": "Tax Cash Basis Entry of",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "tax_cash_basis_origin_move_id": {
      "description": "Cash Basis Origin - The journal entry from which this tax cash basis journal entry has been created.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "tax_cash_basis_created_move_ids": {
      "description": "Cash Basis Entries - The cash basis entries created from the taxes on this entry, when reconciling its lines.",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "always_tax_exigible": {
      "description": "Always Tax Exigible",
      "type": "boolean"
     },
     "auto_post": {
      "description": "Auto-post - Specify whether this entry is posted automatically on its accounting date, and any similar recurring invoices.",
      "type": "string",
      "enum": [
       "no",
       "at_date",
       "monthly",
       "quarterly",
       "yearly"
      ],
      "x-labels": {
       "no": "No",
       "at_date": "At Date",
       "monthly": "Monthly",
       "quarterly": "Quarterly",
       "yearly": "Yearly"
      }
     },
     "auto_post_until": {
      "description": "Auto-post until - This recurring move will be posted up to and including this date.",
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "auto_post_origin_id": {
      "description": "First recurring entry",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "hide_post_button": {
      "description": "Hide Post Button",
      "type": "boolean",
      "readOnly": true
     },
     "checked": {
      "description": "Checked - If this checkbox is not ticked, it means that the user was not sure of all the related information at the time of the creation of the move and that the move needs to be checked again.",
      "type": "boolean"
     },
     "posted_before": {
      "description": "Posted Before",
      "type": "boolean"
     },
     "suitable_journal_ids": {
      "description": "Suitable Journal",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "highest_name": {
      "description": "Highest Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "made_sequence_gap": {
      "description": "Made Sequence Gap",
      "type": "boolean",
      "readOnly": true
     },
     "show_name_warning": {
      "description": "Show Name Warning",
      "type": "boolean"
     },
     "type_name": {
      "description": "Type Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "country_code": {
      "description": "Country Code - The ISO country code in two chars. \nYou can use this field for quick search.",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "company_price_include": {
      "description": "Default Sales Price Include - Default on whether the sales price used on the product and invoices with this Company includes its taxes.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "tax_included",
       "tax_excluded",
       null
      ],
      "x-labels": {
       "tax_included": "Tax Included",
       "tax_excluded": "Tax Excluded"
      },
      "readOnly": true
     },
     "attachment_ids": {
      "description": "Attachments",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "audit_trail_message_ids": {
      "description": "Audit Trail Messages",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "restrict_mode_hash_table": {
      "description": "Secure Posted Entries with Hash - If ticked, when an entry is posted, we retroactively hash all moves in the sequence from the entry back to the last hashed entry. The hash can also be performed on demand by the Secure Entries wizard.",
      "type": "boolean",
      "readOnly": true
     },
     "secure_sequence_number": {
      "description": "Inalterability No Gap Sequence #",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "inalterable_hash": {
      "description": "Inalterability Hash",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "secured": {
      "description": "Secured - The entry is secured with an inalterable hash.",
      "type": "boolean",
      "readOnly": true
     },
     "invoice_line_ids": {
      "description": "Invoice lines",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "invoice_date": {
      "description": "Invoice/Bill Date",
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "invoice_date_due": {
      "description": "Due Date",
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "delivery_date": {
      "description": "Delivery Date",
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "show_delivery_date": {
      "description": "Show Delivery Date",
      "type": "boolean",
      "readOnly": true
     },
     "invoice_payment_term_id": {
      "description": "Payment Terms",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "needed_terms_dirty": {
      "description": "Needed Terms Dirty",
      "type": "boolean",
      "readOnly": true
     },
     "tax_calculation_rounding_method": {
      "description": "Tax calculation rounding method",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "round_per_line",
       "round_globally",
       null
      ],
      "x-labels": {
       "round_per_line": "Round per Line",
       "round_globally": "Round Globally"
      },
      "readOnly": true
     },
     "partner_id": {
      "description": "Partner",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "commercial_partner_id": {
      "description": "Commercial Entity",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "partner_shipping_id": {
      "description": "Delivery Address - The delivery address will be used in the computation of the fiscal position.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "partner_bank_id": {
      "description": "Recipient Bank - Bank Account Number to which the invoice will be paid. A Company bank account if this is a Customer Invoice or Vendor Credit Note, otherwise a Partner bank account number.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "fiscal_position_id": {
      "description": "Fiscal Position - Fiscal positions are used to adapt taxes and accounts for particular customers or sales orders/invoices. The default value comes from the customer.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "payment_reference": {
      "description": "Payment Reference - The payment reference to set on journal items.",
      "type": [
       "string",
       "null"
      ]
     },
     "display_qr_code": {
      "description": "Display QR-code",
      "type": "boolean",
      "readOnly": true
     },
     "qr_code_method": {
      "description": "Payment QR-code - Type of QR-code to be generated for the payment of this invoice, when printing it. If left blank, the first available and usable method will be used.",
      "type": [
       "string",
       "null"
      ]
     },
     "invoice_has_outstanding": {
      "description": "Invoice Has Outstanding",
      "type": "boolean",
      "readOnly": true
     },
     "preferred_payment_method_line_id": {
      "description": "Preferred Payment Method Line",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "company_currency_id": {
      "description": "Company Currency",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "currency_id": {
      "description": "Currency",
      "$ref": "#/components/schemas/Ref"
     },
     "expected_currency_rate": {
      "description": "Expected Currency Rate",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "invoice_currency_rate": {
      "description": "Currency Rate - Currency rate from company currency to document currency.",
      "type": [
       "number",
       "null"
      ]
     },
     "direction_sign": {
      "description": "Direction Sign - Multiplicator depending on the document type, to convert a price into a balance",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "amount_untaxed": {
      "description": "Untaxed Amount",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_tax": {
      "description": "Tax",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_total": {
      "description": "Total",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_residual": {
      "description": "Amount Due",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_untaxed_signed": {
      "description": "Untaxed Amount Signed",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_untaxed_in_currency_signed": {
      "description": "Untaxed Amount Signed Currency",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_tax_signed": {
      "description": "Tax Signed",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_total_signed": {
      "description": "Total Signed",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_total_in_currency_signed": {
      "description": "Total in Currency Signed",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_residual_signed": {
      "description": "Amount Due Signed",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "payment_state": {
      "description": "Payment Status",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "not_paid",
       "in_payment",
       "paid",
       "partial",
       "reversed",
       "blocked",
       "invoicing_legacy",
       null
      ],
      "x-labels": {
       "not_paid": "Not Paid",
       "in_payment": "In Payment",
       "paid": "Paid",
       "partial": "Partially Paid",
       "reversed": "Reversed",
       "blocked": "Blocked",
       "invoicing_legacy": "Invoicing App Legacy"
      },
      "readOnly": true
     },
     "status_in_payment": {
      "description": "Status In Payment",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "not_paid",
       "in_payment",
       "paid",
       "partial",
       "reversed",
       "blocked",
       "invoicing_legacy",
       "draft",
       "cancel",
       null
      ],
      "x-labels": {
       "not_paid": "Not Paid",
       "in_payment": "In Payment",
       "paid": "Paid",
       "partial": "Partially Paid",
       "reversed": "Reversed",
       "blocked": "Blocked",
       "invoicing_legacy": "Invoicing App Legacy",
       "draft": "Draft",
       "cancel": "Cancelled"
      },
      "readOnly": true
     },
     "amount_total_words": {
      "description": "Amount total in words",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "reversed_entry_id": {
      "description": "Reversal of",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "reversal_move_ids": {
      "description": "Reversal Move",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "invoice_vendor_bill_id": {
      "description": "Vendor Bill - Auto-complete from a past bill.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "invoice_source_email": {
      "description": "Source Email",
      "type": [
       "string",
       "null"
      ]
     },
     "invoice_partner_display_name": {
      "description": "Invoice Partner Display Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "is_manually_modified": {
      "description": "Is Manually Modified",
      "type": "boolean"
     },
     "quick_edit_mode": {
      "description": "Quick Edit Mode",
      "type": "boolean",
      "readOnly": true
     },
     "quick_edit_total_amount": {
      "description": "Total (Tax inc.) - Use this field to encode the total amount of the invoice.\nOdoo will automatically create one invoice line with default values to match it.",
      "type": [
       "number",
       "null"
      ]
     },
     "quick_encoding_vals": {
      "description": "Quick Encoding Vals",
      "type": [
       "object",
       "null"
      ],
      "readOnly": true
     },
     "narration": {
      "description": "Terms and Conditions",
      "type": [
       "string",
       "null"
      ]
     },
     "is_move_sent": {
      "description": "Is Move Sent - It indicates that the invoice/payment has been sent or the PDF has been generated.",
      "type": "boolean",
      "readOnly": true
     },
     "is_being_sent": {
      "description": "Is Being Sent - Is the move being sent asynchronously",
      "type": "boolean",
      "readOnly": true
     },
     "move_sent_values": {
      "description": "Sent",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "sent",
       "not_sent",
       null
      ],
      "x-labels": {
       "sent": "Sent",
       "not_sent": "Not Sent"
      },
      "readOnly": true
     },
     "invoice_user_id": {
      "description": "Salesperson",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "user_id": {
      "description": "User",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "invoice_origin": {
      "description": "Origin - The document(s) that generated the invoice.",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "invoice_incoterm_id": {
      "description": "Incoterm - International Commercial Terms are a series of predefined commercial terms used in international transactions.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "incoterm_location": {
      "description": "Incoterm Location",
      "type": [
       "string",
       "null"
      ]
     },
     "invoice_cash_rounding_id": {
      "description": "Cash Rounding Method - Defines the smallest coinage of the currency that can be used to pay by cash.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "sending_data": {
      "description": "Sending Data",
      "type": [
       "object",
       "null"
      ]
     },
     "invoice_pdf_report_id": {
      "description": "PDF Attachment",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "invoice_filter_type_domain": {
      "description": "Invoice Filter Type Domain",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "bank_partner_id": {
      "description": "Bank Partner - Technical field to get the domain on the bank",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "tax_lock_date_message": {
      "description": "Tax Lock Date Message",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "display_inactive_currency_warning": {
      "description": "Display Inactive Currency Warning",
      "type": "boolean",
      "readOnly": true
     },
     "tax_country_id": {
      "description": "Tax Country",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "tax_country_code": {
      "description": "Tax Country Code",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "has_reconciled_entries": {
      "description": "Has Reconciled Entries",
      "type": "boolean",
      "readOnly": true
     },
     "show_reset_to_draft_button": {
      "description": "Show Reset To Draft Button",
      "type": "boolean",
      "readOnly": true
     },
     "partner_credit_warning": {
      "description": "Partner Credit Warning",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "partner_credit": {
      "description": "Partner Credit",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "duplicated_ref_ids": {
      "description": "Duplicated Ref",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "need_cancel_request": {
      "description": "Need Cancel Request",
      "type": "boolean",
      "readOnly": true
     },
     "show_update_fpos": {
      "description": "Has Fiscal Position Changed",
      "type": "boolean"
     },
     "show_payment_term_details": {
      "description": "Show Payment Term Details",
      "type": "boolean",
      "readOnly": true
     },
     "show_discount_details": {
      "description": "Show Discount Details",
      "type": "boolean",
      "readOnly": true
     },
     "abnormal_amount_warning": {
      "description": "Abnormal Amount Warning",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "abnormal_date_warning": {
      "description": "Abnormal Date Warning",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "taxes_legal_notes": {
      "description": "Taxes Legal Notes",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "next_payment_date": {
      "description": "Next Payment Date",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "id": {
      "type": "integer",
      "readOnly": true
     },
     "display_name": {
      "description": "Display Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "create_uid": {
      "description": "Created by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "create_date": {
      "description": "Created on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "write_uid": {
      "description": "Last Updated by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "write_date": {
      "description": "Last Updated on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "payment_ids": {
      "description": "Payments",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "statement_line_ids": {
      "description": "Statements",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "ubl_cii_xml_id": {
      "description": "Attachment",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "transaction_ids": {
      "description": "Transactions",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "authorized_transaction_ids": {
      "description": "Authorized Transactions",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "transaction_count": {
      "description": "Transaction Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "amount_paid": {
      "description": "Amount paid",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "purchase_vendor_bill_id": {
      "description": "Auto-complete - Auto-complete from a past bill / purchase order.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "purchase_id": {
      "description": "Purchase Order - Auto-complete from a past purchase order.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "purchase_order_count": {
      "description": "Purchase Order Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "purchase_order_name": {
      "description": "Purchase Order Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "is_purchase_matched": {
      "description": "Is Purchase Matched",
      "type": "boolean",
      "readOnly": true
     },
     "stock_move_id": {
      "description": "Stock Move",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "stock_valuation_layer_ids": {
      "description": "Stock Valuation Layer",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "team_id": {
      "description": "Sales Team",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "sale_order_count": {
      "description": "Sale Order Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     }
    },
    "x-default-fields": [
     "id",
     "name",
     "move_type",
     "state",
     "payment_state",
     "partner_id",
     "invoice_date",
     "invoice_date_due",
     "date",
     "ref",
     "payment_reference",
     "invoice_origin",
     "currency_id",
     "amount_untaxed",
     "amount_tax",
     "amount_total",
     "amount_residual",
     "journal_id",
     "invoice_user_id",
     "company_id"
    ]
   },
   "InvoicesWrite": {
    "type": "object",
    "properties": {
     "move_type": {
      "description": "Type",
      "type": "string",
      "enum": [
       "entry",
       "out_invoice",
       "out_refund",
       "in_invoice",
       "in_refund",
       "out_receipt",
       "in_receipt"
      ],
      "x-labels": {
       "entry": "Journal Entry",
       "out_invoice": "Customer Invoice",
       "out_refund": "Customer Credit Note",
       "in_invoice": "Vendor Bill",
       "in_refund": "Vendor Credit Note",
       "out_receipt": "Sales Receipt",
       "in_receipt": "Purchase Receipt"
      }
     },
     "partner_id": {
      "description": "Partner (id of res.partner)",
      "type": [
       "integer",
       "null"
      ]
     },
     "invoice_date": {
      "description": "Invoice/Bill Date",
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "invoice_date_due": {
      "description": "Due Date",
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "date": {
      "description": "Date",
      "type": "string",
      "format": "date"
     },
     "ref": {
      "description": "Reference",
      "type": [
       "string",
       "null"
      ]
     },
     "payment_reference": {
      "description": "Payment Reference - The payment reference to set on journal items.",
      "type": [
       "string",
       "null"
      ]
     },
     "invoice_origin": {
      "description": "Origin - The document(s) that generated the invoice.",
      "type": [
       "string",
       "null"
      ]
     },
     "currency_id": {
      "description": "Currency (id of res.currency)",
      "type": "integer"
     },
     "journal_id": {
      "description": "Journal (id of account.journal)",
      "type": "integer"
     },
     "invoice_payment_term_id": {
      "description": "Payment Terms (id of account.payment.term)",
      "type": [
       "integer",
       "null"
      ]
     },
     "invoice_user_id": {
      "description": "Salesperson (id of res.users)",
      "type": [
       "integer",
       "null"
      ]
     },
     "narration": {
      "description": "Terms and Conditions",
      "type": [
       "string",
       "null"
      ]
     },
     "invoice_line_ids": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "id": {
         "type": "integer",
         "description": "Existing line to change (update only)"
        },
        "_delete": {
         "type": "boolean",
         "description": "With id: remove the line"
        },
        "product_id": {
         "description": "Product (id of product.product)",
         "type": [
          "integer",
          "null"
         ]
        },
        "name": {
         "description": "Label",
         "type": [
          "string",
          "null"
         ]
        },
        "quantity": {
         "description": "Quantity - The optional quantity expressed by this line, eg: number of product sold. The quantity is not a legal requirement but is very useful for some reports.",
         "type": [
          "number",
          "null"
         ]
        },
        "product_uom_id": {
         "description": "Unit of Measure (id of uom.uom)",
         "type": [
          "integer",
          "null"
         ]
        },
        "price_unit": {
         "description": "Unit Price",
         "type": [
          "number",
          "null"
         ]
        },
        "discount": {
         "description": "Discount (%)",
         "type": [
          "number",
          "null"
         ]
        },
        "tax_ids": {
         "description": "Taxes",
         "type": "array",
         "items": {
          "type": "integer"
         }
        },
        "account_id": {
         "description": "Account (id of account.account)",
         "type": [
          "integer",
          "null"
         ]
        },
        "analytic_distribution": {
         "description": "Analytic Distribution",
         "type": [
          "object",
          "null"
         ]
        },
        "display_type": {
         "description": "Display Type",
         "type": "string",
         "enum": [
          "product",
          "cogs",
          "tax",
          "discount",
          "rounding",
          "payment_term",
          "line_section",
          "line_note",
          "epd"
         ],
         "x-labels": {
          "product": "Product",
          "cogs": "Cost of Goods Sold",
          "tax": "Tax",
          "discount": "Discount",
          "rounding": "Rounding",
          "payment_term": "Payment Term",
          "line_section": "Section",
          "line_note": "Note",
          "epd": "Early Payment Discount"
         }
        },
        "sequence": {
         "description": "Sequence",
         "type": [
          "integer",
          "null"
         ]
        }
       },
       "additionalProperties": false
      },
      "description": "Invoice lines"
     }
    },
    "additionalProperties": false
   },
   "InvoicesCreate": {
    "allOf": [
     {
      "$ref": "#/components/schemas/InvoicesWrite"
     },
     {
      "required": [
       "date",
       "currency_id",
       "journal_id"
      ]
     }
    ]
   },
   "Bills": {
    "type": "object",
    "properties": {
     "campaign_id": {
      "description": "Campaign - This is a name that helps you keep track of your different campaign efforts, e.g. Fall_Drive, Christmas_Special",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "source_id": {
      "description": "Source - This is the source of the link, e.g. Search Engine, another domain, or name of email list",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "medium_id": {
      "description": "Medium - This is the method of delivery, e.g. Postcard, Email, or Banner Ad",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "sequence_prefix": {
      "description": "Sequence Prefix",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "sequence_number": {
      "description": "Sequence Number",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "activity_ids": {
      "description": "Activities",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "activity_state": {
      "description": "Activity State - Status based on activities\nOverdue: Due date is already passed\nToday: Activity date is today\nPlanned: Future activities.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "overdue",
       "today",
       "planned",
       null
      ],
      "x-labels": {
       "overdue": "Overdue",
       "today": "Today",
       "planned": "Planned"
      },
      "readOnly": true
     },
     "activity_user_id": {
      "description": "Responsible User",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "activity_type_id": {
      "description": "Next Activity Type",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "activity_type_icon": {
      "description": "Activity Type Icon - Font awesome icon e.g. fa-tasks",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "activity_date_deadline": {
      "description": "Next Activity Deadline",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "my_activity_date_deadline": {
      "description": "My Activity Deadline",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "activity_summary": {
      "description": "Next Activity Summary",
      "type": [
       "string",
       "null"
      ]
     },
     "activity_exception_decoration": {
      "description": "Activity Exception Decoration - Type of the exception activity on record.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "warning",
       "danger",
       null
      ],
      "x-labels": {
       "warning": "Alert",
       "danger": "Error"
      },
      "readOnly": true
     },
     "activity_exception_icon": {
      "description": "Icon - Icon to indicate an exception activity.",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "message_is_follower": {
      "description": "Is Follower",
      "type": "boolean",
      "readOnly": true
     },
     "message_follower_ids": {
      "description": "Followers",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_partner_ids": {
      "description": "Followers (Partners)",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_ids": {
      "description": "Messages",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "has_message": {
      "description": "Has Message",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction": {
      "description": "Action Needed - If checked, new messages require your attention.",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction_counter": {
      "description": "Number of Actions - Number of messages requiring action",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_has_error": {
      "description": "Message Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "message_has_error_counter": {
      "description": "Number of errors - Number of messages with delivery error",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_attachment_count": {
      "description": "Attachment Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "website_message_ids": {
      "description": "Website Messages - Website communication history",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_has_sms_error": {
      "description": "SMS Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "access_warning": {
      "description": "Access warning",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "name": {
      "description": "Number",
      "type": [
       "string",
       "null"
      ]
     },
     "name_placeholder": {
      "description": "Name Placeholder",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "ref": {
      "description": "Reference",
      "type": [
       "string",
       "null"
      ]
     },
     "date": {
      "description": "Date",
      "type": "string",
      "format": "date"
     },
     "state": {
      "description": "Status",
      "type": "string",
      "enum": [
       "draft",
       "posted",
       "cancel"
      ],
      "x-labels": {
       "draft": "Draft",
       "posted": "Posted",
       "cancel": "Cancelled"
      },
      "readOnly": true
     },
     "move_type": {
      "description": "Type",
      "type": "string",
      "enum": [
       "entry",
       "out_invoice",
       "out_refund",
       "in_invoice",
       "in_refund",
       "out_receipt",
       "in_receipt"
      ],
      "x-labels": {
       "entry": "Journal Entry",
       "out_invoice": "Customer Invoice",
       "out_refund": "Customer Credit Note",
       "in_invoice": "Vendor Bill",
       "in_refund": "Vendor Credit Note",
       "out_receipt": "Sales Receipt",
       "in_receipt": "Purchase Receipt"
      },
      "readOnly": true
     },
     "is_storno": {
      "description": "Is Storno",
      "type": "boolean"
     },
     "journal_id": {
      "description": "Journal",
      "$ref": "#/components/schemas/Ref"
     },
     "journal_group_id": {
      "description": "Ledger",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "company_id": {
      "description": "Company",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "line_ids": {
      "description": "Journal Items",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "origin_payment_id": {
      "description": "Payment",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "matched_payment_ids": {
      "description": "Matched Payments",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "reconciled_payment_ids": {
      "description": "Reconciled Payments - Payments that have been reconciled with this invoice.",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "payment_count": {
      "description": "Payment Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "statement_line_id": {
      "description": "Statement Line",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "statement_id": {
      "description": "Statement",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "tax_cash_basis_rec_id": {
      "description": "Tax Cash Basis Entry of",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "tax_cash_basis_origin_move_id": {
      "description": "Cash Basis Origin - The journal entry from which this tax cash basis journal entry has been created.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "tax_cash_basis_created_move_ids": {
      "description": "Cash Basis Entries - The cash basis entries created from the taxes on this entry, when reconciling its lines.",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "always_tax_exigible": {
      "description": "Always Tax Exigible",
      "type": "boolean"
     },
     "auto_post": {
      "description": "Auto-post - Specify whether this entry is posted automatically on its accounting date, and any similar recurring invoices.",
      "type": "string",
      "enum": [
       "no",
       "at_date",
       "monthly",
       "quarterly",
       "yearly"
      ],
      "x-labels": {
       "no": "No",
       "at_date": "At Date",
       "monthly": "Monthly",
       "quarterly": "Quarterly",
       "yearly": "Yearly"
      }
     },
     "auto_post_until": {
      "description": "Auto-post until - This recurring move will be posted up to and including this date.",
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "auto_post_origin_id": {
      "description": "First recurring entry",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "hide_post_button": {
      "description": "Hide Post Button",
      "type": "boolean",
      "readOnly": true
     },
     "checked": {
      "description": "Checked - If this checkbox is not ticked, it means that the user was not sure of all the related information at the time of the creation of the move and that the move needs to be checked again.",
      "type": "boolean"
     },
     "posted_before": {
      "description": "Posted Before",
      "type": "boolean"
     },
     "suitable_journal_ids": {
      "description": "Suitable Journal",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "highest_name": {
      "description": "Highest Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "made_sequence_gap": {
      "description": "Made Sequence Gap",
      "type": "boolean",
      "readOnly": true
     },
     "show_name_warning": {
      "description": "Show Name Warning",
      "type": "boolean"
     },
     "type_name": {
      "description": "Type Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "country_code": {
      "description": "Country Code - The ISO country code in two chars. \nYou can use this field for quick search.",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "company_price_include": {
      "description": "Default Sales Price Include - Default on whether the sales price used on the product and invoices with this Company includes its taxes.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "tax_included",
       "tax_excluded",
       null
      ],
      "x-labels": {
       "tax_included": "Tax Included",
       "tax_excluded": "Tax Excluded"
      },
      "readOnly": true
     },
     "attachment_ids": {
      "description": "Attachments",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "audit_trail_message_ids": {
      "description": "Audit Trail Messages",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "restrict_mode_hash_table": {
      "description": "Secure Posted Entries with Hash - If ticked, when an entry is posted, we retroactively hash all moves in the sequence from the entry back to the last hashed entry. The hash can also be performed on demand by the Secure Entries wizard.",
      "type": "boolean",
      "readOnly": true
     },
     "secure_sequence_number": {
      "description": "Inalterability No Gap Sequence #",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "inalterable_hash": {
      "description": "Inalterability Hash",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "secured": {
      "description": "Secured - The entry is secured with an inalterable hash.",
      "type": "boolean",
      "readOnly": true
     },
     "invoice_line_ids": {
      "description": "Invoice lines",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "invoice_date": {
      "description": "Invoice/Bill Date",
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "invoice_date_due": {
      "description": "Due Date",
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "delivery_date": {
      "description": "Delivery Date",
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "show_delivery_date": {
      "description": "Show Delivery Date",
      "type": "boolean",
      "readOnly": true
     },
     "invoice_payment_term_id": {
      "description": "Payment Terms",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "needed_terms_dirty": {
      "description": "Needed Terms Dirty",
      "type": "boolean",
      "readOnly": true
     },
     "tax_calculation_rounding_method": {
      "description": "Tax calculation rounding method",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "round_per_line",
       "round_globally",
       null
      ],
      "x-labels": {
       "round_per_line": "Round per Line",
       "round_globally": "Round Globally"
      },
      "readOnly": true
     },
     "partner_id": {
      "description": "Partner",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "commercial_partner_id": {
      "description": "Commercial Entity",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "partner_shipping_id": {
      "description": "Delivery Address - The delivery address will be used in the computation of the fiscal position.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "partner_bank_id": {
      "description": "Recipient Bank - Bank Account Number to which the invoice will be paid. A Company bank account if this is a Customer Invoice or Vendor Credit Note, otherwise a Partner bank account number.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "fiscal_position_id": {
      "description": "Fiscal Position - Fiscal positions are used to adapt taxes and accounts for particular customers or sales orders/invoices. The default value comes from the customer.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "payment_reference": {
      "description": "Payment Reference - The payment reference to set on journal items.",
      "type": [
       "string",
       "null"
      ]
     },
     "display_qr_code": {
      "description": "Display QR-code",
      "type": "boolean",
      "readOnly": true
     },
     "qr_code_method": {
      "description": "Payment QR-code - Type of QR-code to be generated for the payment of this invoice, when printing it. If left blank, the first available and usable method will be used.",
      "type": [
       "string",
       "null"
      ]
     },
     "invoice_has_outstanding": {
      "description": "Invoice Has Outstanding",
      "type": "boolean",
      "readOnly": true
     },
     "preferred_payment_method_line_id": {
      "description": "Preferred Payment Method Line",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "company_currency_id": {
      "description": "Company Currency",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "currency_id": {
      "description": "Currency",
      "$ref": "#/components/schemas/Ref"
     },
     "expected_currency_rate": {
      "description": "Expected Currency Rate",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "invoice_currency_rate": {
      "description": "Currency Rate - Currency rate from company currency to document currency.",
      "type": [
       "number",
       "null"
      ]
     },
     "direction_sign": {
      "description": "Direction Sign - Multiplicator depending on the document type, to convert a price into a balance",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "amount_untaxed": {
      "description": "Untaxed Amount",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_tax": {
      "description": "Tax",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_total": {
      "description": "Total",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_residual": {
      "description": "Amount Due",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_untaxed_signed": {
      "description": "Untaxed Amount Signed",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_untaxed_in_currency_signed": {
      "description": "Untaxed Amount Signed Currency",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_tax_signed": {
      "description": "Tax Signed",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_total_signed": {
      "description": "Total Signed",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_total_in_currency_signed": {
      "description": "Total in Currency Signed",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_residual_signed": {
      "description": "Amount Due Signed",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "payment_state": {
      "description": "Payment Status",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "not_paid",
       "in_payment",
       "paid",
       "partial",
       "reversed",
       "blocked",
       "invoicing_legacy",
       null
      ],
      "x-labels": {
       "not_paid": "Not Paid",
       "in_payment": "In Payment",
       "paid": "Paid",
       "partial": "Partially Paid",
       "reversed": "Reversed",
       "blocked": "Blocked",
       "invoicing_legacy": "Invoicing App Legacy"
      },
      "readOnly": true
     },
     "status_in_payment": {
      "description": "Status In Payment",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "not_paid",
       "in_payment",
       "paid",
       "partial",
       "reversed",
       "blocked",
       "invoicing_legacy",
       "draft",
       "cancel",
       null
      ],
      "x-labels": {
       "not_paid": "Not Paid",
       "in_payment": "In Payment",
       "paid": "Paid",
       "partial": "Partially Paid",
       "reversed": "Reversed",
       "blocked": "Blocked",
       "invoicing_legacy": "Invoicing App Legacy",
       "draft": "Draft",
       "cancel": "Cancelled"
      },
      "readOnly": true
     },
     "amount_total_words": {
      "description": "Amount total in words",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "reversed_entry_id": {
      "description": "Reversal of",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "reversal_move_ids": {
      "description": "Reversal Move",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "invoice_vendor_bill_id": {
      "description": "Vendor Bill - Auto-complete from a past bill.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "invoice_source_email": {
      "description": "Source Email",
      "type": [
       "string",
       "null"
      ]
     },
     "invoice_partner_display_name": {
      "description": "Invoice Partner Display Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "is_manually_modified": {
      "description": "Is Manually Modified",
      "type": "boolean"
     },
     "quick_edit_mode": {
      "description": "Quick Edit Mode",
      "type": "boolean",
      "readOnly": true
     },
     "quick_edit_total_amount": {
      "description": "Total (Tax inc.) - Use this field to encode the total amount of the invoice.\nOdoo will automatically create one invoice line with default values to match it.",
      "type": [
       "number",
       "null"
      ]
     },
     "quick_encoding_vals": {
      "description": "Quick Encoding Vals",
      "type": [
       "object",
       "null"
      ],
      "readOnly": true
     },
     "narration": {
      "description": "Terms and Conditions",
      "type": [
       "string",
       "null"
      ]
     },
     "is_move_sent": {
      "description": "Is Move Sent - It indicates that the invoice/payment has been sent or the PDF has been generated.",
      "type": "boolean",
      "readOnly": true
     },
     "is_being_sent": {
      "description": "Is Being Sent - Is the move being sent asynchronously",
      "type": "boolean",
      "readOnly": true
     },
     "move_sent_values": {
      "description": "Sent",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "sent",
       "not_sent",
       null
      ],
      "x-labels": {
       "sent": "Sent",
       "not_sent": "Not Sent"
      },
      "readOnly": true
     },
     "invoice_user_id": {
      "description": "Salesperson",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "user_id": {
      "description": "User",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "invoice_origin": {
      "description": "Origin - The document(s) that generated the invoice.",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "invoice_incoterm_id": {
      "description": "Incoterm - International Commercial Terms are a series of predefined commercial terms used in international transactions.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "incoterm_location": {
      "description": "Incoterm Location",
      "type": [
       "string",
       "null"
      ]
     },
     "invoice_cash_rounding_id": {
      "description": "Cash Rounding Method - Defines the smallest coinage of the currency that can be used to pay by cash.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "sending_data": {
      "description": "Sending Data",
      "type": [
       "object",
       "null"
      ]
     },
     "invoice_pdf_report_id": {
      "description": "PDF Attachment",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "invoice_filter_type_domain": {
      "description": "Invoice Filter Type Domain",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "bank_partner_id": {
      "description": "Bank Partner - Technical field to get the domain on the bank",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "tax_lock_date_message": {
      "description": "Tax Lock Date Message",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "display_inactive_currency_warning": {
      "description": "Display Inactive Currency Warning",
      "type": "boolean",
      "readOnly": true
     },
     "tax_country_id": {
      "description": "Tax Country",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "tax_country_code": {
      "description": "Tax Country Code",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "has_reconciled_entries": {
      "description": "Has Reconciled Entries",
      "type": "boolean",
      "readOnly": true
     },
     "show_reset_to_draft_button": {
      "description": "Show Reset To Draft Button",
      "type": "boolean",
      "readOnly": true
     },
     "partner_credit_warning": {
      "description": "Partner Credit Warning",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "partner_credit": {
      "description": "Partner Credit",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "duplicated_ref_ids": {
      "description": "Duplicated Ref",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "need_cancel_request": {
      "description": "Need Cancel Request",
      "type": "boolean",
      "readOnly": true
     },
     "show_update_fpos": {
      "description": "Has Fiscal Position Changed",
      "type": "boolean"
     },
     "show_payment_term_details": {
      "description": "Show Payment Term Details",
      "type": "boolean",
      "readOnly": true
     },
     "show_discount_details": {
      "description": "Show Discount Details",
      "type": "boolean",
      "readOnly": true
     },
     "abnormal_amount_warning": {
      "description": "Abnormal Amount Warning",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "abnormal_date_warning": {
      "description": "Abnormal Date Warning",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "taxes_legal_notes": {
      "description": "Taxes Legal Notes",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "next_payment_date": {
      "description": "Next Payment Date",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "id": {
      "type": "integer",
      "readOnly": true
     },
     "display_name": {
      "description": "Display Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "create_uid": {
      "description": "Created by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "create_date": {
      "description": "Created on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "write_uid": {
      "description": "Last Updated by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "write_date": {
      "description": "Last Updated on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "payment_ids": {
      "description": "Payments",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "statement_line_ids": {
      "description": "Statements",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "ubl_cii_xml_id": {
      "description": "Attachment",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "transaction_ids": {
      "description": "Transactions",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "authorized_transaction_ids": {
      "description": "Authorized Transactions",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "transaction_count": {
      "description": "Transaction Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "amount_paid": {
      "description": "Amount paid",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "purchase_vendor_bill_id": {
      "description": "Auto-complete - Auto-complete from a past bill / purchase order.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "purchase_id": {
      "description": "Purchase Order - Auto-complete from a past purchase order.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "purchase_order_count": {
      "description": "Purchase Order Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "purchase_order_name": {
      "description": "Purchase Order Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "is_purchase_matched": {
      "description": "Is Purchase Matched",
      "type": "boolean",
      "readOnly": true
     },
     "stock_move_id": {
      "description": "Stock Move",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "stock_valuation_layer_ids": {
      "description": "Stock Valuation Layer",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "team_id": {
      "description": "Sales Team",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "sale_order_count": {
      "description": "Sale Order Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     }
    },
    "x-default-fields": [
     "id",
     "name",
     "move_type",
     "state",
     "payment_state",
     "partner_id",
     "invoice_date",
     "invoice_date_due",
     "date",
     "ref",
     "payment_reference",
     "invoice_origin",
     "currency_id",
     "amount_untaxed",
     "amount_tax",
     "amount_total",
     "amount_residual",
     "journal_id",
     "company_id"
    ]
   },
   "BillsWrite": {
    "type": "object",
    "properties": {
     "move_type": {
      "description": "Type",
      "type": "string",
      "enum": [
       "entry",
       "out_invoice",
       "out_refund",
       "in_invoice",
       "in_refund",
       "out_receipt",
       "in_receipt"
      ],
      "x-labels": {
       "entry": "Journal Entry",
       "out_invoice": "Customer Invoice",
       "out_refund": "Customer Credit Note",
       "in_invoice": "Vendor Bill",
       "in_refund": "Vendor Credit Note",
       "out_receipt": "Sales Receipt",
       "in_receipt": "Purchase Receipt"
      }
     },
     "partner_id": {
      "description": "Partner (id of res.partner)",
      "type": [
       "integer",
       "null"
      ]
     },
     "invoice_date": {
      "description": "Invoice/Bill Date",
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "invoice_date_due": {
      "description": "Due Date",
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "date": {
      "description": "Date",
      "type": "string",
      "format": "date"
     },
     "ref": {
      "description": "Reference",
      "type": [
       "string",
       "null"
      ]
     },
     "payment_reference": {
      "description": "Payment Reference - The payment reference to set on journal items.",
      "type": [
       "string",
       "null"
      ]
     },
     "invoice_origin": {
      "description": "Origin - The document(s) that generated the invoice.",
      "type": [
       "string",
       "null"
      ]
     },
     "currency_id": {
      "description": "Currency (id of res.currency)",
      "type": "integer"
     },
     "journal_id": {
      "description": "Journal (id of account.journal)",
      "type": "integer"
     },
     "invoice_payment_term_id": {
      "description": "Payment Terms (id of account.payment.term)",
      "type": [
       "integer",
       "null"
      ]
     },
     "narration": {
      "description": "Terms and Conditions",
      "type": [
       "string",
       "null"
      ]
     },
     "invoice_line_ids": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "id": {
         "type": "integer",
         "description": "Existing line to change (update only)"
        },
        "_delete": {
         "type": "boolean",
         "description": "With id: remove the line"
        },
        "product_id": {
         "description": "Product (id of product.product)",
         "type": [
          "integer",
          "null"
         ]
        },
        "name": {
         "description": "Label",
         "type": [
          "string",
          "null"
         ]
        },
        "quantity": {
         "description": "Quantity - The optional quantity expressed by this line, eg: number of product sold. The quantity is not a legal requirement but is very useful for some reports.",
         "type": [
          "number",
          "null"
         ]
        },
        "product_uom_id": {
         "description": "Unit of Measure (id of uom.uom)",
         "type": [
          "integer",
          "null"
         ]
        },
        "price_unit": {
         "description": "Unit Price",
         "type": [
          "number",
          "null"
         ]
        },
        "discount": {
         "description": "Discount (%)",
         "type": [
          "number",
          "null"
         ]
        },
        "tax_ids": {
         "description": "Taxes",
         "type": "array",
         "items": {
          "type": "integer"
         }
        },
        "account_id": {
         "description": "Account (id of account.account)",
         "type": [
          "integer",
          "null"
         ]
        },
        "analytic_distribution": {
         "description": "Analytic Distribution",
         "type": [
          "object",
          "null"
         ]
        },
        "display_type": {
         "description": "Display Type",
         "type": "string",
         "enum": [
          "product",
          "cogs",
          "tax",
          "discount",
          "rounding",
          "payment_term",
          "line_section",
          "line_note",
          "epd"
         ],
         "x-labels": {
          "product": "Product",
          "cogs": "Cost of Goods Sold",
          "tax": "Tax",
          "discount": "Discount",
          "rounding": "Rounding",
          "payment_term": "Payment Term",
          "line_section": "Section",
          "line_note": "Note",
          "epd": "Early Payment Discount"
         }
        },
        "sequence": {
         "description": "Sequence",
         "type": [
          "integer",
          "null"
         ]
        }
       },
       "additionalProperties": false
      },
      "description": "Invoice lines"
     }
    },
    "additionalProperties": false
   },
   "BillsCreate": {
    "allOf": [
     {
      "$ref": "#/components/schemas/BillsWrite"
     },
     {
      "required": [
       "date",
       "currency_id",
       "journal_id"
      ]
     }
    ]
   },
   "JournalEntries": {
    "type": "object",
    "properties": {
     "campaign_id": {
      "description": "Campaign - This is a name that helps you keep track of your different campaign efforts, e.g. Fall_Drive, Christmas_Special",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "source_id": {
      "description": "Source - This is the source of the link, e.g. Search Engine, another domain, or name of email list",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "medium_id": {
      "description": "Medium - This is the method of delivery, e.g. Postcard, Email, or Banner Ad",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "sequence_prefix": {
      "description": "Sequence Prefix",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "sequence_number": {
      "description": "Sequence Number",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "activity_ids": {
      "description": "Activities",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "activity_state": {
      "description": "Activity State - Status based on activities\nOverdue: Due date is already passed\nToday: Activity date is today\nPlanned: Future activities.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "overdue",
       "today",
       "planned",
       null
      ],
      "x-labels": {
       "overdue": "Overdue",
       "today": "Today",
       "planned": "Planned"
      },
      "readOnly": true
     },
     "activity_user_id": {
      "description": "Responsible User",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "activity_type_id": {
      "description": "Next Activity Type",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "activity_type_icon": {
      "description": "Activity Type Icon - Font awesome icon e.g. fa-tasks",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "activity_date_deadline": {
      "description": "Next Activity Deadline",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "my_activity_date_deadline": {
      "description": "My Activity Deadline",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "activity_summary": {
      "description": "Next Activity Summary",
      "type": [
       "string",
       "null"
      ]
     },
     "activity_exception_decoration": {
      "description": "Activity Exception Decoration - Type of the exception activity on record.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "warning",
       "danger",
       null
      ],
      "x-labels": {
       "warning": "Alert",
       "danger": "Error"
      },
      "readOnly": true
     },
     "activity_exception_icon": {
      "description": "Icon - Icon to indicate an exception activity.",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "message_is_follower": {
      "description": "Is Follower",
      "type": "boolean",
      "readOnly": true
     },
     "message_follower_ids": {
      "description": "Followers",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_partner_ids": {
      "description": "Followers (Partners)",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_ids": {
      "description": "Messages",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "has_message": {
      "description": "Has Message",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction": {
      "description": "Action Needed - If checked, new messages require your attention.",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction_counter": {
      "description": "Number of Actions - Number of messages requiring action",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_has_error": {
      "description": "Message Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "message_has_error_counter": {
      "description": "Number of errors - Number of messages with delivery error",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_attachment_count": {
      "description": "Attachment Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "website_message_ids": {
      "description": "Website Messages - Website communication history",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_has_sms_error": {
      "description": "SMS Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "access_warning": {
      "description": "Access warning",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "name": {
      "description": "Number",
      "type": [
       "string",
       "null"
      ]
     },
     "name_placeholder": {
      "description": "Name Placeholder",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "ref": {
      "description": "Reference",
      "type": [
       "string",
       "null"
      ]
     },
     "date": {
      "description": "Date",
      "type": "string",
      "format": "date"
     },
     "state": {
      "description": "Status",
      "type": "string",
      "enum": [
       "draft",
       "posted",
       "cancel"
      ],
      "x-labels": {
       "draft": "Draft",
       "posted": "Posted",
       "cancel": "Cancelled"
      },
      "readOnly": true
     },
     "move_type": {
      "description": "Type",
      "type": "string",
      "enum": [
       "entry",
       "out_invoice",
       "out_refund",
       "in_invoice",
       "in_refund",
       "out_receipt",
       "in_receipt"
      ],
      "x-labels": {
       "entry": "Journal Entry",
       "out_invoice": "Customer Invoice",
       "out_refund": "Customer Credit Note",
       "in_invoice": "Vendor Bill",
       "in_refund": "Vendor Credit Note",
       "out_receipt": "Sales Receipt",
       "in_receipt": "Purchase Receipt"
      },
      "readOnly": true
     },
     "is_storno": {
      "description": "Is Storno",
      "type": "boolean"
     },
     "journal_id": {
      "description": "Journal",
      "$ref": "#/components/schemas/Ref"
     },
     "journal_group_id": {
      "description": "Ledger",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "company_id": {
      "description": "Company",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "line_ids": {
      "description": "Journal Items",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "origin_payment_id": {
      "description": "Payment",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "matched_payment_ids": {
      "description": "Matched Payments",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "reconciled_payment_ids": {
      "description": "Reconciled Payments - Payments that have been reconciled with this invoice.",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "payment_count": {
      "description": "Payment Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "statement_line_id": {
      "description": "Statement Line",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "statement_id": {
      "description": "Statement",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "tax_cash_basis_rec_id": {
      "description": "Tax Cash Basis Entry of",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "tax_cash_basis_origin_move_id": {
      "description": "Cash Basis Origin - The journal entry from which this tax cash basis journal entry has been created.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "tax_cash_basis_created_move_ids": {
      "description": "Cash Basis Entries - The cash basis entries created from the taxes on this entry, when reconciling its lines.",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "always_tax_exigible": {
      "description": "Always Tax Exigible",
      "type": "boolean"
     },
     "auto_post": {
      "description": "Auto-post - Specify whether this entry is posted automatically on its accounting date, and any similar recurring invoices.",
      "type": "string",
      "enum": [
       "no",
       "at_date",
       "monthly",
       "quarterly",
       "yearly"
      ],
      "x-labels": {
       "no": "No",
       "at_date": "At Date",
       "monthly": "Monthly",
       "quarterly": "Quarterly",
       "yearly": "Yearly"
      }
     },
     "auto_post_until": {
      "description": "Auto-post until - This recurring move will be posted up to and including this date.",
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "auto_post_origin_id": {
      "description": "First recurring entry",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "hide_post_button": {
      "description": "Hide Post Button",
      "type": "boolean",
      "readOnly": true
     },
     "checked": {
      "description": "Checked - If this checkbox is not ticked, it means that the user was not sure of all the related information at the time of the creation of the move and that the move needs to be checked again.",
      "type": "boolean"
     },
     "posted_before": {
      "description": "Posted Before",
      "type": "boolean"
     },
     "suitable_journal_ids": {
      "description": "Suitable Journal",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "highest_name": {
      "description": "Highest Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "made_sequence_gap": {
      "description": "Made Sequence Gap",
      "type": "boolean",
      "readOnly": true
     },
     "show_name_warning": {
      "description": "Show Name Warning",
      "type": "boolean"
     },
     "type_name": {
      "description": "Type Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "country_code": {
      "description": "Country Code - The ISO country code in two chars. \nYou can use this field for quick search.",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "company_price_include": {
      "description": "Default Sales Price Include - Default on whether the sales price used on the product and invoices with this Company includes its taxes.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "tax_included",
       "tax_excluded",
       null
      ],
      "x-labels": {
       "tax_included": "Tax Included",
       "tax_excluded": "Tax Excluded"
      },
      "readOnly": true
     },
     "attachment_ids": {
      "description": "Attachments",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "audit_trail_message_ids": {
      "description": "Audit Trail Messages",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "restrict_mode_hash_table": {
      "description": "Secure Posted Entries with Hash - If ticked, when an entry is posted, we retroactively hash all moves in the sequence from the entry back to the last hashed entry. The hash can also be performed on demand by the Secure Entries wizard.",
      "type": "boolean",
      "readOnly": true
     },
     "secure_sequence_number": {
      "description": "Inalterability No Gap Sequence #",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "inalterable_hash": {
      "description": "Inalterability Hash",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "secured": {
      "description": "Secured - The entry is secured with an inalterable hash.",
      "type": "boolean",
      "readOnly": true
     },
     "invoice_line_ids": {
      "description": "Invoice lines",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "invoice_date": {
      "description": "Invoice/Bill Date",
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "invoice_date_due": {
      "description": "Due Date",
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "delivery_date": {
      "description": "Delivery Date",
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "show_delivery_date": {
      "description": "Show Delivery Date",
      "type": "boolean",
      "readOnly": true
     },
     "invoice_payment_term_id": {
      "description": "Payment Terms",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "needed_terms_dirty": {
      "description": "Needed Terms Dirty",
      "type": "boolean",
      "readOnly": true
     },
     "tax_calculation_rounding_method": {
      "description": "Tax calculation rounding method",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "round_per_line",
       "round_globally",
       null
      ],
      "x-labels": {
       "round_per_line": "Round per Line",
       "round_globally": "Round Globally"
      },
      "readOnly": true
     },
     "partner_id": {
      "description": "Partner",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "commercial_partner_id": {
      "description": "Commercial Entity",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "partner_shipping_id": {
      "description": "Delivery Address - The delivery address will be used in the computation of the fiscal position.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "partner_bank_id": {
      "description": "Recipient Bank - Bank Account Number to which the invoice will be paid. A Company bank account if this is a Customer Invoice or Vendor Credit Note, otherwise a Partner bank account number.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "fiscal_position_id": {
      "description": "Fiscal Position - Fiscal positions are used to adapt taxes and accounts for particular customers or sales orders/invoices. The default value comes from the customer.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "payment_reference": {
      "description": "Payment Reference - The payment reference to set on journal items.",
      "type": [
       "string",
       "null"
      ]
     },
     "display_qr_code": {
      "description": "Display QR-code",
      "type": "boolean",
      "readOnly": true
     },
     "qr_code_method": {
      "description": "Payment QR-code - Type of QR-code to be generated for the payment of this invoice, when printing it. If left blank, the first available and usable method will be used.",
      "type": [
       "string",
       "null"
      ]
     },
     "invoice_has_outstanding": {
      "description": "Invoice Has Outstanding",
      "type": "boolean",
      "readOnly": true
     },
     "preferred_payment_method_line_id": {
      "description": "Preferred Payment Method Line",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "company_currency_id": {
      "description": "Company Currency",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "currency_id": {
      "description": "Currency",
      "$ref": "#/components/schemas/Ref"
     },
     "expected_currency_rate": {
      "description": "Expected Currency Rate",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "invoice_currency_rate": {
      "description": "Currency Rate - Currency rate from company currency to document currency.",
      "type": [
       "number",
       "null"
      ]
     },
     "direction_sign": {
      "description": "Direction Sign - Multiplicator depending on the document type, to convert a price into a balance",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "amount_untaxed": {
      "description": "Untaxed Amount",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_tax": {
      "description": "Tax",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_total": {
      "description": "Total",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_residual": {
      "description": "Amount Due",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_untaxed_signed": {
      "description": "Untaxed Amount Signed",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_untaxed_in_currency_signed": {
      "description": "Untaxed Amount Signed Currency",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_tax_signed": {
      "description": "Tax Signed",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_total_signed": {
      "description": "Total Signed",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_total_in_currency_signed": {
      "description": "Total in Currency Signed",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_residual_signed": {
      "description": "Amount Due Signed",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "payment_state": {
      "description": "Payment Status",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "not_paid",
       "in_payment",
       "paid",
       "partial",
       "reversed",
       "blocked",
       "invoicing_legacy",
       null
      ],
      "x-labels": {
       "not_paid": "Not Paid",
       "in_payment": "In Payment",
       "paid": "Paid",
       "partial": "Partially Paid",
       "reversed": "Reversed",
       "blocked": "Blocked",
       "invoicing_legacy": "Invoicing App Legacy"
      },
      "readOnly": true
     },
     "status_in_payment": {
      "description": "Status In Payment",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "not_paid",
       "in_payment",
       "paid",
       "partial",
       "reversed",
       "blocked",
       "invoicing_legacy",
       "draft",
       "cancel",
       null
      ],
      "x-labels": {
       "not_paid": "Not Paid",
       "in_payment": "In Payment",
       "paid": "Paid",
       "partial": "Partially Paid",
       "reversed": "Reversed",
       "blocked": "Blocked",
       "invoicing_legacy": "Invoicing App Legacy",
       "draft": "Draft",
       "cancel": "Cancelled"
      },
      "readOnly": true
     },
     "amount_total_words": {
      "description": "Amount total in words",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "reversed_entry_id": {
      "description": "Reversal of",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "reversal_move_ids": {
      "description": "Reversal Move",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "invoice_vendor_bill_id": {
      "description": "Vendor Bill - Auto-complete from a past bill.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "invoice_source_email": {
      "description": "Source Email",
      "type": [
       "string",
       "null"
      ]
     },
     "invoice_partner_display_name": {
      "description": "Invoice Partner Display Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "is_manually_modified": {
      "description": "Is Manually Modified",
      "type": "boolean"
     },
     "quick_edit_mode": {
      "description": "Quick Edit Mode",
      "type": "boolean",
      "readOnly": true
     },
     "quick_edit_total_amount": {
      "description": "Total (Tax inc.) - Use this field to encode the total amount of the invoice.\nOdoo will automatically create one invoice line with default values to match it.",
      "type": [
       "number",
       "null"
      ]
     },
     "quick_encoding_vals": {
      "description": "Quick Encoding Vals",
      "type": [
       "object",
       "null"
      ],
      "readOnly": true
     },
     "narration": {
      "description": "Terms and Conditions",
      "type": [
       "string",
       "null"
      ]
     },
     "is_move_sent": {
      "description": "Is Move Sent - It indicates that the invoice/payment has been sent or the PDF has been generated.",
      "type": "boolean",
      "readOnly": true
     },
     "is_being_sent": {
      "description": "Is Being Sent - Is the move being sent asynchronously",
      "type": "boolean",
      "readOnly": true
     },
     "move_sent_values": {
      "description": "Sent",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "sent",
       "not_sent",
       null
      ],
      "x-labels": {
       "sent": "Sent",
       "not_sent": "Not Sent"
      },
      "readOnly": true
     },
     "invoice_user_id": {
      "description": "Salesperson",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "user_id": {
      "description": "User",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "invoice_origin": {
      "description": "Origin - The document(s) that generated the invoice.",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "invoice_incoterm_id": {
      "description": "Incoterm - International Commercial Terms are a series of predefined commercial terms used in international transactions.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "incoterm_location": {
      "description": "Incoterm Location",
      "type": [
       "string",
       "null"
      ]
     },
     "invoice_cash_rounding_id": {
      "description": "Cash Rounding Method - Defines the smallest coinage of the currency that can be used to pay by cash.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "sending_data": {
      "description": "Sending Data",
      "type": [
       "object",
       "null"
      ]
     },
     "invoice_pdf_report_id": {
      "description": "PDF Attachment",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "invoice_filter_type_domain": {
      "description": "Invoice Filter Type Domain",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "bank_partner_id": {
      "description": "Bank Partner - Technical field to get the domain on the bank",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "tax_lock_date_message": {
      "description": "Tax Lock Date Message",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "display_inactive_currency_warning": {
      "description": "Display Inactive Currency Warning",
      "type": "boolean",
      "readOnly": true
     },
     "tax_country_id": {
      "description": "Tax Country",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "tax_country_code": {
      "description": "Tax Country Code",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "has_reconciled_entries": {
      "description": "Has Reconciled Entries",
      "type": "boolean",
      "readOnly": true
     },
     "show_reset_to_draft_button": {
      "description": "Show Reset To Draft Button",
      "type": "boolean",
      "readOnly": true
     },
     "partner_credit_warning": {
      "description": "Partner Credit Warning",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "partner_credit": {
      "description": "Partner Credit",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "duplicated_ref_ids": {
      "description": "Duplicated Ref",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "need_cancel_request": {
      "description": "Need Cancel Request",
      "type": "boolean",
      "readOnly": true
     },
     "show_update_fpos": {
      "description": "Has Fiscal Position Changed",
      "type": "boolean"
     },
     "show_payment_term_details": {
      "description": "Show Payment Term Details",
      "type": "boolean",
      "readOnly": true
     },
     "show_discount_details": {
      "description": "Show Discount Details",
      "type": "boolean",
      "readOnly": true
     },
     "abnormal_amount_warning": {
      "description": "Abnormal Amount Warning",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "abnormal_date_warning": {
      "description": "Abnormal Date Warning",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "taxes_legal_notes": {
      "description": "Taxes Legal Notes",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "next_payment_date": {
      "description": "Next Payment Date",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "id": {
      "type": "integer",
      "readOnly": true
     },
     "display_name": {
      "description": "Display Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "create_uid": {
      "description": "Created by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "create_date": {
      "description": "Created on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "write_uid": {
      "description": "Last Updated by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "write_date": {
      "description": "Last Updated on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "payment_ids": {
      "description": "Payments",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "statement_line_ids": {
      "description": "Statements",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "ubl_cii_xml_id": {
      "description": "Attachment",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "transaction_ids": {
      "description": "Transactions",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "authorized_transaction_ids": {
      "description": "Authorized Transactions",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "transaction_count": {
      "description": "Transaction Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "amount_paid": {
      "description": "Amount paid",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "purchase_vendor_bill_id": {
      "description": "Auto-complete - Auto-complete from a past bill / purchase order.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "purchase_id": {
      "description": "Purchase Order - Auto-complete from a past purchase order.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "purchase_order_count": {
      "description": "Purchase Order Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "purchase_order_name": {
      "description": "Purchase Order Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "is_purchase_matched": {
      "description": "Is Purchase Matched",
      "type": "boolean",
      "readOnly": true
     },
     "stock_move_id": {
      "description": "Stock Move",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "stock_valuation_layer_ids": {
      "description": "Stock Valuation Layer",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "team_id": {
      "description": "Sales Team",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "sale_order_count": {
      "description": "Sale Order Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     }
    },
    "x-default-fields": [
     "id",
     "name",
     "state",
     "date",
     "ref",
     "journal_id",
     "currency_id",
     "amount_total",
     "company_id"
    ]
   },
   "JournalEntriesWrite": {
    "type": "object",
    "properties": {
     "date": {
      "description": "Date",
      "type": "string",
      "format": "date"
     },
     "ref": {
      "description": "Reference",
      "type": [
       "string",
       "null"
      ]
     },
     "journal_id": {
      "description": "Journal (id of account.journal)",
      "type": "integer"
     },
     "narration": {
      "description": "Terms and Conditions",
      "type": [
       "string",
       "null"
      ]
     },
     "line_ids": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "id": {
         "type": "integer",
         "description": "Existing line to change (update only)"
        },
        "_delete": {
         "type": "boolean",
         "description": "With id: remove the line"
        },
        "account_id": {
         "description": "Account (id of account.account)",
         "type": [
          "integer",
          "null"
         ]
        },
        "partner_id": {
         "description": "Partner (id of res.partner)",
         "type": [
          "integer",
          "null"
         ]
        },
        "name": {
         "description": "Label",
         "type": [
          "string",
          "null"
         ]
        },
        "debit": {
         "description": "Debit",
         "type": [
          "number",
          "null"
         ]
        },
        "credit": {
         "description": "Credit",
         "type": [
          "number",
          "null"
         ]
        },
        "currency_id": {
         "description": "Currency (id of res.currency)",
         "type": "integer"
        },
        "amount_currency": {
         "description": "Amount in Currency - The amount expressed in an optional other currency if it is a multi-currency entry.",
         "type": [
          "number",
          "null"
         ]
        },
        "analytic_distribution": {
         "description": "Analytic Distribution",
         "type": [
          "object",
          "null"
         ]
        }
       },
       "additionalProperties": false
      },
      "description": "Journal Items"
     }
    },
    "additionalProperties": false
   },
   "JournalEntriesCreate": {
    "allOf": [
     {
      "$ref": "#/components/schemas/JournalEntriesWrite"
     },
     {
      "required": [
       "date",
       "journal_id"
      ]
     }
    ]
   },
   "JournalItems": {
    "type": "object",
    "properties": {
     "analytic_distribution": {
      "description": "Analytic Distribution",
      "type": [
       "object",
       "null"
      ]
     },
     "analytic_precision": {
      "description": "Analytic Precision",
      "type": [
       "integer",
       "null"
      ]
     },
     "distribution_analytic_account_ids": {
      "description": "Distribution Analytic Account",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "move_id": {
      "description": "Journal Entry",
      "$ref": "#/components/schemas/Ref",
      "readOnly": true
     },
     "journal_id": {
      "description": "Journal",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "journal_group_id": {
      "description": "Ledger",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "company_id": {
      "description": "Company",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "company_currency_id": {
      "description": "Company Currency",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "move_name": {
      "description": "Number",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "parent_state": {
      "description": "Status",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "draft",
       "posted",
       "cancel",
       null
      ],
      "x-labels": {
       "draft": "Draft",
       "posted": "Posted",
       "cancel": "Cancelled"
      },
      "readOnly": true
     },
     "date": {
      "description": "Date",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "invoice_date": {
      "description": "Invoice/Bill Date",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "ref": {
      "description": "Reference",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "is_storno": {
      "description": "Company Storno Accounting - Utility field to express whether the journal item is subject to storno accounting",
      "type": "boolean",
      "readOnly": true
     },
     "sequence": {
      "description": "Sequence",
      "type": [
       "integer",
       "null"
      ]
     },
     "move_type": {
      "description": "Type",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "entry",
       "out_invoice",
       "out_refund",
       "in_invoice",
       "in_refund",
       "out_receipt",
       "in_receipt",
       null
      ],
      "x-labels": {
       "entry": "Journal Entry",
       "out_invoice": "Customer Invoice",
       "out_refund": "Customer Credit Note",
       "in_invoice": "Vendor Bill",
       "in_refund": "Vendor Credit Note",
       "out_receipt": "Sales Receipt",
       "in_receipt": "Purchase Receipt"
      },
      "readOnly": true
     },
     "account_id": {
      "description": "Account",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "account_name": {
      "description": "Account Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "account_code": {
      "description": "Code",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "name": {
      "description": "Label",
      "type": [
       "string",
       "null"
      ]
     },
     "debit": {
      "description": "Debit",
      "type": [
       "number",
       "null"
      ]
     },
     "credit": {
      "description": "Credit",
      "type": [
       "number",
       "null"
      ]
     },
     "balance": {
      "description": "Balance",
      "type": [
       "number",
       "null"
      ]
     },
     "cumulated_balance": {
      "description": "Cumulated Balance - Cumulated balance depending on the domain and the order chosen in the view.",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "currency_rate": {
      "description": "Currency Rate - Currency rate from company currency to document currency.",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_currency": {
      "description": "Amount in Currency - The amount expressed in an optional other currency if it is a multi-currency entry.",
      "type": [
       "number",
       "null"
      ]
     },
     "currency_id": {
      "description": "Currency",
      "$ref": "#/components/schemas/Ref"
     },
     "is_same_currency": {
      "description": "Is Same Currency",
      "type": "boolean",
      "readOnly": true
     },
     "partner_id": {
      "description": "Partner",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "is_imported": {
      "description": "Is Imported",
      "type": "boolean"
     },
     "reconcile_model_id": {
      "description": "Reconciliation Model",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "payment_id": {
      "description": "Originator Payment - The payment that created this entry",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "statement_line_id": {
      "description": "Originator Statement Line - The statement line that created this entry",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "statement_id": {
      "description": "Statement - The bank statement used for bank reconciliation",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "commercial_partner_country": {
      "description": "Commercial Partner Country",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "tax_ids": {
      "description": "Taxes",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "group_tax_id": {
      "description": "Originator Group of Taxes",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "tax_line_id": {
      "description": "Originator Tax - Indicates that this journal item is a tax line",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "tax_group_id": {
      "description": "Originator tax group",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "tax_base_amount": {
      "description": "Base Amount",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "tax_repartition_line_id": {
      "description": "Originator Tax Distribution Line - Tax distribution line that caused the creation of this move line, if any",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "tax_tag_ids": {
      "description": "Tags - Tags assigned to this line by the tax creating it, if any. It determines its impact on financial reports.",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "tax_tag_invert": {
      "description": "Invert Tags",
      "type": "boolean"
     },
     "amount_residual": {
      "description": "Residual Amount - The residual amount on a journal item expressed in the company currency.",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_residual_currency": {
      "description": "Residual Amount in Currency - The residual amount on a journal item expressed in its currency (possibly not the company currency).",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "reconciled": {
      "description": "Reconciled",
      "type": "boolean",
      "readOnly": true
     },
     "full_reconcile_id": {
      "description": "Matching",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "matched_debit_ids": {
      "description": "Matched Debits - Debit journal items that are matched with this journal item.",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "matched_credit_ids": {
      "description": "Matched Credits - Credit journal items that are matched with this journal item.",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "matching_number": {
      "description": "Matching # - Matching number for this line, 'P' if it is only partially reconcile, or the name of the full reconcile if it exists.",
      "type": [
       "string",
       "null"
      ]
     },
     "is_account_reconcile": {
      "description": "Account Reconcile - Check this box if this account allows invoices & payments matching of journal items.",
      "type": "boolean",
      "readOnly": true
     },
     "account_type": {
      "description": "Internal Type - Account Type is used for information purpose, to generate country-specific legal reports, and set the rules to close a fiscal year and generate opening entries.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "asset_receivable",
       "asset_cash",
       "asset_current",
       "asset_non_current",
       "asset_prepayments",
       "asset_fixed",
       "liability_payable",
       "liability_credit_card",
       "liability_current",
       "liability_non_current",
       "equity",
       "equity_unaffected",
       "income",
       "income_other",
       "expense",
       "expense_depreciation",
       "expense_direct_cost",
       "off_balance",
       null
      ],
      "x-labels": {
       "asset_receivable": "Receivable",
       "asset_cash": "Bank and Cash",
       "asset_current": "Current Assets",
       "asset_non_current": "Non-current Assets",
       "asset_prepayments": "Prepayments",
       "asset_fixed": "Fixed Assets",
       "liability_payable": "Payable",
       "liability_credit_card": "Credit Card",
       "liability_current": "Current Liabilities",
       "liability_non_current": "Non-current Liabilities",
       "equity": "Equity",
       "equity_unaffected": "Current Year Earnings",
       "income": "Income",
       "income_other": "Other Income",
       "expense": "Expenses",
       "expense_depreciation": "Depreciation",
       "expense_direct_cost": "Cost of Revenue",
       "off_balance": "Off-Balance Sheet"
      },
      "readOnly": true
     },
     "account_internal_group": {
      "description": "Internal Group",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "equity",
       "asset",
       "liability",
       "income",
       "expense",
       "off",
       null
      ],
      "x-labels": {
       "equity": "Equity",
       "asset": "Asset",
       "liability": "Liability",
       "income": "Income",
       "expense": "Expense",
       "off": "Off Balance"
      },
      "readOnly": true
     },
     "account_root_id": {
      "description": "Account Root",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "product_category_id": {
      "description": "Product Category",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "display_type": {
      "description": "Display Type",
      "type": "string",
      "enum": [
       "product",
       "cogs",
       "tax",
       "discount",
       "rounding",
       "payment_term",
       "line_section",
       "line_note",
       "epd"
      ],
      "x-labels": {
       "product": "Product",
       "cogs": "Cost of Goods Sold",
       "tax": "Tax",
       "discount": "Discount",
       "rounding": "Rounding",
       "payment_term": "Payment Term",
       "line_section": "Section",
       "line_note": "Note",
       "epd": "Early Payment Discount"
      }
     },
     "product_id": {
      "description": "Product",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "product_uom_id": {
      "description": "Unit of Measure",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "product_uom_category_id": {
      "description": "Category - Conversion between Units of Measure can only occur if they belong to the same category. The conversion will be made based on the ratios.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "quantity": {
      "description": "Quantity - The optional quantity expressed by this line, eg: number of product sold. The quantity is not a legal requirement but is very useful for some reports.",
      "type": [
       "number",
       "null"
      ]
     },
     "date_maturity": {
      "description": "Due Date - This field is used for payable and receivable journal entries. You can put the limit date for the payment of this line.",
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "price_unit": {
      "description": "Unit Price",
      "type": [
       "number",
       "null"
      ]
     },
     "price_subtotal": {
      "description": "Subtotal",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "price_total": {
      "description": "Total",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "discount": {
      "description": "Discount (%)",
      "type": [
       "number",
       "null"
      ]
     },
     "tax_calculation_rounding_method": {
      "description": "Tax calculation rounding method",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "round_per_line",
       "round_globally",
       null
      ],
      "x-labels": {
       "round_per_line": "Round per Line",
       "round_globally": "Round Globally"
      },
      "readOnly": true
     },
     "epd_dirty": {
      "description": "Epd Dirty",
      "type": "boolean",
      "readOnly": true
     },
     "discount_allocation_dirty": {
      "description": "Discount Allocation Dirty",
      "type": "boolean",
      "readOnly": true
     },
     "analytic_line_ids": {
      "description": "Analytic lines",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "discount_date": {
      "description": "Discount Date - Last date at which the discounted amount must be paid in order for the Early Payment Discount to be granted",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "discount_amount_currency": {
      "description": "Discount amount in Currency",
      "type": [
       "number",
       "null"
      ]
     },
     "discount_balance": {
      "description": "Discount Balance",
      "type": [
       "number",
       "null"
      ]
     },
     "payment_date": {
      "description": "Next Payment Date",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "is_refund": {
      "description": "Is Refund",
      "type": "boolean",
      "readOnly": true
     },
     "id": {
      "type": "integer",
      "readOnly": true
     },
     "display_name": {
      "description": "Display Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "create_uid": {
      "description": "Created by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "create_date": {
      "description": "Created on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "write_uid": {
      "description": "Last Updated by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "write_date": {
      "description": "Last Updated on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "is_downpayment": {
      "description": "Is Downpayment",
      "type": "boolean"
     },
     "purchase_line_id": {
      "description": "Purchase Order Line",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "purchase_order_id": {
      "description": "Purchase Order",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "stock_valuation_layer_ids": {
      "description": "Stock Valuation Layer",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "cogs_origin_id": {
      "description": "Cogs Origin",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "sale_line_ids": {
      "description": "Sales Order Lines",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     }
    },
    "x-default-fields": [
     "id",
     "move_id",
     "move_name",
     "date",
     "parent_state",
     "journal_id",
     "account_id",
     "partner_id",
     "product_id",
     "name",
     "quantity",
     "product_uom_id",
     "price_unit",
     "discount",
     "tax_ids",
     "price_subtotal",
     "price_total",
     "debit",
     "credit",
     "balance",
     "amount_currency",
     "currency_id",
     "amount_residual",
     "reconciled",
     "analytic_distribution",
     "display_type",
     "company_id"
    ]
   },
   "Payments": {
    "type": "object",
    "properties": {
     "activity_ids": {
      "description": "Activities",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "activity_state": {
      "description": "Activity State - Status based on activities\nOverdue: Due date is already passed\nToday: Activity date is today\nPlanned: Future activities.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "overdue",
       "today",
       "planned",
       null
      ],
      "x-labels": {
       "overdue": "Overdue",
       "today": "Today",
       "planned": "Planned"
      },
      "readOnly": true
     },
     "activity_user_id": {
      "description": "Responsible User",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "activity_type_id": {
      "description": "Next Activity Type",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "activity_type_icon": {
      "description": "Activity Type Icon - Font awesome icon e.g. fa-tasks",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "activity_date_deadline": {
      "description": "Next Activity Deadline",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "my_activity_date_deadline": {
      "description": "My Activity Deadline",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "activity_summary": {
      "description": "Next Activity Summary",
      "type": [
       "string",
       "null"
      ]
     },
     "activity_exception_decoration": {
      "description": "Activity Exception Decoration - Type of the exception activity on record.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "warning",
       "danger",
       null
      ],
      "x-labels": {
       "warning": "Alert",
       "danger": "Error"
      },
      "readOnly": true
     },
     "activity_exception_icon": {
      "description": "Icon - Icon to indicate an exception activity.",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "message_is_follower": {
      "description": "Is Follower",
      "type": "boolean",
      "readOnly": true
     },
     "message_follower_ids": {
      "description": "Followers",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_partner_ids": {
      "description": "Followers (Partners)",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_ids": {
      "description": "Messages",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "has_message": {
      "description": "Has Message",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction": {
      "description": "Action Needed - If checked, new messages require your attention.",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction_counter": {
      "description": "Number of Actions - Number of messages requiring action",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_has_error": {
      "description": "Message Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "message_has_error_counter": {
      "description": "Number of errors - Number of messages with delivery error",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_attachment_count": {
      "description": "Attachment Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "website_message_ids": {
      "description": "Website Messages - Website communication history",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_has_sms_error": {
      "description": "SMS Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "name": {
      "description": "Number",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "date": {
      "description": "Date",
      "type": "string",
      "format": "date"
     },
     "move_id": {
      "description": "Journal Entry",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "journal_id": {
      "description": "Journal",
      "$ref": "#/components/schemas/Ref"
     },
     "company_id": {
      "description": "Company",
      "$ref": "#/components/schemas/Ref"
     },
     "state": {
      "description": "State",
      "type": "string",
      "enum": [
       "draft",
       "in_process",
       "paid",
       "canceled",
       "rejected"
      ],
      "x-labels": {
       "draft": "Draft",
       "in_process": "In Process",
       "paid": "Paid",
       "canceled": "Canceled",
       "rejected": "Rejected"
      }
     },
     "is_reconciled": {
      "description": "Is Reconciled",
      "type": "boolean",
      "readOnly": true
     },
     "is_matched": {
      "description": "Is Matched With a Bank Statement",
      "type": "boolean",
      "readOnly": true
     },
     "is_sent": {
      "description": "Is Sent",
      "type": "boolean",
      "readOnly": true
     },
     "available_partner_bank_ids": {
      "description": "Available Partner Bank",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "partner_bank_id": {
      "description": "Recipient Bank Account",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "qr_code": {
      "description": "QR Code URL",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "paired_internal_transfer_payment_id": {
      "description": "Paired Internal Transfer Payment - When an internal transfer is posted, a paired payment is created. They are cross referenced through this field",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "payment_method_line_id": {
      "description": "Payment Method - Manual: Pay or Get paid by any method outside of Odoo.\nPayment Providers: Each payment provider has its own Payment Method. Request a transaction on/to a card thanks to a payment token saved by the partner when buying or subscribing online.\nCheck: Pay bills by check and print it from Odoo.\nBatch Deposit: Collect several customer checks at once generating and submitting a batch deposit to your bank. Module account_batch_payment is necessary.\nSEPA Credit Transfer: Pay in the SEPA zone by submitting a SEPA Credit Transfer file to your bank. Module account_sepa is necessary.\nSEPA Direct Debit: Get paid in the SEPA zone thanks to a mandate your partner will have granted to you. Module account_sepa is necessary.\n",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "available_payment_method_line_ids": {
      "description": "Available Payment Method Line",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "payment_method_id": {
      "description": "Method",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "available_journal_ids": {
      "description": "Available Journal",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "amount": {
      "description": "Amount",
      "type": [
       "number",
       "null"
      ]
     },
     "payment_type": {
      "description": "Payment Type",
      "type": "string",
      "enum": [
       "outbound",
       "inbound"
      ],
      "x-labels": {
       "outbound": "Send",
       "inbound": "Receive"
      }
     },
     "partner_type": {
      "description": "Partner Type",
      "type": "string",
      "enum": [
       "customer",
       "supplier"
      ],
      "x-labels": {
       "customer": "Customer",
       "supplier": "Vendor"
      }
     },
     "memo": {
      "description": "Memo",
      "type": [
       "string",
       "null"
      ]
     },
     "payment_reference": {
      "description": "Payment Reference - Reference of the document used to issue this payment. Eg. check number, file name, etc.",
      "type": [
       "string",
       "null"
      ]
     },
     "currency_id": {
      "description": "Currency - The payment's currency.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "company_currency_id": {
      "description": "Company Currency",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "partner_id": {
      "description": "Customer/Vendor",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "outstanding_account_id": {
      "description": "Outstanding Account",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "destination_account_id": {
      "description": "Destination Account",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "invoice_ids": {
      "description": "Invoices",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "reconciled_invoice_ids": {
      "description": "Reconciled Invoices - Invoices whose journal items have been reconciled with these payments.",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "reconciled_invoices_count": {
      "description": "# Reconciled Invoices",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "reconciled_invoices_type": {
      "description": "Reconciled Invoices Type",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "credit_note",
       "invoice",
       null
      ],
      "x-labels": {
       "credit_note": "Credit Note",
       "invoice": "Invoice"
      },
      "readOnly": true
     },
     "reconciled_bill_ids": {
      "description": "Reconciled Bills - Invoices whose journal items have been reconciled with these payments.",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "reconciled_bills_count": {
      "description": "# Reconciled Bills",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "reconciled_statement_line_ids": {
      "description": "Reconciled Statement Lines - Statements lines matched to this payment",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "reconciled_statement_lines_count": {
      "description": "# Reconciled Statement Lines",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "payment_method_code": {
      "description": "Code",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "payment_receipt_title": {
      "description": "Payment Receipt Title",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "need_cancel_request": {
      "description": "Need Cancel Request",
      "type": "boolean",
      "readOnly": true
     },
     "show_partner_bank_account": {
      "description": "Show Partner Bank Account",
      "type": "boolean",
      "readOnly": true
     },
     "require_partner_bank_account": {
      "description": "Require Partner Bank Account",
      "type": "boolean",
      "readOnly": true
     },
     "country_code": {
      "description": "Country Code - The ISO country code in two chars. \nYou can use this field for quick search.",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "amount_signed": {
      "description": "Amount Signed - Negative value of amount field if payment_type is outbound",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_company_currency_signed": {
      "description": "Amount Company Currency Signed",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "duplicate_payment_ids": {
      "description": "Duplicate Payment",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "attachment_ids": {
      "description": "Attachments",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "id": {
      "type": "integer",
      "readOnly": true
     },
     "display_name": {
      "description": "Display Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "create_uid": {
      "description": "Created by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "create_date": {
      "description": "Created on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "write_uid": {
      "description": "Last Updated by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "write_date": {
      "description": "Last Updated on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "payment_transaction_id": {
      "description": "Payment Transaction",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "payment_token_id": {
      "description": "Saved Payment Token - Note that only tokens from providers allowing to capture the amount are available.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "amount_available_for_refund": {
      "description": "Amount Available For Refund",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "suitable_payment_token_ids": {
      "description": "Suitable Payment Token",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "use_electronic_payment_method": {
      "description": "Use Electronic Payment Method",
      "type": "boolean",
      "readOnly": true
     },
     "source_payment_id": {
      "description": "Source Payment - The source payment of related refund payments",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "refunds_count": {
      "description": "Refunds Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     }
    },
    "x-default-fields": [
     "id",
     "name",
     "payment_type",
     "partner_type",
     "partner_id",
     "amount",
     "currency_id",
     "date",
     "journal_id",
     "payment_method_line_id",
     "memo",
     "state",
     "is_reconciled",
     "company_id"
    ]
   },
   "PaymentsWrite": {
    "type": "object",
    "properties": {
     "payment_type": {
      "description": "Payment Type",
      "type": "string",
      "enum": [
       "outbound",
       "inbound"
      ],
      "x-labels": {
       "outbound": "Send",
       "inbound": "Receive"
      }
     },
     "partner_type": {
      "description": "Partner Type",
      "type": "string",
      "enum": [
       "customer",
       "supplier"
      ],
      "x-labels": {
       "customer": "Customer",
       "supplier": "Vendor"
      }
     },
     "partner_id": {
      "description": "Customer/Vendor (id of res.partner)",
      "type": [
       "integer",
       "null"
      ]
     },
     "amount": {
      "description": "Amount",
      "type": [
       "number",
       "null"
      ]
     },
     "currency_id": {
      "description": "Currency - The payment's currency. (id of res.currency)",
      "type": [
       "integer",
       "null"
      ]
     },
     "date": {
      "description": "Date",
      "type": "string",
      "format": "date"
     },
     "journal_id": {
      "description": "Journal (id of account.journal)",
      "type": "integer"
     },
     "payment_method_line_id": {
      "description": "Payment Method - Manual: Pay or Get paid by any method outside of Odoo.\nPayment Providers: Each payment provider has its own Payment Method. Request a transaction on/to a card thanks to a payment token saved by the partner when buying or subscribing online.\nCheck: Pay bills by check and print it from Odoo.\nBatch Deposit: Collect several customer checks at once generating and submitting a batch deposit to your bank. Module account_batch_payment is necessary.\nSEPA Credit Transfer: Pay in the SEPA zone by submitting a SEPA Credit Transfer file to your bank. Module account_sepa is necessary.\nSEPA Direct Debit: Get paid in the SEPA zone thanks to a mandate your partner will have granted to you. Module account_sepa is necessary.\n (id of account.payment.method.line)",
      "type": [
       "integer",
       "null"
      ]
     },
     "memo": {
      "description": "Memo",
      "type": [
       "string",
       "null"
      ]
     }
    },
    "additionalProperties": false
   },
   "PaymentsCreate": {
    "allOf": [
     {
      "$ref": "#/components/schemas/PaymentsWrite"
     },
     {
      "required": [
       "journal_id"
      ]
     }
    ]
   },
   "Accounts": {
    "type": "object",
    "properties": {
     "message_is_follower": {
      "description": "Is Follower",
      "type": "boolean",
      "readOnly": true
     },
     "message_follower_ids": {
      "description": "Followers",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_partner_ids": {
      "description": "Followers (Partners)",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_ids": {
      "description": "Messages",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "has_message": {
      "description": "Has Message",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction": {
      "description": "Action Needed - If checked, new messages require your attention.",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction_counter": {
      "description": "Number of Actions - Number of messages requiring action",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_has_error": {
      "description": "Message Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "message_has_error_counter": {
      "description": "Number of errors - Number of messages with delivery error",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_attachment_count": {
      "description": "Attachment Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "website_message_ids": {
      "description": "Website Messages - Website communication history",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_has_sms_error": {
      "description": "SMS Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "name": {
      "description": "Account Name",
      "type": "string"
     },
     "currency_id": {
      "description": "Account Currency - Forces all journal items in this account to have a specific currency (i.e. bank journals). If no currency is set, entries can use any currency.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "company_currency_id": {
      "description": "Company Currency",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "company_fiscal_country_code": {
      "description": "Company Fiscal Country Code",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "code": {
      "description": "Code",
      "type": [
       "string",
       "null"
      ]
     },
     "code_store": {
      "description": "Code Store",
      "type": [
       "string",
       "null"
      ]
     },
     "placeholder_code": {
      "description": "Display code",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "deprecated": {
      "description": "Deprecated",
      "type": "boolean"
     },
     "used": {
      "description": "Used",
      "type": "boolean",
      "readOnly": true
     },
     "account_type": {
      "description": "Type - Account Type is used for information purpose, to generate country-specific legal reports, and set the rules to close a fiscal year and generate opening entries.",
      "type": "string",
      "enum": [
       "asset_receivable",
       "asset_cash",
       "asset_current",
       "asset_non_current",
       "asset_prepayments",
       "asset_fixed",
       "liability_payable",
       "liability_credit_card",
       "liability_current",
       "liability_non_current",
       "equity",
       "equity_unaffected",
       "income",
       "income_other",
       "expense",
       "expense_depreciation",
       "expense_direct_cost",
       "off_balance"
      ],
      "x-labels": {
       "asset_receivable": "Receivable",
       "asset_cash": "Bank and Cash",
       "asset_current": "Current Assets",
       "asset_non_current": "Non-current Assets",
       "asset_prepayments": "Prepayments",
       "asset_fixed": "Fixed Assets",
       "liability_payable": "Payable",
       "liability_credit_card": "Credit Card",
       "liability_current": "Current Liabilities",
       "liability_non_current": "Non-current Liabilities",
       "equity": "Equity",
       "equity_unaffected": "Current Year Earnings",
       "income": "Income",
       "income_other": "Other Income",
       "expense": "Expenses",
       "expense_depreciation": "Depreciation",
       "expense_direct_cost": "Cost of Revenue",
       "off_balance": "Off-Balance Sheet"
      }
     },
     "include_initial_balance": {
      "description": "Bring Accounts Balance Forward - Used in reports to know if we should consider journal items from the beginning of time instead of from the fiscal year only. Account types that should be reset to zero at each new fiscal year (like expenses, revenue..) should not have this option set.",
      "type": "boolean",
      "readOnly": true
     },
     "internal_group": {
      "description": "Internal Group",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "equity",
       "asset",
       "liability",
       "income",
       "expense",
       "off",
       null
      ],
      "x-labels": {
       "equity": "Equity",
       "asset": "Asset",
       "liability": "Liability",
       "income": "Income",
       "expense": "Expense",
       "off": "Off Balance"
      },
      "readOnly": true
     },
     "reconcile": {
      "description": "Allow Reconciliation - Check this box if this account allows invoices & payments matching of journal items.",
      "type": "boolean"
     },
     "tax_ids": {
      "description": "Default Taxes",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "note": {
      "description": "Internal Notes",
      "type": [
       "string",
       "null"
      ]
     },
     "company_ids": {
      "description": "Companies",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "code_mapping_ids": {
      "description": "Code Mapping",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "tag_ids": {
      "description": "Tags - Optional tags you may want to assign for custom reporting",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "group_id": {
      "description": "Group - Account prefixes can determine account groups.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "root_id": {
      "description": "Root",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "allowed_journal_ids": {
      "description": "Allowed Journals - Define in which journals this account can be used. If empty, can be used in all journals.",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "opening_debit": {
      "description": "Opening Debit",
      "type": [
       "number",
       "null"
      ]
     },
     "opening_credit": {
      "description": "Opening Credit",
      "type": [
       "number",
       "null"
      ]
     },
     "opening_balance": {
      "description": "Opening Balance",
      "type": [
       "number",
       "null"
      ]
     },
     "current_balance": {
      "description": "Current Balance",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "related_taxes_amount": {
      "description": "Related Taxes Amount",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "non_trade": {
      "description": "Non Trade - If set, this account will belong to Non Trade Receivable/Payable in reports and filters.\nIf not, this account will belong to Trade Receivable/Payable in reports and filters.",
      "type": "boolean"
     },
     "display_mapping_tab": {
      "description": "Display Mapping Tab",
      "type": "boolean"
     },
     "id": {
      "type": "integer",
      "readOnly": true
     },
     "display_name": {
      "description": "Display Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "create_uid": {
      "description": "Created by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "create_date": {
      "description": "Created on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "write_uid": {
      "description": "Last Updated by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "write_date": {
      "description": "Last Updated on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     }
    },
    "x-default-fields": [
     "id",
     "code",
     "name",
     "account_type",
     "reconcile",
     "currency_id",
     "deprecated"
    ]
   },
   "Journals": {
    "type": "object",
    "properties": {
     "activity_ids": {
      "description": "Activities",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "activity_state": {
      "description": "Activity State - Status based on activities\nOverdue: Due date is already passed\nToday: Activity date is today\nPlanned: Future activities.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "overdue",
       "today",
       "planned",
       null
      ],
      "x-labels": {
       "overdue": "Overdue",
       "today": "Today",
       "planned": "Planned"
      },
      "readOnly": true
     },
     "activity_user_id": {
      "description": "Responsible User",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "activity_type_id": {
      "description": "Next Activity Type",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "activity_type_icon": {
      "description": "Activity Type Icon - Font awesome icon e.g. fa-tasks",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "activity_date_deadline": {
      "description": "Next Activity Deadline",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "my_activity_date_deadline": {
      "description": "My Activity Deadline",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "activity_summary": {
      "description": "Next Activity Summary",
      "type": [
       "string",
       "null"
      ]
     },
     "activity_exception_decoration": {
      "description": "Activity Exception Decoration - Type of the exception activity on record.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "warning",
       "danger",
       null
      ],
      "x-labels": {
       "warning": "Alert",
       "danger": "Error"
      },
      "readOnly": true
     },
     "activity_exception_icon": {
      "description": "Icon - Icon to indicate an exception activity.",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "message_is_follower": {
      "description": "Is Follower",
      "type": "boolean",
      "readOnly": true
     },
     "message_follower_ids": {
      "description": "Followers",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_partner_ids": {
      "description": "Followers (Partners)",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_ids": {
      "description": "Messages",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "has_message": {
      "description": "Has Message",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction": {
      "description": "Action Needed - If checked, new messages require your attention.",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction_counter": {
      "description": "Number of Actions - Number of messages requiring action",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_has_error": {
      "description": "Message Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "message_has_error_counter": {
      "description": "Number of errors - Number of messages with delivery error",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_attachment_count": {
      "description": "Attachment Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "website_message_ids": {
      "description": "Website Messages - Website communication history",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_has_sms_error": {
      "description": "SMS Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "alias_id": {
      "description": "Alias - Send one separate email for each invoice.\n\nAny file extension will be accepted.\n\nOnly PDF and XML files will be interpreted by Odoo",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "alias_name": {
      "description": "Alias Name - The name of the email alias, e.g. 'jobs' if you want to catch emails for <jobs@example.odoo.com>",
      "type": [
       "string",
       "null"
      ]
     },
     "alias_domain_id": {
      "description": "Alias Domain",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "alias_domain": {
      "description": "Alias Domain Name - Email domain e.g. 'example.com' in 'odoo@example.com'",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "alias_defaults": {
      "description": "Default Values - A Python dictionary that will be evaluated to provide default values when creating new records for this alias.",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "alias_email": {
      "description": "Email Alias",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "access_warning": {
      "description": "Access warning",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "name": {
      "description": "Journal Name",
      "type": "string"
     },
     "code": {
      "description": "Short Code - Shorter name used for display. The journal entries of this journal will also be named using this prefix by default.",
      "type": "string"
     },
     "active": {
      "description": "Active - Set active to false to hide the Journal without removing it.",
      "type": "boolean"
     },
     "type": {
      "description": "Type - \n        Select 'Sale' for customer invoices journals.\n        Select 'Purchase' for vendor bills journals.\n        Select 'Cash', 'Bank' or 'Credit Card' for journals that are used in customer or vendor payments.\n        Select 'General' for miscellaneous operations journals.\n        ",
      "type": "string",
      "enum": [
       "sale",
       "purchase",
       "cash",
       "bank",
       "credit",
       "general"
      ],
      "x-labels": {
       "sale": "Sales",
       "purchase": "Purchase",
       "cash": "Cash",
       "bank": "Bank",
       "credit": "Credit Card",
       "general": "Miscellaneous"
      }
     },
     "autocheck_on_post": {
      "description": "Auto-Check on Post",
      "type": "boolean"
     },
     "account_control_ids": {
      "description": "Allowed accounts",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "default_account_type": {
      "description": "Default Account Type",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "default_account_id": {
      "description": "Default Account",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "suspense_account_id": {
      "description": "Suspense Account - Bank statements transactions will be posted on the suspense account until the final reconciliation allowing finding the right account.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "restrict_mode_hash_table": {
      "description": "Secure Posted Entries with Hash - If ticked, when an entry is posted, we retroactively hash all moves in the sequence from the entry back to the last hashed entry. The hash can also be performed on demand by the Secure Entries wizard.",
      "type": "boolean"
     },
     "sequence": {
      "description": "Sequence - Used to order Journals in the dashboard view",
      "type": [
       "integer",
       "null"
      ]
     },
     "invoice_reference_type": {
      "description": "Communication Type - You can set here the default communication that will appear on customer invoices, once validated, to help the customer to refer to that particular invoice when making the payment.",
      "type": "string",
      "enum": [
       "none",
       "partner",
       "invoice"
      ],
      "x-labels": {
       "none": "Open",
       "partner": "Based on Customer",
       "invoice": "Based on Invoice"
      }
     },
     "invoice_reference_model": {
      "description": "Communication Standard - You can choose different models for each type of reference. The default one is the Odoo reference.",
      "type": "string",
      "enum": [
       "odoo",
       "euro"
      ],
      "x-labels": {
       "odoo": "Odoo",
       "euro": "European"
      }
     },
     "currency_id": {
      "description": "Currency - The currency used to enter statement",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "company_id": {
      "description": "Company - Company related to this journal",
      "$ref": "#/components/schemas/Ref",
      "readOnly": true
     },
     "country_code": {
      "description": "Country Code - The ISO country code in two chars. \nYou can use this field for quick search.",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "refund_sequence": {
      "description": "Dedicated Credit Note Sequence - Check this box if you don't want to share the same sequence for invoices and credit notes made from this journal",
      "type": "boolean"
     },
     "payment_sequence": {
      "description": "Dedicated Payment Sequence - Check this box if you don't want to share the same sequence on payments and bank transactions posted on this journal",
      "type": "boolean"
     },
     "sequence_override_regex": {
      "description": "Sequence Override Regex - Technical field used to enforce complex sequence composition that the system would normally misunderstand.\nThis is a regex that can include all the following capture groups: prefix1, year, prefix2, month, prefix3, seq, suffix.\nThe prefix* groups are the separators between the year, month and the actual increasing sequence number (seq).\ne.g: ^(?P<prefix1>.*?)(?P<year>\\d{4})(?P<prefix2>\\D*?)(?P<month>\\d{2})(?P<prefix3>\\D+?)(?P<seq>\\d+)(?P<suffix>\\D*?)$",
      "type": [
       "string",
       "null"
      ]
     },
     "inbound_payment_method_line_ids": {
      "description": "Inbound Payment Methods - Manual: Get paid by any method outside of Odoo.\nPayment Providers: Each payment provider has its own Payment Method. Request a transaction on/to a card thanks to a payment token saved by the partner when buying or subscribing online.\nBatch Deposit: Collect several customer checks at once generating and submitting a batch deposit to your bank. Module account_batch_payment is necessary.\nSEPA Direct Debit: Get paid in the SEPA zone thanks to a mandate your partner will have granted to you. Module account_sepa is necessary.\n",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "outbound_payment_method_line_ids": {
      "description": "Outbound Payment Methods - Manual: Pay by any method outside of Odoo.\nCheck: Pay bills by check and print it from Odoo.\nSEPA Credit Transfer: Pay in the SEPA zone by submitting a SEPA Credit Transfer file to your bank. Module account_sepa is necessary.\n",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "profit_account_id": {
      "description": "Profit Account - Used to register a profit when the ending balance of a cash register differs from what the system computes",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "loss_account_id": {
      "description": "Loss Account - Used to register a loss when the ending balance of a cash register differs from what the system computes",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "company_partner_id": {
      "description": "Account Holder",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "bank_account_id": {
      "description": "Bank Account",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "bank_statements_source": {
      "description": "Bank Feeds - Defines how the bank statements will be registered",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "undefined",
       null
      ],
      "x-labels": {
       "undefined": "Undefined Yet"
      }
     },
     "bank_acc_number": {
      "description": "Account Number",
      "type": [
       "string",
       "null"
      ]
     },
     "bank_id": {
      "description": "Bank",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "journal_group_ids": {
      "description": "Ledger Group",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "available_payment_method_ids": {
      "description": "Available Payment Method",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "selected_payment_method_codes": {
      "description": "Selected Payment Method Codes",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "accounting_date": {
      "description": "Accounting Date",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "display_alias_fields": {
      "description": "Display Alias Fields",
      "type": "boolean",
      "readOnly": true
     },
     "id": {
      "type": "integer",
      "readOnly": true
     },
     "display_name": {
      "description": "Display Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "create_uid": {
      "description": "Created by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "create_date": {
      "description": "Created on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "write_uid": {
      "description": "Last Updated by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "write_date": {
      "description": "Last Updated on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "kanban_dashboard": {
      "description": "Kanban Dashboard",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "kanban_dashboard_graph": {
      "description": "Kanban Dashboard Graph",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "json_activity_data": {
      "description": "Json Activity Data",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "show_on_dashboard": {
      "description": "Show journal on dashboard - Whether this journal should be displayed on the dashboard or not",
      "type": "boolean"
     },
     "color": {
      "description": "Color Index",
      "type": [
       "integer",
       "null"
      ]
     },
     "current_statement_balance": {
      "description": "Current Statement Balance",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "has_statement_lines": {
      "description": "Has Statement Lines",
      "type": "boolean",
      "readOnly": true
     },
     "entries_count": {
      "description": "Entries Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "has_posted_entries": {
      "description": "Has Posted Entries",
      "type": "boolean",
      "readOnly": true
     },
     "has_entries": {
      "description": "Has Entries",
      "type": "boolean",
      "readOnly": true
     },
     "has_sequence_holes": {
      "description": "Has Sequence Holes",
      "type": "boolean",
      "readOnly": true
     },
     "has_unhashed_entries": {
      "description": "Unhashed Entries",
      "type": "boolean",
      "readOnly": true
     },
     "last_statement_id": {
      "description": "Last Statement",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     }
    },
    "x-default-fields": [
     "id",
     "name",
     "code",
     "type",
     "currency_id",
     "default_account_id",
     "company_id",
     "active"
    ]
   },
   "Taxes": {
    "type": "object",
    "properties": {
     "message_is_follower": {
      "description": "Is Follower",
      "type": "boolean",
      "readOnly": true
     },
     "message_follower_ids": {
      "description": "Followers",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_partner_ids": {
      "description": "Followers (Partners)",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_ids": {
      "description": "Messages",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "has_message": {
      "description": "Has Message",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction": {
      "description": "Action Needed - If checked, new messages require your attention.",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction_counter": {
      "description": "Number of Actions - Number of messages requiring action",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_has_error": {
      "description": "Message Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "message_has_error_counter": {
      "description": "Number of errors - Number of messages with delivery error",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_attachment_count": {
      "description": "Attachment Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "website_message_ids": {
      "description": "Website Messages - Website communication history",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_has_sms_error": {
      "description": "SMS Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "name": {
      "description": "Tax Name",
      "type": "string"
     },
     "name_searchable": {
      "description": "Name Searchable - This dummy field lets us use another search method on the field 'name'.This allows more freedom on how to search the 'name' compared to 'filter_domain'.See '_search_name' and '_parse_name_search' for why this is not possible with 'filter_domain'.",
      "type": [
       "string",
       "null"
      ]
     },
     "type_tax_use": {
      "description": "Tax Type - Determines where the tax is selectable. Note: 'None' means a tax can't be used by itself, however it can still be used in a group. 'adjustment' is used to perform tax adjustment.",
      "type": "string",
      "enum": [
       "sale",
       "purchase",
       "none"
      ],
      "x-labels": {
       "sale": "Sales",
       "purchase": "Purchases",
       "none": "None"
      }
     },
     "tax_scope": {
      "description": "Tax Scope",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "service",
       "consu",
       null
      ],
      "x-labels": {
       "service": "Services",
       "consu": "Goods"
      }
     },
     "amount_type": {
      "description": "Tax Computation - \n    - Group of Taxes: The tax is a set of sub taxes.\n    - Fixed: The tax amount stays the same whatever the price.\n    - Percentage: The tax amount is a % of the price:\n        e.g 100 * (1 + 10%) = 110 (not price included)\n        e.g 110 / (1 + 10%) = 100 (price included)\n    - Percentage Tax Included: The tax amount is a division of the price:\n        e.g 180 / (1 - 10%) = 200 (not price included)\n        e.g 200 * (1 - 10%) = 180 (price included)\n        ",
      "type": "string",
      "enum": [
       "group",
       "fixed",
       "percent",
       "division"
      ],
      "x-labels": {
       "group": "Group of Taxes",
       "fixed": "Fixed",
       "percent": "Percentage",
       "division": "Percentage Tax Included"
      }
     },
     "active": {
      "description": "Active - Set active to false to hide the tax without removing it.",
      "type": "boolean"
     },
     "company_id": {
      "description": "Company",
      "$ref": "#/components/schemas/Ref",
      "readOnly": true
     },
     "children_tax_ids": {
      "description": "Children Taxes",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "sequence": {
      "description": "Sequence - The sequence field is used to define order in which the tax lines are applied.",
      "type": "integer"
     },
     "amount": {
      "description": "Amount",
      "type": "number"
     },
     "description": {
      "description": "Description",
      "type": [
       "string",
       "null"
      ]
     },
     "invoice_label": {
      "description": "Label on Invoices",
      "type": [
       "string",
       "null"
      ]
     },
     "price_include": {
      "description": "Price Include - Determines whether the price you use on the product and invoices includes this tax.",
      "type": "boolean",
      "readOnly": true
     },
     "company_price_include": {
      "description": "Default Sales Price Include - Default on whether the sales price used on the product and invoices with this Company includes its taxes.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "tax_included",
       "tax_excluded",
       null
      ],
      "x-labels": {
       "tax_included": "Tax Included",
       "tax_excluded": "Tax Excluded"
      },
      "readOnly": true
     },
     "price_include_override": {
      "description": "Included in Price - Overrides the Company's default on whether the price you use on the product and invoices includes this tax.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "tax_included",
       "tax_excluded",
       null
      ],
      "x-labels": {
       "tax_included": "Tax Included",
       "tax_excluded": "Tax Excluded"
      }
     },
     "include_base_amount": {
      "description": "Affect Base of Subsequent Taxes - If set, taxes with a higher sequence than this one will be affected by it, provided they accept it.",
      "type": "boolean"
     },
     "is_base_affected": {
      "description": "Base Affected by Previous Taxes - If set, taxes with a lower sequence might affect this one, provided they try to do it.",
      "type": "boolean"
     },
     "analytic": {
      "description": "Include in Analytic Cost - If set, the amount computed by this tax will be assigned to the same analytic account as the invoice line (if any)",
      "type": "boolean"
     },
     "tax_group_id": {
      "description": "Tax Group",
      "$ref": "#/components/schemas/Ref"
     },
     "hide_tax_exigibility": {
      "description": "Hide Use Cash Basis Option",
      "type": "boolean",
      "readOnly": true
     },
     "tax_exigibility": {
      "description": "Tax Exigibility - Based on Invoice: the tax is due as soon as the invoice is validated.\nBased on Payment: the tax is due as soon as the payment of the invoice is received.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "on_invoice",
       "on_payment",
       null
      ],
      "x-labels": {
       "on_invoice": "Based on Invoice",
       "on_payment": "Based on Payment"
      }
     },
     "cash_basis_transition_account_id": {
      "description": "Cash Basis Transition Account - Account used to transition the tax amount for cash basis taxes. It will contain the tax amount as long as the original invoice has not been reconciled ; at reconciliation, this amount cancelled on this account and put on the regular tax account.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "invoice_repartition_line_ids": {
      "description": "Distribution for Invoices - Distribution when the tax is used on an invoice",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "refund_repartition_line_ids": {
      "description": "Distribution for Refund Invoices - Distribution when the tax is used on a refund",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "repartition_line_ids": {
      "description": "Distribution",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "country_id": {
      "description": "Country - The country for which this tax is applicable.",
      "$ref": "#/components/schemas/Ref"
     },
     "country_code": {
      "description": "Country Code - The ISO country code in two chars. \nYou can use this field for quick search.",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "is_used": {
      "description": "Tax used",
      "type": "boolean",
      "readOnly": true
     },
     "repartition_lines_str": {
      "description": "Repartition Lines",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "invoice_legal_notes": {
      "description": "Legal Notes - Legal mentions that have to be printed on the invoices.",
      "type": [
       "string",
       "null"
      ]
     },
     "has_negative_factor": {
      "description": "Has Negative Factor",
      "type": "boolean",
      "readOnly": true
     },
     "account_move_line_ids": {
      "description": "Account Move Line",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "account_reconcile_model_line_ids": {
      "description": "Account Reconcile Model Line",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "id": {
      "type": "integer",
      "readOnly": true
     },
     "display_name": {
      "description": "Display Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "create_uid": {
      "description": "Created by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "create_date": {
      "description": "Created on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "write_uid": {
      "description": "Last Updated by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "write_date": {
      "description": "Last Updated on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "purchase_order_line_ids": {
      "description": "Purchase Order Line",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     }
    },
    "x-default-fields": [
     "id",
     "name",
     "amount",
     "amount_type",
     "type_tax_use",
     "price_include",
     "tax_group_id",
     "company_id",
     "active"
    ]
   },
   "PaymentTerms": {
    "type": "object",
    "properties": {
     "name": {
      "description": "Payment Terms",
      "type": "string"
     },
     "active": {
      "description": "Active - If the active field is set to False, it will allow you to hide the payment terms without removing it.",
      "type": "boolean"
     },
     "note": {
      "description": "Description on the Invoice",
      "type": [
       "string",
       "null"
      ]
     },
     "line_ids": {
      "description": "Terms",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "company_id": {
      "description": "Company",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "fiscal_country_codes": {
      "description": "Fiscal Country Codes",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "sequence": {
      "description": "Sequence",
      "type": "integer"
     },
     "currency_id": {
      "description": "Currency",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "display_on_invoice": {
      "description": "Show installment dates",
      "type": "boolean"
     },
     "example_amount": {
      "description": "Example Amount",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "example_date": {
      "description": "Date example",
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "example_invalid": {
      "description": "Example Invalid",
      "type": "boolean",
      "readOnly": true
     },
     "example_preview": {
      "description": "Example Preview",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "example_preview_discount": {
      "description": "Example Preview Discount",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "discount_percentage": {
      "description": "Discount % - Early Payment Discount granted for this payment term",
      "type": [
       "number",
       "null"
      ]
     },
     "discount_days": {
      "description": "Discount Days - Number of days before the early payment proposition expires",
      "type": [
       "integer",
       "null"
      ]
     },
     "early_pay_discount_computation": {
      "description": "Cash Discount Tax Reduction",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "included",
       "excluded",
       "mixed",
       null
      ],
      "x-labels": {
       "included": "On early payment",
       "excluded": "Never",
       "mixed": "Always (upon invoice)"
      }
     },
     "early_discount": {
      "description": "Early Discount",
      "type": "boolean"
     },
     "id": {
      "type": "integer",
      "readOnly": true
     },
     "display_name": {
      "description": "Display Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "create_uid": {
      "description": "Created by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "create_date": {
      "description": "Created on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "write_uid": {
      "description": "Last Updated by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "write_date": {
      "description": "Last Updated on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     }
    },
    "x-default-fields": [
     "id",
     "name",
     "note",
     "company_id",
     "active"
    ]
   },
   "AnalyticAccounts": {
    "type": "object",
    "properties": {
     "message_is_follower": {
      "description": "Is Follower",
      "type": "boolean",
      "readOnly": true
     },
     "message_follower_ids": {
      "description": "Followers",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_partner_ids": {
      "description": "Followers (Partners)",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_ids": {
      "description": "Messages",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "has_message": {
      "description": "Has Message",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction": {
      "description": "Action Needed - If checked, new messages require your attention.",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction_counter": {
      "description": "Number of Actions - Number of messages requiring action",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_has_error": {
      "description": "Message Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "message_has_error_counter": {
      "description": "Number of errors - Number of messages with delivery error",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_attachment_count": {
      "description": "Attachment Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "website_message_ids": {
      "description": "Website Messages - Website communication history",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_has_sms_error": {
      "description": "SMS Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "name": {
      "description": "Analytic Account",
      "type": "string"
     },
     "code": {
      "description": "Reference",
      "type": [
       "string",
       "null"
      ]
     },
     "active": {
      "description": "Active - Deactivate the account.",
      "type": "boolean"
     },
     "plan_id": {
      "description": "Plan",
      "$ref": "#/components/schemas/Ref"
     },
     "root_plan_id": {
      "description": "Root Plan",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "color": {
      "description": "Color Index",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "line_ids": {
      "description": "Analytic Lines",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "company_id": {
      "description": "Company",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "partner_id": {
      "description": "Customer",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "balance": {
      "description": "Balance",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "currency_id": {
      "description": "Currency",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "id": {
      "type": "integer",
      "readOnly": true
     },
     "display_name": {
      "description": "Display Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "create_uid": {
      "description": "Created by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "create_date": {
      "description": "Created on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "write_uid": {
      "description": "Last Updated by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "write_date": {
      "description": "Last Updated on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "invoice_count": {
      "description": "Invoice Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "vendor_bill_count": {
      "description": "Vendor Bill Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "purchase_order_count": {
      "description": "Purchase Order Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     }
    },
    "x-default-fields": [
     "id",
     "name",
     "code",
     "plan_id",
     "partner_id",
     "company_id",
     "active",
     "balance"
    ]
   },
   "AnalyticAccountsWrite": {
    "type": "object",
    "properties": {
     "name": {
      "description": "Analytic Account",
      "type": "string"
     },
     "code": {
      "description": "Reference",
      "type": [
       "string",
       "null"
      ]
     },
     "plan_id": {
      "description": "Plan (id of account.analytic.plan)",
      "type": "integer"
     },
     "partner_id": {
      "description": "Customer (id of res.partner)",
      "type": [
       "integer",
       "null"
      ]
     },
     "company_id": {
      "description": "Company (id of res.company)",
      "type": [
       "integer",
       "null"
      ]
     },
     "active": {
      "description": "Active - Deactivate the account.",
      "type": "boolean"
     }
    },
    "additionalProperties": false
   },
   "AnalyticAccountsCreate": {
    "allOf": [
     {
      "$ref": "#/components/schemas/AnalyticAccountsWrite"
     },
     {
      "required": [
       "name",
       "plan_id"
      ]
     }
    ]
   },
   "AnalyticPlans": {
    "type": "object",
    "properties": {
     "name": {
      "description": "Name",
      "type": "string"
     },
     "description": {
      "description": "Description",
      "type": [
       "string",
       "null"
      ]
     },
     "parent_id": {
      "description": "Parent",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "parent_path": {
      "description": "Parent Path",
      "type": [
       "string",
       "null"
      ]
     },
     "root_id": {
      "description": "Root",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "children_ids": {
      "description": "Childrens",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "children_count": {
      "description": "Children Plans Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "complete_name": {
      "description": "Complete Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "account_ids": {
      "description": "Accounts",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "account_count": {
      "description": "Analytic Accounts Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "all_account_count": {
      "description": "All Analytic Accounts Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "color": {
      "description": "Color",
      "type": [
       "integer",
       "null"
      ]
     },
     "sequence": {
      "description": "Sequence",
      "type": [
       "integer",
       "null"
      ]
     },
     "default_applicability": {
      "description": "Default Applicability",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "optional",
       "mandatory",
       "unavailable",
       null
      ],
      "x-labels": {
       "optional": "Optional",
       "mandatory": "Mandatory",
       "unavailable": "Unavailable"
      }
     },
     "applicability_ids": {
      "description": "Applicability",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "id": {
      "type": "integer",
      "readOnly": true
     },
     "display_name": {
      "description": "Display Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "create_uid": {
      "description": "Created by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "create_date": {
      "description": "Created on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "write_uid": {
      "description": "Last Updated by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "write_date": {
      "description": "Last Updated on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     }
    },
    "x-default-fields": [
     "id",
     "name",
     "parent_id",
     "complete_name"
    ]
   },
   "Partners": {
    "type": "object",
    "properties": {
     "message_is_follower": {
      "description": "Is Follower",
      "type": "boolean",
      "readOnly": true
     },
     "message_follower_ids": {
      "description": "Followers",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_partner_ids": {
      "description": "Followers (Partners)",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_ids": {
      "description": "Messages",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "has_message": {
      "description": "Has Message",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction": {
      "description": "Action Needed - If checked, new messages require your attention.",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction_counter": {
      "description": "Number of Actions - Number of messages requiring action",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_has_error": {
      "description": "Message Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "message_has_error_counter": {
      "description": "Number of errors - Number of messages with delivery error",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_attachment_count": {
      "description": "Attachment Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "website_message_ids": {
      "description": "Website Messages - Website communication history",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_has_sms_error": {
      "description": "SMS Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "email_normalized": {
      "description": "Normalized Email - This field is used to search on email address as the primary email field can contain more than strictly an email address.",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "is_blacklisted": {
      "description": "Blacklist - If the email address is on the blacklist, the contact won't receive mass mailing anymore, from any list",
      "type": "boolean",
      "readOnly": true
     },
     "message_bounce": {
      "description": "Bounce - Counter of the number of bounced emails for this contact",
      "type": [
       "integer",
       "null"
      ]
     },
     "activity_ids": {
      "description": "Activities",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "activity_state": {
      "description": "Activity State - Status based on activities\nOverdue: Due date is already passed\nToday: Activity date is today\nPlanned: Future activities.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "overdue",
       "today",
       "planned",
       null
      ],
      "x-labels": {
       "overdue": "Overdue",
       "today": "Today",
       "planned": "Planned"
      },
      "readOnly": true
     },
     "activity_user_id": {
      "description": "Responsible User",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "activity_type_id": {
      "description": "Next Activity Type",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "activity_type_icon": {
      "description": "Activity Type Icon - Font awesome icon e.g. fa-tasks",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "activity_date_deadline": {
      "description": "Next Activity Deadline",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "my_activity_date_deadline": {
      "description": "My Activity Deadline",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "activity_summary": {
      "description": "Next Activity Summary",
      "type": [
       "string",
       "null"
      ]
     },
     "activity_exception_decoration": {
      "description": "Activity Exception Decoration - Type of the exception activity on record.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "warning",
       "danger",
       null
      ],
      "x-labels": {
       "warning": "Alert",
       "danger": "Error"
      },
      "readOnly": true
     },
     "activity_exception_icon": {
      "description": "Icon - Icon to indicate an exception activity.",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "name": {
      "description": "Name",
      "type": [
       "string",
       "null"
      ]
     },
     "complete_name": {
      "description": "Complete Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "title": {
      "description": "Title",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "parent_id": {
      "description": "Related Company",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "parent_name": {
      "description": "Parent name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "child_ids": {
      "description": "Contact",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "ref": {
      "description": "Reference",
      "type": [
       "string",
       "null"
      ]
     },
     "lang": {
      "description": "Language - All the emails and documents sent to this contact will be translated in this language.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "en_US",
       null
      ],
      "x-labels": {
       "en_US": "English (US)"
      }
     },
     "active_lang_count": {
      "description": "Active Lang Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "tz": {
      "description": "Timezone - When printing documents and exporting/importing data, time values are computed according to this timezone.\nIf the timezone is not set, UTC (Coordinated Universal Time) is used.\nAnywhere else, time values are computed according to the time offset of your web client.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "Africa/Abidjan",
       "Africa/Accra",
       "Africa/Addis_Ababa",
       "Africa/Algiers",
       "Africa/Asmara",
       "Africa/Asmera",
       "Africa/Bamako",
       "Africa/Bangui",
       "Africa/Banjul",
       "Africa/Bissau",
       "Africa/Blantyre",
       "Africa/Brazzaville",
       "Africa/Bujumbura",
       "Africa/Cairo",
       "Africa/Casablanca",
       "Africa/Ceuta",
       "Africa/Conakry",
       "Africa/Dakar",
       "Africa/Dar_es_Salaam",
       "Africa/Djibouti",
       "Africa/Douala",
       "Africa/El_Aaiun",
       "Africa/Freetown",
       "Africa/Gaborone",
       "Africa/Harare",
       "Africa/Johannesburg",
       "Africa/Juba",
       "Africa/Kampala",
       "Africa/Khartoum",
       "Africa/Kigali",
       "Africa/Kinshasa",
       "Africa/Lagos",
       "Africa/Libreville",
       "Africa/Lome",
       "Africa/Luanda",
       "Africa/Lubumbashi",
       "Africa/Lusaka",
       "Africa/Malabo",
       "Africa/Maputo",
       "Africa/Maseru",
       "Africa/Mbabane",
       "Africa/Mogadishu",
       "Africa/Monrovia",
       "Africa/Nairobi",
       "Africa/Ndjamena",
       "Africa/Niamey",
       "Africa/Nouakchott",
       "Africa/Ouagadougou",
       "Africa/Porto-Novo",
       "Africa/Sao_Tome",
       "Africa/Timbuktu",
       "Africa/Tripoli",
       "Africa/Tunis",
       "Africa/Windhoek",
       "America/Adak",
       "America/Anchorage",
       "America/Anguilla",
       "America/Antigua",
       "America/Araguaina",
       "America/Argentina/Buenos_Aires",
       "America/Argentina/Catamarca",
       "America/Argentina/ComodRivadavia",
       "America/Argentina/Cordoba",
       "America/Argentina/Jujuy",
       "America/Argentina/La_Rioja",
       "America/Argentina/Mendoza",
       "America/Argentina/Rio_Gallegos",
       "America/Argentina/Salta",
       "America/Argentina/San_Juan",
       "America/Argentina/San_Luis",
       "America/Argentina/Tucuman",
       "America/Argentina/Ushuaia",
       "America/Aruba",
       "America/Asuncion",
       "America/Atikokan",
       "America/Atka",
       "America/Bahia",
       "America/Bahia_Banderas",
       "America/Barbados",
       "America/Belem",
       "America/Belize",
       "America/Blanc-Sablon",
       "America/Boa_Vista",
       "America/Bogota",
       "America/Boise",
       "America/Buenos_Aires",
       "America/Cambridge_Bay",
       "America/Campo_Grande",
       "America/Cancun",
       "America/Caracas",
       "America/Catamarca",
       "America/Cayenne",
       "America/Cayman",
       "America/Chicago",
       "America/Chihuahua",
       "America/Ciudad_Juarez",
       "America/Coral_Harbour",
       "America/Cordoba",
       "America/Costa_Rica",
       "America/Coyhaique",
       "America/Creston",
       "America/Cuiaba",
       "America/Curacao",
       "America/Danmarkshavn",
       "America/Dawson",
       "America/Dawson_Creek",
       "America/Denver",
       "America/Detroit",
       "America/Dominica",
       "America/Edmonton",
       "America/Eirunepe",
       "America/El_Salvador",
       "America/Ensenada",
       "America/Fort_Nelson",
       "America/Fort_Wayne",
       "America/Fortaleza",
       "America/Glace_Bay",
       "America/Godthab",
       "America/Goose_Bay",
       "America/Grand_Turk",
       "America/Grenada",
       "America/Guadeloupe",
       "America/Guatemala",
       "America/Guayaquil",
       "America/Guyana",
       "America/Halifax",
       "America/Havana",
       "America/Hermosillo",
       "America/Indiana/Indianapolis",
       "America/Indiana/Knox",
       "America/Indiana/Marengo",
       "America/Indiana/Petersburg",
       "America/Indiana/Tell_City",
       "America/Indiana/Vevay",
       "America/Indiana/Vincennes",
       "America/Indiana/Winamac",
       "America/Indianapolis",
       "America/Inuvik",
       "America/Iqaluit",
       "America/Jamaica",
       "America/Jujuy",
       "America/Juneau",
       "America/Kentucky/Louisville",
       "America/Kentucky/Monticello",
       "America/Knox_IN",
       "America/Kralendijk",
       "America/La_Paz",
       "America/Lima",
       "America/Los_Angeles",
       "America/Louisville",
       "America/Lower_Princes",
       "America/Maceio",
       "America/Managua",
       "America/Manaus",
       "America/Marigot",
       "America/Martinique",
       "America/Matamoros",
       "America/Mazatlan",
       "America/Mendoza",
       "America/Menominee",
       "America/Merida",
       "America/Metlakatla",
       "America/Mexico_City",
       "America/Miquelon",
       "America/Moncton",
       "America/Monterrey",
       "America/Montevideo",
       "America/Montreal",
       "America/Montserrat",
       "America/Nassau",
       "America/New_York",
       "America/Nipigon",
       "America/Nome",
       "America/Noronha",
       "America/North_Dakota/Beulah",
       "America/North_Dakota/Center",
       "America/North_Dakota/New_Salem",
       "America/Nuuk",
       "America/Ojinaga",
       "America/Panama",
       "America/Pangnirtung",
       "America/Paramaribo",
       "America/Phoenix",
       "America/Port-au-Prince",
       "America/Port_of_Spain",
       "America/Porto_Acre",
       "America/Porto_Velho",
       "America/Puerto_Rico",
       "America/Punta_Arenas",
       "America/Rainy_River",
       "America/Rankin_Inlet",
       "America/Recife",
       "America/Regina",
       "America/Resolute",
       "America/Rio_Branco",
       "America/Rosario",
       "America/Santa_Isabel",
       "America/Santarem",
       "America/Santiago",
       "America/Santo_Domingo",
       "America/Sao_Paulo",
       "America/Scoresbysund",
       "America/Shiprock",
       "America/Sitka",
       "America/St_Barthelemy",
       "America/St_Johns",
       "America/St_Kitts",
       "America/St_Lucia",
       "America/St_Thomas",
       "America/St_Vincent",
       "America/Swift_Current",
       "America/Tegucigalpa",
       "America/Thule",
       "America/Thunder_Bay",
       "America/Tijuana",
       "America/Toronto",
       "America/Tortola",
       "America/Vancouver",
       "America/Virgin",
       "America/Whitehorse",
       "America/Winnipeg",
       "America/Yakutat",
       "America/Yellowknife",
       "Antarctica/Casey",
       "Antarctica/Davis",
       "Antarctica/DumontDUrville",
       "Antarctica/Macquarie",
       "Antarctica/Mawson",
       "Antarctica/McMurdo",
       "Antarctica/Palmer",
       "Antarctica/Rothera",
       "Antarctica/South_Pole",
       "Antarctica/Syowa",
       "Antarctica/Troll",
       "Antarctica/Vostok",
       "Arctic/Longyearbyen",
       "Asia/Aden",
       "Asia/Almaty",
       "Asia/Amman",
       "Asia/Anadyr",
       "Asia/Aqtau",
       "Asia/Aqtobe",
       "Asia/Ashgabat",
       "Asia/Ashkhabad",
       "Asia/Atyrau",
       "Asia/Baghdad",
       "Asia/Bahrain",
       "Asia/Baku",
       "Asia/Bangkok",
       "Asia/Barnaul",
       "Asia/Beirut",
       "Asia/Bishkek",
       "Asia/Brunei",
       "Asia/Calcutta",
       "Asia/Chita",
       "Asia/Choibalsan",
       "Asia/Chongqing",
       "Asia/Chungking",
       "Asia/Colombo",
       "Asia/Dacca",
       "Asia/Damascus",
       "Asia/Dhaka",
       "Asia/Dili",
       "Asia/Dubai",
       "Asia/Dushanbe",
       "Asia/Famagusta",
       "Asia/Gaza",
       "Asia/Harbin",
       "Asia/Hebron",
       "Asia/Ho_Chi_Minh",
       "Asia/Hong_Kong",
       "Asia/Hovd",
       "Asia/Irkutsk",
       "Asia/Istanbul",
       "Asia/Jakarta",
       "Asia/Jayapura",
       "Asia/Jerusalem",
       "Asia/Kabul",
       "Asia/Kamchatka",
       "Asia/Karachi",
       "Asia/Kashgar",
       "Asia/Kathmandu",
       "Asia/Katmandu",
       "Asia/Khandyga",
       "Asia/Kolkata",
       "Asia/Krasnoyarsk",
       "Asia/Kuala_Lumpur",
       "Asia/Kuching",
       "Asia/Kuwait",
       "Asia/Macao",
       "Asia/Macau",
       "Asia/Magadan",
       "Asia/Makassar",
       "Asia/Manila",
       "Asia/Muscat",
       "Asia/Nicosia",
       "Asia/Novokuznetsk",
       "Asia/Novosibirsk",
       "Asia/Omsk",
       "Asia/Oral",
       "Asia/Phnom_Penh",
       "Asia/Pontianak",
       "Asia/Pyongyang",
       "Asia/Qatar",
       "Asia/Qostanay",
       "Asia/Qyzylorda",
       "Asia/Rangoon",
       "Asia/Riyadh",
       "Asia/Saigon",
       "Asia/Sakhalin",
       "Asia/Samarkand",
       "Asia/Seoul",
       "Asia/Shanghai",
       "Asia/Singapore",
       "Asia/Srednekolymsk",
       "Asia/Taipei",
       "Asia/Tashkent",
       "Asia/Tbilisi",
       "Asia/Tehran",
       "Asia/Tel_Aviv",
       "Asia/Thimbu",
       "Asia/Thimphu",
       "Asia/Tokyo",
       "Asia/Tomsk",
       "Asia/Ujung_Pandang",
       "Asia/Ulaanbaatar",
       "Asia/Ulan_Bator",
       "Asia/Urumqi",
       "Asia/Ust-Nera",
       "Asia/Vientiane",
       "Asia/Vladivostok",
       "Asia/Yakutsk",
       "Asia/Yangon",
       "Asia/Yekaterinburg",
       "Asia/Yerevan",
       "Atlantic/Azores",
       "Atlantic/Bermuda",
       "Atlantic/Canary",
       "Atlantic/Cape_Verde",
       "Atlantic/Faeroe",
       "Atlantic/Faroe",
       "Atlantic/Jan_Mayen",
       "Atlantic/Madeira",
       "Atlantic/Reykjavik",
       "Atlantic/South_Georgia",
       "Atlantic/St_Helena",
       "Atlantic/Stanley",
       "Australia/ACT",
       "Australia/Adelaide",
       "Australia/Brisbane",
       "Australia/Broken_Hill",
       "Australia/Canberra",
       "Australia/Currie",
       "Australia/Darwin",
       "Australia/Eucla",
       "Australia/Hobart",
       "Australia/LHI",
       "Australia/Lindeman",
       "Australia/Lord_Howe",
       "Australia/Melbourne",
       "Australia/NSW",
       "Australia/North",
       "Australia/Perth",
       "Australia/Queensland",
       "Australia/South",
       "Australia/Sydney",
       "Australia/Tasmania",
       "Australia/Victoria",
       "Australia/West",
       "Australia/Yancowinna",
       "Brazil/Acre",
       "Brazil/DeNoronha",
       "Brazil/East",
       "Brazil/West",
       "CET",
       "CST6CDT",
       "Canada/Atlantic",
       "Canada/Central",
       "Canada/Eastern",
       "Canada/Mountain",
       "Canada/Newfoundland",
       "Canada/Pacific",
       "Canada/Saskatchewan",
       "Canada/Yukon",
       "Chile/Continental",
       "Chile/EasterIsland",
       "Cuba",
       "EET",
       "EST",
       "EST5EDT",
       "Egypt",
       "Eire",
       "Europe/Amsterdam",
       "Europe/Andorra",
       "Europe/Astrakhan",
       "Europe/Athens",
       "Europe/Belfast",
       "Europe/Belgrade",
       "Europe/Berlin",
       "Europe/Bratislava",
       "Europe/Brussels",
       "Europe/Bucharest",
       "Europe/Budapest",
       "Europe/Busingen",
       "Europe/Chisinau",
       "Europe/Copenhagen",
       "Europe/Dublin",
       "Europe/Gibraltar",
       "Europe/Guernsey",
       "Europe/Helsinki",
       "Europe/Isle_of_Man",
       "Europe/Istanbul",
       "Europe/Jersey",
       "Europe/Kaliningrad",
       "Europe/Kiev",
       "Europe/Kirov",
       "Europe/Kyiv",
       "Europe/Lisbon",
       "Europe/Ljubljana",
       "Europe/London",
       "Europe/Luxembourg",
       "Europe/Madrid",
       "Europe/Malta",
       "Europe/Mariehamn",
       "Europe/Minsk",
       "Europe/Monaco",
       "Europe/Moscow",
       "Europe/Nicosia",
       "Europe/Oslo",
       "Europe/Paris",
       "Europe/Podgorica",
       "Europe/Prague",
       "Europe/Riga",
       "Europe/Rome",
       "Europe/Samara",
       "Europe/San_Marino",
       "Europe/Sarajevo",
       "Europe/Saratov",
       "Europe/Simferopol",
       "Europe/Skopje",
       "Europe/Sofia",
       "Europe/Stockholm",
       "Europe/Tallinn",
       "Europe/Tirane",
       "Europe/Tiraspol",
       "Europe/Ulyanovsk",
       "Europe/Uzhgorod",
       "Europe/Vaduz",
       "Europe/Vatican",
       "Europe/Vienna",
       "Europe/Vilnius",
       "Europe/Volgograd",
       "Europe/Warsaw",
       "Europe/Zagreb",
       "Europe/Zaporozhye",
       "Europe/Zurich",
       "GB",
       "GB-Eire",
       "GMT",
       "GMT+0",
       "GMT-0",
       "GMT0",
       "Greenwich",
       "HST",
       "Hongkong",
       "Iceland",
       "Indian/Antananarivo",
       "Indian/Chagos",
       "Indian/Christmas",
       "Indian/Cocos",
       "Indian/Comoro",
       "Indian/Kerguelen",
       "Indian/Mahe",
       "Indian/Maldives",
       "Indian/Mauritius",
       "Indian/Mayotte",
       "Indian/Reunion",
       "Iran",
       "Israel",
       "Jamaica",
       "Japan",
       "Kwajalein",
       "Libya",
       "MET",
       "MST",
       "MST7MDT",
       "Mexico/BajaNorte",
       "Mexico/BajaSur",
       "Mexico/General",
       "NZ",
       "NZ-CHAT",
       "Navajo",
       "PRC",
       "PST8PDT",
       "Pacific/Apia",
       "Pacific/Auckland",
       "Pacific/Bougainville",
       "Pacific/Chatham",
       "Pacific/Chuuk",
       "Pacific/Easter",
       "Pacific/Efate",
       "Pacific/Enderbury",
       "Pacific/Fakaofo",
       "Pacific/Fiji",
       "Pacific/Funafuti",
       "Pacific/Galapagos",
       "Pacific/Gambier",
       "Pacific/Guadalcanal",
       "Pacific/Guam",
       "Pacific/Honolulu",
       "Pacific/Johnston",
       "Pacific/Kanton",
       "Pacific/Kiritimati",
       "Pacific/Kosrae",
       "Pacific/Kwajalein",
       "Pacific/Majuro",
       "Pacific/Marquesas",
       "Pacific/Midway",
       "Pacific/Nauru",
       "Pacific/Niue",
       "Pacific/Norfolk",
       "Pacific/Noumea",
       "Pacific/Pago_Pago",
       "Pacific/Palau",
       "Pacific/Pitcairn",
       "Pacific/Pohnpei",
       "Pacific/Ponape",
       "Pacific/Port_Moresby",
       "Pacific/Rarotonga",
       "Pacific/Saipan",
       "Pacific/Samoa",
       "Pacific/Tahiti",
       "Pacific/Tarawa",
       "Pacific/Tongatapu",
       "Pacific/Truk",
       "Pacific/Wake",
       "Pacific/Wallis",
       "Pacific/Yap",
       "Poland",
       "Portugal",
       "ROC",
       "ROK",
       "Singapore",
       "Turkey",
       "UCT",
       "US/Alaska",
       "US/Aleutian",
       "US/Arizona",
       "US/Central",
       "US/East-Indiana",
       "US/Eastern",
       "US/Hawaii",
       "US/Indiana-Starke",
       "US/Michigan",
       "US/Mountain",
       "US/Pacific",
       "US/Samoa",
       "UTC",
       "Universal",
       "W-SU",
       "WET",
       "Zulu",
       "Etc/GMT",
       "Etc/GMT+0",
       "Etc/GMT+1",
       "Etc/GMT+10",
       "Etc/GMT+11",
       "Etc/GMT+12",
       "Etc/GMT+2",
       "Etc/GMT+3",
       "Etc/GMT+4",
       "Etc/GMT+5",
       "Etc/GMT+6",
       "Etc/GMT+7",
       "Etc/GMT+8",
       "Etc/GMT+9",
       "Etc/GMT-0",
       "Etc/GMT-1",
       "Etc/GMT-10",
       "Etc/GMT-11",
       "Etc/GMT-12",
       "Etc/GMT-13",
       "Etc/GMT-14",
       "Etc/GMT-2",
       "Etc/GMT-3",
       "Etc/GMT-4",
       "Etc/GMT-5",
       "Etc/GMT-6",
       "Etc/GMT-7",
       "Etc/GMT-8",
       "Etc/GMT-9",
       "Etc/GMT0",
       "Etc/Greenwich",
       "Etc/UCT",
       "Etc/UTC",
       "Etc/Universal",
       "Etc/Zulu",
       null
      ],
      "x-labels": {
       "Africa/Abidjan": "Africa/Abidjan",
       "Africa/Accra": "Africa/Accra",
       "Africa/Addis_Ababa": "Africa/Addis_Ababa",
       "Africa/Algiers": "Africa/Algiers",
       "Africa/Asmara": "Africa/Asmara",
       "Africa/Asmera": "Africa/Asmera",
       "Africa/Bamako": "Africa/Bamako",
       "Africa/Bangui": "Africa/Bangui",
       "Africa/Banjul": "Africa/Banjul",
       "Africa/Bissau": "Africa/Bissau",
       "Africa/Blantyre": "Africa/Blantyre",
       "Africa/Brazzaville": "Africa/Brazzaville",
       "Africa/Bujumbura": "Africa/Bujumbura",
       "Africa/Cairo": "Africa/Cairo",
       "Africa/Casablanca": "Africa/Casablanca",
       "Africa/Ceuta": "Africa/Ceuta",
       "Africa/Conakry": "Africa/Conakry",
       "Africa/Dakar": "Africa/Dakar",
       "Africa/Dar_es_Salaam": "Africa/Dar_es_Salaam",
       "Africa/Djibouti": "Africa/Djibouti",
       "Africa/Douala": "Africa/Douala",
       "Africa/El_Aaiun": "Africa/El_Aaiun",
       "Africa/Freetown": "Africa/Freetown",
       "Africa/Gaborone": "Africa/Gaborone",
       "Africa/Harare": "Africa/Harare",
       "Africa/Johannesburg": "Africa/Johannesburg",
       "Africa/Juba": "Africa/Juba",
       "Africa/Kampala": "Africa/Kampala",
       "Africa/Khartoum": "Africa/Khartoum",
       "Africa/Kigali": "Africa/Kigali",
       "Africa/Kinshasa": "Africa/Kinshasa",
       "Africa/Lagos": "Africa/Lagos",
       "Africa/Libreville": "Africa/Libreville",
       "Africa/Lome": "Africa/Lome",
       "Africa/Luanda": "Africa/Luanda",
       "Africa/Lubumbashi": "Africa/Lubumbashi",
       "Africa/Lusaka": "Africa/Lusaka",
       "Africa/Malabo": "Africa/Malabo",
       "Africa/Maputo": "Africa/Maputo",
       "Africa/Maseru": "Africa/Maseru",
       "Africa/Mbabane": "Africa/Mbabane",
       "Africa/Mogadishu": "Africa/Mogadishu",
       "Africa/Monrovia": "Africa/Monrovia",
       "Africa/Nairobi": "Africa/Nairobi",
       "Africa/Ndjamena": "Africa/Ndjamena",
       "Africa/Niamey": "Africa/Niamey",
       "Africa/Nouakchott": "Africa/Nouakchott",
       "Africa/Ouagadougou": "Africa/Ouagadougou",
       "Africa/Porto-Novo": "Africa/Porto-Novo",
       "Africa/Sao_Tome": "Africa/Sao_Tome",
       "Africa/Timbuktu": "Africa/Timbuktu",
       "Africa/Tripoli": "Africa/Tripoli",
       "Africa/Tunis": "Africa/Tunis",
       "Africa/Windhoek": "Africa/Windhoek",
       "America/Adak": "America/Adak",
       "America/Anchorage": "America/Anchorage",
       "America/Anguilla": "America/Anguilla",
       "America/Antigua": "America/Antigua",
       "America/Araguaina": "America/Araguaina",
       "America/Argentina/Buenos_Aires": "America/Argentina/Buenos_Aires",
       "America/Argentina/Catamarca": "America/Argentina/Catamarca",
       "America/Argentina/ComodRivadavia": "America/Argentina/ComodRivadavia",
       "America/Argentina/Cordoba": "America/Argentina/Cordoba",
       "America/Argentina/Jujuy": "America/Argentina/Jujuy",
       "America/Argentina/La_Rioja": "America/Argentina/La_Rioja",
       "America/Argentina/Mendoza": "America/Argentina/Mendoza",
       "America/Argentina/Rio_Gallegos": "America/Argentina/Rio_Gallegos",
       "America/Argentina/Salta": "America/Argentina/Salta",
       "America/Argentina/San_Juan": "America/Argentina/San_Juan",
       "America/Argentina/San_Luis": "America/Argentina/San_Luis",
       "America/Argentina/Tucuman": "America/Argentina/Tucuman",
       "America/Argentina/Ushuaia": "America/Argentina/Ushuaia",
       "America/Aruba": "America/Aruba",
       "America/Asuncion": "America/Asuncion",
       "America/Atikokan": "America/Atikokan",
       "America/Atka": "America/Atka",
       "America/Bahia": "America/Bahia",
       "America/Bahia_Banderas": "America/Bahia_Banderas",
       "America/Barbados": "America/Barbados",
       "America/Belem": "America/Belem",
       "America/Belize": "America/Belize",
       "America/Blanc-Sablon": "America/Blanc-Sablon",
       "America/Boa_Vista": "America/Boa_Vista",
       "America/Bogota": "America/Bogota",
       "America/Boise": "America/Boise",
       "America/Buenos_Aires": "America/Buenos_Aires",
       "America/Cambridge_Bay": "America/Cambridge_Bay",
       "America/Campo_Grande": "America/Campo_Grande",
       "America/Cancun": "America/Cancun",
       "America/Caracas": "America/Caracas",
       "America/Catamarca": "America/Catamarca",
       "America/Cayenne": "America/Cayenne",
       "America/Cayman": "America/Cayman",
       "America/Chicago": "America/Chicago",
       "America/Chihuahua": "America/Chihuahua",
       "America/Ciudad_Juarez": "America/Ciudad_Juarez",
       "America/Coral_Harbour": "America/Coral_Harbour",
       "America/Cordoba": "America/Cordoba",
       "America/Costa_Rica": "America/Costa_Rica",
       "America/Coyhaique": "America/Coyhaique",
       "America/Creston": "America/Creston",
       "America/Cuiaba": "America/Cuiaba",
       "America/Curacao": "America/Curacao",
       "America/Danmarkshavn": "America/Danmarkshavn",
       "America/Dawson": "America/Dawson",
       "America/Dawson_Creek": "America/Dawson_Creek",
       "America/Denver": "America/Denver",
       "America/Detroit": "America/Detroit",
       "America/Dominica": "America/Dominica",
       "America/Edmonton": "America/Edmonton",
       "America/Eirunepe": "America/Eirunepe",
       "America/El_Salvador": "America/El_Salvador",
       "America/Ensenada": "America/Ensenada",
       "America/Fort_Nelson": "America/Fort_Nelson",
       "America/Fort_Wayne": "America/Fort_Wayne",
       "America/Fortaleza": "America/Fortaleza",
       "America/Glace_Bay": "America/Glace_Bay",
       "America/Godthab": "America/Godthab",
       "America/Goose_Bay": "America/Goose_Bay",
       "America/Grand_Turk": "America/Grand_Turk",
       "America/Grenada": "America/Grenada",
       "America/Guadeloupe": "America/Guadeloupe",
       "America/Guatemala": "America/Guatemala",
       "America/Guayaquil": "America/Guayaquil",
       "America/Guyana": "America/Guyana",
       "America/Halifax": "America/Halifax",
       "America/Havana": "America/Havana",
       "America/Hermosillo": "America/Hermosillo",
       "America/Indiana/Indianapolis": "America/Indiana/Indianapolis",
       "America/Indiana/Knox": "America/Indiana/Knox",
       "America/Indiana/Marengo": "America/Indiana/Marengo",
       "America/Indiana/Petersburg": "America/Indiana/Petersburg",
       "America/Indiana/Tell_City": "America/Indiana/Tell_City",
       "America/Indiana/Vevay": "America/Indiana/Vevay",
       "America/Indiana/Vincennes": "America/Indiana/Vincennes",
       "America/Indiana/Winamac": "America/Indiana/Winamac",
       "America/Indianapolis": "America/Indianapolis",
       "America/Inuvik": "America/Inuvik",
       "America/Iqaluit": "America/Iqaluit",
       "America/Jamaica": "America/Jamaica",
       "America/Jujuy": "America/Jujuy",
       "America/Juneau": "America/Juneau",
       "America/Kentucky/Louisville": "America/Kentucky/Louisville",
       "America/Kentucky/Monticello": "America/Kentucky/Monticello",
       "America/Knox_IN": "America/Knox_IN",
       "America/Kralendijk": "America/Kralendijk",
       "America/La_Paz": "America/La_Paz",
       "America/Lima": "America/Lima",
       "America/Los_Angeles": "America/Los_Angeles",
       "America/Louisville": "America/Louisville",
       "America/Lower_Princes": "America/Lower_Princes",
       "America/Maceio": "America/Maceio",
       "America/Managua": "America/Managua",
       "America/Manaus": "America/Manaus",
       "America/Marigot": "America/Marigot",
       "America/Martinique": "America/Martinique",
       "America/Matamoros": "America/Matamoros",
       "America/Mazatlan": "America/Mazatlan",
       "America/Mendoza": "America/Mendoza",
       "America/Menominee": "America/Menominee",
       "America/Merida": "America/Merida",
       "America/Metlakatla": "America/Metlakatla",
       "America/Mexico_City": "America/Mexico_City",
       "America/Miquelon": "America/Miquelon",
       "America/Moncton": "America/Moncton",
       "America/Monterrey": "America/Monterrey",
       "America/Montevideo": "America/Montevideo",
       "America/Montreal": "America/Montreal",
       "America/Montserrat": "America/Montserrat",
       "America/Nassau": "America/Nassau",
       "America/New_York": "America/New_York",
       "America/Nipigon": "America/Nipigon",
       "America/Nome": "America/Nome",
       "America/Noronha": "America/Noronha",
       "America/North_Dakota/Beulah": "America/North_Dakota/Beulah",
       "America/North_Dakota/Center": "America/North_Dakota/Center",
       "America/North_Dakota/New_Salem": "America/North_Dakota/New_Salem",
       "America/Nuuk": "America/Nuuk",
       "America/Ojinaga": "America/Ojinaga",
       "America/Panama": "America/Panama",
       "America/Pangnirtung": "America/Pangnirtung",
       "America/Paramaribo": "America/Paramaribo",
       "America/Phoenix": "America/Phoenix",
       "America/Port-au-Prince": "America/Port-au-Prince",
       "America/Port_of_Spain": "America/Port_of_Spain",
       "America/Porto_Acre": "America/Porto_Acre",
       "America/Porto_Velho": "America/Porto_Velho",
       "America/Puerto_Rico": "America/Puerto_Rico",
       "America/Punta_Arenas": "America/Punta_Arenas",
       "America/Rainy_River": "America/Rainy_River",
       "America/Rankin_Inlet": "America/Rankin_Inlet",
       "America/Recife": "America/Recife",
       "America/Regina": "America/Regina",
       "America/Resolute": "America/Resolute",
       "America/Rio_Branco": "America/Rio_Branco",
       "America/Rosario": "America/Rosario",
       "America/Santa_Isabel": "America/Santa_Isabel",
       "America/Santarem": "America/Santarem",
       "America/Santiago": "America/Santiago",
       "America/Santo_Domingo": "America/Santo_Domingo",
       "America/Sao_Paulo": "America/Sao_Paulo",
       "America/Scoresbysund": "America/Scoresbysund",
       "America/Shiprock": "America/Shiprock",
       "America/Sitka": "America/Sitka",
       "America/St_Barthelemy": "America/St_Barthelemy",
       "America/St_Johns": "America/St_Johns",
       "America/St_Kitts": "America/St_Kitts",
       "America/St_Lucia": "America/St_Lucia",
       "America/St_Thomas": "America/St_Thomas",
       "America/St_Vincent": "America/St_Vincent",
       "America/Swift_Current": "America/Swift_Current",
       "America/Tegucigalpa": "America/Tegucigalpa",
       "America/Thule": "America/Thule",
       "America/Thunder_Bay": "America/Thunder_Bay",
       "America/Tijuana": "America/Tijuana",
       "America/Toronto": "America/Toronto",
       "America/Tortola": "America/Tortola",
       "America/Vancouver": "America/Vancouver",
       "America/Virgin": "America/Virgin",
       "America/Whitehorse": "America/Whitehorse",
       "America/Winnipeg": "America/Winnipeg",
       "America/Yakutat": "America/Yakutat",
       "America/Yellowknife": "America/Yellowknife",
       "Antarctica/Casey": "Antarctica/Casey",
       "Antarctica/Davis": "Antarctica/Davis",
       "Antarctica/DumontDUrville": "Antarctica/DumontDUrville",
       "Antarctica/Macquarie": "Antarctica/Macquarie",
       "Antarctica/Mawson": "Antarctica/Mawson",
       "Antarctica/McMurdo": "Antarctica/McMurdo",
       "Antarctica/Palmer": "Antarctica/Palmer",
       "Antarctica/Rothera": "Antarctica/Rothera",
       "Antarctica/South_Pole": "Antarctica/South_Pole",
       "Antarctica/Syowa": "Antarctica/Syowa",
       "Antarctica/Troll": "Antarctica/Troll",
       "Antarctica/Vostok": "Antarctica/Vostok",
       "Arctic/Longyearbyen": "Arctic/Longyearbyen",
       "Asia/Aden": "Asia/Aden",
       "Asia/Almaty": "Asia/Almaty",
       "Asia/Amman": "Asia/Amman",
       "Asia/Anadyr": "Asia/Anadyr",
       "Asia/Aqtau": "Asia/Aqtau",
       "Asia/Aqtobe": "Asia/Aqtobe",
       "Asia/Ashgabat": "Asia/Ashgabat",
       "Asia/Ashkhabad": "Asia/Ashkhabad",
       "Asia/Atyrau": "Asia/Atyrau",
       "Asia/Baghdad": "Asia/Baghdad",
       "Asia/Bahrain": "Asia/Bahrain",
       "Asia/Baku": "Asia/Baku",
       "Asia/Bangkok": "Asia/Bangkok",
       "Asia/Barnaul": "Asia/Barnaul",
       "Asia/Beirut": "Asia/Beirut",
       "Asia/Bishkek": "Asia/Bishkek",
       "Asia/Brunei": "Asia/Brunei",
       "Asia/Calcutta": "Asia/Calcutta",
       "Asia/Chita": "Asia/Chita",
       "Asia/Choibalsan": "Asia/Choibalsan",
       "Asia/Chongqing": "Asia/Chongqing",
       "Asia/Chungking": "Asia/Chungking",
       "Asia/Colombo": "Asia/Colombo",
       "Asia/Dacca": "Asia/Dacca",
       "Asia/Damascus": "Asia/Damascus",
       "Asia/Dhaka": "Asia/Dhaka",
       "Asia/Dili": "Asia/Dili",
       "Asia/Dubai": "Asia/Dubai",
       "Asia/Dushanbe": "Asia/Dushanbe",
       "Asia/Famagusta": "Asia/Famagusta",
       "Asia/Gaza": "Asia/Gaza",
       "Asia/Harbin": "Asia/Harbin",
       "Asia/Hebron": "Asia/Hebron",
       "Asia/Ho_Chi_Minh": "Asia/Ho_Chi_Minh",
       "Asia/Hong_Kong": "Asia/Hong_Kong",
       "Asia/Hovd": "Asia/Hovd",
       "Asia/Irkutsk": "Asia/Irkutsk",
       "Asia/Istanbul": "Asia/Istanbul",
       "Asia/Jakarta": "Asia/Jakarta",
       "Asia/Jayapura": "Asia/Jayapura",
       "Asia/Jerusalem": "Asia/Jerusalem",
       "Asia/Kabul": "Asia/Kabul",
       "Asia/Kamchatka": "Asia/Kamchatka",
       "Asia/Karachi": "Asia/Karachi",
       "Asia/Kashgar": "Asia/Kashgar",
       "Asia/Kathmandu": "Asia/Kathmandu",
       "Asia/Katmandu": "Asia/Katmandu",
       "Asia/Khandyga": "Asia/Khandyga",
       "Asia/Kolkata": "Asia/Kolkata",
       "Asia/Krasnoyarsk": "Asia/Krasnoyarsk",
       "Asia/Kuala_Lumpur": "Asia/Kuala_Lumpur",
       "Asia/Kuching": "Asia/Kuching",
       "Asia/Kuwait": "Asia/Kuwait",
       "Asia/Macao": "Asia/Macao",
       "Asia/Macau": "Asia/Macau",
       "Asia/Magadan": "Asia/Magadan",
       "Asia/Makassar": "Asia/Makassar",
       "Asia/Manila": "Asia/Manila",
       "Asia/Muscat": "Asia/Muscat",
       "Asia/Nicosia": "Asia/Nicosia",
       "Asia/Novokuznetsk": "Asia/Novokuznetsk",
       "Asia/Novosibirsk": "Asia/Novosibirsk",
       "Asia/Omsk": "Asia/Omsk",
       "Asia/Oral": "Asia/Oral",
       "Asia/Phnom_Penh": "Asia/Phnom_Penh",
       "Asia/Pontianak": "Asia/Pontianak",
       "Asia/Pyongyang": "Asia/Pyongyang",
       "Asia/Qatar": "Asia/Qatar",
       "Asia/Qostanay": "Asia/Qostanay",
       "Asia/Qyzylorda": "Asia/Qyzylorda",
       "Asia/Rangoon": "Asia/Rangoon",
       "Asia/Riyadh": "Asia/Riyadh",
       "Asia/Saigon": "Asia/Saigon",
       "Asia/Sakhalin": "Asia/Sakhalin",
       "Asia/Samarkand": "Asia/Samarkand",
       "Asia/Seoul": "Asia/Seoul",
       "Asia/Shanghai": "Asia/Shanghai",
       "Asia/Singapore": "Asia/Singapore",
       "Asia/Srednekolymsk": "Asia/Srednekolymsk",
       "Asia/Taipei": "Asia/Taipei",
       "Asia/Tashkent": "Asia/Tashkent",
       "Asia/Tbilisi": "Asia/Tbilisi",
       "Asia/Tehran": "Asia/Tehran",
       "Asia/Tel_Aviv": "Asia/Tel_Aviv",
       "Asia/Thimbu": "Asia/Thimbu",
       "Asia/Thimphu": "Asia/Thimphu",
       "Asia/Tokyo": "Asia/Tokyo",
       "Asia/Tomsk": "Asia/Tomsk",
       "Asia/Ujung_Pandang": "Asia/Ujung_Pandang",
       "Asia/Ulaanbaatar": "Asia/Ulaanbaatar",
       "Asia/Ulan_Bator": "Asia/Ulan_Bator",
       "Asia/Urumqi": "Asia/Urumqi",
       "Asia/Ust-Nera": "Asia/Ust-Nera",
       "Asia/Vientiane": "Asia/Vientiane",
       "Asia/Vladivostok": "Asia/Vladivostok",
       "Asia/Yakutsk": "Asia/Yakutsk",
       "Asia/Yangon": "Asia/Yangon",
       "Asia/Yekaterinburg": "Asia/Yekaterinburg",
       "Asia/Yerevan": "Asia/Yerevan",
       "Atlantic/Azores": "Atlantic/Azores",
       "Atlantic/Bermuda": "Atlantic/Bermuda",
       "Atlantic/Canary": "Atlantic/Canary",
       "Atlantic/Cape_Verde": "Atlantic/Cape_Verde",
       "Atlantic/Faeroe": "Atlantic/Faeroe",
       "Atlantic/Faroe": "Atlantic/Faroe",
       "Atlantic/Jan_Mayen": "Atlantic/Jan_Mayen",
       "Atlantic/Madeira": "Atlantic/Madeira",
       "Atlantic/Reykjavik": "Atlantic/Reykjavik",
       "Atlantic/South_Georgia": "Atlantic/South_Georgia",
       "Atlantic/St_Helena": "Atlantic/St_Helena",
       "Atlantic/Stanley": "Atlantic/Stanley",
       "Australia/ACT": "Australia/ACT",
       "Australia/Adelaide": "Australia/Adelaide",
       "Australia/Brisbane": "Australia/Brisbane",
       "Australia/Broken_Hill": "Australia/Broken_Hill",
       "Australia/Canberra": "Australia/Canberra",
       "Australia/Currie": "Australia/Currie",
       "Australia/Darwin": "Australia/Darwin",
       "Australia/Eucla": "Australia/Eucla",
       "Australia/Hobart": "Australia/Hobart",
       "Australia/LHI": "Australia/LHI",
       "Australia/Lindeman": "Australia/Lindeman",
       "Australia/Lord_Howe": "Australia/Lord_Howe",
       "Australia/Melbourne": "Australia/Melbourne",
       "Australia/NSW": "Australia/NSW",
       "Australia/North": "Australia/North",
       "Australia/Perth": "Australia/Perth",
       "Australia/Queensland": "Australia/Queensland",
       "Australia/South": "Australia/South",
       "Australia/Sydney": "Australia/Sydney",
       "Australia/Tasmania": "Australia/Tasmania",
       "Australia/Victoria": "Australia/Victoria",
       "Australia/West": "Australia/West",
       "Australia/Yancowinna": "Australia/Yancowinna",
       "Brazil/Acre": "Brazil/Acre",
       "Brazil/DeNoronha": "Brazil/DeNoronha",
       "Brazil/East": "Brazil/East",
       "Brazil/West": "Brazil/West",
       "CET": "CET",
       "CST6CDT": "CST6CDT",
       "Canada/Atlantic": "Canada/Atlantic",
       "Canada/Central": "Canada/Central",
       "Canada/Eastern": "Canada/Eastern",
       "Canada/Mountain": "Canada/Mountain",
       "Canada/Newfoundland": "Canada/Newfoundland",
       "Canada/Pacific": "Canada/Pacific",
       "Canada/Saskatchewan": "Canada/Saskatchewan",
       "Canada/Yukon": "Canada/Yukon",
       "Chile/Continental": "Chile/Continental",
       "Chile/EasterIsland": "Chile/EasterIsland",
       "Cuba": "Cuba",
       "EET": "EET",
       "EST": "EST",
       "EST5EDT": "EST5EDT",
       "Egypt": "Egypt",
       "Eire": "Eire",
       "Europe/Amsterdam": "Europe/Amsterdam",
       "Europe/Andorra": "Europe/Andorra",
       "Europe/Astrakhan": "Europe/Astrakhan",
       "Europe/Athens": "Europe/Athens",
       "Europe/Belfast": "Europe/Belfast",
       "Europe/Belgrade": "Europe/Belgrade",
       "Europe/Berlin": "Europe/Berlin",
       "Europe/Bratislava": "Europe/Bratislava",
       "Europe/Brussels": "Europe/Brussels",
       "Europe/Bucharest": "Europe/Bucharest",
       "Europe/Budapest": "Europe/Budapest",
       "Europe/Busingen": "Europe/Busingen",
       "Europe/Chisinau": "Europe/Chisinau",
       "Europe/Copenhagen": "Europe/Copenhagen",
       "Europe/Dublin": "Europe/Dublin",
       "Europe/Gibraltar": "Europe/Gibraltar",
       "Europe/Guernsey": "Europe/Guernsey",
       "Europe/Helsinki": "Europe/Helsinki",
       "Europe/Isle_of_Man": "Europe/Isle_of_Man",
       "Europe/Istanbul": "Europe/Istanbul",
       "Europe/Jersey": "Europe/Jersey",
       "Europe/Kaliningrad": "Europe/Kaliningrad",
       "Europe/Kiev": "Europe/Kiev",
       "Europe/Kirov": "Europe/Kirov",
       "Europe/Kyiv": "Europe/Kyiv",
       "Europe/Lisbon": "Europe/Lisbon",
       "Europe/Ljubljana": "Europe/Ljubljana",
       "Europe/London": "Europe/London",
       "Europe/Luxembourg": "Europe/Luxembourg",
       "Europe/Madrid": "Europe/Madrid",
       "Europe/Malta": "Europe/Malta",
       "Europe/Mariehamn": "Europe/Mariehamn",
       "Europe/Minsk": "Europe/Minsk",
       "Europe/Monaco": "Europe/Monaco",
       "Europe/Moscow": "Europe/Moscow",
       "Europe/Nicosia": "Europe/Nicosia",
       "Europe/Oslo": "Europe/Oslo",
       "Europe/Paris": "Europe/Paris",
       "Europe/Podgorica": "Europe/Podgorica",
       "Europe/Prague": "Europe/Prague",
       "Europe/Riga": "Europe/Riga",
       "Europe/Rome": "Europe/Rome",
       "Europe/Samara": "Europe/Samara",
       "Europe/San_Marino": "Europe/San_Marino",
       "Europe/Sarajevo": "Europe/Sarajevo",
       "Europe/Saratov": "Europe/Saratov",
       "Europe/Simferopol": "Europe/Simferopol",
       "Europe/Skopje": "Europe/Skopje",
       "Europe/Sofia": "Europe/Sofia",
       "Europe/Stockholm": "Europe/Stockholm",
       "Europe/Tallinn": "Europe/Tallinn",
       "Europe/Tirane": "Europe/Tirane",
       "Europe/Tiraspol": "Europe/Tiraspol",
       "Europe/Ulyanovsk": "Europe/Ulyanovsk",
       "Europe/Uzhgorod": "Europe/Uzhgorod",
       "Europe/Vaduz": "Europe/Vaduz",
       "Europe/Vatican": "Europe/Vatican",
       "Europe/Vienna": "Europe/Vienna",
       "Europe/Vilnius": "Europe/Vilnius",
       "Europe/Volgograd": "Europe/Volgograd",
       "Europe/Warsaw": "Europe/Warsaw",
       "Europe/Zagreb": "Europe/Zagreb",
       "Europe/Zaporozhye": "Europe/Zaporozhye",
       "Europe/Zurich": "Europe/Zurich",
       "GB": "GB",
       "GB-Eire": "GB-Eire",
       "GMT": "GMT",
       "GMT+0": "GMT+0",
       "GMT-0": "GMT-0",
       "GMT0": "GMT0",
       "Greenwich": "Greenwich",
       "HST": "HST",
       "Hongkong": "Hongkong",
       "Iceland": "Iceland",
       "Indian/Antananarivo": "Indian/Antananarivo",
       "Indian/Chagos": "Indian/Chagos",
       "Indian/Christmas": "Indian/Christmas",
       "Indian/Cocos": "Indian/Cocos",
       "Indian/Comoro": "Indian/Comoro",
       "Indian/Kerguelen": "Indian/Kerguelen",
       "Indian/Mahe": "Indian/Mahe",
       "Indian/Maldives": "Indian/Maldives",
       "Indian/Mauritius": "Indian/Mauritius",
       "Indian/Mayotte": "Indian/Mayotte",
       "Indian/Reunion": "Indian/Reunion",
       "Iran": "Iran",
       "Israel": "Israel",
       "Jamaica": "Jamaica",
       "Japan": "Japan",
       "Kwajalein": "Kwajalein",
       "Libya": "Libya",
       "MET": "MET",
       "MST": "MST",
       "MST7MDT": "MST7MDT",
       "Mexico/BajaNorte": "Mexico/BajaNorte",
       "Mexico/BajaSur": "Mexico/BajaSur",
       "Mexico/General": "Mexico/General",
       "NZ": "NZ",
       "NZ-CHAT": "NZ-CHAT",
       "Navajo": "Navajo",
       "PRC": "PRC",
       "PST8PDT": "PST8PDT",
       "Pacific/Apia": "Pacific/Apia",
       "Pacific/Auckland": "Pacific/Auckland",
       "Pacific/Bougainville": "Pacific/Bougainville",
       "Pacific/Chatham": "Pacific/Chatham",
       "Pacific/Chuuk": "Pacific/Chuuk",
       "Pacific/Easter": "Pacific/Easter",
       "Pacific/Efate": "Pacific/Efate",
       "Pacific/Enderbury": "Pacific/Enderbury",
       "Pacific/Fakaofo": "Pacific/Fakaofo",
       "Pacific/Fiji": "Pacific/Fiji",
       "Pacific/Funafuti": "Pacific/Funafuti",
       "Pacific/Galapagos": "Pacific/Galapagos",
       "Pacific/Gambier": "Pacific/Gambier",
       "Pacific/Guadalcanal": "Pacific/Guadalcanal",
       "Pacific/Guam": "Pacific/Guam",
       "Pacific/Honolulu": "Pacific/Honolulu",
       "Pacific/Johnston": "Pacific/Johnston",
       "Pacific/Kanton": "Pacific/Kanton",
       "Pacific/Kiritimati": "Pacific/Kiritimati",
       "Pacific/Kosrae": "Pacific/Kosrae",
       "Pacific/Kwajalein": "Pacific/Kwajalein",
       "Pacific/Majuro": "Pacific/Majuro",
       "Pacific/Marquesas": "Pacific/Marquesas",
       "Pacific/Midway": "Pacific/Midway",
       "Pacific/Nauru": "Pacific/Nauru",
       "Pacific/Niue": "Pacific/Niue",
       "Pacific/Norfolk": "Pacific/Norfolk",
       "Pacific/Noumea": "Pacific/Noumea",
       "Pacific/Pago_Pago": "Pacific/Pago_Pago",
       "Pacific/Palau": "Pacific/Palau",
       "Pacific/Pitcairn": "Pacific/Pitcairn",
       "Pacific/Pohnpei": "Pacific/Pohnpei",
       "Pacific/Ponape": "Pacific/Ponape",
       "Pacific/Port_Moresby": "Pacific/Port_Moresby",
       "Pacific/Rarotonga": "Pacific/Rarotonga",
       "Pacific/Saipan": "Pacific/Saipan",
       "Pacific/Samoa": "Pacific/Samoa",
       "Pacific/Tahiti": "Pacific/Tahiti",
       "Pacific/Tarawa": "Pacific/Tarawa",
       "Pacific/Tongatapu": "Pacific/Tongatapu",
       "Pacific/Truk": "Pacific/Truk",
       "Pacific/Wake": "Pacific/Wake",
       "Pacific/Wallis": "Pacific/Wallis",
       "Pacific/Yap": "Pacific/Yap",
       "Poland": "Poland",
       "Portugal": "Portugal",
       "ROC": "ROC",
       "ROK": "ROK",
       "Singapore": "Singapore",
       "Turkey": "Turkey",
       "UCT": "UCT",
       "US/Alaska": "US/Alaska",
       "US/Aleutian": "US/Aleutian",
       "US/Arizona": "US/Arizona",
       "US/Central": "US/Central",
       "US/East-Indiana": "US/East-Indiana",
       "US/Eastern": "US/Eastern",
       "US/Hawaii": "US/Hawaii",
       "US/Indiana-Starke": "US/Indiana-Starke",
       "US/Michigan": "US/Michigan",
       "US/Mountain": "US/Mountain",
       "US/Pacific": "US/Pacific",
       "US/Samoa": "US/Samoa",
       "UTC": "UTC",
       "Universal": "Universal",
       "W-SU": "W-SU",
       "WET": "WET",
       "Zulu": "Zulu",
       "Etc/GMT": "Etc/GMT",
       "Etc/GMT+0": "Etc/GMT+0",
       "Etc/GMT+1": "Etc/GMT+1",
       "Etc/GMT+10": "Etc/GMT+10",
       "Etc/GMT+11": "Etc/GMT+11",
       "Etc/GMT+12": "Etc/GMT+12",
       "Etc/GMT+2": "Etc/GMT+2",
       "Etc/GMT+3": "Etc/GMT+3",
       "Etc/GMT+4": "Etc/GMT+4",
       "Etc/GMT+5": "Etc/GMT+5",
       "Etc/GMT+6": "Etc/GMT+6",
       "Etc/GMT+7": "Etc/GMT+7",
       "Etc/GMT+8": "Etc/GMT+8",
       "Etc/GMT+9": "Etc/GMT+9",
       "Etc/GMT-0": "Etc/GMT-0",
       "Etc/GMT-1": "Etc/GMT-1",
       "Etc/GMT-10": "Etc/GMT-10",
       "Etc/GMT-11": "Etc/GMT-11",
       "Etc/GMT-12": "Etc/GMT-12",
       "Etc/GMT-13": "Etc/GMT-13",
       "Etc/GMT-14": "Etc/GMT-14",
       "Etc/GMT-2": "Etc/GMT-2",
       "Etc/GMT-3": "Etc/GMT-3",
       "Etc/GMT-4": "Etc/GMT-4",
       "Etc/GMT-5": "Etc/GMT-5",
       "Etc/GMT-6": "Etc/GMT-6",
       "Etc/GMT-7": "Etc/GMT-7",
       "Etc/GMT-8": "Etc/GMT-8",
       "Etc/GMT-9": "Etc/GMT-9",
       "Etc/GMT0": "Etc/GMT0",
       "Etc/Greenwich": "Etc/Greenwich",
       "Etc/UCT": "Etc/UCT",
       "Etc/UTC": "Etc/UTC",
       "Etc/Universal": "Etc/Universal",
       "Etc/Zulu": "Etc/Zulu"
      }
     },
     "tz_offset": {
      "description": "Timezone offset",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "user_id": {
      "description": "Salesperson - The internal user in charge of this contact.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "vat": {
      "description": "Tax ID - The Tax Identification Number. Values here will be validated based on the country format. You can use '/' to indicate that the partner is not subject to tax.",
      "type": [
       "string",
       "null"
      ]
     },
     "vat_label": {
      "description": "Tax ID Label",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "same_vat_partner_id": {
      "description": "Partner with same Tax ID",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "same_company_registry_partner_id": {
      "description": "Partner with same Company Registry",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "company_registry": {
      "description": "Company ID - The registry number of the company. Use it if it is different from the Tax ID. It must be unique across all partners of a same country",
      "type": [
       "string",
       "null"
      ]
     },
     "company_registry_label": {
      "description": "Company ID Label",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "bank_ids": {
      "description": "Banks",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "website": {
      "description": "Website Link",
      "type": [
       "string",
       "null"
      ]
     },
     "comment": {
      "description": "Notes",
      "type": [
       "string",
       "null"
      ]
     },
     "category_id": {
      "description": "Tags",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "active": {
      "description": "Active",
      "type": "boolean"
     },
     "employee": {
      "description": "Employee - Check this box if this contact is an Employee.",
      "type": "boolean"
     },
     "function": {
      "description": "Job Position",
      "type": [
       "string",
       "null"
      ]
     },
     "type": {
      "description": "Address Type",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "contact",
       "invoice",
       "delivery",
       "other",
       null
      ],
      "x-labels": {
       "contact": "Contact",
       "invoice": "Invoice Address",
       "delivery": "Delivery Address",
       "other": "Other Address"
      }
     },
     "street": {
      "description": "Street",
      "type": [
       "string",
       "null"
      ]
     },
     "street2": {
      "description": "Street2",
      "type": [
       "string",
       "null"
      ]
     },
     "zip": {
      "description": "Zip",
      "type": [
       "string",
       "null"
      ]
     },
     "city": {
      "description": "City",
      "type": [
       "string",
       "null"
      ]
     },
     "state_id": {
      "description": "State",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "country_id": {
      "description": "Country",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "country_code": {
      "description": "Country Code - The ISO country code in two chars. \nYou can use this field for quick search.",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "partner_latitude": {
      "description": "Geo Latitude",
      "type": [
       "number",
       "null"
      ]
     },
     "partner_longitude": {
      "description": "Geo Longitude",
      "type": [
       "number",
       "null"
      ]
     },
     "email": {
      "description": "Email",
      "type": [
       "string",
       "null"
      ]
     },
     "email_formatted": {
      "description": "Formatted Email - Format email address \"Name <email@domain>\"",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "phone": {
      "description": "Phone",
      "type": [
       "string",
       "null"
      ]
     },
     "mobile": {
      "description": "Mobile",
      "type": [
       "string",
       "null"
      ]
     },
     "is_company": {
      "description": "Is a Company - Check if the contact is a company, otherwise it is a person",
      "type": "boolean"
     },
     "is_public": {
      "description": "Is Public",
      "type": "boolean",
      "readOnly": true
     },
     "industry_id": {
      "description": "Industry",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "company_type": {
      "description": "Company Type",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "person",
       "company",
       null
      ],
      "x-labels": {
       "person": "Individual",
       "company": "Company"
      }
     },
     "company_id": {
      "description": "Company",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "color": {
      "description": "Color Index",
      "type": [
       "integer",
       "null"
      ]
     },
     "user_ids": {
      "description": "Users",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "partner_share": {
      "description": "Share Partner - Either customer (not a user), either shared user. Indicated the current partner is a customer without access or with a limited access created for sharing data.",
      "type": "boolean",
      "readOnly": true
     },
     "contact_address": {
      "description": "Complete Address",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "commercial_partner_id": {
      "description": "Commercial Entity",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "commercial_company_name": {
      "description": "Company Name Entity",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "company_name": {
      "description": "Company Name",
      "type": [
       "string",
       "null"
      ]
     },
     "barcode": {
      "description": "Barcode - Use a barcode to identify this contact.",
      "type": [
       "string",
       "null"
      ]
     },
     "self": {
      "description": "Self",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "id": {
      "type": "integer",
      "readOnly": true
     },
     "display_name": {
      "description": "Display Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "create_uid": {
      "description": "Created by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "create_date": {
      "description": "Created on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "write_uid": {
      "description": "Last Updated by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "write_date": {
      "description": "Last Updated on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "im_status": {
      "description": "IM Status",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "channel_ids": {
      "description": "Channels",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "contact_address_inline": {
      "description": "Inlined Complete Address",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "starred_message_ids": {
      "description": "Starred Message",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "property_product_pricelist": {
      "description": "Pricelist - This pricelist will be used, instead of the default one, for sales to the current partner",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "specific_property_product_pricelist": {
      "description": "Specific Property Product Pricelist",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "partner_gid": {
      "description": "Company database ID",
      "type": [
       "integer",
       "null"
      ]
     },
     "additional_info": {
      "description": "Additional info",
      "type": [
       "string",
       "null"
      ]
     },
     "phone_sanitized": {
      "description": "Sanitized Number - Field used to store sanitized phone number. Helps speeding up searches and comparisons.",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "phone_sanitized_blacklisted": {
      "description": "Phone Blacklisted - If the sanitized phone number is on the blacklist, the contact won't receive mass mailing sms anymore, from any list",
      "type": "boolean",
      "readOnly": true
     },
     "phone_blacklisted": {
      "description": "Blacklisted Phone is Phone - Indicates if a blacklisted sanitized phone number is a phone number. Helps distinguish which number is blacklisted             when there is both a mobile and phone field in a model.",
      "type": "boolean",
      "readOnly": true
     },
     "mobile_blacklisted": {
      "description": "Blacklisted Phone Is Mobile - Indicates if a blacklisted sanitized phone number is a mobile number. Helps distinguish which number is blacklisted             when there is both a mobile and phone field in a model.",
      "type": "boolean",
      "readOnly": true
     },
     "phone_mobile_search": {
      "description": "Phone/Mobile",
      "type": [
       "string",
       "null"
      ]
     },
     "payment_token_ids": {
      "description": "Payment Tokens",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "payment_token_count": {
      "description": "Payment Token Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "fiscal_country_codes": {
      "description": "Fiscal Country Codes",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "partner_vat_placeholder": {
      "description": "Partner Vat Placeholder",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "partner_company_registry_placeholder": {
      "description": "Partner Company Registry Placeholder",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "duplicate_bank_partner_ids": {
      "description": "Duplicate Bank Partner",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "credit": {
      "description": "Total Receivable - Total amount this customer owes you.",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "credit_to_invoice": {
      "description": "Credit To Invoice",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "credit_limit": {
      "description": "Credit Limit - Credit limit specific to this partner.",
      "type": [
       "number",
       "null"
      ]
     },
     "use_partner_credit_limit": {
      "description": "Partner Limit - Set a value greater than 0.0 to activate a credit limit check",
      "type": "boolean"
     },
     "show_credit_limit": {
      "description": "Show Credit Limit",
      "type": "boolean",
      "readOnly": true
     },
     "days_sales_outstanding": {
      "description": "Days Sales Outstanding (DSO) - [(Total Receivable/Total Revenue) * number of days since the first invoice] for this customer",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "debit": {
      "description": "Total Payable - Total amount you have to pay to this vendor.",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "debit_limit": {
      "description": "Payable Limit",
      "type": [
       "number",
       "null"
      ]
     },
     "total_invoiced": {
      "description": "Total Invoiced",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "currency_id": {
      "description": "Currency",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "journal_item_count": {
      "description": "Journal Items",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "property_account_payable_id": {
      "description": "Account Payable - This account will be used instead of the default one as the payable account for the current partner",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "property_account_receivable_id": {
      "description": "Account Receivable - This account will be used instead of the default one as the receivable account for the current partner",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "property_account_position_id": {
      "description": "Fiscal Position - The fiscal position determines the taxes/accounts used for this contact.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "property_payment_term_id": {
      "description": "Customer Payment Terms - This payment term will be used instead of the default one for sales orders and customer invoices",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "property_supplier_payment_term_id": {
      "description": "Vendor Payment Terms - This payment term will be used instead of the default one for purchase orders and vendor bills",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "ref_company_ids": {
      "description": "Companies that refers to partner",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "supplier_invoice_count": {
      "description": "# Vendor Bills",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "invoice_ids": {
      "description": "Invoices",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "contract_ids": {
      "description": "Partner Contracts",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "bank_account_count": {
      "description": "Bank",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "trust": {
      "description": "Degree of trust you have in this debtor",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "good",
       "normal",
       "bad",
       null
      ],
      "x-labels": {
       "good": "Good Debtor",
       "normal": "Normal Debtor",
       "bad": "Bad Debtor"
      }
     },
     "ignore_abnormal_invoice_date": {
      "description": "Ignore Abnormal Invoice Date",
      "type": "boolean"
     },
     "ignore_abnormal_invoice_amount": {
      "description": "Ignore Abnormal Invoice Amount",
      "type": "boolean"
     },
     "invoice_warn": {
      "description": "Invoice - Selecting the \"Warning\" option will notify user with the message, Selecting \"Blocking Message\" will throw an exception with the message and block the flow. The Message has to be written in the next field.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "no-message",
       "warning",
       "block",
       null
      ],
      "x-labels": {
       "no-message": "No Message",
       "warning": "Warning",
       "block": "Blocking Message"
      }
     },
     "invoice_warn_msg": {
      "description": "Message for Invoice",
      "type": [
       "string",
       "null"
      ]
     },
     "invoice_sending_method": {
      "description": "Invoice sending",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "manual",
       "email",
       "snailmail",
       null
      ],
      "x-labels": {
       "manual": "Download",
       "email": "by Email",
       "snailmail": "by Post"
      }
     },
     "invoice_edi_format": {
      "description": "eInvoice format",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "facturx",
       "ubl_bis3",
       "zugferd",
       "xrechnung",
       "nlcius",
       "ubl_a_nz",
       "ubl_sg",
       null
      ],
      "x-labels": {
       "facturx": "France (FacturX)",
       "ubl_bis3": "EU Standard (Peppol Bis 3.0)",
       "zugferd": "Germany (ZUGFeRD)",
       "xrechnung": "Germany (XRechnung)",
       "nlcius": "Netherlands (NLCIUS)",
       "ubl_a_nz": "Australia (BIS Billing 3.0 A-NZ)",
       "ubl_sg": "Singapore (BIS Billing 3.0 SG)"
      }
     },
     "invoice_edi_format_store": {
      "description": "Invoice Edi Format Store",
      "type": [
       "string",
       "null"
      ]
     },
     "display_invoice_edi_format": {
      "description": "Display Invoice Edi Format",
      "type": "boolean"
     },
     "invoice_template_pdf_report_id": {
      "description": "Invoice template",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "display_invoice_template_pdf_report_id": {
      "description": "Display Invoice Template Pdf Report",
      "type": "boolean"
     },
     "supplier_rank": {
      "description": "Supplier Rank",
      "type": [
       "integer",
       "null"
      ]
     },
     "customer_rank": {
      "description": "Customer Rank",
      "type": [
       "integer",
       "null"
      ]
     },
     "autopost_bills": {
      "description": "Auto-post bills - Automatically post bills for this trusted partner",
      "type": "string",
      "enum": [
       "always",
       "ask",
       "never"
      ],
      "x-labels": {
       "always": "Always",
       "ask": "Ask after 3 validations without edits",
       "never": "Never"
      }
     },
     "duplicated_bank_account_partners_count": {
      "description": "Duplicated Bank Account Partners Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "is_coa_installed": {
      "description": "Is Coa Installed",
      "type": "boolean"
     },
     "property_outbound_payment_method_line_id": {
      "description": "Property Outbound Payment Method Line - Preferred payment method when buying from this vendor. This will be set by default on all outgoing payments created for this vendor",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "property_inbound_payment_method_line_id": {
      "description": "Property Inbound Payment Method Line - Preferred payment method when selling to this customer. This will be set by default on all incoming payments created for this customer",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "property_stock_customer": {
      "description": "Customer Location - The stock location used as destination when sending goods to this contact.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "property_stock_supplier": {
      "description": "Vendor Location - The stock location used as source when receiving goods from this contact.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "picking_warn": {
      "description": "Stock Picking - Selecting the \"Warning\" option will notify user with the message, Selecting \"Blocking Message\" will throw an exception with the message and block the flow. The Message has to be written in the next field.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "no-message",
       "warning",
       "block",
       null
      ],
      "x-labels": {
       "no-message": "No Message",
       "warning": "Warning",
       "block": "Blocking Message"
      }
     },
     "picking_warn_msg": {
      "description": "Message for Stock Picking",
      "type": [
       "string",
       "null"
      ]
     },
     "global_location_number": {
      "description": "GLN - Global Location Number",
      "type": [
       "string",
       "null"
      ]
     },
     "is_ubl_format": {
      "description": "Is Ubl Format",
      "type": "boolean",
      "readOnly": true
     },
     "is_peppol_edi_format": {
      "description": "Is Peppol Edi Format",
      "type": "boolean",
      "readOnly": true
     },
     "peppol_endpoint": {
      "description": "Peppol Endpoint - Unique identifier used by the BIS Billing 3.0 and its derivatives, also known as 'Endpoint ID'.",
      "type": [
       "string",
       "null"
      ]
     },
     "peppol_eas": {
      "description": "Peppol e-address (EAS) - Code used to identify the Endpoint for BIS Billing 3.0 and its derivatives.\n             List available at https://docs.peppol.eu/poacc/billing/3.0/codelist/eas/",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "9923",
       "9922",
       "0151",
       "9914",
       "9915",
       "0208",
       "9925",
       "9924",
       "9926",
       "9934",
       "9928",
       "9929",
       "0096",
       "0184",
       "0198",
       "0191",
       "9931",
       "0037",
       "0216",
       "0213",
       "0002",
       "0009",
       "9957",
       "0225",
       "0240",
       "0246",
       "0204",
       "9930",
       "9933",
       "9910",
       "0196",
       "9935",
       "0211",
       "0097",
       "0188",
       "0221",
       "0218",
       "9939",
       "9936",
       "0200",
       "9937",
       "9938",
       "9942",
       "0230",
       "9943",
       "9940",
       "9941",
       "0106",
       "0190",
       "9944",
       "0244",
       "0192",
       "9945",
       "9946",
       "9947",
       "9948",
       "0195",
       "0245",
       "9949",
       "9950",
       "9920",
       "0007",
       "9955",
       "9927",
       "0183",
       "9952",
       "0235",
       "9932",
       "9959",
       "0060",
       "0088",
       "0130",
       "0135",
       "0142",
       "0193",
       "0199",
       "0201",
       "0202",
       "0209",
       "0210",
       "9913",
       "9918",
       "9919",
       "9951",
       "9953",
       "AN",
       "AQ",
       "AS",
       "AU",
       "EM",
       null
      ],
      "x-labels": {
       "9923": "Albania VAT",
       "9922": "Andorra VAT",
       "0151": "Australia ABN",
       "9914": "Austria UID",
       "9915": "Austria VOKZ",
       "0208": "Belgian Company Registry",
       "9925": "Belgian VAT",
       "9924": "Bosnia and Herzegovina VAT",
       "9926": "Bulgaria VAT",
       "9934": "Croatia VAT",
       "9928": "Cyprus VAT",
       "9929": "Czech Republic VAT",
       "0096": "Denmark P",
       "0184": "Denmark CVR",
       "0198": "Denmark SE",
       "0191": "Estonia Company code",
       "9931": "Estonia VAT",
       "0037": "Finland LY-tunnus",
       "0216": "Finland OVT code",
       "0213": "Finland VAT",
       "0002": "France SIRENE",
       "0009": "France SIRET",
       "9957": "France VAT",
       "0225": "France FRCTC Electronic Address",
       "0240": "France Register of legal persons",
       "0246": "German Electronic Business Address",
       "0204": "Germany Leitweg-ID",
       "9930": "Germany VAT",
       "9933": "Greece VAT",
       "9910": "Hungary VAT",
       "0196": "Iceland Kennitala",
       "9935": "Ireland VAT",
       "0211": "Italia Partita IVA",
       "0097": "Italia FTI",
       "0188": "Japan SST",
       "0221": "Japan IIN",
       "0218": "Latvia Unified registration number",
       "9939": "Latvia VAT",
       "9936": "Liechtenstein VAT",
       "0200": "Lithuania JAK",
       "9937": "Lithuania VAT",
       "9938": "Luxembourg VAT",
       "9942": "Macedonia VAT",
       "0230": "Malaysia",
       "9943": "Malta VAT",
       "9940": "Monaco VAT",
       "9941": "Montenegro VAT",
       "0106": "Netherlands KvK",
       "0190": "Netherlands OIN",
       "9944": "Netherlands VAT",
       "0244": "Nigeria Tax Identification",
       "0192": "Norway Org.nr.",
       "9945": "Poland VAT",
       "9946": "Portugal VAT",
       "9947": "Romania VAT",
       "9948": "Serbia VAT",
       "0195": "Singapore UEN",
       "0245": "SK Tax identification number (DIČ)",
       "9949": "Slovenia VAT",
       "9950": "Slovakia VAT",
       "9920": "Spain VAT",
       "0007": "Sweden Org.nr.",
       "9955": "Sweden VAT",
       "9927": "Swiss VAT",
       "0183": "Swiss UIDB",
       "9952": "Turkey VAT",
       "0235": "UAE Tax Identification Number (TIN)",
       "9932": "United Kingdom VAT",
       "9959": "USA EIN",
       "0060": "DUNS Number",
       "0088": "EAN Location Code",
       "0130": "Directorates of the European Commission",
       "0135": "SIA Object Identifiers",
       "0142": "SECETI Object Identifiers",
       "0193": "UBL.BE party identifier",
       "0199": "Legal Entity Identifier (LEI)",
       "0201": "Codice Univoco Unità Organizzativa iPA",
       "0202": "Indirizzo di Posta Elettronica Certificata",
       "0209": "GS1 identification keys",
       "0210": "Codice Fiscale",
       "9913": "Business Registers Network",
       "9918": "S.W.I.F.T",
       "9919": "Kennziffer des Unternehmensregisters",
       "9951": "San Marino VAT",
       "9953": "Vatican VAT",
       "AN": "O.F.T.P. (ODETTE File Transfer Protocol)",
       "AQ": "X.400 address for mail text",
       "AS": "AS2 exchange",
       "AU": "File Transfer Protocol",
       "EM": "Electronic mail"
      }
     },
     "available_peppol_eas": {
      "description": "Available Peppol Eas",
      "type": [
       "object",
       "null"
      ],
      "readOnly": true
     },
     "property_purchase_currency_id": {
      "description": "Supplier Currency - This currency will be used, instead of the default one, for purchases from the current partner",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "purchase_order_count": {
      "description": "Purchase Order Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "purchase_warn": {
      "description": "Purchase Order Warning - Selecting the \"Warning\" option will notify user with the message, Selecting \"Blocking Message\" will throw an exception with the message and block the flow. The Message has to be written in the next field.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "no-message",
       "warning",
       "block",
       null
      ],
      "x-labels": {
       "no-message": "No Message",
       "warning": "Warning",
       "block": "Blocking Message"
      }
     },
     "purchase_warn_msg": {
      "description": "Message for Purchase Order",
      "type": [
       "string",
       "null"
      ]
     },
     "receipt_reminder_email": {
      "description": "Receipt Reminder - Automatically send a confirmation email to the vendor X days before the expected receipt date, asking him to confirm the exact date.",
      "type": "boolean"
     },
     "reminder_date_before_receipt": {
      "description": "Days Before Receipt - Number of days to send reminder email before the promised receipt date",
      "type": [
       "integer",
       "null"
      ]
     },
     "buyer_id": {
      "description": "Buyer",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "purchase_line_ids": {
      "description": "Purchase Lines",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "on_time_rate": {
      "description": "On-Time Delivery Rate - Over the past x days; the number of products received on time divided by the number of ordered products.x is either the System Parameter purchase_stock.on_time_delivery_days or the default 365",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "sale_order_count": {
      "description": "Sale Order Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "sale_order_ids": {
      "description": "Sales Order",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "sale_warn": {
      "description": "Sales Warnings - Selecting the \"Warning\" option will notify user with the message, Selecting \"Blocking Message\" will throw an exception with the message and block the flow. The Message has to be written in the next field.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "no-message",
       "warning",
       "block",
       null
      ],
      "x-labels": {
       "no-message": "No Message",
       "warning": "Warning",
       "block": "Blocking Message"
      }
     },
     "sale_warn_msg": {
      "description": "Message for Sales Order",
      "type": [
       "string",
       "null"
      ]
     }
    },
    "x-default-fields": [
     "id",
     "name",
     "display_name",
     "is_company",
     "parent_id",
     "ref",
     "vat",
     "email",
     "phone",
     "mobile",
     "street",
     "street2",
     "city",
     "zip",
     "state_id",
     "country_id",
     "company_id",
     "customer_rank",
     "supplier_rank",
     "active"
    ]
   },
   "PartnersWrite": {
    "type": "object",
    "properties": {
     "name": {
      "description": "Name",
      "type": [
       "string",
       "null"
      ]
     },
     "is_company": {
      "description": "Is a Company - Check if the contact is a company, otherwise it is a person",
      "type": "boolean"
     },
     "parent_id": {
      "description": "Related Company (id of res.partner)",
      "type": [
       "integer",
       "null"
      ]
     },
     "type": {
      "description": "Address Type",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "contact",
       "invoice",
       "delivery",
       "other",
       null
      ],
      "x-labels": {
       "contact": "Contact",
       "invoice": "Invoice Address",
       "delivery": "Delivery Address",
       "other": "Other Address"
      }
     },
     "ref": {
      "description": "Reference",
      "type": [
       "string",
       "null"
      ]
     },
     "vat": {
      "description": "Tax ID - The Tax Identification Number. Values here will be validated based on the country format. You can use '/' to indicate that the partner is not subject to tax.",
      "type": [
       "string",
       "null"
      ]
     },
     "email": {
      "description": "Email",
      "type": [
       "string",
       "null"
      ]
     },
     "phone": {
      "description": "Phone",
      "type": [
       "string",
       "null"
      ]
     },
     "mobile": {
      "description": "Mobile",
      "type": [
       "string",
       "null"
      ]
     },
     "website": {
      "description": "Website Link",
      "type": [
       "string",
       "null"
      ]
     },
     "street": {
      "description": "Street",
      "type": [
       "string",
       "null"
      ]
     },
     "street2": {
      "description": "Street2",
      "type": [
       "string",
       "null"
      ]
     },
     "city": {
      "description": "City",
      "type": [
       "string",
       "null"
      ]
     },
     "zip": {
      "description": "Zip",
      "type": [
       "string",
       "null"
      ]
     },
     "state_id": {
      "description": "State (id of res.country.state)",
      "type": [
       "integer",
       "null"
      ]
     },
     "country_id": {
      "description": "Country (id of res.country)",
      "type": [
       "integer",
       "null"
      ]
     },
     "company_id": {
      "description": "Company (id of res.company)",
      "type": [
       "integer",
       "null"
      ]
     },
     "lang": {
      "description": "Language - All the emails and documents sent to this contact will be translated in this language.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "en_US",
       null
      ],
      "x-labels": {
       "en_US": "English (US)"
      }
     },
     "comment": {
      "description": "Notes",
      "type": [
       "string",
       "null"
      ]
     },
     "active": {
      "description": "Active",
      "type": "boolean"
     }
    },
    "additionalProperties": false
   },
   "Products": {
    "type": "object",
    "properties": {
     "activity_ids": {
      "description": "Activities",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "activity_state": {
      "description": "Activity State - Status based on activities\nOverdue: Due date is already passed\nToday: Activity date is today\nPlanned: Future activities.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "overdue",
       "today",
       "planned",
       null
      ],
      "x-labels": {
       "overdue": "Overdue",
       "today": "Today",
       "planned": "Planned"
      },
      "readOnly": true
     },
     "activity_user_id": {
      "description": "Responsible User",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "activity_type_id": {
      "description": "Next Activity Type",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "activity_type_icon": {
      "description": "Activity Type Icon - Font awesome icon e.g. fa-tasks",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "activity_date_deadline": {
      "description": "Next Activity Deadline",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "my_activity_date_deadline": {
      "description": "My Activity Deadline",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "activity_summary": {
      "description": "Next Activity Summary",
      "type": [
       "string",
       "null"
      ]
     },
     "activity_exception_decoration": {
      "description": "Activity Exception Decoration - Type of the exception activity on record.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "warning",
       "danger",
       null
      ],
      "x-labels": {
       "warning": "Alert",
       "danger": "Error"
      },
      "readOnly": true
     },
     "activity_exception_icon": {
      "description": "Icon - Icon to indicate an exception activity.",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "message_is_follower": {
      "description": "Is Follower",
      "type": "boolean",
      "readOnly": true
     },
     "message_follower_ids": {
      "description": "Followers",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_partner_ids": {
      "description": "Followers (Partners)",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_ids": {
      "description": "Messages",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "has_message": {
      "description": "Has Message",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction": {
      "description": "Action Needed - If checked, new messages require your attention.",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction_counter": {
      "description": "Number of Actions - Number of messages requiring action",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_has_error": {
      "description": "Message Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "message_has_error_counter": {
      "description": "Number of errors - Number of messages with delivery error",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_attachment_count": {
      "description": "Attachment Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "website_message_ids": {
      "description": "Website Messages - Website communication history",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_has_sms_error": {
      "description": "SMS Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "price_extra": {
      "description": "Variant Price Extra - This is the sum of the extra price of all attributes",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "lst_price": {
      "description": "Sales Price - The sale price is managed from the product template. Click on the 'Configure Variants' button to set the extra attribute prices.",
      "type": [
       "number",
       "null"
      ]
     },
     "default_code": {
      "description": "Internal Reference",
      "type": [
       "string",
       "null"
      ]
     },
     "code": {
      "description": "Reference",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "partner_ref": {
      "description": "Customer Ref",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "active": {
      "description": "Active - If unchecked, it will allow you to hide the product without removing it.",
      "type": "boolean"
     },
     "product_tmpl_id": {
      "description": "Product Template",
      "$ref": "#/components/schemas/Ref"
     },
     "barcode": {
      "description": "Barcode - International Article Number used for product identification.",
      "type": [
       "string",
       "null"
      ]
     },
     "product_template_attribute_value_ids": {
      "description": "Attribute Values",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "product_template_variant_value_ids": {
      "description": "Variant Values",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "combination_indices": {
      "description": "Combination Indices",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "is_product_variant": {
      "description": "Is Product Variant",
      "type": "boolean",
      "readOnly": true
     },
     "standard_price": {
      "description": "Cost - Value of the product (automatically computed in AVCO).\n        Used to value the product when the purchase cost is not known (e.g. inventory adjustment).\n        Used to compute margins on sale orders.",
      "type": [
       "number",
       "null"
      ]
     },
     "volume": {
      "description": "Volume",
      "type": [
       "number",
       "null"
      ]
     },
     "weight": {
      "description": "Weight",
      "type": [
       "number",
       "null"
      ]
     },
     "pricelist_item_count": {
      "description": "Number of price rules",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "product_document_ids": {
      "description": "Documents",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "product_document_count": {
      "description": "Documents Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "packaging_ids": {
      "description": "Product Packages - Gives the different ways to package the same product.",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "additional_product_tag_ids": {
      "description": "Variant Tags",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "all_product_tag_ids": {
      "description": "All Product Tag",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "can_image_variant_1024_be_zoomed": {
      "description": "Can Variant Image 1024 be zoomed",
      "type": "boolean",
      "readOnly": true
     },
     "can_image_1024_be_zoomed": {
      "description": "Can Image 1024 be zoomed",
      "type": "boolean",
      "readOnly": true
     },
     "write_date": {
      "description": "Write Date",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "id": {
      "type": "integer",
      "readOnly": true
     },
     "display_name": {
      "description": "Display Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "create_uid": {
      "description": "Created by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "create_date": {
      "description": "Created on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "write_uid": {
      "description": "Last Updated by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "tax_string": {
      "description": "Tax String",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "stock_quant_ids": {
      "description": "Stock Quant",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "stock_move_ids": {
      "description": "Stock Move",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "qty_available": {
      "description": "Quantity On Hand - Current quantity of products.\nIn a context with a single Stock Location, this includes goods stored at this Location, or any of its children.\nIn a context with a single Warehouse, this includes goods stored in the Stock Location of this Warehouse, or any of its children.\nstored in the Stock Location of the Warehouse of this Shop, or any of its children.\nOtherwise, this includes goods stored in any Stock Location with 'internal' type.",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "virtual_available": {
      "description": "Forecasted Quantity - Forecast quantity (computed as Quantity On Hand - Outgoing + Incoming)\nIn a context with a single Stock Location, this includes goods stored in this location, or any of its children.\nIn a context with a single Warehouse, this includes goods stored in the Stock Location of this Warehouse, or any of its children.\nOtherwise, this includes goods stored in any Stock Location with 'internal' type.",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "free_qty": {
      "description": "Free To Use Quantity  - Forecast quantity (computed as Quantity On Hand - reserved quantity)\nIn a context with a single Stock Location, this includes goods stored in this location, or any of its children.\nIn a context with a single Warehouse, this includes goods stored in the Stock Location of this Warehouse, or any of its children.\nOtherwise, this includes goods stored in any Stock Location with 'internal' type.",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "incoming_qty": {
      "description": "Incoming - Quantity of planned incoming products.\nIn a context with a single Stock Location, this includes goods arriving to this Location, or any of its children.\nIn a context with a single Warehouse, this includes goods arriving to the Stock Location of this Warehouse, or any of its children.\nOtherwise, this includes goods arriving to any Stock Location with 'internal' type.",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "outgoing_qty": {
      "description": "Outgoing - Quantity of planned outgoing products.\nIn a context with a single Stock Location, this includes goods leaving this Location, or any of its children.\nIn a context with a single Warehouse, this includes goods leaving the Stock Location of this Warehouse, or any of its children.\nOtherwise, this includes goods leaving any Stock Location with 'internal' type.",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "orderpoint_ids": {
      "description": "Minimum Stock Rules",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "nbr_moves_in": {
      "description": "Nbr Moves In - Number of incoming stock moves in the past 12 months",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "nbr_moves_out": {
      "description": "Nbr Moves Out - Number of outgoing stock moves in the past 12 months",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "nbr_reordering_rules": {
      "description": "Reordering Rules",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "reordering_min_qty": {
      "description": "Reordering Min Qty",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "reordering_max_qty": {
      "description": "Reordering Max Qty",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "putaway_rule_ids": {
      "description": "Putaway Rules",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "storage_category_capacity_ids": {
      "description": "Storage Category Capacity",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "show_on_hand_qty_status_button": {
      "description": "Show On Hand Qty Status Button",
      "type": "boolean",
      "readOnly": true
     },
     "show_forecasted_qty_status_button": {
      "description": "Show Forecasted Qty Status Button",
      "type": "boolean",
      "readOnly": true
     },
     "valid_ean": {
      "description": "Barcode is valid EAN",
      "type": "boolean",
      "readOnly": true
     },
     "purchased_product_qty": {
      "description": "Purchased",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "is_in_purchase_order": {
      "description": "Is In Purchase Order",
      "type": "boolean",
      "readOnly": true
     },
     "value_svl": {
      "description": "Value Svl",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "quantity_svl": {
      "description": "Quantity Svl",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "avg_cost": {
      "description": "Average Cost",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "total_value": {
      "description": "Total Value",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "company_currency_id": {
      "description": "Valuation Currency - Technical field to correctly show the currently selected company's currency that corresponds to the totaled value of the product's valuation layers",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "stock_valuation_layer_ids": {
      "description": "Stock Valuation Layer",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "valuation": {
      "description": "Inventory Valuation - Manual: The accounting entries to value the inventory are not posted automatically.\n        Automated: An accounting entry is automatically created to value the inventory when a product enters or leaves the company.\n        ",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "manual_periodic",
       "real_time",
       null
      ],
      "x-labels": {
       "manual_periodic": "Manual",
       "real_time": "Automated"
      },
      "readOnly": true
     },
     "cost_method": {
      "description": "Costing Method - Standard Price: The products are valued at their standard cost defined on the product.\n        Average Cost (AVCO): The products are valued at weighted average cost.\n        First In First Out (FIFO): The products are valued supposing those that enter the company first will also leave it first.\n        ",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "standard",
       "fifo",
       "average",
       null
      ],
      "x-labels": {
       "standard": "Standard Price",
       "fifo": "First In First Out (FIFO)",
       "average": "Average Cost (AVCO)"
      },
      "readOnly": true
     },
     "purchase_order_line_ids": {
      "description": "PO Lines",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "sales_count": {
      "description": "Sold",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "product_catalog_product_is_in_sale_order": {
      "description": "Product Catalog Product Is In Sale Order",
      "type": "boolean",
      "readOnly": true
     },
     "name": {
      "description": "Name",
      "type": "string"
     },
     "sequence": {
      "description": "Sequence - Gives the sequence order when displaying a product list",
      "type": [
       "integer",
       "null"
      ]
     },
     "description": {
      "description": "Description",
      "type": [
       "string",
       "null"
      ]
     },
     "description_purchase": {
      "description": "Purchase Description",
      "type": [
       "string",
       "null"
      ]
     },
     "description_sale": {
      "description": "Sales Description - A description of the Product that you want to communicate to your customers. This description will be copied to every Sales Order, Delivery Order and Customer Invoice/Credit Note",
      "type": [
       "string",
       "null"
      ]
     },
     "type": {
      "description": "Product Type - Goods are tangible materials and merchandise you provide.\nA service is a non-material product you provide.",
      "type": "string",
      "enum": [
       "consu",
       "service",
       "combo"
      ],
      "x-labels": {
       "consu": "Goods",
       "service": "Service",
       "combo": "Combo"
      }
     },
     "combo_ids": {
      "description": "Combo Choices",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "service_tracking": {
      "description": "Create on Order",
      "type": "string",
      "enum": [
       "no"
      ],
      "x-labels": {
       "no": "Nothing"
      }
     },
     "categ_id": {
      "description": "Product Category",
      "$ref": "#/components/schemas/Ref"
     },
     "currency_id": {
      "description": "Currency",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "cost_currency_id": {
      "description": "Cost Currency",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "list_price": {
      "description": "Sales Price - Price at which the product is sold to customers.",
      "type": [
       "number",
       "null"
      ]
     },
     "volume_uom_name": {
      "description": "Volume unit of measure label",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "weight_uom_name": {
      "description": "Weight unit of measure label",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "sale_ok": {
      "description": "Sales",
      "type": "boolean"
     },
     "purchase_ok": {
      "description": "Purchase",
      "type": "boolean"
     },
     "uom_id": {
      "description": "Unit of Measure - Default unit of measure used for all stock operations.",
      "$ref": "#/components/schemas/Ref"
     },
     "uom_name": {
      "description": "Unit of Measure Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "uom_category_id": {
      "description": "UoM Category - Conversion between Units of Measure can only occur if they belong to the same category. The conversion will be made based on the ratios.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "uom_po_id": {
      "description": "Purchase Unit - Default unit of measure used for purchase orders. It must be in the same category as the default unit of measure.",
      "$ref": "#/components/schemas/Ref"
     },
     "company_id": {
      "description": "Company",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "seller_ids": {
      "description": "Vendors",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "variant_seller_ids": {
      "description": "Variant Seller",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "color": {
      "description": "Color Index",
      "type": [
       "integer",
       "null"
      ]
     },
     "attribute_line_ids": {
      "description": "Product Attributes",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "valid_product_template_attribute_line_ids": {
      "description": "Valid Product Attribute Lines",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "product_variant_ids": {
      "description": "Products",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "product_variant_id": {
      "description": "Product",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "product_variant_count": {
      "description": "# Product Variants",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "has_configurable_attributes": {
      "description": "Is a configurable product",
      "type": "boolean",
      "readOnly": true
     },
     "product_tooltip": {
      "description": "Product Tooltip",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "is_favorite": {
      "description": "Favorite",
      "type": "boolean"
     },
     "product_tag_ids": {
      "description": "Tags",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "taxes_id": {
      "description": "Sales Taxes - Default taxes used when selling the product",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "supplier_taxes_id": {
      "description": "Purchase Taxes - Default taxes used when buying the product",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "property_account_income_id": {
      "description": "Income Account - Keep this field empty to use the default value from the product category.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "property_account_expense_id": {
      "description": "Expense Account - Keep this field empty to use the default value from the product category. If anglo-saxon accounting with automated valuation method is configured, the expense account on the product category will be used.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "account_tag_ids": {
      "description": "Account Tags - Tags to be set on the base and tax journal items created for this product.",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "fiscal_country_codes": {
      "description": "Fiscal Country Codes",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "is_storable": {
      "description": "Track Inventory - A storable product is a product for which you manage stock.",
      "type": "boolean"
     },
     "responsible_id": {
      "description": "Responsible - This user will be responsible of the next activities related to logistic operations for this product.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "property_stock_production": {
      "description": "Production Location - This stock location will be used, instead of the default one, as the source location for stock moves generated by manufacturing orders.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "property_stock_inventory": {
      "description": "Inventory Location - This stock location will be used, instead of the default one, as the source location for stock moves generated when you do an inventory.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "sale_delay": {
      "description": "Customer Lead Time - Delivery lead time, in days. It's the number of days, promised to the customer, between the confirmation of the sales order and the delivery.",
      "type": [
       "integer",
       "null"
      ]
     },
     "tracking": {
      "description": "Tracking - Ensure the traceability of a storable product in your warehouse.",
      "type": "string",
      "enum": [
       "serial",
       "lot",
       "none"
      ],
      "x-labels": {
       "serial": "By Unique Serial Number",
       "lot": "By Lots",
       "none": "By Quantity"
      }
     },
     "description_picking": {
      "description": "Description on Picking",
      "type": [
       "string",
       "null"
      ]
     },
     "description_pickingout": {
      "description": "Description on Delivery Orders",
      "type": [
       "string",
       "null"
      ]
     },
     "description_pickingin": {
      "description": "Description on Receptions",
      "type": [
       "string",
       "null"
      ]
     },
     "location_id": {
      "description": "Location",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "warehouse_id": {
      "description": "Warehouse",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "has_available_route_ids": {
      "description": "Routes can be selected on this product",
      "type": "boolean",
      "readOnly": true
     },
     "route_ids": {
      "description": "Routes - Depending on the modules installed, this will allow you to define the route of the product: whether it will be bought, manufactured, replenished on order, etc.",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "route_from_categ_ids": {
      "description": "Category Routes",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "purchase_method": {
      "description": "Control Policy - On ordered quantities: Control bills based on ordered quantities.\nOn received quantities: Control bills based on received quantities.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "purchase",
       "receive",
       null
      ],
      "x-labels": {
       "purchase": "On ordered quantities",
       "receive": "On received quantities"
      }
     },
     "purchase_line_warn": {
      "description": "Purchase Order Line Warning - Selecting the \"Warning\" option will notify user with the message, Selecting \"Blocking Message\" will throw an exception with the message and block the flow. The Message has to be written in the next field.",
      "type": "string",
      "enum": [
       "no-message",
       "warning",
       "block"
      ],
      "x-labels": {
       "no-message": "No Message",
       "warning": "Warning",
       "block": "Blocking Message"
      }
     },
     "purchase_line_warn_msg": {
      "description": "Message for Purchase Order Line",
      "type": [
       "string",
       "null"
      ]
     },
     "lot_valuated": {
      "description": "Valuation by Lot/Serial number - If checked, the valuation will be specific by Lot/Serial number.",
      "type": "boolean"
     },
     "property_account_creditor_price_difference": {
      "description": "Price Difference Account - This account is used in automated inventory valuation to record the price difference between a purchase order and its related vendor bill when validating this vendor bill.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "service_type": {
      "description": "Track Service - Manually set quantities on order: Invoice based on the manually entered quantity, without creating an analytic account.\nTimesheets on contract: Invoice based on the tracked hours on the related timesheet.\nCreate a task and track hours: Create a task on the sales order validation and track the work hours.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "manual",
       null
      ],
      "x-labels": {
       "manual": "Manually set quantities on order"
      }
     },
     "sale_line_warn": {
      "description": "Sales Order Line - Selecting the \"Warning\" option will notify user with the message, Selecting \"Blocking Message\" will throw an exception with the message and block the flow. The Message has to be written in the next field.",
      "type": "string",
      "enum": [
       "no-message",
       "warning",
       "block"
      ],
      "x-labels": {
       "no-message": "No Message",
       "warning": "Warning",
       "block": "Blocking Message"
      }
     },
     "sale_line_warn_msg": {
      "description": "Message for Sales Order Line",
      "type": [
       "string",
       "null"
      ]
     },
     "expense_policy": {
      "description": "Re-Invoice Costs - Validated expenses, vendor bills, or stock pickings (set up to track costs) can be invoiced to the customer at either cost or sales price.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "no",
       "cost",
       "sales_price",
       null
      ],
      "x-labels": {
       "no": "No",
       "cost": "At cost",
       "sales_price": "Sales price"
      }
     },
     "visible_expense_policy": {
      "description": "Re-Invoice Policy visible",
      "type": "boolean",
      "readOnly": true
     },
     "invoice_policy": {
      "description": "Invoicing Policy - Ordered Quantity: Invoice quantities ordered by the customer.\nDelivered Quantity: Invoice quantities delivered to the customer.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "order",
       "delivery",
       null
      ],
      "x-labels": {
       "order": "Ordered quantities",
       "delivery": "Delivered quantities"
      }
     },
     "optional_product_ids": {
      "description": "Optional Products - Optional Products are suggested whenever the customer hits *Add to Cart* (cross-sell strategy, e.g. for computers: warranty, software, etc.).",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "service_to_purchase": {
      "description": "Subcontract Service - If ticked, each time you sell this product through a SO, a RfQ is automatically created to buy the product. Tip: don't forget to set a vendor on the product.",
      "type": "boolean"
     }
    },
    "x-default-fields": [
     "id",
     "name",
     "display_name",
     "default_code",
     "barcode",
     "type",
     "is_storable",
     "categ_id",
     "uom_id",
     "uom_po_id",
     "list_price",
     "standard_price",
     "sale_ok",
     "purchase_ok",
     "product_tmpl_id",
     "company_id",
     "active",
     "qty_available",
     "virtual_available"
    ]
   },
   "ProductsWrite": {
    "type": "object",
    "properties": {
     "name": {
      "description": "Name",
      "type": "string"
     },
     "default_code": {
      "description": "Internal Reference",
      "type": [
       "string",
       "null"
      ]
     },
     "barcode": {
      "description": "Barcode - International Article Number used for product identification.",
      "type": [
       "string",
       "null"
      ]
     },
     "type": {
      "description": "Product Type - Goods are tangible materials and merchandise you provide.\nA service is a non-material product you provide.",
      "type": "string",
      "enum": [
       "consu",
       "service",
       "combo"
      ],
      "x-labels": {
       "consu": "Goods",
       "service": "Service",
       "combo": "Combo"
      }
     },
     "is_storable": {
      "description": "Track Inventory - A storable product is a product for which you manage stock.",
      "type": "boolean"
     },
     "categ_id": {
      "description": "Product Category (id of product.category)",
      "type": "integer"
     },
     "uom_id": {
      "description": "Unit of Measure - Default unit of measure used for all stock operations. (id of uom.uom)",
      "type": "integer"
     },
     "uom_po_id": {
      "description": "Purchase Unit - Default unit of measure used for purchase orders. It must be in the same category as the default unit of measure. (id of uom.uom)",
      "type": "integer"
     },
     "list_price": {
      "description": "Sales Price - Price at which the product is sold to customers.",
      "type": [
       "number",
       "null"
      ]
     },
     "standard_price": {
      "description": "Cost - Value of the product (automatically computed in AVCO).\n        Used to value the product when the purchase cost is not known (e.g. inventory adjustment).\n        Used to compute margins on sale orders.",
      "type": [
       "number",
       "null"
      ]
     },
     "sale_ok": {
      "description": "Sales",
      "type": "boolean"
     },
     "purchase_ok": {
      "description": "Purchase",
      "type": "boolean"
     },
     "description_sale": {
      "description": "Sales Description - A description of the Product that you want to communicate to your customers. This description will be copied to every Sales Order, Delivery Order and Customer Invoice/Credit Note",
      "type": [
       "string",
       "null"
      ]
     },
     "description_purchase": {
      "description": "Purchase Description",
      "type": [
       "string",
       "null"
      ]
     },
     "taxes_id": {
      "description": "Sales Taxes - Default taxes used when selling the product",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "supplier_taxes_id": {
      "description": "Purchase Taxes - Default taxes used when buying the product",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "company_id": {
      "description": "Company (id of res.company)",
      "type": [
       "integer",
       "null"
      ]
     },
     "active": {
      "description": "Active - If unchecked, it will allow you to hide the product without removing it.",
      "type": "boolean"
     }
    },
    "additionalProperties": false
   },
   "ProductsCreate": {
    "allOf": [
     {
      "$ref": "#/components/schemas/ProductsWrite"
     },
     {
      "required": [
       "name",
       "type",
       "categ_id",
       "uom_id",
       "uom_po_id"
      ]
     }
    ]
   },
   "ProductCategories": {
    "type": "object",
    "properties": {
     "message_is_follower": {
      "description": "Is Follower",
      "type": "boolean",
      "readOnly": true
     },
     "message_follower_ids": {
      "description": "Followers",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_partner_ids": {
      "description": "Followers (Partners)",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_ids": {
      "description": "Messages",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "has_message": {
      "description": "Has Message",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction": {
      "description": "Action Needed - If checked, new messages require your attention.",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction_counter": {
      "description": "Number of Actions - Number of messages requiring action",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_has_error": {
      "description": "Message Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "message_has_error_counter": {
      "description": "Number of errors - Number of messages with delivery error",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_attachment_count": {
      "description": "Attachment Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "website_message_ids": {
      "description": "Website Messages - Website communication history",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_has_sms_error": {
      "description": "SMS Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "name": {
      "description": "Name",
      "type": "string"
     },
     "complete_name": {
      "description": "Complete Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "parent_id": {
      "description": "Parent Category",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "parent_path": {
      "description": "Parent Path",
      "type": [
       "string",
       "null"
      ]
     },
     "child_id": {
      "description": "Child Categories",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "product_count": {
      "description": "# Products - The number of products under this category (Does not consider the children categories)",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "id": {
      "type": "integer",
      "readOnly": true
     },
     "display_name": {
      "description": "Display Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "create_uid": {
      "description": "Created by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "create_date": {
      "description": "Created on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "write_uid": {
      "description": "Last Updated by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "write_date": {
      "description": "Last Updated on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "property_account_income_categ_id": {
      "description": "Income Account - This account will be used when validating a customer invoice.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "property_account_expense_categ_id": {
      "description": "Expense Account - The expense is accounted for when a vendor bill is validated, except in anglo-saxon accounting with perpetual inventory valuation in which case the expense (Cost of Goods Sold account) is recognized at the customer invoice validation.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "route_ids": {
      "description": "Routes",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "removal_strategy_id": {
      "description": "Force Removal Strategy - Set a specific removal strategy that will be used regardless of the source location for this product category.\n\nFIFO: products/lots that were stocked first will be moved out first.\nLIFO: products/lots that were stocked last will be moved out first.\nClosest location: products/lots closest to the target location will be moved out first.\nFEFO: products/lots with the closest removal date will be moved out first (the availability of this method depends on the \"Expiration Dates\" setting).\nLeast Packages: FIFO but with the least number of packages possible when there are several packages containing the same product.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "parent_route_ids": {
      "description": "Parent Routes",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "total_route_ids": {
      "description": "Total routes",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "putaway_rule_ids": {
      "description": "Putaway Rules",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "packaging_reserve_method": {
      "description": "Reserve Packagings - Reserve Only Full Packagings: will not reserve partial packagings. If customer orders 2 pallets of 1000 units each and you only have 1600 in stock, then only 1000 will be reserved\nReserve Partial Packagings: allow reserving partial packagings. If customer orders 2 pallets of 1000 units each and you only have 1600 in stock, then 1600 will be reserved",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "full",
       "partial",
       null
      ],
      "x-labels": {
       "full": "Reserve Only Full Packagings",
       "partial": "Reserve Partial Packagings"
      }
     },
     "filter_for_stock_putaway_rule": {
      "description": "stock.putaway.rule",
      "type": "boolean"
     },
     "property_valuation": {
      "description": "Inventory Valuation - Manual: The accounting entries to value the inventory are not posted automatically.\n        Automated: An accounting entry is automatically created to value the inventory when a product enters or leaves the company.\n        ",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "manual_periodic",
       "real_time",
       null
      ],
      "x-labels": {
       "manual_periodic": "Manual",
       "real_time": "Automated"
      }
     },
     "property_cost_method": {
      "description": "Costing Method - Standard Price: The products are valued at their standard cost defined on the product.\n        Average Cost (AVCO): The products are valued at weighted average cost.\n        First In First Out (FIFO): The products are valued supposing those that enter the company first will also leave it first.\n        ",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "standard",
       "fifo",
       "average",
       null
      ],
      "x-labels": {
       "standard": "Standard Price",
       "fifo": "First In First Out (FIFO)",
       "average": "Average Cost (AVCO)"
      }
     },
     "property_stock_journal": {
      "description": "Stock Journal - When doing automated inventory valuation, this is the Accounting Journal in which entries will be automatically posted when stock moves are processed.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "property_stock_account_input_categ_id": {
      "description": "Stock Input Account - Counterpart journal items for all incoming stock moves will be posted in this account, unless there is a specific valuation account\n                set on the source location. This is the default value for all products in this category. It can also directly be set on each product.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "property_stock_account_output_categ_id": {
      "description": "Stock Output Account - When doing automated inventory valuation, counterpart journal items for all outgoing stock moves will be posted in this account,\n                unless there is a specific valuation account set on the destination location. This is the default value for all products in this category.\n                It can also directly be set on each product.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "property_stock_valuation_account_id": {
      "description": "Stock Valuation Account - When automated inventory valuation is enabled on a product, this account will hold the current value of the products.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "property_account_creditor_price_difference_categ": {
      "description": "Price Difference Account - This account will be used to value price difference between purchase price and accounting cost.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "property_account_downpayment_categ_id": {
      "description": "Downpayment Account - This account will be used on Downpayment invoices.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     }
    },
    "x-default-fields": [
     "id",
     "name",
     "complete_name",
     "parent_id"
    ]
   },
   "Uoms": {
    "type": "object",
    "properties": {
     "name": {
      "description": "Unit of Measure",
      "type": "string"
     },
     "category_id": {
      "description": "Category - Conversion between Units of Measure can only occur if they belong to the same category. The conversion will be made based on the ratios.",
      "$ref": "#/components/schemas/Ref"
     },
     "factor": {
      "description": "Ratio - How much bigger or smaller this unit is compared to the reference Unit of Measure for this category: 1 * (reference unit) = ratio * (this unit)",
      "type": "number"
     },
     "factor_inv": {
      "description": "Bigger Ratio - How many times this Unit of Measure is bigger than the reference Unit of Measure in this category: 1 * (this unit) = ratio * (reference unit)",
      "type": "number",
      "readOnly": true
     },
     "rounding": {
      "description": "Rounding Precision - The computed quantity will be a multiple of this value. Use 1.0 for a Unit of Measure that cannot be further split, such as a piece.",
      "type": "number"
     },
     "active": {
      "description": "Active - Uncheck the active field to disable a unit of measure without deleting it.",
      "type": "boolean"
     },
     "uom_type": {
      "description": "Type",
      "type": "string",
      "enum": [
       "bigger",
       "reference",
       "smaller"
      ],
      "x-labels": {
       "bigger": "Bigger than the reference Unit of Measure",
       "reference": "Reference Unit of Measure for this category",
       "smaller": "Smaller than the reference Unit of Measure"
      }
     },
     "ratio": {
      "description": "Combined Ratio",
      "type": [
       "number",
       "null"
      ]
     },
     "color": {
      "description": "Color",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "id": {
      "type": "integer",
      "readOnly": true
     },
     "display_name": {
      "description": "Display Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "create_uid": {
      "description": "Created by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "create_date": {
      "description": "Created on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "write_uid": {
      "description": "Last Updated by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "write_date": {
      "description": "Last Updated on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "fiscal_country_codes": {
      "description": "Fiscal Country Codes",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     }
    },
    "x-default-fields": [
     "id",
     "name",
     "category_id",
     "uom_type",
     "factor",
     "rounding",
     "active"
    ]
   },
   "Currencies": {
    "type": "object",
    "properties": {
     "name": {
      "description": "Currency - Currency Code (ISO 4217)",
      "type": "string"
     },
     "iso_numeric": {
      "description": "Currency numeric code. - Currency Numeric Code (ISO 4217).",
      "type": [
       "integer",
       "null"
      ]
     },
     "full_name": {
      "description": "Name",
      "type": [
       "string",
       "null"
      ]
     },
     "symbol": {
      "description": "Symbol - Currency sign, to be used when printing amounts.",
      "type": "string"
     },
     "rate": {
      "description": "Current Rate - The rate of the currency to the currency of rate 1.",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "inverse_rate": {
      "description": "Inverse Rate - The currency of rate 1 to the rate of the currency.",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "rate_string": {
      "description": "Rate String",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "rate_ids": {
      "description": "Rates",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "rounding": {
      "description": "Rounding Factor - Amounts in this currency are rounded off to the nearest multiple of the rounding factor.",
      "type": [
       "number",
       "null"
      ]
     },
     "decimal_places": {
      "description": "Decimal Places - Decimal places taken into account for operations on amounts in this currency. It is determined by the rounding factor.",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "active": {
      "description": "Active",
      "type": "boolean"
     },
     "position": {
      "description": "Symbol Position - Determines where the currency symbol should be placed after or before the amount.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "after",
       "before",
       null
      ],
      "x-labels": {
       "after": "After Amount",
       "before": "Before Amount"
      }
     },
     "date": {
      "description": "Date",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "currency_unit_label": {
      "description": "Currency Unit",
      "type": [
       "string",
       "null"
      ]
     },
     "currency_subunit_label": {
      "description": "Currency Subunit",
      "type": [
       "string",
       "null"
      ]
     },
     "is_current_company_currency": {
      "description": "Is Current Company Currency",
      "type": "boolean",
      "readOnly": true
     },
     "id": {
      "type": "integer",
      "readOnly": true
     },
     "display_name": {
      "description": "Display Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "create_uid": {
      "description": "Created by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "create_date": {
      "description": "Created on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "write_uid": {
      "description": "Last Updated by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "write_date": {
      "description": "Last Updated on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "display_rounding_warning": {
      "description": "Display Rounding Warning - The warning informs a rounding factor change might be dangerous on res.currency's form view.",
      "type": "boolean",
      "readOnly": true
     },
     "fiscal_country_codes": {
      "description": "Fiscal Country Codes",
      "type": [
       "string",
       "null"
      ]
     }
    },
    "x-default-fields": [
     "id",
     "name",
     "full_name",
     "symbol",
     "rate",
     "decimal_places",
     "active"
    ]
   },
   "Countries": {
    "type": "object",
    "properties": {
     "name": {
      "description": "Country Name",
      "type": "string"
     },
     "code": {
      "description": "Country Code - The ISO country code in two chars. \nYou can use this field for quick search.",
      "type": "string"
     },
     "address_format": {
      "description": "Layout in Reports - Display format to use for addresses belonging to this country.\n\nYou can use python-style string pattern with all the fields of the address (for example, use '%(street)s' to display the field 'street') plus\n%(state_name)s: the name of the state\n%(state_code)s: the code of the state\n%(country_name)s: the name of the country\n%(country_code)s: the code of the country",
      "type": [
       "string",
       "null"
      ]
     },
     "address_view_id": {
      "description": "Input View - Use this field if you want to replace the usual way to encode a complete address. Note that the address_format field is used to modify the way to display addresses (in reports for example), while this field is used to modify the input form for addresses.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "currency_id": {
      "description": "Currency",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "image_url": {
      "description": "Flag - Url of static flag image",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "phone_code": {
      "description": "Country Calling Code",
      "type": [
       "integer",
       "null"
      ]
     },
     "country_group_ids": {
      "description": "Country Groups",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "state_ids": {
      "description": "States",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "name_position": {
      "description": "Customer Name Position - Determines where the customer/company name should be placed, i.e. after or before the address.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "before",
       "after",
       null
      ],
      "x-labels": {
       "before": "Before Address",
       "after": "After Address"
      }
     },
     "vat_label": {
      "description": "Vat Label - Use this field if you want to change vat label.",
      "type": [
       "string",
       "null"
      ]
     },
     "state_required": {
      "description": "State Required",
      "type": "boolean"
     },
     "zip_required": {
      "description": "Zip Required",
      "type": "boolean"
     },
     "id": {
      "type": "integer",
      "readOnly": true
     },
     "display_name": {
      "description": "Display Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "create_uid": {
      "description": "Created by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "create_date": {
      "description": "Created on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "write_uid": {
      "description": "Last Updated by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "write_date": {
      "description": "Last Updated on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "is_stripe_supported_country": {
      "description": "Is Stripe Supported Country",
      "type": "boolean",
      "readOnly": true
     }
    },
    "x-default-fields": [
     "id",
     "name",
     "code",
     "currency_id",
     "phone_code"
    ]
   },
   "Warehouses": {
    "type": "object",
    "properties": {
     "name": {
      "description": "Warehouse",
      "type": "string"
     },
     "active": {
      "description": "Active",
      "type": "boolean"
     },
     "company_id": {
      "description": "Company - The company is automatically set from your user preferences.",
      "$ref": "#/components/schemas/Ref",
      "readOnly": true
     },
     "partner_id": {
      "description": "Address",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "view_location_id": {
      "description": "View Location",
      "$ref": "#/components/schemas/Ref"
     },
     "lot_stock_id": {
      "description": "Location Stock",
      "$ref": "#/components/schemas/Ref"
     },
     "code": {
      "description": "Short Name - Short name used to identify your warehouse",
      "type": "string"
     },
     "route_ids": {
      "description": "Routes - Defaults routes through the warehouse",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "reception_steps": {
      "description": "Incoming Shipments - Default incoming route to follow",
      "type": "string",
      "enum": [
       "one_step",
       "two_steps",
       "three_steps"
      ],
      "x-labels": {
       "one_step": "Receive and Store (1 step)",
       "two_steps": "Receive then Store (2 steps)",
       "three_steps": "Receive, Quality Control, then Store (3 steps)"
      }
     },
     "delivery_steps": {
      "description": "Outgoing Shipments - Default outgoing route to follow",
      "type": "string",
      "enum": [
       "ship_only",
       "pick_ship",
       "pick_pack_ship"
      ],
      "x-labels": {
       "ship_only": "Deliver (1 step)",
       "pick_ship": "Pick then Deliver (2 steps)",
       "pick_pack_ship": "Pick, Pack, then Deliver (3 steps)"
      }
     },
     "wh_input_stock_loc_id": {
      "description": "Input Location",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "wh_qc_stock_loc_id": {
      "description": "Quality Control Location",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "wh_output_stock_loc_id": {
      "description": "Output Location",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "wh_pack_stock_loc_id": {
      "description": "Packing Location",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "mto_pull_id": {
      "description": "MTO rule",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "pick_type_id": {
      "description": "Pick Type",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "pack_type_id": {
      "description": "Pack Type",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "out_type_id": {
      "description": "Out Type",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "in_type_id": {
      "description": "In Type",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "int_type_id": {
      "description": "Internal Type",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "qc_type_id": {
      "description": "Quality Control Type",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "store_type_id": {
      "description": "Storage Type",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "xdock_type_id": {
      "description": "Cross Dock Type",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "crossdock_route_id": {
      "description": "Crossdock Route",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "reception_route_id": {
      "description": "Receipt Route",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "delivery_route_id": {
      "description": "Delivery Route",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "resupply_wh_ids": {
      "description": "Resupply From - Routes will be created automatically to resupply this warehouse from the warehouses ticked",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "resupply_route_ids": {
      "description": "Resupply Routes - Routes will be created for these resupply warehouses and you can select them on products and product categories",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "sequence": {
      "description": "Sequence - Gives the sequence of this line when displaying the warehouses.",
      "type": [
       "integer",
       "null"
      ]
     },
     "id": {
      "type": "integer",
      "readOnly": true
     },
     "display_name": {
      "description": "Display Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "create_uid": {
      "description": "Created by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "create_date": {
      "description": "Created on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "write_uid": {
      "description": "Last Updated by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "write_date": {
      "description": "Last Updated on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "buy_to_resupply": {
      "description": "Buy to Resupply - When products are bought, they can be delivered to this warehouse",
      "type": "boolean"
     },
     "buy_pull_id": {
      "description": "Buy rule",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     }
    },
    "x-default-fields": [
     "id",
     "name",
     "code",
     "partner_id",
     "lot_stock_id",
     "company_id",
     "active"
    ]
   },
   "Locations": {
    "type": "object",
    "properties": {
     "name": {
      "description": "Location Name",
      "type": "string"
     },
     "complete_name": {
      "description": "Full Location Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "active": {
      "description": "Active - By unchecking the active field, you may hide a location without deleting it.",
      "type": "boolean"
     },
     "usage": {
      "description": "Location Type - * Vendor Location: Virtual location representing the source location for products coming from your vendors\n* View: Virtual location used to create a hierarchical structures for your warehouse, aggregating its child locations ; can't directly contain products\n* Internal Location: Physical locations inside your own warehouses,\n* Customer Location: Virtual location representing the destination location for products sent to your customers\n* Inventory Loss: Virtual location serving as counterpart for inventory operations used to correct stock levels (Physical inventories)\n* Production: Virtual counterpart location for production operations: this location consumes the components and produces finished products\n* Transit Location: Counterpart location that should be used in inter-company or inter-warehouses operations",
      "type": "string",
      "enum": [
       "supplier",
       "view",
       "internal",
       "customer",
       "inventory",
       "production",
       "transit"
      ],
      "x-labels": {
       "supplier": "Vendor Location",
       "view": "View",
       "internal": "Internal Location",
       "customer": "Customer Location",
       "inventory": "Inventory Loss",
       "production": "Production",
       "transit": "Transit Location"
      }
     },
     "location_id": {
      "description": "Parent Location - The parent location that includes this location. Example : The 'Dispatch Zone' is the 'Gate 1' parent location.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "child_ids": {
      "description": "Contains",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "child_internal_location_ids": {
      "description": "Internal locations among descendants - This location (if it's internal) and all its descendants filtered by type=Internal.",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "comment": {
      "description": "Additional Information",
      "type": [
       "string",
       "null"
      ]
     },
     "posx": {
      "description": "Corridor (X) - Optional localization details, for information purpose only",
      "type": [
       "integer",
       "null"
      ]
     },
     "posy": {
      "description": "Shelves (Y) - Optional localization details, for information purpose only",
      "type": [
       "integer",
       "null"
      ]
     },
     "posz": {
      "description": "Height (Z) - Optional localization details, for information purpose only",
      "type": [
       "integer",
       "null"
      ]
     },
     "parent_path": {
      "description": "Parent Path",
      "type": [
       "string",
       "null"
      ]
     },
     "company_id": {
      "description": "Company - Let this field empty if this location is shared between companies",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "scrap_location": {
      "description": "Is a Scrap Location? - Check this box to allow using this location to put scrapped/damaged goods.",
      "type": "boolean"
     },
     "replenish_location": {
      "description": "Replenish Location - Activate this function to get all quantities to replenish at this particular location",
      "type": "boolean"
     },
     "removal_strategy_id": {
      "description": "Removal Strategy - Defines the default method used for suggesting the exact location (shelf) where to take the products from, which lot etc. for this location. This method can be enforced at the product category level, and a fallback is made on the parent locations if none is set here.\n\nFIFO: products/lots that were stocked first will be moved out first.\nLIFO: products/lots that were stocked last will be moved out first.\nCloset location: products/lots closest to the target location will be moved out first.\nFEFO: products/lots with the closest removal date will be moved out first (the availability of this method depends on the \"Expiration Dates\" setting).",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "putaway_rule_ids": {
      "description": "Putaway Rules",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "barcode": {
      "description": "Barcode",
      "type": [
       "string",
       "null"
      ]
     },
     "quant_ids": {
      "description": "Quant",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "cyclic_inventory_frequency": {
      "description": "Inventory Frequency -  When different than 0, inventory count date for products stored at this location will be automatically set at the defined frequency.",
      "type": [
       "integer",
       "null"
      ]
     },
     "last_inventory_date": {
      "description": "Last Inventory - Date of the last inventory at this location.",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "next_inventory_date": {
      "description": "Next Expected - Date for next planned inventory based on cyclic schedule.",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "warehouse_view_ids": {
      "description": "Warehouse View",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "warehouse_id": {
      "description": "Warehouse",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "storage_category_id": {
      "description": "Storage Category",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "outgoing_move_line_ids": {
      "description": "Outgoing Move Line",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "incoming_move_line_ids": {
      "description": "Incoming Move Line",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "net_weight": {
      "description": "Net Weight",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "forecast_weight": {
      "description": "Forecasted Weight",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "is_empty": {
      "description": "Is Empty",
      "type": "boolean",
      "readOnly": true
     },
     "id": {
      "type": "integer",
      "readOnly": true
     },
     "display_name": {
      "description": "Display Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "create_uid": {
      "description": "Created by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "create_date": {
      "description": "Created on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "write_uid": {
      "description": "Last Updated by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "write_date": {
      "description": "Last Updated on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "valuation_in_account_id": {
      "description": "Stock Valuation Account (Incoming) - Used for real-time inventory valuation. When set on a virtual location (non internal type), this account will be used to hold the value of products being moved from an internal location into this location, instead of the generic Stock Output Account set on the product. This has no effect for internal locations.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "valuation_out_account_id": {
      "description": "Stock Valuation Account (Outgoing) - Used for real-time inventory valuation. When set on a virtual location (non internal type), this account will be used to hold the value of products being moved out of this location and into an internal location, instead of the generic Stock Output Account set on the product. This has no effect for internal locations.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     }
    },
    "x-default-fields": [
     "id",
     "name",
     "complete_name",
     "usage",
     "location_id",
     "warehouse_id",
     "company_id",
     "active"
    ]
   },
   "OperationTypes": {
    "type": "object",
    "properties": {
     "name": {
      "description": "Operation Type",
      "type": "string"
     },
     "color": {
      "description": "Color",
      "type": [
       "integer",
       "null"
      ]
     },
     "sequence": {
      "description": "Sequence - Used to order the 'All Operations' kanban view",
      "type": [
       "integer",
       "null"
      ]
     },
     "sequence_id": {
      "description": "Reference Sequence",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "sequence_code": {
      "description": "Sequence Prefix",
      "type": "string"
     },
     "default_location_src_id": {
      "description": "Source Location - This is the default source location when this operation is manually created. However, it is possible to change it afterwards or that the routes use another one by default.",
      "$ref": "#/components/schemas/Ref"
     },
     "default_location_dest_id": {
      "description": "Destination Location - This is the default destination location when this operation is manually created. However, it is possible to change it afterwards or that the routes use another one by default.",
      "$ref": "#/components/schemas/Ref"
     },
     "code": {
      "description": "Type of Operation",
      "type": "string",
      "enum": [
       "incoming",
       "outgoing",
       "internal"
      ],
      "x-labels": {
       "incoming": "Receipt",
       "outgoing": "Delivery",
       "internal": "Internal Transfer"
      }
     },
     "return_picking_type_id": {
      "description": "Operation Type for Returns",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "show_entire_packs": {
      "description": "Move Entire Packages - If ticked, you will be able to select entire packages to move",
      "type": "boolean"
     },
     "warehouse_id": {
      "description": "Warehouse",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "active": {
      "description": "Active",
      "type": "boolean"
     },
     "use_create_lots": {
      "description": "Create New Lots/Serial Numbers - If this is checked only, it will suppose you want to create new Lots/Serial Numbers, so you can provide them in a text field. ",
      "type": "boolean"
     },
     "use_existing_lots": {
      "description": "Use Existing Lots/Serial Numbers - If this is checked, you will be able to choose the Lots/Serial Numbers. You can also decide to not put lots in this operation type.  This means it will create stock with no lot or not put a restriction on the lot taken. ",
      "type": "boolean"
     },
     "print_label": {
      "description": "Generate Shipping Labels - Check this box if you want to generate shipping label in this operation.",
      "type": "boolean"
     },
     "show_operations": {
      "description": "Show Detailed Operations - If this checkbox is ticked, the pickings lines will represent detailed stock operations. If not, the picking lines will represent an aggregate of detailed stock operations.",
      "type": "boolean"
     },
     "reservation_method": {
      "description": "Reservation Method - How products in transfers of this operation type should be reserved.",
      "type": "string",
      "enum": [
       "at_confirm",
       "manual",
       "by_date"
      ],
      "x-labels": {
       "at_confirm": "At Confirmation",
       "manual": "Manually",
       "by_date": "Before scheduled date"
      }
     },
     "reservation_days_before": {
      "description": "Days - Maximum number of days before scheduled date that products should be reserved.",
      "type": [
       "integer",
       "null"
      ]
     },
     "reservation_days_before_priority": {
      "description": "Days when starred - Maximum number of days before scheduled date that priority picking products should be reserved.",
      "type": [
       "integer",
       "null"
      ]
     },
     "auto_show_reception_report": {
      "description": "Show Reception Report at Validation - If this checkbox is ticked, Odoo will automatically show the reception report (if there are moves to allocate to) when validating.",
      "type": "boolean"
     },
     "auto_print_delivery_slip": {
      "description": "Auto Print Delivery Slip - If this checkbox is ticked, Odoo will automatically print the delivery slip of a picking when it is validated.",
      "type": "boolean"
     },
     "auto_print_return_slip": {
      "description": "Auto Print Return Slip - If this checkbox is ticked, Odoo will automatically print the return slip of a picking when it is validated.",
      "type": "boolean"
     },
     "auto_print_product_labels": {
      "description": "Auto Print Product Labels - If this checkbox is ticked, Odoo will automatically print the product labels of a picking when it is validated.",
      "type": "boolean"
     },
     "product_label_format": {
      "description": "Product Label Format to auto-print",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "dymo",
       "2x7xprice",
       "4x7xprice",
       "4x12",
       "4x12xprice",
       "zpl",
       "zplxprice",
       null
      ],
      "x-labels": {
       "dymo": "Dymo",
       "2x7xprice": "2 x 7 with price",
       "4x7xprice": "4 x 7 with price",
       "4x12": "4 x 12",
       "4x12xprice": "4 x 12 with price",
       "zpl": "ZPL Labels",
       "zplxprice": "ZPL Labels with price"
      }
     },
     "auto_print_lot_labels": {
      "description": "Auto Print Lot/SN Labels - If this checkbox is ticked, Odoo will automatically print the lot/SN labels of a picking when it is validated.",
      "type": "boolean"
     },
     "lot_label_format": {
      "description": "Lot Label Format to auto-print",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "4x12_lots",
       "4x12_units",
       "zpl_lots",
       "zpl_units",
       null
      ],
      "x-labels": {
       "4x12_lots": "4 x 12 - One per lot/SN",
       "4x12_units": "4 x 12 - One per unit",
       "zpl_lots": "ZPL Labels - One per lot/SN",
       "zpl_units": "ZPL Labels - One per unit"
      }
     },
     "auto_print_reception_report": {
      "description": "Auto Print Reception Report - If this checkbox is ticked, Odoo will automatically print the reception report of a picking when it is validated and has assigned moves.",
      "type": "boolean"
     },
     "auto_print_reception_report_labels": {
      "description": "Auto Print Reception Report Labels - If this checkbox is ticked, Odoo will automatically print the reception report labels of a picking when it is validated.",
      "type": "boolean"
     },
     "auto_print_packages": {
      "description": "Auto Print Packages - If this checkbox is ticked, Odoo will automatically print the packages and their contents of a picking when it is validated.",
      "type": "boolean"
     },
     "auto_print_package_label": {
      "description": "Auto Print Package Label - If this checkbox is ticked, Odoo will automatically print the package label when \"Put in Pack\" button is used.",
      "type": "boolean"
     },
     "package_label_to_print": {
      "description": "Package Label to Print",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "pdf",
       "zpl",
       null
      ],
      "x-labels": {
       "pdf": "PDF",
       "zpl": "ZPL"
      }
     },
     "count_picking_draft": {
      "description": "Count Picking Draft",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "count_picking_ready": {
      "description": "Count Picking Ready",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "count_picking": {
      "description": "Count Picking",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "count_picking_waiting": {
      "description": "Count Picking Waiting",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "count_picking_late": {
      "description": "Count Picking Late",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "count_picking_backorders": {
      "description": "Count Picking Backorders",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "count_move_ready": {
      "description": "Count Move Ready",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "hide_reservation_method": {
      "description": "Hide Reservation Method",
      "type": "boolean",
      "readOnly": true
     },
     "barcode": {
      "description": "Barcode",
      "type": [
       "string",
       "null"
      ]
     },
     "company_id": {
      "description": "Company",
      "$ref": "#/components/schemas/Ref"
     },
     "create_backorder": {
      "description": "Create Backorder - When validating a transfer:\n * Ask: users are asked to choose if they want to make a backorder for remaining products\n * Always: a backorder is automatically created for the remaining products\n * Never: remaining products are cancelled",
      "type": "string",
      "enum": [
       "ask",
       "always",
       "never"
      ],
      "x-labels": {
       "ask": "Ask",
       "always": "Always",
       "never": "Never"
      }
     },
     "show_picking_type": {
      "description": "Show Picking Type",
      "type": "boolean",
      "readOnly": true
     },
     "favorite_user_ids": {
      "description": "Favorite User",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "is_favorite": {
      "description": "Show Operation in Overview",
      "type": "boolean"
     },
     "kanban_dashboard_graph": {
      "description": "Kanban Dashboard Graph",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "move_type": {
      "description": "Shipping Policy - It specifies goods to be transferred partially or all at once",
      "type": "string",
      "enum": [
       "direct",
       "one"
      ],
      "x-labels": {
       "direct": "As soon as possible",
       "one": "When all products are ready"
      }
     },
     "id": {
      "type": "integer",
      "readOnly": true
     },
     "display_name": {
      "description": "Display Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "create_uid": {
      "description": "Created by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "create_date": {
      "description": "Created on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "write_uid": {
      "description": "Last Updated by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "write_date": {
      "description": "Last Updated on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     }
    },
    "x-default-fields": [
     "id",
     "name",
     "code",
     "sequence_code",
     "warehouse_id",
     "default_location_src_id",
     "default_location_dest_id",
     "company_id",
     "active"
    ]
   },
   "Transfers": {
    "type": "object",
    "properties": {
     "activity_ids": {
      "description": "Activities",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "activity_state": {
      "description": "Activity State - Status based on activities\nOverdue: Due date is already passed\nToday: Activity date is today\nPlanned: Future activities.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "overdue",
       "today",
       "planned",
       null
      ],
      "x-labels": {
       "overdue": "Overdue",
       "today": "Today",
       "planned": "Planned"
      },
      "readOnly": true
     },
     "activity_user_id": {
      "description": "Responsible User",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "activity_type_id": {
      "description": "Next Activity Type",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "activity_type_icon": {
      "description": "Activity Type Icon - Font awesome icon e.g. fa-tasks",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "activity_date_deadline": {
      "description": "Next Activity Deadline",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "my_activity_date_deadline": {
      "description": "My Activity Deadline",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "activity_summary": {
      "description": "Next Activity Summary",
      "type": [
       "string",
       "null"
      ]
     },
     "activity_exception_decoration": {
      "description": "Activity Exception Decoration - Type of the exception activity on record.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "warning",
       "danger",
       null
      ],
      "x-labels": {
       "warning": "Alert",
       "danger": "Error"
      },
      "readOnly": true
     },
     "activity_exception_icon": {
      "description": "Icon - Icon to indicate an exception activity.",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "message_is_follower": {
      "description": "Is Follower",
      "type": "boolean",
      "readOnly": true
     },
     "message_follower_ids": {
      "description": "Followers",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_partner_ids": {
      "description": "Followers (Partners)",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_ids": {
      "description": "Messages",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "has_message": {
      "description": "Has Message",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction": {
      "description": "Action Needed - If checked, new messages require your attention.",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction_counter": {
      "description": "Number of Actions - Number of messages requiring action",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_has_error": {
      "description": "Message Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "message_has_error_counter": {
      "description": "Number of errors - Number of messages with delivery error",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_attachment_count": {
      "description": "Attachment Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "website_message_ids": {
      "description": "Website Messages - Website communication history",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_has_sms_error": {
      "description": "SMS Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "name": {
      "description": "Reference",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "origin": {
      "description": "Source Document - Reference of the document",
      "type": [
       "string",
       "null"
      ]
     },
     "note": {
      "description": "Notes",
      "type": [
       "string",
       "null"
      ]
     },
     "backorder_id": {
      "description": "Back Order of - If this shipment was split, then this field links to the shipment which contains the already processed part.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "backorder_ids": {
      "description": "Back Orders",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "return_id": {
      "description": "Return of - If this picking was created as a return of another picking, this field links to the original picking.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "return_ids": {
      "description": "Returns",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "return_count": {
      "description": "# Returns",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "move_type": {
      "description": "Shipping Policy - It specifies goods to be deliver partially or all at once",
      "type": "string",
      "enum": [
       "direct",
       "one"
      ],
      "x-labels": {
       "direct": "As soon as possible",
       "one": "When all products are ready"
      }
     },
     "state": {
      "description": "Status -  * Draft: The transfer is not confirmed yet. Reservation doesn't apply.\n * Waiting another operation: This transfer is waiting for another operation before being ready.\n * Waiting: The transfer is waiting for the availability of some products.\n(a) The shipping policy is \"As soon as possible\": no product could be reserved.\n(b) The shipping policy is \"When all products are ready\": not all the products could be reserved.\n * Ready: The transfer is ready to be processed.\n(a) The shipping policy is \"As soon as possible\": at least one product has been reserved.\n(b) The shipping policy is \"When all products are ready\": all product have been reserved.\n * Done: The transfer has been processed.\n * Cancelled: The transfer has been cancelled.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "draft",
       "waiting",
       "confirmed",
       "assigned",
       "done",
       "cancel",
       null
      ],
      "x-labels": {
       "draft": "Draft",
       "waiting": "Waiting Another Operation",
       "confirmed": "Waiting",
       "assigned": "Ready",
       "done": "Done",
       "cancel": "Cancelled"
      },
      "readOnly": true
     },
     "group_id": {
      "description": "Procurement Group",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "priority": {
      "description": "Priority - Products will be reserved first for the transfers with the highest priorities.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "0",
       "1",
       null
      ],
      "x-labels": {
       "0": "Normal",
       "1": "Urgent"
      }
     },
     "scheduled_date": {
      "description": "Scheduled Date - Scheduled time for the first part of the shipment to be processed. Setting manually a value here would set it as expected date for all the stock moves.",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time"
     },
     "date_deadline": {
      "description": "Deadline - In case of outgoing flow, validate the transfer before this date to allow to deliver at promised date to the customer.\n        In case of incoming flow, validate the transfer before this date in order to have these products in stock at the date promised by the supplier",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "has_deadline_issue": {
      "description": "Is late - Is late or will be late depending on the deadline and scheduled date",
      "type": "boolean",
      "readOnly": true
     },
     "date": {
      "description": "Creation Date - Creation Date, usually the time of the order",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time"
     },
     "date_done": {
      "description": "Date of Transfer - Date at which the transfer has been processed or cancelled.",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "delay_alert_date": {
      "description": "Delay Alert Date",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "json_popover": {
      "description": "JSON data for the popover widget",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "location_id": {
      "description": "Source Location",
      "$ref": "#/components/schemas/Ref"
     },
     "location_dest_id": {
      "description": "Destination Location",
      "$ref": "#/components/schemas/Ref"
     },
     "move_ids": {
      "description": "Stock Moves",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "move_ids_without_package": {
      "description": "Stock move",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "has_scrap_move": {
      "description": "Has Scrap Moves",
      "type": "boolean",
      "readOnly": true
     },
     "picking_type_id": {
      "description": "Operation Type",
      "$ref": "#/components/schemas/Ref"
     },
     "warehouse_address_id": {
      "description": "Address",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "picking_type_code": {
      "description": "Type of Operation",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "incoming",
       "outgoing",
       "internal",
       null
      ],
      "x-labels": {
       "incoming": "Receipt",
       "outgoing": "Delivery",
       "internal": "Internal Transfer"
      },
      "readOnly": true
     },
     "picking_type_entire_packs": {
      "description": "Move Entire Packages - If ticked, you will be able to select entire packages to move",
      "type": "boolean",
      "readOnly": true
     },
     "use_create_lots": {
      "description": "Create New Lots/Serial Numbers - If this is checked only, it will suppose you want to create new Lots/Serial Numbers, so you can provide them in a text field. ",
      "type": "boolean",
      "readOnly": true
     },
     "use_existing_lots": {
      "description": "Use Existing Lots/Serial Numbers - If this is checked, you will be able to choose the Lots/Serial Numbers. You can also decide to not put lots in this operation type.  This means it will create stock with no lot or not put a restriction on the lot taken. ",
      "type": "boolean",
      "readOnly": true
     },
     "partner_id": {
      "description": "Contact",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "company_id": {
      "description": "Company",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "user_id": {
      "description": "Responsible",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "move_line_ids": {
      "description": "Operations",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "move_line_ids_without_package": {
      "description": "Operations without package",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "move_line_exist": {
      "description": "Has Pack Operations - Check the existence of pack operation on the picking",
      "type": "boolean",
      "readOnly": true
     },
     "has_packages": {
      "description": "Has Packages - Check the existence of destination packages on move lines",
      "type": "boolean",
      "readOnly": true
     },
     "show_check_availability": {
      "description": "Show Check Availability - Technical field used to compute whether the button \"Check Availability\" should be displayed.",
      "type": "boolean",
      "readOnly": true
     },
     "show_allocation": {
      "description": "Show Allocation - Technical Field used to decide whether the button \"Allocation\" should be displayed.",
      "type": "boolean",
      "readOnly": true
     },
     "owner_id": {
      "description": "Assign Owner - When validating the transfer, the products will be assigned to this owner.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "printed": {
      "description": "Printed",
      "type": "boolean"
     },
     "is_signed": {
      "description": "Is Signed",
      "type": "boolean",
      "readOnly": true
     },
     "is_locked": {
      "description": "Is Locked - When the picking is not done this allows changing the initial demand. When the picking is done this allows changing the done quantities.",
      "type": "boolean"
     },
     "weight_bulk": {
      "description": "Bulk Weight - Total weight of products which are not in a package.",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "shipping_weight": {
      "description": "Weight for Shipping - Total weight of packages and products not in a package. Packages with no shipping weight specified will default to their products' total weight. This is the weight used to compute the cost of the shipping.",
      "type": [
       "number",
       "null"
      ]
     },
     "shipping_volume": {
      "description": "Volume for Shipping",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "product_id": {
      "description": "Product",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "lot_id": {
      "description": "Lot/Serial Number",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "show_operations": {
      "description": "Show Detailed Operations - If this checkbox is ticked, the pickings lines will represent detailed stock operations. If not, the picking lines will represent an aggregate of detailed stock operations.",
      "type": "boolean",
      "readOnly": true
     },
     "show_lots_text": {
      "description": "Show Lots Text",
      "type": "boolean",
      "readOnly": true
     },
     "has_tracking": {
      "description": "Has Tracking",
      "type": "boolean",
      "readOnly": true
     },
     "package_level_ids": {
      "description": "Package Level",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "package_level_ids_details": {
      "description": "Package Level Ids Details",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "products_availability": {
      "description": "Product Availability - Latest product availability status of the picking",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "products_availability_state": {
      "description": "Products Availability State",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "available",
       "expected",
       "late",
       null
      ],
      "x-labels": {
       "available": "Available",
       "expected": "Expected",
       "late": "Late"
      },
      "readOnly": true
     },
     "show_next_pickings": {
      "description": "Show Next Pickings",
      "type": "boolean",
      "readOnly": true
     },
     "search_date_category": {
      "description": "Date Category",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "before",
       "yesterday",
       "today",
       "day_1",
       "day_2",
       "after",
       null
      ],
      "x-labels": {
       "before": "Before",
       "yesterday": "Yesterday",
       "today": "Today",
       "day_1": "Tomorrow",
       "day_2": "The day after tomorrow",
       "after": "After"
      },
      "readOnly": true
     },
     "id": {
      "type": "integer",
      "readOnly": true
     },
     "display_name": {
      "description": "Display Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "create_uid": {
      "description": "Created by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "create_date": {
      "description": "Created on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "write_uid": {
      "description": "Last Updated by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "write_date": {
      "description": "Last Updated on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "country_code": {
      "description": "Country Code - The ISO country code in two chars. \nYou can use this field for quick search.",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "purchase_id": {
      "description": "Purchase Orders",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "days_to_arrive": {
      "description": "Days To Arrive",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "delay_pass": {
      "description": "Delay Pass",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "sale_id": {
      "description": "Sales Order",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     }
    },
    "x-default-fields": [
     "id",
     "name",
     "state",
     "picking_type_id",
     "picking_type_code",
     "partner_id",
     "location_id",
     "location_dest_id",
     "scheduled_date",
     "date_deadline",
     "date_done",
     "origin",
     "backorder_id",
     "user_id",
     "company_id"
    ]
   },
   "TransfersWrite": {
    "type": "object",
    "properties": {
     "picking_type_id": {
      "description": "Operation Type (id of stock.picking.type)",
      "type": "integer"
     },
     "partner_id": {
      "description": "Contact (id of res.partner)",
      "type": [
       "integer",
       "null"
      ]
     },
     "location_id": {
      "description": "Source Location (id of stock.location)",
      "type": "integer"
     },
     "location_dest_id": {
      "description": "Destination Location (id of stock.location)",
      "type": "integer"
     },
     "scheduled_date": {
      "description": "Scheduled Date - Scheduled time for the first part of the shipment to be processed. Setting manually a value here would set it as expected date for all the stock moves.",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time"
     },
     "origin": {
      "description": "Source Document - Reference of the document",
      "type": [
       "string",
       "null"
      ]
     },
     "user_id": {
      "description": "Responsible (id of res.users)",
      "type": [
       "integer",
       "null"
      ]
     },
     "note": {
      "description": "Notes",
      "type": [
       "string",
       "null"
      ]
     },
     "move_ids": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "id": {
         "type": "integer",
         "description": "Existing line to change (update only)"
        },
        "_delete": {
         "type": "boolean",
         "description": "With id: remove the line"
        },
        "product_id": {
         "description": "Product (id of product.product)",
         "type": "integer"
        },
        "product_uom_qty": {
         "description": "Demand - This is the quantity of product that is planned to be moved.Lowering this quantity does not generate a backorder.Changing this quantity on assigned moves affects the product reservation, and should be done with care.",
         "type": "number"
        },
        "product_uom": {
         "description": "UoM (id of uom.uom)",
         "type": "integer"
        },
        "quantity": {
         "description": "Quantity",
         "type": [
          "number",
          "null"
         ]
        },
        "location_id": {
         "description": "Source Location - The operation takes and suggests products from this location. (id of stock.location)",
         "type": "integer"
        },
        "location_dest_id": {
         "description": "Intermediate Location - The operations brings product to this location (id of stock.location)",
         "type": "integer"
        },
        "description_picking": {
         "description": "Description of Picking",
         "type": [
          "string",
          "null"
         ]
        }
       },
       "additionalProperties": false
      },
      "description": "Stock Moves"
     }
    },
    "additionalProperties": false
   },
   "TransfersCreate": {
    "allOf": [
     {
      "$ref": "#/components/schemas/TransfersWrite"
     },
     {
      "required": [
       "location_id",
       "location_dest_id"
      ]
     }
    ]
   },
   "StockMoves": {
    "type": "object",
    "properties": {
     "name": {
      "description": "Description",
      "type": "string"
     },
     "sequence": {
      "description": "Sequence",
      "type": [
       "integer",
       "null"
      ]
     },
     "priority": {
      "description": "Priority",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "0",
       "1",
       null
      ],
      "x-labels": {
       "0": "Normal",
       "1": "Urgent"
      },
      "readOnly": true
     },
     "date": {
      "description": "Date Scheduled - Scheduled date until move is done, then date of actual move processing",
      "type": "string",
      "format": "date-time"
     },
     "date_deadline": {
      "description": "Deadline - In case of outgoing flow, validate the transfer before this date to allow to deliver at promised date to the customer.\n        In case of incoming flow, validate the transfer before this date in order to have these products in stock at the date promised by the supplier",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "company_id": {
      "description": "Company",
      "$ref": "#/components/schemas/Ref"
     },
     "product_id": {
      "description": "Product",
      "$ref": "#/components/schemas/Ref"
     },
     "never_product_template_attribute_value_ids": {
      "description": "Never attribute Values",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "description_picking": {
      "description": "Description of Picking",
      "type": [
       "string",
       "null"
      ]
     },
     "product_qty": {
      "description": "Real Quantity - Quantity in the default UoM of the product",
      "type": [
       "number",
       "null"
      ]
     },
     "product_uom_qty": {
      "description": "Demand - This is the quantity of product that is planned to be moved.Lowering this quantity does not generate a backorder.Changing this quantity on assigned moves affects the product reservation, and should be done with care.",
      "type": "number"
     },
     "product_uom": {
      "description": "UoM",
      "$ref": "#/components/schemas/Ref"
     },
     "product_uom_category_id": {
      "description": "Category - Conversion between Units of Measure can only occur if they belong to the same category. The conversion will be made based on the ratios.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "product_tmpl_id": {
      "description": "Product Template",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "location_id": {
      "description": "Source Location - The operation takes and suggests products from this location.",
      "$ref": "#/components/schemas/Ref"
     },
     "location_dest_id": {
      "description": "Intermediate Location - The operations brings product to this location",
      "$ref": "#/components/schemas/Ref"
     },
     "location_final_id": {
      "description": "Final Location - The operation brings the products to the intermediate location.But this operation is part of a chain of operations targeting the final location.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "location_usage": {
      "description": "Source Location Type - * Vendor Location: Virtual location representing the source location for products coming from your vendors\n* View: Virtual location used to create a hierarchical structures for your warehouse, aggregating its child locations ; can't directly contain products\n* Internal Location: Physical locations inside your own warehouses,\n* Customer Location: Virtual location representing the destination location for products sent to your customers\n* Inventory Loss: Virtual location serving as counterpart for inventory operations used to correct stock levels (Physical inventories)\n* Production: Virtual counterpart location for production operations: this location consumes the components and produces finished products\n* Transit Location: Counterpart location that should be used in inter-company or inter-warehouses operations",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "supplier",
       "view",
       "internal",
       "customer",
       "inventory",
       "production",
       "transit",
       null
      ],
      "x-labels": {
       "supplier": "Vendor Location",
       "view": "View",
       "internal": "Internal Location",
       "customer": "Customer Location",
       "inventory": "Inventory Loss",
       "production": "Production",
       "transit": "Transit Location"
      },
      "readOnly": true
     },
     "location_dest_usage": {
      "description": "Destination Location Type - * Vendor Location: Virtual location representing the source location for products coming from your vendors\n* View: Virtual location used to create a hierarchical structures for your warehouse, aggregating its child locations ; can't directly contain products\n* Internal Location: Physical locations inside your own warehouses,\n* Customer Location: Virtual location representing the destination location for products sent to your customers\n* Inventory Loss: Virtual location serving as counterpart for inventory operations used to correct stock levels (Physical inventories)\n* Production: Virtual counterpart location for production operations: this location consumes the components and produces finished products\n* Transit Location: Counterpart location that should be used in inter-company or inter-warehouses operations",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "supplier",
       "view",
       "internal",
       "customer",
       "inventory",
       "production",
       "transit",
       null
      ],
      "x-labels": {
       "supplier": "Vendor Location",
       "view": "View",
       "internal": "Internal Location",
       "customer": "Customer Location",
       "inventory": "Inventory Loss",
       "production": "Production",
       "transit": "Transit Location"
      },
      "readOnly": true
     },
     "partner_id": {
      "description": "Destination Address  - Optional address where goods are to be delivered, specifically used for allotment",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "move_dest_ids": {
      "description": "Destination Moves - Optional: next stock move when chaining them",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "move_orig_ids": {
      "description": "Original Move - Optional: previous stock move when chaining them",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "picking_id": {
      "description": "Transfer",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "state": {
      "description": "Status - * New: The stock move is created but not confirmed.\n* Waiting Another Move: A linked stock move should be done before this one.\n* Waiting Availability: The stock move is confirmed but the product can't be reserved.\n* Available: The product of the stock move is reserved.\n* Done: The product has been transferred and the transfer has been confirmed.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "draft",
       "waiting",
       "confirmed",
       "partially_available",
       "assigned",
       "done",
       "cancel",
       null
      ],
      "x-labels": {
       "draft": "New",
       "waiting": "Waiting Another Move",
       "confirmed": "Waiting Availability",
       "partially_available": "Partially Available",
       "assigned": "Available",
       "done": "Done",
       "cancel": "Cancelled"
      },
      "readOnly": true
     },
     "picked": {
      "description": "Picked - This checkbox is just indicative, it doesn't validate or generate any product moves.",
      "type": "boolean"
     },
     "price_unit": {
      "description": "Unit Price",
      "type": [
       "number",
       "null"
      ]
     },
     "origin": {
      "description": "Source Document",
      "type": [
       "string",
       "null"
      ]
     },
     "procure_method": {
      "description": "Supply Method - By default, the system will take from the stock in the source location and passively wait for availability. The other possibility allows you to directly create a procurement on the source location (and thus ignore its current stock) to gather products. If we want to chain moves and have this one to wait for the previous, this second option should be chosen.",
      "type": "string",
      "enum": [
       "make_to_stock",
       "make_to_order"
      ],
      "x-labels": {
       "make_to_stock": "Default: Take From Stock",
       "make_to_order": "Advanced: Apply Procurement Rules"
      }
     },
     "scrapped": {
      "description": "Scrapped - Check this box to allow using this location to put scrapped/damaged goods.",
      "type": "boolean",
      "readOnly": true
     },
     "scrap_id": {
      "description": "Scrap operation",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "group_id": {
      "description": "Procurement Group",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "rule_id": {
      "description": "Stock Rule - The stock rule that created this stock move",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "propagate_cancel": {
      "description": "Propagate cancel and split - If checked, when this move is cancelled, cancel the linked move too",
      "type": "boolean"
     },
     "delay_alert_date": {
      "description": "Delay Alert Date - Process at this date to be on time",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "picking_type_id": {
      "description": "Operation Type",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "is_inventory": {
      "description": "Inventory",
      "type": "boolean"
     },
     "move_line_ids": {
      "description": "Move Line",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "origin_returned_move_id": {
      "description": "Origin return move - Move that created the return move",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "returned_move_ids": {
      "description": "All returned moves - Optional: all returned moves created from this move",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "availability": {
      "description": "Forecasted Quantity - Quantity in stock that can still be reserved for this move",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "restrict_partner_id": {
      "description": "Owner ",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "route_ids": {
      "description": "Destination route - Preferred route",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "warehouse_id": {
      "description": "Warehouse - the warehouse to consider for the route selection on the next procurement (if any).",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "has_tracking": {
      "description": "Product with Tracking - Ensure the traceability of a storable product in your warehouse.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "serial",
       "lot",
       "none",
       null
      ],
      "x-labels": {
       "serial": "By Unique Serial Number",
       "lot": "By Lots",
       "none": "By Quantity"
      },
      "readOnly": true
     },
     "quantity": {
      "description": "Quantity",
      "type": [
       "number",
       "null"
      ]
     },
     "show_operations": {
      "description": "Show Detailed Operations - If this checkbox is ticked, the pickings lines will represent detailed stock operations. If not, the picking lines will represent an aggregate of detailed stock operations.",
      "type": "boolean",
      "readOnly": true
     },
     "picking_code": {
      "description": "Type of Operation",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "incoming",
       "outgoing",
       "internal",
       null
      ],
      "x-labels": {
       "incoming": "Receipt",
       "outgoing": "Delivery",
       "internal": "Internal Transfer"
      },
      "readOnly": true
     },
     "show_details_visible": {
      "description": "Details Visible",
      "type": "boolean",
      "readOnly": true
     },
     "is_storable": {
      "description": "Track Inventory - A storable product is a product for which you manage stock.",
      "type": "boolean",
      "readOnly": true
     },
     "additional": {
      "description": "Whether the move was added after the picking's confirmation",
      "type": "boolean"
     },
     "is_locked": {
      "description": "Is Locked",
      "type": "boolean",
      "readOnly": true
     },
     "is_initial_demand_editable": {
      "description": "Is initial demand editable",
      "type": "boolean",
      "readOnly": true
     },
     "is_quantity_done_editable": {
      "description": "Is quantity done editable",
      "type": "boolean",
      "readOnly": true
     },
     "reference": {
      "description": "Reference",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "move_lines_count": {
      "description": "Move Lines Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "package_level_id": {
      "description": "Package Level",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "picking_type_entire_packs": {
      "description": "Move Entire Packages - If ticked, you will be able to select entire packages to move",
      "type": "boolean",
      "readOnly": true
     },
     "display_assign_serial": {
      "description": "Display Assign Serial",
      "type": "boolean",
      "readOnly": true
     },
     "display_import_lot": {
      "description": "Display Import Lot",
      "type": "boolean",
      "readOnly": true
     },
     "next_serial": {
      "description": "First SN/Lot",
      "type": [
       "string",
       "null"
      ]
     },
     "next_serial_count": {
      "description": "Number of SN/Lots",
      "type": [
       "integer",
       "null"
      ]
     },
     "orderpoint_id": {
      "description": "Original Reordering Rule",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "forecast_availability": {
      "description": "Forecast Availability",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "forecast_expected_date": {
      "description": "Forecasted Expected date",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "lot_ids": {
      "description": "Serial Numbers",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "reservation_date": {
      "description": "Date to Reserve - Computes when a move should be reserved",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "product_packaging_id": {
      "description": "Packaging",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "product_packaging_qty": {
      "description": "Reserved Packaging Quantity",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "product_packaging_quantity": {
      "description": "Done Packaging Quantity",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "show_quant": {
      "description": "Show Quant",
      "type": "boolean",
      "readOnly": true
     },
     "show_lots_m2o": {
      "description": "Show lot_id",
      "type": "boolean",
      "readOnly": true
     },
     "show_lots_text": {
      "description": "Show lot_name",
      "type": "boolean",
      "readOnly": true
     },
     "id": {
      "type": "integer",
      "readOnly": true
     },
     "display_name": {
      "description": "Display Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "create_uid": {
      "description": "Created by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "create_date": {
      "description": "Created on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "write_uid": {
      "description": "Last Updated by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "write_date": {
      "description": "Last Updated on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "to_refund": {
      "description": "Update quantities on SO/PO - Trigger a decrease of the delivered/received quantity in the associated Sale Order/Purchase Order",
      "type": "boolean"
     },
     "account_move_ids": {
      "description": "Account Move",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "stock_valuation_layer_ids": {
      "description": "Stock Valuation Layer",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "analytic_account_line_ids": {
      "description": "Analytic Account Line",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "purchase_line_id": {
      "description": "Purchase Order Line",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "created_purchase_line_ids": {
      "description": "Created Purchase Order Lines",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "sale_line_id": {
      "description": "Sale Line",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     }
    },
    "x-default-fields": [
     "id",
     "reference",
     "picking_id",
     "product_id",
     "product_uom_qty",
     "quantity",
     "product_uom",
     "state",
     "location_id",
     "location_dest_id",
     "date",
     "origin",
     "company_id"
    ]
   },
   "StockLevels": {
    "type": "object",
    "properties": {
     "product_id": {
      "description": "Product",
      "$ref": "#/components/schemas/Ref"
     },
     "product_tmpl_id": {
      "description": "Product Template",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "product_uom_id": {
      "description": "Unit of Measure - Default unit of measure used for all stock operations.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "is_favorite": {
      "description": "Favorite",
      "type": "boolean",
      "readOnly": true
     },
     "company_id": {
      "description": "Company - Let this field empty if this location is shared between companies",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "location_id": {
      "description": "Location",
      "$ref": "#/components/schemas/Ref"
     },
     "warehouse_id": {
      "description": "Warehouse",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "storage_category_id": {
      "description": "Storage Category",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "cyclic_inventory_frequency": {
      "description": "Inventory Frequency -  When different than 0, inventory count date for products stored at this location will be automatically set at the defined frequency.",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "lot_id": {
      "description": "Lot/Serial Number",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "sn_duplicated": {
      "description": "Duplicated Serial Number - If the same SN is in another Quant",
      "type": "boolean",
      "readOnly": true
     },
     "package_id": {
      "description": "Package - The package containing this quant",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "owner_id": {
      "description": "Owner - This is the owner of the quant",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "quantity": {
      "description": "Quantity - Quantity of products in this quant, in the default unit of measure of the product",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "reserved_quantity": {
      "description": "Reserved Quantity - Quantity of reserved products in this quant, in the default unit of measure of the product",
      "type": "number",
      "readOnly": true
     },
     "available_quantity": {
      "description": "Available Quantity - On hand quantity which hasn't been reserved on a transfer, in the default unit of measure of the product",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "in_date": {
      "description": "Incoming Date",
      "type": "string",
      "format": "date-time",
      "readOnly": true
     },
     "tracking": {
      "description": "Tracking - Ensure the traceability of a storable product in your warehouse.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "serial",
       "lot",
       "none",
       null
      ],
      "x-labels": {
       "serial": "By Unique Serial Number",
       "lot": "By Lots",
       "none": "By Quantity"
      },
      "readOnly": true
     },
     "on_hand": {
      "description": "On Hand",
      "type": "boolean"
     },
     "product_categ_id": {
      "description": "Product Category",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "inventory_quantity": {
      "description": "Counted Quantity - The product's counted quantity.",
      "type": [
       "number",
       "null"
      ]
     },
     "inventory_quantity_auto_apply": {
      "description": "Inventoried Quantity",
      "type": [
       "number",
       "null"
      ]
     },
     "inventory_diff_quantity": {
      "description": "Difference - Indicates the gap between the product's theoretical quantity and its counted quantity.",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "inventory_date": {
      "description": "Scheduled Date - Next date the On Hand Quantity should be counted.",
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "last_count_date": {
      "description": "Last Count Date - Last time the Quantity was Updated",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "inventory_quantity_set": {
      "description": "Inventory Quantity Set",
      "type": "boolean"
     },
     "is_outdated": {
      "description": "Quantity has been moved since last count",
      "type": "boolean",
      "readOnly": true
     },
     "user_id": {
      "description": "Assigned To - User assigned to do product count.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "id": {
      "type": "integer",
      "readOnly": true
     },
     "display_name": {
      "description": "Display Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "create_uid": {
      "description": "Created by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "create_date": {
      "description": "Created on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "write_uid": {
      "description": "Last Updated by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "write_date": {
      "description": "Last Updated on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "value": {
      "description": "Value",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "currency_id": {
      "description": "Currency",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "accounting_date": {
      "description": "Accounting Date - Date at which the accounting entries will be created in case of automated inventory valuation. If empty, the inventory date will be used.",
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "cost_method": {
      "description": "Costing Method - Standard Price: The products are valued at their standard cost defined on the product.\n        Average Cost (AVCO): The products are valued at weighted average cost.\n        First In First Out (FIFO): The products are valued supposing those that enter the company first will also leave it first.\n        ",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "standard",
       "fifo",
       "average",
       null
      ],
      "x-labels": {
       "standard": "Standard Price",
       "fifo": "First In First Out (FIFO)",
       "average": "Average Cost (AVCO)"
      },
      "readOnly": true
     }
    },
    "x-default-fields": [
     "id",
     "product_id",
     "location_id",
     "lot_id",
     "package_id",
     "quantity",
     "reserved_quantity",
     "available_quantity",
     "product_uom_id",
     "company_id"
    ]
   },
   "Lots": {
    "type": "object",
    "properties": {
     "activity_ids": {
      "description": "Activities",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "activity_state": {
      "description": "Activity State - Status based on activities\nOverdue: Due date is already passed\nToday: Activity date is today\nPlanned: Future activities.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "overdue",
       "today",
       "planned",
       null
      ],
      "x-labels": {
       "overdue": "Overdue",
       "today": "Today",
       "planned": "Planned"
      },
      "readOnly": true
     },
     "activity_user_id": {
      "description": "Responsible User",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "activity_type_id": {
      "description": "Next Activity Type",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "activity_type_icon": {
      "description": "Activity Type Icon - Font awesome icon e.g. fa-tasks",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "activity_date_deadline": {
      "description": "Next Activity Deadline",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "my_activity_date_deadline": {
      "description": "My Activity Deadline",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "activity_summary": {
      "description": "Next Activity Summary",
      "type": [
       "string",
       "null"
      ]
     },
     "activity_exception_decoration": {
      "description": "Activity Exception Decoration - Type of the exception activity on record.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "warning",
       "danger",
       null
      ],
      "x-labels": {
       "warning": "Alert",
       "danger": "Error"
      },
      "readOnly": true
     },
     "activity_exception_icon": {
      "description": "Icon - Icon to indicate an exception activity.",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "message_is_follower": {
      "description": "Is Follower",
      "type": "boolean",
      "readOnly": true
     },
     "message_follower_ids": {
      "description": "Followers",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_partner_ids": {
      "description": "Followers (Partners)",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_ids": {
      "description": "Messages",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "has_message": {
      "description": "Has Message",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction": {
      "description": "Action Needed - If checked, new messages require your attention.",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction_counter": {
      "description": "Number of Actions - Number of messages requiring action",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_has_error": {
      "description": "Message Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "message_has_error_counter": {
      "description": "Number of errors - Number of messages with delivery error",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_attachment_count": {
      "description": "Attachment Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "website_message_ids": {
      "description": "Website Messages - Website communication history",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_has_sms_error": {
      "description": "SMS Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "name": {
      "description": "Lot/Serial Number - Unique Lot/Serial Number",
      "type": "string"
     },
     "ref": {
      "description": "Internal Reference - Internal reference number in case it differs from the manufacturer's lot/serial number",
      "type": [
       "string",
       "null"
      ]
     },
     "product_id": {
      "description": "Product",
      "$ref": "#/components/schemas/Ref"
     },
     "product_uom_id": {
      "description": "Unit of Measure - Default unit of measure used for all stock operations.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "quant_ids": {
      "description": "Quants",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "product_qty": {
      "description": "On Hand Quantity",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "note": {
      "description": "Description",
      "type": [
       "string",
       "null"
      ]
     },
     "display_complete": {
      "description": "Display Complete",
      "type": "boolean",
      "readOnly": true
     },
     "company_id": {
      "description": "Company",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "delivery_ids": {
      "description": "Transfers",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "delivery_count": {
      "description": "Delivery order count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "last_delivery_partner_id": {
      "description": "Last Delivery Partner",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "location_id": {
      "description": "Location",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "id": {
      "type": "integer",
      "readOnly": true
     },
     "display_name": {
      "description": "Display Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "create_uid": {
      "description": "Created by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "create_date": {
      "description": "Created on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "write_uid": {
      "description": "Last Updated by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "write_date": {
      "description": "Last Updated on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "value_svl": {
      "description": "Value Svl",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "quantity_svl": {
      "description": "Quantity Svl",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "avg_cost": {
      "description": "Average Cost",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "total_value": {
      "description": "Total Value",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "company_currency_id": {
      "description": "Valuation Currency",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "stock_valuation_layer_ids": {
      "description": "Stock Valuation Layer",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "standard_price": {
      "description": "Cost - Value of the lot (automatically computed in AVCO).\n        Used to value the product when the purchase cost is not known (e.g. inventory adjustment).\n        Used to compute margins on sale orders.",
      "type": [
       "number",
       "null"
      ]
     },
     "purchase_order_ids": {
      "description": "Purchase Orders",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "purchase_order_count": {
      "description": "Purchase order count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "sale_order_ids": {
      "description": "Sales Orders",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "sale_order_count": {
      "description": "Sale order count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     }
    },
    "x-default-fields": [
     "id",
     "name",
     "product_id",
     "ref",
     "product_qty",
     "company_id"
    ]
   },
   "PurchaseOrders": {
    "type": "object",
    "properties": {
     "activity_ids": {
      "description": "Activities",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "activity_state": {
      "description": "Activity State - Status based on activities\nOverdue: Due date is already passed\nToday: Activity date is today\nPlanned: Future activities.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "overdue",
       "today",
       "planned",
       null
      ],
      "x-labels": {
       "overdue": "Overdue",
       "today": "Today",
       "planned": "Planned"
      },
      "readOnly": true
     },
     "activity_user_id": {
      "description": "Responsible User",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "activity_type_id": {
      "description": "Next Activity Type",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "activity_type_icon": {
      "description": "Activity Type Icon - Font awesome icon e.g. fa-tasks",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "activity_date_deadline": {
      "description": "Next Activity Deadline",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "my_activity_date_deadline": {
      "description": "My Activity Deadline",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "activity_summary": {
      "description": "Next Activity Summary",
      "type": [
       "string",
       "null"
      ]
     },
     "activity_exception_decoration": {
      "description": "Activity Exception Decoration - Type of the exception activity on record.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "warning",
       "danger",
       null
      ],
      "x-labels": {
       "warning": "Alert",
       "danger": "Error"
      },
      "readOnly": true
     },
     "activity_exception_icon": {
      "description": "Icon - Icon to indicate an exception activity.",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "message_is_follower": {
      "description": "Is Follower",
      "type": "boolean",
      "readOnly": true
     },
     "message_follower_ids": {
      "description": "Followers",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_partner_ids": {
      "description": "Followers (Partners)",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_ids": {
      "description": "Messages",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "has_message": {
      "description": "Has Message",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction": {
      "description": "Action Needed - If checked, new messages require your attention.",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction_counter": {
      "description": "Number of Actions - Number of messages requiring action",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_has_error": {
      "description": "Message Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "message_has_error_counter": {
      "description": "Number of errors - Number of messages with delivery error",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_attachment_count": {
      "description": "Attachment Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "website_message_ids": {
      "description": "Website Messages - Website communication history",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_has_sms_error": {
      "description": "SMS Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "access_warning": {
      "description": "Access warning",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "name": {
      "description": "Order Reference",
      "type": "string"
     },
     "priority": {
      "description": "Priority",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "0",
       "1",
       null
      ],
      "x-labels": {
       "0": "Normal",
       "1": "Urgent"
      }
     },
     "origin": {
      "description": "Source Document - Reference of the document that generated this purchase order request (e.g. a sales order)",
      "type": [
       "string",
       "null"
      ]
     },
     "partner_ref": {
      "description": "Vendor Reference - Reference of the sales order or bid sent by the vendor. It's used to do the matching when you receive the products as this reference is usually written on the delivery order sent by your vendor.",
      "type": [
       "string",
       "null"
      ]
     },
     "date_order": {
      "description": "Order Deadline - Depicts the date within which the Quotation should be confirmed and converted into a purchase order.",
      "type": "string",
      "format": "date-time"
     },
     "date_approve": {
      "description": "Confirmation Date",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "partner_id": {
      "description": "Vendor - You can find a vendor by its Name, TIN, Email or Internal Reference.",
      "$ref": "#/components/schemas/Ref"
     },
     "dest_address_id": {
      "description": "Dropship Address - Put an address if you want to deliver directly from the vendor to the customer. Otherwise, keep empty to deliver to your own company.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "currency_id": {
      "description": "Currency",
      "$ref": "#/components/schemas/Ref"
     },
     "state": {
      "description": "Status",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "draft",
       "sent",
       "to approve",
       "purchase",
       "done",
       "cancel",
       null
      ],
      "x-labels": {
       "draft": "RFQ",
       "sent": "RFQ Sent",
       "to approve": "To Approve",
       "purchase": "Purchase Order",
       "done": "Locked",
       "cancel": "Cancelled"
      },
      "readOnly": true
     },
     "order_line": {
      "description": "Order Lines",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "notes": {
      "description": "Terms and Conditions",
      "type": [
       "string",
       "null"
      ]
     },
     "partner_bill_count": {
      "description": "# Vendor Bills",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "invoice_count": {
      "description": "Bill Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "invoice_ids": {
      "description": "Bills",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "invoice_status": {
      "description": "Billing Status",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "no",
       "to invoice",
       "invoiced",
       null
      ],
      "x-labels": {
       "no": "Nothing to Bill",
       "to invoice": "Waiting Bills",
       "invoiced": "Fully Billed"
      },
      "readOnly": true
     },
     "date_planned": {
      "description": "Expected Arrival - Delivery date promised by vendor. This date is used to determine expected arrival of products.",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time"
     },
     "date_calendar_start": {
      "description": "Date Calendar Start",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "amount_untaxed": {
      "description": "Untaxed Amount",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_tax": {
      "description": "Taxes",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_total": {
      "description": "Total",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_total_cc": {
      "description": "Company Total",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "fiscal_position_id": {
      "description": "Fiscal Position",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "tax_country_id": {
      "description": "Tax Country - Technical field to filter the available taxes depending on the fiscal country and fiscal position.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "tax_calculation_rounding_method": {
      "description": "Tax calculation rounding method",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "round_per_line",
       "round_globally",
       null
      ],
      "x-labels": {
       "round_per_line": "Round per Line",
       "round_globally": "Round Globally"
      },
      "readOnly": true
     },
     "payment_term_id": {
      "description": "Payment Terms",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "incoterm_id": {
      "description": "Incoterm - International Commercial Terms are a series of predefined commercial terms used in international transactions.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "product_id": {
      "description": "Product",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "user_id": {
      "description": "Buyer",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "company_id": {
      "description": "Company",
      "$ref": "#/components/schemas/Ref"
     },
     "company_currency_id": {
      "description": "Company Currency",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "country_code": {
      "description": "Country code - The ISO country code in two chars. \nYou can use this field for quick search.",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "company_price_include": {
      "description": "Default Sales Price Include - Default on whether the sales price used on the product and invoices with this Company includes its taxes.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "tax_included",
       "tax_excluded",
       null
      ],
      "x-labels": {
       "tax_included": "Tax Included",
       "tax_excluded": "Tax Excluded"
      },
      "readOnly": true
     },
     "currency_rate": {
      "description": "Currency Rate",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "mail_reminder_confirmed": {
      "description": "Reminder Confirmed - True if the reminder email is confirmed by the vendor.",
      "type": "boolean",
      "readOnly": true
     },
     "mail_reception_confirmed": {
      "description": "Reception Confirmed - True if PO reception is confirmed by the vendor.",
      "type": "boolean",
      "readOnly": true
     },
     "mail_reception_declined": {
      "description": "Reception Declined - True if PO reception is declined by the vendor.",
      "type": "boolean",
      "readOnly": true
     },
     "receipt_reminder_email": {
      "description": "Receipt Reminder Email",
      "type": "boolean",
      "readOnly": true
     },
     "reminder_date_before_receipt": {
      "description": "Days Before Receipt",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "id": {
      "type": "integer",
      "readOnly": true
     },
     "display_name": {
      "description": "Display Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "create_uid": {
      "description": "Created by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "create_date": {
      "description": "Created on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "write_uid": {
      "description": "Last Updated by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "write_date": {
      "description": "Last Updated on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "incoterm_location": {
      "description": "Incoterm Location",
      "type": [
       "string",
       "null"
      ]
     },
     "incoming_picking_count": {
      "description": "Incoming Shipment count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "picking_ids": {
      "description": "Receptions",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "picking_type_id": {
      "description": "Deliver To - This will determine operation type of incoming shipment",
      "$ref": "#/components/schemas/Ref"
     },
     "default_location_dest_id_usage": {
      "description": "Destination Location Type - Technical field used to display the Drop Ship Address",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "supplier",
       "view",
       "internal",
       "customer",
       "inventory",
       "production",
       "transit",
       null
      ],
      "x-labels": {
       "supplier": "Vendor Location",
       "view": "View",
       "internal": "Internal Location",
       "customer": "Customer Location",
       "inventory": "Inventory Loss",
       "production": "Production",
       "transit": "Transit Location"
      },
      "readOnly": true
     },
     "group_id": {
      "description": "Procurement Group",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "is_shipped": {
      "description": "Is Shipped",
      "type": "boolean",
      "readOnly": true
     },
     "effective_date": {
      "description": "Arrival - Completion date of the first receipt order.",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "on_time_rate": {
      "description": "On-Time Delivery Rate - Over the past x days; the number of products received on time divided by the number of ordered products.x is either the System Parameter purchase_stock.on_time_delivery_days or the default 365",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "receipt_status": {
      "description": "Receipt Status - Red: Late\n            Orange: To process today\n            Green: On time",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "pending",
       "partial",
       "full",
       null
      ],
      "x-labels": {
       "pending": "Not Received",
       "partial": "Partially Received",
       "full": "Fully Received"
      },
      "readOnly": true
     },
     "sale_order_count": {
      "description": "Number of Source Sale",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     }
    },
    "x-default-fields": [
     "id",
     "name",
     "state",
     "partner_id",
     "partner_ref",
     "date_order",
     "date_approve",
     "date_planned",
     "origin",
     "user_id",
     "currency_id",
     "payment_term_id",
     "picking_type_id",
     "amount_untaxed",
     "amount_tax",
     "amount_total",
     "invoice_status",
     "receipt_status",
     "company_id"
    ]
   },
   "PurchaseOrdersWrite": {
    "type": "object",
    "properties": {
     "partner_id": {
      "description": "Vendor - You can find a vendor by its Name, TIN, Email or Internal Reference. (id of res.partner)",
      "type": "integer"
     },
     "partner_ref": {
      "description": "Vendor Reference - Reference of the sales order or bid sent by the vendor. It's used to do the matching when you receive the products as this reference is usually written on the delivery order sent by your vendor.",
      "type": [
       "string",
       "null"
      ]
     },
     "date_order": {
      "description": "Order Deadline - Depicts the date within which the Quotation should be confirmed and converted into a purchase order.",
      "type": "string",
      "format": "date-time"
     },
     "date_planned": {
      "description": "Expected Arrival - Delivery date promised by vendor. This date is used to determine expected arrival of products.",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time"
     },
     "origin": {
      "description": "Source Document - Reference of the document that generated this purchase order request (e.g. a sales order)",
      "type": [
       "string",
       "null"
      ]
     },
     "user_id": {
      "description": "Buyer (id of res.users)",
      "type": [
       "integer",
       "null"
      ]
     },
     "currency_id": {
      "description": "Currency (id of res.currency)",
      "type": "integer"
     },
     "payment_term_id": {
      "description": "Payment Terms (id of account.payment.term)",
      "type": [
       "integer",
       "null"
      ]
     },
     "picking_type_id": {
      "description": "Deliver To - This will determine operation type of incoming shipment (id of stock.picking.type)",
      "type": "integer"
     },
     "notes": {
      "description": "Terms and Conditions",
      "type": [
       "string",
       "null"
      ]
     },
     "order_line": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "id": {
         "type": "integer",
         "description": "Existing line to change (update only)"
        },
        "_delete": {
         "type": "boolean",
         "description": "With id: remove the line"
        },
        "product_id": {
         "description": "Product (id of product.product)",
         "type": [
          "integer",
          "null"
         ]
        },
        "name": {
         "description": "Description",
         "type": "string"
        },
        "product_qty": {
         "description": "Quantity",
         "type": "number"
        },
        "product_uom": {
         "description": "Unit of Measure (id of uom.uom)",
         "type": [
          "integer",
          "null"
         ]
        },
        "price_unit": {
         "description": "Unit Price",
         "type": "number"
        },
        "discount": {
         "description": "Discount (%)",
         "type": [
          "number",
          "null"
         ]
        },
        "taxes_id": {
         "description": "Taxes",
         "type": "array",
         "items": {
          "type": "integer"
         }
        },
        "date_planned": {
         "description": "Expected Arrival - Delivery date expected from vendor. This date respectively defaults to vendor pricelist lead time then today's date.",
         "type": [
          "string",
          "null"
         ],
         "format": "date-time"
        },
        "analytic_distribution": {
         "description": "Analytic Distribution",
         "type": [
          "object",
          "null"
         ]
        },
        "display_type": {
         "description": "Display Type - Technical field for UX purpose.",
         "type": [
          "string",
          "null"
         ],
         "enum": [
          "line_section",
          "line_note",
          null
         ],
         "x-labels": {
          "line_section": "Section",
          "line_note": "Note"
         }
        },
        "sequence": {
         "description": "Sequence",
         "type": [
          "integer",
          "null"
         ]
        }
       },
       "additionalProperties": false
      },
      "description": "Order Lines"
     }
    },
    "additionalProperties": false
   },
   "PurchaseOrdersCreate": {
    "allOf": [
     {
      "$ref": "#/components/schemas/PurchaseOrdersWrite"
     },
     {
      "required": [
       "partner_id",
       "currency_id"
      ]
     }
    ]
   },
   "PurchaseOrderLines": {
    "type": "object",
    "properties": {
     "analytic_distribution": {
      "description": "Analytic Distribution",
      "type": [
       "object",
       "null"
      ]
     },
     "analytic_precision": {
      "description": "Analytic Precision",
      "type": [
       "integer",
       "null"
      ]
     },
     "distribution_analytic_account_ids": {
      "description": "Distribution Analytic Account",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "name": {
      "description": "Description",
      "type": "string"
     },
     "sequence": {
      "description": "Sequence",
      "type": [
       "integer",
       "null"
      ]
     },
     "product_qty": {
      "description": "Quantity",
      "type": "number"
     },
     "product_uom_qty": {
      "description": "Total Quantity",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "date_planned": {
      "description": "Expected Arrival - Delivery date expected from vendor. This date respectively defaults to vendor pricelist lead time then today's date.",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time"
     },
     "discount": {
      "description": "Discount (%)",
      "type": [
       "number",
       "null"
      ]
     },
     "taxes_id": {
      "description": "Taxes",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "product_uom": {
      "description": "Unit of Measure",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "product_uom_category_id": {
      "description": "Category - Conversion between Units of Measure can only occur if they belong to the same category. The conversion will be made based on the ratios.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "product_id": {
      "description": "Product",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "product_type": {
      "description": "Product Type - Goods are tangible materials and merchandise you provide.\nA service is a non-material product you provide.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "consu",
       "service",
       "combo",
       null
      ],
      "x-labels": {
       "consu": "Goods",
       "service": "Service",
       "combo": "Combo"
      },
      "readOnly": true
     },
     "price_unit": {
      "description": "Unit Price",
      "type": "number"
     },
     "price_unit_discounted": {
      "description": "Unit Price (Discounted)",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "price_subtotal": {
      "description": "Subtotal",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "price_total": {
      "description": "Total",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "price_tax": {
      "description": "Tax",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "order_id": {
      "description": "Order Reference",
      "$ref": "#/components/schemas/Ref"
     },
     "company_id": {
      "description": "Company",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "state": {
      "description": "Status",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "draft",
       "sent",
       "to approve",
       "purchase",
       "done",
       "cancel",
       null
      ],
      "x-labels": {
       "draft": "RFQ",
       "sent": "RFQ Sent",
       "to approve": "To Approve",
       "purchase": "Purchase Order",
       "done": "Locked",
       "cancel": "Cancelled"
      },
      "readOnly": true
     },
     "invoice_lines": {
      "description": "Bill Lines",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "qty_invoiced": {
      "description": "Billed Qty",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "qty_received_method": {
      "description": "Received Qty Method - According to product configuration, the received quantity can be automatically computed by mechanism:\n  - Manual: the quantity is set manually on the line\n  - Stock Moves: the quantity comes from confirmed pickings\n",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "manual",
       "stock_moves",
       null
      ],
      "x-labels": {
       "manual": "Manual",
       "stock_moves": "Stock Moves"
      },
      "readOnly": true
     },
     "qty_received": {
      "description": "Received Qty",
      "type": [
       "number",
       "null"
      ]
     },
     "qty_received_manual": {
      "description": "Manual Received Qty",
      "type": [
       "number",
       "null"
      ]
     },
     "qty_to_invoice": {
      "description": "To Invoice Quantity",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "partner_id": {
      "description": "Partner - You can find a vendor by its Name, TIN, Email or Internal Reference.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "currency_id": {
      "description": "Currency",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "date_order": {
      "description": "Order Date - Depicts the date within which the Quotation should be confirmed and converted into a purchase order.",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "date_approve": {
      "description": "Confirmation Date",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "product_packaging_id": {
      "description": "Packaging",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "product_packaging_qty": {
      "description": "Packaging Quantity",
      "type": [
       "number",
       "null"
      ]
     },
     "tax_calculation_rounding_method": {
      "description": "Tax calculation rounding method",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "round_per_line",
       "round_globally",
       null
      ],
      "x-labels": {
       "round_per_line": "Round per Line",
       "round_globally": "Round Globally"
      },
      "readOnly": true
     },
     "display_type": {
      "description": "Display Type - Technical field for UX purpose.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "line_section",
       "line_note",
       null
      ],
      "x-labels": {
       "line_section": "Section",
       "line_note": "Note"
      }
     },
     "is_downpayment": {
      "description": "Is Downpayment",
      "type": "boolean"
     },
     "product_template_attribute_value_ids": {
      "description": "Attribute Values",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "product_no_variant_attribute_value_ids": {
      "description": "Product attribute values that do not create variants",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "id": {
      "type": "integer",
      "readOnly": true
     },
     "display_name": {
      "description": "Display Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "create_uid": {
      "description": "Created by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "create_date": {
      "description": "Created on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "write_uid": {
      "description": "Last Updated by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "write_date": {
      "description": "Last Updated on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "move_ids": {
      "description": "Reservation",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "orderpoint_id": {
      "description": "Orderpoint",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "move_dest_ids": {
      "description": "Downstream moves alt",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "product_description_variants": {
      "description": "Custom Description",
      "type": [
       "string",
       "null"
      ]
     },
     "propagate_cancel": {
      "description": "Propagate cancellation",
      "type": "boolean"
     },
     "forecasted_issue": {
      "description": "Forecasted Issue",
      "type": "boolean",
      "readOnly": true
     },
     "is_storable": {
      "description": "Track Inventory - A storable product is a product for which you manage stock.",
      "type": "boolean",
      "readOnly": true
     },
     "location_final_id": {
      "description": "Location from procurement",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "group_id": {
      "description": "Procurement group that generated this line",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "sale_order_id": {
      "description": "Sale Order",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "sale_line_id": {
      "description": "Origin Sale Item",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     }
    },
    "x-default-fields": [
     "id",
     "order_id",
     "sequence",
     "display_type",
     "product_id",
     "name",
     "product_qty",
     "product_uom",
     "price_unit",
     "discount",
     "taxes_id",
     "price_subtotal",
     "price_tax",
     "price_total",
     "date_planned",
     "qty_received",
     "qty_invoiced",
     "qty_to_invoice",
     "analytic_distribution",
     "state",
     "company_id"
    ]
   },
   "SaleOrders": {
    "type": "object",
    "properties": {
     "campaign_id": {
      "description": "Campaign - This is a name that helps you keep track of your different campaign efforts, e.g. Fall_Drive, Christmas_Special",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "source_id": {
      "description": "Source - This is the source of the link, e.g. Search Engine, another domain, or name of email list",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "medium_id": {
      "description": "Medium - This is the method of delivery, e.g. Postcard, Email, or Banner Ad",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "activity_ids": {
      "description": "Activities",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "activity_state": {
      "description": "Activity State - Status based on activities\nOverdue: Due date is already passed\nToday: Activity date is today\nPlanned: Future activities.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "overdue",
       "today",
       "planned",
       null
      ],
      "x-labels": {
       "overdue": "Overdue",
       "today": "Today",
       "planned": "Planned"
      },
      "readOnly": true
     },
     "activity_user_id": {
      "description": "Responsible User",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "activity_type_id": {
      "description": "Next Activity Type",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "activity_type_icon": {
      "description": "Activity Type Icon - Font awesome icon e.g. fa-tasks",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "activity_date_deadline": {
      "description": "Next Activity Deadline",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "my_activity_date_deadline": {
      "description": "My Activity Deadline",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "activity_summary": {
      "description": "Next Activity Summary",
      "type": [
       "string",
       "null"
      ]
     },
     "activity_exception_decoration": {
      "description": "Activity Exception Decoration - Type of the exception activity on record.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "warning",
       "danger",
       null
      ],
      "x-labels": {
       "warning": "Alert",
       "danger": "Error"
      },
      "readOnly": true
     },
     "activity_exception_icon": {
      "description": "Icon - Icon to indicate an exception activity.",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "message_is_follower": {
      "description": "Is Follower",
      "type": "boolean",
      "readOnly": true
     },
     "message_follower_ids": {
      "description": "Followers",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_partner_ids": {
      "description": "Followers (Partners)",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_ids": {
      "description": "Messages",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "has_message": {
      "description": "Has Message",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction": {
      "description": "Action Needed - If checked, new messages require your attention.",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction_counter": {
      "description": "Number of Actions - Number of messages requiring action",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_has_error": {
      "description": "Message Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "message_has_error_counter": {
      "description": "Number of errors - Number of messages with delivery error",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_attachment_count": {
      "description": "Attachment Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "website_message_ids": {
      "description": "Website Messages - Website communication history",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_has_sms_error": {
      "description": "SMS Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "access_warning": {
      "description": "Access warning",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "name": {
      "description": "Order Reference",
      "type": "string"
     },
     "company_id": {
      "description": "Company",
      "$ref": "#/components/schemas/Ref"
     },
     "partner_id": {
      "description": "Customer",
      "$ref": "#/components/schemas/Ref"
     },
     "state": {
      "description": "Status",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "draft",
       "sent",
       "sale",
       "cancel",
       null
      ],
      "x-labels": {
       "draft": "Quotation",
       "sent": "Quotation Sent",
       "sale": "Sales Order",
       "cancel": "Cancelled"
      },
      "readOnly": true
     },
     "locked": {
      "description": "Locked - Locked orders cannot be modified.",
      "type": "boolean"
     },
     "has_archived_products": {
      "description": "Has Archived Products",
      "type": "boolean",
      "readOnly": true
     },
     "client_order_ref": {
      "description": "Customer Reference",
      "type": [
       "string",
       "null"
      ]
     },
     "create_date": {
      "description": "Creation Date",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "commitment_date": {
      "description": "Delivery Date - This is the delivery date promised to the customer. If set, the delivery order will be scheduled based on this date rather than product lead times.",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time"
     },
     "date_order": {
      "description": "Order Date - Creation date of draft/sent orders,\nConfirmation date of confirmed orders.",
      "type": "string",
      "format": "date-time"
     },
     "origin": {
      "description": "Source Document - Reference of the document that generated this sales order request",
      "type": [
       "string",
       "null"
      ]
     },
     "reference": {
      "description": "Payment Ref. - The payment communication of this sale order.",
      "type": [
       "string",
       "null"
      ]
     },
     "require_signature": {
      "description": "Online signature - Request a online signature from the customer to confirm the order.",
      "type": "boolean"
     },
     "require_payment": {
      "description": "Online payment - Request a online payment from the customer to confirm the order.",
      "type": "boolean"
     },
     "prepayment_percent": {
      "description": "Prepayment percentage - The percentage of the amount needed that must be paid by the customer to confirm the order.",
      "type": [
       "number",
       "null"
      ]
     },
     "signed_by": {
      "description": "Signed By",
      "type": [
       "string",
       "null"
      ]
     },
     "signed_on": {
      "description": "Signed On",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time"
     },
     "validity_date": {
      "description": "Expiration - Validity of the quotation. After this date, you will no longer be able to sign and pay it.",
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "journal_id": {
      "description": "Invoicing Journal - If set, the SO will invoice in this journal; otherwise the sales journal with the lowest sequence is used.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "note": {
      "description": "Terms and conditions",
      "type": [
       "string",
       "null"
      ]
     },
     "partner_invoice_id": {
      "description": "Invoice Address",
      "$ref": "#/components/schemas/Ref"
     },
     "partner_shipping_id": {
      "description": "Delivery Address",
      "$ref": "#/components/schemas/Ref"
     },
     "fiscal_position_id": {
      "description": "Fiscal Position - Fiscal positions are used to adapt taxes and accounts for particular customers or sales orders/invoices.The default value comes from the customer.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "payment_term_id": {
      "description": "Payment Terms",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "pricelist_id": {
      "description": "Pricelist - If you change the pricelist, only newly added lines will be affected.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "currency_id": {
      "description": "Currency",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "currency_rate": {
      "description": "Currency Rate",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "user_id": {
      "description": "Salesperson",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "team_id": {
      "description": "Sales Team",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "order_line": {
      "description": "Order Lines",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "amount_untaxed": {
      "description": "Untaxed Amount",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_tax": {
      "description": "Taxes",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_total": {
      "description": "Total",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_to_invoice": {
      "description": "Un-invoiced Balance",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_invoiced": {
      "description": "Already invoiced",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "invoice_count": {
      "description": "Invoice Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "invoice_ids": {
      "description": "Invoices",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "invoice_status": {
      "description": "Invoice Status",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "upselling",
       "invoiced",
       "to invoice",
       "no",
       null
      ],
      "x-labels": {
       "upselling": "Upselling Opportunity",
       "invoiced": "Fully Invoiced",
       "to invoice": "To Invoice",
       "no": "Nothing to Invoice"
      },
      "readOnly": true
     },
     "transaction_ids": {
      "description": "Transactions",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "authorized_transaction_ids": {
      "description": "Authorized Transactions",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "amount_paid": {
      "description": "Payment Transactions Amount - Sum of transactions made in through the online payment form that are in the state 'done' or 'authorized' and linked to this order.",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "tag_ids": {
      "description": "Tags",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "amount_undiscounted": {
      "description": "Amount Before Discount",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "country_code": {
      "description": "Country code - The ISO country code in two chars. \nYou can use this field for quick search.",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "company_price_include": {
      "description": "Default Sales Price Include - Default on whether the sales price used on the product and invoices with this Company includes its taxes.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "tax_included",
       "tax_excluded",
       null
      ],
      "x-labels": {
       "tax_included": "Tax Included",
       "tax_excluded": "Tax Excluded"
      },
      "readOnly": true
     },
     "duplicated_order_ids": {
      "description": "Duplicated Order",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "expected_date": {
      "description": "Expected Date - Delivery date you can promise to the customer, computed from the minimum lead time of the order lines in case of Service products. In case of shipping, the shipping policy of the order will be taken into account to either use the minimum or maximum lead time of the order lines.",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "is_expired": {
      "description": "Is Expired",
      "type": "boolean",
      "readOnly": true
     },
     "partner_credit_warning": {
      "description": "Partner Credit Warning",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "tax_calculation_rounding_method": {
      "description": "Tax Calculation Rounding Method",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "round_per_line",
       "round_globally",
       null
      ],
      "x-labels": {
       "round_per_line": "Round per Line",
       "round_globally": "Round Globally"
      },
      "readOnly": true
     },
     "tax_country_id": {
      "description": "Tax Country",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "terms_type": {
      "description": "Terms & Conditions format",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "plain",
       "html",
       null
      ],
      "x-labels": {
       "plain": "Add a Note",
       "html": "Add a link to a Web Page"
      },
      "readOnly": true
     },
     "type_name": {
      "description": "Type Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "show_update_fpos": {
      "description": "Has Fiscal Position Changed",
      "type": "boolean"
     },
     "has_active_pricelist": {
      "description": "Has Active Pricelist",
      "type": "boolean",
      "readOnly": true
     },
     "show_update_pricelist": {
      "description": "Has Pricelist Changed",
      "type": "boolean"
     },
     "id": {
      "type": "integer",
      "readOnly": true
     },
     "display_name": {
      "description": "Display Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "create_uid": {
      "description": "Created by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "write_uid": {
      "description": "Last Updated by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "write_date": {
      "description": "Last Updated on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "pending_email_template_id": {
      "description": "Pending Email Template - The template of the pending email that must be sent asynchronously.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "sale_order_template_id": {
      "description": "Quotation Template",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "sale_order_option_ids": {
      "description": "Optional Products Lines",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "purchase_order_count": {
      "description": "Number of Purchase Order Generated",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "incoterm": {
      "description": "Incoterm - International Commercial Terms are a series of predefined commercial terms used in international transactions.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "incoterm_location": {
      "description": "Incoterm Location",
      "type": [
       "string",
       "null"
      ]
     },
     "picking_policy": {
      "description": "Shipping Policy - If you deliver all products at once, the delivery order will be scheduled based on the greatest product lead time. Otherwise, it will be based on the shortest.",
      "type": "string",
      "enum": [
       "direct",
       "one"
      ],
      "x-labels": {
       "direct": "As soon as possible",
       "one": "When all products are ready"
      }
     },
     "warehouse_id": {
      "description": "Warehouse",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "picking_ids": {
      "description": "Transfers",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "delivery_count": {
      "description": "Delivery Orders",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "delivery_status": {
      "description": "Delivery Status - Blue: Not Delivered/Started\n            Orange: Partially Delivered\n            Green: Fully Delivered",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "pending",
       "started",
       "partial",
       "full",
       null
      ],
      "x-labels": {
       "pending": "Not Delivered",
       "started": "Started",
       "partial": "Partially Delivered",
       "full": "Fully Delivered"
      },
      "readOnly": true
     },
     "procurement_group_id": {
      "description": "Procurement Group",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "effective_date": {
      "description": "Effective Date - Completion date of the first delivery order.",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "json_popover": {
      "description": "JSON data for the popover widget",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "show_json_popover": {
      "description": "Has late picking",
      "type": "boolean",
      "readOnly": true
     },
     "available_product_document_ids": {
      "description": "Available Product Documents",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "is_pdf_quote_builder_available": {
      "description": "Is Pdf Quote Builder Available",
      "type": "boolean",
      "readOnly": true
     },
     "quotation_document_ids": {
      "description": "Headers/Footers",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "customizable_pdf_form_fields": {
      "description": "Customizable PDF Form Fields",
      "type": [
       "object",
       "null"
      ]
     }
    },
    "x-default-fields": [
     "id",
     "name",
     "state",
     "partner_id",
     "partner_invoice_id",
     "partner_shipping_id",
     "date_order",
     "validity_date",
     "commitment_date",
     "client_order_ref",
     "origin",
     "user_id",
     "team_id",
     "pricelist_id",
     "currency_id",
     "payment_term_id",
     "amount_untaxed",
     "amount_tax",
     "amount_total",
     "invoice_status",
     "delivery_status",
     "company_id"
    ]
   },
   "SaleOrdersWrite": {
    "type": "object",
    "properties": {
     "partner_id": {
      "description": "Customer (id of res.partner)",
      "type": "integer"
     },
     "partner_invoice_id": {
      "description": "Invoice Address (id of res.partner)",
      "type": "integer"
     },
     "partner_shipping_id": {
      "description": "Delivery Address (id of res.partner)",
      "type": "integer"
     },
     "date_order": {
      "description": "Order Date - Creation date of draft/sent orders,\nConfirmation date of confirmed orders.",
      "type": "string",
      "format": "date-time"
     },
     "validity_date": {
      "description": "Expiration - Validity of the quotation. After this date, you will no longer be able to sign and pay it.",
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "commitment_date": {
      "description": "Delivery Date - This is the delivery date promised to the customer. If set, the delivery order will be scheduled based on this date rather than product lead times.",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time"
     },
     "client_order_ref": {
      "description": "Customer Reference",
      "type": [
       "string",
       "null"
      ]
     },
     "origin": {
      "description": "Source Document - Reference of the document that generated this sales order request",
      "type": [
       "string",
       "null"
      ]
     },
     "user_id": {
      "description": "Salesperson (id of res.users)",
      "type": [
       "integer",
       "null"
      ]
     },
     "team_id": {
      "description": "Sales Team (id of crm.team)",
      "type": [
       "integer",
       "null"
      ]
     },
     "pricelist_id": {
      "description": "Pricelist - If you change the pricelist, only newly added lines will be affected. (id of product.pricelist)",
      "type": [
       "integer",
       "null"
      ]
     },
     "payment_term_id": {
      "description": "Payment Terms (id of account.payment.term)",
      "type": [
       "integer",
       "null"
      ]
     },
     "note": {
      "description": "Terms and conditions",
      "type": [
       "string",
       "null"
      ]
     },
     "order_line": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "id": {
         "type": "integer",
         "description": "Existing line to change (update only)"
        },
        "_delete": {
         "type": "boolean",
         "description": "With id: remove the line"
        },
        "product_id": {
         "description": "Product (id of product.product)",
         "type": [
          "integer",
          "null"
         ]
        },
        "name": {
         "description": "Description",
         "type": "string"
        },
        "product_uom_qty": {
         "description": "Quantity",
         "type": "number"
        },
        "product_uom": {
         "description": "Unit of Measure (id of uom.uom)",
         "type": [
          "integer",
          "null"
         ]
        },
        "price_unit": {
         "description": "Unit Price",
         "type": "number"
        },
        "discount": {
         "description": "Discount (%)",
         "type": [
          "number",
          "null"
         ]
        },
        "tax_id": {
         "description": "Taxes",
         "type": "array",
         "items": {
          "type": "integer"
         }
        },
        "analytic_distribution": {
         "description": "Analytic Distribution",
         "type": [
          "object",
          "null"
         ]
        },
        "display_type": {
         "description": "Display Type",
         "type": [
          "string",
          "null"
         ],
         "enum": [
          "line_section",
          "line_note",
          null
         ],
         "x-labels": {
          "line_section": "Section",
          "line_note": "Note"
         }
        },
        "sequence": {
         "description": "Sequence",
         "type": [
          "integer",
          "null"
         ]
        }
       },
       "additionalProperties": false
      },
      "description": "Order Lines"
     }
    },
    "additionalProperties": false
   },
   "SaleOrdersCreate": {
    "allOf": [
     {
      "$ref": "#/components/schemas/SaleOrdersWrite"
     },
     {
      "required": [
       "partner_id",
       "partner_invoice_id",
       "partner_shipping_id"
      ]
     }
    ]
   },
   "SaleOrderLines": {
    "type": "object",
    "properties": {
     "analytic_distribution": {
      "description": "Analytic Distribution",
      "type": [
       "object",
       "null"
      ]
     },
     "analytic_precision": {
      "description": "Analytic Precision",
      "type": [
       "integer",
       "null"
      ]
     },
     "distribution_analytic_account_ids": {
      "description": "Distribution Analytic Account",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "order_id": {
      "description": "Order Reference",
      "$ref": "#/components/schemas/Ref"
     },
     "sequence": {
      "description": "Sequence",
      "type": [
       "integer",
       "null"
      ]
     },
     "company_id": {
      "description": "Company",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "currency_id": {
      "description": "Currency",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "order_partner_id": {
      "description": "Customer",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "salesman_id": {
      "description": "Salesperson",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "state": {
      "description": "Order Status",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "draft",
       "sent",
       "sale",
       "cancel",
       null
      ],
      "x-labels": {
       "draft": "Quotation",
       "sent": "Quotation Sent",
       "sale": "Sales Order",
       "cancel": "Cancelled"
      },
      "readOnly": true
     },
     "tax_country_id": {
      "description": "Tax Country",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "display_type": {
      "description": "Display Type",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "line_section",
       "line_note",
       null
      ],
      "x-labels": {
       "line_section": "Section",
       "line_note": "Note"
      }
     },
     "is_configurable_product": {
      "description": "Is the product configurable?",
      "type": "boolean",
      "readOnly": true
     },
     "is_downpayment": {
      "description": "Is a down payment - Down payments are made when creating invoices from a sales order. They are not copied when duplicating a sales order.",
      "type": "boolean"
     },
     "is_expense": {
      "description": "Is expense - Is true if the sales order line comes from an expense or a vendor bills",
      "type": "boolean"
     },
     "product_id": {
      "description": "Product",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "product_template_id": {
      "description": "Product Template",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "product_uom_category_id": {
      "description": "Category - Conversion between Units of Measure can only occur if they belong to the same category. The conversion will be made based on the ratios.",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "product_template_attribute_value_ids": {
      "description": "Attribute Values",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "product_custom_attribute_value_ids": {
      "description": "Custom Values",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "product_no_variant_attribute_value_ids": {
      "description": "Extra Values",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "is_product_archived": {
      "description": "Is Product Archived",
      "type": "boolean",
      "readOnly": true
     },
     "name": {
      "description": "Description",
      "type": "string"
     },
     "translated_product_name": {
      "description": "Translated Product Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "product_uom_qty": {
      "description": "Quantity",
      "type": "number"
     },
     "product_uom": {
      "description": "Unit of Measure",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "linked_line_id": {
      "description": "Linked Order Line",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "linked_line_ids": {
      "description": "Linked Order Lines",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "virtual_id": {
      "description": "Virtual",
      "type": [
       "string",
       "null"
      ]
     },
     "linked_virtual_id": {
      "description": "Linked Virtual",
      "type": [
       "string",
       "null"
      ]
     },
     "selected_combo_items": {
      "description": "Selected Combo Items",
      "type": [
       "string",
       "null"
      ]
     },
     "combo_item_id": {
      "description": "Combo Item",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "tax_id": {
      "description": "Taxes",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "pricelist_item_id": {
      "description": "Pricelist Item",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "price_unit": {
      "description": "Unit Price",
      "type": "number"
     },
     "technical_price_unit": {
      "description": "Technical Price Unit",
      "type": [
       "number",
       "null"
      ]
     },
     "discount": {
      "description": "Discount (%)",
      "type": [
       "number",
       "null"
      ]
     },
     "price_subtotal": {
      "description": "Subtotal",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "price_tax": {
      "description": "Total Tax",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "price_total": {
      "description": "Total",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "price_reduce_taxexcl": {
      "description": "Price Reduce Tax excl",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "price_reduce_taxinc": {
      "description": "Price Reduce Tax incl",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "product_packaging_id": {
      "description": "Packaging",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "product_packaging_qty": {
      "description": "Packaging Quantity",
      "type": [
       "number",
       "null"
      ]
     },
     "customer_lead": {
      "description": "Lead Time - Number of days between the order confirmation and the shipping of the products to the customer",
      "type": "number"
     },
     "qty_delivered_method": {
      "description": "Method to update delivered qty - According to product configuration, the delivered quantity can be automatically computed by mechanism:\n  - Manual: the quantity is set manually on the line\n  - Analytic From expenses: the quantity is the quantity sum from posted expenses\n  - Timesheet: the quantity is the sum of hours recorded on tasks linked to this sale line\n  - Stock Moves: the quantity comes from confirmed pickings\n",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "manual",
       "analytic",
       "stock_move",
       null
      ],
      "x-labels": {
       "manual": "Manual",
       "analytic": "Analytic From Expenses",
       "stock_move": "Stock Moves"
      },
      "readOnly": true
     },
     "qty_delivered": {
      "description": "Delivery Quantity",
      "type": [
       "number",
       "null"
      ]
     },
     "qty_invoiced": {
      "description": "Invoiced Quantity",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "qty_invoiced_posted": {
      "description": "Invoiced Quantity (posted)",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "qty_to_invoice": {
      "description": "Quantity To Invoice",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "analytic_line_ids": {
      "description": "Analytic lines",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "invoice_lines": {
      "description": "Invoice Lines",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "invoice_status": {
      "description": "Invoice Status",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "upselling",
       "invoiced",
       "to invoice",
       "no",
       null
      ],
      "x-labels": {
       "upselling": "Upselling Opportunity",
       "invoiced": "Fully Invoiced",
       "to invoice": "To Invoice",
       "no": "Nothing to Invoice"
      },
      "readOnly": true
     },
     "untaxed_amount_invoiced": {
      "description": "Untaxed Invoiced Amount",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_invoiced": {
      "description": "Invoiced Amount",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "untaxed_amount_to_invoice": {
      "description": "Untaxed Amount To Invoice",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "amount_to_invoice": {
      "description": "Un-invoiced Balance",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "product_type": {
      "description": "Product Type - Goods are tangible materials and merchandise you provide.\nA service is a non-material product you provide.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "consu",
       "service",
       "combo",
       null
      ],
      "x-labels": {
       "consu": "Goods",
       "service": "Service",
       "combo": "Combo"
      },
      "readOnly": true
     },
     "service_tracking": {
      "description": "Create on Order",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "no",
       null
      ],
      "x-labels": {
       "no": "Nothing"
      },
      "readOnly": true
     },
     "product_updatable": {
      "description": "Can Edit Product",
      "type": "boolean",
      "readOnly": true
     },
     "product_uom_readonly": {
      "description": "Product Uom Readonly",
      "type": "boolean",
      "readOnly": true
     },
     "tax_calculation_rounding_method": {
      "description": "Tax calculation rounding method",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "round_per_line",
       "round_globally",
       null
      ],
      "x-labels": {
       "round_per_line": "Round per Line",
       "round_globally": "Round Globally"
      },
      "readOnly": true
     },
     "company_price_include": {
      "description": "Default Sales Price Include - Default on whether the sales price used on the product and invoices with this Company includes its taxes.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "tax_included",
       "tax_excluded",
       null
      ],
      "x-labels": {
       "tax_included": "Tax Included",
       "tax_excluded": "Tax Excluded"
      },
      "readOnly": true
     },
     "id": {
      "type": "integer",
      "readOnly": true
     },
     "display_name": {
      "description": "Display Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "create_uid": {
      "description": "Created by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "create_date": {
      "description": "Created on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "write_uid": {
      "description": "Last Updated by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "write_date": {
      "description": "Last Updated on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "sale_order_option_ids": {
      "description": "Optional Products Lines",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "purchase_line_ids": {
      "description": "Generated Purchase Lines - Purchase line generated by this Sales item on order confirmation, or when the quantity was increased.",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "purchase_line_count": {
      "description": "Number of generated purchase items",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "route_id": {
      "description": "Route",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "move_ids": {
      "description": "Stock Moves",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "virtual_available_at_date": {
      "description": "Virtual Available At Date",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "scheduled_date": {
      "description": "Scheduled Date",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "forecast_expected_date": {
      "description": "Forecast Expected Date",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "free_qty_today": {
      "description": "Free Qty Today",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "qty_available_today": {
      "description": "Qty Available Today",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "warehouse_id": {
      "description": "Warehouse",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "qty_to_deliver": {
      "description": "Qty To Deliver",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "is_mto": {
      "description": "Is Mto",
      "type": "boolean",
      "readOnly": true
     },
     "display_qty_widget": {
      "description": "Display Qty Widget",
      "type": "boolean",
      "readOnly": true
     },
     "is_storable": {
      "description": "Track Inventory - A storable product is a product for which you manage stock.",
      "type": "boolean",
      "readOnly": true
     },
     "available_product_document_ids": {
      "description": "Available Product Documents",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "product_document_ids": {
      "description": "Product Documents - The product documents for this order line that will be merged in the PDF quote.",
      "type": "array",
      "items": {
       "type": "integer"
      }
     }
    },
    "x-default-fields": [
     "id",
     "order_id",
     "sequence",
     "display_type",
     "product_id",
     "name",
     "product_uom_qty",
     "product_uom",
     "price_unit",
     "discount",
     "tax_id",
     "price_subtotal",
     "price_tax",
     "price_total",
     "qty_delivered",
     "qty_invoiced",
     "qty_to_invoice",
     "state",
     "company_id"
    ]
   },
   "SalesTeams": {
    "type": "object",
    "properties": {
     "message_is_follower": {
      "description": "Is Follower",
      "type": "boolean",
      "readOnly": true
     },
     "message_follower_ids": {
      "description": "Followers",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_partner_ids": {
      "description": "Followers (Partners)",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_ids": {
      "description": "Messages",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "has_message": {
      "description": "Has Message",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction": {
      "description": "Action Needed - If checked, new messages require your attention.",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction_counter": {
      "description": "Number of Actions - Number of messages requiring action",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_has_error": {
      "description": "Message Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "message_has_error_counter": {
      "description": "Number of errors - Number of messages with delivery error",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_attachment_count": {
      "description": "Attachment Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "website_message_ids": {
      "description": "Website Messages - Website communication history",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_has_sms_error": {
      "description": "SMS Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "name": {
      "description": "Sales Team",
      "type": "string"
     },
     "sequence": {
      "description": "Sequence",
      "type": [
       "integer",
       "null"
      ]
     },
     "active": {
      "description": "Active - If the active field is set to false, it will allow you to hide the Sales Team without removing it.",
      "type": "boolean"
     },
     "company_id": {
      "description": "Company",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "currency_id": {
      "description": "Currency",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "user_id": {
      "description": "Team Leader",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "is_membership_multi": {
      "description": "Multiple Memberships Allowed - If True, users may belong to several sales teams. Otherwise membership is limited to a single sales team.",
      "type": "boolean",
      "readOnly": true
     },
     "member_ids": {
      "description": "Salespersons - Users assigned to this team.",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "member_company_ids": {
      "description": "Member Company - UX: Limit to team company or all if no company",
      "type": "array",
      "items": {
       "type": "integer"
      },
      "readOnly": true
     },
     "member_warning": {
      "description": "Membership Issue Warning",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "crm_team_member_ids": {
      "description": "Sales Team Members - Add members to automatically assign their documents to this sales team.",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "crm_team_member_all_ids": {
      "description": "Sales Team Members (incl. inactive)",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "color": {
      "description": "Color Index - The color of the channel",
      "type": [
       "integer",
       "null"
      ]
     },
     "favorite_user_ids": {
      "description": "Favorite Members",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "is_favorite": {
      "description": "Show on dashboard - Favorite teams to display them in the dashboard and access them easily.",
      "type": "boolean"
     },
     "dashboard_button_name": {
      "description": "Dashboard Button",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "dashboard_graph_data": {
      "description": "Dashboard Graph Data",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "id": {
      "type": "integer",
      "readOnly": true
     },
     "display_name": {
      "description": "Display Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "create_uid": {
      "description": "Created by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "create_date": {
      "description": "Created on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "write_uid": {
      "description": "Last Updated by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "write_date": {
      "description": "Last Updated on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "invoiced": {
      "description": "Invoiced This Month - Invoice revenue for the current month. This is the amount the sales channel has invoiced this month. It is used to compute the progression ratio of the current and target revenue on the kanban view.",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "invoiced_target": {
      "description": "Invoicing Target - Revenue Target for the current month (untaxed total of paid invoices).",
      "type": [
       "number",
       "null"
      ]
     },
     "quotations_count": {
      "description": "Number of quotations to invoice",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "quotations_amount": {
      "description": "Amount of quotations to invoice",
      "type": [
       "number",
       "null"
      ],
      "readOnly": true
     },
     "sales_to_invoice_count": {
      "description": "Number of sales to invoice",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "sale_order_count": {
      "description": "# Sale Orders",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     }
    },
    "x-default-fields": [
     "id",
     "name",
     "user_id",
     "company_id",
     "active"
    ]
   },
   "Pricelists": {
    "type": "object",
    "properties": {
     "activity_ids": {
      "description": "Activities",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "activity_state": {
      "description": "Activity State - Status based on activities\nOverdue: Due date is already passed\nToday: Activity date is today\nPlanned: Future activities.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "overdue",
       "today",
       "planned",
       null
      ],
      "x-labels": {
       "overdue": "Overdue",
       "today": "Today",
       "planned": "Planned"
      },
      "readOnly": true
     },
     "activity_user_id": {
      "description": "Responsible User",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "activity_type_id": {
      "description": "Next Activity Type",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "activity_type_icon": {
      "description": "Activity Type Icon - Font awesome icon e.g. fa-tasks",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "activity_date_deadline": {
      "description": "Next Activity Deadline",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "my_activity_date_deadline": {
      "description": "My Activity Deadline",
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "readOnly": true
     },
     "activity_summary": {
      "description": "Next Activity Summary",
      "type": [
       "string",
       "null"
      ]
     },
     "activity_exception_decoration": {
      "description": "Activity Exception Decoration - Type of the exception activity on record.",
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "warning",
       "danger",
       null
      ],
      "x-labels": {
       "warning": "Alert",
       "danger": "Error"
      },
      "readOnly": true
     },
     "activity_exception_icon": {
      "description": "Icon - Icon to indicate an exception activity.",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "message_is_follower": {
      "description": "Is Follower",
      "type": "boolean",
      "readOnly": true
     },
     "message_follower_ids": {
      "description": "Followers",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_partner_ids": {
      "description": "Followers (Partners)",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_ids": {
      "description": "Messages",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "has_message": {
      "description": "Has Message",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction": {
      "description": "Action Needed - If checked, new messages require your attention.",
      "type": "boolean",
      "readOnly": true
     },
     "message_needaction_counter": {
      "description": "Number of Actions - Number of messages requiring action",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_has_error": {
      "description": "Message Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "message_has_error_counter": {
      "description": "Number of errors - Number of messages with delivery error",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "message_attachment_count": {
      "description": "Attachment Count",
      "type": [
       "integer",
       "null"
      ],
      "readOnly": true
     },
     "website_message_ids": {
      "description": "Website Messages - Website communication history",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "message_has_sms_error": {
      "description": "SMS Delivery error - If checked, some messages have a delivery error.",
      "type": "boolean",
      "readOnly": true
     },
     "name": {
      "description": "Pricelist Name",
      "type": "string"
     },
     "active": {
      "description": "Active - If unchecked, it will allow you to hide the pricelist without removing it.",
      "type": "boolean"
     },
     "sequence": {
      "description": "Sequence",
      "type": [
       "integer",
       "null"
      ]
     },
     "currency_id": {
      "description": "Currency",
      "$ref": "#/components/schemas/Ref"
     },
     "company_id": {
      "description": "Company",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ]
     },
     "country_group_ids": {
      "description": "Country Groups",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "item_ids": {
      "description": "Pricelist Rules",
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "id": {
      "type": "integer",
      "readOnly": true
     },
     "display_name": {
      "description": "Display Name",
      "type": [
       "string",
       "null"
      ],
      "readOnly": true
     },
     "create_uid": {
      "description": "Created by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "create_date": {
      "description": "Created on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     },
     "write_uid": {
      "description": "Last Updated by",
      "anyOf": [
       {
        "$ref": "#/components/schemas/Ref"
       },
       {
        "type": "null"
       }
      ],
      "readOnly": true
     },
     "write_date": {
      "description": "Last Updated on",
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "readOnly": true
     }
    },
    "x-default-fields": [
     "id",
     "name",
     "currency_id",
     "company_id",
     "active"
    ]
   }
  },
  "parameters": {
   "fields": {
    "name": "fields",
    "in": "query",
    "schema": {
     "type": "string"
    },
    "description": "Comma-separated fields, nested with parentheses: name,partner_id(email),order_line(product_id)"
   },
   "limit": {
    "name": "limit",
    "in": "query",
    "schema": {
     "type": "integer",
     "minimum": 1,
     "default": 50
    }
   },
   "offset": {
    "name": "offset",
    "in": "query",
    "schema": {
     "type": "integer",
     "minimum": 0,
     "default": 0
    }
   },
   "order": {
    "name": "order",
    "in": "query",
    "schema": {
     "type": "string"
    },
    "example": "id desc"
   },
   "filter": {
    "name": "filter",
    "in": "query",
    "schema": {
     "type": "string"
    },
    "description": "Odoo domain as JSON",
    "example": "[[\"state\",\"=\",\"draft\"]]"
   },
   "search": {
    "name": "search",
    "in": "query",
    "schema": {
     "type": "string"
    }
   },
   "updated_since": {
    "name": "updated_since",
    "in": "query",
    "schema": {
     "type": "string",
     "format": "date-time"
    }
   },
   "id": {
    "name": "id",
    "in": "path",
    "required": true,
    "schema": {
     "type": "integer"
    }
   },
   "company": {
    "name": "X-Company-Id",
    "in": "header",
    "schema": {
     "type": "string"
    },
    "description": "Active company ids, comma-separated"
   },
   "idempotency": {
    "name": "Idempotency-Key",
    "in": "header",
    "schema": {
     "type": "string",
     "maxLength": 255
    },
    "description": "Makes a POST safe to retry for 24 hours"
   }
  },
  "responses": {
   "Error400": {
    "description": "Error codes: bad_request, invalid_fields, invalid_filter, invalid_order, invalid_parameter, invalid_json, invalid_body",
    "content": {
     "application/json": {
      "schema": {
       "$ref": "#/components/schemas/Error"
      }
     }
    }
   },
   "Error401": {
    "description": "Error codes: unauthorized, invalid_token",
    "content": {
     "application/json": {
      "schema": {
       "$ref": "#/components/schemas/Error"
      }
     }
    }
   },
   "Error403": {
    "description": "Error codes: forbidden, api_access_denied, invalid_company",
    "content": {
     "application/json": {
      "schema": {
       "$ref": "#/components/schemas/Error"
      }
     }
    }
   },
   "Error404": {
    "description": "Error codes: not_found, unknown_resource, unknown_action",
    "content": {
     "application/json": {
      "schema": {
       "$ref": "#/components/schemas/Error"
      }
     }
    }
   },
   "Error405": {
    "description": "Error codes: method_not_allowed, operation_not_allowed",
    "content": {
     "application/json": {
      "schema": {
       "$ref": "#/components/schemas/Error"
      }
     }
    }
   },
   "Error409": {
    "description": "Error codes: conflict, wizard_required",
    "content": {
     "application/json": {
      "schema": {
       "$ref": "#/components/schemas/Error"
      }
     }
    }
   },
   "Error415": {
    "description": "Error codes: unsupported_media_type",
    "content": {
     "application/json": {
      "schema": {
       "$ref": "#/components/schemas/Error"
      }
     }
    }
   },
   "Error422": {
    "description": "Error codes: business_rule, field_not_writable, invalid_value, out_of_scope, idempotency_key_reused",
    "content": {
     "application/json": {
      "schema": {
       "$ref": "#/components/schemas/Error"
      }
     }
    }
   },
   "Error429": {
    "description": "Error codes: rate_limited",
    "content": {
     "application/json": {
      "schema": {
       "$ref": "#/components/schemas/Error"
      }
     }
    }
   },
   "Error500": {
    "description": "Error codes: server_error",
    "content": {
     "application/json": {
      "schema": {
       "$ref": "#/components/schemas/Error"
      }
     }
    }
   }
  }
 }
}