{"items":[{"type":"link","fsPath":"index.md","metadata":{"type":"markdown"},"label":"Overview","link":"/","routeSlug":"/"},{"type":"group","label":"Start Here","items":[{"type":"link","fsPath":"receipts/overview.md","metadata":{"type":"markdown"},"label":"Delivery Options","link":"/receipts/overview","routeSlug":"/receipts/overview"},{"type":"link","fsPath":"receipts/qr-collection.md","metadata":{"type":"markdown"},"label":"Web Wallet","link":"/receipts/qr-collection","routeSlug":"/receipts/qr-collection"},{"type":"link","fsPath":"sandbox/getting-started.md","metadata":{"type":"markdown"},"label":"Try the Sandbox","link":"/sandbox/getting-started","routeSlug":"/sandbox/getting-started"}]},{"type":"group","label":"SDKs","items":[{"type":"link","fsPath":"sdk/overview.md","metadata":{"type":"markdown"},"label":"Overview","link":"/sdk/overview","routeSlug":"/sdk/overview"},{"type":"link","fsPath":"sdk/java.md","metadata":{"type":"markdown"},"label":"Java","link":"/sdk/java","routeSlug":"/sdk/java"},{"type":"link","fsPath":"sdk/dotnet.md","metadata":{"type":"markdown"},"label":".NET","link":"/sdk/dotnet","routeSlug":"/sdk/dotnet"},{"type":"link","fsPath":"sdk/javascript.md","metadata":{"type":"markdown"},"label":"JavaScript & TypeScript","link":"/sdk/javascript","routeSlug":"/sdk/javascript"},{"type":"link","fsPath":"sdk/python.md","metadata":{"type":"markdown"},"label":"Python","link":"/sdk/python","routeSlug":"/sdk/python"}]},{"type":"group","label":"Authentication","items":[{"type":"link","fsPath":"authentication/overview.md","metadata":{"type":"markdown"},"label":"Overview","link":"/authentication/overview","routeSlug":"/authentication/overview"},{"type":"link","fsPath":"authentication/api-keys.md","metadata":{"type":"markdown"},"label":"API Keys","link":"/authentication/api-keys","routeSlug":"/authentication/api-keys"},{"type":"link","fsPath":"authentication/oauth.md","metadata":{"type":"markdown"},"label":"OAuth 2.0","link":"/authentication/oauth","routeSlug":"/authentication/oauth"}]},{"type":"group","label":"Receipt Integration","items":[{"type":"link","fsPath":"receipts/recipient-resolution.md","metadata":{"type":"markdown"},"label":"Recipient Resolution","link":"/receipts/recipient-resolution","routeSlug":"/receipts/recipient-resolution"},{"type":"group","fsPath":"receipts/payment-provider-compatibility.md","metadata":{"type":"markdown"},"label":"Payment Provider Compatibility","link":"/receipts/payment-provider-compatibility","routeSlug":"/receipts/payment-provider-compatibility","items":[{"type":"link","fsPath":"receipts/adyen.md","metadata":{"type":"markdown"},"label":"Adyen","link":"/receipts/adyen","routeSlug":"/receipts/adyen"},{"type":"link","fsPath":"receipts/mollie.md","metadata":{"type":"markdown"},"label":"Mollie","link":"/receipts/mollie","routeSlug":"/receipts/mollie"},{"type":"link","fsPath":"receipts/stripe-par.md","metadata":{"type":"markdown"},"label":"Stripe","link":"/receipts/stripe-par","routeSlug":"/receipts/stripe-par"},{"type":"link","fsPath":"receipts/worldline.md","metadata":{"type":"markdown"},"label":"Worldline","link":"/receipts/worldline","routeSlug":"/receipts/worldline"}]},{"type":"link","fsPath":"receipts/creation.md","metadata":{"type":"markdown"},"label":"Receipt Creation","link":"/receipts/creation","routeSlug":"/receipts/creation"},{"type":"link","fsPath":"receipts/sending.md","metadata":{"type":"markdown"},"label":"Sending Receipts","link":"/receipts/sending","routeSlug":"/receipts/sending"},{"type":"link","fsPath":"receipts/download-fallback.md","metadata":{"type":"markdown"},"label":"Download Links","link":"/receipts/download-fallback","routeSlug":"/receipts/download-fallback"},{"type":"link","fsPath":"receipts/ubl-format.md","metadata":{"type":"markdown"},"label":"UBL XML Format","link":"/receipts/ubl-format","routeSlug":"/receipts/ubl-format"}]},{"type":"group","label":"Company Structure","items":[{"type":"link","fsPath":"companies/structure.md","metadata":{"type":"markdown"},"label":"Companies, Children & Stores","link":"/companies/structure","routeSlug":"/companies/structure"},{"type":"link","fsPath":"companies/inviting-employees.md","metadata":{"type":"markdown"},"label":"Inviting Employees","link":"/companies/inviting-employees","routeSlug":"/companies/inviting-employees"}]},{"type":"group","label":"Country Support","items":[{"type":"link","fsPath":"countries/overview.md","metadata":{"type":"markdown"},"label":"Overview & Coverage","link":"/countries/overview","routeSlug":"/countries/overview"},{"type":"link","fsPath":"countries/jurisdictional-data.md","metadata":{"type":"markdown"},"label":"Supplying Jurisdiction Data","link":"/countries/jurisdictional-data","routeSlug":"/countries/jurisdictional-data"},{"type":"link","fsPath":"countries/profiles.md","metadata":{"type":"markdown"},"label":"Country Capabilities","link":"/countries/profiles","routeSlug":"/countries/profiles"},{"type":"link","fsPath":"countries/at.md","metadata":{"type":"markdown"},"label":"Austria","link":"/countries/at","routeSlug":"/countries/at"},{"type":"link","fsPath":"countries/be.md","metadata":{"type":"markdown"},"label":"Belgium","link":"/countries/be","routeSlug":"/countries/be"},{"type":"link","fsPath":"countries/ca.md","metadata":{"type":"markdown"},"label":"Canada","link":"/countries/ca","routeSlug":"/countries/ca"},{"type":"link","fsPath":"countries/ch.md","metadata":{"type":"markdown"},"label":"Switzerland","link":"/countries/ch","routeSlug":"/countries/ch"},{"type":"link","fsPath":"countries/de.md","metadata":{"type":"markdown"},"label":"Germany","link":"/countries/de","routeSlug":"/countries/de"},{"type":"link","fsPath":"countries/dk.md","metadata":{"type":"markdown"},"label":"Denmark","link":"/countries/dk","routeSlug":"/countries/dk"},{"type":"link","fsPath":"countries/ee.md","metadata":{"type":"markdown"},"label":"Estonia","link":"/countries/ee","routeSlug":"/countries/ee"},{"type":"link","fsPath":"countries/es.md","metadata":{"type":"markdown"},"label":"Spain","link":"/countries/es","routeSlug":"/countries/es"},{"type":"link","fsPath":"countries/fi.md","metadata":{"type":"markdown"},"label":"Finland","link":"/countries/fi","routeSlug":"/countries/fi"},{"type":"link","fsPath":"countries/fr.md","metadata":{"type":"markdown"},"label":"France","link":"/countries/fr","routeSlug":"/countries/fr"},{"type":"link","fsPath":"countries/gb.md","metadata":{"type":"markdown"},"label":"United Kingdom","link":"/countries/gb","routeSlug":"/countries/gb"},{"type":"link","fsPath":"countries/gr.md","metadata":{"type":"markdown"},"label":"Greece","link":"/countries/gr","routeSlug":"/countries/gr"},{"type":"link","fsPath":"countries/ie.md","metadata":{"type":"markdown"},"label":"Ireland","link":"/countries/ie","routeSlug":"/countries/ie"},{"type":"link","fsPath":"countries/is.md","metadata":{"type":"markdown"},"label":"Iceland","link":"/countries/is","routeSlug":"/countries/is"},{"type":"link","fsPath":"countries/it.md","metadata":{"type":"markdown"},"label":"Italy","link":"/countries/it","routeSlug":"/countries/it"},{"type":"link","fsPath":"countries/nl.md","metadata":{"type":"markdown"},"label":"Netherlands","link":"/countries/nl","routeSlug":"/countries/nl"},{"type":"link","fsPath":"countries/no.md","metadata":{"type":"markdown"},"label":"Norway","link":"/countries/no","routeSlug":"/countries/no"},{"type":"link","fsPath":"countries/pl.md","metadata":{"type":"markdown"},"label":"Poland","link":"/countries/pl","routeSlug":"/countries/pl"},{"type":"link","fsPath":"countries/pt.md","metadata":{"type":"markdown"},"label":"Portugal","link":"/countries/pt","routeSlug":"/countries/pt"},{"type":"link","fsPath":"countries/se.md","metadata":{"type":"markdown"},"label":"Sweden","link":"/countries/se","routeSlug":"/countries/se"},{"type":"link","fsPath":"countries/us.md","metadata":{"type":"markdown"},"label":"United States","link":"/countries/us","routeSlug":"/countries/us"}]},{"type":"group","label":"Verification","items":[{"type":"link","fsPath":"verification/verification.md","metadata":{"type":"markdown"},"label":"Receipt & Credit Note Verification","link":"/verification/verification","routeSlug":"/verification/verification"}]},{"type":"group","label":"Credit Notes","items":[{"type":"link","fsPath":"creditNote/credit-notes.md","metadata":{"type":"markdown"},"label":"Overview","link":"/creditnote/credit-notes","routeSlug":"/creditnote/credit-notes"},{"type":"link","fsPath":"creditNote/receiving-returns.md","metadata":{"type":"markdown"},"label":"Receiving Return Requests","link":"/creditnote/receiving-returns","routeSlug":"/creditnote/receiving-returns"},{"type":"link","fsPath":"creditNote/issuing-credit-notes.md","metadata":{"type":"markdown"},"label":"Issuing Credit Notes","link":"/creditnote/issuing-credit-notes","routeSlug":"/creditnote/issuing-credit-notes"},{"type":"link","fsPath":"creditNote/ubl-format.md","metadata":{"type":"markdown"},"label":"UBL XML Format","link":"/creditnote/ubl-format","routeSlug":"/creditnote/ubl-format"}]},{"type":"group","label":"Webhooks","items":[{"type":"link","fsPath":"webhooks/overview.md","metadata":{"type":"markdown"},"label":"Overview","link":"/webhooks/overview","routeSlug":"/webhooks/overview"},{"type":"link","fsPath":"webhooks/setup.md","metadata":{"type":"markdown"},"label":"Setup","link":"/webhooks/setup","routeSlug":"/webhooks/setup"},{"type":"link","fsPath":"webhooks/return-webhooks.md","metadata":{"type":"markdown"},"label":"Return Webhooks","link":"/webhooks/return-webhooks","routeSlug":"/webhooks/return-webhooks"},{"type":"link","fsPath":"webhooks/receipt-webhooks.md","metadata":{"type":"markdown"},"label":"Receipt Webhooks","link":"/webhooks/receipt-webhooks","routeSlug":"/webhooks/receipt-webhooks"},{"type":"link","fsPath":"webhooks/security.md","metadata":{"type":"markdown"},"label":"Security","link":"/webhooks/security","routeSlug":"/webhooks/security"}]},{"type":"group","label":"Tools & Integrations","items":[{"type":"group","label":"CLI","items":[{"type":"link","fsPath":"cli/overview.md","metadata":{"type":"markdown"},"label":"Overview","link":"/cli/overview","routeSlug":"/cli/overview"},{"type":"link","fsPath":"cli/commands.md","metadata":{"type":"markdown"},"label":"Command Reference","link":"/cli/commands","routeSlug":"/cli/commands"},{"type":"link","fsPath":"cli/agent-workflows.md","metadata":{"type":"markdown"},"label":"Agent Workflows","link":"/cli/agent-workflows","routeSlug":"/cli/agent-workflows"}]},{"type":"group","label":"MCP","items":[{"type":"link","fsPath":"mcp/overview.md","metadata":{"type":"markdown"},"label":"Overview","link":"/mcp/overview","routeSlug":"/mcp/overview"},{"type":"link","fsPath":"mcp/crypto-container.md","metadata":{"type":"markdown"},"label":"Merchant Crypto Container","link":"/mcp/crypto-container","routeSlug":"/mcp/crypto-container"}]},{"type":"group","label":"Odoo","items":[{"type":"link","fsPath":"odoo/overview.md","metadata":{"type":"markdown"},"label":"Overview","link":"/odoo/overview","routeSlug":"/odoo/overview"},{"type":"link","fsPath":"odoo/quick-start.md","metadata":{"type":"markdown"},"label":"Quick Start","link":"/odoo/quick-start","routeSlug":"/odoo/quick-start"},{"type":"link","fsPath":"odoo/installation.md","metadata":{"type":"markdown"},"label":"Installation","link":"/odoo/installation","routeSlug":"/odoo/installation"},{"type":"group","label":"POS & Webshop","items":[{"type":"link","fsPath":"odoo/configuration.md","metadata":{"type":"markdown"},"label":"Configuration","link":"/odoo/configuration","routeSlug":"/odoo/configuration"},{"type":"link","fsPath":"odoo/payment-providers.md","metadata":{"type":"markdown"},"label":"Payment Providers","link":"/odoo/payment-providers","routeSlug":"/odoo/payment-providers"},{"type":"link","fsPath":"odoo/customer-experience.md","metadata":{"type":"markdown"},"label":"Customer Experience","link":"/odoo/customer-experience","routeSlug":"/odoo/customer-experience"},{"type":"link","fsPath":"odoo/country-coverage.md","metadata":{"type":"markdown"},"label":"Country Coverage","link":"/odoo/country-coverage","routeSlug":"/odoo/country-coverage"},{"type":"link","fsPath":"odoo/cashier-guide.md","metadata":{"type":"markdown"},"label":"Cashier Guide","link":"/odoo/cashier-guide","routeSlug":"/odoo/cashier-guide"}]},{"type":"link","fsPath":"odoo/expenses.md","metadata":{"type":"markdown"},"label":"Expenses","link":"/odoo/expenses","routeSlug":"/odoo/expenses"},{"type":"link","fsPath":"odoo/troubleshooting.md","metadata":{"type":"markdown"},"label":"Troubleshooting & Limitations","link":"/odoo/troubleshooting","routeSlug":"/odoo/troubleshooting"}]}]},{"type":"group","fsPath":"apis/api-docs.yaml","link":"/apis/api-docs","routeSlug":"/apis/api-docs","label":"API Reference","items":[{"type":"group","label":"Store Management","link":"/apis/api-docs/store-management","routeSlug":"/apis/api-docs/store-management","items":[{"label":"Get store location","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/store-management/getstore","routeSlug":"/apis/api-docs/store-management/getstore","metadata":{"seo":{"title":"Get store location","description":"Gets a specific lightweight store/location record under the specified company. OAuth client applications require the store:read scope."}},"httpPath":"/company/{companyId}/stores/{storeId}"},{"label":"Update store location","deprecated":false,"httpVerb":"put","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/store-management/updatestore","routeSlug":"/apis/api-docs/store-management/updatestore","metadata":{"seo":{"title":"Update store location","description":"Updates a lightweight store/location record under the specified company. OAuth client applications require the store:manage scope."}},"httpPath":"/company/{companyId}/stores/{storeId}"},{"label":"List store locations","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/store-management/getstores","routeSlug":"/apis/api-docs/store-management/getstores","metadata":{"seo":{"title":"List store locations","description":"Lists lightweight store/location records. When companyId is omitted, the company is derived from the authenticated principal. This does not list child companies. OAuth client applications require the store:read scope."}},"httpPath":"/company/{companyId}/stores"},{"label":"Create store location","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/store-management/createstore","routeSlug":"/apis/api-docs/store-management/createstore","metadata":{"seo":{"title":"Create store location","description":"Creates a lightweight store/location record. When companyId is omitted, the company is derived from the authenticated principal. Use child companies instead when the branch or franchisee needs its own Cheqi company identity, tax details, permissions, or reporting boundary. OAuth client applications require the store:manage scope."}},"httpPath":"/company/{companyId}/stores"},{"label":"Deactivate store location","deprecated":false,"httpVerb":"patch","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/store-management/deactivatestore","routeSlug":"/apis/api-docs/store-management/deactivatestore","metadata":{"seo":{"title":"Deactivate store location","description":"Deactivates a store/location without deleting its history. OAuth client applications require the store:manage scope."}},"httpPath":"/company/{companyId}/stores/{storeId}/deactivate"},{"label":"Activate store location","deprecated":false,"httpVerb":"patch","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/store-management/activatestore","routeSlug":"/apis/api-docs/store-management/activatestore","metadata":{"seo":{"title":"Activate store location","description":"Reactivates a previously deactivated store/location. OAuth client applications require the store:manage scope."}},"httpPath":"/company/{companyId}/stores/{storeId}/activate"}]},{"type":"group","label":"Client Application Management","link":"/apis/api-docs/client-application-management","routeSlug":"/apis/api-docs/client-application-management","items":[{"label":"Get client application public key","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/client-application-management/getclientapplicationpublickey","routeSlug":"/apis/api-docs/client-application-management/getclientapplicationpublickey","metadata":{"seo":{"title":"Get client application public key","description":"Retrieves the public key information for a client application, including the key data, algorithm, and upload timestamp. This key is used to verify signatures from the client application."}},"httpPath":"/client-application/{clientApplicationId}/public-key"},{"label":"Upload client application public key","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/client-application-management/uploadclientapplicationpublickey","routeSlug":"/apis/api-docs/client-application-management/uploadclientapplicationpublickey","metadata":{"seo":{"title":"Upload client application public key","description":"Uploads a public key for the client application. This key is used to verify signatures from the client application when it signs receipts or other data. Can be called by company admins or using company API key authentication."}},"httpPath":"/client-application/{clientApplicationId}/public-key"},{"label":"Register the authenticated application's public encryption key","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/client-application-management/registerpublickey","routeSlug":"/apis/api-docs/client-application-management/registerpublickey","metadata":{"seo":{"title":"Register the authenticated application's public encryption key","description":"Authenticates an approved confidential application using client_id and an active client_secret in the request body, then registers its public encryption key. Alternatively, omit client_secret and send the owning company API key as a bearer token. The API key must belong to the company that owns the selected client_id. Client credentials require no API key, bearer token, company grant, or application UUID. The credentials select the application; another application cannot be selected. Keep the corresponding private key in the receiving application. Use HTTPS."}},"httpPath":"/client-application/public-key"},{"label":"Get authorized resources","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/client-application-management/getauthorizedresources","routeSlug":"/apis/api-docs/client-application-management/getauthorizedresources","metadata":{"seo":{"title":"Get authorized resources","description":"Returns receipt-routing resources for the authenticated company or user context only. Requires receipt:read. Company tokens must reference the active company grant and revision; application-wide credentials are not accepted."}},"httpPath":"/client-application/authorized-resources"}]},{"type":"group","label":"OAuth2 Authorization","link":"/apis/api-docs/oauth2-authorization","routeSlug":"/apis/api-docs/oauth2-authorization","items":[{"label":"Initiate OAuth2 authorization","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/oauth2-authorization/authorize","routeSlug":"/apis/api-docs/oauth2-authorization/authorize","metadata":{"seo":{"title":"Initiate OAuth2 authorization","description":"Initiates the OAuth2 authorization flow. Redirects to the frontend authorization page where users can approve or deny access."}},"httpPath":"/oauth2/authorize"},{"label":"Exchange authorization code","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/oauth2-authorization/exchangeauthorizationcode","routeSlug":"/apis/api-docs/oauth2-authorization/exchangeauthorizationcode","metadata":{"seo":{"title":"Exchange authorization code","description":"Consume a one-time authorization code and return the approved Grant metadata."}},"httpPath":"/oauth2/authorization-code/exchange"},{"label":"Get Grant details","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/oauth2-authorization/getgrantdetails","routeSlug":"/apis/api-docs/oauth2-authorization/getgrantdetails","metadata":{"seo":{"title":"Get Grant details","description":"Returns the current Company and Store metadata for the Grant bound to the access token."}},"httpPath":"/oauth2/grants/{grantId}"},{"label":"OAuth token exchange","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/oauth2-authorization/gettoken","routeSlug":"/apis/api-docs/oauth2-authorization/gettoken","metadata":{"seo":{"title":"OAuth token exchange","description":"Request a short-lived Company token for an approved Grant."}},"httpPath":"/oauth2/token"}]},{"type":"group","label":"Credit Note Management","link":"/apis/api-docs/credit-note-management","routeSlug":"/apis/api-docs/credit-note-management","items":[{"type":"link","label":"CreditNoteInitiationRequest","link":"/apis/api-docs/credit-note-management/creditnoteinitiationrequest","routeSlug":"/apis/api-docs/credit-note-management/creditnoteinitiationrequest","httpVerb":"schema"},{"label":"Submit encrypted credit-note generation input","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/credit-note-management/submitencryptedreceipt_1","routeSlug":"/apis/api-docs/credit-note-management/submitencryptedreceipt_1","metadata":{"seo":{"title":"Submit encrypted credit-note generation input","description":"Submits independently encrypted credit-note generation input for every matched owner device. Devices generate CHEQI JSON and any requested UBL CreditNote locally."}},"httpPath":"/credit-note/encrypted"},{"label":"Update a return request status","deprecated":false,"httpVerb":"patch","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/credit-note-management/updaterequeststatus","routeSlug":"/apis/api-docs/credit-note-management/updaterequeststatus","metadata":{"seo":{"title":"Update a return request status","description":"Updates a return request owned by the authenticated company and issuing application. Requires receipt:issue; delegated company grants and selected-store restrictions are revalidated. The encrypted request remains opaque to Cheqi."}},"httpPath":"/credit-note/requests/{requestId}/status"},{"label":"Get all outstanding credit note initiation requests","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/credit-note-management/getallcreditnotes","routeSlug":"/apis/api-docs/credit-note-management/getallcreditnotes","metadata":{"seo":{"title":"Get all outstanding credit note initiation requests","description":"Retrieves outstanding customer return requests for the authenticated company and issuing application only. Requires receipt:read; delegated company grants and selected-store restrictions are revalidated."}},"httpPath":"/credit-note"}]},{"type":"group","label":"Company Management","link":"/apis/api-docs/company-management","routeSlug":"/apis/api-docs/company-management","items":[{"label":"Create child company","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/company-management/addchildcompany","routeSlug":"/apis/api-docs/company-management/addchildcompany","metadata":{"seo":{"title":"Create child company","description":"Creates a child company under an existing parent company. Use this when a branch, franchisee, or location should be modeled as its own Cheqi company with its own company identity. This is different from store management, which creates lightweight store/location records under a single company. The authenticated user must be an admin of the parent company."}},"httpPath":"/company/{parentId}/children"},{"label":"Invite employees to company","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/company-management/inviteemployees","routeSlug":"/apis/api-docs/company-management/inviteemployees","metadata":{"seo":{"title":"Invite employees to company","description":"Invites employees as ordinary company members without receipt permissions. Addresses are normalized and deduplicated. Already existing company members are returned with their Cheqi user IDs, including verified secondary email matches. Pending invitations remain pending by default; resendPending=true replaces their invitation and sends a new email. New acceptances emit COMPANY_INVITATION_ACCEPTED to authorized company webhook subscribers. Company-bound client applications require the company:members:invite scope."}},"httpPath":"/company/{id}/invite/employees"},{"label":"List active company receipt destinations","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/company-management/list","routeSlug":"/apis/api-docs/company-management/list","metadata":{"seo":{"title":"List active company receipt destinations","description":"Requires company receipt:read access. Returns the active destinations for the authenticated company without webhook signing secrets."}},"httpPath":"/company/receipt-destinations"},{"label":"Register a company receipt destination","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/company-management/register","routeSlug":"/apis/api-docs/company-management/register","metadata":{"seo":{"title":"Register a company receipt destination","description":"Requires a company API key with receipt:read. Register an RSA public key for encrypted receipt delivery; the response includes the destination ID and webhook signing secret. Create webhook subscriptions separately with POST /webhook/subscription using destinationId. To receive employee submissions, set acceptsEmployeeSubmissions=true and use an API key with receipt:read:user-shared. Registering the same public key again rebinds the calling API key, updates this setting, and returns the existing destination and secret."}},"httpPath":"/company/receipt-destinations"},{"label":"Acknowledge queued receipts for a destination","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/company-management/acknowledge","routeSlug":"/apis/api-docs/company-management/acknowledge","metadata":{"seo":{"title":"Acknowledge queued receipts for a destination","description":"Requires company receipt:read access. Removes the specified receipt IDs from this destination's recovery queue after the consumer has processed them."}},"httpPath":"/company/receipt-destinations/{id}/receipts/queue/acknowledge"},{"label":"List accepted company invitations","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/company-management/list_1","routeSlug":"/apis/api-docs/company-management/list_1","metadata":{"seo":{"title":"List accepted company invitations","description":"Recover missed COMPANY_INVITATION_ACCEPTED events. Requires the matching company context and company:members:invite for delegated clients. Results are ordered by acceptance time and invitation ID. Use the inclusive after timestamp and page number to reconcile events."}},"httpPath":"/company/{companyId}/invitation-acceptances"},{"label":"List queued encrypted receipts for a destination","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/company-management/queue","routeSlug":"/apis/api-docs/company-management/queue","metadata":{"seo":{"title":"List queued encrypted receipts for a destination","description":"Requires company receipt:read access. Returns encrypted receipt envelopes retained for this company-owned destination so a consumer can recover missed webhook deliveries."}},"httpPath":"/company/receipt-destinations/{id}/receipts/queue"},{"label":"Deactivate a company receipt destination","deprecated":false,"httpVerb":"delete","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/company-management/deactivate","routeSlug":"/apis/api-docs/company-management/deactivate","metadata":{"seo":{"title":"Deactivate a company receipt destination","description":"Requires company receipt:read access. Deactivates the destination and its active webhook subscriptions."}},"httpPath":"/company/receipt-destinations/{id}"}]},{"type":"group","label":"Recipient Management","link":"/apis/api-docs/recipient-management","routeSlug":"/apis/api-docs/recipient-management","items":[{"label":"Resolve receipt processing devices","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/recipient-management/matchcustomer","routeSlug":"/apis/api-docs/recipient-management/matchcustomer","metadata":{"seo":{"title":"Resolve receipt processing devices","description":"Matches the customer from the provided identification details and returns one temporary recipient for every device owned by the matched customer. Each device receives an independently encrypted generation request. Downstream wallet and third-party recipients are resolved later for exactly one processing device."}},"httpPath":"/recipient/resolve"},{"label":"Recover a receipt match or its original submission","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/recipient-management/getmatch","routeSlug":"/apis/api-docs/recipient-management/getmatch","metadata":{"seo":{"title":"Recover a receipt match or its original submission","description":"Returns MATCHED with original recipient keys, SUBMITTED with the original acceptance result, IN_PROGRESS with retryAfterSeconds, or EXPIRED. Matches are bound to the original authenticated subject, company and client application. No customer-matching identifiers are returned."}},"httpPath":"/recipient/matches/{matchId}"}]},{"type":"group","label":"Receipt Management","link":"/apis/api-docs/receipt-management","routeSlug":"/apis/api-docs/receipt-management","items":[{"type":"link","label":"CheqiReceipt","link":"/apis/api-docs/receipt-management/cheqireceipt","routeSlug":"/apis/api-docs/receipt-management/cheqireceipt","httpVerb":"schema"},{"type":"link","label":"ReceiptEnvelope","link":"/apis/api-docs/receipt-management/receiptenvelope","routeSlug":"/apis/api-docs/receipt-management/receiptenvelope","httpVerb":"schema"},{"type":"link","label":"ReceiptEnvelopeDocument","link":"/apis/api-docs/receipt-management/receiptenvelopedocument","routeSlug":"/apis/api-docs/receipt-management/receiptenvelopedocument","httpVerb":"schema"},{"type":"link","label":"ReceiptPayload","link":"/apis/api-docs/receipt-management/receiptpayload","routeSlug":"/apis/api-docs/receipt-management/receiptpayload","httpVerb":"schema"},{"label":"Acknowledge queued receipts","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/receipt-management/acknowledgequeuedreceipts","routeSlug":"/apis/api-docs/receipt-management/acknowledgequeuedreceipts","metadata":{"seo":{"title":"Acknowledge queued receipts","description":"Acknowledges successfully processed queued receipts for the authenticated company or client application. Requires an applicable receipt read scope."}},"httpPath":"/receipts/queue/acknowledge/received"},{"label":"Acknowledge permanent failure for queued receipts","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/receipt-management/acknowledgequeuedreceiptspermanentfailure","routeSlug":"/apis/api-docs/receipt-management/acknowledgequeuedreceiptspermanentfailure","metadata":{"seo":{"title":"Acknowledge permanent failure for queued receipts","description":"Marks queued receipts as permanently failed for the authenticated company or client application. Requires an applicable receipt read scope."}},"httpPath":"/receipts/queue/acknowledge/failed-permanent"},{"label":"Submit an encrypted receipt payload","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/receipt-management/submitencryptedreceipt","routeSlug":"/apis/api-docs/receipt-management/submitencryptedreceipt","metadata":{"seo":{"title":"Submit an encrypted receipt payload","description":"Queues independently encrypted definitive receipt payloads for the devices returned by POST /recipient/resolve. Replays by the original requester return the original acceptance result even with regenerated ciphertext. An active submission returns IN_PROGRESS and Retry-After: 2. Expired unsubmitted matches return EXPIRED with HTTP 410. The backend never decrypts these requests."}},"httpPath":"/receipt/encrypted"},{"label":"Send receipt via email","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/receipt-management/submitreceiptwithemail","routeSlug":"/apis/api-docs/receipt-management/submitreceiptwithemail","metadata":{"seo":{"title":"Send receipt via email","description":"Sends a purchase receipt directly to a customer via email. The receipt is delivered as a PDF attachment. Requires the receipt:issue scope."}},"httpPath":"/receipt/email"},{"label":"Upload a client-encrypted receipt for a client-generated download link","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/receipt-management/uploadclientencryptedreceipt","routeSlug":"/apis/api-docs/receipt-management/uploadclientencryptedreceipt","metadata":{"seo":{"title":"Upload a client-encrypted receipt for a client-generated download link","description":"Stores the ciphertext behind a download id the SDK generated locally, so the QR code worked before this upload. First write wins: resubmitting the same downloadId with identical bytes returns 200 with the original identifiers (safe retry); different bytes or a different principal conflict with 409 and never replace the stored receipt. Requires the receipt:issue scope."}},"httpPath":"/receipt/download"},{"label":"Get queued encrypted receipts","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/receipt-management/getqueuedreceipts","routeSlug":"/apis/api-docs/receipt-management/getqueuedreceipts","metadata":{"seo":{"title":"Get queued encrypted receipts","description":"Returns pending encrypted receipts for the authenticated company or client application. Receipts remain in the queue until they are explicitly acknowledged or marked as permanently failed. Delegated clients require receipt:read or receipt:read:user-shared."}},"httpPath":"/receipts/queue"},{"label":"List supported receipt formats","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/receipt-management/get","routeSlug":"/apis/api-docs/receipt-management/get","metadata":{"seo":{"title":"List supported receipt formats","description":"Public metadata for formatPreferences. Each ReceiptFormat value selects a representation and, for versioned invoice formats, its UBL schema and conformance profile. Newer UBL schema compatibility does not imply EN 16931:2026 or Peppol support."}},"httpPath":"/receipt/document-capabilities"}]},{"type":"group","label":"Webhook Management","link":"/apis/api-docs/webhook-management","routeSlug":"/apis/api-docs/webhook-management","items":[{"label":"Create webhook subscription","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/webhook-management/handlewebhook","routeSlug":"/apis/api-docs/webhook-management/handlewebhook","metadata":{"seo":{"title":"Create webhook subscription","description":"Creates subscriptions for requested events. COMPANY_INVITATION_ACCEPTED requires a company context and company:members:invite for delegated clients. Receipt events require receipt:read or receipt:read:user-shared. With destinationId, a company API key subscribes one of its receipt destinations; repeating the call returns the existing subscriptions in existingWebhooks."}},"httpPath":"/webhook/subscription"},{"label":"Update a webhook subscription's notification URL","deprecated":false,"httpVerb":"patch","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/api-docs/webhook-management/updatesubscriptionurl","routeSlug":"/apis/api-docs/webhook-management/updatesubscriptionurl","metadata":{"seo":{"title":"Update a webhook subscription's notification URL","description":"Changes where the owner's subscription is delivered. Requires the same scope as subscribing to its event."}},"httpPath":"/webhook/subscription/{id}"}]}],"metadata":{"type":"openapi","title":"Cheqi API","version":"v1","description":"Cheqi provides APIs for creating receipts and reading receipts for customers"}}]}