{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"redocly_category":"Documentation","type":"markdown"},"seo":{"title":"Shipping configuration in express methods","description":"Learn how to use FramePay to get shipping data using Google Pay™ and Apple Pay digital wallet.","siteUrl":"https://www.rebilly.com","image":"/assets/rebillysocial.94fb32fc280c9e84b963c440ec462771d25f4e6fdaaa6c59de41e8135113b46b.db81178d.png","lang":"en-US","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"shipping-configuration-in-express-methods","__idx":0},"children":["Shipping configuration in express methods"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This topic describes how to configure shipping using express methods."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["FramePay digital wallets such as Google Pay and Apple Pay support configurable shipping information functionality."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To enable shipping configuration in native dialogs, set the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["requestShipping"]}," property in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData"]}," to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},", and provide a list of shipping method options to display in the native dialogs."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For more information, see ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/dev-docs/events#shipping-address-changed"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["shipping-address-changed"]}]},", ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/dev-docs/events#shipping-option-changed"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["shipping-option-changed"]}]},", and ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/dev-docs/framepay-configuration-reference#transactionData"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData"]}]},"."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"javascript","header":{"controls":{"copy":{}}},"source":"const ORIGINAL_AMOUNT = 10;\n\nconst US_SHIPPING = [\n  {\n    id: 'free-shipping',\n    label: 'Free shipping',\n    description: 'Arrives in 5 to 7 days',\n    amount: 0,\n  },\n];\n\nconst INTERNATIONAL_SHIPPING = [\n  {\n    id: 'international-shipping',\n    label: 'International shipping',\n    description: 'Arrives in 20 to 30 days',\n    amount: 10,\n  },\n];\n\nFramepay.initialize({\n  publishableKey: 'pk_sandbox_123',\n  organizationId: 'org-123',\n  websiteId: 'website-123',\n  transactionData: {\n    currency: 'USD',\n    amount: ORIGINAL_AMOUNT,\n    label: 'Demo purchase label'\n    requestShipping: true,\n    shippingOptions: {\n        defaultSelectedOptionId: 'free-shipping',\n        options: [\n            ...US_SHIPPING,\n            ...INTERNATIONAL_SHIPPING,\n        ],\n    }\n  },\n});\n\nFramepay.on('shipping-address-changed', (shippingAddress, updateShippingOptions) => {\n  if (shippingAddress.country === 'US') {\n    updateShippingOptions({ status: 'success', shippingOptions: US_SHIPPING });\n  } else {\n    updateShippingOptions({\n        status: 'success',\n        shippingOptions: INTERNATIONAL_SHIPPING,\n        lineItems: [\n            {\n                label: 'Shipping',\n                amount: shippingOption.amount,\n            },\n            {\n                label: 'Tax',\n                amount: '10.99',\n            },\n        ],\n    });\n  }\n});\n\nFramepay.on('shipping-option-changed', (shippingOption, updateTransaction) => {\n  updateTransaction({\n    amount: ORIGINAL_AMOUNT + shippingOption.amount,\n    lineItems: [\n        {\n            label: 'Shipping',\n            amount: shippingOption.amount,\n        },\n        {\n            label: 'Tax',\n            amount: '10.99',\n        }\n    ],\n  });\n});\n","lang":"javascript"},"children":[]}]},"headings":[{"value":"Shipping configuration in express methods","id":"shipping-configuration-in-express-methods","depth":1}],"frontmatter":{"seo":{"title":"Shipping configuration in express methods","description":"Learn how to use FramePay to get shipping data using Google Pay™ and Apple Pay digital wallet.","lang":"en-US"},"redirects":{"/docs/dashboard/marketing/lead-source-attribution/":{},"/docs/developer-docs/framepay/lead-source-attribution/":{},"/docs/content/dev-docs/concept/lead-sources/":{},"/docs/content/concepts-and-features/concept/lead-sources/":{},"/docs/concepts-and-features/concept/lead-sources/":{}},"excludeFromSearch":true},"lastModified":"2025-03-24T09:27:11.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/docs/dev-docs/shipping-configuration-in-express-methods","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}