{"docsConfig":{"theme":"palm","$schema":"https://mintlify.com/docs.json","name":"Snappy API Docs","description":"Developer documentation for the Snappy API - authenticate, send gifts at scale, manage campaigns, and integrate webhooks into your platform.","colors":{"primary":"#3077C9","light":"#97BBE4","dark":"#012754"},"logo":{"light":"https://mintcdn.com/snappy-32aaf7de/mts3uwPRgvWZUmQ7/images/SNA_Primary_Navy.svg?fit=max\u0026auto=format\u0026n=mts3uwPRgvWZUmQ7\u0026q=85\u0026s=b8a23414e2c9f00b6607cca6445784e8","dark":"https://mintcdn.com/snappy-32aaf7de/mts3uwPRgvWZUmQ7/images/CopyofSNA_Primary_White1.svg?fit=max\u0026auto=format\u0026n=mts3uwPRgvWZUmQ7\u0026q=85\u0026s=556a73e4dc4ad48b8cb6cc6ada9639eb"},"favicon":{"light":"https://mintcdn.com/snappy-32aaf7de/-gcFSFXA9UKYE60q/images/favicon.svg?fit=max\u0026auto=format\u0026n=-gcFSFXA9UKYE60q\u0026q=85\u0026s=b74778bfb17f68133baf41d1fd96bb36","dark":"https://mintcdn.com/snappy-32aaf7de/-gcFSFXA9UKYE60q/images/favicon.svg?fit=max\u0026auto=format\u0026n=-gcFSFXA9UKYE60q\u0026q=85\u0026s=b74778bfb17f68133baf41d1fd96bb36"},"api":{"openapi":["modules/src/generated-openapi.public.yml","modules/src/generated-openapi-v3.public.yml"]},"navbar":{"links":[],"primary":{"type":"button","label":"Reach out","href":"https://www.snappy.com/book-meeting"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/snappy-app","instagram":"https://www.instagram.com/snappygifts","facebook":"https://www.facebook.com/snappygifts","website":"https://www.snappy.com/"}},"seo":{"indexing":"navigable"},"fonts":{"heading":{"family":"Inter"},"body":{"family":"Open Sans"}},"styling":{"eyebrows":"section","latex":false},"errors":{"404":{"redirect":true,"description":"The page you're looking for doesn't exist. Try the [Quickstart](/pages/quickstart), browse the API Reference, or use the search bar above."}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"metadata":{"timestamp":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"snappy-32aaf7de","hasAudioNarration":false,"actualSubdomain":"snappy-32aaf7de","customDomains":["docs.snappy.com"],"gitSource":{"type":"github","owner":"snappygifts","repo":"public-api-service","deployBranch":"master","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae9e79005f836676fde6c98","collectionId":"8580b53a-b49a-4990-837a-841f39c310e4","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae9e79005f836676fde6c98"},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6ae9e79005f836676fde6c98","clientVersion":"0.0.4067","searchFilterCounts":[{"language":"default","tag":"API Reference","count":92},{"language":"default","tag":"V3 (Latest)","count":47},{"language":"default","tag":"V2","count":45},{"language":"default","tag":"Gifting","count":36},{"language":"default","tag":"Marketplace","count":30},{"language":"default","tag":"Orders","count":15},{"language":"default","tag":"Get started","count":14},{"language":"default","tag":"Guides","count":12},{"language":"default","tag":"Administration","count":11},{"language":"default","tag":"Collections","count":11}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"modules/api/v2/gifts/update-gift-by-id","slug":"/modules/api/v2/gifts/update-gift-by-id","pageMetadata":{"title":"Update gift by ID","openapi":"patch /v2/gifts/{giftId}","description":"Use this endpoint to update the Gift Customization settings of a specific gift that has not yet been claimed. Changes apply only to unclaimed gifts.\n\n###### Required fields:\n- `giftId` - the Gift identifier, passed as a path parameter\n\n###### Optional fields: (in request body, under `customization`)\n- `giftProperties` - budget, expiration, collection / product, guaranteed gift configuration\n- `notificationPolicy` - sending channels, reminder settings\n- `recipientExperience` - type, visual elements, post-claim redirect\n\n**Behavior Notes**\n- Changes apply only to **unclaimed** gifts (status `unopened`, `unwrapped`, or `opened`). Updating a claimed gift returns `409` (`409_PBLC_001`).\n- Returns `404` if the Gift doesn't exist or isn't accessible to the calling key.\n\n#### Permissions\n- Requires: `gifts:update`","href":"/modules/api/v2/gifts/update-gift-by-id"},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n h4: \"h4\",\n h6: \"h6\",\n li: \"li\",\n p: \"p\",\n strong: \"strong\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Use this endpoint to update the Gift Customization settings of a specific gift that has not yet been claimed. Changes apply only to unclaimed gifts.\"\n }), \"\\n\", _jsx(_components.h6, {\n children: \"Required fields:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"giftId\"\n }), \" - the Gift identifier, passed as a path parameter\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.h6, {\n children: [\"Optional fields: (in request body, under \", _jsx(_components.code, {\n children: \"customization\"\n }), \")\"]\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"giftProperties\"\n }), \" - budget, expiration, collection / product, guaranteed gift configuration\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"notificationPolicy\"\n }), \" - sending channels, reminder settings\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"recipientExperience\"\n }), \" - type, visual elements, post-claim redirect\"]\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: \"Behavior Notes\"\n })\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"Changes apply only to \", _jsx(_components.strong, {\n children: \"unclaimed\"\n }), \" gifts (status \", _jsx(_components.code, {\n children: \"unopened\"\n }), \", \", _jsx(_components.code, {\n children: \"unwrapped\"\n }), \", or \", _jsx(_components.code, {\n children: \"opened\"\n }), \"). Updating a claimed gift returns \", _jsx(_components.code, {\n children: \"409\"\n }), \" (\", _jsx(_components.code, {\n children: \"409_PBLC_001\"\n }), \").\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Returns \", _jsx(_components.code, {\n children: \"404\"\n }), \" if the Gift doesn’t exist or isn’t accessible to the calling key.\"]\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.h4, {\n children: \"Permissions\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"Requires: \", _jsx(_components.code, {\n children: \"gifts:update\"\n })]\n }), \"\\n\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Update gift by ID","openapi":"patch /v2/gifts/{giftId}","description":"Use this endpoint to update the Gift Customization settings of a specific gift that has not yet been claimed. Changes apply only to unclaimed gifts.\n\n###### Required fields:\n- `giftId` - the Gift identifier, passed as a path parameter\n\n###### Optional fields: (in request body, under `customization`)\n- `giftProperties` - budget, expiration, collection / product, guaranteed gift configuration\n- `notificationPolicy` - sending channels, reminder settings\n- `recipientExperience` - type, visual elements, post-claim redirect\n\n**Behavior Notes**\n- Changes apply only to **unclaimed** gifts (status `unopened`, `unwrapped`, or `opened`). Updating a claimed gift returns `409` (`409_PBLC_001`).\n- Returns `404` if the Gift doesn't exist or isn't accessible to the calling key.\n\n#### Permissions\n- Requires: `gifts:update`","href":"/modules/api/v2/gifts/update-gift-by-id"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"patchGift","tags":["Gifts"],"summary":"Update gift by ID","description":"Use this endpoint to update the Gift Customization settings of a specific gift that has not yet been claimed. Changes apply only to unclaimed gifts.\n\n###### Required fields:\n- `giftId` - the Gift identifier, passed as a path parameter\n\n###### Optional fields: (in request body, under `customization`)\n- `giftProperties` - budget, expiration, collection / product, guaranteed gift configuration\n- `notificationPolicy` - sending channels, reminder settings\n- `recipientExperience` - type, visual elements, post-claim redirect\n\n**Behavior Notes**\n- Changes apply only to **unclaimed** gifts (status `unopened`, `unwrapped`, or `opened`). Updating a claimed gift returns `409` (`409_PBLC_001`).\n- Returns `404` if the Gift doesn't exist or isn't accessible to the calling key.\n\n#### Permissions\n- Requires: `gifts:update`","security":["e1dd53ca-9d98-43c3-96d3-b9a4d52f7f3a","8bd48369-49af-49df-a5b1-13856560d2b4"],"parameters":["e39d7ff3-602b-4fcc-b93b-1ba099eabae2"],"requestBody":"9235dfc2-552a-4cd4-a58a-7abf2a48eca0","responses":{"200":"ab63302d-878c-4bee-bb74-27291d7fa870","400":"49f126ac-83e7-4f3e-a5a7-62108e12e59e","401":"c189a08f-3970-4047-9381-dfeba3519f54","403":"b6ed52c2-dd1f-4a7d-9456-9a16eaeedb22","404":"5e448dc2-02fa-4a9f-827c-c2f21c0586e0","409":"6fda16e0-666f-442c-a220-8a03dfdbe154"},"method":"patch","type":"path","servers":["1f7ead17-6160-4972-87e6-98b65f7453c1","2cb6fbb2-b4f6-4068-8394-aa2eea9f61d7"],"path":"/v2/gifts/{giftId}","baseUrlOptions":["https://api.snappy.com/public-api","https://mtls-api.snappy.com/public-api"],"title":"Update gift by ID","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"e39d7ff3-602b-4fcc-b93b-1ba099eabae2":{"schema":{"type":"string","pattern":"^[A-Za-z0-9]{8,}$","description":"Gift ID","example":"abc123de","isRequired":true,"uniqueKey":"","typeLabel":"string"},"required":true,"description":"Gift ID","name":"giftId","in":"path"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"customization":{"type":"object","properties":{"giftProperties":{"type":"object","properties":{"budget":{"type":"object","properties":{"max":{"type":"number","minimum":1,"maximum":20000,"description":"Maximum budget allowed for gifts (between 1-20,000)","example":100,"isRequired":true,"uniqueKey":"customization.giftProperties.budget.max","typeLabel":"number"},"min":{"type":"number","minimum":1,"maximum":10000,"description":"Minimum budget allowed for gifts (between 1-10,000)","example":76,"uniqueKey":"customization.giftProperties.budget.min","typeLabel":"number"}},"required":["max"],"additionalProperties":false,"description":"Budget constraints for gifts","example":{"max":100,"min":76},"uniqueKey":"customization.giftProperties.budget","typeLabel":"object"},"selectedGiftType":{"type":"string","enum":["collection","product"],"uniqueKey":"customization.giftProperties.selectedGiftType","typeLabel":"enum\u003cstring>"},"collection":{"type":"object","properties":{"id":{"type":"string","description":"The id of the collection.","example":"12345678","isRequired":true,"uniqueKey":"customization.giftProperties.collection.id","typeLabel":"string"},"featuredProductId":{"type":"string","description":"The id of the featured product.","example":"12345678","uniqueKey":"customization.giftProperties.collection.featuredProductId","typeLabel":"string"}},"required":["id"],"additionalProperties":false,"description":"Collection configuration for campaign gifts.\nRequired when selectedGiftType is collection, otherwise not allowed.","example":{"id":"12345678","featuredProductId":"12345678"},"uniqueKey":"customization.giftProperties.collection","typeLabel":"object"},"product":{"type":"object","properties":{"id":{"type":"string","description":"The id of the product.","example":"12345678","isRequired":true,"uniqueKey":"customization.giftProperties.product.id","typeLabel":"string"},"displayType":{"type":"string","enum":["displayAsSurprise","displayProduct"],"default":"displayProduct","example":"displayAsSurprise","uniqueKey":"customization.giftProperties.product.displayType","typeLabel":"enum\u003cstring>"}},"required":["id"],"additionalProperties":false,"description":"Product configuration for campaign gifts.\nRequired when selectedGiftType is product, otherwise not allowed.","example":{"id":"12345678","displayType":"displayAsSurprise"},"uniqueKey":"customization.giftProperties.product","typeLabel":"object"},"expiration":{"type":"object","properties":{"type":{"type":"string","enum":["specificDate","daysFromSend"],"description":"The type of expiration","uniqueKey":"customization.giftProperties.expiration.type","typeLabel":"enum\u003cstring>"},"date":{"type":"string","format":"date-time","description":"Date of expiration","uniqueKey":"customization.giftProperties.expiration.date","typeLabel":"string\u003cdate-time>"},"numberOfDays":{"type":"number","minimum":1,"maximum":365,"description":"Number of days from the gift send date","uniqueKey":"customization.giftProperties.expiration.numberOfDays","typeLabel":"number"}},"additionalProperties":false,"example":{"type":"specificDate","date":"2022-12-06T09:50:38.536Z"},"uniqueKey":"customization.giftProperties.expiration","typeLabel":"object"},"guaranteedGift":{"type":"object","properties":{"type":{"type":"string","enum":["specificDate","daysFromSend"],"description":"The type of expiration","uniqueKey":"customization.giftProperties.guaranteedGift.type","typeLabel":"enum\u003cstring>"},"date":{"type":"string","format":"date-time","description":"Date of expiration","uniqueKey":"customization.giftProperties.guaranteedGift.date","typeLabel":"string\u003cdate-time>"},"numberOfDays":{"type":"number","minimum":1,"maximum":365,"description":"Number of days from the gift send date","uniqueKey":"customization.giftProperties.guaranteedGift.numberOfDays","typeLabel":"number"}},"additionalProperties":false,"example":{"type":"specificDate","date":"2022-12-06T09:50:38.536Z"},"description":"Guaranteed gift configuration to patch","uniqueKey":"customization.giftProperties.guaranteedGift","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"customization.giftProperties","typeLabel":"object"},"notificationPolicy":{"type":"object","properties":{"sendingChannels":{"type":"array","items":{"type":"string","enum":["mail","sms","link","code","slack","teams"],"uniqueKey":"customization.notificationPolicy.sendingChannels.items.[INDEX]","typeLabel":"enum\u003cstring>"},"minItems":1,"description":"List of channels to send notifications through","example":["mail","sms"],"uniqueKey":"customization.notificationPolicy.sendingChannels","typeLabel":"enum\u003cstring>[]"},"disableReminders":{"type":"boolean","description":"Whether reminder notifications are disabled","example":false,"uniqueKey":"customization.notificationPolicy.disableReminders","typeLabel":"boolean"}},"additionalProperties":false,"description":"Notification settings control how recipients are informed about their gift - via email, SMS, link sharing or other channels.\nAlso manages reminder behavior to optimize engagement rates.","example":{"sendingChannels":["mail","sms"],"disableReminders":false},"uniqueKey":"customization.notificationPolicy","typeLabel":"object"},"recipientExperience":{"type":"object","properties":{"type":{"type":"string","enum":["enterAddress"],"description":"The type of recipient experience.\nCurrently, we support 'enterAddress' type.\nIn the future, we plan to support the 'ship to address' feature and will add another type.","example":"enterAddress","uniqueKey":"customization.recipientExperience.type","typeLabel":"enum\u003cstring>"},"visualElements":{"type":"object","properties":{"reveal":{"type":"object","properties":{"type":{"type":"string","enum":["noReveal","snowGlobe","snowMan","pinata","boxTap","growingPlant","mountainClimbMask","elegantBoxMask","newHireMask","casinoMachineMask","anniversaryBottleMask","happyBirthdayMask","newbornEggMask","nostalgiaMask","cozyHolidayMask","thanksgivingMask","customImageScratch","brandScratch","customVideo","specialDeliveryMask","newYearMask","appreciationDayMask","magicalMask","thinkingOfYouMask","winterKnittingMask","starMask","winterTrainMask"],"description":"Type of reveal experience.","example":"snowGlobe","uniqueKey":"customization.recipientExperience.visualElements.reveal.type","typeLabel":"enum\u003cstring>"},"primaryColor":{"type":"string","format":"hex","pattern":"^#[0-9A-Fa-f]{6}$","description":"Primary color of reveal experience.","example":"#000000","uniqueKey":"customization.recipientExperience.visualElements.reveal.primaryColor","typeLabel":"string\u003chex>"},"secondaryColor":{"type":"string","format":"hex","pattern":"^#[0-9A-Fa-f]{6}$","description":"Secondary color of reveal experience.","example":"#000000","uniqueKey":"customization.recipientExperience.visualElements.reveal.secondaryColor","typeLabel":"string\u003chex>"},"mediaItems":{"type":"object","properties":{"background":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["image","video"],"description":"Type of media item.","example":"image","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.reveal.mediaItems.background.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"url":{"type":"string","format":"uri","description":"URL of the media item.","example":"https://example.com/image.jpg","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.reveal.mediaItems.background.items.[INDEX].url","typeLabel":"string\u003curi>"}},"required":["type","url"],"additionalProperties":false,"description":"Media item object.","example":{"type":"image","url":"https://example.com/image.jpg"},"uniqueKey":"customization.recipientExperience.visualElements.reveal.mediaItems.background.items.[INDEX]","typeLabel":"object"},"maxItems":1,"uniqueKey":"customization.recipientExperience.visualElements.reveal.mediaItems.background","typeLabel":"object[]"},"logo":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["image","video"],"description":"Type of media item.","example":"image","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.reveal.mediaItems.logo.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"url":{"type":"string","format":"uri","description":"URL of the media item.","example":"https://example.com/image.jpg","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.reveal.mediaItems.logo.items.[INDEX].url","typeLabel":"string\u003curi>"}},"required":["type","url"],"additionalProperties":false,"description":"Media item object.","example":{"type":"image","url":"https://example.com/image.jpg"},"uniqueKey":"customization.recipientExperience.visualElements.reveal.mediaItems.logo.items.[INDEX]","typeLabel":"object"},"maxItems":1,"uniqueKey":"customization.recipientExperience.visualElements.reveal.mediaItems.logo","typeLabel":"object[]"}},"additionalProperties":false,"description":"Media items of reveal experience.","example":{"background":[{"type":"image","url":"https://example.com/image.jpg"}],"logo":[{"type":"image","url":"https://example.com/image.jpg"}]},"uniqueKey":"customization.recipientExperience.visualElements.reveal.mediaItems","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"customization.recipientExperience.visualElements.reveal","typeLabel":"object"},"greeting":{"type":"object","properties":{"content":{"type":"object","properties":{"ops":{"type":"array","items":{"oneOf":[{"additionalProperties":true,"type":"object","uniqueKey":"customization.recipientExperience.visualElements.greeting.content.ops.items.[INDEX].oneOf.0","typeLabel":"object"},{"additionalProperties":true,"type":"null","uniqueKey":"customization.recipientExperience.visualElements.greeting.content.ops.items.[INDEX].oneOf.1","typeLabel":"null"}],"uniqueKey":"customization.recipientExperience.visualElements.greeting.content.ops.items.[INDEX]","typeLabel":"object | null"},"isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.greeting.content.ops","typeLabel":"(object | null)[]"}},"required":["ops"],"additionalProperties":{"oneOf":[{},{"type":"null","uniqueKey":"customization.recipientExperience.visualElements.greeting.content.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"customization.recipientExperience.visualElements.greeting.content.additionalProperties","typeLabel":"null"},"description":"Quill formatted JSON with ops array and any additional properties.","example":{"ops":[{"attributes":{"font":"pacifico"},"insert":"Happy Birthday!"}],"customProperty":"customValue"},"uniqueKey":"customization.recipientExperience.visualElements.greeting.content","typeLabel":"object"},"banner":{"type":"object","properties":{"text":{"type":"string","uniqueKey":"customization.recipientExperience.visualElements.greeting.banner.text","typeLabel":"string"},"color":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$","uniqueKey":"customization.recipientExperience.visualElements.greeting.banner.color","typeLabel":"string"},"mediaItems":{"type":"object","properties":{"background":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["image","video"],"description":"Type of media item.","example":"image","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.greeting.banner.mediaItems.background.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"url":{"type":"string","format":"uri","description":"URL of the media item.","example":"https://example.com/image.jpg","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.greeting.banner.mediaItems.background.items.[INDEX].url","typeLabel":"string\u003curi>"}},"required":["type","url"],"additionalProperties":false,"description":"Media item object.","example":{"type":"image","url":"https://example.com/image.jpg"},"uniqueKey":"customization.recipientExperience.visualElements.greeting.banner.mediaItems.background.items.[INDEX]","typeLabel":"object"},"minItems":0,"maxItems":1,"isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.greeting.banner.mediaItems.background","typeLabel":"object[]"},"logo":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["image","video"],"description":"Type of media item.","example":"image","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.greeting.banner.mediaItems.logo.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"url":{"type":"string","format":"uri","description":"URL of the media item.","example":"https://example.com/image.jpg","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.greeting.banner.mediaItems.logo.items.[INDEX].url","typeLabel":"string\u003curi>"}},"required":["type","url"],"additionalProperties":false,"description":"Media item object.","example":{"type":"image","url":"https://example.com/image.jpg"},"uniqueKey":"customization.recipientExperience.visualElements.greeting.banner.mediaItems.logo.items.[INDEX]","typeLabel":"object"},"maxItems":1,"uniqueKey":"customization.recipientExperience.visualElements.greeting.banner.mediaItems.logo","typeLabel":"object[]"}},"required":["background"],"additionalProperties":false,"description":"Media items of banner.","example":{"background":[{"type":"image","url":"https://example.com/image.jpg"}],"logo":[{"type":"image","url":"https://example.com/image.jpg"}]},"uniqueKey":"customization.recipientExperience.visualElements.greeting.banner.mediaItems","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"customization.recipientExperience.visualElements.greeting.banner","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"customization.recipientExperience.visualElements.greeting","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"customization.recipientExperience.visualElements","typeLabel":"object"},"postClaim":{"type":"object","properties":{"redirectAfterClaim":{"type":"string","format":"uri","description":"URL to direct to after the recipient claims the gift.","example":"https://example.com/redirect","isRequired":true,"uniqueKey":"customization.recipientExperience.postClaim.redirectAfterClaim","typeLabel":"string\u003curi>"}},"required":["redirectAfterClaim"],"additionalProperties":false,"description":"An object defining the customizations in the postClaim step.","example":{"redirectAfterClaim":"https://example.com/redirect"},"uniqueKey":"customization.recipientExperience.postClaim","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"customization.recipientExperience","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"customization","typeLabel":"object"}},"additionalProperties":false,"description":"Gift configuration to patch","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"customization":{"giftProperties":{"budget":{"max":100,"min":76},"collection":{"id":"12345678","featuredProductId":"12345678"},"product":{"id":"12345678","displayType":"displayAsSurprise"},"expiration":{"type":"specificDate","date":"2022-12-06T09:50:38.536Z"},"guaranteedGift":{"type":"specificDate","date":"2022-12-06T09:50:38.536Z"}},"notificationPolicy":{"sendingChannels":["mail","sms"],"disableReminders":false},"recipientExperience":{"type":"enterAddress","visualElements":{"reveal":{"type":"snowGlobe","primaryColor":"#000000","secondaryColor":"#000000","mediaItems":{"background":[{"type":"image","url":"https://example.com/image.jpg"}],"logo":[{"type":"image","url":"https://example.com/image.jpg"}]}},"greeting":{"content":{"ops":[{"attributes":{"font":"pacifico"},"insert":"Happy Birthday!"}],"customProperty":"customValue"},"banner":{"text":"\u003cstring>","color":"\u003cstring>","mediaItems":{"background":[{"type":"image","url":"https://example.com/image.jpg"}],"logo":[{"type":"image","url":"https://example.com/image.jpg"}]}}}},"postClaim":{"redirectAfterClaim":"https://example.com/redirect"}}}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"ab63302d-878c-4bee-bb74-27291d7fa870":{"description":"Ok","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"The gift identifier","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"companyId":{"type":"string","description":"The company id","example":"12345678","uniqueKey":"companyId","typeLabel":"string"},"campaignId":{"type":"string","description":"The campaign identifier","uniqueKey":"campaignId","typeLabel":"string"},"status":{"type":"string","description":"The status of the gift.","uniqueKey":"status","typeLabel":"string"},"budgetPlan":{"type":"number","deprecated":true,"description":"The budget plan of the gift.\nThis field is deprecated, use \"customization.giftProperties.budget\" instead.","uniqueKey":"budgetPlan","typeLabel":"number"},"tyn":{"type":"string","description":"A Thank You Note sent by the end client.","uniqueKey":"tyn","typeLabel":"string"},"estimatedCost":{"type":"object","properties":{"budget":{"type":"number","description":"The gift budget as defined in the campaign.","example":100,"isRequired":true,"uniqueKey":"estimatedCost.budget","typeLabel":"number"},"estimatedFee":{"type":"number","description":"The estimated fee cost according to the gift budget.","example":2,"isRequired":true,"uniqueKey":"estimatedCost.estimatedFee","typeLabel":"number"},"estimatedTax":{"type":"number","description":"The estimated tax cost according to the gift budget.","example":7,"isRequired":true,"uniqueKey":"estimatedCost.estimatedTax","typeLabel":"number"},"estimatedTotalCost":{"type":"number","description":"The estimated cost of the gift including tax and fee.","example":109,"isRequired":true,"uniqueKey":"estimatedCost.estimatedTotalCost","typeLabel":"number"}},"required":["budget","estimatedFee","estimatedTax","estimatedTotalCost"],"description":"The estimated cost of the gift including estimated tax and fee.","example":{"budget":100,"estimatedFee":2,"estimatedTax":7,"estimatedTotalCost":109},"uniqueKey":"estimatedCost","typeLabel":"object"},"expirationDate":{"type":"string","deprecated":true,"description":"When the gift will be expired.\nDate Format: YYYY-MM-DDThh:mm:ss.sZ.\nThis field is deprecated, use \"customization.giftProperties.expiration\" instead.","example":"2022-12-06T09:50:38.536Z","uniqueKey":"expirationDate","typeLabel":"string"},"createdAt":{"type":"string","description":"When the gift was originally created.\nDate Format: YYYY-MM-DDThh:mm:ss.sZ. e.g. 2022-12-06T09:50:38.536Z","uniqueKey":"createdAt","typeLabel":"string"},"link":{"type":"string","description":"The link used to redeem the gift.","uniqueKey":"link","typeLabel":"string"},"success":{"type":"boolean","description":"The success of the gift creation","uniqueKey":"success","typeLabel":"boolean"},"deliveryDetails":{"type":"object","properties":{"carrier":{"type":"string","description":"The specific carrier for the claimed gift.","isRequired":true,"uniqueKey":"deliveryDetails.carrier","typeLabel":"string"},"trackingNumber":{"type":"string","description":"The tracking number identifier.","isRequired":true,"uniqueKey":"deliveryDetails.trackingNumber","typeLabel":"string"},"status":{"type":"string","enum":["orderReceived","processing","inTransit","outForDelivery","delivered"],"description":"The shipping status.","isRequired":true,"uniqueKey":"deliveryDetails.status","typeLabel":"enum\u003cstring>"},"trackingLink":{"type":"string","description":"A link to track the gift for the specific carrier.","isRequired":true,"uniqueKey":"deliveryDetails.trackingLink","typeLabel":"string"},"deliveredAt":{"type":"string","description":"The date the gift was actually delivered by the carrier.\nDate Format: YYYY-MM-DDThh:mm:ss.sZ.\nRelevant only when the status is delivered.","example":"2022-12-06T09:50:38.536Z","uniqueKey":"deliveryDetails.deliveredAt","typeLabel":"string"},"outForDelivery":{"type":"string","description":"The date the gift was sent out for delivery by the carrier.\nDate Format: YYYY-MM-DDThh:mm:ss.sZ.\nRelevant only when the status is outForDelivery.","example":"2022-12-06T09:50:38.536Z","uniqueKey":"deliveryDetails.outForDelivery","typeLabel":"string"},"outForDeliveryDate":{"type":"string","description":"The date the gift was sent for delivery by the carrier.\nDate Format: YYYY-MM-DDThh:mm:ss.sZ.\nRelevant only when the status is outForDelivery.","example":"2022-12-06T09:50:38.536Z","uniqueKey":"deliveryDetails.outForDeliveryDate","typeLabel":"string"}},"required":["carrier","trackingNumber","status","trackingLink"],"additionalProperties":false,"description":"The Delivery Details object.","deprecated":true,"uniqueKey":"deliveryDetails","typeLabel":"object"},"finalCost":{"type":"object","properties":{"cost":{"type":"number","description":"The actual cost of the specific gift that was chosen by the gift receiver.","example":100,"isRequired":true,"uniqueKey":"finalCost.cost","typeLabel":"number"},"finalFee":{"type":"number","description":"The final fee cost.","example":2,"isRequired":true,"uniqueKey":"finalCost.finalFee","typeLabel":"number"},"finalTax":{"type":"number","description":"The final tax cost according to the address provided by the gift receiver.","example":7,"isRequired":true,"uniqueKey":"finalCost.finalTax","typeLabel":"number"},"totalFinalCost":{"type":"number","description":"The final cost of the gift including tax and fee.","example":109,"isRequired":true,"uniqueKey":"finalCost.totalFinalCost","typeLabel":"number"}},"required":["cost","finalFee","finalTax","totalFinalCost"],"description":"The final cost of the gift including tax and fee.","example":{"cost":100,"finalFee":2,"finalTax":7,"totalFinalCost":109},"uniqueKey":"finalCost","typeLabel":"object"},"recipient":{"type":"object","properties":{"firstname":{"type":"string","pattern":"^(?=.{1,50}$)[a-zA-Z0-9_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u01FF\\u0100-\\u017F\\u0180-\\u024F\\u1E00-\\u1EFF\\u0400-\\u04FF\\u0500-\\u052F\\u3040-\\u309F\\u30A0-\\u30FF\\u4E00-\\u9FFF\\uAC00-\\uD7AF\\u0E00-\\u0E7F][a-zA-Z0-9_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u01FF\\u0100-\\u017F\\u0180-\\u024F\\u1E00-\\u1EFF\\u0400-\\u04FF\\u0500-\\u052F\\u3040-\\u309F\\u30A0-\\u30FF\\u4E00-\\u9FFF\\uAC00-\\uD7AF\\u0E00-\\u0E7F\\u0300-\\u036F\\u1AB0-\\u1AFF\\u1DC0-\\u1DFF\\u20D0-\\u20FF\\uFE20-\\uFE2F]*([\\s\\(\\)\\.\\-_'\\u2018\\u2019]*[a-zA-Z0-9_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u01FF\\u0100-\\u017F\\u0180-\\u024F\\u1E00-\\u1EFF\\u0400-\\u04FF\\u0500-\\u052F\\u3040-\\u309F\\u30A0-\\u30FF\\u4E00-\\u9FFF\\uAC00-\\uD7AF\\u0E00-\\u0E7F][a-zA-Z0-9_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u01FF\\u0100-\\u017F\\u0180-\\u024F\\u1E00-\\u1EFF\\u0400-\\u04FF\\u0500-\\u052F\\u3040-\\u309F\\u30A0-\\u30FF\\u4E00-\\u9FFF\\uAC00-\\uD7AF\\u0E00-\\u0E7F\\u0300-\\u036F\\u1AB0-\\u1AFF\\u1DC0-\\u1DFF\\u20D0-\\u20FF\\uFE20-\\uFE2F]*)*[ \\(\\)\\.\\-_'\\u2018\\u2019]*$","description":"The first name of the recipient.","example":"John","isRequired":true,"uniqueKey":"recipient.firstname","typeLabel":"string"},"lastname":{"type":"string","pattern":"^(?=.{1,50}$)[a-zA-Z0-9_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u01FF\\u0100-\\u017F\\u0180-\\u024F\\u1E00-\\u1EFF\\u0400-\\u04FF\\u0500-\\u052F\\u3040-\\u309F\\u30A0-\\u30FF\\u4E00-\\u9FFF\\uAC00-\\uD7AF\\u0E00-\\u0E7F][a-zA-Z0-9_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u01FF\\u0100-\\u017F\\u0180-\\u024F\\u1E00-\\u1EFF\\u0400-\\u04FF\\u0500-\\u052F\\u3040-\\u309F\\u30A0-\\u30FF\\u4E00-\\u9FFF\\uAC00-\\uD7AF\\u0E00-\\u0E7F\\u0300-\\u036F\\u1AB0-\\u1AFF\\u1DC0-\\u1DFF\\u20D0-\\u20FF\\uFE20-\\uFE2F]*([\\s\\(\\)\\.\\-_'\\u2018\\u2019]*[a-zA-Z0-9_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u01FF\\u0100-\\u017F\\u0180-\\u024F\\u1E00-\\u1EFF\\u0400-\\u04FF\\u0500-\\u052F\\u3040-\\u309F\\u30A0-\\u30FF\\u4E00-\\u9FFF\\uAC00-\\uD7AF\\u0E00-\\u0E7F][a-zA-Z0-9_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u01FF\\u0100-\\u017F\\u0180-\\u024F\\u1E00-\\u1EFF\\u0400-\\u04FF\\u0500-\\u052F\\u3040-\\u309F\\u30A0-\\u30FF\\u4E00-\\u9FFF\\uAC00-\\uD7AF\\u0E00-\\u0E7F\\u0300-\\u036F\\u1AB0-\\u1AFF\\u1DC0-\\u1DFF\\u20D0-\\u20FF\\uFE20-\\uFE2F]*)*[ \\(\\)\\.\\-_'\\u2018\\u2019]*$","description":"The last name of the recipient.","example":"Doe","uniqueKey":"recipient.lastname","typeLabel":"string"},"phone":{"type":"string","description":"The phone number that the gift will be sent to.\n( at the beginning is optional). Format: E.164.","example":"+1234567890","uniqueKey":"recipient.phone","typeLabel":"string"},"email":{"type":"string","pattern":"^(?=.{1,60}$)(?!.*[.]{2})(?!\\.)[a-zA-Z0-9._%+\\-\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u01FF\\u0100-\\u017F\\u0180-\\u024F']+(?\u003c!\\.)@(?!-)[a-zA-Z0-9.-\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u01FF\\u0100-\\u017F\\u0180-\\u024F]+\\.(?!(?:con|cim|ocm|cmo)$)[a-zA-Z]{2,}$/i","description":"The email address that the gift will be sent to.","example":"example@domain.com","uniqueKey":"recipient.email","typeLabel":"string"},"key":{"type":"string","description":"An optional unique identifier for the gift sending, used to avoid duplicated gifts sending to the same recipients when not intending to. For example, if you implement a retry mechanism and want to avoid sending the same gift.","example":"abc123","uniqueKey":"recipient.key","typeLabel":"string"},"externalId":{"type":"string","description":"The id of the recipient in your own system.","example":"1234567890","uniqueKey":"recipient.externalId","typeLabel":"string"}},"required":["firstname"],"additionalProperties":false,"description":"The gift recipient object.","example":{"firstname":"John","lastname":"Doe","externalId":"1234567890","phone":"+1234567890","email":"example@domain.com","key":"abc123"},"uniqueKey":"recipient","typeLabel":"object"},"orders":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The order id","isRequired":true,"uniqueKey":"orders.items.[INDEX].id","typeLabel":"string"},"status":{"type":"string","enum":["active","notActive"],"description":"The order status","isRequired":true,"uniqueKey":"orders.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"orderedProducts":{"type":"array","items":{"type":"object","properties":{"selectedProduct":{"type":"object","properties":{"variantId":{"type":"string","description":"Id of the selected variation","isRequired":true,"uniqueKey":"orders.items.[INDEX].orderedProducts.items.[INDEX].selectedProduct.variantId","typeLabel":"string"},"orderStatus":{"type":"string","enum":["processing","fulfilled","cancelled","returned","partially fulfilled"],"description":"The order status for this specific selected product","isRequired":true,"uniqueKey":"orders.items.[INDEX].orderedProducts.items.[INDEX].selectedProduct.orderStatus","typeLabel":"enum\u003cstring>"},"title":{"type":"string","description":"Name of the selected product","uniqueKey":"orders.items.[INDEX].orderedProducts.items.[INDEX].selectedProduct.title","typeLabel":"string"},"type":{"type":"string","enum":["physicalGift","physicalSwag","digitalGift","digitalActivity"],"description":"The type of the product selected","uniqueKey":"orders.items.[INDEX].orderedProducts.items.[INDEX].selectedProduct.type","typeLabel":"enum\u003cstring>"}},"required":["variantId","orderStatus"],"uniqueKey":"orders.items.[INDEX].orderedProducts.items.[INDEX].selectedProduct","typeLabel":"object"},"deliveryDetails":{"type":"object","properties":{"status":{"type":"string","enum":["orderReceived","processing","inTransit","outForDelivery","delivered"],"description":"The status of the order delivery","uniqueKey":"orders.items.[INDEX].orderedProducts.items.[INDEX].deliveryDetails.status","typeLabel":"enum\u003cstring>"},"carrier":{"type":"string","description":"The delivery carrier","uniqueKey":"orders.items.[INDEX].orderedProducts.items.[INDEX].deliveryDetails.carrier","typeLabel":"string"},"trackingNumber":{"type":"string","description":"The tracking number for the order","uniqueKey":"orders.items.[INDEX].orderedProducts.items.[INDEX].deliveryDetails.trackingNumber","typeLabel":"string"},"trackingLink":{"type":"string","description":"The tracking link for the order","uniqueKey":"orders.items.[INDEX].orderedProducts.items.[INDEX].deliveryDetails.trackingLink","typeLabel":"string"},"deliveryDates":{"type":"object","properties":{"outForDelivery":{"type":"string","format":"date-time","uniqueKey":"orders.items.[INDEX].orderedProducts.items.[INDEX].deliveryDetails.deliveryDates.outForDelivery","typeLabel":"string\u003cdate-time>"},"estimated":{"type":"string","format":"date-time","uniqueKey":"orders.items.[INDEX].orderedProducts.items.[INDEX].deliveryDetails.deliveryDates.estimated","typeLabel":"string\u003cdate-time>"},"deliveredAt":{"type":"string","format":"date-time","uniqueKey":"orders.items.[INDEX].orderedProducts.items.[INDEX].deliveryDetails.deliveryDates.deliveredAt","typeLabel":"string\u003cdate-time>"}},"description":"Delivery dates for the order","uniqueKey":"orders.items.[INDEX].orderedProducts.items.[INDEX].deliveryDetails.deliveryDates","typeLabel":"object"}},"uniqueKey":"orders.items.[INDEX].orderedProducts.items.[INDEX].deliveryDetails","typeLabel":"object"}},"uniqueKey":"orders.items.[INDEX].orderedProducts.items.[INDEX]","typeLabel":"object"},"description":"The products included in this order","uniqueKey":"orders.items.[INDEX].orderedProducts","typeLabel":"object[]"},"orderRecipient":{"type":"object","properties":{"firstName":{"type":"string","isRequired":true,"uniqueKey":"orders.items.[INDEX].orderRecipient.firstName","typeLabel":"string"},"country":{"type":"string","isRequired":true,"uniqueKey":"orders.items.[INDEX].orderRecipient.country","typeLabel":"string"},"lastName":{"type":"string","uniqueKey":"orders.items.[INDEX].orderRecipient.lastName","typeLabel":"string"}},"required":["firstName","country"],"additionalProperties":false,"example":{"firstName":"John","lastName":"Doe","country":"US"},"uniqueKey":"orders.items.[INDEX].orderRecipient","typeLabel":"object"}},"required":["id","status"],"uniqueKey":"orders.items.[INDEX]","typeLabel":"object"},"uniqueKey":"orders","typeLabel":"object[]"},"customization":{"type":"object","properties":{"giftProperties":{"type":"object","properties":{"budget":{"type":"object","properties":{"max":{"type":"number","minimum":1,"maximum":20000,"description":"Maximum budget allowed for gifts (between 1-20,000)","example":100,"isRequired":true,"uniqueKey":"customization.giftProperties.budget.max","typeLabel":"number"},"min":{"type":"number","minimum":1,"maximum":10000,"description":"Minimum budget allowed for gifts (between 1-10,000)","example":76,"uniqueKey":"customization.giftProperties.budget.min","typeLabel":"number"}},"required":["max"],"additionalProperties":false,"description":"Budget constraints for gifts","example":{"max":100,"min":76},"uniqueKey":"customization.giftProperties.budget","typeLabel":"object"},"expiration":{"type":"object","properties":{"type":{"type":"string","enum":["unlimited","specificDate","daysFromSend"],"default":"unlimited","description":"Type of expiration","example":"daysFromSend","uniqueKey":"customization.giftProperties.expiration.type","typeLabel":"enum\u003cstring>"},"date":{"type":"string","format":"date-time","description":"Required when type is specificDate, otherwise not allowed","uniqueKey":"customization.giftProperties.expiration.date","typeLabel":"string\u003cdate-time>"},"numberOfDays":{"type":"number","minimum":1,"maximum":365,"description":"Required when type is daysFromSend, otherwise not allowed","uniqueKey":"customization.giftProperties.expiration.numberOfDays","typeLabel":"number"}},"additionalProperties":false,"description":"Flexible expiration options let you set a specific end date, number of days from sending, or unlimited usage period.\nThis helps manage campaign relevance and encourages timely recipient action while maintaining control over your gifting program timeline.","example":{"type":"daysFromSend","numberOfDays":30},"uniqueKey":"customization.giftProperties.expiration","typeLabel":"object"},"guaranteedGift":{"type":"object","properties":{"type":{"type":"string","enum":["specificDate","daysFromSend"],"description":"Type of guaranteed gift expiration","example":"daysFromSend","isRequired":true,"uniqueKey":"customization.giftProperties.guaranteedGift.type","typeLabel":"enum\u003cstring>"},"date":{"type":"string","format":"date-time","description":"Required when type is specificDate, otherwise not allowed","uniqueKey":"customization.giftProperties.guaranteedGift.date","typeLabel":"string\u003cdate-time>"},"numberOfDays":{"type":"number","minimum":1,"maximum":365,"description":"Required when type is daysFromSend, otherwise not allowed","uniqueKey":"customization.giftProperties.guaranteedGift.numberOfDays","typeLabel":"number"}},"required":["type"],"additionalProperties":false,"description":"Flexible guaranteed gift options mirror campaign expiration settings and allow specific date or days from send configuration.","example":{"type":"daysFromSend","numberOfDays":30},"uniqueKey":"customization.giftProperties.guaranteedGift","typeLabel":"object"},"selectedGiftType":{"type":"string","enum":["collection","product"],"uniqueKey":"customization.giftProperties.selectedGiftType","typeLabel":"enum\u003cstring>"},"collection":{"type":"object","description":"Collection configuration for campaign gifts.\nRequired when selectedGiftType is collection, otherwise not allowed.","required":["id"],"example":{"id":"12345678","featuredProductId":"12345678"},"properties":{"id":{"type":"string","description":"The id of the collection.","example":"12345678","isRequired":true,"uniqueKey":"customization.giftProperties.collection.id","typeLabel":"string"},"featuredProductId":{"type":"string","description":"The id of the featured product.","example":"12345678","uniqueKey":"customization.giftProperties.collection.featuredProductId","typeLabel":"string"},"name":{"type":"string","uniqueKey":"customization.giftProperties.collection.name","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"customization.giftProperties.collection","typeLabel":"object"},"product":{"type":"object","description":"Product configuration for campaign gifts.\nRequired when selectedGiftType is product, otherwise not allowed.","required":["id"],"example":{"id":"12345678","displayType":"displayAsSurprise"},"properties":{"id":{"type":"string","description":"The id of the product.","example":"12345678","isRequired":true,"uniqueKey":"customization.giftProperties.product.id","typeLabel":"string"},"displayType":{"type":"string","enum":["displayAsSurprise","displayProduct"],"default":"displayProduct","example":"displayAsSurprise","uniqueKey":"customization.giftProperties.product.displayType","typeLabel":"enum\u003cstring>"},"name":{"type":"string","uniqueKey":"customization.giftProperties.product.name","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"customization.giftProperties.product","typeLabel":"object"}},"additionalProperties":false,"description":"Gift properties determine the core characteristics of your gift - budget constraints, expiration settings, and content type (collection or specific product).\nThese settings influence what options will be available to your recipient.","example":{"budget":{"max":100,"min":76}},"uniqueKey":"customization.giftProperties","typeLabel":"object"},"recipientNotifications":{"type":"object","properties":{"sendingChannels":{"type":"array","items":{"type":"string","enum":["mail","sms","link","code","slack","teams"],"uniqueKey":"customization.recipientNotifications.sendingChannels.items.[INDEX]","typeLabel":"enum\u003cstring>"},"minItems":1,"description":"List of channels to send notifications through","example":["mail","sms"],"uniqueKey":"customization.recipientNotifications.sendingChannels","typeLabel":"enum\u003cstring>[]"},"disableReminders":{"type":"boolean","description":"Whether reminder notifications are disabled","example":false,"uniqueKey":"customization.recipientNotifications.disableReminders","typeLabel":"boolean"}},"additionalProperties":false,"description":"Notification settings control how recipients are informed about their gift - via email, SMS, link sharing or other channels.\nAlso manages reminder behavior to optimize engagement rates.","example":{"sendingChannels":["mail","sms"],"disableReminders":false},"uniqueKey":"customization.recipientNotifications","typeLabel":"object"},"recipientExperience":{"type":"object","properties":{"type":{"type":"string","enum":["enterAddress"],"description":"The type of recipient experience.\nCurrently, we support 'enterAddress' type.\nIn the future, we plan to support the 'ship to address' feature and will add another type.","example":"enterAddress","uniqueKey":"customization.recipientExperience.type","typeLabel":"enum\u003cstring>"},"visualElements":{"type":"object","properties":{"reveal":{"type":"object","properties":{"type":{"type":"string","enum":["noReveal","snowGlobe","snowMan","pinata","boxTap","growingPlant","mountainClimbMask","elegantBoxMask","newHireMask","casinoMachineMask","anniversaryBottleMask","happyBirthdayMask","newbornEggMask","nostalgiaMask","cozyHolidayMask","thanksgivingMask","customImageScratch","brandScratch","customVideo","specialDeliveryMask","newYearMask","appreciationDayMask","magicalMask","thinkingOfYouMask","winterKnittingMask","starMask","winterTrainMask"],"description":"Type of reveal experience.","example":"snowGlobe","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.reveal.type","typeLabel":"enum\u003cstring>"},"primaryColor":{"type":"string","format":"hex","pattern":"^#[0-9A-Fa-f]{6}$","description":"Primary color of reveal experience.","example":"#000000","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.reveal.primaryColor","typeLabel":"string\u003chex>"},"secondaryColor":{"type":"string","format":"hex","pattern":"^#[0-9A-Fa-f]{6}$","description":"Secondary color of reveal experience.","example":"#000000","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.reveal.secondaryColor","typeLabel":"string\u003chex>"},"mediaItems":{"type":"object","properties":{"background":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["image","video"],"description":"Type of media item.","example":"image","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.reveal.mediaItems.background.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"url":{"type":"string","format":"uri","description":"URL of the media item.","example":"https://example.com/image.jpg","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.reveal.mediaItems.background.items.[INDEX].url","typeLabel":"string\u003curi>"}},"required":["type","url"],"additionalProperties":false,"description":"Media item object.","example":{"type":"image","url":"https://example.com/image.jpg"},"uniqueKey":"customization.recipientExperience.visualElements.reveal.mediaItems.background.items.[INDEX]","typeLabel":"object"},"maxItems":1,"uniqueKey":"customization.recipientExperience.visualElements.reveal.mediaItems.background","typeLabel":"object[]"},"logo":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["image","video"],"description":"Type of media item.","example":"image","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.reveal.mediaItems.logo.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"url":{"type":"string","format":"uri","description":"URL of the media item.","example":"https://example.com/image.jpg","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.reveal.mediaItems.logo.items.[INDEX].url","typeLabel":"string\u003curi>"}},"required":["type","url"],"additionalProperties":false,"description":"Media item object.","example":{"type":"image","url":"https://example.com/image.jpg"},"uniqueKey":"customization.recipientExperience.visualElements.reveal.mediaItems.logo.items.[INDEX]","typeLabel":"object"},"maxItems":1,"uniqueKey":"customization.recipientExperience.visualElements.reveal.mediaItems.logo","typeLabel":"object[]"}},"additionalProperties":false,"description":"Media items of reveal experience.","example":{"background":[{"type":"image","url":"https://example.com/image.jpg"}],"logo":[{"type":"image","url":"https://example.com/image.jpg"}]},"uniqueKey":"customization.recipientExperience.visualElements.reveal.mediaItems","typeLabel":"object"}},"required":["type","primaryColor","secondaryColor"],"additionalProperties":false,"description":"The reveal animation creates an emotional moment of surprise.\nChoose the animation type, color scheme, and branded elements to personalize the recipient's first impression and enhance gift anticipation.","example":{"type":"snowGlobe","primaryColor":"#000000","secondaryColor":"#000000","mediaItems":{"background":[{"type":"image","url":"https://example.com/image.jpg"}],"logo":[{"type":"image","url":"https://example.com/image.jpg"}]}},"isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.reveal","typeLabel":"object"},"greeting":{"type":"object","properties":{"content":{"type":"object","properties":{"ops":{"type":"array","items":{"oneOf":[{"additionalProperties":true,"type":"object","uniqueKey":"customization.recipientExperience.visualElements.greeting.content.ops.items.[INDEX].oneOf.0","typeLabel":"object"},{"additionalProperties":true,"type":"null","uniqueKey":"customization.recipientExperience.visualElements.greeting.content.ops.items.[INDEX].oneOf.1","typeLabel":"null"}],"uniqueKey":"customization.recipientExperience.visualElements.greeting.content.ops.items.[INDEX]","typeLabel":"object | null"},"isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.greeting.content.ops","typeLabel":"(object | null)[]"}},"required":["ops"],"additionalProperties":{"oneOf":[{},{"type":"null","uniqueKey":"customization.recipientExperience.visualElements.greeting.content.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"customization.recipientExperience.visualElements.greeting.content.additionalProperties","typeLabel":"null"},"description":"Quill formatted JSON with ops array and any additional properties.","example":{"ops":[{"attributes":{"font":"pacifico"},"insert":"Happy Birthday!"}],"customProperty":"customValue"},"isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.greeting.content","typeLabel":"object"},"banner":{"type":"object","properties":{"text":{"type":"string","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.greeting.banner.text","typeLabel":"string"},"color":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.greeting.banner.color","typeLabel":"string"},"mediaItems":{"type":"object","properties":{"background":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["image","video"],"description":"Type of media item.","example":"image","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.greeting.banner.mediaItems.background.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"url":{"type":"string","format":"uri","description":"URL of the media item.","example":"https://example.com/image.jpg","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.greeting.banner.mediaItems.background.items.[INDEX].url","typeLabel":"string\u003curi>"}},"required":["type","url"],"additionalProperties":false,"description":"Media item object.","example":{"type":"image","url":"https://example.com/image.jpg"},"uniqueKey":"customization.recipientExperience.visualElements.greeting.banner.mediaItems.background.items.[INDEX]","typeLabel":"object"},"minItems":0,"maxItems":1,"isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.greeting.banner.mediaItems.background","typeLabel":"object[]"},"logo":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["image","video"],"description":"Type of media item.","example":"image","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.greeting.banner.mediaItems.logo.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"url":{"type":"string","format":"uri","description":"URL of the media item.","example":"https://example.com/image.jpg","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.greeting.banner.mediaItems.logo.items.[INDEX].url","typeLabel":"string\u003curi>"}},"required":["type","url"],"additionalProperties":false,"description":"Media item object.","example":{"type":"image","url":"https://example.com/image.jpg"},"uniqueKey":"customization.recipientExperience.visualElements.greeting.banner.mediaItems.logo.items.[INDEX]","typeLabel":"object"},"maxItems":1,"uniqueKey":"customization.recipientExperience.visualElements.greeting.banner.mediaItems.logo","typeLabel":"object[]"}},"required":["background"],"additionalProperties":false,"description":"Media items of banner.","example":{"background":[{"type":"image","url":"https://example.com/image.jpg"}],"logo":[{"type":"image","url":"https://example.com/image.jpg"}]},"isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.greeting.banner.mediaItems","typeLabel":"object"}},"required":["text","color","mediaItems"],"additionalProperties":false,"description":"The banner serves as the main visual element of the gift page.\nCustomize background, logo, text, and colors to create a unique branded experience.","example":{"text":"Happy Birthday!","color":"#000000","mediaItems":{"background":[{"type":"image","url":"https://example.com/image.jpg"}],"logo":[{"type":"image","url":"https://example.com/image.jpg"}]}},"isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.greeting.banner","typeLabel":"object"}},"required":["content","banner"],"additionalProperties":false,"description":"A personalized greeting with customizable fonts, colors, and media elements.\nCraft an emotional message that accompanies your gift and conveys your sentiment to the recipient.","example":{"content":{"ops":[{"attributes":{"font":"pacifico"},"insert":"Happy Birthday!"}]},"banner":{"text":"Happy Birthday!","color":"#000000","mediaItems":{"background":[{"type":"image","url":"https://example.com/image.jpg"}],"logo":[{"type":"image","url":"https://example.com/image.jpg"}]}}},"isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.greeting","typeLabel":"object"}},"required":["reveal","greeting"],"additionalProperties":false,"description":"Visual elements of recipient experience.","example":{"reveal":{"type":"snowGlobe","primaryColor":"#000000","secondaryColor":"#000000","mediaItems":{"background":[{"type":"image","url":"https://example.com/image.jpg"}],"logo":[{"type":"image","url":"https://example.com/image.jpg"}]}},"greeting":{"content":{"ops":[{"attributes":{"font":"pacifico"},"insert":"Happy Birthday!"}]},"banner":{"text":"Happy Birthday!","color":"#000000","mediaItems":{"background":[{"type":"image","url":"https://example.com/image.jpg"}],"logo":[{"type":"image","url":"https://example.com/image.jpg"}]}}}},"uniqueKey":"customization.recipientExperience.visualElements","typeLabel":"object"},"postClaim":{"type":"object","properties":{"redirectAfterClaim":{"type":"string","format":"uri","description":"URL to direct to after the recipient claims the gift.","example":"https://example.com/redirect","isRequired":true,"uniqueKey":"customization.recipientExperience.postClaim.redirectAfterClaim","typeLabel":"string\u003curi>"}},"required":["redirectAfterClaim"],"additionalProperties":false,"description":"An object defining the customizations in the postClaim step.","example":{"redirectAfterClaim":"https://example.com/redirect"},"uniqueKey":"customization.recipientExperience.postClaim","typeLabel":"object"}},"additionalProperties":false,"description":"Defines the interactive journey recipients experience when receiving your gift - from the initial unwrapping animation to greeting message presentation and delivery address collection process.","example":{"type":"enterAddress","visualElements":{"reveal":{"type":"snowGlobe","primaryColor":"#000000","secondaryColor":"#000000"},"greeting":{"content":{"ops":[{"insert":"Happy Birthday!"}]},"banner":{"text":"Happy Birthday!","color":"#000000","mediaItems":{"background":[{"type":"image","url":"https://example.com/image.jpg"}]}}},"postClaim":{"redirectAfterClaim":"https://example.com/redirect"}}},"uniqueKey":"customization.recipientExperience","typeLabel":"object"}},"description":"Complete gift customization configuration","uniqueKey":"customization","typeLabel":"object"}},"required":["id"],"description":"The Gift object.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"\u003cstring>","companyId":"12345678","campaignId":"\u003cstring>","status":"\u003cstring>","budgetPlan":123,"tyn":"\u003cstring>","estimatedCost":{"budget":100,"estimatedFee":2,"estimatedTax":7,"estimatedTotalCost":109},"expirationDate":"2022-12-06T09:50:38.536Z","createdAt":"\u003cstring>","link":"\u003cstring>","success":true,"deliveryDetails":{"carrier":"\u003cstring>","trackingNumber":"\u003cstring>","status":"orderReceived","trackingLink":"\u003cstring>","deliveredAt":"2022-12-06T09:50:38.536Z","outForDelivery":"2022-12-06T09:50:38.536Z","outForDeliveryDate":"2022-12-06T09:50:38.536Z"},"finalCost":{"cost":100,"finalFee":2,"finalTax":7,"totalFinalCost":109},"recipient":{"firstname":"John","lastname":"Doe","externalId":"1234567890","phone":"+1234567890","email":"example@domain.com","key":"abc123"},"orders":[{"id":"\u003cstring>","status":"active","orderedProducts":[{"selectedProduct":{"variantId":"\u003cstring>","orderStatus":"processing","title":"\u003cstring>","type":"physicalGift"},"deliveryDetails":{"status":"orderReceived","carrier":"\u003cstring>","trackingNumber":"\u003cstring>","trackingLink":"\u003cstring>","deliveryDates":{"outForDelivery":"2023-11-07T05:31:56Z","estimated":"2023-11-07T05:31:56Z","deliveredAt":"2023-11-07T05:31:56Z"}}}],"orderRecipient":{"firstName":"John","lastName":"Doe","country":"US"}}],"customization":{"giftProperties":{"budget":{"max":100,"min":76}},"recipientNotifications":{"sendingChannels":["mail","sms"],"disableReminders":false},"recipientExperience":{"type":"enterAddress","visualElements":{"reveal":{"type":"snowGlobe","primaryColor":"#000000","secondaryColor":"#000000"},"greeting":{"content":{"ops":[{"insert":"Happy Birthday!"}]},"banner":{"text":"Happy Birthday!","color":"#000000","mediaItems":{"background":[{"type":"image","url":"https://example.com/image.jpg"}]}}},"postClaim":{"redirectAfterClaim":"https://example.com/redirect"}}}}}}},"exampleType":"generated"}},"exampleType":"generated"},"49f126ac-83e7-4f3e-a5a7-62108e12e59e":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"integer","description":"The HTTP status code.","example":400,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"errorCode":{"type":"string","description":"Internal error code, helps Snappy's technical team to troubleshoot if needed.","example":"400_PBLC_001","isRequired":true,"uniqueKey":"errorCode","typeLabel":"string"},"message":{"type":"string","description":"The error message.","example":"Unauthorized","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"The path of the field that caused the error.","example":"body.recipients.0.email","isRequired":true,"uniqueKey":"errors.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","description":"The error message.","example":"Invalid email.","isRequired":true,"uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"errorCode":{"type":"string","description":"Internal error code, helps Snappy's technical team to troubleshoot if needed.","example":"400_PBLC_002","isRequired":true,"uniqueKey":"errors.items.[INDEX].errorCode","typeLabel":"string"}},"required":["path","message","errorCode"],"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"An array of client errors. This field is being returned only for errors the client should fix, usually with status code 400.","uniqueKey":"errors","typeLabel":"object[]"}},"required":["status","errorCode","message"],"description":"API error response with string error codes and optional client error details","example":{"status":400,"errorCode":"400_PBLC_001","message":"Bad Request"},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":400,"errorCode":"400_PBLC_001","message":"Bad Request"}}},"exampleType":"generated"}},"exampleType":"generated"},"c189a08f-3970-4047-9381-dfeba3519f54":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","description":"API error response with string error codes and optional client error details","required":["status","errorCode","message"],"example":{"status":401,"errorCode":"401_PBLC_001","message":"Unauthorized"},"properties":{"status":{"type":"integer","description":"The HTTP status code.","example":400,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"errorCode":{"type":"string","description":"Internal error code, helps Snappy's technical team to troubleshoot if needed.","example":"400_PBLC_001","isRequired":true,"uniqueKey":"errorCode","typeLabel":"string"},"message":{"type":"string","description":"The error message.","example":"Unauthorized","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"The path of the field that caused the error.","example":"body.recipients.0.email","isRequired":true,"uniqueKey":"errors.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","description":"The error message.","example":"Invalid email.","isRequired":true,"uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"errorCode":{"type":"string","description":"Internal error code, helps Snappy's technical team to troubleshoot if needed.","example":"400_PBLC_002","isRequired":true,"uniqueKey":"errors.items.[INDEX].errorCode","typeLabel":"string"}},"required":["path","message","errorCode"],"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"An array of client errors. This field is being returned only for errors the client should fix, usually with status code 400.","uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":401,"errorCode":"401_PBLC_001","message":"Unauthorized"}}},"exampleType":"generated"}},"exampleType":"generated"},"b6ed52c2-dd1f-4a7d-9456-9a16eaeedb22":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","description":"API error response with string error codes and optional client error details","required":["status","errorCode","message"],"example":{"status":403,"errorCode":"403_PBLC_001","message":"This API key doesn't have permission to access this endpoint."},"properties":{"status":{"type":"integer","description":"The HTTP status code.","example":400,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"errorCode":{"type":"string","description":"Internal error code, helps Snappy's technical team to troubleshoot if needed.","example":"400_PBLC_001","isRequired":true,"uniqueKey":"errorCode","typeLabel":"string"},"message":{"type":"string","description":"The error message.","example":"Unauthorized","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"The path of the field that caused the error.","example":"body.recipients.0.email","isRequired":true,"uniqueKey":"errors.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","description":"The error message.","example":"Invalid email.","isRequired":true,"uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"errorCode":{"type":"string","description":"Internal error code, helps Snappy's technical team to troubleshoot if needed.","example":"400_PBLC_002","isRequired":true,"uniqueKey":"errors.items.[INDEX].errorCode","typeLabel":"string"}},"required":["path","message","errorCode"],"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"An array of client errors. This field is being returned only for errors the client should fix, usually with status code 400.","uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":403,"errorCode":"403_PBLC_001","message":"This API key doesn't have permission to access this endpoint."}}},"exampleType":"generated"}},"exampleType":"generated"},"5e448dc2-02fa-4a9f-827c-c2f21c0586e0":{"description":"Gift not found","content":{"application/json":{"schema":{"type":"object","description":"API error response with string error codes and optional client error details","required":["status","errorCode","message"],"example":{"status":404,"errorCode":"404_PBLC_001","message":"Gift not found"},"properties":{"status":{"type":"integer","description":"The HTTP status code.","example":400,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"errorCode":{"type":"string","description":"Internal error code, helps Snappy's technical team to troubleshoot if needed.","example":"400_PBLC_001","isRequired":true,"uniqueKey":"errorCode","typeLabel":"string"},"message":{"type":"string","description":"The error message.","example":"Unauthorized","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"The path of the field that caused the error.","example":"body.recipients.0.email","isRequired":true,"uniqueKey":"errors.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","description":"The error message.","example":"Invalid email.","isRequired":true,"uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"errorCode":{"type":"string","description":"Internal error code, helps Snappy's technical team to troubleshoot if needed.","example":"400_PBLC_002","isRequired":true,"uniqueKey":"errors.items.[INDEX].errorCode","typeLabel":"string"}},"required":["path","message","errorCode"],"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"An array of client errors. This field is being returned only for errors the client should fix, usually with status code 400.","uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":404,"errorCode":"404_PBLC_001","message":"Gift not found"}}},"exampleType":"generated"}},"exampleType":"generated"},"6fda16e0-666f-442c-a220-8a03dfdbe154":{"description":"Gift already claimed/invoiced","content":{"application/json":{"schema":{"type":"object","description":"API error response with string error codes and optional client error details","required":["status","errorCode","message"],"example":{"status":409,"errorCode":"409_PBLC_001","message":"Gift already claimed/invoiced"},"properties":{"status":{"type":"integer","description":"The HTTP status code.","example":400,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"errorCode":{"type":"string","description":"Internal error code, helps Snappy's technical team to troubleshoot if needed.","example":"400_PBLC_001","isRequired":true,"uniqueKey":"errorCode","typeLabel":"string"},"message":{"type":"string","description":"The error message.","example":"Unauthorized","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"The path of the field that caused the error.","example":"body.recipients.0.email","isRequired":true,"uniqueKey":"errors.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","description":"The error message.","example":"Invalid email.","isRequired":true,"uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"errorCode":{"type":"string","description":"Internal error code, helps Snappy's technical team to troubleshoot if needed.","example":"400_PBLC_002","isRequired":true,"uniqueKey":"errors.items.[INDEX].errorCode","typeLabel":"string"}},"required":["path","message","errorCode"],"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"An array of client errors. This field is being returned only for errors the client should fix, usually with status code 400.","uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":409,"errorCode":"409_PBLC_001","message":"Gift already claimed/invoiced"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"e1dd53ca-9d98-43c3-96d3-b9a4d52f7f3a":{"CompanyLevelAuthentication":{"type":"apiKey","in":"header","name":"X-Api-Key","description":"## Company Level Authentication\n\nCompany level authentication provides access to all resources under your company, including accounts, campaigns, gifts, and recipients.\n\n### Getting Your API Key\n\n1. **Create an API Key**: Use the `POST /v2/authentication/apiKeys` endpoint to generate a new API key\n2. **Set Expiration**: Choose from 30, 60, 90, or 180 days (default: 90 days)\n3. **Optional mTLS**: Enable mutual TLS for enhanced security\n4. **Name Your Key**: Provide a descriptive name for easy identification\n\n### Using Your API Key\n\nInclude your API key in the `X-Api-Key` header for every request:\n```\nX-Api-Key: YOUR_24_CHARACTER_API_KEY\n```\n\n### API Key Management\n\n- **Maximum Keys**: Up to 3 active API keys per company\n- **Rotation**: Delete old keys before creating new ones when at the limit\n- **Security**: Keys are hashed and cannot be retrieved after creation\n\n### Enhanced Security (mTLS)\n\nFor production environments, enable mutual TLS authentication:\n1. Set `enforceMtls: true` when creating the API key\n2. Contact support to obtain your client certificates\n3. Use the mTLS endpoint: `https://mtls-api.snappy.com/public-api`\n","scopes":[],"schemeName":"CompanyLevelAuthentication"}},"8bd48369-49af-49df-a5b1-13856560d2b4":{"BearerAuthentication":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication provides access to all resources under your company, including accounts, campaigns, gifts, and recipients.","scopes":[],"schemeName":"BearerAuthentication"}}},"servers":{"1f7ead17-6160-4972-87e6-98b65f7453c1":{"url":"https://api.snappy.com/public-api","description":"Base API URL"},"2cb6fbb2-b4f6-4068-8394-aa2eea9f61d7":{"url":"https://mtls-api.snappy.com/public-api","description":"## mTLS URL\nYou can also use mTLS to enhance your API security. To get your specific certificates please contact our support.\nOnce you configure the certificated correctly, you need to also update endpoints to use the following secure api base URL:"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-Api-Key","description":"## Company Level Authentication\n\nCompany level authentication provides access to all resources under your company, including accounts, campaigns, gifts, and recipients.\n\n### Getting Your API Key\n\n1. **Create an API Key**: Use the `POST /v2/authentication/apiKeys` endpoint to generate a new API key\n2. **Set Expiration**: Choose from 30, 60, 90, or 180 days (default: 90 days)\n3. **Optional mTLS**: Enable mutual TLS for enhanced security\n4. **Name Your Key**: Provide a descriptive name for easy identification\n\n### Using Your API Key\n\nInclude your API key in the `X-Api-Key` header for every request:\n```\nX-Api-Key: YOUR_24_CHARACTER_API_KEY\n```\n\n### API Key Management\n\n- **Maximum Keys**: Up to 3 active API keys per company\n- **Rotation**: Delete old keys before creating new ones when at the limit\n- **Security**: Keys are hashed and cannot be retrieved after creation\n\n### Enhanced Security (mTLS)\n\nFor production environments, enable mutual TLS authentication:\n1. Set `enforceMtls: true` when creating the API key\n2. Contact support to obtain your client certificates\n3. Use the mTLS endpoint: `https://mtls-api.snappy.com/public-api`\n","scopes":[],"schemeName":"CompanyLevelAuthentication"},"schema":{"title":"X-Api-Key","type":"string","description":"## Company Level Authentication\n\nCompany level authentication provides access to all resources under your company, including accounts, campaigns, gifts, and recipients.\n\n### Getting Your API Key\n\n1. **Create an API Key**: Use the `POST /v2/authentication/apiKeys` endpoint to generate a new API key\n2. **Set Expiration**: Choose from 30, 60, 90, or 180 days (default: 90 days)\n3. **Optional mTLS**: Enable mutual TLS for enhanced security\n4. **Name Your Key**: Provide a descriptive name for easy identification\n\n### Using Your API Key\n\nInclude your API key in the `X-Api-Key` header for every request:\n```\nX-Api-Key: YOUR_24_CHARACTER_API_KEY\n```\n\n### API Key Management\n\n- **Maximum Keys**: Up to 3 active API keys per company\n- **Rotation**: Delete old keys before creating new ones when at the limit\n- **Security**: Keys are hashed and cannot be retrieved after creation\n\n### Enhanced Security (mTLS)\n\nFor production environments, enable mutual TLS authentication:\n1. Set `enforceMtls: true` when creating the API key\n2. Contact support to obtain your client certificates\n3. Use the mTLS endpoint: `https://mtls-api.snappy.com/public-api`\n","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"CompanyLevelAuthentication","name":"X-Api-Key"}],"title":"CompanyLevelAuthentication"},{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication provides access to all resources under your company, including accounts, campaigns, gifts, and recipients.","scopes":[],"schemeName":"BearerAuthentication"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication provides access to all resources under your company, including accounts, campaigns, gifts, and recipients.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuthentication","name":"Authorization"}],"title":"BearerAuthentication"}]},"originalFileLocation":"modules/src/generated-openapi.public.yml"},"subdomain":"snappy-32aaf7de","siteName":"Snappy API Docs","title":"Update gift by ID - Snappy API Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-03T13:54:34.416Z","gitLastModified":"2026-06-17T14:04:15.000Z","originalFileLocation":"modules/api/v2/gifts/update-gift-by-id.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=\"Use this endpoint to update the Gift Customization settings of a specific gift that has not yet been claimed. Changes apply only to unclaimed gifts. ###### Required fields: - giftId - the Gift identifier, passed as a path parameter ###### Optional fields: (in request body, under customization) - giftProperties - budget, expiration, collection / product, guaranteed gift configuration - notificationPolicy - sending channels, reminder settings - recipientExperience - type, visual elements, post-claim redirect Behavior Notes - Changes apply only to unclaimed gifts (status unopened, unwrapped, or opened). Updating a claimed gift returns 409 (409_PBLC_001). - Returns 404 if the Gift doesn\u0026#x27;t exist or isn\u0026#x27;t accessible to the calling key. #### Permissions - Requires: gifts:update\">\u003cmeta data-mint-head name=\"application-name\" content=\"Snappy API 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/snappy-32aaf7de/oqrpWnrgvoAA6g6W/_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/snappy-32aaf7de/oqrpWnrgvoAA6g6W/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/snappy-32aaf7de/oqrpWnrgvoAA6g6W/_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/snappy-32aaf7de/oqrpWnrgvoAA6g6W/_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/snappy-32aaf7de/oqrpWnrgvoAA6g6W/_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/snappy-32aaf7de/oqrpWnrgvoAA6g6W/_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/snappy-32aaf7de/oqrpWnrgvoAA6g6W/_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/snappy-32aaf7de/oqrpWnrgvoAA6g6W/_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/snappy-32aaf7de/oqrpWnrgvoAA6g6W/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Update gift by ID - Snappy API Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Use this endpoint to update the Gift Customization settings of a specific gift that has not yet been claimed. Changes apply only to unclaimed gifts. ###### Required fields: - giftId - the Gift identifier, passed as a path parameter ###### Optional fields: (in request body, under customization) - giftProperties - budget, expiration, collection / product, guaranteed gift configuration - notificationPolicy - sending channels, reminder settings - recipientExperience - type, visual elements, post-claim redirect Behavior Notes - Changes apply only to unclaimed gifts (status unopened, unwrapped, or opened). Updating a claimed gift returns 409 (409_PBLC_001). - Returns 404 if the Gift doesn\u0026#x27;t exist or isn\u0026#x27;t accessible to the calling key. #### Permissions - Requires: gifts:update\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Snappy API Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.snappy.com/modules/api/v2/gifts/update-gift-by-id\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://snappy-32aaf7de.mintlify.app/_mintlify/api/og/v2?division=Gifts\u0026amp;title=Update+gift+by+ID\u0026amp;description=Use+this+endpoint+to+update+the+Gift+Customization+settings+of+a+specific+gift+that+has+not+yet+been+claimed.+Changes+apply+only+to+unclaimed+gifts.%0A%0A%23%23%23%23%23%23+Req\u0026amp;theme=9793b5d79242210c7d69f96c\u0026amp;signature=7e077993c939f40c97a39be8f79c4502c65c0ff19d2ac2eea2b3129a75009616\">\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=\"Update gift by ID - Snappy API Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Use this endpoint to update the Gift Customization settings of a specific gift that has not yet been claimed. Changes apply only to unclaimed gifts. ###### Required fields: - giftId - the Gift identifier, passed as a path parameter ###### Optional fields: (in request body, under customization) - giftProperties - budget, expiration, collection / product, guaranteed gift configuration - notificationPolicy - sending channels, reminder settings - recipientExperience - type, visual elements, post-claim redirect Behavior Notes - Changes apply only to unclaimed gifts (status unopened, unwrapped, or opened). Updating a claimed gift returns 409 (409_PBLC_001). - Returns 404 if the Gift doesn\u0026#x27;t exist or isn\u0026#x27;t accessible to the calling key. #### Permissions - Requires: gifts:update\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://snappy-32aaf7de.mintlify.app/_mintlify/api/og/v2?division=Gifts\u0026amp;title=Update+gift+by+ID\u0026amp;description=Use+this+endpoint+to+update+the+Gift+Customization+settings+of+a+specific+gift+that+has+not+yet+been+claimed.+Changes+apply+only+to+unclaimed+gifts.%0A%0A%23%23%23%23%23%23+Req\u0026amp;theme=9793b5d79242210c7d69f96c\u0026amp;signature=7e077993c939f40c97a39be8f79c4502c65c0ff19d2ac2eea2b3129a75009616\">\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/snappy-32aaf7de/oqrpWnrgvoAA6g6W/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Snappy API Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3077C9\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.snappy.com/modules/api/v2/gifts/update-gift-by-id\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/modules/api/v2/gifts/update-gift-by-id.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.snappy.com/#organization\",\"name\":\"Snappy API Docs\",\"url\":\"https://docs.snappy.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/snappy-32aaf7de/mts3uwPRgvWZUmQ7/images/SNA_Primary_Navy.svg?fit=max\u0026auto=format\u0026n=mts3uwPRgvWZUmQ7\u0026q=85\u0026s=b8a23414e2c9f00b6607cca6445784e8\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.snappy.com#website\",\"name\":\"Snappy API Docs\",\"url\":\"https://docs.snappy.com\",\"publisher\":{\"@id\":\"https://docs.snappy.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.snappy.com/modules/api/v2/gifts/update-gift-by-id#webpage\",\"url\":\"https://docs.snappy.com/modules/api/v2/gifts/update-gift-by-id\",\"name\":\"Update gift by ID\",\"description\":\"Use this endpoint to update the Gift Customization settings of a specific gift that has not yet been claimed. Changes apply only to unclaimed gifts. ###### Required fields: - giftId - the Gift identifier, passed as a path parameter ###### Optional fields: (in request body, under customization) - giftProperties - budget, expiration, collection / product, guaranteed gift configuration - notificationPolicy - sending channels, reminder settings - recipientExperience - type, visual elements, post-claim redirect Behavior Notes - Changes apply only to unclaimed gifts (status unopened, unwrapped, or opened). Updating a claimed gift returns 409 (409_PBLC_001). - Returns 404 if the Gift doesn't exist or isn't accessible to the calling key. #### Permissions - Requires: gifts:update\",\"dateModified\":\"2026-06-17T14:04:15.000Z\",\"isPartOf\":{\"@id\":\"https://docs.snappy.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.snappy.com/modules/api/v2/gifts/update-gift-by-id#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.snappy.com/modules/api/v2/gifts/update-gift-by-id#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Gifting\",\"item\":\"https://docs.snappy.com/modules/api/v2/campaigns/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Gifts\",\"item\":\"https://docs.snappy.com/modules/api/v2/gifts/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Update gift by ID\",\"item\":\"https://docs.snappy.com/modules/api/v2/gifts/update-gift-by-id\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.snappy.com/modules/api/v2/gifts/update-gift-by-id#apireference\",\"headline\":\"Update gift by ID\",\"name\":\"Update gift by ID\",\"description\":\"Use this endpoint to update the Gift Customization settings of a specific gift that has not yet been claimed. Changes apply only to unclaimed gifts. ###### Required fields: - giftId - the Gift identifier, passed as a path parameter ###### Optional fields: (in request body, under customization) - giftProperties - budget, expiration, collection / product, guaranteed gift configuration - notificationPolicy - sending channels, reminder settings - recipientExperience - type, visual elements, post-claim redirect Behavior Notes - Changes apply only to unclaimed gifts (status unopened, unwrapped, or opened). Updating a claimed gift returns 409 (409_PBLC_001). - Returns 404 if the Gift doesn't exist or isn't accessible to the calling key. #### Permissions - Requires: gifts:update\",\"url\":\"https://docs.snappy.com/modules/api/v2/gifts/update-gift-by-id\",\"mainEntityOfPage\":{\"@id\":\"https://docs.snappy.com/modules/api/v2/gifts/update-gift-by-id#webpage\"},\"dateModified\":\"2026-06-17T14:04:15.000Z\",\"publisher\":{\"@id\":\"https://docs.snappy.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.snappy.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Snappy API Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Snappy API Docs","nav":{"global":null,"tabs":[{"tab":"Get started","pages":[{"title":"Get started","href":"/pages/welcome-to-snappy-api"}]},{"tab":"API Reference","icon":"rectangle-api","dropdowns":[{"dropdown":"V3 (Latest)","icon":"rectangle-api","pages":[{"title":"V3 API Overview","sidebarTitle":"Overview","icon":"rectangle-api","href":"/modules/api/v3/overview"},{"group":"Authentication","pages":[{"group":"API Keys","pages":[{"title":"API Keys (V3): Programmatic Key Management","sidebarTitle":"Overview","href":"/modules/api/v3/api-keys/overview"},{"title":"Get API keys","openapi":"get /v3/authentication/api-keys","href":"/modules/api/v3/api-keys/get-api-keys"},{"title":"Create API key","openapi":"post /v3/authentication/api-keys","href":"/modules/api/v3/api-keys/create-api-key"},{"title":"Delete API key","openapi":"delete /v3/authentication/api-keys/{apiKeyId}","href":"/modules/api/v3/api-keys/delete-api-key"}]}]},{"group":"Marketplace","pages":[{"group":"Products","pages":[{"title":"Products API: Browse Snappy's Catalog","sidebarTitle":"Overview","href":"/modules/api/v3/products/overview"},{"title":"Get products","openapi":"get /v3/products","href":"/modules/api/v3/products/get-products"},{"title":"Get product by ID","openapi":"get /v3/products/{productId}","href":"/modules/api/v3/products/get-product-by-id"},{"title":"Get product recommendations","openapi":"get /v3/products/{productId}/recommendations","href":"/modules/api/v3/products/get-product-recommendations"},{"title":"Get product variants","openapi":"get /v3/products/{productId}/variants","href":"/modules/api/v3/products/get-product-variants"},{"title":"Get product tags","openapi":"get /v3/product-tags","href":"/modules/api/v3/product-tags/get-product-tags"}]},{"group":"Variants","pages":[{"title":"Variants API: The Orderable Units of the Catalog","sidebarTitle":"Overview","href":"/modules/api/v3/variants/overview"},{"title":"Get variant by ID","openapi":"get /v3/variants/{variantId}","href":"/modules/api/v3/variants/get-variant-by-id"},{"title":"Get variant availability","openapi":"get /v3/variants/{variantId}/availability","href":"/modules/api/v3/variants/get-variant-availability"}]},{"group":"Collections","pages":[{"title":"Collections API: Curated Gift Catalogs","sidebarTitle":"Overview","href":"/modules/api/v3/collections/overview"},{"title":"Get collections","openapi":"get /v3/collections","href":"/modules/api/v3/collections/get-collections"},{"title":"Get collection by ID","openapi":"get /v3/collections/{collectionId}","href":"/modules/api/v3/collections/get-collection-by-id"},{"title":"Get collection products","openapi":"get /v3/collections/{collectionId}/products","href":"/modules/api/v3/collections/get-collection-products"},{"title":"Get featured collection products","openapi":"get /v3/collections/{collectionId}/products/featured","href":"/modules/api/v3/collections/get-collection-featured-products"}]},{"group":"Orders","pages":[{"title":"Orders API: Place, Track, and Manage Orders","sidebarTitle":"Overview","href":"/modules/api/v3/orders/overview"},{"title":"Place order","openapi":"post /v3/orders","href":"/modules/api/v3/orders/place-order"},{"title":"Get orders","openapi":"get /v3/orders","href":"/modules/api/v3/orders/get-orders"},{"title":"Get order by ID","openapi":"get /v3/orders/{orderId}","href":"/modules/api/v3/orders/get-order-by-id"},{"title":"Cancel order","openapi":"post /v3/orders/{orderId}/cancel","href":"/modules/api/v3/orders/cancel-order"},{"title":"Validate order address","openapi":"post /v3/orders/addresses/validate","href":"/modules/api/v3/orders/validate-order-address"},{"title":"Autocomplete order address","openapi":"get /v3/orders/addresses/autocomplete","href":"/modules/api/v3/orders/autocomplete-order-address"}]},{"group":"Digital Cards","pages":[{"title":"Digital Cards API","sidebarTitle":"Overview","href":"/modules/api/v3/digital-cards/overview"},{"title":"List digital cards","openapi":"get /v3/digital-cards","href":"/modules/api/v3/digital-cards/get-digital-cards"},{"title":"Get digital card by ID","openapi":"get /v3/digital-cards/{digitalCardId}","href":"/modules/api/v3/digital-cards/get-digital-card-by-id"},{"title":"Get digital card access code","openapi":"get /v3/digital-cards/{digitalCardId}/access-code","href":"/modules/api/v3/digital-cards/get-digital-card-access-code"}]},{"group":"Export","pages":[{"title":"Export API: Bulk Catalog Ingestion","sidebarTitle":"Overview","href":"/modules/api/v3/exports/overview"},{"title":"Create products export","openapi":"post /v3/products/exports","href":"/modules/api/v3/exports/create-products-export-job-async"},{"title":"Create collections export","openapi":"post /v3/collections/exports","href":"/modules/api/v3/exports/create-collections-export-job-async"},{"title":"Get export status","openapi":"get /v3/products/exports/{exportId}","href":"/modules/api/v3/exports/poll-export-job-status"}]}]},{"group":"Swag","pages":[{"title":"Swag Products: Branded Merchandise Templates","sidebarTitle":"Overview","href":"/modules/api/v3/swag/overview"},{"group":"Base Products","pages":[{"title":"Get base products","openapi":"get /v3/swag/base-products","href":"/modules/api/v3/base-products/get-base-products"},{"title":"Get base product by ID","openapi":"get /v3/swag/base-products/{baseProductId}","href":"/modules/api/v3/base-products/get-base-product-by-id"}]},{"group":"Base Variants","pages":[{"title":"Get base variants by base product ID","openapi":"get /v3/swag/base-products/{baseProductId}/variants","href":"/modules/api/v3/base-products/get-base-variants-by-base-product-id"},{"title":"Get base variant by ID","openapi":"get /v3/swag/base-variants/{baseVariantId}","href":"/modules/api/v3/base-products/get-base-variant-by-id"}]}]},{"group":"Gifting","pages":[{"title":"See V2","sidebarTitle":"See V2","icon":"arrow-alt-circle-right","href":"/pages/see-v2"}]},{"group":"Administration","pages":[{"group":"Accounts","pages":[{"title":"Accounts API (V3): Organize Gifting by Team, Department, or Budget","sidebarTitle":"Overview","href":"/modules/api/v3/accounts/overview"},{"title":"Get accounts","openapi":"get /v3/accounts","href":"/modules/api/v3/accounts/get-accounts"},{"title":"Create account","openapi":"post /v3/accounts","href":"/modules/api/v3/accounts/create-account"},{"title":"Get account by ID","openapi":"get /v3/accounts/{accountId}","href":"/modules/api/v3/accounts/get-account-by-id"}]},{"group":"Billing methods","pages":[{"title":"Billing Methods API: Account Funding Sources and Remaining Balances","sidebarTitle":"Overview","href":"/modules/api/v3/billing-methods/overview"},{"title":"Get billing methods","openapi":"get /v3/billing-methods","href":"/modules/api/v3/billing-methods/get-billing-methods"},{"title":"Get billing method by ID","openapi":"get /v3/billing-methods/{billingMethodId}","href":"/modules/api/v3/billing-methods/get-billing-method-by-id"}]}]}]},{"dropdown":"V2","icon":"rectangle-api","pages":[{"title":"V2 API Overview","sidebarTitle":"Overview","icon":"rectangle-api","href":"/modules/api/v2/overview"},{"group":"Authentication","pages":[{"group":"API Keys","pages":[{"title":"API Keys (V2): Programmatic Key Management","sidebarTitle":"Overview","href":"/modules/api/v2/api-keys/overview"},{"title":"Get API keys","openapi":"get /v2/authentication/apiKeys","href":"/modules/api/v2/api-keys/get-api-keys"},{"title":"Create API key","openapi":"post /v2/authentication/apiKeys","href":"/modules/api/v2/api-keys/create-api-key"},{"title":"Delete API key","openapi":"delete /v2/authentication/apiKeys/{apiKeyId}","href":"/modules/api/v2/api-keys/delete-api-key"}]}]},{"group":"Marketplace","pages":[{"title":"See V3","sidebarTitle":"See V3","icon":"arrow-alt-circle-right","href":"/pages/see-v3"}]},{"group":"Gifting","pages":[{"group":"Campaigns","pages":[{"title":"Campaigns API (V2): Plan, Schedule, and Report on Gifting Campaigns","sidebarTitle":"Overview","href":"/modules/api/v2/campaigns/overview"},{"title":"Get campaigns","openapi":"get /v2/campaigns","href":"/modules/api/v2/campaigns/get-campaigns"},{"title":"Create campaign","openapi":"post /v2/campaigns","href":"/modules/api/v2/campaigns/create-campaign"},{"title":"Get campaign by ID","openapi":"get /v2/campaigns/{campaignId}","href":"/modules/api/v2/campaigns/get-campaign-by-id"},{"title":"Update campaign by ID","openapi":"patch /v2/campaigns/{campaignId}","href":"/modules/api/v2/campaigns/update-campaign-by-id"},{"title":"Get estimated cost for campaign","openapi":"get /v2/campaigns/{campaignId}/estimatedCost","href":"/modules/api/v2/campaigns/get-estimated-cost-for-campaign"}]},{"group":"Collections","pages":[{"title":"Collections API (V2): Curated Gift Catalogs","sidebarTitle":"Overview","href":"/modules/api/v2/collections/overview"},{"title":"Get collections","openapi":"get /v2/collections","href":"/modules/api/v2/collections/get-collections"},{"title":"Get collection budgets","openapi":"get /v2/collections/budgets","href":"/modules/api/v2/collections/get-collection-budgets"},{"title":"Get collection products","openapi":"get /v2/collections/{collectionId}/products","href":"/modules/api/v2/collections/get-collection-products"},{"title":"Get collection products count","openapi":"get /v2/collections/{collectionId}/products/count","href":"/modules/api/v2/collections/get-collection-products-count"},{"title":"Get collection product","openapi":"get /v2/collections/{collectionId}/products/{productId}","href":"/modules/api/v2/collections/get-collection-product"}]},{"group":"Products \u0026 Variants","pages":[{"title":"Products \u0026 Variants API (V2): Catalog Access for Gifting","sidebarTitle":"Overview","href":"/modules/api/v2/products/overview"},{"title":"Get products","openapi":"get /v2/products","href":"/modules/api/v2/products/get-products"},{"title":"Get product tags","openapi":"get /v2/products/tags","href":"/modules/api/v2/products/get-product-tags"},{"title":"Get variants by product ID","openapi":"get /v2/products/{productId}","href":"/modules/api/v2/products/get-variants-by-product-id"},{"title":"Get variant by ID","openapi":"get /v2/variants/{variantId}","href":"/modules/api/v2/variants/get-variant-by-id"}]},{"group":"Gifts","pages":[{"title":"Gifts API (V2): Create, Track, and Expire Gifts","sidebarTitle":"Overview","href":"/modules/api/v2/gifts/overview"},{"title":"Create gifts","openapi":"post /v2/gifts","href":"/modules/api/v2/gifts/create-gifts"},{"title":"Get gifts","openapi":"get /v2/gifts","href":"/modules/api/v2/gifts/get-gifts"},{"title":"Create demo gift","openapi":"post /v2/gifts/demo","href":"/modules/api/v2/gifts/create-demo-gift"},{"title":"Get gift by ID","openapi":"get /v2/gifts/{giftId}","description":"Use this endpoint to retrieve a specific Gift by its ID. Useful for tracking delivery status, retrieving final gift cost, or reviewing the recipient and campaign context.\n\n###### Required fields:\n- `giftId` - the Gift identifier, passed as a path parameter\n\n###### Optional parameters:\n- `expand` - comma-separated objects to inline (`finalCost`, `deliveryDetails`, `estimatedCost`, `recipient`, `orders`, `customization`)\n- `Request-Source` header - source of the request\n\n###### Please note:\n- Use `expand=orders` to retrieve the full order history including cancelled orders.\n- Use `expand=finalCost` to retrieve the actual cost after the gift has been claimed.\n\n#### Permissions\n- Requires: `gifts:read:masked` or `gifts:read:unmasked`","href":"/modules/api/v2/gifts/get-gift-by-id"},{"title":"Update gift by ID","openapi":"patch /v2/gifts/{giftId}","href":"/modules/api/v2/gifts/update-gift-by-id"},{"title":"Expire a gift","openapi":"post /v2/gifts/{giftId}/expire","description":"Use this endpoint to manually expire a gift that has not yet been claimed, preventing the recipient from selecting a product and generating an order.\n\n###### Required fields:\n- `giftId` - the Gift identifier, passed as a path parameter\n\n###### Optional parameters:\n- `Request-Source` header - source of the request\n\n###### Behavior Notes:\n- Returns the updated `status` (always `expired`) on success.\n- Returns `409` (`409_PBLC_001`) if the Gift has already been claimed and cannot be expired.\n- Fires the `gift-status-changed` webhook event with `status: expired`.\n\n#### Permissions\n- Requires: `gifts:update`","href":"/modules/api/v2/gifts/expire-gift"}]},{"group":"Orders","pages":[{"title":"Orders API (V2): Address Validation, Cancellation \u0026 Claims","sidebarTitle":"Overview","href":"/modules/api/v2/orders/overview"},{"title":"Claim a gift","openapi":"post /v2/gifts/{giftId}/claim","href":"/modules/api/v2/orders/claim-gift"},{"title":"Cancel an order","openapi":"post /v2/gifts/{giftId}/cancel","href":"/modules/api/v2/orders/cancel-order"},{"title":"Validate order address","openapi":"post /v2/orders/addresses/validate","href":"/modules/api/v2/orders/validate-order-address"},{"title":"Autocomplete order address","openapi":"get /v2/orders/addresses/autocomplete","href":"/modules/api/v2/orders/autocomplete-order-address"}]},{"group":"Recipients","pages":[{"title":"Recipients API (V2): Manage Gift Recipients at Scale","sidebarTitle":"Overview","href":"/modules/api/v2/recipients/overview"},{"title":"Create recipient","openapi":"post /v2/recipients","href":"/modules/api/v2/recipients/create-recipient"},{"title":"Get recipients","openapi":"get /v2/recipients","href":"/modules/api/v2/recipients/get-recipients"},{"title":"Get recipient by ID","openapi":"get /v2/recipients/{recipientId}","href":"/modules/api/v2/recipients/get-recipient-by-id"},{"title":"Update recipient","openapi":"patch /v2/recipients/{recipientId}","href":"/modules/api/v2/recipients/update-recipient"},{"title":"Delete recipient by ID","openapi":"delete /v2/recipients/{recipientId}","href":"/modules/api/v2/recipients/delete-recipient-by-id"}]}]},{"group":"Administration","pages":[{"group":"Accounts","pages":[{"title":"Accounts API (V2): Organize Gifting by Team, Department, or Budget","sidebarTitle":"Overview","href":"/modules/api/v2/accounts/overview"},{"title":"Get accounts","openapi":"get /v2/accounts","href":"/modules/api/v2/accounts/get-accounts"},{"title":"Create account","openapi":"post /v2/accounts","href":"/modules/api/v2/accounts/create-account"},{"title":"Get account by ID","openapi":"get /v2/accounts/{accountId}","href":"/modules/api/v2/accounts/get-account-by-id"}]}]}]}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/guides/introduction"}]},{"tab":"Integrations","pages":[{"title":"Integrations","href":"/pages/logicbroker-integration"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/pages/changelog"}]}]},"basePath":"","title":"Update gift by ID - Snappy API Docs","buildId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","deploymentId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DX1Meug0.js","utils-B_OMIQVC.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-ChxhRPMa.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CuKvD8Iv.js","snippetPresets-C5d7p2hp.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CfHcE8m4.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C1zZV314.js","shallow-CmQhqCJn.js","getApiPlaygroundDisplay-YRo9s1O7.js","CodeSnippet-RN1MTdfk.js","CodeSnippets-DKLPHxJA.js","Page-BAvA99GL.js","getPastedJson-bz0M41mU.js","icon-CsmhpPrv.js","MethodPill-CNGsVE77.js","DuplicateIcon-DilfU_Z2.js","createIcon-BdsYzQck.js","DynamicMarkdown-CbqEDjbV.js","SectionHeading-O6hXpFCN.js","axios-vUo_bRtp.js","Markdown-nKm-uidQ.js","clsx-ClVdStUn.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CIQkMg3R.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-ImrFS4Fy.js"]}