Use this endpoint to create one or more gifts within a Campaign and initiate the Triggered Gifting flow. Snappy will notify recipients based on the Campaign’s Notification Policy.
Required fields:
campaignId - the Campaign ID to send under
recipients - array of recipients, each requiring at minimum a firstname and an identifier to send to (email or phone). Include a unique key per recipient for duplicate detection.
Optional fields:
customization - Gift Customization overrides (giftProperties, notificationPolicy, recipientExperience). Overrides apply only to gifts created in this call.
metadata - optional key-value pairs (max 50 pairs, keys up to 40 chars, values up to 500 chars)
Request-Source header - source of the request (api_native, api_zapier, api_salesforce, api_ftp, api_make)
Behavior Notes:
Supports batch creation - multiple recipients in a single request. Each recipient generates its own Gift with its own link and key.
A successful request returns the Gift objects with an initial status of unopened and a unique claim link for each recipient.
Webhook events fired through the lifecycle: gift-status-changed (unopened → unwrapped → opened → claimed / expired), and gift-notification-initial-sent.
The top-level sendingMethod field is deprecated - use customization.notificationPolicy.sendingChannels instead.
Optional metadata object with key-value pairs. Keys must be alphanumeric (including underscores) and up to 40 characters. Values must be alphanumeric and up to 500 characters. Maximum 50 key-value pairs allowed.
Optional metadata object with key-value pairs. Keys must be alphanumeric (including underscores) and up to 40 characters. Values must be alphanumeric and up to 500 characters. Maximum 50 key-value pairs allowed.
{"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/create-gifts","slug":"/modules/api/v2/gifts/create-gifts","pageMetadata":{"title":"Create gifts","openapi":"post /v2/gifts","description":"Use this endpoint to create one or more gifts within a Campaign and initiate the Triggered Gifting flow. Snappy will notify recipients based on the Campaign's Notification Policy.\n\n###### Required fields:\n- `campaignId` - the Campaign ID to send under\n- `recipients` - array of recipients, each requiring at minimum a `firstname` and an identifier to send to (email or phone). Include a unique `key` per recipient for duplicate detection.\n\n###### Optional fields:\n- `customization` - Gift Customization overrides (`giftProperties`, `notificationPolicy`, `recipientExperience`). Overrides apply only to gifts created in this call.\n- `metadata` - optional key-value pairs (max 50 pairs, keys up to 40 chars, values up to 500 chars)\n- `Request-Source` header - source of the request (`api_native`, `api_zapier`, `api_salesforce`, `api_ftp`, `api_make`)\n\n###### Behavior Notes:\n- Supports **batch creation** - multiple recipients in a single request. Each recipient generates its own Gift with its own `link` and `key`.\n- A successful request returns the Gift objects with an initial status of `unopened` and a unique claim `link` for each recipient.\n- Webhook events fired through the lifecycle: `gift-status-changed` (`unopened` → `unwrapped` → `opened` → `claimed` / `expired`), and `gift-notification-initial-sent`.\n- The top-level `sendingMethod` field is **deprecated** - use `customization.notificationPolicy.sendingChannels` instead.\n\n#### Permissions\n- Requires: `gifts:create`","href":"/modules/api/v2/gifts/create-gifts"},"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 create one or more gifts within a Campaign and initiate the Triggered Gifting flow. Snappy will notify recipients based on the Campaign’s Notification Policy.\"\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: \"campaignId\"\n }), \" - the Campaign ID to send under\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"recipients\"\n }), \" - array of recipients, each requiring at minimum a \", _jsx(_components.code, {\n children: \"firstname\"\n }), \" and an identifier to send to (email or phone). Include a unique \", _jsx(_components.code, {\n children: \"key\"\n }), \" per recipient for duplicate detection.\"]\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.h6, {\n children: \"Optional fields:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"customization\"\n }), \" - Gift Customization overrides (\", _jsx(_components.code, {\n children: \"giftProperties\"\n }), \", \", _jsx(_components.code, {\n children: \"notificationPolicy\"\n }), \", \", _jsx(_components.code, {\n children: \"recipientExperience\"\n }), \"). Overrides apply only to gifts created in this call.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"metadata\"\n }), \" - optional key-value pairs (max 50 pairs, keys up to 40 chars, values up to 500 chars)\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"Request-Source\"\n }), \" header - source of the request (\", _jsx(_components.code, {\n children: \"api_native\"\n }), \", \", _jsx(_components.code, {\n children: \"api_zapier\"\n }), \", \", _jsx(_components.code, {\n children: \"api_salesforce\"\n }), \", \", _jsx(_components.code, {\n children: \"api_ftp\"\n }), \", \", _jsx(_components.code, {\n children: \"api_make\"\n }), \")\"]\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.h6, {\n children: \"Behavior Notes:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"Supports \", _jsx(_components.strong, {\n children: \"batch creation\"\n }), \" - multiple recipients in a single request. Each recipient generates its own Gift with its own \", _jsx(_components.code, {\n children: \"link\"\n }), \" and \", _jsx(_components.code, {\n children: \"key\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"A successful request returns the Gift objects with an initial status of \", _jsx(_components.code, {\n children: \"unopened\"\n }), \" and a unique claim \", _jsx(_components.code, {\n children: \"link\"\n }), \" for each recipient.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Webhook events fired through the lifecycle: \", _jsx(_components.code, {\n children: \"gift-status-changed\"\n }), \" (\", _jsx(_components.code, {\n children: \"unopened\"\n }), \" → \", _jsx(_components.code, {\n children: \"unwrapped\"\n }), \" → \", _jsx(_components.code, {\n children: \"opened\"\n }), \" → \", _jsx(_components.code, {\n children: \"claimed\"\n }), \" / \", _jsx(_components.code, {\n children: \"expired\"\n }), \"), and \", _jsx(_components.code, {\n children: \"gift-notification-initial-sent\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"The top-level \", _jsx(_components.code, {\n children: \"sendingMethod\"\n }), \" field is \", _jsx(_components.strong, {\n children: \"deprecated\"\n }), \" - use \", _jsx(_components.code, {\n children: \"customization.notificationPolicy.sendingChannels\"\n }), \" instead.\"]\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:create\"\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":"Create gifts","openapi":"post /v2/gifts","description":"Use this endpoint to create one or more gifts within a Campaign and initiate the Triggered Gifting flow. Snappy will notify recipients based on the Campaign's Notification Policy.\n\n###### Required fields:\n- `campaignId` - the Campaign ID to send under\n- `recipients` - array of recipients, each requiring at minimum a `firstname` and an identifier to send to (email or phone). Include a unique `key` per recipient for duplicate detection.\n\n###### Optional fields:\n- `customization` - Gift Customization overrides (`giftProperties`, `notificationPolicy`, `recipientExperience`). Overrides apply only to gifts created in this call.\n- `metadata` - optional key-value pairs (max 50 pairs, keys up to 40 chars, values up to 500 chars)\n- `Request-Source` header - source of the request (`api_native`, `api_zapier`, `api_salesforce`, `api_ftp`, `api_make`)\n\n###### Behavior Notes:\n- Supports **batch creation** - multiple recipients in a single request. Each recipient generates its own Gift with its own `link` and `key`.\n- A successful request returns the Gift objects with an initial status of `unopened` and a unique claim `link` for each recipient.\n- Webhook events fired through the lifecycle: `gift-status-changed` (`unopened` → `unwrapped` → `opened` → `claimed` / `expired`), and `gift-notification-initial-sent`.\n- The top-level `sendingMethod` field is **deprecated** - use `customization.notificationPolicy.sendingChannels` instead.\n\n#### Permissions\n- Requires: `gifts:create`","href":"/modules/api/v2/gifts/create-gifts"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"createGifts","tags":["Gifts"],"summary":"Create gifts","description":"Use this endpoint to create one or more gifts within a Campaign and initiate the Triggered Gifting flow. Snappy will notify recipients based on the Campaign's Notification Policy.\n\n###### Required fields:\n- `campaignId` - the Campaign ID to send under\n- `recipients` - array of recipients, each requiring at minimum a `firstname` and an identifier to send to (email or phone). Include a unique `key` per recipient for duplicate detection.\n\n###### Optional fields:\n- `customization` - Gift Customization overrides (`giftProperties`, `notificationPolicy`, `recipientExperience`). Overrides apply only to gifts created in this call.\n- `metadata` - optional key-value pairs (max 50 pairs, keys up to 40 chars, values up to 500 chars)\n- `Request-Source` header - source of the request (`api_native`, `api_zapier`, `api_salesforce`, `api_ftp`, `api_make`)\n\n###### Behavior Notes:\n- Supports **batch creation** - multiple recipients in a single request. Each recipient generates its own Gift with its own `link` and `key`.\n- A successful request returns the Gift objects with an initial status of `unopened` and a unique claim `link` for each recipient.\n- Webhook events fired through the lifecycle: `gift-status-changed` (`unopened` → `unwrapped` → `opened` → `claimed` / `expired`), and `gift-notification-initial-sent`.\n- The top-level `sendingMethod` field is **deprecated** - use `customization.notificationPolicy.sendingChannels` instead.\n\n#### Permissions\n- Requires: `gifts:create`","security":["d16c799c-7705-42dd-b522-2c14c8fb4c63","3f3a4806-01e7-4db7-91c4-9613b37583b8"],"parameters":["aacc88e3-10cc-43c0-9ae3-e40e5fa4a612"],"requestBody":"e585c06f-bfbd-40ba-8553-0ed9b7b3d796","responses":{"200":"3b2ea996-7b6f-40f7-98e9-e9b070d71366","400":"24570fc3-b8b4-4984-be45-181eb96ff84d","401":"f2be669e-6cbd-4d03-bb95-390bb5f145db"},"method":"post","type":"path","servers":["1f7ead17-6160-4972-87e6-98b65f7453c1","2cb6fbb2-b4f6-4068-8394-aa2eea9f61d7"],"path":"/v2/gifts","baseUrlOptions":["https://api.snappy.com/public-api","https://mtls-api.snappy.com/public-api"],"title":"Create gifts","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"aacc88e3-10cc-43c0-9ae3-e40e5fa4a612":{"schema":{"type":"string","enum":["api_native","api_zapier","api_salesforce","api_ftp","api_make"],"description":"Source of the request","example":"api_native","isRequired":false,"uniqueKey":"","typeLabel":"enum\u003cstring>"},"required":false,"description":"Source of the request","name":"Request-Source","in":"header"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"campaignId":{"type":"string","pattern":"^[A-Za-z0-9]{8,}$","description":"Campaign ID","example":"12345678","isRequired":true,"uniqueKey":"campaignId","typeLabel":"string"},"recipients":{"type":"array","items":{"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":"recipients.items.[INDEX].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":"recipients.items.[INDEX].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":"recipients.items.[INDEX].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":"recipients.items.[INDEX].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":"recipients.items.[INDEX].key","typeLabel":"string"},"externalId":{"type":"string","description":"The id of the recipient in your own system.","example":"1234567890","uniqueKey":"recipients.items.[INDEX].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":"recipients.items.[INDEX]","typeLabel":"object"},"description":"The recipients of the gift.","isRequired":true,"uniqueKey":"recipients","typeLabel":"object[]"},"sendingMethod":{"type":"string","enum":["mail","sms","mailAndSms","link"],"example":"mail","deprecated":true,"description":"Deprecated. Use \"customization.notificationPolicy.sendingChannels\" instead.","uniqueKey":"sendingMethod","typeLabel":"enum\u003cstring>"},"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"},"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","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"}}},"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","description":"Visual elements of recipient experience.","required":["reveal","greeting"],"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"}]}}}},"properties":{"reveal":{"type":"object","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.","required":["type","primaryColor","secondaryColor"],"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"}]}},"properties":{"type":{"type":"string","description":"Type of reveal experience.","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"],"example":"snowGlobe","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.reveal.type","typeLabel":"enum\u003cstring>"},"primaryColor":{"oneOf":[{"type":"string","description":"Primary color of reveal experience. Required unless type is noReveal.","format":"hex","pattern":"^#[0-9A-Fa-f]{6}$","example":"#000000","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.reveal.primaryColor.oneOf.0","typeLabel":"string\u003chex>"},{"type":"string","description":"Primary color of reveal experience. Required unless type is noReveal.","format":"hex","pattern":"^#[0-9A-Fa-f]{6}$","enum":[""],"example":"#000000","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.reveal.primaryColor.oneOf.1","typeLabel":"enum\u003cstring>"},{"type":"string","description":"Primary color of reveal experience. Required unless type is noReveal.","format":"hex","pattern":"^#[0-9A-Fa-f]{6}$","example":"#000000","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.reveal.primaryColor.oneOf.2","typeLabel":"string\u003chex>"}],"isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.reveal.primaryColor","typeLabel":"string\u003chex> · enum\u003cstring> · string\u003chex>"},"secondaryColor":{"oneOf":[{"type":"string","description":"Secondary color of reveal experience. Required unless type is noReveal.","format":"hex","pattern":"^#[0-9A-Fa-f]{6}$","example":"#000000","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.reveal.secondaryColor.oneOf.0","typeLabel":"string\u003chex>"},{"type":"string","description":"Secondary color of reveal experience. Required unless type is noReveal.","format":"hex","pattern":"^#[0-9A-Fa-f]{6}$","enum":[""],"example":"#000000","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.reveal.secondaryColor.oneOf.1","typeLabel":"enum\u003cstring>"},{"type":"string","description":"Secondary color of reveal experience. Required unless type is noReveal.","format":"hex","pattern":"^#[0-9A-Fa-f]{6}$","example":"#000000","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.reveal.secondaryColor.oneOf.2","typeLabel":"string\u003chex>"}],"isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.reveal.secondaryColor","typeLabel":"string\u003chex> · enum\u003cstring> · string\u003chex>"},"mediaItems":{"type":"object","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"}]},"properties":{"background":{"type":"array","items":{"type":"object","description":"Media item object.","required":["type","url"],"example":{"type":"image","url":"https://example.com/image.jpg"},"properties":{"type":{"type":"string","description":"Type of media item.","enum":["image","video"],"example":"image","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.reveal.mediaItems.background.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"url":{"type":"string","description":"URL of the media item.","format":"uri","example":"https://example.com/image.jpg","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.reveal.mediaItems.background.items.[INDEX].url","typeLabel":"string\u003curi>"}},"additionalProperties":false,"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","description":"Media item object.","required":["type","url"],"example":{"type":"image","url":"https://example.com/image.jpg"},"properties":{"type":{"type":"string","description":"Type of media item.","enum":["image","video"],"example":"image","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.reveal.mediaItems.logo.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"url":{"type":"string","description":"URL of the media item.","format":"uri","example":"https://example.com/image.jpg","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.reveal.mediaItems.logo.items.[INDEX].url","typeLabel":"string\u003curi>"}},"additionalProperties":false,"uniqueKey":"customization.recipientExperience.visualElements.reveal.mediaItems.logo.items.[INDEX]","typeLabel":"object"},"maxItems":1,"uniqueKey":"customization.recipientExperience.visualElements.reveal.mediaItems.logo","typeLabel":"object[]"}},"additionalProperties":false,"uniqueKey":"customization.recipientExperience.visualElements.reveal.mediaItems","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.reveal","typeLabel":"object"},"greeting":{"type":"object","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.","required":["content","banner"],"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"}]}}},"properties":{"content":{"type":"object","description":"Quill formatted JSON with ops array and any additional properties.","required":["ops"],"example":{"ops":[{"attributes":{"font":"pacifico"},"insert":"Happy Birthday!"}],"customProperty":"customValue"},"properties":{"ops":{"type":"array","items":{"oneOf":[{"type":"object","additionalProperties":true,"uniqueKey":"customization.recipientExperience.visualElements.greeting.content.ops.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":true,"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)[]"}},"additionalProperties":{"oneOf":[{},{"type":"null","uniqueKey":"customization.recipientExperience.visualElements.greeting.content.additionalProperties.oneOf.1","typeLabel":"null"},{"type":"null","uniqueKey":"customization.recipientExperience.visualElements.greeting.content.additionalProperties.oneOf.2","typeLabel":"null"},{"type":"null","uniqueKey":"customization.recipientExperience.visualElements.greeting.content.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"customization.recipientExperience.visualElements.greeting.content.additionalProperties","typeLabel":"null"},"isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.greeting.content","typeLabel":"object"},"banner":{"type":"object","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.","required":["text","color","mediaItems"],"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"}]}},"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","description":"Media items of banner.","required":["background"],"example":{"background":[{"type":"image","url":"https://example.com/image.jpg"}],"logo":[{"type":"image","url":"https://example.com/image.jpg"}]},"properties":{"background":{"type":"array","items":{"type":"object","description":"Media item object.","required":["type","url"],"example":{"type":"image","url":"https://example.com/image.jpg"},"properties":{"type":{"type":"string","description":"Type of media item.","enum":["image","video"],"example":"image","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.greeting.banner.mediaItems.background.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"url":{"type":"string","description":"URL of the media item.","format":"uri","example":"https://example.com/image.jpg","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.greeting.banner.mediaItems.background.items.[INDEX].url","typeLabel":"string\u003curi>"}},"additionalProperties":false,"uniqueKey":"customization.recipientExperience.visualElements.greeting.banner.mediaItems.background.items.[INDEX]","typeLabel":"object"},"maxItems":1,"minItems":0,"isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.greeting.banner.mediaItems.background","typeLabel":"object[]"},"logo":{"type":"array","items":{"type":"object","description":"Media item object.","required":["type","url"],"example":{"type":"image","url":"https://example.com/image.jpg"},"properties":{"type":{"type":"string","description":"Type of media item.","enum":["image","video"],"example":"image","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.greeting.banner.mediaItems.logo.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"url":{"type":"string","description":"URL of the media item.","format":"uri","example":"https://example.com/image.jpg","isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.greeting.banner.mediaItems.logo.items.[INDEX].url","typeLabel":"string\u003curi>"}},"additionalProperties":false,"uniqueKey":"customization.recipientExperience.visualElements.greeting.banner.mediaItems.logo.items.[INDEX]","typeLabel":"object"},"maxItems":1,"uniqueKey":"customization.recipientExperience.visualElements.greeting.banner.mediaItems.logo","typeLabel":"object[]"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.greeting.banner.mediaItems","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"customization.recipientExperience.visualElements.greeting.banner","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"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,"description":"Customization configuration of the gift.","uniqueKey":"customization","typeLabel":"object"},"metadata":{"type":"object","additionalProperties":{"type":"string","maxLength":500,"pattern":"^[a-zA-Z0-9\\s\\-_.]+$","uniqueKey":"metadata.additionalProperties","typeLabel":"string"},"maxProperties":50,"description":"Optional metadata object with key-value pairs. Keys must be alphanumeric (including underscores) and up to 40 characters. Values must be alphanumeric and up to 500 characters. Maximum 50 key-value pairs allowed.","example":{"key1":"value1","key2":"value2"},"uniqueKey":"metadata","typeLabel":"object"}},"required":["campaignId","recipients"],"additionalProperties":false,"description":"The gift object.","example":{"campaignId":"12345678","recipients":[{"firstname":"John","lastname":"Doe","externalId":"1234567890","phone":"+1234567890","email":"example@domain.com","key":"abc123"}],"sendingMethod":"mail","customization":{"recipientExperience":{"type":"enterAddress","visualElements":{"reveal":{"type":"snowGlobe","primaryColor":"#000000","secondaryColor":"#000000","mediaItems":{"logo":[{"type":"image","url":"https://example.com/media-item-1.jpg"}]}},"greeting":{"content":{"ops":[{"attributes":{"font":"pacifico","size":"32px","color":"#000000"},"insert":"Happy Birthday!"}]},"banner":{"mediaItems":{"background":[{"type":"image","url":"https://example.com/media-item-1.jpg"}]},"text":"🎁 Enjoy your gift!","color":"#36d4ff"}},"postClaim":{"redirectAfterClaim":"https://example.com/redirect"}}},"giftProperties":{"selectedGiftType":"product","product":{"id":"productId","displayType":"displayAsSurprise"},"budget":{"max":100,"min":76},"expiration":{"type":"daysFromSend","numberOfDays":30}},"notificationPolicy":{"sendingChannels":["mail"],"disableReminders":true}},"metadata":{"key1":"value1","key2":"value2"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"campaignId":"12345678","recipients":[{"firstname":"John","lastname":"Doe","externalId":"1234567890","phone":"+1234567890","email":"example@domain.com","key":"abc123"}],"sendingMethod":"mail","customization":{"recipientExperience":{"type":"enterAddress","visualElements":{"reveal":{"type":"snowGlobe","primaryColor":"#000000","secondaryColor":"#000000","mediaItems":{"logo":[{"type":"image","url":"https://example.com/media-item-1.jpg"}]}},"greeting":{"content":{"ops":[{"attributes":{"font":"pacifico","size":"32px","color":"#000000"},"insert":"Happy Birthday!"}]},"banner":{"mediaItems":{"background":[{"type":"image","url":"https://example.com/media-item-1.jpg"}]},"text":"🎁 Enjoy your gift!","color":"#36d4ff"}},"postClaim":{"redirectAfterClaim":"https://example.com/redirect"}}},"giftProperties":{"selectedGiftType":"product","product":{"id":"productId","displayType":"displayAsSurprise"},"budget":{"max":100,"min":76},"expiration":{"type":"daysFromSend","numberOfDays":30}},"notificationPolicy":{"sendingChannels":["mail"],"disableReminders":true}},"metadata":{"key1":"value1","key2":"value2"}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"3b2ea996-7b6f-40f7-98e9-e9b070d71366":{"description":"Ok","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"The message of the response","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"metadata":{"type":"object","additionalProperties":{"type":"string","maxLength":500,"pattern":"^[a-zA-Z0-9\\s\\-_.]+$","uniqueKey":"metadata.additionalProperties","typeLabel":"string"},"maxProperties":50,"description":"Optional metadata object with key-value pairs. Keys must be alphanumeric (including underscores) and up to 40 characters. Values must be alphanumeric and up to 500 characters. Maximum 50 key-value pairs allowed.","example":{"key1":"value1","key2":"value2"},"isRequired":true,"uniqueKey":"metadata","typeLabel":"object"},"results":{"type":"array","items":{"type":"object","properties":{"success":{"type":"boolean","description":"The success of the gift creation","isRequired":true,"uniqueKey":"results.items.[INDEX].success","typeLabel":"boolean"},"link":{"type":"string","description":"The link to the gift","isRequired":true,"uniqueKey":"results.items.[INDEX].link","typeLabel":"string"},"id":{"type":"string","description":"The gift id","isRequired":true,"uniqueKey":"results.items.[INDEX].id","typeLabel":"string"},"experienceId":{"type":"string","description":"The experience id","isRequired":true,"uniqueKey":"results.items.[INDEX].experienceId","typeLabel":"string"},"message":{"type":"string","description":"The error message","isRequired":true,"uniqueKey":"results.items.[INDEX].message","typeLabel":"string"},"errorCode":{"type":"string","description":"The error code","isRequired":true,"uniqueKey":"results.items.[INDEX].errorCode","typeLabel":"string"}},"required":["success","link","id","experienceId","message","errorCode"],"uniqueKey":"results.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"results","typeLabel":"object[]"}},"required":["message","metadata","results"],"additionalProperties":false,"description":"The response of the gift creation","example":{"message":"2 gifts out of 3 have been sent successfully","metadata":{"campaignName":"Employee Appreciation Q1 2025","totalRecipients":3,"batchId":"batch_20250609_001"},"results":[{"success":true,"link":"https://snappy.com/experience/K9mP3xL7dN","id":"G7nR4bD9mK","experienceId":"exp_2024_john_001"},{"success":true,"link":"https://snappy.com/experience/X2pQ8vB5jL","id":"H8sT6cF2nP","experienceId":"exp_2024_jane_002"},{"success":false,"message":"Gift creation failed","errorCode":40000}]},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"2 gifts out of 3 have been sent successfully","metadata":{"campaignName":"Employee Appreciation Q1 2025","totalRecipients":3,"batchId":"batch_20250609_001"},"results":[{"success":true,"link":"https://snappy.com/experience/K9mP3xL7dN","id":"G7nR4bD9mK","experienceId":"exp_2024_john_001"},{"success":true,"link":"https://snappy.com/experience/X2pQ8vB5jL","id":"H8sT6cF2nP","experienceId":"exp_2024_jane_002"},{"success":false,"message":"Gift creation failed","errorCode":40000}]}}},"exampleType":"generated"}},"exampleType":"generated"},"24570fc3-b8b4-4984-be45-181eb96ff84d":{"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":{"oneOf":[{"type":"number","description":"Internal error code, helps Snappy's technical team to troubleshoot if needed.","example":10000,"isRequired":true,"uniqueKey":"errorCode.oneOf.0","typeLabel":"number"},{"type":"string","description":"Internal error code, helps Snappy's technical team to troubleshoot if needed.","example":10000,"isRequired":true,"uniqueKey":"errorCode.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"errorCode","typeLabel":"number | 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":{"oneOf":[{"type":"number","description":"Internal error code, helps Snappy's technical team to troubleshoot if needed.","example":10000,"isRequired":true,"uniqueKey":"errors.items.[INDEX].errorCode.oneOf.0","typeLabel":"number"},{"type":"string","description":"Internal error code, helps Snappy's technical team to troubleshoot if needed.","example":10000,"isRequired":true,"uniqueKey":"errors.items.[INDEX].errorCode.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"errors.items.[INDEX].errorCode","typeLabel":"number | 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":"Standard API error response with optional client error details","example":{"status":400,"errorCode":400001,"message":"Bad Request"},"uniqueKey":"","typeLabel":"object"},"examples":{"invalid_URL_parameter_example":{"title":"invalid_URL_parameter_example","value":{"status":400,"errorCode":41000,"message":"Invalid URL parameter"}},"invalid_URL_parameter_value_example":{"title":"invalid_URL_parameter_value_example","value":{"status":400,"errorCode":42000,"message":"Invalid URL parameter value"}},"missing_mandatory_parameter_example":{"title":"missing_mandatory_parameter_example","value":{"status":400,"errorCode":43000,"message":"Missing mandatory parameter"}}},"exampleType":"examples"}},"exampleType":"examples"},"f2be669e-6cbd-4d03-bb95-390bb5f145db":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response with optional client error details","required":["status","errorCode","message"],"example":{"status":401,"errorCode":401001,"message":"Unauthorized"},"properties":{"status":{"type":"integer","description":"The HTTP status code.","example":400,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"errorCode":{"oneOf":[{"type":"number","description":"Internal error code, helps Snappy's technical team to troubleshoot if needed.","example":10000,"isRequired":true,"uniqueKey":"errorCode.oneOf.0","typeLabel":"number"},{"type":"string","description":"Internal error code, helps Snappy's technical team to troubleshoot if needed.","example":10000,"isRequired":true,"uniqueKey":"errorCode.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"errorCode","typeLabel":"number | 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":{"oneOf":[{"type":"number","description":"Internal error code, helps Snappy's technical team to troubleshoot if needed.","example":10000,"isRequired":true,"uniqueKey":"errors.items.[INDEX].errorCode.oneOf.0","typeLabel":"number"},{"type":"string","description":"Internal error code, helps Snappy's technical team to troubleshoot if needed.","example":10000,"isRequired":true,"uniqueKey":"errors.items.[INDEX].errorCode.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"errors.items.[INDEX].errorCode","typeLabel":"number | 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":401001,"message":"Unauthorized"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"d16c799c-7705-42dd-b522-2c14c8fb4c63":{"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"}},"3f3a4806-01e7-4db7-91c4-9613b37583b8":{"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":"Create gifts - Snappy API Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-03T13:54:34.404Z","gitLastModified":"2026-06-17T14:04:15.000Z","originalFileLocation":"modules/api/v2/gifts/create-gifts.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 create one or more gifts within a Campaign and initiate the Triggered Gifting flow. Snappy will notify recipients based on the Campaign\u0026#x27;s Notification Policy. ###### Required fields: - campaignId - the Campaign ID to send under - recipients - array of recipients, each requiring at minimum a firstname and an identifier to send to (email or phone). Include a unique key per recipient for duplicate detection. ###### Optional fields: - customization - Gift Customization overrides (giftProperties, notificationPolicy, recipientExperience). Overrides apply only to gifts created in this call. - metadata - optional key-value pairs (max 50 pairs, keys up to 40 chars, values up to 500 chars) - Request-Source header - source of the request (api_native, api_zapier, api_salesforce, api_ftp, api_make) ###### Behavior Notes: - Supports batch creation - multiple recipients in a single request. Each recipient generates its own Gift with its own link and key. - A successful request returns the Gift objects with an initial status of unopened and a unique claim link for each recipient. - Webhook events fired through the lifecycle: gift-status-changed (unopened → unwrapped → opened → claimed / expired), and gift-notification-initial-sent. - The top-level sendingMethod field is deprecated - use customization.notificationPolicy.sendingChannels instead. #### Permissions - Requires: gifts:create\">\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=\"Create gifts - Snappy API Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Use this endpoint to create one or more gifts within a Campaign and initiate the Triggered Gifting flow. Snappy will notify recipients based on the Campaign\u0026#x27;s Notification Policy. ###### Required fields: - campaignId - the Campaign ID to send under - recipients - array of recipients, each requiring at minimum a firstname and an identifier to send to (email or phone). Include a unique key per recipient for duplicate detection. ###### Optional fields: - customization - Gift Customization overrides (giftProperties, notificationPolicy, recipientExperience). Overrides apply only to gifts created in this call. - metadata - optional key-value pairs (max 50 pairs, keys up to 40 chars, values up to 500 chars) - Request-Source header - source of the request (api_native, api_zapier, api_salesforce, api_ftp, api_make) ###### Behavior Notes: - Supports batch creation - multiple recipients in a single request. Each recipient generates its own Gift with its own link and key. - A successful request returns the Gift objects with an initial status of unopened and a unique claim link for each recipient. - Webhook events fired through the lifecycle: gift-status-changed (unopened → unwrapped → opened → claimed / expired), and gift-notification-initial-sent. - The top-level sendingMethod field is deprecated - use customization.notificationPolicy.sendingChannels instead. #### Permissions - Requires: gifts:create\">\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/create-gifts\">\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=Create+gifts\u0026amp;description=Use+this+endpoint+to+create+one+or+more+gifts+within+a+Campaign+and+initiate+the+Triggered+Gifting+flow.+Snappy+will+notify+recipients+based+on+the+Campaign%27s+N\u0026amp;theme=9793b5d79242210c7d69f96c\u0026amp;signature=1666e44bf8603376138ee7cf40f060d142bd84476e29a411ec52397096121f03\">\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=\"Create gifts - Snappy API Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Use this endpoint to create one or more gifts within a Campaign and initiate the Triggered Gifting flow. Snappy will notify recipients based on the Campaign\u0026#x27;s Notification Policy. ###### Required fields: - campaignId - the Campaign ID to send under - recipients - array of recipients, each requiring at minimum a firstname and an identifier to send to (email or phone). Include a unique key per recipient for duplicate detection. ###### Optional fields: - customization - Gift Customization overrides (giftProperties, notificationPolicy, recipientExperience). Overrides apply only to gifts created in this call. - metadata - optional key-value pairs (max 50 pairs, keys up to 40 chars, values up to 500 chars) - Request-Source header - source of the request (api_native, api_zapier, api_salesforce, api_ftp, api_make) ###### Behavior Notes: - Supports batch creation - multiple recipients in a single request. Each recipient generates its own Gift with its own link and key. - A successful request returns the Gift objects with an initial status of unopened and a unique claim link for each recipient. - Webhook events fired through the lifecycle: gift-status-changed (unopened → unwrapped → opened → claimed / expired), and gift-notification-initial-sent. - The top-level sendingMethod field is deprecated - use customization.notificationPolicy.sendingChannels instead. #### Permissions - Requires: gifts:create\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://snappy-32aaf7de.mintlify.app/_mintlify/api/og/v2?division=Gifts\u0026amp;title=Create+gifts\u0026amp;description=Use+this+endpoint+to+create+one+or+more+gifts+within+a+Campaign+and+initiate+the+Triggered+Gifting+flow.+Snappy+will+notify+recipients+based+on+the+Campaign%27s+N\u0026amp;theme=9793b5d79242210c7d69f96c\u0026amp;signature=1666e44bf8603376138ee7cf40f060d142bd84476e29a411ec52397096121f03\">\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/create-gifts\">\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/create-gifts.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/create-gifts#webpage\",\"url\":\"https://docs.snappy.com/modules/api/v2/gifts/create-gifts\",\"name\":\"Create gifts\",\"description\":\"Use this endpoint to create one or more gifts within a Campaign and initiate the Triggered Gifting flow. Snappy will notify recipients based on the Campaign's Notification Policy. ###### Required fields: - campaignId - the Campaign ID to send under - recipients - array of recipients, each requiring at minimum a firstname and an identifier to send to (email or phone). Include a unique key per recipient for duplicate detection. ###### Optional fields: - customization - Gift Customization overrides (giftProperties, notificationPolicy, recipientExperience). Overrides apply only to gifts created in this call. - metadata - optional key-value pairs (max 50 pairs, keys up to 40 chars, values up to 500 chars) - Request-Source header - source of the request (api_native, api_zapier, api_salesforce, api_ftp, api_make) ###### Behavior Notes: - Supports batch creation - multiple recipients in a single request. Each recipient generates its own Gift with its own link and key. - A successful request returns the Gift objects with an initial status of unopened and a unique claim link for each recipient. - Webhook events fired through the lifecycle: gift-status-changed (unopened → unwrapped → opened → claimed / expired), and gift-notification-initial-sent. - The top-level sendingMethod field is deprecated - use customization.notificationPolicy.sendingChannels instead. #### Permissions - Requires: gifts:create\",\"dateModified\":\"2026-06-17T14:04:15.000Z\",\"isPartOf\":{\"@id\":\"https://docs.snappy.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.snappy.com/modules/api/v2/gifts/create-gifts#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.snappy.com/modules/api/v2/gifts/create-gifts#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\":\"Create gifts\",\"item\":\"https://docs.snappy.com/modules/api/v2/gifts/create-gifts\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.snappy.com/modules/api/v2/gifts/create-gifts#apireference\",\"headline\":\"Create gifts\",\"name\":\"Create gifts\",\"description\":\"Use this endpoint to create one or more gifts within a Campaign and initiate the Triggered Gifting flow. Snappy will notify recipients based on the Campaign's Notification Policy. ###### Required fields: - campaignId - the Campaign ID to send under - recipients - array of recipients, each requiring at minimum a firstname and an identifier to send to (email or phone). Include a unique key per recipient for duplicate detection. ###### Optional fields: - customization - Gift Customization overrides (giftProperties, notificationPolicy, recipientExperience). Overrides apply only to gifts created in this call. - metadata - optional key-value pairs (max 50 pairs, keys up to 40 chars, values up to 500 chars) - Request-Source header - source of the request (api_native, api_zapier, api_salesforce, api_ftp, api_make) ###### Behavior Notes: - Supports batch creation - multiple recipients in a single request. Each recipient generates its own Gift with its own link and key. - A successful request returns the Gift objects with an initial status of unopened and a unique claim link for each recipient. - Webhook events fired through the lifecycle: gift-status-changed (unopened → unwrapped → opened → claimed / expired), and gift-notification-initial-sent. - The top-level sendingMethod field is deprecated - use customization.notificationPolicy.sendingChannels instead. #### Permissions - Requires: gifts:create\",\"url\":\"https://docs.snappy.com/modules/api/v2/gifts/create-gifts\",\"mainEntityOfPage\":{\"@id\":\"https://docs.snappy.com/modules/api/v2/gifts/create-gifts#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","description":"Programmatically create, retrieve, update, and expire gifts. Magic-link claims, demo gifts, and webhook-triggered creation.","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","description":"Use this endpoint to search for and retrieve a list of gifts based on your specified criteria - campaign, status, sending channels, recipient, and more.\n\n###### Filtering options:\n- `campaignIds` - comma-separated list of Campaign IDs (min 1 item)\n- `keys` - comma-separated list of idempotency keys\n- `statuses` - comma-separated list of gift statuses (`unopened`, `opened`, `unwrapped`, `claimed`, `expired`)\n- `sendingChannels` - comma-separated list of sending channels (`mail`, `sms`, `link`, `code`, `slack`, `teams`)\n- `externalRecipientId` - filter by the recipient's external (your-system) ID\n- `experienceId` - filter by experience ID\n- `invoiceId` - filter by invoice ID\n- `createdBefore` / `createdAfter` - YYYY-MM-DD date bounds (exclusive)\n- `fields` - comma-separated field projection. Valid values: `id`, `status`, `budgetPlan`, `sendingChannels`, `tyn`, `expirationDate`, `createdAt`, `link`, `campaignId`, `metadata`, `full`\n- `expand` - comma-separated objects to include in the response. Valid values: `finalCost`, `deliveryDetails`, `estimatedCost`, `recipient`, `orders`, `customization`\n- `Request-Source` header - source of the request\n\n###### Pagination:\n- `skip` query parameter - number of records to skip (default `0`)\n- `limit` query parameter - max records per page (1-100, default `100`)\n\n###### Please note:\n- The default `fields` set returns `id`, `link`, and `status` only. Use `fields=full` for the complete Gift shape, or specify the fields you need.\n- Use `expand` to inline related objects like `recipient`, `orders`, and `finalCost` - by default these are not included.\n- The `senderId` and `senderEmail` parameters are **deprecated** - do not use them in new integrations.\n\n#### Permissions\n- Requires: `gifts:read:masked` or `gifts:read:unmasked`","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}","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","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":"Create gifts - 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"]}