ECI Financial Integration API

Accounting-system integration for ECI ERP products. v1 integrates QuickBooks Online, MYOB, Xero and Sage; v2 integrates Xero and ECI Financials and covers purchase, sales and general ledger flows. v2 is the only ECI contract that declares 429 Too Many Requests and 501 Not Implemented responses with an RFC 7807-shaped Problem body.

Operations 17

GET /api/v2/features Get the features of the Financial Package
POST /api/v2/general-journal-entries Create (or update) general journal entry.
GET /api/v2/tax-codes Get a list of tax codes.
POST /api/v2/bills Create (or update) a bill.
POST /api/v2/bills/{billId}/attachments Upload a single file and attach to a bill.
POST /api/v2/paymentblockstatus Update the payment block status of a bill.
POST /api/v2/purchase-journal-entries Create (or update) a purchase journal entry.
GET /api/v2/purchase-outstanding-items Get a list of outstanding items for purchases.
GET /api/v2/purchase-paymentinfo/{docNumber} Get payment information for a purchase invoice.
POST /api/v2/suppliers Create a new supplier.
POST /api/v2/customers Create a new customer, or update an existing one.
POST /api/v2/invoices Create (or update) a sales invoice.
POST /api/v2/invoices/{invoiceId}/attachments Uploads the data of a single attachment and adds it to the invoice.
POST /api/v2/orders Create (or update) an order.
POST /api/v2/sales-journal-entries Create (or update) sales journal entry.
GET /api/v2/sales-outstanding-items Get a list of outstanding items for sales.
GET /api/v2/sales-paymentinfo/{docNumber} Get payment information for a sales invoice.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/eci-solutions-financial"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

eci-solutions-financial-v2-openapi.json Raw ↑
{
  "openapi": "3.0.1",
  "info": {
    "title": "Financial Integration",
    "description": "\nv2 of the Common Financial Package API supporting ECI Financials.\n\n## Authentication\nPass an access token in the HTTP Authorization header of each request. For example:\n\n```Authorization: Bearer [token]```\n\nAccess tokens are obtained from the Authentication API. See the <a href='https://integrations.ecimanufacturing.com/authenticate.html'>Authentication API token endpoint</a> for more information.\n",
    "contact": {
      "name": "ECI Integration Team",
      "url": "https://www.ecisolutions.com/support/"
    },
    "version": "v2"
  },
  "paths": {
    "/api/v2/features": {
      "get": {
        "tags": [
          "Features"
        ],
        "summary": "Get the features of the Financial Package",
        "description": "<h2>Get the features of the Financial Package</h2>",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialPackageFeatures"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialPackageFeatures"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialPackageFeatures"
                }
              }
            }
          },
          "202": {
            "description": "Accepted",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncAcceptedResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncAcceptedResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncAcceptedResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/general-journal-entries": {
      "post": {
        "tags": [
          "General"
        ],
        "summary": "Create (or update) general journal entry.",
        "description": "<h2>Create (or update) general journal entry</h2>\n                **TripleTex** The upsert parameter is not supported. A new general journal entry is always created\n                **AfasSB** The upsert parameter is not supported. A new general journal entry is always created\n                **Sage 50 UK** The upsert parameter is not supported. A new general journal entry is always created",
        "parameters": [
          {
            "name": "upsert",
            "in": "query",
            "description": "When an unique **Id is provided**, the record is **looked up by Id**.<br> When the **record is found** by the Id, it is **updated**.<br> When the **record is not found** and **upsert is not set**, an **error** is returned.<br> When the **record is found** and **upsert is set**, it **continues** as described below.<br><br> When an unique **Id is not provided** and **upsert is not set**, a new record is **inserted**.<br> When an unique **Id is not provided** and **upsert is set**, a record is **looked up by natural key**.<br> When the **record is found** by natural key, it is **updated**.<br> When the **record is not found** by natural key, a new record is **inserted**.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/GeneralJournalEntry"
                  }
                ],
                "description": "Represents a GL Journal to be saved to or existing in the financial system.\r\n* Id: Unique id of the journal. Provide when updating the record. \r\n    + ECI Financials: JournalEntry.Id\r\n    + Xero: ManualJournal.ManualJournalID\r\n    + TripleTex: n/a\r\n    + AccountView: JournalEntry.Id\r\n    + PowerOfficeGo: JournalEntry.Id\r\n    + AfasSB: n/a\r\n    + Sage50Uk: n/a\r\n    + Adsolut: n/a"
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/GeneralJournalEntry"
                  }
                ],
                "description": "Represents a GL Journal to be saved to or existing in the financial system.\r\n* Id: Unique id of the journal. Provide when updating the record. \r\n    + ECI Financials: JournalEntry.Id\r\n    + Xero: ManualJournal.ManualJournalID\r\n    + TripleTex: n/a\r\n    + AccountView: JournalEntry.Id\r\n    + PowerOfficeGo: JournalEntry.Id\r\n    + AfasSB: n/a\r\n    + Sage50Uk: n/a\r\n    + Adsolut: n/a"
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/GeneralJournalEntry"
                  }
                ],
                "description": "Represents a GL Journal to be saved to or existing in the financial system.\r\n* Id: Unique id of the journal. Provide when updating the record. \r\n    + ECI Financials: JournalEntry.Id\r\n    + Xero: ManualJournal.ManualJournalID\r\n    + TripleTex: n/a\r\n    + AccountView: JournalEntry.Id\r\n    + PowerOfficeGo: JournalEntry.Id\r\n    + AfasSB: n/a\r\n    + Sage50Uk: n/a\r\n    + Adsolut: n/a"
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/GeneralJournalEntry"
                  }
                ],
                "description": "Represents a GL Journal to be saved to or existing in the financial system.\r\n* Id: Unique id of the journal. Provide when updating the record. \r\n    + ECI Financials: JournalEntry.Id\r\n    + Xero: ManualJournal.ManualJournalID\r\n    + TripleTex: n/a\r\n    + AccountView: JournalEntry.Id\r\n    + PowerOfficeGo: JournalEntry.Id\r\n    + AfasSB: n/a\r\n    + Sage50Uk: n/a\r\n    + Adsolut: n/a"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GeneralJournalEntry"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GeneralJournalEntry"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GeneralJournalEntry"
                }
              }
            }
          },
          "202": {
            "description": "Accepted",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncAcceptedResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncAcceptedResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncAcceptedResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          },
          "501": {
            "description": "Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/tax-codes": {
      "get": {
        "tags": [
          "General"
        ],
        "summary": "Get a list of tax codes.",
        "description": "<h2>Get a list of tax codes.</h2>",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TaxCode"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaxCode"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaxCode"
                }
              }
            }
          },
          "202": {
            "description": "Accepted",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncAcceptedResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncAcceptedResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncAcceptedResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          },
          "501": {
            "description": "Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/bills": {
      "post": {
        "tags": [
          "Purchase"
        ],
        "summary": "Create (or update) a bill.",
        "description": "<h2>Create (or update) a bill.</h2>\n                **TripleTex** The upsert parameter is not supported. A new bill is always created\n                **Sage 50 UK** The upsert parameter is not supported. A new bill is always created",
        "parameters": [
          {
            "name": "upsert",
            "in": "query",
            "description": "When an unique **Id is provided**, the record is **looked up by Id**.<br> When the **record is found** by the Id, it is **updated**.<br> When the **record is not found** and **upsert is not set**, an **error** is returned.<br> When the **record is found** and **upsert is set**, it **continues** as described below.<br><br> When an unique **Id is not provided** and **upsert is not set**, a new record is **inserted**.<br> When an unique **Id is not provided** and **upsert is set**, a record is **looked up by natural key**.<br> When the **record is found** by natural key, it is **updated**.<br> When the **record is not found** by natural key, a new record is **inserted**.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Bill"
                  }
                ],
                "description": "Represents a supplier Bill to be saved to the financial system."
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Bill"
                  }
                ],
                "description": "Represents a supplier Bill to be saved to the financial system."
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Bill"
                  }
                ],
                "description": "Represents a supplier Bill to be saved to the financial system."
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Bill"
                  }
                ],
                "description": "Represents a supplier Bill to be saved to the financial system."
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Bill"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Bill"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Bill"
                }
              }
            }
          },
          "202": {
            "description": "Accepted",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncAcceptedResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncAcceptedResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncAcceptedResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          },
          "501": {
            "description": "Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/bills/{billId}/attachments": {
      "post": {
        "tags": [
          "Purchase"
        ],
        "summary": "Upload a single file and attach to a bill.",
        "description": "<h2> Upload a single file and attach to a bill.</h2>",
        "parameters": [
          {
            "name": "billId",
            "in": "path",
            "description": "The id of the bill to add attachment to.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Attachment"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Attachment"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Attachment"
                }
              }
            }
          },
          "202": {
            "description": "Accepted",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncAcceptedResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncAcceptedResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncAcceptedResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          },
          "501": {
            "description": "Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/paymentblockstatus": {
      "post": {
        "tags": [
          "Purchase"
        ],
        "summary": "Update the payment block status of a bill.",
        "description": "<h2>Update the payment block status of a bill.</h2>",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PaymentBlockStatus"
                  }
                ],
                "description": "<h2>The payable state.</h2>\r\nAt least docNumber or billId should be filled, to be able to lookup the bill."
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PaymentBlockStatus"
                  }
                ],
                "description": "<h2>The payable state.</h2>\r\nAt least docNumber or billId should be filled, to be able to lookup the bill."
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PaymentBlockStatus"
                  }
                ],
                "description": "<h2>The payable state.</h2>\r\nAt least docNumber or billId should be filled, to be able to lookup the bill."
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PaymentBlockStatus"
                  }
                ],
                "description": "<h2>The payable state.</h2>\r\nAt least docNumber or billId should be filled, to be able to lookup the bill."
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentBlockStatus"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentBlockStatus"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentBlockStatus"
                }
              }
            }
          },
          "202": {
            "description": "Accepted",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncAcceptedResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncAcceptedResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncAcceptedResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          },
          "501": {
            "description": "Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/purchase-journal-entries": {
      "post": {
        "tags": [
          "Purchase"
        ],
        "summary": "Create (or update) a purchase journal entry.",
        "description": "<h2>Create (or update) a purchase journal entry.</h2>\n                **TripleTex** The upsert parameter is not supported. A new purchase journal entry is always created\n                **AfasSB** The upsert parameter is not supported. A new purchase journal entry is always created\n                **Sage 50 UK** The upsert parameter is not supported. A new purchase journal entry is always created",
        "parameters": [
          {
            "name": "upsert",
            "in": "query",
            "description": "When an unique **Id is provided**, the record is **looked up by Id**.<br> When the **record is found** by the Id, it is **updated**.<br> When the **record is not found** and **upsert is not set**, an **error** is returned.<br> When the **record is found** and **upsert is set**, it **continues** as described below.<br><br> When an unique **Id is not provided** and **upsert is not set**, a new record is **inserted**.<br> When an unique **Id is not provided** and **upsert is set**, a record is **looked up by natural key**.<br> When the **record is found** by natural key, it is

# --- truncated at 32 KB (216 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/eci-solutions/refs/heads/main/openapi/eci-solutions-financial-v2-openapi.json