---
page_source: https://juspay.io/in/docs/upi-plugin-sdk/android/process-payloads/scan-pay-optional
page_title: Scan & Pay (Optional)
---


# UPI Scan & Pay



This action lets the user scan a QR code and complete the transaction that way. It also onboards the user if onboarding has not yet been completed.


###   Process Parameters



## Request Payload
- **RequestId**:
  - Description: Unique uuid-v4 string
  - Value: Example: abcd-12345-abcd-12345
  - Tags: String, Mandatory
- **Service**:
  - Description: Value: in.juspay.hyperapi
  - Tags: String, Mandatory
- **Payload**:
  - Description: Parameters required to call Hyper SDK API
  - Value:
    - **Action**:
      - Description: Operation to be performed in the SDK. Should be upiUiScanPay for this call.
      - Value: Value: upiUiScanPay
      - Tags: String, Mandatory
    - **MerchantKeyId**:
      - Description: Key ID to identify the public-private key pair used for signature generation.
      - Value: Example: 1234
      - Tags: String, Mandatory
    - **Signature**:
      - Description: Signature generated for the signaturePayload.
      - Tags: String, Mandatory
    - **SignaturePayload**:
      - Description: Signature payload is a stringified JSON of the details mentioned in the below table.
      - Value:
        - **Merchant_id**:
          - Description: Unique identifier associated with an account created by juspay.
          - Value: Example: stock
          - Tags: String, Mandatory
        - **Customer_id**:
          - Description: Any unique reference associated with your customer.
          - Value: Example: abcde12345
          - Tags: String, Mandatory
        - **Timestamp**:
          - Description: Time when request is created in milliseconds.
          - Value: Example: 1665996901100
          - Tags: String, Mandatory
      - Tags: String, Mandatory
    - **ShowStatusScreen**:
      - Description: Pass false to hide payment status screen. Default value: true
      - Value: Possible values: true/false
      - Tags: Boolean, Optional
  - Tags: JSON, Mandatory


## Response Payload
- **RequestId**:
  - Description: Unique uuid-v4 string
  - Value: Example: abcd-12345-abcd-12345
  - Tags: String
- **Service**:
  - Description: Value: in.juspay.hyperapi
  - Tags: String
- **Payload**:
  - Description: Response Parameters
  - Value:
    - **Action**:
      - Description: Operation performed in the SDK.
      - Value: Value: upiUiScanPay
      - Tags: String
    - **Status**:
      - Description: Status of the Operation. Possible values : SUCCESS/FAILURE
      - Value: Example: SUCCESS
      - Tags: String
    - **AccountReferenceId**:
      - Description: Unique Identifier of the account.
      - Value: abcde12345abcde
      - Tags: String
    - **GatewayTransactionId**:
      - Description: UPI request id returned by gateway for the transaction
      - Value: Example: ABC123456789
      - Tags: String
    - **GatewayResponseCode**:
      - Description: Response code returned by gateway for the mandate Operation.
      - Value: Example: 00
      - Tags: String
    - **GatewayResponseMessage**:
      - Description: Response message returned by gateway for the mandate Operation.
      - Value: Example: Your transaction is successful.
      - Tags: String
    - **ActionPerformed**:
      - Description: Name of the action Performed.
      - Value: pay
      - Tags: String
    - **PayeeName**:
      - Description: Payee Name
      - Value: Example: ABC
      - Tags: String
    - **Amount**:
      - Description: Amount to be paid. Numeric String with two decimals.
      - Value: Example: 20.00
      - Tags: String
    - **TransactionTimestamp**:
      - Value: Example: 2022-01-28T14:44:51+05:30
      - Tags: String
  - Tags: JSON
- **Error**:
  - Description: Possible values :- true/false
  - Tags: Boolean
- **ErrorMessage**:
  - Description: Error Message
  - Tags: String
- **ErrorCode**:
  - Description: Error Code
  - Tags: String
- **Event**:
  - Description: Value: process_result
  - Tags: String





#### Code Snippets: -

#### Java Code Snippet:

```java
{"success":false,"message":"No Data found for the given path"}
```

#### Kotlin Code Snippet:

```kotlin
{"success":false,"message":"No Data found for the given path"}
```


## Sample Code Snippets:
### Top Header:

#### Request Code Snippet:

```request
{"success":false,"message":"No Data found for the given path"}
```

### Bottom Header:

#### Response:
```plaintext
{"success":false,"message":"No Data found for the given path"}
```

