Responses are generated using AI and may contain mistakes.
IMPORTANT: We're updating product naming across our documentation. Engage is now Customer Engagement and Elevate is now Product Discovery. This doesn't change Voyado's services, functionality, or terms of your agreement. Be aware, as these changes happen, that you may see both the old and new names being used.
A transaction, as defined in Customer Engagement, is when a customer visits a physical or online store and purchases (or returns) one or more items. The transaction contains its own data — such as the transaction’s unique ID, the store’s ID, the timestamp — plus the data for each individual item that was purchased or returned (known as the line items).All fields in the transaction data model can be used for segmentation and analysis in Customer Engagement.
Transaction data is sent to the endpoint called /receipts. You might see the term “receipt” turning up other places in the Customer Engagement API or in field names. Keep in mind that “receipt” means “transaction”.
You might also come across an API endpoint named /transactions. This is a legacy endpoint maintained for a few older clients, so, despite the name, do NOT send your transaction data here.
Transactions posted to the /receipts API are not relayed to the database immediately. Instead, they are collected and, at a preset interval, converted into an XML file. This XML is processed and applied to the database. By default, an XML is generated every 15 minutes, meaning it could take this amount of time for a transaction to be registered in the database. It’s possible to change this interval, all the way down to 0 minutes if needed, to speed up testing.Talk to your Voyado Customer Engagement team about this.The transaction XML is converted through XSLT in the same way as historical transaction which are imported through Customer Engagement’s ftp. However, no XSLT is required in this case as long as no special transformations are used.
Total discounts (ex. 30% on an entire purchase) should not be recorded as a separate line item. Instead, the discount should be applied on each line-item so that each item reflects the actual price paid for the item. The same applies for line item discounts (ex. 25% on a specific item), where the discount should be deducted from the specified line item price (i.e. original price * 0.75).”. Read more about discounts below and in the section Discounts
Group currency is the default currency for the specific Customer Engagement instance, normally decided in the pre-study. The property currency.conversion.factors sets the different exchange rates used when converting between the group currency and the local currency.
Customer Engagement can access all product metadata from the transaction as well as the specific line items. Read more about other options here. There are also a limited amount of fields per product that can be used for storing extra data for a transaction:
10 spare string fields (spare1, spare2 … spare10)
10 spare date fields (datespare1, datespare2 … datespare5)
These fields can be found in the API and XML under “extraData”. If they are named the same as in the client configuration, no transformation needs to be done.
In Customer Engagement’s transaction model, freight should not be included, to avoid the end-user being awarded bonus points based on the freight cost. Bonus points should only be based on what the end-user has actually paid for their purchase.There are also some reports and KPIs in Customer Engagement that require the freight fee to be excluded. For example, most purchased articles, number of articles purchased, total purchase amount and the average amount on the transaction.So freight should always be excluded from the transaction’s total, even if the e-com handles it separately, whether per item row or as a total amount. Regardless on how the e-com handles it, the amount total on the receipt sent to Customer Engagement is calculated without the freight cost, and the amount for each item must sum to the total amount.
This is only true for the endpoint /receipts. For the /orders endpoint, Customer Engagement uses an object called freightFee to inform the end customer, in their order communication emails, how much they have paid for freight.
createdDate should be in ISO8601 with time zone designator
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Voyado Docs","colors":{"primary":"#fe4a49","light":"#ffffff","dark":"#fe4a49"},"logo":{"light":"https://mintcdn.com/voyado/fiZZVymeDExCOKTK/logo/light.svg?fit=max\u0026auto=format\u0026n=fiZZVymeDExCOKTK\u0026q=85\u0026s=114e763881bcc646add31724b257f726","dark":"https://mintcdn.com/voyado/fiZZVymeDExCOKTK/logo/dark.svg?fit=max\u0026auto=format\u0026n=fiZZVymeDExCOKTK\u0026q=85\u0026s=68eaa3b1f64893ebcee4c7d65f20ecbc","href":"/docs"},"favicon":"https://mintcdn.com/voyado/_EinvHkwtU2pq43w/favicon.png?fit=max\u0026auto=format\u0026n=_EinvHkwtU2pq43w\u0026q=85\u0026s=4109ede7a6d04311c67ffa2f695ce527","appearance":{"default":"light"},"background":{"decoration":"grid"},"navbar":{"links":[{"icon":"/icons/help-center-link.png","href":"https://help.engage.voyado.com/hc/en-gb","label":"Help Center"}],"primary":{"type":"button","label":"Contact us","href":"https://voyado.com/about-voyado/contact-us/"}},"footer":{"socials":{"facebook":"https://www.facebook.com/voyado","linkedin":"https://www.linkedin.com/company/voyadoab"}},"fonts":{"heading":{"family":"Voyado Text","source":"https://mintlify-assets.b-cdn.net/VoyadoText-Medium.woff2","format":"woff2"},"body":{"family":"Voyado Regular","source":"https://mintlify-assets.b-cdn.net/VoyadoText-Regular.woff2","format":"woff2"}},"integrations":{"cookies":{"key":"mintlify_telemetry","value":"granted"}},"banner":{"content":"IMPORTANT: We're updating product naming across our documentation. **Engage** is now **Customer Engagement** and **Elevate** is now **Product Discovery**. This doesn't change Voyado's services, functionality, or terms of your agreement. Be aware, as these changes happen, that you may see both the old and new names being used.","dismissible":false},"errors":{"404":{"redirect":false,"title":"The page you are looking for can't be found. Search for it in the box above.","description":"Or press [here](https://developer.voyado.com/) to come to the start page and the menu."}},"contextual":{"options":["claude","chatgpt","assistant","copy","view","mcp"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"voyado","hasAudioNarration":false,"actualSubdomain":"voyado","customDomains":["developer.voyado.com"],"gitSource":{"type":"github","owner":"voyado","repo":"developer-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae1bb4a83326b7b15e9050b","collectionId":"97bdc92d-fe34-45d7-8595-921786581f7e","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae1bb4a83326b7b15e9050b"},"feedback":{"thumbs":true,"edits":false,"issues":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"DISABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae1bb4a83326b7b15e9050b","clientVersion":"0.0.4006","searchFilterCounts":[{"language":"default","tag":"Integration","count":46},{"language":"default","tag":"Data access","count":26},{"language":"default","tag":"E-com and communication","count":19},{"language":"default","tag":"File based transfer","count":18},{"language":"default","tag":"Contacts","count":15},{"language":"default","tag":"BI export","count":14},{"language":"default","tag":"BI Exports available","count":13},{"language":"default","tag":"E-com and tracking","count":11},{"language":"default","tag":"Delta share","count":9},{"language":"default","tag":"Home","count":8}]},"assistantConfig":{"enableStarterQuestions":false},"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":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":false}},"googleFontsInlined":false},"customCss":[{"filePath":"styles/style.css","content":".border-b{border-bottom-width:2px;border-color:rgb(var(--gray-200))}.prose-sm{font-size:.9rem;line-height:1.7}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:500;background-color:#f8f8f7;border:1px solid #c7dbe8;border-radius:4px}.py-1\\.5{padding-top:1px;padding-bottom:1px}@media (min-width:1024px){.lg\\:mt-8{margin-top:1rem}}.sidebar-title{margin-bottom:-.3rem;font-size:15px}#pagination{display:none!important}.prose table{border-collapse:collapse;width:100%}.prose table td,.prose table th{border:1px solid rgba(0,0,0,.15);padding:.6rem .75rem}html.dark .prose table td,html.dark .prose table th{border:1px solid rgba(255,255,255,.15)}.prose table thead tr{background-color:rgba(59,130,246,.12)}html.dark .prose table thead tr{background-color:rgba(59,130,246,.25)}.prose table thead th{font-weight:600}.prose table tbody tr:nth-child(odd) td{background-color:rgba(0,0,0,.03)}html.dark .prose table tbody tr:nth-child(odd) td{background-color:rgba(255,255,255,.05)}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.6em;margin-bottom:.7em}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.5em;margin-bottom:.6em}@media (min-width:1024px){.update h2{margin-top:-2px!important}}.update-container{padding-top:15px!important;padding-bottom:25px!important;gap:5px!important}"}],"page":{"pagePath":"docs/transactions/introduction-to-transactions","slug":"/docs/transactions/introduction-to-transactions","pageMetadata":{"title":"Introduction to transactions","description":null,"href":"/docs/transactions/introduction-to-transactions"},"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`,em:`em`,li:`li`,p:`p`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Tip}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`A transaction, as defined in Customer Engagement, is when a customer visits a physical or online store and purchases (or returns) one or more items. The transaction contains its own data — such as the transaction’s unique ID, the store’s ID, the timestamp — plus the data for each individual item that was purchased or returned (known as the line items).`}),`\n`,_jsx(_components.p,{children:`All fields in the transaction data model can be used for segmentation and analysis in Customer Engagement.`}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Transaction data is sent to the endpoint called `,_jsx(_components.code,{children:`/receipts`}),`. You might see the term “receipt” turning up other places in the Customer Engagement API or in field names. Keep in mind that “receipt” means “transaction”.`]})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`You might also come across an API endpoint named `,_jsx(_components.code,{children:`/transactions`}),`. This is a legacy endpoint maintained for a few older clients, so, despite the name, do NOT send your transaction data here.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`processing-of-api-calls`,children:`Processing of API calls`}),`\n`,_jsxs(_components.p,{children:[`Transactions posted to the `,_jsx(_components.code,{children:`/receipts`}),` API are not relayed to the database immediately. Instead, they are collected and, at a preset interval, converted into an XML file. This XML is processed and applied to the database. By default, an XML is generated every 15 minutes, meaning it could take this amount of time for a transaction to be registered in the database. It’s possible to change this interval, all the way down to 0 minutes if needed, to speed up testing.`]}),`\n`,_jsx(_components.p,{children:`Talk to your Voyado Customer Engagement team about this.`}),`\n`,_jsx(_components.p,{children:`The transaction XML is converted through XSLT in the same way as historical transaction which are imported through Customer Engagement’s ftp. However, no XSLT is required in this case as long as no special transformations are used.`}),`\n`,_jsx(Heading,{level:`2`,id:`duplicates`,children:`Duplicates`}),`\n`,_jsxs(_components.p,{children:[`Any transaction imported that has the same `,_jsx(_components.code,{children:`uniqueReceiptId`}),` as an already existing transaction in the database will be seen as a duplicate and ignored.`]}),`\n`,_jsx(Heading,{level:`2`,id:`discounts-line-item-and-total`,children:`Discounts (line-item and total)`}),`\n`,_jsxs(_components.p,{children:[`Total discounts (ex. 30% on an entire purchase) should not be recorded as a separate line item. Instead, the discount should be applied on each line-item so that each item reflects the actual price paid for the item. The same applies for line item discounts (ex. 25% on a specific item), where the discount should be deducted from the specified line item price (i.e. original price * 0.75).”. Read more about discounts below and in the section `,_jsx(_components.a,{href:`/docs/transactions/discounts`,children:`Discounts`})]}),`\n`,_jsx(Heading,{level:`2`,id:`updates-to-a-transaction`,children:`Updates to a transaction`}),`\n`,_jsx(_components.p,{children:`Once a transaction is imported into Customer Engagement it is not possible to update it with new information.`}),`\n`,_jsx(Heading,{level:`2`,id:`group-currency-and-local-currency`,children:`Group currency and local currency`}),`\n`,_jsxs(_components.p,{children:[`Group currency is the default currency for the specific Customer Engagement instance, normally decided in the pre-study. The property `,_jsx(_components.code,{children:`currency.conversion.factors`}),` sets the different exchange rates used when converting between the group currency and the local currency.`]}),`\n`,_jsx(Heading,{level:`2`,id:`product-metadata-and-spare-fields`,children:`Product metadata and spare fields`}),`\n`,_jsxs(_components.p,{children:[`Customer Engagement can access all product metadata from the transaction as well as the specific line items. Read more about other options `,_jsx(_components.a,{href:`/docs/setup/article-register`,children:`here`}),`. There are also a limited amount of fields per product that can be used for storing extra data for a transaction:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`10 spare string fields (spare1, spare2 … spare10)`}),`\n`,_jsx(_components.li,{children:`10 spare date fields (datespare1, datespare2 … datespare5)`}),`\n`]}),`\n`,_jsx(_components.p,{children:`These fields can be found in the API and XML under “extraData”. If they are named the same as in the client configuration, no transformation needs to be done.`}),`\n`,_jsx(Heading,{level:`2`,id:`freight`,children:`Freight`}),`\n`,_jsx(_components.p,{children:`In Customer Engagement’s transaction model, freight should not be included, to avoid the end-user being awarded bonus points based on the freight cost. Bonus points should only be based on what the end-user has actually paid for their purchase.`}),`\n`,_jsx(_components.p,{children:`There are also some reports and KPIs in Customer Engagement that require the freight fee to be excluded. For example, most purchased articles, number of articles purchased, total purchase amount and the average amount on the transaction.`}),`\n`,_jsxs(_components.p,{children:[`So freight should always be excluded from the transaction’s total, even if the e-com handles it separately, whether per item row or as a total amount. Regardless on how the e-com handles it, the amount total on the receipt sent to Customer Engagement is calculated `,_jsx(_components.em,{children:`without`}),` the freight cost, and the amount for each item must sum to the total amount.`]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`This is only true for the endpoint `,_jsx(_components.code,{children:`/receipts`}),`. For the /orders endpoint, Customer Engagement uses an object called freightFee to inform the end customer, in their order communication emails, how much they have paid for freight.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`validations`,children:`Validations`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`discounts.value`}),` should always be negative`]}),`\n`,_jsxs(_components.li,{children:[`A return should have `,_jsx(_components.code,{children:`item.type`}),` as “return” and `,_jsx(_components.code,{children:`quantity`}),` should be negative`]}),`\n`,_jsxs(_components.li,{children:[`A purchase should have `,_jsx(_components.code,{children:`item.type`}),` as “purchase” and `,_jsx(_components.code,{children:`quantity`}),` should be positive`]}),`\n`,_jsx(_components.li,{children:`quantity should never be 0`}),`\n`,_jsxs(_components.li,{children:[`Sum of all `,_jsx(_components.code,{children:`paymentMethods`}),` should equal\\xA0`,_jsx(_components.code,{children:`totalGrossPrice`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Sum of all\\xA0`,_jsx(_components.code,{children:`grossPaidPrice`}),` should equal\\xA0`,_jsx(_components.code,{children:`totalGrossPrice`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`taxAmount`}),` should equal\\xA0`,_jsx(_components.code,{children:`grossPaidPrice`}),` – `,_jsx(_components.code,{children:`grossPaidPrice`}),` / (1 + taxPercent / 100)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`createdDate`}),` should be in ISO8601 with time zone designator`]}),`\n`]})]})}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":"Introduction to transactions","description":null,"href":"/docs/transactions/introduction-to-transactions"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Processing of API calls","slug":"processing-of-api-calls","depth":2,"children":[]},{"title":"Duplicates","slug":"duplicates","depth":2,"children":[]},{"title":"Discounts (line-item and total)","slug":"discounts-line-item-and-total","depth":2,"children":[]},{"title":"Updates to a transaction","slug":"updates-to-a-transaction","depth":2,"children":[]},{"title":"Group currency and local currency","slug":"group-currency-and-local-currency","depth":2,"children":[]},{"title":"Product metadata and spare fields","slug":"product-metadata-and-spare-fields","depth":2,"children":[]},{"title":"Freight","slug":"freight","depth":2,"children":[]},{"title":"Validations","slug":"validations","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/voyado/e3b0c44298fc1c14/js/test.js","/_mintlify/custom/voyado/a093bfac3f8a0766/js/gtm.js"],"subdomain":"voyado","siteName":"Voyado Docs","title":"Introduction to transactions - Voyado Docs","navMaps":{"firstHrefInVersion":{"API version 3":{"href":"/docs/transactions/introduction-to-transactions","matchLevel":0},"API version 2":{"href":"/docs-v2/api-v2","matchLevel":4}},"firstHrefInLanguage":{}},"lastModified":"2026-10-26T15:45:33.243Z","originalFileLocation":"docs/transactions/introduction-to-transactions.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=\"light\"}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=\"application-name\" content=\"Voyado Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/voyado/9fqQ87AEVqs68vAz/_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/voyado/9fqQ87AEVqs68vAz/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/voyado/9fqQ87AEVqs68vAz/_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/voyado/9fqQ87AEVqs68vAz/_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/voyado/9fqQ87AEVqs68vAz/_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/voyado/9fqQ87AEVqs68vAz/_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/voyado/9fqQ87AEVqs68vAz/_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/voyado/9fqQ87AEVqs68vAz/_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/voyado/9fqQ87AEVqs68vAz/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Introduction to transactions - Voyado Docs\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Voyado Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developer.voyado.com/docs/transactions/introduction-to-transactions\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://voyado.mintlify.app/_mintlify/api/og/v2?division=Transactions\u0026amp;title=Introduction+to+transactions\u0026amp;theme=d6be399f515d3ce011325711\u0026amp;signature=34d75fc1a3636f8fda610bd4d09d1df17ff0d083f5f901117dff396ff1e4c2b4\">\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=\"Introduction to transactions - Voyado Docs\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://voyado.mintlify.app/_mintlify/api/og/v2?division=Transactions\u0026amp;title=Introduction+to+transactions\u0026amp;theme=d6be399f515d3ce011325711\u0026amp;signature=34d75fc1a3636f8fda610bd4d09d1df17ff0d083f5f901117dff396ff1e4c2b4\">\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/voyado/9fqQ87AEVqs68vAz/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Voyado Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#fe4a49\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developer.voyado.com/docs/transactions/introduction-to-transactions\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/transactions/introduction-to-transactions.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developer.voyado.com/#organization\",\"name\":\"Voyado Docs\",\"url\":\"https://developer.voyado.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/voyado/fiZZVymeDExCOKTK/logo/light.svg?fit=max\u0026auto=format\u0026n=fiZZVymeDExCOKTK\u0026q=85\u0026s=114e763881bcc646add31724b257f726\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developer.voyado.com#website\",\"name\":\"Voyado Docs\",\"url\":\"https://developer.voyado.com\",\"publisher\":{\"@id\":\"https://developer.voyado.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developer.voyado.com/docs/transactions/introduction-to-transactions#webpage\",\"url\":\"https://developer.voyado.com/docs/transactions/introduction-to-transactions\",\"name\":\"Introduction to transactions\",\"dateModified\":\"2026-10-26T15:45:33.243Z\",\"isPartOf\":{\"@id\":\"https://developer.voyado.com#website\"},\"breadcrumb\":{\"@id\":\"https://developer.voyado.com/docs/transactions/introduction-to-transactions#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developer.voyado.com/docs/transactions/introduction-to-transactions#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Voyado Docs\",\"item\":\"https://developer.voyado.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Introduction to transactions\",\"item\":\"https://developer.voyado.com/docs/transactions/introduction-to-transactions\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://developer.voyado.com/docs/transactions/introduction-to-transactions#article\",\"headline\":\"Introduction to transactions\",\"name\":\"Introduction to transactions\",\"url\":\"https://developer.voyado.com/docs/transactions/introduction-to-transactions\",\"mainEntityOfPage\":{\"@id\":\"https://developer.voyado.com/docs/transactions/introduction-to-transactions#webpage\"},\"dateModified\":\"2026-10-26T15:45:33.243Z\",\"publisher\":{\"@id\":\"https://developer.voyado.com/#organization\"},\"isPartOf\":{\"@id\":\"https://developer.voyado.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Voyado Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Voyado Docs","nav":{"global":null,"versions":[{"version":"API version 3","tag":"Latest","tabs":[{"tab":"Home","pages":[{"title":"Home","href":"/docs/introduction/about"}]},{"tab":"Integration","groups":[{"group":" ","pages":[{"title":"About integration","href":"/docs/integration/about-integration"},{"title":"Non-functional requirements","href":"/docs/api/non-functional-requirements"},{"title":"Custom triggers","sidebarTitle":"Custom triggers","href":"/docs/setup/custom-triggers"},{"title":"Stores","href":"/docs/setup/stores"}]},{"group":"Contacts","pages":[{"title":"Introduction to contacts","href":"/docs/contacts/about-contacts"},{"title":"Contact field definitions","href":"/docs/contacts/contact-field-definitions"},{"group":"Identify contact","pages":[{"title":"Find a contact","href":"/docs/contacts/identify-contact/find-contact"},{"title":"Get contact data","href":"/docs/contacts/identify-contact/get-contact-data"},{"title":"Get enriched profile","href":"/docs/contacts/identify-contact/get-enriched-profile"},{"title":"Soft identification","href":"/docs/contacts/identify-contact/soft-identification"},{"title":"Deep linking to contacts","href":"/docs/contacts/identify-contact/deep-linking"}]},{"title":"Create contact","href":"/docs/contacts/create-contact"},{"title":"Update contact","href":"/docs/contacts/update-contact"},{"title":"Delete contact","href":"/docs/contacts/delete-contact"},{"title":"Security best practices","href":"/docs/contacts/security-best-practices"},{"title":"Target audiences","href":"/docs/contacts/target-audiences"},{"title":"Consents","href":"/docs/setup/consents"},{"title":"Bulk contacts API","href":"/docs/contacts/bulk-contacts-api"},{"title":"NPS","description":null,"href":"/docs/contacts/nps"}]},{"group":"Transactions","pages":[{"title":"Introduction to transactions","href":"/docs/transactions/introduction-to-transactions"},{"title":"Transaction field definitions","description":null,"href":"/docs/transactions/transaction-field-definitions"},{"title":"Group currency","href":"/docs/transactions/group-currency"},{"title":"Register a purchase","href":"/docs/transactions/register-a-purchase"},{"title":"Register a return","href":"/docs/transactions/register-a-return"},{"title":"Discounts","href":"/docs/transactions/discounts"},{"title":"Purchase history summary","href":"/docs/transactions/purchase-history-summary"}]},{"group":"Orders","pages":[{"title":"Introduction to orders","sidebarTitle":"Introduction to orders","href":"/docs/orders/introduction-to-orders"},{"title":"Orders data structure","href":"/docs/orders/orders-data-structure"},{"title":"Orders API endpoints","href":"/docs/orders/orders-api-endpoints"},{"title":"Orders and actions","href":"/docs/orders/orders-and-actions"},{"title":"Order action schemas","href":"/docs/orders/order-action-schemas"}]},{"group":"Loyalty","pages":[{"title":"Introduction to loyalty","href":"/docs/loyalty/about-loyalty"},{"title":"Points","href":"/docs/loyalty/points"},{"title":"Point shop","href":"/docs/loyalty/point-shop"},{"title":"Vouchers","href":"/docs/loyalty/vouchers"},{"title":"Promotions","href":"/docs/loyalty/promotions"},{"title":"Challenges","href":"/docs/loyalty/challenges"},{"title":"Interactions","href":"/docs/loyalty/interactions"}]},{"group":"Product data","pages":[{"title":"Product feeds","href":"/docs/setup/product-feeds"},{"title":"Article register","href":"/docs/setup/article-register"}]},{"group":"Ratings and Reviews (BETA)","pages":[{"title":"Integrating Ratings and Reviews","sidebarTitle":"Ratings and Reviews","href":"/docs/ratings-and-reviews/ratings-and-reviews-integration"},{"title":"Migrating Ratings and Reviews","sidebarTitle":"Migrating reviews","href":"/docs/ratings-and-reviews/migrating-reviews"},{"title":"Ratings and Reviews product data","sidebarTitle":"Product data","href":"/docs/ratings-and-reviews/product-data"}]},{"group":"Product Discovery","pages":[{"title":"Integration with Product Discovery","href":"/docs/product-discovery/integration"},{"title":"Boosting discoveryKey use","href":"/docs/product-discovery/discovery-key"},{"title":"Troubleshooting connected sessions","sidebarTitle":"Troubleshooting connected sessions","href":"/docs/product-discovery/connected-sessions"}]}]},{"tab":"File based transfer","pages":[{"title":"File based transfer","href":"/docs/file-based-transfer/about-file-based-transfer"}]},{"tab":"Data access","pages":[{"title":"Data access","href":"/docs/data-access/overview"}]},{"tab":"E-com and communication","pages":[{"title":"E-com and communication","href":"/docs/communication/communication"}]},{"tab":"Partner integrations","pages":[{"title":"Partner integrations","href":"/docs/introduction/about-partner-integrations"}]},{"tab":"What's new?","pages":[{"title":"What's new?","href":"/docs/introduction/whats-new"}]}]},{"version":"API version 2","tag":"Legacy","pages":[{"title":"API version 2","href":"/docs-v2/api-v2"}]}]},"title":"Introduction to transactions - Voyado Docs","buildId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","deploymentId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","dynamics":["10e4515597"],"chunks":["BannerMarkdown-B-Glu166.js","dist-zbf22OZA.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-Cs6nMGht.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js"]}