Network failures, timeouts, and other transient issues can cause your application to retry requests without knowing whether the original request succeeded. This can lead to duplicate resources being created in the target system.The Maesn API supports idempotency for POST requests, allowing you to safely retry operations without creating duplicates. By including an idempotency-key header, the API guarantees that multiple identical requests will have the same effect as a single request.
If you retry a request while the original is still being processed, the API returns a 409 error to prevent race conditions.What to do: Wait and retry after a short delay. The original request should complete shortly.
422 Unprocessable Entity - Key reused with different body
If you send a request with an idempotency key that was already used for a different request body, the API returns a 422 error.What to do: Use a new, unique idempotency key for the new request.
If the idempotency cache is temporarily unavailable, the API returns a 503 error to prevent potential duplicate operations.What to do: Retry after a short delay. Your request was not processed, so it is safe to retry with the same idempotency key.
Idempotency keys are valid for 24 hours after the first request completes. After this period, the same key can be reused for a new request.
Do not rely on key expiration as part of your normal workflow. Always generate unique keys for distinct operations.
Last modified on October 7, 2026
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.schema.json","name":"maesn","colors":{"primary":"#27A691","light":"#5DCFBC","dark":"#004253"},"logo":{"light":"https://mintcdn.com/maesn/gCd41Ws3USFubam4/logo/maesn-light.svg?fit=max\u0026auto=format\u0026n=gCd41Ws3USFubam4\u0026q=85\u0026s=ba936398d19fd8fe8fb10d7b41c80170","dark":"https://mintcdn.com/maesn/gCd41Ws3USFubam4/logo/maesn-dark.svg?fit=max\u0026auto=format\u0026n=gCd41Ws3USFubam4\u0026q=85\u0026s=a831914dd5d3b84e5886f319d696df75","href":"https://docs.maesn.com"},"favicon":"https://mintcdn.com/maesn/gCd41Ws3USFubam4/logo/maesn-favicon.svg?fit=max\u0026auto=format\u0026n=gCd41Ws3USFubam4\u0026q=85\u0026s=0467d15b5d0ab2458326fa937d685118","navbar":{"primary":{"type":"button","label":"Get an API key","href":"https://www.maesn.com/contact/"}},"footer":{"socials":{"website":"https://www.maesn.com","github":"https://github.com/maesndev","linkedin":"https://www.linkedin.com/company/maesn-integration","youtube":"https://www.youtube.com/@Maesn_One-API"}},"seo":{"metatags":{"author":"Lennart Svensson","canonical":"https://docs.maesn.com"},"indexing":"all"},"integrations":{"gtm":{"tagId":"GTM-NRQ25WDW"}},"metadata":{"timestamp":true},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"maesn","hasAudioNarration":false,"actualSubdomain":"maesn","customDomains":["docs.maesn.com"],"gitSource":{"type":"github","owner":"maesndev","repo":"docs-2","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae9d9a7b0a155cbec307d8d","collectionId":"04353883-6607-4eaf-a731-ec81331a7d09","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae9d9a7b0a155cbec307d8d"},"feedback":{"thumbs":true,"edits":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae9d9a7b0a155cbec307d8d","clientVersion":"0.0.4064","searchFilterCounts":[{"language":"default","tag":"API reference","count":149},{"language":"default","tag":"Accounting","count":133},{"language":"default","tag":"Integrations","count":32},{"language":"default","tag":"Get started","count":17},{"language":"default","tag":"Use cases","count":13},{"language":"default","tag":"Journal Entries","count":11},{"language":"default","tag":"Contacts","count":9},{"language":"default","tag":"Booking Proposals","count":8},{"language":"default","tag":"Bills","count":6},{"language":"default","tag":"Items","count":6}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"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":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","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":"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":"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":"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":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","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":"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":"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":"turbopuffer-dual-write","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},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".integration-table table{width:100%;table-layout:fixed}.integration-table table th:first-child{width:40%}.integration-table table th:not(:first-child){width:15%;text-align:center}.integration-table table td:not(:first-child){text-align:center;padding:8px 4px}"}],"page":{"pagePath":"idempotency","slug":"/idempotency","pageMetadata":{"title":"Idempotency","description":"Learn how to safely retry POST requests without creating duplicate resources using idempotency keys.","keywords":["Maesn idempotency","idempotency key","duplicate prevention","safe retries"],"tag":"Beta","href":"/idempotency"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Learn how to safely retry POST requests without creating duplicate resources using idempotency keys.\"\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,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`overview`,children:`Overview`}),`\n`,_jsx(_components.p,{children:`Network failures, timeouts, and other transient issues can cause your application to retry requests without knowing whether the original request succeeded. This can lead to duplicate resources being created in the target system.`}),`\n`,_jsxs(_components.p,{children:[`The Maesn API supports idempotency for POST requests, allowing you to safely retry operations without creating duplicates. By including an `,_jsx(_components.code,{children:`idempotency-key`}),` header, the API guarantees that multiple identical requests will have the same effect as a single request.`]}),`\n`,_jsx(Heading,{level:`2`,id:`how-it-works`,children:`How it works`}),`\n`,_jsxs(_components.p,{children:[`When you send a POST request with an `,_jsx(_components.code,{children:`idempotency-key`}),` header:`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`First request`}),`: The API processes the request normally and caches the response`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Subsequent requests with the same key`}),`: The API returns the cached response without re-executing the operation`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Same key with different body`}),`: The API returns an error (the key cannot be reused for different data)`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Idempotency keys are scoped to your tenant and user, so different users can safely use the same key values.`}),`\n`,_jsx(Heading,{level:`2`,id:`supported-endpoints`,children:`Supported endpoints`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`},children:`Endpoint`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Supported systems`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.a,{href:`/api-reference/accounting-endpoints/bookingproposals/create-booking-proposal`,children:_jsx(_components.code,{children:`POST /bookingProposals`})})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Lexware Office, Microsoft Business Central, Procountor, Sage Accounting, Snelstart, Visma Economic, Xero`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.a,{href:`/api-reference/accounting-endpoints/bookingproposals/create-booking-proposal-async`,children:_jsx(_components.code,{children:`POST /bookingProposals/async`})})}),_jsx(_components.td,{style:{textAlign:`left`},children:`DATEV Unternehmen Online`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.a,{href:`/api-reference/accounting-endpoints/journalentries/create-journal-entry`,children:_jsx(_components.code,{children:`POST /journalEntries`})})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Dinero, fortnox, Microsoft Business Central, Odoo, Quickbooks, Tripletex, Twinfield, Visma Economic`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.a,{href:`/api-reference/accounting-endpoints/journalentries/create-journal-entries-bulk`,children:_jsx(_components.code,{children:`POST /journalEntries/bulk`})})}),_jsx(_components.td,{style:{textAlign:`left`},children:`DATEV Rechnungswesen`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`using-the-idempotency-key`,children:`Using the idempotency key`}),`\n`,_jsxs(_components.p,{children:[`Include the `,_jsx(_components.code,{children:`idempotency-key`}),` header in your POST request:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`6`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://api.maesn.dev/accounting/bookingProposals\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"X-API-KEY: your-api-key\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"X-ACCOUNT-KEY: your-account-key\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"idempotency-key: order-12345-invoice-001\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: multipart/form-data\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -F`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"file=@invoice.pdf\"`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`response-behavior`,children:`Response behavior`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`},children:`Scenario`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Response`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`First request with a new key`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Normal response (201 for sync, 202 for async)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Retry with same key and same body`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Cached response returned (same status code and body)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Same key with different body`}),_jsx(_components.td,{style:{textAlign:`left`},children:`422 error`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Same key while original request is still processing`}),_jsx(_components.td,{style:{textAlign:`left`},children:`409 error`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Cache unavailable during idempotency check`}),_jsx(_components.td,{style:{textAlign:`left`},children:`503 error`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`error-codes`,children:`Error codes`}),`\n`,_jsx(Heading,{level:`3`,id:`409-conflict-request-still-processing`,children:`409 Conflict - Request still processing`}),`\n`,_jsx(_components.p,{children:`If you retry a request while the original is still being processed, the API returns a 409 error to prevent race conditions.`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`What to do`}),`: Wait and retry after a short delay. The original request should complete shortly.`]}),`\n`,_jsx(Heading,{level:`3`,id:`422-unprocessable-entity-key-reused-with-different-body`,children:`422 Unprocessable Entity - Key reused with different body`}),`\n`,_jsx(_components.p,{children:`If you send a request with an idempotency key that was already used for a different request body, the API returns a 422 error.`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`What to do`}),`: Use a new, unique idempotency key for the new request.`]}),`\n`,_jsx(Heading,{level:`3`,id:`503-service-unavailable-cache-unavailable`,children:`503 Service Unavailable - Cache unavailable`}),`\n`,_jsx(_components.p,{children:`If the idempotency cache is temporarily unavailable, the API returns a 503 error to prevent potential duplicate operations.`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`What to do`}),`: Retry after a short delay. Your request was not processed, so it is safe to retry with the same idempotency key.`]}),`\n`,_jsx(Heading,{level:`2`,id:`best-practices`,children:`Best practices`}),`\n`,_jsx(Heading,{level:`3`,id:`generating-keys`,children:`Generating keys`}),`\n`,_jsx(_components.p,{children:`Use a value that uniquely identifies the logical operation you’re performing. Good approaches include:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`UUIDs`}),`: `,_jsx(_components.code,{children:`550e8400-e29b-41d4-a716-446655440000`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Business identifiers`}),`: `,_jsx(_components.code,{children:`order-12345-invoice-001`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Composite keys`}),`: `,_jsx(_components.code,{children:`{user-id}-{document-id}`})]}),`\n`]}),`\n`,_jsx(_components.p,{children:`The key can be any string value. We recommend using descriptive identifiers when possible, as they make debugging easier.`}),`\n`,_jsx(Heading,{level:`3`,id:`when-to-use-idempotency-keys`,children:`When to use idempotency keys`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Always`}),` for production POST requests where duplicates would cause problems, for example capturing external invoices or creating journal entries`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Especially`}),` when implementing retry logic for failed requests`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`When`}),` network conditions are unreliable`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`key-expiration`,children:`Key expiration`}),`\n`,_jsx(_components.p,{children:`Idempotency keys are valid for 24 hours after the first request completes. After this period, the same key can be reused for a new request.`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Do not rely on key expiration as part of your normal workflow. Always generate unique keys for distinct operations.`})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Idempotency","description":"Learn how to safely retry POST requests without creating duplicate resources using idempotency keys.","keywords":["Maesn idempotency","idempotency key","duplicate prevention","safe retries"],"tag":"Beta","href":"/idempotency"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Overview","slug":"overview","depth":2,"children":[]},{"title":"How it works","slug":"how-it-works","depth":2,"children":[]},{"title":"Supported endpoints","slug":"supported-endpoints","depth":2,"children":[]},{"title":"Using the idempotency key","slug":"using-the-idempotency-key","depth":2,"children":[]},{"title":"Response behavior","slug":"response-behavior","depth":2,"children":[]},{"title":"Error codes","slug":"error-codes","depth":2,"children":[{"title":"409 Conflict - Request still processing","slug":"409-conflict-request-still-processing","depth":3,"children":[]},{"title":"422 Unprocessable Entity - Key reused with different body","slug":"422-unprocessable-entity-key-reused-with-different-body","depth":3,"children":[]},{"title":"503 Service Unavailable - Cache unavailable","slug":"503-service-unavailable-cache-unavailable","depth":3,"children":[]}]},{"title":"Best practices","slug":"best-practices","depth":2,"children":[{"title":"Generating keys","slug":"generating-keys","depth":3,"children":[]},{"title":"When to use idempotency keys","slug":"when-to-use-idempotency-keys","depth":3,"children":[]},{"title":"Key expiration","slug":"key-expiration","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/maesn/b9f4cde31e61c54c/hubspot.js"],"subdomain":"maesn","siteName":"maesn","title":"Idempotency - maesn","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-07T08:43:38.556Z","gitLastModified":"2026-10-07T08:43:13.000Z","originalFileLocation":"idempotency.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=\"Learn how to safely retry POST requests without creating duplicate resources using idempotency keys.\">\u003cmeta data-mint-head name=\"application-name\" content=\"maesn\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/maesn/WJYcicI1ZlNx491k/_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/maesn/WJYcicI1ZlNx491k/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/maesn/WJYcicI1ZlNx491k/_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/maesn/WJYcicI1ZlNx491k/_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/maesn/WJYcicI1ZlNx491k/_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/maesn/WJYcicI1ZlNx491k/_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/maesn/WJYcicI1ZlNx491k/_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/maesn/WJYcicI1ZlNx491k/_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/maesn/WJYcicI1ZlNx491k/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Idempotency - maesn\">\u003cmeta data-mint-head property=\"og:description\" content=\"Learn how to safely retry POST requests without creating duplicate resources using idempotency keys.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"maesn\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.maesn.com/idempotency\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://maesn.mintlify.app/_mintlify/api/og/v2?division=Get+started\u0026amp;title=Idempotency\u0026amp;description=Learn+how+to+safely+retry+POST+requests+without+creating+duplicate+resources+using+idempotency+keys.\u0026amp;theme=8d1fcb7d18805d920691c9fa\u0026amp;signature=47c05a3bdbbcef967ec1e7ef171aa835fdeb95b873c1a89fe498d91462b72828\">\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=\"Idempotency - maesn\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Learn how to safely retry POST requests without creating duplicate resources using idempotency keys.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://maesn.mintlify.app/_mintlify/api/og/v2?division=Get+started\u0026amp;title=Idempotency\u0026amp;description=Learn+how+to+safely+retry+POST+requests+without+creating+duplicate+resources+using+idempotency+keys.\u0026amp;theme=8d1fcb7d18805d920691c9fa\u0026amp;signature=47c05a3bdbbcef967ec1e7ef171aa835fdeb95b873c1a89fe498d91462b72828\">\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/maesn/WJYcicI1ZlNx491k/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"maesn\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#27A691\">\u003cmeta data-mint-head name=\"author\" content=\"Lennart Svensson\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.maesn.com/idempotency\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/idempotency.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.maesn.com/#organization\",\"name\":\"maesn\",\"url\":\"https://docs.maesn.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/maesn/gCd41Ws3USFubam4/logo/maesn-light.svg?fit=max\u0026auto=format\u0026n=gCd41Ws3USFubam4\u0026q=85\u0026s=ba936398d19fd8fe8fb10d7b41c80170\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.maesn.com#website\",\"name\":\"maesn\",\"url\":\"https://docs.maesn.com\",\"publisher\":{\"@id\":\"https://docs.maesn.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.maesn.com/idempotency#webpage\",\"url\":\"https://docs.maesn.com/idempotency\",\"name\":\"Idempotency\",\"description\":\"Learn how to safely retry POST requests without creating duplicate resources using idempotency keys.\",\"dateModified\":\"2026-10-07T08:43:13.000Z\",\"isPartOf\":{\"@id\":\"https://docs.maesn.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.maesn.com/idempotency#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.maesn.com/idempotency#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Get started\",\"item\":\"https://docs.maesn.com/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Idempotency\",\"item\":\"https://docs.maesn.com/idempotency\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.maesn.com/idempotency#article\",\"headline\":\"Idempotency\",\"name\":\"Idempotency\",\"description\":\"Learn how to safely retry POST requests without creating duplicate resources using idempotency keys.\",\"url\":\"https://docs.maesn.com/idempotency\",\"mainEntityOfPage\":{\"@id\":\"https://docs.maesn.com/idempotency#webpage\"},\"dateModified\":\"2026-10-07T08:43:13.000Z\",\"keywords\":\"Maesn idempotency, idempotency key, duplicate prevention, safe retries\",\"publisher\":{\"@id\":\"https://docs.maesn.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.maesn.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"maesn\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"maesn","nav":{"global":null,"groups":[{"group":"Get started","pages":[{"title":"Introduction","href":"/introduction"},{"title":"Explore our integrations","mode":"wide","href":"/integrations-overview"},{"title":"Authentication","href":"/authentication"},{"title":"Rate limiting","href":"/rate-limits"},{"title":"Filtering, Ordering, \u0026 Pagination","href":"/filtering-ordering-pagination"},{"title":"Standardized Data","href":"/standardization"},{"title":"Raw Data","href":"/raw-data"},{"title":"Passthrough","href":"/pass-through"},{"title":"Asynchronous Task","description":"Learn how asynchronous tasks work in the Maesn Unified API for long-running operations.","href":"/async-task"},{"title":"Idempotency","tag":"Beta","href":"/idempotency"},{"title":"Sandboxes","description":"Use sandbox environments provided by maesn to test accounting integrations safely before going live.","href":"/sandboxes"},{"title":"TypeScript SDK","href":"/sdk"},{"title":"OpenAPI specs","href":"/openapi-specs"},{"title":"MCP Server","href":"/mcp-server"},{"title":"Webhooks","href":"/webhooks"},{"title":"Welcome to maesn!","mode":"wide","sidebarTitle":"About maesn","href":"/what-is-maesn"},{"title":"Changelog","href":"/changelog"}]},{"group":"Guides","pages":[{"title":"Quick start","href":"/guides/quick-start"},{"title":"maesn Connect","href":"/guides/maesn-connect"},{"title":"Test maesn's Unified API with Postman","sidebarTitle":"Postman","href":"/guides/postman"},{"title":"Keeping data fresh","href":"/guides/keep-data-fresh"},{"title":"Error handling","mode":"wide","href":"/guides/error-handling"},{"title":"Partial errors","href":"/guides/partial-errors"}]},{"group":"Integrations","pages":[{"title":"Endpoint coverage","mode":"wide","sidebarTitle":"Overview","href":"/integrations"},{"title":"AbaConnect","sidebarTitle":"AbaConnect","href":"/integrations/abaconnect"},{"title":"Abacus","sidebarTitle":"Abacus","href":"/integrations/abacus"},{"title":"bexio","sidebarTitle":"bexio","href":"/integrations/bexio"},{"title":"BuchhaltungsButler","sidebarTitle":"BuchhaltungsButler","href":"/integrations/buchhaltungsbutler"},{"title":"DATEV Rechnungswesen","sidebarTitle":"DATEV Rechnungswesen","href":"/integrations/datev-rechnungswesen"},{"title":"DATEV Unternehmen Online","sidebarTitle":"DATEV Unternehmen Online","href":"/integrations/datev-unternehmen-online"},{"title":"Dinero","sidebarTitle":"Dinero","href":"/integrations/dinero"},{"title":"Exact Online","sidebarTitle":"Exact Online","href":"/integrations/exact-online"},{"title":"fortnox","sidebarTitle":"fortnox","href":"/integrations/fortnox"},{"title":"FreeAgent","sidebarTitle":"FreeAgent","href":"/integrations/freeagent"},{"title":"FreshBooks","sidebarTitle":"FreshBooks","href":"/integrations/freshbooks"},{"title":"Holded","sidebarTitle":"Holded","href":"/integrations/holded"},{"title":"Lexware Office","sidebarTitle":"Lexware Office","href":"/integrations/lexware-office"},{"title":"Microsoft Business Central","sidebarTitle":"Microsoft Business Central","href":"/integrations/microsoft-dynamics-365-business-central"},{"title":"Moneybird","sidebarTitle":"Moneybird","href":"/integrations/moneybird"},{"title":"Odoo","sidebarTitle":"Odoo","href":"/integrations/odoo"},{"title":"Pennylane","sidebarTitle":"Pennylane","href":"/integrations/pennylane"},{"title":"Procountor","sidebarTitle":"Procountor","href":"/integrations/procountor"},{"title":"Qonto","sidebarTitle":"Qonto","href":"/integrations/qonto"},{"title":"QuickBooks","sidebarTitle":"QuickBooks","href":"/integrations/quickbooks"},{"title":"Sage Accounting","sidebarTitle":"Sage Accounting","href":"/integrations/sage-accounting"},{"title":"Sage Active","sidebarTitle":"Sage Active","href":"/integrations/sage-active"},{"title":"sevdesk","sidebarTitle":"sevdesk","href":"/integrations/sevdesk"},{"title":"Snelstart","sidebarTitle":"Snelstart","href":"/integrations/snelstart"},{"title":"Twinfield","sidebarTitle":"Twinfield","href":"/integrations/twinfield"},{"title":"Tripletex","sidebarTitle":"Tripletex","href":"/integrations/tripletex"},{"title":"Visma eAccounting (Spiris)","sidebarTitle":"Visma eAcccounting","href":"/integrations/visma-eaccounting"},{"title":"Visma e-conomic","sidebarTitle":"Visma e-conomic","href":"/integrations/visma-e-conomic"},{"title":"weclapp","sidebarTitle":"weclapp","href":"/integrations/weclapp"},{"title":"Xentral","sidebarTitle":"Xentral","href":"/integrations/xentral"},{"title":"Xero","sidebarTitle":"Xero","href":"/integrations/xero"}]},{"group":"Use cases","pages":[{"title":"Explore our use cases","href":"/use-cases"},{"title":"Capture invoices \u0026 bills","href":"/use-cases/capture-invoices"},{"title":"Debt management","href":"/use-cases/debt-management"},{"title":"Fetch invoices","href":"/use-cases/fetch-invoices"},{"title":"Fetch bills","href":"/use-cases/fetch-bills"},{"title":"Synchronize contacts","href":"/use-cases/sync-contacts"},{"title":"Synchronize expenses","href":"/use-cases/sync-expenses"},{"title":"Synchronize items","href":"/use-cases/sync-items"},{"title":"Create invoices","href":"/use-cases/create-invoices"},{"title":"Accounts payable","href":"/use-cases/accounts-payable"},{"title":"Accounts receivable","href":"/use-cases/accounts-receivable"},{"title":"Create bookings","href":"/use-cases/create-bookings"},{"title":"DATEV use cases","href":"/use-cases/datev-overview"}]},{"group":"API reference","pages":[{"group":"Accounting","pages":[{"title":"Accounting API","sidebarTitle":"Overview","href":"/api-reference/accounting-endpoints/accounting-overview"},{"group":"Accounts","pages":[{"openapi":"GET /accounting/accounts","title":null,"href":"/api-reference/accounting-endpoints/accounts/get-accounts"},{"openapi":"get /accounting/accounts/{accountId}","title":null,"href":"/api-reference/accounting-endpoints/accounts/get-account"},{"openapi":"post /accounting/accounts","title":null,"href":"/api-reference/accounting-endpoints/accounts/create-account"}]},{"group":"Async Task","pages":[{"openapi":"get /accounting/asyncTask/{taskId}","title":null,"href":"/api-reference/accounting-endpoints/asynctask/get-async-task-info"}]},{"group":"Bank Accounts","pages":[{"openapi":"GET /accounting/bankAccounts","title":null,"href":"/api-reference/accounting-endpoints/bankaccounts/get-bank-accounts"},{"openapi":"GET /accounting/bankAccounts/{bankAccountId}","title":null,"href":"/api-reference/accounting-endpoints/bankaccounts/get-bank-account"},{"openapi":"post /accounting/bankAccounts","title":null,"href":"/api-reference/accounting-endpoints/bankaccounts/create-bank-account"}]},{"group":"Bills","pages":[{"openapi":"get /accounting/bills","title":null,"href":"/api-reference/accounting-endpoints/bills/get-bills"},{"openapi":"get /accounting/bills/{billId}","title":null,"href":"/api-reference/accounting-endpoints/bills/get-bill"},{"openapi":"post /accounting/bills","title":null,"href":"/api-reference/accounting-endpoints/bills/create-bill"},{"openapi":"put /accounting/bills/{billId}","title":null,"href":"/api-reference/accounting-endpoints/bills/update-bill"},{"openapi":"delete /accounting/bills/{billId}","title":null,"href":"/api-reference/accounting-endpoints/bills/delete-bill"},{"openapi":"get /accounting/bills/{billId}/document","title":null,"href":"/api-reference/accounting-endpoints/bills/get-bill-document"}]},{"group":"Bill Lines","pages":[{"openapi":"get /accounting/bills/{billId}/lineItems","title":null,"href":"/api-reference/accounting-endpoints/billlineitems/get-bill-lines"},{"openapi":"post /accounting/bills/{billId}/lineItems","title":null,"href":"/api-reference/accounting-endpoints/billlineitems/create-bill-line"},{"openapi":"put /accounting/bills/{billId}/lineItems/{lineItemId}","title":null,"href":"/api-reference/accounting-endpoints/billlineitems/update-bill-line"}]},{"group":"Booking Proposals","pages":[{"openapi":"get /accounting/bookingProposals","title":null,"href":"/api-reference/accounting-endpoints/bookingproposals/get-booking-proposals"},{"openapi":"get /accounting/bookingProposals/{bookingProposalId}","title":null,"href":"/api-reference/accounting-endpoints/bookingproposals/get-booking-proposal"},{"openapi":"get /accounting/bookingProposals/{bookingProposalId}/document","title":null,"href":"/api-reference/accounting-endpoints/bookingproposals/get-booking-proposal-document"},{"openapi":"POST /accounting/bookingProposals","title":null,"href":"/api-reference/accounting-endpoints/bookingproposals/create-booking-proposal"},{"openapi":"POST /accounting/bookingProposals/async","title":null,"href":"/api-reference/accounting-endpoints/bookingproposals/create-booking-proposal-async"},{"openapi":"PUT /accounting/bookingProposals/{bookingProposalId}","title":null,"href":"/api-reference/accounting-endpoints/bookingproposals/update-booking-proposal"},{"openapi":"PUT /accounting/bookingProposals/{bookingProposalId}/async","title":null,"href":"/api-reference/accounting-endpoints/bookingproposals/update-booking-proposal-async"},{"openapi":"POST /accounting/bookingProposals/{bookingProposalId}/attachments","title":null,"href":"/api-reference/accounting-endpoints/bookingproposals/attachments/create-booking-proposal-attachment"}]},{"group":"Contacts","pages":[{"openapi":"get /accounting/contacts","title":null,"href":"/api-reference/accounting-endpoints/contacts/get-contacts"},{"openapi":"get /accounting/contacts/{contactId}","title":null,"href":"/api-reference/accounting-endpoints/contacts/get-contact"},{"openapi":"post /accounting/contacts","title":null,"href":"/api-reference/accounting-endpoints/contacts/create-contact"},{"openapi":"put /accounting/contacts/{contactId}","title":null,"href":"/api-reference/accounting-endpoints/contacts/put-contact"},{"openapi":"patch /accounting/contacts/{contactId}","title":null,"href":"/api-reference/accounting-endpoints/contacts/patch-contact"},{"openapi":"post /accounting/contacts/bulk","title":null,"href":"/api-reference/accounting-endpoints/contacts/create-contacts-bulk"},{"openapi":"get /accounting/contacts/async","title":null,"href":"/api-reference/accounting-endpoints/contacts/get-contacts-async"},{"openapi":"get /accounting/contacts/{contactId}/async","title":null,"href":"/api-reference/accounting-endpoints/contacts/get-contact-async"},{"openapi":"post /accounting/contacts/async","title":null,"href":"/api-reference/accounting-endpoints/contacts/create-contact-async"}]},{"group":"Credit Notes","pages":[{"openapi":"GET /accounting/creditNotes","title":null,"href":"/api-reference/accounting-endpoints/creditnotes/get-credit-notes"},{"openapi":"GET /accounting/creditNotes/{creditNoteId}","title":null,"href":"/api-reference/accounting-endpoints/creditnotes/get-credit-note"},{"openapi":"POST /accounting/creditNotes","title":null,"href":"/api-reference/accounting-endpoints/creditnotes/create-credit-note"},{"openapi":"get /accounting/creditNotes/{creditNoteId}/documents","title":null,"href":"/api-reference/accounting-endpoints/creditnotes/get-credit-note-documents"}]},{"group":"Currencies","pages":[{"openapi":"get /accounting/currencies","title":null,"href":"/api-reference/accounting-endpoints/currencies/get-currencies"}]},{"group":"Customers","pages":[{"openapi":"get /accounting/customers","title":null,"href":"/api-reference/accounting-endpoints/customers/get-customers"},{"openapi":"get /accounting/customers/{contactId}","title":null,"href":"/api-reference/accounting-endpoints/customers/get-customer"},{"openapi":"post /accounting/customers","title":null,"href":"/api-reference/accounting-endpoints/customers/create-customer"},{"openapi":"put /accounting/customers/{contactId}","title":null,"href":"/api-reference/accounting-endpoints/customers/update-customer"},{"openapi":"patch /accounting/customers/{contactId}","title":null,"href":"/api-reference/accounting-endpoints/customers/patch-customer"}]},{"group":"Dimensions","pages":[{"openapi":"get /accounting/dimensions","title":null,"href":"/api-reference/accounting-endpoints/dimensions/get-dimensions"},{"openapi":"get /accounting/dimensions/{dimension}","title":null,"href":"/api-reference/accounting-endpoints/dimensions/get-dimensions-by-dimension"}]},{"group":"Expenses","pages":[{"openapi":"get /accounting/expenses","title":null,"href":"/api-reference/accounting-endpoints/expenses/get-expenses"},{"openapi":"get /accounting/expenses/{expenseId}","title":null,"href":"/api-reference/accounting-endpoints/expenses/get-expense"},{"openapi":"post /accounting/expenses","title":null,"href":"/api-reference/accounting-endpoints/expenses/create-expense"},{"openapi":"post /accounting/expenses/async","title":null,"href":"/api-reference/accounting-endpoints/expenses/create-expense-async"}]},{"group":"Files","pages":[{"openapi":"post /accounting/files","title":null,"href":"/api-reference/accounting-endpoints/files/upload-file"},{"openapi":"post /accounting/files/async","title":null,"href":"/api-reference/accounting-endpoints/files/upload-file-async"},{"openapi":"get /accounting/files/documentTypes","title":null,"href":"/api-reference/accounting-endpoints/files/get-document-types"},{"openapi":"get /accounting/files/documentExtensions","title":null,"href":"/api-reference/accounting-endpoints/files/get-document-extensions"}]},{"group":"Fiscal Years","pages":[{"openapi":"get /accounting/fiscalYears","title":null,"href":"/api-reference/accounting-endpoints/fiscalyears/get-fiscal-years"},{"openapi":"get /accounting/fiscalYears/{fiscalYearId}","title":null,"href":"/api-reference/accounting-endpoints/fiscalyears/get-fiscal-year"}]},{"group":"Goods Receipts","pages":[{"openapi":"GET /accounting/goodsReceipts","title":null,"href":"/api-reference/accounting-endpoints/goodsreceipts/get-goods-receipts"},{"openapi":"GET /accounting/goodsReceipts/{goodsReceiptId}","title":null,"href":"/api-reference/accounting-endpoints/goodsreceipts/get-goods-receipt"}]},{"group":"Goods Receipt Lines","pages":[{"openapi":"GET /accounting/goodsReceipts/{goodsReceiptId}/lineItems","title":null,"href":"/api-reference/accounting-endpoints/goodsreceiptlineitems/get-goods-receipt-lines"},{"openapi":"GET /accounting/goodsReceipts/{goodsReceiptId}/lineItems/{lineItemId}","title":null,"href":"/api-reference/accounting-endpoints/goodsreceiptlineitems/get-goods-receipt-line"}]},{"group":"Invoices","pages":[{"openapi":"get /accounting/invoices","title":null,"href":"/api-reference/accounting-endpoints/invoices/get-invoices"},{"openapi":"get /accounting/invoices/{invoiceId}","title":null,"href":"/api-reference/accounting-endpoints/invoices/get-invoice"},{"openapi":"post /accounting/invoices","title":null,"href":"/api-reference/accounting-endpoints/invoices/create-invoice"},{"openapi":"patch /accounting/invoices/{invoiceId}","title":null,"href":"/api-reference/accounting-endpoints/invoices/patch-invoice"},{"openapi":"get /accounting/invoices/{invoiceId}/document","title":null,"href":"/api-reference/accounting-endpoints/invoices/get-invoice-document"}]},{"group":"Invoice Lines","pages":[{"openapi":"get /accounting/invoices/{invoiceId}/lineItems","title":null,"href":"/api-reference/accounting-endpoints/invoicelineitems/get-invoice-lines"},{"openapi":"get /accounting/invoices/{invoiceId}/lineItems/{lineItemId}","title":null,"href":"/api-reference/accounting-endpoints/invoicelineitems/get-invoice-line"},{"openapi":"post /accounting/invoices/{invoiceId}/lineItems","title":null,"href":"/api-reference/accounting-endpoints/invoicelineitems/create-invoice-line"},{"openapi":"patch /accounting/invoices/{invoiceId}/lineItems/{lineItemId}","title":null,"href":"/api-reference/accounting-endpoints/invoicelineitems/patch-invoice-line"}]},{"group":"Items","pages":[{"openapi":"get /accounting/items","title":null,"href":"/api-reference/accounting-endpoints/items/get-items"},{"openapi":"get /accounting/items/{itemId}","title":null,"href":"/api-reference/accounting-endpoints/items/get-item"},{"openapi":"post /accounting/items","title":null,"href":"/api-reference/accounting-endpoints/items/create-item"},{"openapi":"patch /accounting/items/{itemId}","title":null,"href":"/api-reference/accounting-endpoints/items/patch-item"},{"openapi":"put /accounting/items/{itemId}","title":null,"href":"/api-reference/accounting-endpoints/items/update-item"},{"openapi":"delete /accounting/items/{itemId}","title":null,"href":"/api-reference/accounting-endpoints/items/delete-item"}]},{"group":"Journals","pages":[{"openapi":"GET /accounting/journals","title":null,"href":"/api-reference/accounting-endpoints/journals/get-journals"}]},{"group":"Journal Entries","pages":[{"openapi":"GET /accounting/journalEntries","title":null,"href":"/api-reference/accounting-endpoints/journalentries/get-journal-entries"},{"openapi":"GET /accounting/journalEntries/async","title":null,"href":"/api-reference/accounting-endpoints/journalentries/get-journal-entries-async"},{"openapi":"GET /accounting/journalEntries/{journalEntryId}","title":null,"href":"/api-reference/accounting-endpoints/journalentries/get-journal-entry"},{"openapi":"POST /accounting/journalEntries","title":null,"href":"/api-reference/accounting-endpoints/journalentries/create-journal-entry"},{"openapi":"PUT /accounting/journalEntries/{journalEntryId}","title":null,"href":"/api-reference/accounting-endpoints/journalentries/update-journal-entry"},{"openapi":"PATCH /accounting/journalEntries/{journalEntryId}","title":null,"href":"/api-reference/accounting-endpoints/journalentries/patch-journal-entry"},{"openapi":"delete /accounting/journalEntries/{journalEntryId}","title":null,"href":"/api-reference/accounting-endpoints/journalentries/delete-journal-entry"},{"openapi":"POST /accounting/journalEntries/bulk","title":null,"href":"/api-reference/accounting-endpoints/journalentries/create-journal-entries-bulk"},{"openapi":"GET /accounting/journalEntries/{journalEntryId}/Attachments","title":null,"href":"/api-reference/accounting-endpoints/journalentries/attachments/get-journal-entry-attachments"},{"openapi":"GET /accounting/journalEntries/{journalEntryId}/Attachments/{attachmentId}","title":null,"href":"/api-reference/accounting-endpoints/journalentries/attachments/get-journal-entry-attachment"},{"openapi":"POST /accounting/journalEntries/{journalEntryId}/Attachments","title":null,"href":"/api-reference/accounting-endpoints/journalentries/attachments/create-journal-entry-attachment"}]},{"group":"Offers","pages":[{"openapi":"get /accounting/offers","title":null,"href":"/api-reference/accounting-endpoints/offers/get-offers"},{"openapi":"get /accounting/offers/{offerId}","title":null,"href":"/api-reference/accounting-endpoints/offers/get-offer"},{"openapi":"get /accounting/offers/{offerId}/document","title":null,"href":"/api-reference/accounting-endpoints/offers/get-offer-document"},{"openapi":"post /accounting/offers","title":null,"href":"/api-reference/accounting-endpoints/offers/create-offer"}]},{"group":"Offer Lines","pages":[{"openapi":"get /accounting/offers/{offerId}/lineItems","title":null,"href":"/api-reference/accounting-endpoints/offerlineitems/get-offer-lines"},{"openapi":"get /accounting/offers/{offerId}/lineItems/{lineItemId}","title":null,"href":"/api-reference/accounting-endpoints/offerlineitems/get-offer-line"}]},{"group":"Open Items","pages":[{"openapi":"get /accounting/openItems","title":null,"href":"/api-reference/accounting-endpoints/openitems/get-open-items"},{"openapi":"get /accounting/openItems/async","title":null,"href":"/api-reference/accounting-endpoints/openitems/get-open-items-async"}]},{"group":"Payments","pages":[{"openapi":"get /accounting/payments","title":null,"href":"/api-reference/accounting-endpoints/payments/get-payments"},{"openapi":"get /accounting/payments/{paymentId}","title":null,"href":"/api-reference/accounting-endpoints/payments/get-payment"},{"openapi":"post /accounting/payments","title":null,"href":"/api-reference/accounting-endpoints/payments/create-payment"},{"openapi":"delete /accounting/payments/{paymentId}","title":null,"href":"/api-reference/accounting-endpoints/payments/delete-payment"}]},{"group":"Payment Terms","pages":[{"openapi":"get /accounting/paymentTerms","title":null,"href":"/api-reference/accounting-endpoints/paymentterms/get-payment-terms"},{"openapi":"get /accounting/paymentTerms/{paymentTermId}","title":null,"href":"/api-reference/accounting-endpoints/paymentterms/get-payment-term"},{"openapi":"post /accounting/paymentTerms","title":null,"href":"/api-reference/accounting-endpoints/paymentterms/create-payment-term"}]},{"group":"Projects","pages":[{"openapi":"GET /accounting/projects","title":null,"href":"/api-reference/accounting-endpoints/projects/get-projects"},{"openapi":"GET /accounting/projects/{projectId}","title":null,"href":"/api-reference/accounting-endpoints/projects/get-project"},{"openapi":"POST /accounting/projects","title":null,"href":"/api-reference/accounting-endpoints/projects/create-project"},{"openapi":"get /accounting/projects/async","title":null,"href":"/api-reference/accounting-endpoints/projects/get-projects-async"},{"openapi":"get /accounting/projects/{projectId}/async","title":null,"href":"/api-reference/accounting-endpoints/projects/get-project-async"},{"openapi":"post /accounting/projects/async","title":null,"href":"/api-reference/accounting-endpoints/projects/create-project-async"}]},{"group":"Purchase Orders","pages":[{"openapi":"GET /accounting/purchaseOrders","title":null,"href":"/api-reference/accounting-endpoints/purchaseorders/get-purchase-orders"},{"openapi":"GET /accounting/purchaseOrders/{purchaseOrderId}","title":null,"href":"/api-reference/accounting-endpoints/purchaseorders/get-purchase-order"}]},{"group":"Purchase Order Lines","pages":[{"openapi":"GET /accounting/purchaseOrders/{purchaseOrderId}/lineItems","title":null,"href":"/api-reference/accounting-endpoints/purchaseorderlineitems/get-purchase-order-lines"},{"openapi":"GET /accounting/purchaseOrders/{purchaseOrderId}/lineItems/{lineItemId}","title":null,"href":"/api-reference/accounting-endpoints/purchaseorderlineitems/get-purchase-order-line"}]},{"group":"Reason Codes","pages":[{"openapi":"get /accounting/reasonCodes","title":null,"href":"/api-reference/accounting-endpoints/reasoncodes/get-reason-codes"}]},{"group":"Sales Orders","pages":[{"openapi":"GET /accounting/salesOrders","title":null,"href":"/api-reference/accounting-endpoints/salesorders/get-sales-orders"},{"openapi":"GET /accounting/salesOrders/{salesOrderId}","title":null,"href":"/api-reference/accounting-endpoints/salesorders/get-sales-order"},{"openapi":"POST /accounting/salesOrders","title":null,"href":"/api-reference/accounting-endpoints/salesorders/create-sales-order"},{"openapi":"post /accounting/salesOrders/async","title":null,"href":"/api-reference/accounting-endpoints/salesorders/create-sales-order-async"}]},{"group":"Sales Order Lines","pages":[{"openapi":"GET /accounting/salesOrders/{salesOrderId}/lineItems","title":null,"href":"/api-reference/accounting-endpoints/salesorderlineitems/get-sales-order-lines"}]},{"group":"Suppliers","pages":[{"openapi":"get /accounting/suppliers","title":null,"href":"/api-reference/accounting-endpoints/suppliers/get-suppliers"},{"openapi":"get /accounting/suppliers/{contactId}","title":null,"href":"/api-reference/accounting-endpoints/suppliers/get-supplier"},{"openapi":"post /accounting/suppliers","title":null,"href":"/api-reference/accounting-endpoints/suppliers/create-supplier"},{"openapi":"put /accounting/suppliers/{contactId}","title":null,"href":"/api-reference/accounting-endpoints/suppliers/update-supplier"},{"openapi":"patch /accounting/suppliers/{contactId}","title":null,"href":"/api-reference/accounting-endpoints/suppliers/patch-supplier"}]},{"group":"Tax Rates","pages":[{"openapi":"get /accounting/taxRates","title":null,"href":"/api-reference/accounting-endpoints/taxrates/get-tax-rates"},{"openapi":"get /accounting/taxRates/{taxRateId}","title":null,"href":"/api-reference/accounting-endpoints/taxrates/get-tax-rate"}]},{"group":"Tolerance Limits","pages":[{"openapi":"get /accounting/toleranceLimits","title":null,"href":"/api-reference/accounting-endpoints/tolerancelimits/get-tolerance-limits"}]},{"group":"Transactions","pages":[{"openapi":"post /accounting/transactions","title":null,"href":"/api-reference/accounting-endpoints/transactions/create-transaction"}]},{"group":"Trial Balance","pages":[{"openapi":"get /accounting/trialBalance","title":null,"href":"/api-reference/accounting-endpoints/trialbalance/get-trial-balance"}]},{"group":"Units","pages":[{"openapi":"get /accounting/units","title":null,"href":"/api-reference/accounting-endpoints/units/get-units"}]},{"group":"Vendor Credits","pages":[{"openapi":"get /accounting/vendorCredits","title":null,"href":"/api-reference/accounting-endpoints/vendorcredits/get-vendor-credits"},{"openapi":"post /accounting/vendorCredits","title":null,"href":"/api-reference/accounting-endpoints/vendorcredits/create-vendor-credit"},{"openapi":"put /accounting/vendorCredits/{vendorCreditId}","title":null,"href":"/api-reference/accounting-endpoints/vendorcredits/update-vendor-credit"},{"openapi":"delete /accounting/vendorCredits/{vendorCreditId}","title":null,"href":"/api-reference/accounting-endpoints/vendorcredits/delete-vendor-credit"}]}]},{"group":"Authentication","pages":[{"openapi":"get /auth/{TARGET_SYSTEM}","title":null,"href":"/api-reference/auth/get-auth"},{"openapi":"post /auth/{TARGET_SYSTEM}","title":null,"href":"/api-reference/auth/post-auth"},{"openapi":"get /auth/environments","title":null,"href":"/api-reference/auth/get-environments"},{"openapi":"get /auth/companies","title":null,"href":"/api-reference/auth/get-companies"},{"openapi":"post /auth/accounts/{TARGET_SYSTEM}","title":null,"href":"/api-reference/auth/create-account"}]},{"group":"Tenant Management","pages":[{"openapi":"post /tenants/register-system","title":null,"href":"/api-reference/accounting-endpoints/tenants/register-end-system"},{"openapi":"post /tenants/add-callback-url","title":null,"href":"/api-reference/accounting-endpoints/tenants/add-callback-url"},{"openapi":"get /tenants/get-end-user-list","title":null,"href":"/api-reference/accounting-endpoints/tenants/get-end-user-list"},{"openapi":"delete /tenants/delete-end-user","title":null,"href":"/api-reference/accounting-endpoints/tenants/delete-end-user"},{"openapi":"post /tenants/signing-secret","title":null,"href":"/api-reference/accounting-endpoints/tenants/create-signing-secret"},{"openapi":"post /tenants/submission-page-style","title":"Set submission page style","href":"/api-reference/accounting-endpoints/tenants/set-submission-page-style"}]},{"group":"User","pages":[{"title":"User API","sidebarTitle":"Overview","href":"/api-reference/user-endpoints/user-overview"},{"group":"Users","pages":[{"openapi":"get /user/user-info","title":null,"href":"/api-reference/user-endpoints/user/user-info"}]}]},{"group":"Webhooks","pages":[{"openapi":"post /webhooks","title":null,"href":"/api-reference/webhooks/create-webhook"},{"openapi":"get /webhooks","title":null,"href":"/api-reference/webhooks/get-webhooks"},{"openapi":"delete /webhooks/{webhookId}","title":null,"href":"/api-reference/webhooks/delete-webhook"}]}]},{"group":"Knowledgebase","pages":[{"title":"DATEV service configuration","href":"/knowledgebase/datev-service-configuration"}]}]},"basePath":"","title":"Idempotency - maesn","buildId":"dpl_2gSLkbMoF5kkLsBqYzq9KWtDyJRo","deploymentId":"dpl_2gSLkbMoF5kkLsBqYzq9KWtDyJRo","dynamics":[],"chunks":[]}