> 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/apple-wallet-provider.md).

# Apple Wallet Provider

## Get Apple Wallet provider settings

> Returns the wallet fields of \`server/apple.yml\`. Private key material is never returned; only a\
> presence flag (\`hasValue\`/\`hasKey\`) indicates whether it is currently set. Omit the\
> corresponding field on \`PUT\` to keep the currently configured private key material unchanged.

```json
{"openapi":"3.1.1","info":{"title":"Neostore internal API","version":"v1"},"tags":[{"name":"AppleWalletProvider"}],"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":{"AppleWalletProviderDefinition":{"required":["apnKey","pass","teamIdentifier"],"type":"object","properties":{"teamIdentifier":{"type":"string","description":"Team identifier of the organization that originated and signed the pass, as issued by Apple."},"apnKey":{"description":"Information about the key generated by Apple for the Apple Push Notifications service.","$ref":"#/components/schemas/APNKeyDefinition"},"pass":{"description":"Information related to the Apple certificate used to generate passes.","$ref":"#/components/schemas/PassDefinition"},"webServiceUrl":{"type":["null","string"],"description":"WebServiceUrl used by Apple Wallet to migrate passes from neostore to another pass provider.","format":"uri"}},"additionalProperties":false,"description":"Apple Wallet provider settings."},"APNKeyDefinition":{"required":["hasValue","id"],"type":"object","properties":{"id":{"type":"string","description":"Identifier of the key. In most cases a 10 digit number embedded in the file name of the key generated by Apple."},"hasValue":{"type":"boolean","description":"Whether the P8 key value is currently set."}},"additionalProperties":false,"description":"Apple Push Notifications key, with the private key material redacted."},"PassDefinition":{"required":["certificate","passTypeIdentifier"],"type":"object","properties":{"passTypeIdentifier":{"type":"string","description":"Pass type identifier, as issued by Apple."},"certificate":{"description":"Certificate used to sign the pass.","$ref":"#/components/schemas/PassCertificateDefinition"},"certificateRequest":{"description":"Current certificate request, if any.","$ref":"#/components/schemas/PassCertificateSigningRequestDefinition"}},"additionalProperties":false,"description":"Pass configuration, with private key material redacted."},"PassCertificateDefinition":{"required":["certificate","hasKey"],"type":"object","properties":{"certificate":{"type":"string","description":"PEM encoded (Base64) Certificate."},"hasKey":{"type":"boolean","description":"Whether the private key is currently set."}},"additionalProperties":false,"description":"Apple Wallet pass signing certificate, with private key material redacted."},"PassCertificateSigningRequestDefinition":{"required":["hasKey","passTypeIdentifier"],"type":"object","properties":{"certificateRequest":{"type":["null","string"],"description":"PEM encoded (Base64) Certificate request (CSR)."},"passTypeIdentifier":{"type":"string","description":"Pass type identifier, as issued by Apple."},"hasKey":{"type":"boolean","description":"Whether the private key is currently set."}},"additionalProperties":false,"description":"Current certificate signing request (CSR), with private key 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/apple":{"get":{"tags":["AppleWalletProvider"],"summary":"Get Apple Wallet provider settings","description":"Returns the wallet fields of `server/apple.yml`. Private key material is never returned; only a\npresence flag (`hasValue`/`hasKey`) indicates whether it is currently set. Omit the\ncorresponding field on `PUT` to keep the currently configured private key material unchanged.","parameters":[{"name":"tenantId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Settings returned.","content":{"text/plain":{"schema":{"description":"Apple Wallet provider settings.","$ref":"#/components/schemas/AppleWalletProviderDefinition"}},"application/json":{"schema":{"description":"Apple Wallet provider settings.","$ref":"#/components/schemas/AppleWalletProviderDefinition"}},"text/json":{"schema":{"description":"Apple Wallet provider settings.","$ref":"#/components/schemas/AppleWalletProviderDefinition"}}}},"404":{"description":"Apple 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 Apple Wallet provider settings

> Replaces the wallet fields, leaving the "Sign in with Apple" \`serviceIdentifier\` field of the file\
> untouched (or empty if this is the first time \`server/apple.yml\` is being created for this tenant).

```json
{"openapi":"3.1.1","info":{"title":"Neostore internal API","version":"v1"},"tags":[{"name":"AppleWalletProvider"}],"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":{"UpdateAppleWalletProviderRequest":{"required":["apnKey","pass","teamIdentifier"],"type":"object","properties":{"teamIdentifier":{"minLength":1,"type":"string","description":"Team identifier of the organization that originated and signed the pass, as issued by Apple."},"apnKey":{"description":"Information about the key generated by Apple for the Apple Push Notifications service.","$ref":"#/components/schemas/APNKeyRequest"},"pass":{"description":"Information related to the Apple certificate used to generate passes.","$ref":"#/components/schemas/PassRequest"},"webServiceUrl":{"type":["null","string"],"description":"WebServiceUrl used by Apple Wallet to migrate passes from neostore to another pass provider.","format":"uri"}},"additionalProperties":false,"description":"Request body to configure Apple Wallet."},"APNKeyRequest":{"required":["id"],"type":"object","properties":{"id":{"minLength":1,"type":"string","description":"Identifier of the key. In most cases a 10 digit number embedded in the file name of the key generated by Apple."},"value":{"type":["null","string"],"description":"Base64 value of the P8 key. Omit or leave empty to keep the currently configured value unchanged;\nrequired the first time Apple Wallet is configured."}},"additionalProperties":false,"description":"Request body to configure the Apple Push Notifications key."},"PassRequest":{"required":["certificate","passTypeIdentifier"],"type":"object","properties":{"passTypeIdentifier":{"minLength":1,"type":"string","description":"Pass type identifier, as issued by Apple."},"certificate":{"description":"Certificate used to sign the pass.","$ref":"#/components/schemas/PassCertificateRequest"},"certificateRequest":{"description":"Current certificate request. Should only be set when a request is being issued.","$ref":"#/components/schemas/PassCertificateSigningRequestRequest"}},"additionalProperties":false,"description":"Request body to configure the Apple Wallet pass."},"PassCertificateRequest":{"required":["certificate"],"type":"object","properties":{"key":{"type":["null","string"],"description":"PEM encoded (Base64) Private Key. Omit or leave empty to keep the currently configured private key\nunchanged; required the first time Apple Wallet is configured."},"certificate":{"minLength":1,"type":"string","description":"PEM encoded (Base64) Certificate."}},"additionalProperties":false,"description":"Request body to configure the Apple Wallet pass signing certificate."},"PassCertificateSigningRequestRequest":{"required":["passTypeIdentifier"],"type":"object","properties":{"key":{"type":["null","string"],"description":"PEM encoded (Base64) Private Key. Omit or leave empty to keep the currently configured certificate\nrequest's private key unchanged; required the first time a certificate request is submitted."},"certificateRequest":{"type":["null","string"],"description":"PEM encoded (Base64) Certificate request (CSR)."},"passTypeIdentifier":{"minLength":1,"type":"string","description":"Pass type identifier, as issued by Apple."}},"additionalProperties":false,"description":"Request body to configure a certificate signing request (CSR)."},"AppleWalletProviderDefinition":{"required":["apnKey","pass","teamIdentifier"],"type":"object","properties":{"teamIdentifier":{"type":"string","description":"Team identifier of the organization that originated and signed the pass, as issued by Apple."},"apnKey":{"description":"Information about the key generated by Apple for the Apple Push Notifications service.","$ref":"#/components/schemas/APNKeyDefinition"},"pass":{"description":"Information related to the Apple certificate used to generate passes.","$ref":"#/components/schemas/PassDefinition"},"webServiceUrl":{"type":["null","string"],"description":"WebServiceUrl used by Apple Wallet to migrate passes from neostore to another pass provider.","format":"uri"}},"additionalProperties":false,"description":"Apple Wallet provider settings."},"APNKeyDefinition":{"required":["hasValue","id"],"type":"object","properties":{"id":{"type":"string","description":"Identifier of the key. In most cases a 10 digit number embedded in the file name of the key generated by Apple."},"hasValue":{"type":"boolean","description":"Whether the P8 key value is currently set."}},"additionalProperties":false,"description":"Apple Push Notifications key, with the private key material redacted."},"PassDefinition":{"required":["certificate","passTypeIdentifier"],"type":"object","properties":{"passTypeIdentifier":{"type":"string","description":"Pass type identifier, as issued by Apple."},"certificate":{"description":"Certificate used to sign the pass.","$ref":"#/components/schemas/PassCertificateDefinition"},"certificateRequest":{"description":"Current certificate request, if any.","$ref":"#/components/schemas/PassCertificateSigningRequestDefinition"}},"additionalProperties":false,"description":"Pass configuration, with private key material redacted."},"PassCertificateDefinition":{"required":["certificate","hasKey"],"type":"object","properties":{"certificate":{"type":"string","description":"PEM encoded (Base64) Certificate."},"hasKey":{"type":"boolean","description":"Whether the private key is currently set."}},"additionalProperties":false,"description":"Apple Wallet pass signing certificate, with private key material redacted."},"PassCertificateSigningRequestDefinition":{"required":["hasKey","passTypeIdentifier"],"type":"object","properties":{"certificateRequest":{"type":["null","string"],"description":"PEM encoded (Base64) Certificate request (CSR)."},"passTypeIdentifier":{"type":"string","description":"Pass type identifier, as issued by Apple."},"hasKey":{"type":"boolean","description":"Whether the private key is currently set."}},"additionalProperties":false,"description":"Current certificate signing request (CSR), with private key 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/apple":{"put":{"tags":["AppleWalletProvider"],"summary":"Configure Apple Wallet provider settings","description":"Replaces the wallet fields, leaving the \"Sign in with Apple\" `serviceIdentifier` field of the file\nuntouched (or empty if this is the first time `server/apple.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 Apple Wallet.","$ref":"#/components/schemas/UpdateAppleWalletProviderRequest"}},"text/json":{"schema":{"description":"Request body to configure Apple Wallet.","$ref":"#/components/schemas/UpdateAppleWalletProviderRequest"}},"application/*+json":{"schema":{"description":"Request body to configure Apple Wallet.","$ref":"#/components/schemas/UpdateAppleWalletProviderRequest"}}},"required":true},"responses":{"200":{"description":"Settings updated.","content":{"text/plain":{"schema":{"description":"Apple Wallet provider settings.","$ref":"#/components/schemas/AppleWalletProviderDefinition"}},"application/json":{"schema":{"description":"Apple Wallet provider settings.","$ref":"#/components/schemas/AppleWalletProviderDefinition"}},"text/json":{"schema":{"description":"Apple Wallet provider settings.","$ref":"#/components/schemas/AppleWalletProviderDefinition"}}}},"400":{"description":"A private key field (APNs key, certificate, or certificate request) was omitted 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/apple-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.
