{"_id":"@capawesome/capacitor-wallet","_rev":"4-30e8d522ee9ff701904a0b510b6312c0","name":"@capawesome/capacitor-wallet","dist-tags":{"latest":"0.1.2"},"versions":{"0.0.1":{"name":"@capawesome/capacitor-wallet","version":"0.0.1","keywords":["capacitor","plugin","native"],"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"MIT","_id":"@capawesome/capacitor-wallet@0.0.1","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"homepage":"https://capawesome.io/docs/plugins/wallet/","bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"dist":{"shasum":"878e4bad9e153f8b885dbdf8b7198db4eb44d692","tarball":"https://registry.npmjs.org/@capawesome/capacitor-wallet/-/capacitor-wallet-0.0.1.tgz","fileCount":36,"integrity":"sha512-P3RlUaP/9NZcSwHcElPN+lQVSbyscufnozMMnBIJTqfD2MwUu+oqJzK02JUm79hGgW0SnbZzaM9mtOQxarLSaA==","signatures":[{"sig":"MEYCIQD/cXtHZ5rObq0spg0GBQl4a8fFnoZkdRSuFocUm36N6AIhAItAD5eqDpeWk3rd/aUKp1V5OH9WOuaIxlV4tWmF0HuA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47644},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","funding":[{"url":"https://github.com/sponsors/capawesome-team/","type":"github"},{"url":"https://opencollective.com/capawesome","type":"opencollective"}],"gitHead":"8dd31ce5d3f16f94fb71d033f47512e99908f4e4","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api WalletPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -destination generic/platform=iOS && cd ..","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","ios:pod:install":"cd ios && pod install --repo-update && cd ..","ios:spm:install":"cd ios && swift package resolve && cd .."},"_npmUser":{"name":"robingenz","email":"mail@robingenz.dev"},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/capawesome-team/capacitor-plugins.git","type":"git"},"_npmVersion":"11.13.0","description":"Capacitor plugin for adding passes to Apple Wallet and Google Wallet.","directories":{},"_nodeVersion":"24.16.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","rimraf":"6.1.2","rollup":"4.53.3","swiftlint":"2.0.0","typescript":"5.9.3","@capacitor/cli":"8.0.0","@capacitor/ios":"8.0.0","@capacitor/core":"8.0.0","@capacitor/docgen":"0.3.1","@capacitor/android":"8.0.0","@ionic/eslint-config":"0.4.0","prettier-plugin-java":"2.6.7"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-wallet_0.0.1_1783405358141_0.46527277332292405","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@capawesome/capacitor-wallet","version":"0.1.0","keywords":["capacitor","plugin","native","capacitor-plugin","apple wallet","google wallet","wallet pass","passes","pkpass","save to wallet","passkit"],"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"MIT","_id":"@capawesome/capacitor-wallet@0.1.0","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"homepage":"https://capawesome.io/docs/sdks/capacitor/wallet/","bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"dist":{"shasum":"95e87241e5e68f596102229c8d2334dca33ce9a3","tarball":"https://registry.npmjs.org/@capawesome/capacitor-wallet/-/capacitor-wallet-0.1.0.tgz","fileCount":36,"integrity":"sha512-NoWgF6UyWc8GSFrVaHnl1awSYjBhOlzcPKCNwFgIGhKwIhxfiopj7GOUqNZFGy+BctAQXUEihyUmANgKmz0Gig==","signatures":[{"sig":"MEUCICKeb5H2QRx12PuaUAHas+w1ekAp3xbNpUHfFoS0gkXiAiEApHGwfKY/Zf6fDEynyd6pJP+5zRiFRS+BxJuvxGiu1dA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capawesome%2fcapacitor-wallet@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51857},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","funding":[{"url":"https://github.com/sponsors/capawesome-team/","type":"github"},{"url":"https://opencollective.com/capawesome","type":"opencollective"}],"gitHead":"1ce17b1fd14c43b2f1d5d3c2da82221e1d1dca37","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api WalletPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -destination generic/platform=iOS && cd ..","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","ios:pod:install":"cd ios && pod install --repo-update && cd ..","ios:spm:install":"cd ios && swift package resolve && cd .."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7ea86c7f-99c7-4f01-8f5d-9761b3c6527b"}},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/capawesome-team/capacitor-plugins.git","type":"git"},"_npmVersion":"11.16.0","description":"Capacitor plugin for adding passes to Apple Wallet and Google Wallet on Android and iOS.","directories":{},"_nodeVersion":"24.18.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","rimraf":"6.1.2","rollup":"4.53.3","swiftlint":"2.0.0","typescript":"5.9.3","@capacitor/cli":"8.0.0","@capacitor/ios":"8.0.0","@capacitor/core":"8.0.0","@capacitor/docgen":"0.3.1","@capacitor/android":"8.0.0","@ionic/eslint-config":"0.4.0","prettier-plugin-java":"2.6.7"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-wallet_0.1.0_1784015619712_0.4940511251882951","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@capawesome/capacitor-wallet","version":"0.1.1","keywords":["capacitor","plugin","native","capacitor-plugin","apple wallet","google wallet","wallet pass","passes","pkpass","save to wallet","passkit"],"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"MIT","_id":"@capawesome/capacitor-wallet@0.1.1","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"homepage":"https://capawesome.io/docs/sdks/capacitor/wallet/","bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"dist":{"shasum":"1b0ee3089b23ca56e87cec364cb849323bbb9787","tarball":"https://registry.npmjs.org/@capawesome/capacitor-wallet/-/capacitor-wallet-0.1.1.tgz","fileCount":36,"integrity":"sha512-mTLkm7FpixbVq5/hEvsTrxs3/5dSOFcfEacRVqgV3SiSU8z+4CKpeu8pT4G3CujlX8IRV0dmbg2qS7c9radc6A==","signatures":[{"sig":"MEYCIQD2hAe8XGK4KmMZMmzenAMb42pOFLmLQXz1Cua5BljDAwIhAJ5ujvCiljdOC1S5elZJZ8bCyhtfF95usxqwRL7nuanB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capawesome%2fcapacitor-wallet@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51866},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","funding":[{"url":"https://github.com/sponsors/capawesome-team/","type":"github"},{"url":"https://opencollective.com/capawesome","type":"opencollective"}],"gitHead":"3e61f4b412f9f3f512c21169bb135bbb23a67e6d","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api WalletPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -destination generic/platform=iOS && cd ..","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","ios:pod:install":"cd ios && pod install --repo-update && cd ..","ios:spm:install":"cd ios && swift package resolve && cd .."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7ea86c7f-99c7-4f01-8f5d-9761b3c6527b"}},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/capawesome-team/capacitor-plugins.git","type":"git"},"_npmVersion":"11.16.0","description":"Capacitor plugin for adding passes to Apple Wallet and Google Wallet on Android and iOS.","directories":{},"_nodeVersion":"24.18.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","rimraf":"6.1.2","rollup":"4.53.3","swiftlint":"2.0.0","typescript":"5.9.3","@capacitor/cli":"8.0.0","@capacitor/ios":"8.0.0","@capacitor/core":"8.0.0","@capacitor/docgen":"0.3.1","@capacitor/android":"8.0.0","@ionic/eslint-config":"0.4.0","prettier-plugin-java":"2.6.7"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-wallet_0.1.1_1784103071692_0.5647750151774622","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"_id":"@capawesome/capacitor-wallet@0.1.2","bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"dist":{"shasum":"566457cdf705bc85fba85795d17137a1216cc632","tarball":"https://registry.npmjs.org/@capawesome/capacitor-wallet/-/capacitor-wallet-0.1.2.tgz","fileCount":36,"integrity":"sha512-XcwIa73rGugp541QLgi36OkqrOG0kQS9YYz9mbXnstyDTm+l+A/tES81evpgaq7ZxQsUk+7iOe6m9RTSrrbhyw==","signatures":[{"sig":"MEUCIBXMBNVPnvh5eOdt/MgeX9g0XJUxQfcU7zf+mbbcMHvgAiEAqA2+UsHlNJfMeaL7VrTRnEghy9sNWdT5D7YJ6lxH6Sc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFEqayi1zIjmmGhMZ8YeebOzoJnKFbebcJQ7vdVuhmhQAiBaWDKn9S0rO/wB/x67pS1eA7KgC9HrkpfZUjD+aSaPQw=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capawesome%2fcapacitor-wallet@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51724},"main":"dist/plugin.cjs.js","name":"@capawesome/capacitor-wallet","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"module":"dist/esm/index.js","funding":[{"url":"https://github.com/sponsors/capawesome-team/","type":"github"},{"url":"https://opencollective.com/capawesome","type":"opencollective"}],"gitHead":"7c1937ed10b7de86ca2c1cdc3539a2735fd69a00","license":"MIT","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api WalletPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -destination generic/platform=iOS && cd ..","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","ios:pod:install":"cd ios && pod install --repo-update && cd ..","ios:spm:install":"cd ios && swift package resolve && cd .."},"version":"0.1.2","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7ea86c7f-99c7-4f01-8f5d-9761b3c6527b"}},"homepage":"https://capawesome.io/docs/sdks/capacitor/wallet/","keywords":["capacitor","plugin","native","capacitor-plugin","apple wallet","google wallet","wallet pass","passes","pkpass","save to wallet","passkit"],"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/capawesome-team/capacitor-plugins.git","type":"git"},"_npmVersion":"11.17.0","description":"Capacitor plugin for adding passes to Apple Wallet and Google Wallet on Android and iOS.","directories":{},"maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"_nodeVersion":"24.19.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","rimraf":"6.1.2","rollup":"4.62.3","swiftlint":"2.0.0","typescript":"5.9.3","@capacitor/cli":"8.4.2","@capacitor/ios":"8.0.0","@capacitor/core":"8.0.0","@capacitor/docgen":"0.3.1","@capacitor/android":"8.0.0","@ionic/eslint-config":"0.4.0","prettier-plugin-java":"2.9.7"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/capacitor-wallet_0.1.2_1788337602296_0.21339531590232208"}}},"time":{"created":"2026-07-07T06:22:37.919Z","modified":"2026-09-02T08:26:42.776Z","0.0.1":"2026-07-07T06:22:38.339Z","0.1.0":"2026-07-14T07:53:39.852Z","0.1.1":"2026-07-15T08:11:11.821Z","0.1.2":"2026-09-02T08:26:42.379Z"},"bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"MIT","homepage":"https://capawesome.io/docs/sdks/capacitor/wallet/","keywords":["capacitor","plugin","native","capacitor-plugin","apple wallet","google wallet","wallet pass","passes","pkpass","save to wallet","passkit"],"repository":{"url":"git+https://github.com/capawesome-team/capacitor-plugins.git","type":"git"},"description":"Capacitor plugin for adding passes to Apple Wallet and Google Wallet on Android and iOS.","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"readme":"# Capacitor Wallet Plugin\n\nCapacitor plugin for adding passes to [Apple Wallet](https://developer.apple.com/documentation/passkit) and [Google Wallet](https://developers.google.com/wallet).\n\n<div class=\"capawesome-z29o10a\">\n  <a href=\"https://cloud.capawesome.io/\" target=\"_blank\">\n    <img alt=\"Deliver Live Updates to your Capacitor app with Capawesome Cloud\" src=\"https://cloud.capawesome.io/assets/banners/cloud-build-and-deploy-capacitor-apps.png?t=1\" />\n  </a>\n</div>\n\n## Features\n\n- 🍎 **Apple Wallet**: Add passes such as tickets, loyalty cards, coupons and boarding passes to Apple Wallet.\n- 🤖 **Google Wallet**: Save passes to Google Wallet using the official \"Save to Wallet\" flow.\n- ✅ **Availability check**: Check whether passes can be added on the current device before showing the UI.\n- 📦 **CocoaPods & SPM**: Supports CocoaPods and Swift Package Manager for iOS.\n- 🔁 **Up-to-date**: Always supports the latest Capacitor version.\n\nMissing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look!\n\n## Use Cases\n\nThe Wallet plugin is typically used to hand digital passes to the user's wallet app, for example:\n\n- **Boarding passes**: Add flight or train boarding passes so travelers have them ready at the gate.\n- **Event tickets**: Add tickets for concerts, sports events, or the cinema.\n- **Loyalty cards**: Let customers store membership and loyalty cards in their wallet.\n- **Coupons**: Distribute coupons and vouchers that users can redeem in store.\n\n## Compatibility\n\n| Plugin Version | Capacitor Version | Status         |\n| -------------- | ----------------- | -------------- |\n| 0.x.x          | >=8.x.x           | Active support |\n\n## Installation\n\nYou can use our **AI-Assisted Setup** to install the plugin.\nAdd the [Capawesome Skills](https://github.com/capawesome-team/skills) to your AI tool using the following command:\n\n```bash\nnpx skills add capawesome-team/skills --skill capacitor-plugins\n```\n\nThen use the following prompt:\n\n```\n Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-wallet` plugin in my project.\n```\n\nIf you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below:\n\n```bash\nnpm install @capawesome/capacitor-wallet\nnpx cap sync\n```\n\nThis plugin presents passes only. Passes must be **created and signed on your server**. See [Creating Passes](#creating-passes) below.\n\n### iOS\n\nAdding passes to Apple Wallet via `PKAddPassesViewController` does not require any special entitlement. The `com.apple.developer.pass-type-identifiers` entitlement is only needed if you want to read or manage passes that your app owns, which is out of scope for this plugin.\n\n### Android\n\nNo additional permissions or Gradle variables are required. The plugin opens the Google Wallet \"Save to Wallet\" flow, which is handled by the Google Wallet app or the device's browser.\n\n## Configuration\n\nNo configuration required for this plugin.\n\n## Usage\n\nThe following examples show how to check whether passes can be added, add passes to Apple Wallet, and save a pass to Google Wallet.\n\n### Check whether passes can be added\n\nOn some devices (e.g. certain iPads) or when adding passes is restricted, passes cannot be added to Apple Wallet. Use this method to gate the UI that triggers `addPasses(...)`. Only available on iOS:\n\n```typescript\nimport { Wallet } from '@capawesome/capacitor-wallet';\n\nconst canAddPasses = async () => {\n  const { canAdd } = await Wallet.canAddPasses();\n  return canAdd;\n};\n```\n\n### Add passes to Apple Wallet\n\nPresent the system add-pass sheet with one or more passes. Each pass must be a base64-encoded `.pkpass` file that was created and signed on your server (see [Creating Passes](#creating-passes)). Only available on iOS:\n\n```typescript\nimport { Wallet } from '@capawesome/capacitor-wallet';\n\nconst addPasses = async (passes: string[]) => {\n  // `passes` are base64-encoded `.pkpass` files that were signed on your server.\n  await Wallet.addPasses({ passes });\n};\n```\n\n### Save a pass to Google Wallet\n\nOpen the Google Wallet \"Save to Wallet\" flow with a signed JWT that was created on your server (see [Creating Passes](#creating-passes)). Only available on Android:\n\n```typescript\nimport { Wallet } from '@capawesome/capacitor-wallet';\n\nconst saveToGoogleWallet = async (jwt: string) => {\n  // `jwt` is a signed Google Wallet JWT that was created on your server.\n  await Wallet.saveToGoogleWallet({ jwt });\n};\n```\n\n## API\n\n<docgen-index>\n\n* [`addPasses(...)`](#addpasses)\n* [`canAddPasses()`](#canaddpasses)\n* [`saveToGoogleWallet(...)`](#savetogooglewallet)\n* [Interfaces](#interfaces)\n\n</docgen-index>\n\n<docgen-api>\n<!--Update the source file JSDoc comments and rerun docgen to update the docs below-->\n\n### addPasses(...)\n\n```typescript\naddPasses(options: AddPassesOptions) => Promise<void>\n```\n\nAdd one or more passes to Apple Wallet.\n\nThe passes must be created and signed on your server. This method only\npresents the system add-pass sheet with the provided passes.\n\nOnly available on iOS.\n\n| Param         | Type                                                          |\n| ------------- | ------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#addpassesoptions\">AddPassesOptions</a></code> |\n\n**Since:** 0.1.0\n\n--------------------\n\n\n### canAddPasses()\n\n```typescript\ncanAddPasses() => Promise<CanAddPassesResult>\n```\n\nCheck whether passes can be added to Apple Wallet.\n\nThis may return `false` on some devices (e.g. certain iPads) or when adding\npasses is restricted. Use this to gate the UI that triggers `addPasses`.\n\nOnly available on iOS.\n\n**Returns:** <code>Promise&lt;<a href=\"#canaddpassesresult\">CanAddPassesResult</a>&gt;</code>\n\n**Since:** 0.1.0\n\n--------------------\n\n\n### saveToGoogleWallet(...)\n\n```typescript\nsaveToGoogleWallet(options: SaveToGoogleWalletOptions) => Promise<void>\n```\n\nSave a pass to Google Wallet.\n\nThis opens the Google Wallet \"Save to Wallet\" flow using the provided JWT.\nThe JWT must be created and signed on your server.\n\n**Note**: With the URL-based flow there is no completion signal, so the\npromise resolves as soon as the flow is launched, not when the pass is\nactually saved.\n\nOnly available on Android.\n\n| Param         | Type                                                                            |\n| ------------- | ------------------------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#savetogooglewalletoptions\">SaveToGoogleWalletOptions</a></code> |\n\n**Since:** 0.1.0\n\n--------------------\n\n\n### Interfaces\n\n\n#### AddPassesOptions\n\n| Prop         | Type                  | Description                                                                                                           | Since |\n| ------------ | --------------------- | --------------------------------------------------------------------------------------------------------------------- | ----- |\n| **`passes`** | <code>string[]</code> | The passes to add to Apple Wallet. Each entry must be a base64-encoded `.pkpass` file that was signed on your server. | 0.1.0 |\n\n\n#### CanAddPassesResult\n\n| Prop         | Type                 | Description                                  | Since |\n| ------------ | -------------------- | -------------------------------------------- | ----- |\n| **`canAdd`** | <code>boolean</code> | Whether passes can be added to Apple Wallet. | 0.1.0 |\n\n\n#### SaveToGoogleWalletOptions\n\n| Prop      | Type                | Description                                                   | Since |\n| --------- | ------------------- | ------------------------------------------------------------- | ----- |\n| **`jwt`** | <code>string</code> | The signed Google Wallet JWT that was created on your server. | 0.1.0 |\n\n</docgen-api>\n\n## Creating Passes\n\nThis plugin only **presents** passes to the user. Creating and signing passes must happen on your server, because it requires private keys and certificates that must never be shipped inside your app.\n\n### Apple Wallet\n\nA pass is a signed `.pkpass` bundle. Build and sign it on your server using your Pass Type ID certificate, then send the resulting file to your app as a base64-encoded string and pass it to `addPasses(...)`. See Apple's [Wallet documentation](https://developer.apple.com/documentation/walletpasses) for details on building and signing passes.\n\n### Google Wallet\n\nA pass is represented by a signed JWT. Create and sign the JWT on your server using your Google Wallet service account, then send it to your app and pass it to `saveToGoogleWallet(...)`. See Google's [Wallet API documentation](https://developers.google.com/wallet) for details on creating passes and JWTs.\n\n**Note**: With the URL-based \"Save to Wallet\" flow used by this plugin, there is no completion signal, so `saveToGoogleWallet(...)` resolves as soon as the flow is launched, not when the pass is actually saved.\n\n## FAQ\n\n### How is this plugin different from other similar plugins?\n\nIt covers both Apple Wallet and Google Wallet from a single fully typed API, presenting signed `.pkpass` passes on iOS and opening the official Google Wallet \"Save to Wallet\" flow on Android, with an availability check to gate your UI beforehand. It keeps a clean security boundary by presenting passes only — signing stays on your server, where your keys belong — and the README links the official Apple and Google guidance for creating them. The plugin is actively maintained against the latest Capacitor and OS versions.\n\n### Can this plugin create passes for me?\n\nNo, this plugin only presents passes to the user. Creating and signing passes must happen on your server, because it requires private keys and certificates that must never be shipped inside your app. See [Creating Passes](#creating-passes) for details and links to the official Apple and Google documentation.\n\n### Which methods are available on which platform?\n\nThe `addPasses(...)` and `canAddPasses()` methods are only available on iOS, where they interact with Apple Wallet. The `saveToGoogleWallet(...)` method is only available on Android, where it opens the Google Wallet \"Save to Wallet\" flow.\n\n### Why does `saveToGoogleWallet` resolve before the pass is saved?\n\nThe plugin uses the URL-based \"Save to Wallet\" flow, which does not provide a completion signal. The promise therefore resolves as soon as the flow is launched, not when the pass is actually saved.\n\n### Do I need a special entitlement to add passes on iOS?\n\nNo, adding passes via the system add-pass sheet does not require any special entitlement. The `com.apple.developer.pass-type-identifiers` entitlement is only needed if you want to read or manage passes that your app owns, which is out of scope for this plugin.\n\n### Why does `canAddPasses` return false?\n\nThe `canAddPasses()` method may return `false` on some devices (e.g. certain iPads) or when adding passes is restricted. Use it to hide or disable the UI that triggers `addPasses(...)` in these cases.\n\n### Can I use this plugin with Ionic, React, Vue or Angular?\n\nYes, the plugin is framework-agnostic. It works in any Capacitor app regardless of the web framework, including Ionic with Angular, React, or Vue, as well as plain JavaScript projects.\n\n## Related Plugins\n\n- [Purchases](https://capawesome.io/docs/sdks/capacitor/purchases/): Support in-app purchases in your Capacitor app.\n- [Square Mobile Payments](https://capawesome.io/docs/sdks/capacitor/square-mobile-payments/): Accept payments with the Square Mobile Payments SDK.\n\n## Newsletter\n\nStay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/).\n\n## Changelog\n\nSee [CHANGELOG.md](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/wallet/CHANGELOG.md).\n\n## License\n\nSee [LICENSE](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/wallet/LICENSE).\n","readmeFilename":"README.md"}