> ## Documentation Index
> Fetch the complete documentation index at: https://docs.synctera.com/llms.txt
> Use this file to discover all available pages before exploring further.

# In-App Push Provisioning

> Let cardholders add a card to Apple Pay or Google Wallet by tapping a button in your app, rather than typing their card details.

In-app push provisioning lets a cardholder add a card to their wallet by tapping a button in your app, instead of typing card details. It converts far better than manual entry and removes the step where cardholders mistype a PAN.

It is the one provisioning method that requires integration work: with the wallet provider's SDK, and with Synctera to obtain the payload that SDK expects.

<Info>
  Before you build, your program needs push provisioning entitlements from Apple and Google, and must pass their UX reviews. See [Program Setup](/v2/docs/digital-wallets#program-setup).
</Info>

## Apple Pay

<CodeGroup>
  ```shell Shell theme={"system"}
  curl -X POST "$baseurl/v2/cards/{CARD_ID}/digital_wallet_tokens/applepay" \
    -H "Authorization: Bearer $apikey" \
    -H 'Content-Type: application/json' \
    --data-binary '{
      "device_type": "MOBILE_PHONE",
      "provisioning_app_version": "2.13.7",
      "certificates": [
        "MIIEPDCCA+KgAwIBAgICEAAwCQYHKoZIzj...",
        "MIIDZjCCAw2gAwIBAgIJAJx22AGaEPSgMA..."
      ],
      "nonce": "vXWJaBidcTLaJJCF",
      "nonce_signature": "jD4Aphu+93N2wbBn"
    }'
  ```
</CodeGroup>

The `certificates`, `nonce`, and `nonce_signature` come from Apple's SDK. The response returns `encrypted_pass_data`, `activation_data`, and `ephemeral_public_key` to pass back to it.

See [Create Digital Wallet Token for Apple Pay](/v2/reference/createdigitalwalletapple).

## Google Wallet

<CodeGroup>
  ```shell Shell theme={"system"}
  curl -X POST "$baseurl/v2/cards/{CARD_ID}/digital_wallet_tokens/googlepay" \
    -H "Authorization: Bearer $apikey" \
    -H 'Content-Type: application/json' \
    --data-binary '{
      "device_type": "MOBILE_PHONE",
      "provisioning_app_version": "2.13.3",
      "wallet_account_id": "ae25OGhjZTk2dsr452dgsr51",
      "device_id": "W85OGhjZTk2dsr452dgsr51j"
    }'
  ```
</CodeGroup>

The response returns `push_tokenize_request_data` for Google's SDK.

See [Create Digital Wallet Token for Google Pay](/v2/reference/createdigitalwalletgoogle).

## Next Steps

<CardGroup cols={2}>
  <Card title="Token Lifecycle Management" href="/v2/docs/digital-wallets-token-lifecycle" icon="arrows-rotate">
    What happens to the token once it exists.
  </Card>

  <Card title="Provisioning Decisions" href="/v2/docs/digital-wallets-provisioning-decisions" icon="shield">
    Why a provisioning attempt is challenged or refused.
  </Card>
</CardGroup>
