# Chase Pay
source: https://developer.mastercard.com/mastercard-gateway/documentation/payment-methods/digital-wallets/chase-pay/index.md

Chase Pay is a digital wallet service by Chase that enables secure, seamless online checkout experiences for payers on the web on any device using credit/debit cards saved to their Chase account. Chase Pay is a supported device payment on the Mastercard Gateway.

This page describes integration details specific to Chase Pay. It is recommended that you read the [integration guidelines for device payments](https://developer.mastercard.com/mastercard-gateway/documentation/integrations-types/mobile-integration/integrate-mobile-payments/index.md), before building your Chase Pay integration.

## Prerequisites {#prerequisites}

To accept Chase Pay payments:

* Sign up with Chase.
* Your merchant profile on the gateway must be enabled for Device Payments by your payment service provider.

## Adding support for Chase Pay to your integration {#adding-support-for-chase-pay-to-your-integration}

You can integrate Chase Pay into your mobile app or the checkout page of your website using [Direct Payment](https://developer.mastercard.com/mastercard-gateway/documentation/integrations-types/direct-payment/index.md).

1. On payment confirmation, submit the encrypted payment token returned by Chase Pay to your server.
2. Decrypt the payment token on your server using your private key. For decryption steps, contact Chase.
3. Provide the keys from the decrypted payment token in the corresponding transaction fields on the Authorize/Pay request or the Update Session request.

For a decrypted Chase Pay payment token, the payload will contain:

| Chase Pay JSON Key |                   Corresponding API Request Field                   |                                                      Description                                                       |
|--------------------|---------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| DPAN               | `sourceOfFunds.provided.card.number`                                | The token of the card that funded this transaction.                                                                    |
| TokenRequestorID   | `sourceOfFunds.tokenRequestorID`                                    | The unique identifier assigned to you by the Token Service Provider that you requested a token from, for this payment. |
| paymentCryptogram  | `sourceOfFunds.provided.card.devicePayment.onlinePaymentCryptogram` | Cryptogram in EMV 3-D Secure format.                                                                                   |
| eciIndicator       | `sourceOfFunds.provided.card.devicePayment.eciIndicator`            | ECI indicator as per EMV 3-D Secure specification.                                                                     |

**sourceOfFunds.provided.card.devicePayment** [\[REST\]](https://developer.mastercard.com/mastercard-gateway/documentation/api-reference/v100/rest/api-ops/index.md#transaction) [\[NVP\]](https://developer.mastercard.com/mastercard-gateway/documentation/api-reference/v100/nvp/api-ops/index.md#transaction)

4. In addition to the above fields, include these in the Authorize/Pay request and submit it to the gateway.

   * `transaction.source`=INTERNET
   * `order.walletProvider`=CHASE_PAY
   * `device.mobilePhoneModel`: (optional) The identifier of the mobile device used to initiate the payment.
   * `sourceOfFunds.provided.card.expiry`
   * `order.amount`
   * `order.currency`
   * `posTerminal.location`: You can specify **PAYER_TERMINAL_OFF_PREMISES** or **PAYER_TERMINAL_ON_PREMISES** . If you do not provide a value, **PAYER_TERMINAL_OFF_PREMISES** is used.

### Example request and response {#example-request-and-response}

Here is a sample Authorization request and response in REST where the payment token is decrypted by the gateway.

| HTTP Method |                                           URL                                            |                                            Header                                             |
|-------------|------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------|
| PUT         | {{host}}/api/rest/version/100/merchant/MADA_DMS_AU/order/169133315/transaction/884896907 | Authorization: Basic bWVyY2hhbnQuTUFEQV9ETVNfQVU6M2RjYTQ2YTU1ODYwNDlmMjhhM2FmZGJmZDEwMGNmNWQ= |

```json
{
    "apiOperation": "AUTHORIZE",
    "order": {
        "amount": "100",
        "currency": "USD",
        "walletProvider": "CHASE_PAY"
    },
    "sourceOfFunds": {
        "provided": {
            "card": {
                "expiry": {
                    "month": "05",
                    "year": "17"
                },
                "number": "4444333322221111",
                "devicePayment": {
                    "cryptogramFormat": "3DSECURE",
                    "onlinePaymentCryptogram": "gIG4FrSFGCg4iYqLjI2Oj5CRkpM=",
                    "eciIndicator": "05"
                }
            }
        },
        "type": "CARD",
        "tokenRequestorID": "12345678901"
    },
    "transaction": {
        "source": "INTERNET"
    }
} 
```

```json
{
    "authorizationResponse": {
        "commercialCard": "!01",
        "commercialCardIndicator": "0",
        "date": "0314",
        "posData": "1025104006600",
        "posEntryMode": "812",
        "processingCode": "003000",
        "responseCode": "00",
        "returnAci": "Y",
        "stan": "44427",
        "time": "104520"
    },
    "gatewayEntryPoint": "WEB_SERVICES_API",
    "merchant": "MADA_DMS_AU",
    "order": {
        "amount": 100.00,
        "authenticationStatus": "AUTHENTICATION_NOT_IN_EFFECT",
        "certainty": "FINAL",
        "chargeback": {
            "amount": 0,
            "currency": "USD"
        },
        "creationTime": "2023-03-14T10:45:20.127Z",
        "currency": "USD",
        "id": "169133315",
        "lastUpdatedTime": "2023-03-14T10:45:20.671Z",
        "merchantAmount": 100.00,
        "merchantCategoryCode": "1234",
        "merchantCurrency": "USD",
        "status": "AUTHORIZED",
        "totalAuthorizedAmount": 100.00,
        "totalCapturedAmount": 0.00,
        "totalDisbursedAmount": 0.00,
        "totalRefundedAmount": 0.00,
        "walletProvider": "CHASE_PAY"
    },
    "response": {
        "acquirerCode": "00",
        "acquirerMessage": "Approved",
        "gatewayCode": "APPROVED",
        "gatewayRecommendation": "NO_ACTION"
    },
    "result": "SUCCESS",
    "sourceOfFunds": {
        "provided": {
            "card": {
                "brand": "VISA",
                "devicePayment": {
                    "cryptogramFormat": "3DSECURE"
                },
                "deviceSpecificExpiry": {
                    "month": "5",
                    "year": "17"
                },
                "deviceSpecificNumber": "444433xxxxxx1111",
                "fundingMethod": "UNKNOWN",
                "number": "xxxxxxxxxxxxxxxx",
                "scheme": "VISA",
                "storedOnFile": "NOT_STORED"
            }
        },
        "tokenRequestorID": "12345678901",
        "type": "CARD"
    },
    "timeOfLastUpdate": "2023-03-14T10:45:20.671Z",
    "timeOfRecord": "2023-03-14T10:45:20.331Z",
    "transaction": {
        "acquirer": {
            "batch": 20230314,
            "date": "0314",
            "id": "SYSTEST_ACQ_S2I",
            "merchantId": "12345678"
        },
        "amount": 100.00,
        "authenticationStatus": "AUTHENTICATION_NOT_IN_EFFECT",
        "authorizationCode": "112233",
        "currency": "USD",
        "id": "884896907",
        "receipt": "307310044427",
        "source": "INTERNET",
        "stan": "44427",
        "terminal": "1111",
        "type": "AUTHORIZATION"
    },
    "version": "100"
} 
```

