---
title: "Create Push Provisioning Data for App-Initiated Digital Wallet Operations"
method: POST
path: "/programs/{programCode}/accounts/{accountIdentifier}/paymentInstruments/{paymentInstrumentIdentifier}/pushProvisionData"
tags: ["PaymentInstrumentToken"]
---

# Create Push Provisioning Data for App-Initiated Digital Wallet Operations

`POST /programs/{programCode}/accounts/{accountIdentifier}/paymentInstruments/{paymentInstrumentIdentifier}/pushProvisionData`

Creates Push Provisioning Data for App-Initiated Digital Wallet Operations. This endpoint generates the data required to provision a payment instrument into a digital wallet (e.g., Apple Pay, Google Pay, Samsung Pay) for a specific account and payment instrument. The request must include device and wallet provider information.

## Path parameters

- `programCode` string, required
- `accountIdentifier` string, required
- `paymentInstrumentIdentifier` string, required

## Headers

- `X-GD-RequestId` string, required

## Request body

- CreatePushProvisionDataRequest — Represents a request to initiate push provisioning of a payment instrument to a digital wallet. Contains all necessary data for the provisioning process, including wallet provider, account and instrument identifiers, and device-specific data.
  - `walletProvider` 'apple' | 'google' | 'samsung' | 'onepay', nullable — Gets or sets the provider of the wallet to which the payment instrument will be provisioned.
  - `deviceData` DeviceData — Container for device data related to push provisioning request
    - `nonce` string, nullable — Hex Encoded Unique value generated by device to mark request as unique
    - `nonceSignature` string, nullable — Hex Encoded Signature generated by device secure element over the nonce field to prevent data tampering
    - `publicCertData` string, nullable — Hex encoded public certificate for which provisioning response data should be encrypted
    - `clientDeviceId` string, nullable — Stable hardware identifier obtained from device
    - `clientWalletId` string, nullable — Provider assigned identifier for a wallet

## Response `200`

OK

- CreatePushProvisionDataResponse — Container for response data from creating push provision data
  - `activationData` string, nullable — Base 64 encoded provisioning activation data when provisioning request is for Apple
  - `encryptedPaymentData` EncryptedData — Represents a container for encrypted data used in secure data transfer operations. Contains the encrypted payload and associated cryptographic metadata, including encryption version, ephemeral public key, and public key hash. Used to securely transmit sensitive information such as user data, ensuring confidentiality and integrity during transport.
    - `version` string, nullable — The version of the encryption algorithm used to encrypt the data (e.g., "v1", "v2").
    - `ephemeralPublicKey` string, nullable — The ephemeral public key used in the encryption process, typically for key exchange or session establishment.
    - `publicKeyHash` string, nullable — The hash of the public key used to verify the integrity and authenticity of the encryption key.
    - `data` string, nullable — The encrypted data payload, typically base64-encoded, containing the sensitive information.
  - `opc` string, nullable — Opc when provisioning request is for Google
  - `displayName` string, nullable — Description of associated product
  - `paymentNetworkOperator` string, nullable — Identifier for payment network operator (Visa/MasterCard/Discover/QUICPay)
  - `billingAddress` Address — Container for address information, including street, city, state, postal code, and metadata. Used for storing and transferring user or account address details.
    - `addressLine1` string, nullable — The first line of the street address (e.g., house number and street name).
    - `addressLine2` string, nullable — The second line of the street address (e.g., apartment, suite, unit, building, floor, etc.).
    - `city` string, nullable — The city or locality of the address.
    - `state` string, nullable — The state, province, or region of the address.
    - `zipCode` string, nullable — The postal or ZIP code for the address.
    - `county` string, nullable — The county or district of the address, if applicable.
    - `countryCode` string, nullable — The ISO country code (e.g., "US" for United States).
    - `type` string, nullable — The type of address (e.g., "home", "work", "mailing").
    - `isDefault` boolean — Indicates whether this address is the default address for the user or account.
    - `isVerified` boolean — Indicates whether this address has been verified (e.g., by postal service or user confirmation).
    - `isReturned` boolean — Indicates whether mail sent to this address has been returned as undeliverable.
    - `lastUpdatedDateTime` string, nullable — The date and time when the address was last updated, typically in ISO 8601 format.
  - `phoneNumber` PhoneNumber — Represents a phone number and related metadata for a user. Contains the phone number value, type, verification status, default flag, and last updated timestamp. Used to store and manage user contact information for notifications, authentication, and communication purposes.
    - `number` string, nullable — The user's phone number.
    - `type` string, nullable — The type of phone number (e.g., "Mobile", "Home", "Work").
    - `isDefault` boolean — Indicates whether this phone number is the user's default contact number.
    - `isVerified` boolean — Indicates whether the phone number has been verified.
    - `lastUpdatedDateTime` string, nullable — The date and time when the phone number was last updated, typically in ISO 8601 format.
  - `last4Pan` string, nullable — Last four digits of the payment card
  - `responseDetails` ResponseDetail[], nullable — Required: A list of response details providing status codes, descriptions, and additional information about the result of the operation.
    - `code` integer — The primary status or error code for the response (e.g., 200 for success, 400 for validation error).
    - `subCode` integer, nullable — An optional subcode providing more granular detail about the response or error.
    - `description` string, nullable — A human-readable description of the response, error, or status.
    - `url` string, nullable — A URL linking to documentation or a web page with more information about the response code.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `500` — Internal Server Error
- `503` — Service Unavailable

---

[API](https://skmtc.net/greendot/apis/baas-apis.md) · [All operations](https://skmtc.net/greendot/apis/baas-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/greendot/baas-apis/revisions/666553766b78/schema)
