Return the cards the signed-in shopper has saved for Subscribe & Save deliveries, newest first.
Each card shows its brand, last four digits and expiry; the card number and the processor’s references
are never returned. Removed and replaced cards are not listed.
Customer-self access. Works with a publishable key (safe from the
browser). Provide the shopper’s session token in the x-auth-token
header (or the store’s bring-your-own-auth assertion in x-external-auth);
it must resolve to the customer in the {id} path parameter, otherwise the
request returns 403. A subscription that belongs to another shopper reads
as 404.
Bring-your-own-auth assertion for stores that manage authentication in an external identity provider (Auth0, Clerk, Cognito, Firebase, NextAuth, SSO). Resolves the shopper whose saved cards are managed.
Format: <base64url(JSON)>.<base64url(HMAC-SHA256(JSON))> where the JSON is { "external_id": "...", "iat": <unix>, "exp": <unix> } and the HMAC is keyed on the store's hmac_secret. Claim lifetime capped at 300 seconds. Provide exactly one of x-auth-token, x-external-auth, or x-idp-token.
A raw token from the store's own identity provider (e.g. a Firebase ID token). Galactic Core forwards it to the store's configured Auth verifier, which validates it against the provider and returns the identity; resolves the shopper whose saved cards are managed.
Use this when the store wants Galactic Core to verify tokens on its behalf rather than signing an assertion itself. Verification is fail-closed: if the verifier rejects the token or is unreachable, the request is unauthenticated (401). Requires an Auth verifier to be configured for the store. Provide exactly one of x-auth-token, x-external-auth, or x-idp-token.
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"Galactic Core API Documentation","colors":{"primary":"#3b82f6","light":"#60a5fa","dark":"#3b82f6"},"logo":{"light":"https://mintcdn.com/tybritelabs/9cNSmgnBxs-QU_UC/branding/gc-long-blue.png?fit=max\u0026auto=format\u0026n=9cNSmgnBxs-QU_UC\u0026q=85\u0026s=88d64ea989973d874ed73437459487f7","dark":"https://mintcdn.com/tybritelabs/9cNSmgnBxs-QU_UC/branding/gc-long-white.png?fit=max\u0026auto=format\u0026n=9cNSmgnBxs-QU_UC\u0026q=85\u0026s=051cafe35073e2d41a7bfb963b3ad22b"},"favicon":"https://mintcdn.com/tybritelabs/9cNSmgnBxs-QU_UC/favicon.svg?fit=max\u0026auto=format\u0026n=9cNSmgnBxs-QU_UC\u0026q=85\u0026s=83f32264cd55e429e1a14f9d0ee78689","navbar":{"links":[{"href":"https://gc.tybritelabs.com/dashboard","label":"Dashboard"}],"primary":{"type":"button","label":"Get Started","href":"/quickstart"}},"footer":{"socials":{"github":"https://github.com/tybrite","twitter":"https://twitter.com/tybrite","linkedin":"https://linkedin.com/company/tybrite"}},"contextual":{"options":["copy","view","chatgpt","claude","cursor"],"display":"header"},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Dashboard","icon":"gauge","href":"https://gc.tybritelabs.com/dashboard"},{"anchor":"GitHub","icon":"github","href":"https://github.com/tybrite"},{"anchor":"Support","icon":"envelope","href":"mailto:support@tybrite.com"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"tybritelabs","hasAudioNarration":false,"actualSubdomain":"tybritelabs","customDomains":["docs.tybritelabs.com"],"gitSource":{"type":"github","owner":"tybrite","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae29374ccd05bb29c32195f","collectionId":"4098f26a-cfe4-4b4a-9faa-6739b8243d6f","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae29374ccd05bb29c32195f"},"entitlements":{},"buildId":"6ae294a0e37b7de26e467673","clientVersion":"0.0.4006","searchFilterCounts":[{"language":"default","tag":"API Reference","count":234},{"language":"default","tag":"Getting Started","count":37},{"language":"default","tag":"TypeScript SDK","count":36},{"language":"default","tag":"Agent","count":36},{"language":"default","tag":"Customers","count":20},{"language":"default","tag":"Authentication","count":13},{"language":"default","tag":"Cart \u0026 Wishlist","count":13},{"language":"default","tag":"Sandbox","count":13},{"language":"default","tag":"Marketplace","count":12},{"language":"default","tag":"B2B","count":12}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":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":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/customers/list-a-shoppers-saved-cards","slug":"/api-reference/customers/list-a-shoppers-saved-cards","pageMetadata":{"title":"List a shopper's saved cards","description":"Return the cards the signed-in shopper has saved for Subscribe \u0026 Save deliveries, newest first.\nEach card shows its brand, last four digits and expiry; the card number and the processor's references\nare never returned. Removed and replaced cards are not listed.\n\n**Customer-self access.** Works with a publishable key (safe from the\nbrowser). Provide the shopper's session token in the `x-auth-token`\nheader (or the store's bring-your-own-auth assertion in `x-external-auth`);\nit must resolve to the customer in the `{id}` path parameter, otherwise the\nrequest returns `403`. A subscription that belongs to another shopper reads\nas `404`.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/customers/{id}/payment-methods","href":"/api-reference/customers/list-a-shoppers-saved-cards","autogeneratedByOpenApi":true},"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 p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Return the cards the signed-in shopper has saved for Subscribe \u0026 Save deliveries, newest first.\\nEach card shows its brand, last four digits and expiry; the card number and the processor’s references\\nare never returned. Removed and replaced cards are not listed.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Customer-self access.\"\n }), \" Works with a publishable key (safe from the\\nbrowser). Provide the shopper’s session token in the \", _jsx(_components.code, {\n children: \"x-auth-token\"\n }), \"\\nheader (or the store’s bring-your-own-auth assertion in \", _jsx(_components.code, {\n children: \"x-external-auth\"\n }), \");\\nit must resolve to the customer in the \", _jsx(_components.code, {\n children: \"{id}\"\n }), \" path parameter, otherwise the\\nrequest returns \", _jsx(_components.code, {\n children: \"403\"\n }), \". A subscription that belongs to another shopper reads\\nas \", _jsx(_components.code, {\n children: \"404\"\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":"List a shopper's saved cards","description":"Return the cards the signed-in shopper has saved for Subscribe \u0026 Save deliveries, newest first.\nEach card shows its brand, last four digits and expiry; the card number and the processor's references\nare never returned. Removed and replaced cards are not listed.\n\n**Customer-self access.** Works with a publishable key (safe from the\nbrowser). Provide the shopper's session token in the `x-auth-token`\nheader (or the store's bring-your-own-auth assertion in `x-external-auth`);\nit must resolve to the customer in the `{id}` path parameter, otherwise the\nrequest returns `403`. A subscription that belongs to another shopper reads\nas `404`.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/customers/{id}/payment-methods","href":"/api-reference/customers/list-a-shoppers-saved-cards","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/tybritelabs/af1ac4e439492905/sync.js"],"openApiReferenceData":{"operation":{"operationId":"listShopperPaymentMethods","tags":["Customers"],"summary":"List a shopper's saved cards","description":"Return the cards the signed-in shopper has saved for Subscribe \u0026 Save deliveries, newest first.\nEach card shows its brand, last four digits and expiry; the card number and the processor's references\nare never returned. Removed and replaced cards are not listed.\n\n**Customer-self access.** Works with a publishable key (safe from the\nbrowser). Provide the shopper's session token in the `x-auth-token`\nheader (or the store's bring-your-own-auth assertion in `x-external-auth`);\nit must resolve to the customer in the `{id}` path parameter, otherwise the\nrequest returns `403`. A subscription that belongs to another shopper reads\nas `404`.\n","security":["1319ec4a-c954-484e-ab69-d349e4e1faa0"],"parameters":["c92cb941-c4e3-4ff9-8c52-ae906c3cce39","f77e18fa-7511-4c9b-8b00-b2540e03d867","ecfeb1bf-4b48-471f-bbfb-842478d70414","6ce6a0a6-7048-4c98-ab9c-aa8f5016575a"],"responses":{"200":"4431e852-72f8-4e18-8025-c5840c4ff69d","401":"e716a0cb-4f9c-491b-bf5d-ea2d0254bf85","403":"553fcfb6-0772-4d6e-8c2b-3079bf8e52ca","429":"8b925bea-e593-4b5c-9b92-8da9bbc9a37a","500":"533608af-c9cc-47f1-b788-77aaa0657736"},"method":"get","type":"path","servers":["3fc3189e-b8c3-4e23-a374-4038943c6525"],"path":"/v1/customers/{id}/payment-methods","baseUrlOptions":["https://api.tybritelabs.com"],"title":"List a shopper's saved cards","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"c92cb941-c4e3-4ff9-8c52-ae906c3cce39":{"name":"id","in":"path","required":true,"description":"The shopper's customer id.","schema":{"type":"string","format":"uuid","isRequired":true,"description":"The shopper's customer id.","uniqueKey":"","typeLabel":"string\u003cuuid>"}},"f77e18fa-7511-4c9b-8b00-b2540e03d867":{"name":"x-auth-token","in":"header","required":true,"description":"The signed-in shopper's session token, obtained when the shopper logs in. Must resolve to the customer in the `{id}` path parameter.","schema":{"type":"string","isRequired":true,"description":"The signed-in shopper's session token, obtained when the shopper logs in. Must resolve to the customer in the `{id}` path parameter.","uniqueKey":"","typeLabel":"string"}},"ecfeb1bf-4b48-471f-bbfb-842478d70414":{"name":"x-external-auth","in":"header","required":false,"description":"Bring-your-own-auth assertion for stores that manage authentication in an external identity provider (Auth0, Clerk, Cognito, Firebase, NextAuth, SSO). Resolves the shopper whose saved cards are managed.\n\nFormat: `\u003cbase64url(JSON)>.\u003cbase64url(HMAC-SHA256(JSON))>` where the JSON is `{ \"external_id\": \"...\", \"iat\": \u003cunix>, \"exp\": \u003cunix> }` and the HMAC is keyed on the store's `hmac_secret`. Claim lifetime capped at 300 seconds. Provide exactly one of `x-auth-token`, `x-external-auth`, or `x-idp-token`.\n","schema":{"type":"string","isRequired":false,"description":"Bring-your-own-auth assertion for stores that manage authentication in an external identity provider (Auth0, Clerk, Cognito, Firebase, NextAuth, SSO). Resolves the shopper whose saved cards are managed.\n\nFormat: `\u003cbase64url(JSON)>.\u003cbase64url(HMAC-SHA256(JSON))>` where the JSON is `{ \"external_id\": \"...\", \"iat\": \u003cunix>, \"exp\": \u003cunix> }` and the HMAC is keyed on the store's `hmac_secret`. Claim lifetime capped at 300 seconds. Provide exactly one of `x-auth-token`, `x-external-auth`, or `x-idp-token`.\n","uniqueKey":"","typeLabel":"string"}},"6ce6a0a6-7048-4c98-ab9c-aa8f5016575a":{"name":"x-idp-token","in":"header","required":false,"description":"A raw token from the store's own identity provider (e.g. a Firebase ID token). Galactic Core forwards it to the store's configured Auth verifier, which validates it against the provider and returns the identity; resolves the shopper whose saved cards are managed.\n\nUse this when the store wants Galactic Core to verify tokens on its behalf rather than signing an assertion itself. Verification is fail-closed: if the verifier rejects the token or is unreachable, the request is unauthenticated (`401`). Requires an Auth verifier to be configured for the store. Provide exactly one of `x-auth-token`, `x-external-auth`, or `x-idp-token`.\n","schema":{"type":"string","isRequired":false,"description":"A raw token from the store's own identity provider (e.g. a Firebase ID token). Galactic Core forwards it to the store's configured Auth verifier, which validates it against the provider and returns the identity; resolves the shopper whose saved cards are managed.\n\nUse this when the store wants Galactic Core to verify tokens on its behalf rather than signing an assertion itself. Verification is fail-closed: if the verifier rejects the token or is unreachable, the request is unauthenticated (`401`). Requires an Auth verifier to be configured for the store. Provide exactly one of `x-auth-token`, `x-external-auth`, or `x-idp-token`.\n","uniqueKey":"","typeLabel":"string"}}},"responses":{"4431e852-72f8-4e18-8025-c5840c4ff69d":{"description":"The shopper's saved cards.","headers":{"Tybrite-Environment":{"description":"Confirms which environment your API key resolved to. Use this to verify that test keys\nare hitting sandbox data and live keys are hitting production data.\n\n- `production` — requests are scoped to live data; real orders, customers, and payments\n- `sandbox` — requests are scoped to isolated test data; no real money is moved\n\nPresent on every authenticated response, including error responses.\n","schema":{"type":"string","enum":["production","sandbox"]},"example":"sandbox"}},"content":{"application/json":{"schema":{"type":"object","required":["payment_methods"],"properties":{"payment_methods":{"type":"array","items":{"type":"object","description":"A card a shopper saved for Subscribe \u0026 Save deliveries. Only what is shown to the shopper is\nreturned; the card number and the processor's references are never exposed.\n","required":["id","status"],"properties":{"id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"payment_methods.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"status":{"type":"string","enum":["active"],"description":"Only active cards are listed.","isRequired":true,"uniqueKey":"payment_methods.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"processor":{"type":"string","description":"The payment processor that holds the card.","example":"stripe","uniqueKey":"payment_methods.items.[INDEX].processor","typeLabel":"string"},"brand":{"oneOf":[{"type":"string","example":"visa","uniqueKey":"payment_methods.items.[INDEX].brand.oneOf.0","typeLabel":"string"},{"type":"null","example":"visa","uniqueKey":"payment_methods.items.[INDEX].brand.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_methods.items.[INDEX].brand","typeLabel":"string | null"},"last4":{"oneOf":[{"type":"string","example":"4242","uniqueKey":"payment_methods.items.[INDEX].last4.oneOf.0","typeLabel":"string"},{"type":"null","example":"4242","uniqueKey":"payment_methods.items.[INDEX].last4.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_methods.items.[INDEX].last4","typeLabel":"string | null"},"exp_month":{"oneOf":[{"type":"integer","example":12,"uniqueKey":"payment_methods.items.[INDEX].exp_month.oneOf.0","typeLabel":"integer"},{"type":"null","example":12,"uniqueKey":"payment_methods.items.[INDEX].exp_month.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_methods.items.[INDEX].exp_month","typeLabel":"integer | null"},"exp_year":{"oneOf":[{"type":"integer","example":2028,"uniqueKey":"payment_methods.items.[INDEX].exp_year.oneOf.0","typeLabel":"integer"},{"type":"null","example":2028,"uniqueKey":"payment_methods.items.[INDEX].exp_year.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_methods.items.[INDEX].exp_year","typeLabel":"integer | null"},"created_at":{"type":"string","format":"date-time","uniqueKey":"payment_methods.items.[INDEX].created_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"payment_methods.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"payment_methods","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"payment_methods":[{"id":"5a0e2d7c-91b4-4c3a-8e6f-1d2b3c4a5e60","processor":"stripe","brand":"visa","last4":"4242","exp_month":12,"exp_year":2028,"status":"active","created_at":"2026-08-28T09:31:12+00:00"}]},"examples":{"Example":{"title":"Example","value":{"payment_methods":[{"id":"5a0e2d7c-91b4-4c3a-8e6f-1d2b3c4a5e60","processor":"stripe","brand":"visa","last4":"4242","exp_month":12,"exp_year":2028,"status":"active","created_at":"2026-08-28T09:31:12+00:00"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"e716a0cb-4f9c-491b-bf5d-ea2d0254bf85":{"description":"Authentication failed. `unauthorized` means the API key is missing or invalid, or the `x-auth-token` header is absent. `invalid_token` means the `x-auth-token` is not a valid sign-in token for this store and environment: expired, revoked, issued by another store, or malformed. A storefront refreshes the session once with `POST /v1/auth/refresh` and treats the shopper as signed out if that fails.","headers":{"Tybrite-Environment":{"description":"Confirms which environment your API key resolved to. Use this to verify that test keys\nare hitting sandbox data and live keys are hitting production data.\n\n- `production` — requests are scoped to live data; real orders, customers, and payments\n- `sandbox` — requests are scoped to isolated test data; no real money is moved\n\nPresent on every authenticated response, including error responses.\n","schema":{"type":"string","enum":["production","sandbox"]},"example":"sandbox"}},"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_request","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"Missing required field","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"oneOf":[{"type":"string","description":"Further detail about the error: a sentence, or for some errors an object (for example the `missing` list of `billing_location_required` or the `item_index` and `field_name` of `line_field_required`).","example":"The 'email' field is required","uniqueKey":"error.details.oneOf.0","typeLabel":"string"},{"type":"object","description":"Further detail about the error: a sentence, or for some errors an object (for example the `missing` list of `billing_location_required` or the `item_index` and `field_name` of `line_field_required`).","example":"The 'email' field is required","additionalProperties":true,"uniqueKey":"error.details.oneOf.1","typeLabel":"object"}],"uniqueKey":"error.details","typeLabel":"string | object"},"hint":{"type":"string","description":"Additional guidance on how to resolve the error.","uniqueKey":"error.hint","typeLabel":"string"},"available_stock":{"type":"integer","description":"Current stock level (present on insufficient_stock errors).","uniqueKey":"error.available_stock","typeLabel":"integer"},"current_cart_quantity":{"type":"integer","description":"Quantity already in cart (present on insufficient_stock errors).","uniqueKey":"error.current_cart_quantity","typeLabel":"integer"},"limit":{"type":"integer","description":"Rate limit ceiling (present on rate_limited / quota_exceeded errors).","uniqueKey":"error.limit","typeLabel":"integer"},"remaining":{"type":"integer","description":"Requests remaining in the current window (present on rate_limited / quota_exceeded errors).","uniqueKey":"error.remaining","typeLabel":"integer"},"reset":{"type":"integer","description":"Unix timestamp when the rate limit / quota window resets (present on rate_limited / quota_exceeded errors).","uniqueKey":"error.reset","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"invalid_token":{"title":"invalid_token","value":{"error":{"code":"invalid_token","message":"Invalid or expired customer token","hint":"Refresh the token via POST /v1/auth/refresh once; if that fails, treat the shopper as signed out and re-authenticate."}}},"unauthorized":{"title":"unauthorized","value":{"error":{"code":"unauthorized","message":"Missing or invalid Authorization header"}}}},"exampleType":"examples"}},"exampleType":"examples"},"553fcfb6-0772-4d6e-8c2b-3079bf8e52ca":{"description":"Insufficient permissions - operation requires secret key","headers":{"Tybrite-Environment":{"description":"Confirms which environment your API key resolved to. Use this to verify that test keys\nare hitting sandbox data and live keys are hitting production data.\n\n- `production` — requests are scoped to live data; real orders, customers, and payments\n- `sandbox` — requests are scoped to isolated test data; no real money is moved\n\nPresent on every authenticated response, including error responses.\n","schema":{"type":"string","enum":["production","sandbox"]},"example":"sandbox"}},"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_request","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"Missing required field","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"oneOf":[{"type":"string","description":"Further detail about the error: a sentence, or for some errors an object (for example the `missing` list of `billing_location_required` or the `item_index` and `field_name` of `line_field_required`).","example":"The 'email' field is required","uniqueKey":"error.details.oneOf.0","typeLabel":"string"},{"type":"object","description":"Further detail about the error: a sentence, or for some errors an object (for example the `missing` list of `billing_location_required` or the `item_index` and `field_name` of `line_field_required`).","example":"The 'email' field is required","additionalProperties":true,"uniqueKey":"error.details.oneOf.1","typeLabel":"object"}],"uniqueKey":"error.details","typeLabel":"string | object"},"hint":{"type":"string","description":"Additional guidance on how to resolve the error.","uniqueKey":"error.hint","typeLabel":"string"},"available_stock":{"type":"integer","description":"Current stock level (present on insufficient_stock errors).","uniqueKey":"error.available_stock","typeLabel":"integer"},"current_cart_quantity":{"type":"integer","description":"Quantity already in cart (present on insufficient_stock errors).","uniqueKey":"error.current_cart_quantity","typeLabel":"integer"},"limit":{"type":"integer","description":"Rate limit ceiling (present on rate_limited / quota_exceeded errors).","uniqueKey":"error.limit","typeLabel":"integer"},"remaining":{"type":"integer","description":"Requests remaining in the current window (present on rate_limited / quota_exceeded errors).","uniqueKey":"error.remaining","typeLabel":"integer"},"reset":{"type":"integer","description":"Unix timestamp when the rate limit / quota window resets (present on rate_limited / quota_exceeded errors).","uniqueKey":"error.reset","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"forbidden","message":"This operation requires a secret key. Publishable keys cover catalogue reads and the actions a shopper takes for themselves."}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"forbidden","message":"This operation requires a secret key. Publishable keys cover catalogue reads and the actions a shopper takes for themselves."}}}},"exampleType":"examples"}},"exampleType":"examples"},"8b925bea-e593-4b5c-9b92-8da9bbc9a37a":{"description":"Too many requests. Two distinct `429` codes: `rate_limited` (an abuse throttle — too many requests too fast; carries an `X-RateLimit-Scope: abuse` header and is NOT counted against your monthly quota) and `quota_exceeded` (your plan's monthly request allowance is reached).","headers":{"Tybrite-Environment":{"description":"Confirms which environment your API key resolved to. Use this to verify that test keys\nare hitting sandbox data and live keys are hitting production data.\n\n- `production` — requests are scoped to live data; real orders, customers, and payments\n- `sandbox` — requests are scoped to isolated test data; no real money is moved\n\nPresent on every authenticated response, including error responses.\n","schema":{"type":"string","enum":["production","sandbox"]},"example":"sandbox"},"Retry-After":{"description":"Seconds until the limit that refused the request resets. Sent with `rate_limited`.","schema":{"type":"integer"},"example":540}},"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_request","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"Missing required field","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"oneOf":[{"type":"string","description":"Further detail about the error: a sentence, or for some errors an object (for example the `missing` list of `billing_location_required` or the `item_index` and `field_name` of `line_field_required`).","example":"The 'email' field is required","uniqueKey":"error.details.oneOf.0","typeLabel":"string"},{"type":"object","description":"Further detail about the error: a sentence, or for some errors an object (for example the `missing` list of `billing_location_required` or the `item_index` and `field_name` of `line_field_required`).","example":"The 'email' field is required","additionalProperties":true,"uniqueKey":"error.details.oneOf.1","typeLabel":"object"}],"uniqueKey":"error.details","typeLabel":"string | object"},"hint":{"type":"string","description":"Additional guidance on how to resolve the error.","uniqueKey":"error.hint","typeLabel":"string"},"available_stock":{"type":"integer","description":"Current stock level (present on insufficient_stock errors).","uniqueKey":"error.available_stock","typeLabel":"integer"},"current_cart_quantity":{"type":"integer","description":"Quantity already in cart (present on insufficient_stock errors).","uniqueKey":"error.current_cart_quantity","typeLabel":"integer"},"limit":{"type":"integer","description":"Rate limit ceiling (present on rate_limited / quota_exceeded errors).","uniqueKey":"error.limit","typeLabel":"integer"},"remaining":{"type":"integer","description":"Requests remaining in the current window (present on rate_limited / quota_exceeded errors).","uniqueKey":"error.remaining","typeLabel":"integer"},"reset":{"type":"integer","description":"Unix timestamp when the rate limit / quota window resets (present on rate_limited / quota_exceeded errors).","uniqueKey":"error.reset","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"rate_limited","message":"Too many requests for this API key. Please slow down and try again shortly.","remaining":0,"reset":1706198400}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"rate_limited","message":"Too many requests for this API key. Please slow down and try again shortly.","remaining":0,"reset":1706198400}}}},"exampleType":"examples"}},"exampleType":"examples"},"533608af-c9cc-47f1-b788-77aaa0657736":{"description":"Internal server error","headers":{"Tybrite-Environment":{"description":"Confirms which environment your API key resolved to. Use this to verify that test keys\nare hitting sandbox data and live keys are hitting production data.\n\n- `production` — requests are scoped to live data; real orders, customers, and payments\n- `sandbox` — requests are scoped to isolated test data; no real money is moved\n\nPresent on every authenticated response, including error responses.\n","schema":{"type":"string","enum":["production","sandbox"]},"example":"sandbox"}},"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_request","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"Missing required field","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"oneOf":[{"type":"string","description":"Further detail about the error: a sentence, or for some errors an object (for example the `missing` list of `billing_location_required` or the `item_index` and `field_name` of `line_field_required`).","example":"The 'email' field is required","uniqueKey":"error.details.oneOf.0","typeLabel":"string"},{"type":"object","description":"Further detail about the error: a sentence, or for some errors an object (for example the `missing` list of `billing_location_required` or the `item_index` and `field_name` of `line_field_required`).","example":"The 'email' field is required","additionalProperties":true,"uniqueKey":"error.details.oneOf.1","typeLabel":"object"}],"uniqueKey":"error.details","typeLabel":"string | object"},"hint":{"type":"string","description":"Additional guidance on how to resolve the error.","uniqueKey":"error.hint","typeLabel":"string"},"available_stock":{"type":"integer","description":"Current stock level (present on insufficient_stock errors).","uniqueKey":"error.available_stock","typeLabel":"integer"},"current_cart_quantity":{"type":"integer","description":"Quantity already in cart (present on insufficient_stock errors).","uniqueKey":"error.current_cart_quantity","typeLabel":"integer"},"limit":{"type":"integer","description":"Rate limit ceiling (present on rate_limited / quota_exceeded errors).","uniqueKey":"error.limit","typeLabel":"integer"},"remaining":{"type":"integer","description":"Requests remaining in the current window (present on rate_limited / quota_exceeded errors).","uniqueKey":"error.remaining","typeLabel":"integer"},"reset":{"type":"integer","description":"Unix timestamp when the rate limit / quota window resets (present on rate_limited / quota_exceeded errors).","uniqueKey":"error.reset","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"server_error","message":"An unexpected error occurred"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"server_error","message":"An unexpected error occurred"}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"1319ec4a-c954-484e-ab69-d349e4e1faa0":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API Key","description":"**API Key Authentication**\n \nUse your API key in the Authorization header:\n```\nAuthorization: Bearer tybrite_sk_live_YOUR_KEY\n```\n \n**Key Types:**\n \n**Secret Keys (Server-Side Only):**\n- Format: `tybrite_sk_live_*` (production) or `tybrite_sk_test_*` (sandbox)\n- Full read/write access to all endpoints\n- ⚠️ NEVER expose in client-side code or public repositories\n- Required for: every write a shopper does not make for themselves, authentication, payment verification, AI recommendations\n \n**Publishable Keys (Client-Safe):**\n- Format: `tybrite_pk_live_*` (production) or `tybrite_pk_test_*` (sandbox)\n- Catalogue reads, plus the actions a shopper takes for themselves\n- ✅ Safe for client-side JavaScript, mobile apps, and public code\n- Allowed for: browsing products, search, CMS content, pricing queries, cart and wishlist,\n reviews, storefront events, and the Agent API's quotes, cart drafts and checkout intents\n \n**Endpoint-Specific Requirements:**\n- **Authentication endpoints** (`/v1/auth/*`): Secret key required\n- **Payment verification** (`POST /v1/payments/verify`): Secret key required\n- **AI Recommendations** (`POST /v1/recommendations`): Secret key required\n- **Semantic Search** (`POST /v1/search`): Both key types allowed (read-only operation)\n- **Shopper actions** (cart, wishlist, reviews, storefront events, Agent API quotes, cart drafts and checkout intents): Both key types allowed\n- **All other write operations**: Secret key required\n- **All read operations**: Both key types allowed\n \nUsing a publishable key for restricted operations returns 403 Forbidden.\n","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"3fc3189e-b8c3-4e23-a374-4038943c6525":{"url":"https://api.tybritelabs.com","description":"Production API"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"API Key","description":"**API Key Authentication**\n \nUse your API key in the Authorization header:\n```\nAuthorization: Bearer tybrite_sk_live_YOUR_KEY\n```\n \n**Key Types:**\n \n**Secret Keys (Server-Side Only):**\n- Format: `tybrite_sk_live_*` (production) or `tybrite_sk_test_*` (sandbox)\n- Full read/write access to all endpoints\n- ⚠️ NEVER expose in client-side code or public repositories\n- Required for: every write a shopper does not make for themselves, authentication, payment verification, AI recommendations\n \n**Publishable Keys (Client-Safe):**\n- Format: `tybrite_pk_live_*` (production) or `tybrite_pk_test_*` (sandbox)\n- Catalogue reads, plus the actions a shopper takes for themselves\n- ✅ Safe for client-side JavaScript, mobile apps, and public code\n- Allowed for: browsing products, search, CMS content, pricing queries, cart and wishlist,\n reviews, storefront events, and the Agent API's quotes, cart drafts and checkout intents\n \n**Endpoint-Specific Requirements:**\n- **Authentication endpoints** (`/v1/auth/*`): Secret key required\n- **Payment verification** (`POST /v1/payments/verify`): Secret key required\n- **AI Recommendations** (`POST /v1/recommendations`): Secret key required\n- **Semantic Search** (`POST /v1/search`): Both key types allowed (read-only operation)\n- **Shopper actions** (cart, wishlist, reviews, storefront events, Agent API quotes, cart drafts and checkout intents): Both key types allowed\n- **All other write operations**: Secret key required\n- **All read operations**: Both key types allowed\n \nUsing a publishable key for restricted operations returns 403 Forbidden.\n","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"**API Key Authentication**\n \nUse your API key in the Authorization header:\n```\nAuthorization: Bearer tybrite_sk_live_YOUR_KEY\n```\n \n**Key Types:**\n \n**Secret Keys (Server-Side Only):**\n- Format: `tybrite_sk_live_*` (production) or `tybrite_sk_test_*` (sandbox)\n- Full read/write access to all endpoints\n- ⚠️ NEVER expose in client-side code or public repositories\n- Required for: every write a shopper does not make for themselves, authentication, payment verification, AI recommendations\n \n**Publishable Keys (Client-Safe):**\n- Format: `tybrite_pk_live_*` (production) or `tybrite_pk_test_*` (sandbox)\n- Catalogue reads, plus the actions a shopper takes for themselves\n- ✅ Safe for client-side JavaScript, mobile apps, and public code\n- Allowed for: browsing products, search, CMS content, pricing queries, cart and wishlist,\n reviews, storefront events, and the Agent API's quotes, cart drafts and checkout intents\n \n**Endpoint-Specific Requirements:**\n- **Authentication endpoints** (`/v1/auth/*`): Secret key required\n- **Payment verification** (`POST /v1/payments/verify`): Secret key required\n- **AI Recommendations** (`POST /v1/recommendations`): Secret key required\n- **Semantic Search** (`POST /v1/search`): Both key types allowed (read-only operation)\n- **Shopper actions** (cart, wishlist, reviews, storefront events, Agent API quotes, cart drafts and checkout intents): Both key types allowed\n- **All other write operations**: Secret key required\n- **All read operations**: Both key types allowed\n \nUsing a publishable key for restricted operations returns 403 Forbidden.\n","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"openapi.yaml"},"subdomain":"tybritelabs","siteName":"Galactic Core API Documentation","title":"List a shopper's saved cards - Galactic Core API Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-29T00:30:06.066Z","originalFileLocation":"api-reference/customers/list-a-shoppers-saved-cards.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=\"Return the cards the signed-in shopper has saved for Subscribe \u0026amp; Save deliveries, newest first. Each card shows its brand, last four digits and expiry; the card number and the processor\u0026#x27;s references are never returned. Removed and replaced cards are not listed. Customer-self access. Works with a publishable key (safe from the browser). Provide the shopper\u0026#x27;s session token in the x-auth-token header (or the store\u0026#x27;s bring-your-own-auth assertion in x-external-auth); it must resolve to the customer in the {id} path parameter, otherwise the request returns 403. A subscription that belongs to another shopper reads as 404.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Galactic Core API Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/tybritelabs/d0xYWWdjx3Q9ZfW_/_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/tybritelabs/d0xYWWdjx3Q9ZfW_/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/tybritelabs/d0xYWWdjx3Q9ZfW_/_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/tybritelabs/d0xYWWdjx3Q9ZfW_/_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/tybritelabs/d0xYWWdjx3Q9ZfW_/_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/tybritelabs/d0xYWWdjx3Q9ZfW_/_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/tybritelabs/d0xYWWdjx3Q9ZfW_/_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/tybritelabs/d0xYWWdjx3Q9ZfW_/_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/tybritelabs/d0xYWWdjx3Q9ZfW_/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"List a shopper\u0026#x27;s saved cards - Galactic Core API Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Return the cards the signed-in shopper has saved for Subscribe \u0026amp; Save deliveries, newest first. Each card shows its brand, last four digits and expiry; the card number and the processor\u0026#x27;s references are never returned. Removed and replaced cards are not listed. Customer-self access. Works with a publishable key (safe from the browser). Provide the shopper\u0026#x27;s session token in the x-auth-token header (or the store\u0026#x27;s bring-your-own-auth assertion in x-external-auth); it must resolve to the customer in the {id} path parameter, otherwise the request returns 403. A subscription that belongs to another shopper reads as 404.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Galactic Core API Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.tybritelabs.com/api-reference/customers/list-a-shoppers-saved-cards\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://tybritelabs.mintlify.app/_mintlify/api/og/v2?division=Customers\u0026amp;title=List+a+shopper%27s+saved+cards\u0026amp;description=Return+the+cards+the+signed-in+shopper+has+saved+for+Subscribe+%26+Save+deliveries%2C+newest+first.%0AEach+card+shows+its+brand%2C+last+four+digits+and+expiry%3B+the+card\u0026amp;theme=b0c5a7325a83e0755b69afc3\u0026amp;signature=3ba587c6dd8f439e318b5b1762f6f182a412817421286d1ccb98f1cda8972913\">\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=\"List a shopper\u0026#x27;s saved cards - Galactic Core API Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Return the cards the signed-in shopper has saved for Subscribe \u0026amp; Save deliveries, newest first. Each card shows its brand, last four digits and expiry; the card number and the processor\u0026#x27;s references are never returned. Removed and replaced cards are not listed. Customer-self access. Works with a publishable key (safe from the browser). Provide the shopper\u0026#x27;s session token in the x-auth-token header (or the store\u0026#x27;s bring-your-own-auth assertion in x-external-auth); it must resolve to the customer in the {id} path parameter, otherwise the request returns 403. A subscription that belongs to another shopper reads as 404.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://tybritelabs.mintlify.app/_mintlify/api/og/v2?division=Customers\u0026amp;title=List+a+shopper%27s+saved+cards\u0026amp;description=Return+the+cards+the+signed-in+shopper+has+saved+for+Subscribe+%26+Save+deliveries%2C+newest+first.%0AEach+card+shows+its+brand%2C+last+four+digits+and+expiry%3B+the+card\u0026amp;theme=b0c5a7325a83e0755b69afc3\u0026amp;signature=3ba587c6dd8f439e318b5b1762f6f182a412817421286d1ccb98f1cda8972913\">\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/tybritelabs/d0xYWWdjx3Q9ZfW_/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Galactic Core API Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3b82f6\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.tybritelabs.com/api-reference/customers/list-a-shoppers-saved-cards\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/customers/list-a-shoppers-saved-cards.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.tybritelabs.com/#organization\",\"name\":\"Galactic Core API Documentation\",\"url\":\"https://docs.tybritelabs.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/tybritelabs/9cNSmgnBxs-QU_UC/branding/gc-long-blue.png?fit=max\u0026auto=format\u0026n=9cNSmgnBxs-QU_UC\u0026q=85\u0026s=88d64ea989973d874ed73437459487f7\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.tybritelabs.com#website\",\"name\":\"Galactic Core API Documentation\",\"url\":\"https://docs.tybritelabs.com\",\"publisher\":{\"@id\":\"https://docs.tybritelabs.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.tybritelabs.com/api-reference/customers/list-a-shoppers-saved-cards#webpage\",\"url\":\"https://docs.tybritelabs.com/api-reference/customers/list-a-shoppers-saved-cards\",\"name\":\"List a shopper's saved cards\",\"description\":\"Return the cards the signed-in shopper has saved for Subscribe \u0026 Save deliveries, newest first. Each card shows its brand, last four digits and expiry; the card number and the processor's references are never returned. Removed and replaced cards are not listed. Customer-self access. Works with a publishable key (safe from the browser). Provide the shopper's session token in the x-auth-token header (or the store's bring-your-own-auth assertion in x-external-auth); it must resolve to the customer in the {id} path parameter, otherwise the request returns 403. A subscription that belongs to another shopper reads as 404.\",\"dateModified\":\"2026-10-29T00:30:06.066Z\",\"isPartOf\":{\"@id\":\"https://docs.tybritelabs.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.tybritelabs.com/api-reference/customers/list-a-shoppers-saved-cards#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.tybritelabs.com/api-reference/customers/list-a-shoppers-saved-cards#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Customers\",\"item\":\"https://docs.tybritelabs.com/api-reference/customers/create-customer\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"List a shopper's saved cards\",\"item\":\"https://docs.tybritelabs.com/api-reference/customers/list-a-shoppers-saved-cards\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.tybritelabs.com/api-reference/customers/list-a-shoppers-saved-cards#apireference\",\"headline\":\"List a shopper's saved cards\",\"name\":\"List a shopper's saved cards\",\"description\":\"Return the cards the signed-in shopper has saved for Subscribe \u0026 Save deliveries, newest first. Each card shows its brand, last four digits and expiry; the card number and the processor's references are never returned. Removed and replaced cards are not listed. Customer-self access. Works with a publishable key (safe from the browser). Provide the shopper's session token in the x-auth-token header (or the store's bring-your-own-auth assertion in x-external-auth); it must resolve to the customer in the {id} path parameter, otherwise the request returns 403. A subscription that belongs to another shopper reads as 404.\",\"url\":\"https://docs.tybritelabs.com/api-reference/customers/list-a-shoppers-saved-cards\",\"mainEntityOfPage\":{\"@id\":\"https://docs.tybritelabs.com/api-reference/customers/list-a-shoppers-saved-cards#webpage\"},\"dateModified\":\"2026-10-29T00:30:06.066Z\",\"publisher\":{\"@id\":\"https://docs.tybritelabs.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.tybritelabs.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Galactic Core API Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Galactic Core API Documentation","nav":{"global":{"anchors":[{"anchor":"Dashboard","icon":"gauge","href":"https://gc.tybritelabs.com/dashboard"},{"anchor":"GitHub","icon":"github","href":"https://github.com/tybrite"},{"anchor":"Support","icon":"envelope","href":"mailto:support@tybrite.com"}]},"tabs":[{"tab":"Getting Started","pages":[{"title":"Getting Started","href":""}]},{"tab":"API Reference","groups":[{"group":"Reference","pages":[{"title":"Introduction","href":"/api-reference/introduction"}]},{"group":"System","pages":[{"title":"API information","deprecated":null,"version":null,"openapi":"/openapi.yaml get /","href":"/api-reference/system/api-information"},{"title":"Health check","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/health","href":"/api-reference/system/health-check"},{"title":"Get comprehensive store information","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/store/info","href":"/api-reference/system/get-comprehensive-store-information"}]},{"group":"Store","pages":[{"title":"Get the store profile","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/store/profile","href":"/api-reference/store/get-the-store-profile"},{"title":"List published policies","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/store/policies","href":"/api-reference/store/list-published-policies"},{"title":"Get a published policy","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/store/policies/{slug}","href":"/api-reference/store/get-a-published-policy"}]},{"group":"Products","pages":[{"title":"List products with filtering and pagination","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/products","href":"/api-reference/products/list-products-with-filtering-and-pagination"},{"title":"List brands","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/brands","href":"/api-reference/products/list-brands"},{"title":"List the values a product list can be filtered by","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/products/facets","href":"/api-reference/products/list-the-values-a-product-list-can-be-filtered-by"},{"title":"Get product by ID or variant ID","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/products/{id}","href":"/api-reference/products/get-product-by-id-or-variant-id"},{"title":"Get product by SEO-friendly slug","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/products/by-slug/{slug}","href":"/api-reference/products/get-product-by-seo-friendly-slug"},{"title":"Get a variant's specifications","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/products/{id}/specifications","href":"/api-reference/products/get-a-variants-specifications"},{"title":"Get a product's custom fields","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/products/{id}/custom-fields","href":"/api-reference/products/get-a-products-custom-fields"},{"title":"List product specifications","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/product-specifications","href":"/api-reference/products/list-product-specifications"},{"title":"List product collections","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/product-collections","href":"/api-reference/products/list-product-collections"},{"title":"Get product collection by ID","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/product-collections/{id}","href":"/api-reference/products/get-product-collection-by-id"},{"title":"Get items in a product collection","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/product-collections/{id}/items","href":"/api-reference/products/get-items-in-a-product-collection"}]},{"group":"Taxonomy","pages":[{"title":"List categories","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/categories","href":"/api-reference/taxonomy/list-categories"},{"title":"Get category","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/categories/{id}","href":"/api-reference/taxonomy/get-category"},{"title":"List subcategories","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/subcategories","href":"/api-reference/taxonomy/list-subcategories"},{"title":"Get subcategory by ID","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/subcategories/{id}","href":"/api-reference/taxonomy/get-subcategory-by-id"}]},{"group":"Orders","pages":[{"title":"List orders","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/orders","href":"/api-reference/orders/list-orders"},{"title":"Create order","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/orders","href":"/api-reference/orders/create-order"},{"title":"Get order details","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/orders/{id}","href":"/api-reference/orders/get-order-details"},{"title":"Update order","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/orders/{id}","href":"/api-reference/orders/update-order"},{"title":"Reserve stock for checkout","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/checkout/reserve","href":"/api-reference/orders/reserve-stock-for-checkout"}]},{"group":"Payments","pages":[{"title":"Get available payment methods","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/payments/methods","href":"/api-reference/payments/get-available-payment-methods"},{"title":"Initialize payment","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/payments/initialize","href":"/api-reference/payments/initialize-payment"},{"title":"Verify payment status","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/payments/verify","href":"/api-reference/payments/verify-payment-status"}]},{"group":"Cart \u0026 Wishlist","pages":[{"title":"Get cart","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/cart","href":"/api-reference/cart-\u0026-wishlist/get-cart"},{"title":"Clear cart","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/cart","href":"/api-reference/cart-\u0026-wishlist/clear-cart"},{"title":"Add to cart","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/cart/items","href":"/api-reference/cart-\u0026-wishlist/add-to-cart"},{"title":"Remove cart item","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/cart/items/{id}","href":"/api-reference/cart-\u0026-wishlist/remove-cart-item"},{"title":"Update cart item","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/cart/items/{id}","href":"/api-reference/cart-\u0026-wishlist/update-cart-item"},{"title":"Merge carts","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/cart/merge","href":"/api-reference/cart-\u0026-wishlist/merge-carts"},{"title":"Get wishlist","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/wishlist","href":"/api-reference/cart-\u0026-wishlist/get-wishlist"},{"title":"Add to wishlist","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/wishlist","href":"/api-reference/cart-\u0026-wishlist/add-to-wishlist"},{"title":"Remove from wishlist","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/wishlist/{id}","href":"/api-reference/cart-\u0026-wishlist/remove-from-wishlist"},{"title":"Move wishlist item to cart","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/wishlist/move-to-cart","href":"/api-reference/cart-\u0026-wishlist/move-wishlist-item-to-cart"},{"title":"Ask to be told when a variant is back in stock","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/variants/{id}/notify-when-available","href":"/api-reference/cart-\u0026-wishlist/ask-to-be-told-when-a-variant-is-back-in-stock"},{"title":"Record a guest's contact details at checkout","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/cart/checkout-contact","href":"/api-reference/cart-\u0026-wishlist/record-a-guests-contact-details-at-checkout"},{"title":"Restore the cart behind a recovery link","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/cart/checkout-recover","href":"/api-reference/cart-\u0026-wishlist/restore-the-cart-behind-a-recovery-link"}]},{"group":"Marketplace","pages":[{"title":"Check out a multi-merchant cart","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/cart/checkout","href":"/api-reference/marketplace/check-out-a-multi-merchant-cart"},{"title":"Quote a multi-merchant checkout","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/cart/checkout/quote","href":"/api-reference/marketplace/quote-a-multi-merchant-checkout"},{"title":"Get the signed-in shopper's unified marketplace profile","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/customers/me","href":"/api-reference/marketplace/get-the-signed-in-shoppers-unified-marketplace-profile"},{"title":"Get the signed-in shopper's marketplace wallet","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/customers/me/wallet","href":"/api-reference/marketplace/get-the-signed-in-shoppers-marketplace-wallet"},{"title":"Get marketplace information","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/marketplace/info","href":"/api-reference/marketplace/get-marketplace-information"},{"title":"Get placements for a slot","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/marketplace/ad-slots/{slot_key}","href":"/api-reference/marketplace/get-placements-for-a-slot"},{"title":"Log an ad impression or click","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/marketplace/ad-events","href":"/api-reference/marketplace/log-an-ad-impression-or-click"},{"title":"List operator-curated merchandising sections","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/marketplace/collections","href":"/api-reference/marketplace/list-operator-curated-merchandising-sections"},{"title":"Get one curated section with its members","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/marketplace/collections/{slug}","href":"/api-reference/marketplace/get-one-curated-section-with-its-members"}]},{"group":"Recommendations","pages":[{"title":"Get product recommendations","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/recommendations","href":"/api-reference/recommendations/get-product-recommendations"}]},{"group":"Discovery","pages":[{"title":"Most-viewed products (windowed)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/discovery/most-viewed","href":"/api-reference/discovery/most-viewed-products-windowed"},{"title":"Most-added-to-cart products (windowed)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/discovery/most-added-to-cart","href":"/api-reference/discovery/most-added-to-cart-products-windowed"},{"title":"Best-converting products (windowed)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/discovery/best-converting","href":"/api-reference/discovery/best-converting-products-windowed"}]},{"group":"Events","pages":[{"title":"Record a storefront product event","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/events","href":"/api-reference/events/record-a-storefront-product-event"}]},{"group":"Tax","pages":[{"title":"Preview tax for a cart before checkout","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/tax/preview","href":"/api-reference/tax/preview-tax-for-a-cart-before-checkout"}]},{"group":"Analytics","pages":[{"title":"Record a storefront analytics event","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/analytics/collect","href":"/api-reference/analytics/record-a-storefront-analytics-event"}]},{"group":"Agent","pages":[{"title":"List the agent tools","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agent/capabilities","href":"/api-reference/agent/list-the-agent-tools"},{"title":"Search by constraints","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/agent/search","href":"/api-reference/agent/search-by-constraints"},{"title":"Turn a request into search constraints","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/agent/interpret","href":"/api-reference/agent/turn-a-request-into-search-constraints"},{"title":"Get a product dossier","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agent/products/{id}/context","href":"/api-reference/agent/get-a-product-dossier"},{"title":"Compare products","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/agent/compare","href":"/api-reference/agent/compare-products"},{"title":"Check a product against constraints","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/agent/fit","href":"/api-reference/agent/check-a-product-against-constraints"},{"title":"Find alternatives to a product","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/agent/alternatives","href":"/api-reference/agent/find-alternatives-to-a-product"},{"title":"Price a basket","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/agent/quote","href":"/api-reference/agent/price-a-basket"},{"title":"Create a cart draft","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/agent/cart-drafts","href":"/api-reference/agent/create-a-cart-draft"},{"title":"Draft a cart from an intent","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/agent/cart-drafts/from-intent","href":"/api-reference/agent/draft-a-cart-from-an-intent"},{"title":"Get a cart draft","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agent/cart-drafts/{id}","href":"/api-reference/agent/get-a-cart-draft"},{"title":"Add a draft to the shopper's cart","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/agent/cart-drafts/{id}/apply","href":"/api-reference/agent/add-a-draft-to-the-shoppers-cart"},{"title":"Get insights on a cart","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agent/cart-insights","href":"/api-reference/agent/get-insights-on-a-cart"},{"title":"Get the shopper's personalisation consent","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agent/me/consent","href":"/api-reference/agent/get-the-shoppers-personalisation-consent"},{"title":"Grant or revoke personalisation consent","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/agent/me/consent","href":"/api-reference/agent/grant-or-revoke-personalisation-consent"},{"title":"Get the shopper's own context","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agent/me/context","href":"/api-reference/agent/get-the-shoppers-own-context"},{"title":"Get wishlist insights","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agent/me/wishlist-insights","href":"/api-reference/agent/get-wishlist-insights"},{"title":"Get reorder suggestions","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agent/me/reorder-suggestions","href":"/api-reference/agent/get-reorder-suggestions"},{"title":"Get an order's status","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agent/orders/{id}/status","href":"/api-reference/agent/get-an-orders-status"},{"title":"Request a return for an order","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/agent/orders/{id}/returns","href":"/api-reference/agent/request-a-return-for-an-order"},{"title":"List the shopper's standing instructions","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agent/me/mandates","href":"/api-reference/agent/list-the-shoppers-standing-instructions"},{"title":"Create a standing instruction","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/agent/me/mandates","href":"/api-reference/agent/create-a-standing-instruction"},{"title":"Cancel a standing instruction","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/agent/me/mandates/{id}/cancel","href":"/api-reference/agent/cancel-a-standing-instruction"},{"title":"Subscribe \u0026 Save offers on a product","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agent/products/{id}/subscribe-save","href":"/api-reference/agent/subscribe-\u0026-save-offers-on-a-product"},{"title":"List the shopper's Subscribe \u0026 Save subscriptions","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agent/me/shopper-subscriptions","href":"/api-reference/agent/list-the-shoppers-subscribe-\u0026-save-subscriptions"},{"title":"Start a Subscribe \u0026 Save subscription","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/agent/me/shopper-subscriptions","href":"/api-reference/agent/start-a-subscribe-\u0026-save-subscription"},{"title":"Pause a Subscribe \u0026 Save subscription","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/agent/me/shopper-subscriptions/{id}/pause","href":"/api-reference/agent/pause-a-subscribe-\u0026-save-subscription"},{"title":"Skip the next Subscribe \u0026 Save delivery","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/agent/me/shopper-subscriptions/{id}/skip","href":"/api-reference/agent/skip-the-next-subscribe-\u0026-save-delivery"},{"title":"Cancel a Subscribe \u0026 Save subscription","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/agent/me/shopper-subscriptions/{id}/cancel","href":"/api-reference/agent/cancel-a-subscribe-\u0026-save-subscription"},{"title":"Change a Subscribe \u0026 Save subscription","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/agent/me/shopper-subscriptions/{id}/update","href":"/api-reference/agent/change-a-subscribe-\u0026-save-subscription"},{"title":"Create a checkout intent","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/agent/checkout-intents","href":"/api-reference/agent/create-a-checkout-intent"},{"title":"Get a checkout intent","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agent/checkout-intents/{id}","href":"/api-reference/agent/get-a-checkout-intent"},{"title":"Confirm a checkout intent","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/agent/checkout-intents/{id}/confirm","href":"/api-reference/agent/confirm-a-checkout-intent"},{"title":"Cancel a checkout intent","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/agent/checkout-intents/{id}/cancel","href":"/api-reference/agent/cancel-a-checkout-intent"},{"title":"Get the store's policies","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agent/store-policies","href":"/api-reference/agent/get-the-stores-policies"},{"title":"Get AI credit usage","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agent/usage","href":"/api-reference/agent/get-ai-credit-usage"}]},{"group":"Search","pages":[{"title":"Simple text search","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/search","href":"/api-reference/search/simple-text-search"},{"title":"Semantic search","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/search","href":"/api-reference/search/semantic-search"},{"title":"Type-ahead suggestions","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/search/autocomplete","href":"/api-reference/search/type-ahead-suggestions"}]},{"group":"Authentication","pages":[{"title":"Register customer account","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/auth/register","href":"/api-reference/authentication/register-customer-account"},{"title":"Confirm a new account","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/auth/register/verify","href":"/api-reference/authentication/confirm-a-new-account"},{"title":"Resend the confirmation email","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/auth/register/resend","href":"/api-reference/authentication/resend-the-confirmation-email"},{"title":"Create an account from a guest order","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/auth/claim-account","href":"/api-reference/authentication/create-an-account-from-a-guest-order"},{"title":"Login with email and password","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/auth/login","href":"/api-reference/authentication/login-with-email-and-password"},{"title":"Logout current session","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/auth/logout","href":"/api-reference/authentication/logout-current-session"},{"title":"Send a sign-in code","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/auth/magic-link","href":"/api-reference/authentication/send-a-sign-in-code"},{"title":"Verify a sign-in code","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/auth/verify-otp","href":"/api-reference/authentication/verify-a-sign-in-code"},{"title":"Request a password reset","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/auth/password/forgot","href":"/api-reference/authentication/request-a-password-reset"},{"title":"Reset a password","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/auth/password/reset","href":"/api-reference/authentication/reset-a-password"},{"title":"Change or set a password","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/auth/password/change","href":"/api-reference/authentication/change-or-set-a-password"},{"title":"Refresh access token","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/auth/refresh","href":"/api-reference/authentication/refresh-access-token"},{"title":"Get current user","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/auth/me","href":"/api-reference/authentication/get-current-user"}]},{"group":"Customers","pages":[{"title":"Create customer","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/customers","href":"/api-reference/customers/create-customer"},{"title":"Get customer details","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/customers/{id}","href":"/api-reference/customers/get-customer-details"},{"title":"Update customer","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/customers/{id}","href":"/api-reference/customers/update-customer"},{"title":"List a shopper's saved addresses","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/customers/{id}/addresses","href":"/api-reference/customers/list-a-shoppers-saved-addresses"},{"title":"Save a new address","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/customers/{id}/addresses","href":"/api-reference/customers/save-a-new-address"},{"title":"Delete a saved address","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/customers/{id}/addresses/{addressId}","href":"/api-reference/customers/delete-a-saved-address"},{"title":"Update a saved address","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/customers/{id}/addresses/{addressId}","href":"/api-reference/customers/update-a-saved-address"},{"title":"List a shopper's Subscribe \u0026 Save subscriptions","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/customers/{id}/shopper-subscriptions","href":"/api-reference/customers/list-a-shoppers-subscribe-\u0026-save-subscriptions"},{"title":"Get a Subscribe \u0026 Save subscription","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/customers/{id}/shopper-subscriptions/{subscriptionId}","href":"/api-reference/customers/get-a-subscribe-\u0026-save-subscription"},{"title":"Change a Subscribe \u0026 Save subscription","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/customers/{id}/shopper-subscriptions/{subscriptionId}","href":"/api-reference/customers/change-a-subscribe-\u0026-save-subscription"},{"title":"Pause a Subscribe \u0026 Save subscription","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/customers/{id}/shopper-subscriptions/{subscriptionId}/pause","href":"/api-reference/customers/pause-a-subscribe-\u0026-save-subscription"},{"title":"Resume a paused Subscribe \u0026 Save subscription","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/customers/{id}/shopper-subscriptions/{subscriptionId}/resume","href":"/api-reference/customers/resume-a-paused-subscribe-\u0026-save-subscription"},{"title":"Skip the next Subscribe \u0026 Save delivery","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/customers/{id}/shopper-subscriptions/{subscriptionId}/skip-next","href":"/api-reference/customers/skip-the-next-subscribe-\u0026-save-delivery"},{"title":"Cancel a Subscribe \u0026 Save subscription","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/customers/{id}/shopper-subscriptions/{subscriptionId}/cancel","href":"/api-reference/customers/cancel-a-subscribe-\u0026-save-subscription"},{"title":"Add a card to a Subscribe \u0026 Save subscription","description":"Start adding a replacement card for a subscription. The response is the payment processor's own\nhosted page; the shopper enters the card there. When the processor confirms the card it is saved and\nthe subscription charges it for every later delivery, and a delivery that was waiting on a declined\ncard is retried with it. The shopper returns to the subscription's manage page afterwards.\n\nA store whose processor cannot save cards answers `409`. At most 10 sessions can be started per\nshopper per hour (`429`).\n\n**Customer-self access.** Works with a publishable key (safe from the\nbrowser). Provide the shopper's session token in the `x-auth-token`\nheader (or the store's bring-your-own-auth assertion in `x-external-auth`);\nit must resolve to the customer in the `{id}` path parameter, otherwise the\nrequest returns `403`. A subscription that belongs to another shopper reads\nas `404`.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/customers/{id}/shopper-subscriptions/{subscriptionId}/payment-method","href":"/api-reference/customers/add-a-card-to-a-subscribe-\u0026-save-subscription"},{"title":"List a shopper's saved cards","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/customers/{id}/payment-methods","href":"/api-reference/customers/list-a-shoppers-saved-cards"},{"title":"Remove a saved card","description":"Remove one of the signed-in shopper's saved cards. The store can no longer charge it. A\nsubscription that was charging this card switches to confirm-and-pay: the shopper is sent a link to pay\neach delivery until a new card is added.\n\n**Customer-self access.** Works with a publishable key (safe from the\nbrowser). Provide the shopper's session token in the `x-auth-token`\nheader (or the store's bring-your-own-auth assertion in `x-external-auth`);\nit must resolve to the customer in the `{id}` path parameter, otherwise the\nrequest returns `403`. A subscription that belongs to another shopper reads\nas `404`.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/customers/{id}/payment-methods/{paymentMethodId}","href":"/api-reference/customers/remove-a-saved-card"},{"title":"List a shopper's delivered items","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/customers/{id}/fulfilments","href":"/api-reference/customers/list-a-shoppers-delivered-items"},{"title":"Reveal the codes of a delivered item","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/customers/{id}/fulfilments/{fulfilment_id}/reveal","href":"/api-reference/customers/reveal-the-codes-of-a-delivered-item"},{"title":"Download a file the shopper bought","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/fulfilment/downloads/{fulfilment_id}/{asset_id}","href":"/api-reference/customers/download-a-file-the-shopper-bought"}]},{"group":"Gift Cards","pages":[{"title":"List gift cards","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/gift-cards","href":"/api-reference/gift-cards/list-gift-cards"},{"title":"Check gift card balance","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/gift-cards/check","href":"/api-reference/gift-cards/check-gift-card-balance"}]},{"group":"Promotions","pages":[{"title":"List promotions","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/promotions","href":"/api-reference/promotions/list-promotions"},{"title":"Get promotion details","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/promotions/{id}","href":"/api-reference/promotions/get-promotion-details"},{"title":"Calculate a promotion's discount for a cart","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/promotions/{id}/calculate","href":"/api-reference/promotions/calculate-a-promotions-discount-for-a-cart"},{"title":"Find the best promotion for a cart","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/promotions/calculate-best","href":"/api-reference/promotions/find-the-best-promotion-for-a-cart"},{"title":"List the Subscribe \u0026 Save offers for a product","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/subscribe-save/offers","href":"/api-reference/promotions/list-the-subscribe-\u0026-save-offers-for-a-product"},{"title":"Quote the price of a Subscribe \u0026 Save offer","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/subscribe-save/quote","href":"/api-reference/promotions/quote-the-price-of-a-subscribe-\u0026-save-offer"}]},{"group":"Campaigns","pages":[{"title":"List running campaigns","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/campaigns","href":"/api-reference/campaigns/list-running-campaigns"},{"title":"Get a running campaign","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/campaigns/{id}","href":"/api-reference/campaigns/get-a-running-campaign"}]},{"group":"CMS","pages":[{"title":"List blog posts","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/posts","href":"/api-reference/cms/list-blog-posts"},{"title":"Get blog post by slug","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/posts/{slug}","href":"/api-reference/cms/get-blog-post-by-slug"},{"title":"Most-read blog posts","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/posts/trending","href":"/api-reference/cms/most-read-blog-posts"},{"title":"Posts related to this one","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/posts/{slug}/related","href":"/api-reference/cms/posts-related-to-this-one"},{"title":"List lookbooks","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/lookbooks","href":"/api-reference/cms/list-lookbooks"},{"title":"Get lookbook details by slug","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/lookbooks/{slug}","href":"/api-reference/cms/get-lookbook-details-by-slug"},{"title":"Subscribe an email to the store's newsletter","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/newsletter/subscribe","href":"/api-reference/cms/subscribe-an-email-to-the-stores-newsletter"},{"title":"Get a lead form","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/lead-forms/{slug}","href":"/api-reference/cms/get-a-lead-form"},{"title":"Get a lead form token","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/lead-forms/{slug}/token","href":"/api-reference/cms/get-a-lead-form-token"},{"title":"Submit a lead form","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/lead-forms/{slug}/submit","href":"/api-reference/cms/submit-a-lead-form"}]},{"group":"Pricing","pages":[{"title":"Get prices for multiple products with dynamic pricing and multi-currency support","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/prices/products","href":"/api-reference/pricing/get-prices-for-multiple-products-with-dynamic-pricing-and-multi-currency-support"},{"title":"Get single product pricing with dynamic pricing and multi-currency support","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/prices/products/{id}","href":"/api-reference/pricing/get-single-product-pricing-with-dynamic-pricing-and-multi-currency-support"},{"title":"Get product pricing by SEO-friendly slug with dynamic pricing and multi-currency support","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/prices/products/by-slug/{slug}","href":"/api-reference/pricing/get-product-pricing-by-seo-friendly-slug-with-dynamic-pricing-and-multi-currency-support"}]},{"group":"Messaging","pages":[{"title":"List message threads","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/messaging/threads","href":"/api-reference/messaging/list-message-threads"},{"title":"Get thread details","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/messaging/threads/{id}","href":"/api-reference/messaging/get-thread-details"},{"title":"Update thread","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/messaging/threads/{id}","href":"/api-reference/messaging/update-thread"},{"title":"Get messages in a thread","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/messaging/threads/{id}/messages","href":"/api-reference/messaging/get-messages-in-a-thread"},{"title":"Send a message to a thread","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/messaging/threads/{id}/messages","href":"/api-reference/messaging/send-a-message-to-a-thread"},{"title":"Start a new conversation","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/messaging/conversations","href":"/api-reference/messaging/start-a-new-conversation"},{"title":"Mark thread as read","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/messaging/threads/{id}/read","href":"/api-reference/messaging/mark-thread-as-read"},{"title":"Delete message","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/messaging/messages/{id}","href":"/api-reference/messaging/delete-message"},{"title":"Edit message","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/messaging/messages/{id}","href":"/api-reference/messaging/edit-message"},{"title":"Subscribe to a thread's new messages in realtime (WebSocket)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/messaging/threads/{id}/subscribe","href":"/api-reference/messaging/subscribe-to-a-threads-new-messages-in-realtime-websocket"}]},{"group":"Shipping","pages":[{"title":"Get shipping zones and pricing tiers","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/shipping/zones","href":"/api-reference/shipping/get-shipping-zones-and-pricing-tiers"},{"title":"Calculate shipping fee","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/shipping/calculate","href":"/api-reference/shipping/calculate-shipping-fee"},{"title":"Track a shipment","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/shipping/tracking/{carrier}/{number}","href":"/api-reference/shipping/track-a-shipment"}]},{"group":"GC Connect","pages":[{"title":"Validate an authorization request","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/connect/authorize","href":"/api-reference/gc-connect/validate-an-authorization-request"},{"title":"Approve the authorization (merchant consent)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/connect/authorize","href":"/api-reference/gc-connect/approve-the-authorization-merchant-consent"},{"title":"Exchange authorization code for API keys","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/connect/token","href":"/api-reference/gc-connect/exchange-authorization-code-for-api-keys"},{"title":"Revoke a store connection","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/connect/revoke","href":"/api-reference/gc-connect/revoke-a-store-connection"},{"title":"List active store connections","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/connect/sessions","href":"/api-reference/gc-connect/list-active-store-connections"},{"title":"List the linked store's team","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/connect/team","href":"/api-reference/gc-connect/list-the-linked-stores-team"}]},{"group":"Reviews","pages":[{"title":"List reviews for a product","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/reviews","href":"/api-reference/reviews/list-reviews-for-a-product"},{"title":"Submit a product review","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/reviews","href":"/api-reference/reviews/submit-a-product-review"},{"title":"Get a single review","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/reviews/{id}","href":"/api-reference/reviews/get-a-single-review"},{"title":"Delete your own review","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/reviews/{id}","href":"/api-reference/reviews/delete-your-own-review"},{"title":"Mark a review as helpful","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/reviews/{id}/helpful","href":"/api-reference/reviews/mark-a-review-as-helpful"}]},{"group":"Returns","pages":[{"title":"List return reason codes","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/returns/reasons","href":"/api-reference/returns/list-return-reason-codes"},{"title":"Check whether an order can still be returned","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/returns/eligibility","href":"/api-reference/returns/check-whether-an-order-can-still-be-returned"},{"title":"Get the customer's store credit balance","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/returns/store-credit","href":"/api-reference/returns/get-the-customers-store-credit-balance"},{"title":"List the signed-in customer's returns","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/returns","href":"/api-reference/returns/list-the-signed-in-customers-returns"},{"title":"Lodge a return","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/returns","href":"/api-reference/returns/lodge-a-return"},{"title":"Get one of the customer's returns","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/returns/{id}","href":"/api-reference/returns/get-one-of-the-customers-returns"},{"title":"Accept a store credit offer","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/returns/{id}/accept-credit","href":"/api-reference/returns/accept-a-store-credit-offer"},{"title":"Request a refund instead of store credit","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/returns/{id}/request-refund","href":"/api-reference/returns/request-a-refund-instead-of-store-credit"}]},{"group":"Disputes","pages":[{"title":"List dispute reason codes","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/disputes/reasons","href":"/api-reference/disputes/list-dispute-reason-codes"},{"title":"List the shopper's disputes","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/disputes","href":"/api-reference/disputes/list-the-shoppers-disputes"},{"title":"Open a dispute","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/disputes","href":"/api-reference/disputes/open-a-dispute"},{"title":"Get a dispute","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/disputes/{id}","href":"/api-reference/disputes/get-a-dispute"},{"title":"Cancel a dispute","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/disputes/{id}/cancel","href":"/api-reference/disputes/cancel-a-dispute"},{"title":"Add a message to a dispute","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/disputes/{id}/messages","href":"/api-reference/disputes/add-a-message-to-a-dispute"}]},{"group":"B2B","pages":[{"title":"List your requests for quote","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/b2b/rfqs","href":"/api-reference/b2b/list-your-requests-for-quote"},{"title":"Request a quote","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/b2b/rfqs","href":"/api-reference/b2b/request-a-quote"},{"title":"Get one of your RFQs","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/b2b/rfqs/{id}","href":"/api-reference/b2b/get-one-of-your-rfqs"},{"title":"Get a quote addressed to you","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/b2b/quotes/{id}","href":"/api-reference/b2b/get-a-quote-addressed-to-you"},{"title":"Accept a quote","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/b2b/quotes/{id}/accept","href":"/api-reference/b2b/accept-a-quote"},{"title":"Reject a quote","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/b2b/quotes/{id}/reject","href":"/api-reference/b2b/reject-a-quote"},{"title":"List your purchase orders","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/b2b/purchase-orders","href":"/api-reference/b2b/list-your-purchase-orders"},{"title":"Get one of your purchase orders","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/b2b/purchase-orders/{id}","href":"/api-reference/b2b/get-one-of-your-purchase-orders"},{"title":"List your invoices","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/b2b/invoices","href":"/api-reference/b2b/list-your-invoices"},{"title":"Get one of your invoices","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/b2b/invoices/{id}","href":"/api-reference/b2b/get-one-of-your-invoices"},{"title":"Start paying an invoice","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/b2b/invoices/{id}/pay","href":"/api-reference/b2b/start-paying-an-invoice"},{"title":"Place a wholesale order directly (self-serve checkout)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/b2b/orders","href":"/api-reference/b2b/place-a-wholesale-order-directly-self-serve-checkout"}]},{"group":"Webhooks","pages":[{"title":"List webhook endpoints","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/webhook_endpoints","href":"/api-reference/webhooks/list-webhook-endpoints"},{"title":"Create a webhook endpoint","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/webhook_endpoints","href":"/api-reference/webhooks/create-a-webhook-endpoint"},{"title":"Get a webhook endpoint","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/webhook_endpoints/{id}","href":"/api-reference/webhooks/get-a-webhook-endpoint"},{"title":"Delete a webhook endpoint","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/webhook_endpoints/{id}","href":"/api-reference/webhooks/delete-a-webhook-endpoint"},{"title":"Update a webhook endpoint","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/webhook_endpoints/{id}","href":"/api-reference/webhooks/update-a-webhook-endpoint"},{"title":"Send a test event","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/webhook_endpoints/{id}/test","href":"/api-reference/webhooks/send-a-test-event"},{"title":"List webhook events","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/webhook_events","href":"/api-reference/webhooks/list-webhook-events"},{"title":"Get a webhook event","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/webhook_events/{id}","href":"/api-reference/webhooks/get-a-webhook-event"},{"title":"Retry a webhook event","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/webhook_events/{id}/retry","href":"/api-reference/webhooks/retry-a-webhook-event"}]},{"group":"Ingestion","pages":[{"title":"Ingest a batch of products","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/ingest/products","href":"/api-reference/ingestion/ingest-a-batch-of-products"},{"title":"Get a sample product feed","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/ingest/sample","href":"/api-reference/ingestion/get-a-sample-product-feed"},{"title":"Validate a product feed (no writes)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/ingest/test","href":"/api-reference/ingestion/validate-a-product-feed-no-writes"}]},{"group":"Feeds","pages":[{"title":"Public catalog feed (JSON)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/feeds/{store}/products.json","href":"/api-reference/feeds/public-catalog-feed-json"},{"title":"Public catalog feed (XML)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/feeds/{store}/products.xml","href":"/api-reference/feeds/public-catalog-feed-xml"},{"title":"Store summary for AI assistants (llms.txt)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/feeds/{store}/llms.txt","href":"/api-reference/feeds/store-summary-for-ai-assistants-llmstxt"},{"title":"Full catalog for AI assistants (llms-full.txt)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/feeds/{store}/llms-full.txt","href":"/api-reference/feeds/full-catalog-for-ai-assistants-llms-fulltxt"},{"title":"How an AI assistant connects to a store (agent.json)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/feeds/{store}/agent.json","href":"/api-reference/feeds/how-an-ai-assistant-connects-to-a-store-agentjson"}]},{"group":"Sandbox","pages":[{"title":"Reset your sandbox data","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/sandbox/reset","href":"/api-reference/sandbox/reset-your-sandbox-data"},{"title":"Reset your sandbox data (alias)","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/sandbox/data","href":"/api-reference/sandbox/reset-your-sandbox-data-alias"},{"title":"Fast-forward sandbox time","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/sandbox/time","href":"/api-reference/sandbox/fast-forward-sandbox-time"},{"title":"Replay a sandbox webhook event","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/sandbox/webhooks/replay","href":"/api-reference/sandbox/replay-a-sandbox-webhook-event"},{"title":"Create a sandbox promotion","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/sandbox/seed/promotion","href":"/api-reference/sandbox/create-a-sandbox-promotion"},{"title":"Create a sandbox gift card","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/sandbox/seed/gift-card","href":"/api-reference/sandbox/create-a-sandbox-gift-card"},{"title":"Create a sandbox campaign","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/sandbox/seed/campaign","href":"/api-reference/sandbox/create-a-sandbox-campaign"},{"title":"Create a sandbox B2B buyer account","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/sandbox/seed/b2b-buyer-account","href":"/api-reference/sandbox/create-a-sandbox-b2b-buyer-account"},{"title":"Create a sandbox dynamic-pricing rule","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/sandbox/seed/pricing-rule","href":"/api-reference/sandbox/create-a-sandbox-dynamic-pricing-rule"},{"title":"List sandbox stock levels","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/sandbox/stock","href":"/api-reference/sandbox/list-sandbox-stock-levels"},{"title":"Set sandbox stock levels","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/sandbox/stock","href":"/api-reference/sandbox/set-sandbox-stock-levels"},{"title":"Remove every sandbox stock level","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/sandbox/stock","href":"/api-reference/sandbox/remove-every-sandbox-stock-level"},{"title":"Remove one sandbox stock level","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/sandbox/stock/{variant_id}","href":"/api-reference/sandbox/remove-one-sandbox-stock-level"}]}]},{"tab":"TypeScript SDK","pages":[{"title":"TypeScript SDK","href":"/sdk/introduction"}]},{"tab":"Workflow Examples","pages":[{"title":"Workflow Examples","href":"/workflows/introduction"}]}]},"title":"List a shopper's saved cards - Galactic Core API Documentation","buildId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","deploymentId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-DmVyH30O.js","utils-BHQqGGOd.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CD-E4BIt.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Bp5Lq9Ds.js","snippetPresets-C4xAVCFP.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","Page-CBCH2P7b.js","ApiExamples-CgXVLxUC.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BF8I5oUf.js","shallow-Byd0lWnC.js","getApiPlaygroundDisplay-BGOZG1OK.js","CodeSnippet-CpvQL0CY.js","CodeSnippets-B8wkBKXa.js","getPastedJson-Ry3scI3Y.js","icon-D7a9HcdD.js","MethodPill-CJ8pmHhz.js","DuplicateIcon-rh1HJF0t.js","createIcon-DvGznqYs.js","DynamicMarkdown-Cc6AuSHS.js","SectionHeading-B4A0S-ep.js","axios-vUo_bRtp.js","Markdown-Cc16CX65.js","clsx-Cs6nMGht.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-zbf22OZA.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-C_fs-y5n.js"]}