{
"data": null,
"code": 403,
"message": "API key does not have the required permission",
"status": "Error",
"errors": [
{
"code": "403",
"message": "API key does not have the required permission",
"field": "API key does not have the required permission"
}
]
}
{
"code": 409,
"message": "The request conflicts with the current state of the resource",
"status": "ERROR",
"data": null,
"errors": [
{
"code": "CONFLICT",
"message": "The request conflicts with the current state of the resource",
"field": null
}
]
}
{
"code": 503,
"message": "Credentials could not be verified right now",
"status": "ERROR",
"data": null,
"errors": [
{
"code": "DIRECTORY_UNAVAILABLE",
"message": "Credentials could not be verified right now",
"field": null
}
]
}
Upload invoice
Uploads invoice files and returns a file_… id for each. Send them as multipart/form-data, part name file, repeated for 1–5 files, each at most 2 MB. Pass the ids in invoiceFileIdList on Submit transaction; a file is linked to a transaction only when you submit it.
{
"data": null,
"code": 403,
"message": "API key does not have the required permission",
"status": "Error",
"errors": [
{
"code": "403",
"message": "API key does not have the required permission",
"field": "API key does not have the required permission"
}
]
}
{
"code": 409,
"message": "The request conflicts with the current state of the resource",
"status": "ERROR",
"data": null,
"errors": [
{
"code": "CONFLICT",
"message": "The request conflicts with the current state of the resource",
"field": null
}
]
}
{
"code": 503,
"message": "Credentials could not be verified right now",
"status": "ERROR",
"data": null,
"errors": [
{
"code": "DIRECTORY_UNAVAILABLE",
"message": "Credentials could not be verified right now",
"field": null
}
]
}
The API version this request targets. Required on every /api/v0/* call. Format YYYY-MM.<release>; 2026-09.1 is the latest. The version that served the request is echoed back on the response. Missing, malformed or unsupported values are rejected with 400.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Endl API","description":"Official API documentation for the Endl platform.","colors":{"primary":"#245FFE","light":"#5280FE","dark":"#013FE9"},"logo":{"light":"https://mintcdn.com/zaymentfinanceltd/vAyX8M6UjfgZPY1s/logo/endl-api-light-mode.svg?fit=max\u0026auto=format\u0026n=vAyX8M6UjfgZPY1s\u0026q=85\u0026s=317a3d2271242ccb4a73e8c8cc70884d","dark":"https://mintcdn.com/zaymentfinanceltd/vAyX8M6UjfgZPY1s/logo/endl-api-dark-mode.svg?fit=max\u0026auto=format\u0026n=vAyX8M6UjfgZPY1s\u0026q=85\u0026s=b136951611411c621ca45b782a881f95"},"favicon":"https://mintcdn.com/zaymentfinanceltd/vAyX8M6UjfgZPY1s/favicon.svg?fit=max\u0026auto=format\u0026n=vAyX8M6UjfgZPY1s\u0026q=85\u0026s=535b7fe6b8d30064c6319f5c6521341a","api":{"playground":{"proxy":false}},"footer":{"socials":{"website":"https://endl.io"}},"styling":{"eyebrows":"breadcrumbs","latex":true},"contextual":{"options":["copy","view","chatgpt","claude","mcp","cursor","vscode"],"display":"header"},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"zaymentfinanceltd","hasAudioNarration":false,"actualSubdomain":"zaymentfinanceltd","customDomains":["docs.endl.io"],"gitSource":{"type":"github","owner":"endl-team","repo":"endl-api-documentation-repo","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adf033c8c0a1951943f3472","collectionId":"ee77d0eb-1dd7-4637-8099-0460519d2752","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adf033c8c0a1951943f3472"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6adf033c8c0a1951943f3472","clientVersion":"0.0.3971","searchFilterCounts":[{"language":"default","tag":"API reference","count":128},{"language":"default","tag":"Endpoints","count":123},{"language":"default","tag":"Cards","count":28},{"language":"default","tag":"POBO","count":16},{"language":"default","tag":"Webhooks","count":15},{"language":"default","tag":"Onboarding","count":14},{"language":"default","tag":"Guides","count":14},{"language":"default","tag":"Accounts","count":12},{"language":"default","tag":"Gift Cards","count":11},{"language":"default","tag":"Transactions","count":7}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#sidebar li[data-group-tag]>button{font-weight:600;background-color:rgba(100,116,139,.12);margin-bottom:2px}#sidebar li[data-group-tag]>button:hover{background-color:rgba(100,116,139,.2)}html.dark #sidebar li[data-group-tag]>button{background-color:rgba(148,163,184,.13)}html.dark #sidebar li[data-group-tag]>button:hover{background-color:rgba(148,163,184,.22)}#sidebar li[data-group-tag][data-active=true]>button{color:#013fe9;background-color:rgba(36,95,254,.16)}#sidebar li[data-group-tag][data-active=true]>button:hover{background-color:rgba(36,95,254,.22)}#sidebar li[data-group-tag][data-active=true]>button svg{color:#013fe9;opacity:1}html.dark #sidebar li[data-group-tag][data-active=true]>button{color:#5280fe;background-color:rgba(82,128,254,.22)}html.dark #sidebar li[data-group-tag][data-active=true]>button:hover{background-color:rgba(82,128,254,.3)}html.dark #sidebar li[data-group-tag][data-active=true]>button svg{color:#5280fe;opacity:1}#sidebar a[aria-current=page]{position:relative;font-weight:600;background-color:rgba(36,95,254,.16)}#sidebar a[aria-current=page]::before{content:\"\";position:absolute;left:0;top:.3rem;bottom:.3rem;width:3px;border-radius:0 2px 2px 0;background:#245ffe}html.dark #sidebar a[aria-current=page]{background-color:rgba(82,128,254,.22)}html.dark #sidebar a[aria-current=page]::before{background:#5280fe}#sidebar a[aria-current=page] span{opacity:1}body:has([role=dialog]) #search-bar-entry{visibility:hidden}body:has([role=dialog])::before{content:\"\";position:fixed;inset:0;z-index:30;background:rgba(2,6,23,.45);backdrop-filter:blur(2px);pointer-events:none}a[href*=\"utm_campaign=poweredBy\"]{display:none!important}"}],"page":{"pagePath":"api-reference/transactions/upload-invoice","slug":"/api-reference/transactions/upload-invoice","pageMetadata":{"title":"Upload invoice","openapi":"api-reference/endl-partner-api.json POST /api/v0/transactions/{userId}/invoice-upload","description":"Uploads invoice files and returns a `file_…` id for each. Send them as `multipart/form-data`, part name `file`, repeated for 1–5 files, each at most 2 MB. Pass the ids in `invoiceFileIdList` on [Submit transaction](/api-reference/transactions/submit-transaction); a file is linked to a transaction only when you submit it.","href":"/api-reference/transactions/upload-invoice"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Uploads invoice files and returns a \", _jsx(_components.code, {\n children: \"file_…\"\n }), \" id for each. Send them as \", _jsx(_components.code, {\n children: \"multipart/form-data\"\n }), \", part name \", _jsx(_components.code, {\n children: \"file\"\n }), \", repeated for 1–5 files, each at most 2 MB. Pass the ids in \", _jsx(_components.code, {\n children: \"invoiceFileIdList\"\n }), \" on \", _jsx(_components.a, {\n href: \"/api-reference/transactions/submit-transaction\",\n children: \"Submit transaction\"\n }), \"; a file is linked to a transaction only when you submit it.\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Upload invoice","openapi":"api-reference/endl-partner-api.json POST /api/v0/transactions/{userId}/invoice-upload","description":"Uploads invoice files and returns a `file_…` id for each. Send them as `multipart/form-data`, part name `file`, repeated for 1–5 files, each at most 2 MB. Pass the ids in `invoiceFileIdList` on [Submit transaction](/api-reference/transactions/submit-transaction); a file is linked to a transaction only when you submit it.","href":"/api-reference/transactions/upload-invoice"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/zaymentfinanceltd/d373d43d77eb6813/custom.js"],"openApiReferenceData":{"operation":{"tags":["Transactions"],"summary":"Upload invoice","description":"Uploads invoice files and returns a `file_…` id for each. Send them as `multipart/form-data`, part name `file`, repeated for 1–5 files, each at most 2 MB. Pass the ids in `invoiceFileIdList` on [Submit transaction](/api-reference/transactions/submit-transaction); a file is linked to a transaction only when you submit it.","parameters":["e233f51e-a117-4508-bf4a-41771a7ab8b8","903d2e91-2142-4e01-8949-5485329227a2"],"requestBody":"75a482dd-c739-43f1-8030-c0e78d2bb39a","responses":{"200":"1a40773a-d8e6-46d4-bdd9-efb8fdbf1f38","400":"537d4161-dd55-47e8-b2f8-e69a1af394f6","401":"545fab14-0901-4ed9-a8d8-bc5a75400ede","403":"f2064f0c-968e-423f-bb2e-9ba1c1edfff4","404":"d175bec4-4d01-42db-a5dd-5457190c909e","409":"1c3b80b3-b922-4b19-8d84-6a7f169352ee","429":"7ea76898-c95a-4305-a7b3-c9dfa4ad6c89","500":"9b988230-e715-405f-a09d-27208a5cec72","502":"ccb2ef28-030c-4ab0-9b3d-d125206c87f0","503":"06d22ead-df1f-45a0-bad5-63947d40099d"},"method":"post","type":"path","servers":["bc33a2d9-c66f-4f15-a24d-5948ed2274d0"],"security":["4a6b0ab2-c34f-4116-8278-64644557d48c"],"path":"/api/v0/transactions/{userId}/invoice-upload","baseUrlOptions":["https://api-sandbox.endl.io"],"title":"Upload invoice","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated","disableProxy":true},"dependencies":{"parameters":{"e233f51e-a117-4508-bf4a-41771a7ab8b8":{"name":"Api-Version","in":"header","required":true,"description":"The API version this request targets. Required on every `/api/v0/*` call. Format `YYYY-MM.\u003crelease>`; `2026-09.1` is the latest. The version that served the request is echoed back on the response. Missing, malformed or unsupported values are rejected with `400`.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}\\.\\d+$","default":"2026-09.1","isRequired":true,"description":"The API version this request targets. Required on every `/api/v0/*` call. Format `YYYY-MM.\u003crelease>`; `2026-09.1` is the latest. The version that served the request is echoed back on the response. Missing, malformed or unsupported values are rejected with `400`.","uniqueKey":"","typeLabel":"string"},"example":"2026-09.1"},"903d2e91-2142-4e01-8949-5485329227a2":{"name":"userId","in":"path","required":true,"description":"The customer — a `cus_…` reference id.","schema":{"type":"string","example":"cus_3HfG8kLp2QwE7rTy9UiO","isRequired":true,"description":"The customer — a `cus_…` reference id.","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["file"],"properties":{"file":{"type":"array","description":"The invoice files: 1–5, each at most 2 MB.","items":{"type":"string","format":"binary","uniqueKey":"file.items.[INDEX]","typeLabel":"file"},"isRequired":true,"uniqueKey":"file","typeLabel":"file[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"file":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"1a40773a-d8e6-46d4-bdd9-efb8fdbf1f38":{"description":"The uploaded files. **Unwrapped.**","content":{"application/json":{"schema":{"type":"object","properties":{"fileUploads":{"type":"array","description":"One entry per file, in upload order.","items":{"type":"object","properties":{"invoiceFileId":{"type":"string","description":"`file_…` id. Pass in `invoiceFileIdList` on submit.","uniqueKey":"fileUploads.items.[INDEX].invoiceFileId","typeLabel":"string"}},"uniqueKey":"fileUploads.items.[INDEX]","typeLabel":"object"},"uniqueKey":"fileUploads","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"fileUploads":[{"invoiceFileId":"file_Q8w7E6r5T4y3U2i1O0pA"},{"invoiceFileId":"file_Z1x2C3v4B5n6M7a8S9dF"}]},"examples":{"Example":{"title":"Example","value":{"fileUploads":[{"invoiceFileId":"file_Q8w7E6r5T4y3U2i1O0pA"},{"invoiceFileId":"file_Z1x2C3v4B5n6M7a8S9dF"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"537d4161-dd55-47e8-b2f8-e69a1af394f6":{"description":"Validation failed, or the API key lacks the required permission.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer","example":400,"description":"The HTTP status, repeated in the body.","uniqueKey":"code","typeLabel":"integer"},"message":{"type":"string","example":"Validation failed","description":"A human-readable summary of the failure.","uniqueKey":"message","typeLabel":"string"},"status":{"type":"string","example":"ERROR","description":"`ERROR` on failure; `SUCCESS` on the equivalent success envelope.","uniqueKey":"status","typeLabel":"string"},"data":{"oneOf":[{"type":"object","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.0","typeLabel":"object"},{"type":"null","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.1","typeLabel":"null"}],"uniqueKey":"data","typeLabel":"object | null"},"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ERRACC_1009","description":"Stable machine-readable error code, `ERR\u003cMODULE>_\u003cnnnn>`. Match on this, never on `message`. See the [error catalogue](/api-reference/error-codes).","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"must not be blank","description":"What is wrong with this specific field.","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"field":{"type":"string","example":"sourceAmount","description":"Which request field the problem refers to, or `null` when the error is not about a specific input.","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"One entry per field that failed validation. Empty for failures that are not field-level.","uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":400,"message":"Validation failed","status":"ERROR","data":null,"errors":[{"code":"VALIDATION_ERROR","message":"Validation failed","field":"amount"}]},"examples":{"Example":{"title":"Example","value":{"code":400,"message":"Validation failed","status":"ERROR","data":null,"errors":[{"code":"VALIDATION_ERROR","message":"Validation failed","field":"amount"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"545fab14-0901-4ed9-a8d8-bc5a75400ede":{"description":"Missing or invalid API credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer","example":400,"description":"The HTTP status, repeated in the body.","uniqueKey":"code","typeLabel":"integer"},"message":{"type":"string","example":"Validation failed","description":"A human-readable summary of the failure.","uniqueKey":"message","typeLabel":"string"},"status":{"type":"string","example":"ERROR","description":"`ERROR` on failure; `SUCCESS` on the equivalent success envelope.","uniqueKey":"status","typeLabel":"string"},"data":{"oneOf":[{"type":"object","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.0","typeLabel":"object"},{"type":"null","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.1","typeLabel":"null"}],"uniqueKey":"data","typeLabel":"object | null"},"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ERRACC_1009","description":"Stable machine-readable error code, `ERR\u003cMODULE>_\u003cnnnn>`. Match on this, never on `message`. See the [error catalogue](/api-reference/error-codes).","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"must not be blank","description":"What is wrong with this specific field.","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"field":{"type":"string","example":"sourceAmount","description":"Which request field the problem refers to, or `null` when the error is not about a specific input.","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"One entry per field that failed validation. Empty for failures that are not field-level.","uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"data":null,"code":401,"message":"Authentication Failed!","status":"Error","errors":[{"code":"401","message":"Authentication Failed!","field":"Authentication Failed!"}]},"examples":{"Example":{"title":"Example","value":{"data":null,"code":401,"message":"Authentication Failed!","status":"Error","errors":[{"code":"401","message":"Authentication Failed!","field":"Authentication Failed!"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"f2064f0c-968e-423f-bb2e-9ba1c1edfff4":{"description":"A valid key that lacks the permission this endpoint requires. Raised at the edge.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer","example":400,"description":"The HTTP status, repeated in the body.","uniqueKey":"code","typeLabel":"integer"},"message":{"type":"string","example":"Validation failed","description":"A human-readable summary of the failure.","uniqueKey":"message","typeLabel":"string"},"status":{"type":"string","example":"ERROR","description":"`ERROR` on failure; `SUCCESS` on the equivalent success envelope.","uniqueKey":"status","typeLabel":"string"},"data":{"oneOf":[{"type":"object","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.0","typeLabel":"object"},{"type":"null","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.1","typeLabel":"null"}],"uniqueKey":"data","typeLabel":"object | null"},"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ERRACC_1009","description":"Stable machine-readable error code, `ERR\u003cMODULE>_\u003cnnnn>`. Match on this, never on `message`. See the [error catalogue](/api-reference/error-codes).","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"must not be blank","description":"What is wrong with this specific field.","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"field":{"type":"string","example":"sourceAmount","description":"Which request field the problem refers to, or `null` when the error is not about a specific input.","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"One entry per field that failed validation. Empty for failures that are not field-level.","uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"data":null,"code":403,"message":"API key does not have the required permission","status":"Error","errors":[{"code":"403","message":"API key does not have the required permission","field":"API key does not have the required permission"}]},"examples":{"Example":{"title":"Example","value":{"data":null,"code":403,"message":"API key does not have the required permission","status":"Error","errors":[{"code":"403","message":"API key does not have the required permission","field":"API key does not have the required permission"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"d175bec4-4d01-42db-a5dd-5457190c909e":{"description":"No such resource, or it belongs to another partner.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer","example":400,"description":"The HTTP status, repeated in the body.","uniqueKey":"code","typeLabel":"integer"},"message":{"type":"string","example":"Validation failed","description":"A human-readable summary of the failure.","uniqueKey":"message","typeLabel":"string"},"status":{"type":"string","example":"ERROR","description":"`ERROR` on failure; `SUCCESS` on the equivalent success envelope.","uniqueKey":"status","typeLabel":"string"},"data":{"oneOf":[{"type":"object","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.0","typeLabel":"object"},{"type":"null","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.1","typeLabel":"null"}],"uniqueKey":"data","typeLabel":"object | null"},"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ERRACC_1009","description":"Stable machine-readable error code, `ERR\u003cMODULE>_\u003cnnnn>`. Match on this, never on `message`. See the [error catalogue](/api-reference/error-codes).","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"must not be blank","description":"What is wrong with this specific field.","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"field":{"type":"string","example":"sourceAmount","description":"Which request field the problem refers to, or `null` when the error is not about a specific input.","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"One entry per field that failed validation. Empty for failures that are not field-level.","uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":404,"message":"Resource not found","status":"ERROR","data":null,"errors":[{"code":"NOT_FOUND","message":"Resource not found","field":null}]},"examples":{"Example":{"title":"Example","value":{"code":404,"message":"Resource not found","status":"ERROR","data":null,"errors":[{"code":"NOT_FOUND","message":"Resource not found","field":null}]}}},"exampleType":"examples"}},"exampleType":"examples"},"1c3b80b3-b922-4b19-8d84-6a7f169352ee":{"description":"The request conflicts with the current state of the resource.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer","example":400,"description":"The HTTP status, repeated in the body.","uniqueKey":"code","typeLabel":"integer"},"message":{"type":"string","example":"Validation failed","description":"A human-readable summary of the failure.","uniqueKey":"message","typeLabel":"string"},"status":{"type":"string","example":"ERROR","description":"`ERROR` on failure; `SUCCESS` on the equivalent success envelope.","uniqueKey":"status","typeLabel":"string"},"data":{"oneOf":[{"type":"object","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.0","typeLabel":"object"},{"type":"null","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.1","typeLabel":"null"}],"uniqueKey":"data","typeLabel":"object | null"},"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ERRACC_1009","description":"Stable machine-readable error code, `ERR\u003cMODULE>_\u003cnnnn>`. Match on this, never on `message`. See the [error catalogue](/api-reference/error-codes).","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"must not be blank","description":"What is wrong with this specific field.","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"field":{"type":"string","example":"sourceAmount","description":"Which request field the problem refers to, or `null` when the error is not about a specific input.","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"One entry per field that failed validation. Empty for failures that are not field-level.","uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":409,"message":"The request conflicts with the current state of the resource","status":"ERROR","data":null,"errors":[{"code":"CONFLICT","message":"The request conflicts with the current state of the resource","field":null}]},"examples":{"Example":{"title":"Example","value":{"code":409,"message":"The request conflicts with the current state of the resource","status":"ERROR","data":null,"errors":[{"code":"CONFLICT","message":"The request conflicts with the current state of the resource","field":null}]}}},"exampleType":"examples"}},"exampleType":"examples"},"7ea76898-c95a-4305-a7b3-c9dfa4ad6c89":{"description":"The per-API-key request rate limit was exceeded. Carries `X-RateLimit-Limit` and `X-RateLimit-Remaining`.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer","example":400,"description":"The HTTP status, repeated in the body.","uniqueKey":"code","typeLabel":"integer"},"message":{"type":"string","example":"Validation failed","description":"A human-readable summary of the failure.","uniqueKey":"message","typeLabel":"string"},"status":{"type":"string","example":"ERROR","description":"`ERROR` on failure; `SUCCESS` on the equivalent success envelope.","uniqueKey":"status","typeLabel":"string"},"data":{"oneOf":[{"type":"object","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.0","typeLabel":"object"},{"type":"null","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.1","typeLabel":"null"}],"uniqueKey":"data","typeLabel":"object | null"},"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ERRACC_1009","description":"Stable machine-readable error code, `ERR\u003cMODULE>_\u003cnnnn>`. Match on this, never on `message`. See the [error catalogue](/api-reference/error-codes).","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"must not be blank","description":"What is wrong with this specific field.","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"field":{"type":"string","example":"sourceAmount","description":"Which request field the problem refers to, or `null` when the error is not about a specific input.","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"One entry per field that failed validation. Empty for failures that are not field-level.","uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"data":null,"code":429,"message":"Rate limit exceeded, please retry later","status":"Error","errors":[{"code":"429","message":"Rate limit exceeded, please retry later","field":"Rate limit exceeded, please retry later"}]},"examples":{"Example":{"title":"Example","value":{"data":null,"code":429,"message":"Rate limit exceeded, please retry later","status":"Error","errors":[{"code":"429","message":"Rate limit exceeded, please retry later","field":"Rate limit exceeded, please retry later"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"9b988230-e715-405f-a09d-27208a5cec72":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer","example":400,"description":"The HTTP status, repeated in the body.","uniqueKey":"code","typeLabel":"integer"},"message":{"type":"string","example":"Validation failed","description":"A human-readable summary of the failure.","uniqueKey":"message","typeLabel":"string"},"status":{"type":"string","example":"ERROR","description":"`ERROR` on failure; `SUCCESS` on the equivalent success envelope.","uniqueKey":"status","typeLabel":"string"},"data":{"oneOf":[{"type":"object","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.0","typeLabel":"object"},{"type":"null","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.1","typeLabel":"null"}],"uniqueKey":"data","typeLabel":"object | null"},"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ERRACC_1009","description":"Stable machine-readable error code, `ERR\u003cMODULE>_\u003cnnnn>`. Match on this, never on `message`. See the [error catalogue](/api-reference/error-codes).","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"must not be blank","description":"What is wrong with this specific field.","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"field":{"type":"string","example":"sourceAmount","description":"Which request field the problem refers to, or `null` when the error is not about a specific input.","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"One entry per field that failed validation. Empty for failures that are not field-level.","uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":500,"message":"Unexpected error","status":"ERROR","data":null,"errors":[{"code":"INTERNAL_ERROR","message":"Unexpected error","field":null}]},"examples":{"Example":{"title":"Example","value":{"code":500,"message":"Unexpected error","status":"ERROR","data":null,"errors":[{"code":"INTERNAL_ERROR","message":"Unexpected error","field":null}]}}},"exampleType":"examples"}},"exampleType":"examples"},"ccb2ef28-030c-4ab0-9b3d-d125206c87f0":{"description":"Endl could not reach the service behind the edge. Retry with backoff.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer","example":400,"description":"The HTTP status, repeated in the body.","uniqueKey":"code","typeLabel":"integer"},"message":{"type":"string","example":"Validation failed","description":"A human-readable summary of the failure.","uniqueKey":"message","typeLabel":"string"},"status":{"type":"string","example":"ERROR","description":"`ERROR` on failure; `SUCCESS` on the equivalent success envelope.","uniqueKey":"status","typeLabel":"string"},"data":{"oneOf":[{"type":"object","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.0","typeLabel":"object"},{"type":"null","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.1","typeLabel":"null"}],"uniqueKey":"data","typeLabel":"object | null"},"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ERRACC_1009","description":"Stable machine-readable error code, `ERR\u003cMODULE>_\u003cnnnn>`. Match on this, never on `message`. See the [error catalogue](/api-reference/error-codes).","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"must not be blank","description":"What is wrong with this specific field.","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"field":{"type":"string","example":"sourceAmount","description":"Which request field the problem refers to, or `null` when the error is not about a specific input.","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"One entry per field that failed validation. Empty for failures that are not field-level.","uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"data":null,"code":502,"message":"Upstream service error","status":"Error","errors":null},"examples":{"Example":{"title":"Example","value":{"data":null,"code":502,"message":"Upstream service error","status":"Error","errors":null}}},"exampleType":"examples"}},"exampleType":"examples"},"06d22ead-df1f-45a0-bad5-63947d40099d":{"description":"Credentials could not be verified right now. Retry with backoff.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer","example":400,"description":"The HTTP status, repeated in the body.","uniqueKey":"code","typeLabel":"integer"},"message":{"type":"string","example":"Validation failed","description":"A human-readable summary of the failure.","uniqueKey":"message","typeLabel":"string"},"status":{"type":"string","example":"ERROR","description":"`ERROR` on failure; `SUCCESS` on the equivalent success envelope.","uniqueKey":"status","typeLabel":"string"},"data":{"oneOf":[{"type":"object","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.0","typeLabel":"object"},{"type":"null","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.1","typeLabel":"null"}],"uniqueKey":"data","typeLabel":"object | null"},"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ERRACC_1009","description":"Stable machine-readable error code, `ERR\u003cMODULE>_\u003cnnnn>`. Match on this, never on `message`. See the [error catalogue](/api-reference/error-codes).","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"must not be blank","description":"What is wrong with this specific field.","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"field":{"type":"string","example":"sourceAmount","description":"Which request field the problem refers to, or `null` when the error is not about a specific input.","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"One entry per field that failed validation. Empty for failures that are not field-level.","uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":503,"message":"Credentials could not be verified right now","status":"ERROR","data":null,"errors":[{"code":"DIRECTORY_UNAVAILABLE","message":"Credentials could not be verified right now","field":null}]},"examples":{"Example":{"title":"Example","value":{"code":503,"message":"Credentials could not be verified right now","status":"ERROR","data":null,"errors":[{"code":"DIRECTORY_UNAVAILABLE","message":"Credentials could not be verified right now","field":null}]}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"4a6b0ab2-c34f-4116-8278-64644557d48c":{"apiKey":{"type":"apiKey","in":"header","name":"API-KEY","description":"Your partner API key.","scopes":[],"schemeName":"apiKey"}}},"servers":{"bc33a2d9-c66f-4f15-a24d-5948ed2274d0":{"url":"https://api-sandbox.endl.io","description":"Sandbox"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"API-KEY","description":"Your partner API key.","scopes":[],"schemeName":"apiKey"},"schema":{"title":"API-KEY","type":"string","description":"Your partner API key.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"apiKey","name":"API-KEY"}],"title":"apiKey"}]},"originalFileLocation":"api-reference/endl-partner-api.json"},"subdomain":"zaymentfinanceltd","siteName":"Endl API","title":"Upload invoice - Endl API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-26T07:37:44.568Z","originalFileLocation":"api-reference/transactions/upload-invoice.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Uploads invoice files and returns a file_… id for each. Send them as multipart/form-data, part name file, repeated for 1–5 files, each at most 2 MB. Pass the ids in invoiceFileIdList on Submit transaction; a file is linked to a transaction only when you submit it.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Endl API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/zaymentfinanceltd/V4tezyHprXdvGDz0/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/zaymentfinanceltd/V4tezyHprXdvGDz0/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/zaymentfinanceltd/V4tezyHprXdvGDz0/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/zaymentfinanceltd/V4tezyHprXdvGDz0/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/zaymentfinanceltd/V4tezyHprXdvGDz0/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/zaymentfinanceltd/V4tezyHprXdvGDz0/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/zaymentfinanceltd/V4tezyHprXdvGDz0/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/zaymentfinanceltd/V4tezyHprXdvGDz0/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/zaymentfinanceltd/V4tezyHprXdvGDz0/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Upload invoice - Endl API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Uploads invoice files and returns a file_… id for each. Send them as multipart/form-data, part name file, repeated for 1–5 files, each at most 2 MB. Pass the ids in invoiceFileIdList on Submit transaction; a file is linked to a transaction only when you submit it.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Endl API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.endl.io/api-reference/transactions/upload-invoice\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://zaymentfinanceltd.mintlify.app/_mintlify/api/og/v2?division=Transactions\u0026amp;title=Upload+invoice\u0026amp;description=Uploads+invoice+files+and+returns+a+%60file_%E2%80%A6%60+id+for+each.+Send+them+as+%60multipart%2Fform-data%60%2C+part+name+%60file%60%2C+repeated+for+1%E2%80%935+files%2C+each+at+most+2+MB.+Pass+\u0026amp;theme=668efa5ed0467f58a90d23e2\u0026amp;signature=2b0f4be6838e786dc7761188eb2eb7b1bcf7d954fb59a3fb309a2095ad12593b\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Upload invoice - Endl API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Uploads invoice files and returns a file_… id for each. Send them as multipart/form-data, part name file, repeated for 1–5 files, each at most 2 MB. Pass the ids in invoiceFileIdList on Submit transaction; a file is linked to a transaction only when you submit it.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://zaymentfinanceltd.mintlify.app/_mintlify/api/og/v2?division=Transactions\u0026amp;title=Upload+invoice\u0026amp;description=Uploads+invoice+files+and+returns+a+%60file_%E2%80%A6%60+id+for+each.+Send+them+as+%60multipart%2Fform-data%60%2C+part+name+%60file%60%2C+repeated+for+1%E2%80%935+files%2C+each+at+most+2+MB.+Pass+\u0026amp;theme=668efa5ed0467f58a90d23e2\u0026amp;signature=2b0f4be6838e786dc7761188eb2eb7b1bcf7d954fb59a3fb309a2095ad12593b\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/zaymentfinanceltd/V4tezyHprXdvGDz0/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Endl API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#245FFE\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.endl.io/api-reference/transactions/upload-invoice\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/transactions/upload-invoice.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.endl.io/#organization\",\"name\":\"Endl API\",\"url\":\"https://docs.endl.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/zaymentfinanceltd/vAyX8M6UjfgZPY1s/logo/endl-api-light-mode.svg?fit=max\u0026auto=format\u0026n=vAyX8M6UjfgZPY1s\u0026q=85\u0026s=317a3d2271242ccb4a73e8c8cc70884d\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.endl.io#website\",\"name\":\"Endl API\",\"url\":\"https://docs.endl.io\",\"publisher\":{\"@id\":\"https://docs.endl.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.endl.io/api-reference/transactions/upload-invoice#webpage\",\"url\":\"https://docs.endl.io/api-reference/transactions/upload-invoice\",\"name\":\"Upload invoice\",\"description\":\"Uploads invoice files and returns a file_… id for each. Send them as multipart/form-data, part name file, repeated for 1–5 files, each at most 2 MB. Pass the ids in invoiceFileIdList on Submit transaction; a file is linked to a transaction only when you submit it.\",\"dateModified\":\"2026-10-26T07:37:44.568Z\",\"isPartOf\":{\"@id\":\"https://docs.endl.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.endl.io/api-reference/transactions/upload-invoice#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.endl.io/api-reference/transactions/upload-invoice#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.endl.io/api-reference/onboarding/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Transactions\",\"item\":\"https://docs.endl.io/api-reference/transactions/create-pre-transaction\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Upload invoice\",\"item\":\"https://docs.endl.io/api-reference/transactions/upload-invoice\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.endl.io/api-reference/transactions/upload-invoice#apireference\",\"headline\":\"Upload invoice\",\"name\":\"Upload invoice\",\"description\":\"Uploads invoice files and returns a file_… id for each. Send them as multipart/form-data, part name file, repeated for 1–5 files, each at most 2 MB. Pass the ids in invoiceFileIdList on Submit transaction; a file is linked to a transaction only when you submit it.\",\"url\":\"https://docs.endl.io/api-reference/transactions/upload-invoice\",\"mainEntityOfPage\":{\"@id\":\"https://docs.endl.io/api-reference/transactions/upload-invoice#webpage\"},\"dateModified\":\"2026-10-26T07:37:44.568Z\",\"publisher\":{\"@id\":\"https://docs.endl.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.endl.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Endl API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Endl API","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"API reference","groups":[{"group":"Introduction","pages":[{"title":"API reference overview","href":"/api-reference/introduction"},{"title":"Authentication","href":"/api-reference/authentication"},{"title":"Versioning","href":"/api-reference/versioning"},{"title":"Errors and the response envelope","href":"/api-reference/errors"},{"title":"Error codes","href":"/api-reference/error-codes"}]},{"group":"Endpoints","pages":[{"group":"Onboarding","expanded":true,"pages":[{"title":"Onboarding overview","href":"/api-reference/onboarding/introduction"},{"title":"Errors and lifecycle","href":"/api-reference/onboarding/errors"},{"title":"Individual (KYC)","href":"/api-reference/onboarding/individual-kyc"},{"title":"Business (KYB)","href":"/api-reference/onboarding/business-kyb"},{"title":"Create customer","openapi":"api-reference/endl-onboarding-api.json POST /api/v0/customer","href":"/api-reference/onboarding/create-customer"},{"title":"Get customer","openapi":"api-reference/endl-onboarding-api.json GET /api/v0/customer/{userId}","href":"/api-reference/onboarding/get-customer"},{"title":"Update customer","openapi":"api-reference/endl-onboarding-api.json PUT /api/v0/customer/{userId}","href":"/api-reference/onboarding/update-customer"},{"title":"List customers","openapi":"api-reference/endl-onboarding-api.json GET /api/v0/customer","href":"/api-reference/onboarding/list-customers"},{"title":"Delete customer","openapi":"api-reference/endl-onboarding-api.json DELETE /api/v0/customer/{userId}","href":"/api-reference/onboarding/delete-customer"},{"title":"Generate KYC link","openapi":"api-reference/endl-onboarding-api.json POST /api/v0/customer/{userId}/kyc-link","href":"/api-reference/onboarding/generate-kyc-link"},{"title":"Upload document","openapi":"api-reference/endl-onboarding-api.json POST /api/v0/customer/{userId}/documents","href":"/api-reference/onboarding/upload-document"},{"title":"Upload owner document","openapi":"api-reference/endl-onboarding-api.json POST /api/v0/customer/{userId}/ubo/{uboRef}/documents","href":"/api-reference/onboarding/upload-ubo-document"},{"title":"Questionnaire reference","href":"/api-reference/onboarding/questionnaires"},{"title":"Country restrictions","href":"/api-reference/onboarding/country-restrictions"}]},{"group":"Reference data","expanded":true,"pages":[{"title":"List currencies","openapi":"api-reference/endl-partner-api.json GET /api/v0/currencies","href":"/api-reference/reference/list-currencies"},{"title":"List countries","openapi":"api-reference/endl-partner-api.json GET /api/v0/countries","href":"/api-reference/reference/list-countries"},{"title":"List occupations","openapi":"api-reference/endl-partner-api.json GET /api/v0/occupations","href":"/api-reference/reference/list-occupations"},{"title":"List rails","openapi":"api-reference/endl-partner-api.json GET /api/v0/rails","href":"/api-reference/reference/list-rails"},{"title":"Get recipient fields","openapi":"api-reference/endl-partner-api.json GET /api/v0/recipient-fields","href":"/api-reference/reference/get-recipient-fields"},{"title":"Get sender fields","openapi":"api-reference/endl-partner-api.json GET /api/v0/sender-fields","href":"/api-reference/reference/get-sender-fields"}]},{"group":"Wallets","expanded":true,"pages":[{"title":"List wallets","openapi":"api-reference/endl-partner-api.json GET /api/v0/wallets/{userId}","href":"/api-reference/wallets/list-wallets"},{"title":"Create wallet","openapi":"api-reference/endl-partner-api.json POST /api/v0/wallets/{userId}","href":"/api-reference/wallets/create-wallet"},{"title":"Get wallet","openapi":"api-reference/endl-partner-api.json GET /api/v0/wallets/{userId}/{walletId}","href":"/api-reference/wallets/get-wallet"},{"title":"Get wallet balance","openapi":"api-reference/endl-partner-api.json GET /api/v0/wallets/{userId}/{walletId}/balance","href":"/api-reference/wallets/get-wallet-balance"},{"title":"Update wallet","openapi":"api-reference/endl-partner-api.json PATCH /api/v0/wallets/{userId}/{walletId}","href":"/api-reference/wallets/update-wallet"},{"title":"Delete wallet","openapi":"api-reference/endl-partner-api.json DELETE /api/v0/wallets/{userId}/{walletId}","href":"/api-reference/wallets/delete-wallet"}]},{"group":"Accounts","expanded":true,"pages":[{"title":"Accounts API","href":"/api-reference/accounts/introduction"},{"title":"Account statuses","href":"/api-reference/accounts/statuses"},{"title":"Open account","openapi":"api-reference/endl-partner-api.json POST /api/v0/accounts/{userId}","href":"/api-reference/accounts/open-account"},{"title":"List accounts","openapi":"api-reference/endl-partner-api.json GET /api/v0/accounts/{userId}","href":"/api-reference/accounts/list-accounts"},{"title":"List currencies available for opening","openapi":"api-reference/endl-partner-api.json GET /api/v0/accounts/{userId}/available-for-opening","href":"/api-reference/accounts/list-accounts-available-for-opening"},{"title":"Get account","openapi":"api-reference/endl-partner-api.json GET /api/v0/accounts/{userId}/{accountId}","href":"/api-reference/accounts/get-account"},{"title":"Get account balance","openapi":"api-reference/endl-partner-api.json GET /api/v0/accounts/{userId}/{accountId}/balance","href":"/api-reference/accounts/get-account-balance"},{"title":"Get account activity","openapi":"api-reference/endl-partner-api.json GET /api/v0/accounts/{userId}/{accountId}/activity","href":"/api-reference/accounts/get-account-activity"},{"title":"Activate account","openapi":"api-reference/endl-partner-api.json PATCH /api/v0/accounts/{userId}/{accountId}/activate","href":"/api-reference/accounts/activate-account"},{"title":"Deactivate account","openapi":"api-reference/endl-partner-api.json PATCH /api/v0/accounts/{userId}/{accountId}/deactivate","href":"/api-reference/accounts/deactivate-account"},{"title":"Response by currency","href":"/api-reference/accounts/response-by-currency"},{"title":"Accounts errors","href":"/api-reference/accounts/errors"}]},{"group":"Quotes","expanded":true,"pages":[{"title":"Generate quote","openapi":"api-reference/endl-partner-api.json POST /api/v0/quotes/{userId}/generate","href":"/api-reference/quotes/generate-quote"},{"title":"Get quote","openapi":"api-reference/endl-partner-api.json GET /api/v0/quotes/{userId}/{quoteId}","href":"/api-reference/quotes/get-quote"}]},{"group":"Recipients","expanded":true,"pages":[{"title":"Add recipient","openapi":"api-reference/endl-partner-api.json POST /api/v0/recipients/{userId}","href":"/api-reference/recipients/add-recipient"},{"title":"List recipients","openapi":"api-reference/endl-partner-api.json POST /api/v0/recipients/{userId}/all","href":"/api-reference/recipients/list-recipients"},{"title":"Get recipient","openapi":"api-reference/endl-partner-api.json GET /api/v0/recipients/{userId}/{recipientId}","href":"/api-reference/recipients/get-recipient"},{"title":"Delete recipient","openapi":"api-reference/endl-partner-api.json DELETE /api/v0/recipients/{userId}/{recipientId}","href":"/api-reference/recipients/delete-recipient"},{"title":"List supported rails","openapi":"api-reference/endl-partner-api.json GET /api/v0/recipients/{userId}/supported-rails","href":"/api-reference/recipients/list-supported-rails"},{"title":"Get counterparty checks","openapi":"api-reference/endl-partner-api.json GET /api/v0/recipients/{userId}/{recipientId}/counterparty-checks","href":"/api-reference/recipients/get-counterparty-checks"}]},{"group":"Transactions","expanded":true,"pages":[{"title":"Create pre-transaction","openapi":"api-reference/endl-partner-api.json POST /api/v0/transactions/{userId}/pre-txn","href":"/api-reference/transactions/create-pre-transaction"},{"title":"Submit transaction","openapi":"api-reference/endl-partner-api.json POST /api/v0/transactions/{userId}/submit","href":"/api-reference/transactions/submit-transaction"},{"title":"Get transaction","openapi":"api-reference/endl-partner-api.json GET /api/v0/transactions/{userId}/{txnId}","href":"/api-reference/transactions/get-transaction"},{"title":"List transactions","openapi":"api-reference/endl-partner-api.json POST /api/v0/transactions/{userId}/all","href":"/api-reference/transactions/list-transactions"},{"title":"Get transaction metadata","openapi":"api-reference/endl-partner-api.json GET /api/v0/transactions/{userId}/metadata","href":"/api-reference/transactions/get-transaction-metadata"},{"title":"List purpose codes","openapi":"api-reference/endl-partner-api.json GET /api/v0/transactions/purpose-codes","description":"Returns the purpose-of-transfer codes accepted on transfers. Send the chosen `code` as `transferPurposeCode`. No `{userId}` in the path.","href":"/api-reference/transactions/list-purpose-codes"},{"title":"Upload invoice","openapi":"api-reference/endl-partner-api.json POST /api/v0/transactions/{userId}/invoice-upload","href":"/api-reference/transactions/upload-invoice"}]},{"group":"Cards","expanded":true,"pages":[{"title":"Cards overview","description":"Issue virtual cards to your customers — enrol, fund the card balance, issue cards, show card details securely, and follow every transaction by webhook","href":"/api-reference/cards/introduction"},{"title":"Enrol a customer","openapi":"api-reference/endl-cards-api.json POST /api/v0/cards/{customerId}/enrollment","href":"/api-reference/cards/enroll-customer"},{"title":"Get enrolment","openapi":"api-reference/endl-cards-api.json GET /api/v0/cards/{customerId}/enrollment","href":"/api-reference/cards/get-enrollment"},{"title":"Add a cardholder","openapi":"api-reference/endl-cards-api.json POST /api/v0/customer/{businessId}/card-users","href":"/api-reference/cards/create-cardholder"},{"title":"List cardholders","openapi":"api-reference/endl-cards-api.json GET /api/v0/customer/{businessId}/card-users","href":"/api-reference/cards/list-cardholders"},{"title":"Get a cardholder","openapi":"api-reference/endl-cards-api.json GET /api/v0/customer/{businessId}/card-users/{cardholderId}","href":"/api-reference/cards/get-cardholder"},{"title":"Issue a card","openapi":"api-reference/endl-cards-api.json POST /api/v0/cards/{cardholderId}","href":"/api-reference/cards/issue-card"},{"title":"Issue a single-use card","openapi":"api-reference/endl-cards-api.json POST /api/v0/cards/{cardholderId}/single-use","href":"/api-reference/cards/issue-single-use-card"},{"title":"List cards","openapi":"api-reference/endl-cards-api.json GET /api/v0/cards/{customerId}","href":"/api-reference/cards/list-cards"},{"title":"Get a card","openapi":"api-reference/endl-cards-api.json GET /api/v0/cards/{customerId}/{cardId}","href":"/api-reference/cards/get-card"},{"title":"Update a card","openapi":"api-reference/endl-cards-api.json PATCH /api/v0/cards/{customerId}/{cardId}","href":"/api-reference/cards/update-card"},{"title":"Freeze a card","openapi":"api-reference/endl-cards-api.json POST /api/v0/cards/{customerId}/{cardId}/freeze","href":"/api-reference/cards/freeze-card"},{"title":"Unfreeze a card","openapi":"api-reference/endl-cards-api.json POST /api/v0/cards/{customerId}/{cardId}/unfreeze","href":"/api-reference/cards/unfreeze-card"},{"title":"Cancel a card","openapi":"api-reference/endl-cards-api.json POST /api/v0/cards/{customerId}/{cardId}/cancel","href":"/api-reference/cards/cancel-card"},{"title":"Get card details","openapi":"api-reference/endl-cards-api.json POST /api/v0/cards/{customerId}/{cardId}/details","href":"/api-reference/cards/get-card-details"},{"title":"Card details encryption","href":"/api-reference/cards/encryption"},{"title":"List card transactions","openapi":"api-reference/endl-cards-api.json GET /api/v0/cards/{customerId}/transactions","href":"/api-reference/cards/list-card-transactions"},{"title":"Get a card transaction","openapi":"api-reference/endl-cards-api.json GET /api/v0/cards/{customerId}/transactions/{transactionId}","href":"/api-reference/cards/get-card-transaction"},{"title":"Get card balance","openapi":"api-reference/endl-cards-api.json GET /api/v0/cards/{customerId}/balance","href":"/api-reference/cards/get-card-balance"},{"title":"Get deposit instructions","openapi":"api-reference/endl-cards-api.json GET /api/v0/cards/{customerId}/deposit-instructions","href":"/api-reference/cards/get-deposit-instructions"},{"title":"Deposit from the Endl account","openapi":"api-reference/endl-cards-api.json POST /api/v0/cards/{customerId}/deposits","href":"/api-reference/cards/create-card-deposit"},{"title":"List deposits","openapi":"api-reference/endl-cards-api.json GET /api/v0/cards/{customerId}/deposits","href":"/api-reference/cards/list-card-deposits"},{"title":"Get a deposit","openapi":"api-reference/endl-cards-api.json GET /api/v0/cards/{customerId}/deposits/{depositId}","href":"/api-reference/cards/get-card-deposit"},{"title":"Withdraw from the card balance","openapi":"api-reference/endl-cards-api.json POST /api/v0/cards/{customerId}/withdrawals","href":"/api-reference/cards/create-card-withdrawal"},{"title":"List withdrawals","openapi":"api-reference/endl-cards-api.json GET /api/v0/cards/{customerId}/withdrawals","href":"/api-reference/cards/list-card-withdrawals"},{"title":"Get a withdrawal","openapi":"api-reference/endl-cards-api.json GET /api/v0/cards/{customerId}/withdrawals/{withdrawalId}","href":"/api-reference/cards/get-card-withdrawal"},{"title":"Card webhook events","href":"/api-reference/cards/events"},{"title":"Card errors","href":"/api-reference/cards/errors"}]},{"group":"POBO","expanded":true,"pages":[{"title":"POBO overview","href":"/api-reference/pobo/introduction"},{"title":"Get owner","openapi":"api-reference/endl-pobo-api.json GET /api/v0/pobo/owner","href":"/api-reference/pobo/get-owner"},{"title":"Create sender","openapi":"api-reference/endl-pobo-api.json POST /api/v0/pobo/senders","href":"/api-reference/pobo/create-sender"},{"title":"List senders","openapi":"api-reference/endl-pobo-api.json GET /api/v0/pobo/senders","href":"/api-reference/pobo/list-senders"},{"title":"Get sender","openapi":"api-reference/endl-pobo-api.json GET /api/v0/pobo/senders/{senderId}","href":"/api-reference/pobo/get-sender"},{"title":"Delete sender","openapi":"api-reference/endl-pobo-api.json DELETE /api/v0/pobo/senders/{senderId}","href":"/api-reference/pobo/delete-sender"},{"title":"Create recipient","openapi":"api-reference/endl-pobo-api.json POST /api/v0/pobo/recipients","href":"/api-reference/pobo/create-recipient"},{"title":"List recipients","openapi":"api-reference/endl-pobo-api.json POST /api/v0/pobo/recipients/all","href":"/api-reference/pobo/list-recipients"},{"title":"Get recipient","openapi":"api-reference/endl-pobo-api.json GET /api/v0/pobo/recipients/{recipientId}","href":"/api-reference/pobo/get-recipient"},{"title":"Delete recipient","openapi":"api-reference/endl-pobo-api.json DELETE /api/v0/pobo/recipients/{recipientId}","href":"/api-reference/pobo/delete-recipient"},{"title":"Generate quote","openapi":"api-reference/endl-pobo-api.json POST /api/v0/pobo/quotes/generate","href":"/api-reference/pobo/generate-quote"},{"title":"Get quote","openapi":"api-reference/endl-pobo-api.json GET /api/v0/pobo/quotes/{quoteId}","href":"/api-reference/pobo/get-quote"},{"title":"Create pre-transaction","openapi":"api-reference/endl-pobo-api.json POST /api/v0/pobo/transactions/pre-txn","href":"/api-reference/pobo/create-pre-transaction"},{"title":"Submit transaction","openapi":"api-reference/endl-pobo-api.json POST /api/v0/pobo/transactions/submit","href":"/api-reference/pobo/submit-transaction"},{"title":"Get transaction","openapi":"api-reference/endl-pobo-api.json GET /api/v0/pobo/transactions/{txnId}","href":"/api-reference/pobo/get-transaction"},{"title":"List transactions","openapi":"api-reference/endl-pobo-api.json POST /api/v0/pobo/transactions/all","href":"/api-reference/pobo/list-transactions"}]},{"group":"Gift Cards","expanded":true,"pages":[{"title":"Giftcard API overview","href":"/giftcards/overview"},{"title":"Signing requests","href":"/giftcards/authentication"},{"title":"Conventions","href":"/giftcards/conventions"},{"title":"List products","openapi":"api-reference/endl-giftcard-api.json GET /catalog/products","href":"/giftcards/list-products"},{"title":"Create an order","openapi":"api-reference/endl-giftcard-api.json POST /orders","href":"/giftcards/create-order"},{"title":"Get an order","openapi":"api-reference/endl-giftcard-api.json GET /orders/{order_id}","href":"/giftcards/get-order"},{"title":"List orders","openapi":"api-reference/endl-giftcard-api.json GET /orders","href":"/giftcards/list-orders"},{"title":"Retrieve vouchers","openapi":"api-reference/endl-giftcard-api.json GET /orders/{order_id}/vouchers","href":"/giftcards/retrieve-vouchers"},{"title":"Order lifecycle","href":"/giftcards/lifecycle"},{"title":"Error codes","href":"/giftcards/errors"},{"title":"Worked flows","href":"/giftcards/flows"}]},{"group":"Webhooks","expanded":true,"pages":[{"title":"Webhooks overview","href":"/webhooks/overview"},{"title":"Verifying signatures","href":"/webhooks/signature-verification"},{"title":"Create subscription","openapi":"api-reference/endl-webhooks-api.json POST /api/v0/webhooks/subscriptions","href":"/webhooks/create-subscription"},{"title":"List subscriptions","openapi":"api-reference/endl-webhooks-api.json GET /api/v0/webhooks/subscriptions","href":"/webhooks/list-subscriptions"},{"title":"Get subscription","openapi":"api-reference/endl-webhooks-api.json GET /api/v0/webhooks/subscriptions/{id}","href":"/webhooks/get-subscription"},{"title":"Update subscription","openapi":"api-reference/endl-webhooks-api.json PATCH /api/v0/webhooks/subscriptions/{id}","href":"/webhooks/update-subscription"},{"title":"Delete subscription","openapi":"api-reference/endl-webhooks-api.json DELETE /api/v0/webhooks/subscriptions/{id}","href":"/webhooks/delete-subscription"},{"title":"Send event to subscription","openapi":"api-reference/endl-webhooks-api.json POST /api/v0/webhooks/subscriptions/{id}/send","href":"/webhooks/send-event"},{"title":"List deliveries","openapi":"api-reference/endl-webhooks-api.json GET /api/v0/webhooks/events","href":"/webhooks/list-deliveries"},{"title":"Get delivery","openapi":"api-reference/endl-webhooks-api.json GET /api/v0/webhooks/events/{id}","href":"/webhooks/get-delivery"},{"title":"Retry delivery","openapi":"api-reference/endl-webhooks-api.json POST /api/v0/webhooks/events/{id}/retry","href":"/webhooks/retry-delivery"},{"title":"Read the PULL feed","openapi":"api-reference/endl-webhooks-api.json GET /api/v0/events","href":"/webhooks/pull-events"},{"title":"Pagination","href":"/webhooks/pagination"},{"title":"Errors and response envelope","href":"/webhooks/errors"},{"title":"Reference","href":"/webhooks/reference"}]}]}]}]},"title":"Upload invoice - Endl API","buildId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","deploymentId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-rfhihCWU.js","utils-BmH1XFxk.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-BcNsxPKB.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BAES3tkd.js","snippetPresets-DCMQBKLP.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D6l_bzE9.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BOktbnNh.js","shallow-BCs8SgM7.js","getApiPlaygroundDisplay-DEmW5bJB.js","CodeSnippet-CpZOpB9C.js","CodeSnippets-BOBDqibl.js","Page-D5fEM6aW.js","getPastedJson-DH2JBvmr.js","icon-BBJH-kKh.js","MethodPill-D2Sd5NLC.js","DuplicateIcon-CGgfL2qN.js","createIcon-BKudBBzi.js","DynamicMarkdown-85clUA0i.js","SectionHeading-D0JiMgDx.js","axios-vUo_bRtp.js","Markdown-Cfiy0xZO.js","clsx-rL8ZCCw4.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-aeztFa9U.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BywkCr5C.js"]}