> For the complete documentation index, see [llms.txt](https://docs.thewalletcrew.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.thewalletcrew.io/api-reference/advanced/google-wallet-provider.md).

# Google Wallet Provider

## Get Google Wallet provider settings

> Returns the \`pay\` section of \`server/google.yml\`. Private key material is never returned;\
> only a presence flag (\`hasPrivateKey\`/\`hasClientSecret\`/\`hasRefreshToken\`) indicates\
> whether it is currently set. Omit \`credential.privateKey\` on \`PUT\` to keep the currently\
> configured private key unchanged.

```json
{"openapi":"3.1.1","info":{"title":"Neostore internal API","version":"v1"},"tags":[{"name":"GoogleWalletProvider"}],"servers":[{"url":"https://app.neostore.cloud","description":"Production Server"},{"url":"https://app-qa.neostore.cloud","description":"Staging Server"}],"security":[{"admin-bearer":["tenant.configuration.walletProvider:read"]},{"apiKey":[]}],"components":{"securitySchemes":{"admin-bearer":{"type":"oauth2","flows":{"implicit":{"authorizationUrl":"https://auth.neostore.cloud/authorize?audience=https://app.neostore.cloud/api/","scopes":{}}}},"apiKey":{"type":"apiKey","name":"X-API-KEY","in":"header"}},"schemas":{"GoogleWalletProviderDefinition":{"required":["credential","issuerId"],"type":"object","properties":{"issuerId":{"type":"string","description":"Google Wallet issuer identifier."},"credential":{"description":"Service account credential used to call the Google Wallet API.","$ref":"#/components/schemas/CredentialDefinition"},"webServiceUrl":{"type":["null","string"],"description":"WebServiceUrl used by Google Wallet to notify pass installation / uninstallation.","format":"uri"}},"additionalProperties":false,"description":"Google Wallet provider settings."},"CredentialDefinition":{"required":["clientEmail","clientId","hasClientSecret","hasPrivateKey","hasRefreshToken","privateKeyId","projectId","type"],"type":"object","properties":{"type":{"type":"string","description":"Type of the credential."},"projectId":{"type":"string","description":"Project ID associated with this credential."},"quotaProject":{"type":["null","string"],"description":"Project ID associated with this credential for the purposes of quota calculations and billing."},"clientId":{"type":"string","description":"Client ID associated with the credential."},"clientEmail":{"type":"string","description":"Client Email associated with the service account credential."},"privateKeyId":{"type":"string","description":"Private Key ID associated with the service account credential."},"hasPrivateKey":{"type":"boolean","description":"Whether the private key is currently set."},"hasClientSecret":{"type":"boolean","description":"Whether a client secret is currently set."},"hasRefreshToken":{"type":"boolean","description":"Whether a refresh token is currently set."},"additionalProperties":{"type":"object","additionalProperties":{},"description":"Any other fields present in the uploaded service account credential."}},"additionalProperties":false,"description":"Google Wallet issuer service account credential, with secret material redacted."},"ProblemDetails":{"type":"object","properties":{"type":{"type":["null","string"]},"title":{"type":["null","string"]},"status":{"type":["null","integer"],"format":"int32"},"detail":{"type":["null","string"]},"instance":{"type":["null","string"]}},"additionalProperties":{}},"HttpValidationProblemDetails":{"type":"object","allOf":[{"$ref":"#/components/schemas/ProblemDetails"}],"properties":{"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}},"additionalProperties":{}}}},"paths":{"/api/{tenantId}/admin/walletProviders/google":{"get":{"tags":["GoogleWalletProvider"],"summary":"Get Google Wallet provider settings","description":"Returns the `pay` section of `server/google.yml`. Private key material is never returned;\nonly a presence flag (`hasPrivateKey`/`hasClientSecret`/`hasRefreshToken`) indicates\nwhether it is currently set. Omit `credential.privateKey` on `PUT` to keep the currently\nconfigured private key unchanged.","parameters":[{"name":"tenantId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Settings returned.","content":{"text/plain":{"schema":{"description":"Google Wallet provider settings.","$ref":"#/components/schemas/GoogleWalletProviderDefinition"}},"application/json":{"schema":{"description":"Google Wallet provider settings.","$ref":"#/components/schemas/GoogleWalletProviderDefinition"}},"text/json":{"schema":{"description":"Google Wallet provider settings.","$ref":"#/components/schemas/GoogleWalletProviderDefinition"}}}},"404":{"description":"Google Wallet is not configured.","content":{"text/plain":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ProblemDetails"},{"$ref":"#/components/schemas/HttpValidationProblemDetails"}]}},"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ProblemDetails"},{"$ref":"#/components/schemas/HttpValidationProblemDetails"}]}},"text/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ProblemDetails"},{"$ref":"#/components/schemas/HttpValidationProblemDetails"}]}}}}}}}}}
```

## Configure Google Wallet provider settings

> Replaces the \`pay\` section, leaving the "Sign in with Google" fields of the file untouched (or\
> empty if this is the first time \`server/google.yml\` is being created for this tenant).

```json
{"openapi":"3.1.1","info":{"title":"Neostore internal API","version":"v1"},"tags":[{"name":"GoogleWalletProvider"}],"servers":[{"url":"https://app.neostore.cloud","description":"Production Server"},{"url":"https://app-qa.neostore.cloud","description":"Staging Server"}],"security":[{"admin-bearer":["tenant.configuration.walletProvider:write"]},{"apiKey":[]}],"components":{"securitySchemes":{"admin-bearer":{"type":"oauth2","flows":{"implicit":{"authorizationUrl":"https://auth.neostore.cloud/authorize?audience=https://app.neostore.cloud/api/","scopes":{}}}},"apiKey":{"type":"apiKey","name":"X-API-KEY","in":"header"}},"schemas":{"UpdateGoogleWalletProviderRequest":{"required":["credential","issuerId"],"type":"object","properties":{"issuerId":{"minLength":1,"type":"string","description":"Google Wallet issuer identifier."},"credential":{"description":"Service account credential used to call the Google Wallet API.","$ref":"#/components/schemas/CredentialRequest"},"webServiceUrl":{"type":["null","string"],"description":"WebServiceUrl used by Google Wallet to notify pass installation / uninstallation.","format":"uri"}},"additionalProperties":false,"description":"Request body to configure Google Wallet."},"CredentialRequest":{"required":["clientEmail","clientId","privateKeyId","projectId","type"],"type":"object","properties":{"type":{"minLength":1,"type":"string","description":"Type of the credential."},"projectId":{"minLength":1,"type":"string","description":"Project ID associated with this credential."},"quotaProject":{"type":["null","string"],"description":"Project ID associated with this credential for the purposes of quota calculations and billing."},"clientId":{"minLength":1,"type":"string","description":"Client ID associated with the credential."},"clientSecret":{"type":["null","string"],"description":"Client Secret associated with the credential. Omit or leave empty to keep the currently configured value unchanged."},"clientEmail":{"minLength":1,"type":"string","description":"Client Email associated with the service account credential."},"privateKey":{"type":["null","string"],"description":"Private Key associated with the service account credential. Omit or leave empty to keep the\ncurrently configured private key unchanged; required the first time Google Wallet is configured."},"privateKeyId":{"minLength":1,"type":"string","description":"Private Key ID associated with the service account credential."},"refreshToken":{"type":["null","string"],"description":"Refresh Token associated with the credential. Omit or leave empty to keep the currently configured value unchanged."},"additionalProperties":{"type":"object","additionalProperties":{},"description":"Any other fields present in the uploaded service account credential."}},"additionalProperties":false,"description":"Request body to configure the Google Wallet issuer service account credential."},"GoogleWalletProviderDefinition":{"required":["credential","issuerId"],"type":"object","properties":{"issuerId":{"type":"string","description":"Google Wallet issuer identifier."},"credential":{"description":"Service account credential used to call the Google Wallet API.","$ref":"#/components/schemas/CredentialDefinition"},"webServiceUrl":{"type":["null","string"],"description":"WebServiceUrl used by Google Wallet to notify pass installation / uninstallation.","format":"uri"}},"additionalProperties":false,"description":"Google Wallet provider settings."},"CredentialDefinition":{"required":["clientEmail","clientId","hasClientSecret","hasPrivateKey","hasRefreshToken","privateKeyId","projectId","type"],"type":"object","properties":{"type":{"type":"string","description":"Type of the credential."},"projectId":{"type":"string","description":"Project ID associated with this credential."},"quotaProject":{"type":["null","string"],"description":"Project ID associated with this credential for the purposes of quota calculations and billing."},"clientId":{"type":"string","description":"Client ID associated with the credential."},"clientEmail":{"type":"string","description":"Client Email associated with the service account credential."},"privateKeyId":{"type":"string","description":"Private Key ID associated with the service account credential."},"hasPrivateKey":{"type":"boolean","description":"Whether the private key is currently set."},"hasClientSecret":{"type":"boolean","description":"Whether a client secret is currently set."},"hasRefreshToken":{"type":"boolean","description":"Whether a refresh token is currently set."},"additionalProperties":{"type":"object","additionalProperties":{},"description":"Any other fields present in the uploaded service account credential."}},"additionalProperties":false,"description":"Google Wallet issuer service account credential, with secret material redacted."},"ProblemDetails":{"type":"object","properties":{"type":{"type":["null","string"]},"title":{"type":["null","string"]},"status":{"type":["null","integer"],"format":"int32"},"detail":{"type":["null","string"]},"instance":{"type":["null","string"]}},"additionalProperties":{}},"HttpValidationProblemDetails":{"type":"object","allOf":[{"$ref":"#/components/schemas/ProblemDetails"}],"properties":{"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}},"additionalProperties":{}}}},"paths":{"/api/{tenantId}/admin/walletProviders/google":{"put":{"tags":["GoogleWalletProvider"],"summary":"Configure Google Wallet provider settings","description":"Replaces the `pay` section, leaving the \"Sign in with Google\" fields of the file untouched (or\nempty if this is the first time `server/google.yml` is being created for this tenant).","parameters":[{"name":"tenantId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"description":"Request body to configure Google Wallet.","$ref":"#/components/schemas/UpdateGoogleWalletProviderRequest"}},"text/json":{"schema":{"description":"Request body to configure Google Wallet.","$ref":"#/components/schemas/UpdateGoogleWalletProviderRequest"}},"application/*+json":{"schema":{"description":"Request body to configure Google Wallet.","$ref":"#/components/schemas/UpdateGoogleWalletProviderRequest"}}},"required":true},"responses":{"200":{"description":"Settings updated.","content":{"text/plain":{"schema":{"description":"Google Wallet provider settings.","$ref":"#/components/schemas/GoogleWalletProviderDefinition"}},"application/json":{"schema":{"description":"Google Wallet provider settings.","$ref":"#/components/schemas/GoogleWalletProviderDefinition"}},"text/json":{"schema":{"description":"Google Wallet provider settings.","$ref":"#/components/schemas/GoogleWalletProviderDefinition"}}}},"400":{"description":"No private key was supplied and none is currently configured.","content":{"text/plain":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ProblemDetails"},{"$ref":"#/components/schemas/HttpValidationProblemDetails"}]}},"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ProblemDetails"},{"$ref":"#/components/schemas/HttpValidationProblemDetails"}]}},"text/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ProblemDetails"},{"$ref":"#/components/schemas/HttpValidationProblemDetails"}]}}}}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.thewalletcrew.io/api-reference/advanced/google-wallet-provider.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
