Skip to content

Administrator setup.

Configure Google Wallet once for the whole installation: a Google Cloud project, an issuer account, and the credentials.

Jul 21, 2026

Before members can save a pass, an administrator sets Google Wallet up once for the whole installation: a Google Cloud project with a service account, an issuer account, and the credentials.

1. Google Cloud prerequisites

Before configuring Reward Loyalty, you need a Google Cloud project with a service account.

Create a project and enable the API:

  1. Go to the Google Cloud Console
  2. Create a new project (or use an existing one)
  3. Enable the Google Wallet API: go to APIs & Services → Library, search for "Google Wallet API", and click Enable

Create a service account:

  1. Open the ☰ navigation menu (top-left hamburger icon) and go to IAM & Admin → Service Accounts. Do not use the "Create credentials" button on the API page. That creates the wrong credential type.
  2. Click Create Service Account
  3. Enter a name (e.g. reward-loyalty-wallet) and click Create and Continue
  4. On the "Grant this service account access" step, skip it and click Continue. No roles are needed. The Wallet API uses its own issuer-level permissions.
  5. On the "Grant users access" step, skip it and click Done. This controls who else in your org can manage this service account.

Download the JSON key:

  1. You are now on the service accounts list. Click on the service account you created.
  2. Go to the Keys tab
  3. Click Add key → Create new key
  4. In the dialog that appears, select JSON and click Create
  5. A .json file downloads to your computer. Back up this file. You cannot download it again.
  6. Open the JSON file and note the client_email value (e.g. [email protected]). You will need this in the next step.

For the official Google guide, see Google Wallet Prerequisites.

2. Google Wallet issuer account

Get your issuer ID:

  1. Go to the Google Pay & Wallet Console
  2. Sign in with the Google account that owns your Cloud project
  3. In the left sidebar, click Google Wallet API (not Google Pay API). If this is your first time, click Build your first pass to initialize the Wallet API section.
  4. Your Issuer ID appears at the top of the page next to the heading. It is a long numeric value like 3388000000023138604. This is not the Merchant ID shown on the main dashboard (that alphanumeric code is for Google Pay, not Google Wallet).

Authorize your service account:

  1. In the left sidebar, click Users
  2. Click Invite a user
  3. Paste the service account email you noted in step 14 (the client_email from your JSON key file)
  4. Set the Access level to Admin
  5. Click Invite

Add test accounts (demo mode only):

  1. While your account is in demo mode, only authorized test accounts can see passes on their phones. Go back to Google Wallet API in the left sidebar, click Set up test accounts, and add the personal Gmail addresses of anyone who needs to test. Console admins and developers can always test without being added here.
  2. Once you request and receive publishing access, all users can see passes and this step is no longer needed.

3. Configure credentials

You need to give Reward Loyalty the JSON key file you downloaded. There are two ways to do this. Pick one.

  1. Open the downloaded .json file in a text editor
  2. Remove all line breaks so the entire JSON is on one line. Most editors have a "Join Lines" command, or you can run this in a terminal:
cat ~/Downloads/your-key-file.json | tr -d '\n' | tr -s ' '
  1. Copy the single-line result and paste it into your .env file, wrapped in single quotes:
GOOGLE_WALLET_CREDENTIALS_JSON='{"type":"service_account","project_id":"your-project","private_key_id":"...","private_key":"-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n","client_email":"...","client_id":"...","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_x509_cert_url":"https://www.googleapis.com/robot/v1/metadata/...","universe_domain":"googleapis.com"}'

The single quotes are required. Without them, the double quotes inside the JSON break the .env parser and cause a 500 error. Do not replace the internal double quotes. JSON requires them. The \n characters inside private_key are literal escape sequences and should stay as-is.

Option B: File path (simpler for traditional server hosting)

  1. Create the credentials directory inside your Reward Loyalty installation:
mkdir -p storage/credentials
  1. Copy the downloaded .json file into that directory:
cp ~/Downloads/your-key-file.json storage/credentials/google-wallet-sa.json
  1. Add the path to your .env file:
GOOGLE_WALLET_CREDENTIALS_PATH=storage/credentials/google-wallet-sa.json

The path is relative to your project root. Do not place the file in the public/ directory.

Remaining .env variables

# Your issuer ID from the Google Pay & Wallet Console
GOOGLE_WALLET_ISSUER_ID=3388000000012345678

If both GOOGLE_WALLET_CREDENTIALS_JSON and GOOGLE_WALLET_CREDENTIALS_PATH are set, the inline JSON takes priority.

After updating .env, clear the config cache:

php artisan config:clear

Prefer the admin? You can set the issuer ID, the credentials file path, and the service-account JSON in Settings → Integrations (the Google Wallet credentials card) instead of editing .env. The JSON is stored encrypted and overrides the environment value; clearing it falls back to .env. See System settings → Integrations.

4. Grant Google Wallet to a specific partner (optional)

Google Wallet is a plan feature. Partners on a plan that includes it (Gold and Platinum by default) can use it as soon as the credentials are in place, with no manual grant needed. This step is only for the exception: granting it to a partner whose plan does not include it, or revoking it from one whose plan does. This per-partner override lives on the Permissions tab, is always available, and takes precedence over the plan.

  1. Sign in as Admin
  2. Go to Administration → Partners
  3. Click Edit on the partner you want to change
  4. Go to the Permissions tab
  5. Enable (or disable) the Google Wallet toggle
  6. Save

The partner can now see the Google Wallet toggle on their cards, as can any partner whose plan already includes Google Wallet, without this step.

5. Verify configuration

Go to Settings → Integrations in the admin sidebar. The Google Wallet status card shows:

  • Configured: Issuer ID and credentials are set. The integration is ready to use.
  • Not Configured: One or both are missing. Add them in the Google Wallet card here in Settings → Integrations, or check your .env file and run php artisan config:clear.

Cookies on this site.

Google Analytics runs only if you allow it. Cookie policy