# Generate QR Code - Customer Scan

## Overview

This endpoint allows you to generate a QR code for a "customer-scan" payment scenario. The customer scans the generated QR code with their device to complete the payment.

## Environments

<table><thead><tr><th width="127">Environment</th><th width="107.79998779296875">Protocol</th><th width="81.5999755859375">HTTP Method</th><th>URL</th></tr></thead><tbody><tr><td>Sandbox</td><td>HTTPS</td><td><code>POST</code></td><td><code>https://uat.paywizard.biz/ovstrade/openPay/generateQrCode</code></td></tr><tr><td>Production</td><td>HTTPS</td><td><code>POST</code></td><td><code>https://portal.paywizard.biz/ovstrade/openPay/generateQrCode</code></td></tr></tbody></table>

## **Headers**

| Key            | Type   | Required | Description                                                                                                           |
| -------------- | ------ | -------- | --------------------------------------------------------------------------------------------------------------------- |
| `Content-Type` | String | Yes      | Must be `application/json`.                                                                                           |
| `jwt-token`    | String | Yes      | The transaction token obtained using your developer credentials.                                                      |
| `sign`         | String | Yes      | The request signature. See [Signature Generation Guide](../cloud-api/paywizard-open-platform-api-signature-guide-v3). |

## **Request Body Parameters**

| Parameter             | Type   | Required               | Description                                                                                                                            |
| --------------------- | ------ | ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `clientId`            | String | Yes                    | Your unique developer ID.                                                                                                              |
| `transIndexCode`      | String | Yes                    | The unique order ID generated by your system.                                                                                          |
| `payChannel`          | String | Yes                    | The payment channel to be used. See [Payment Channels](https://oversea.hs1c.cn/showdoc/web/#/671575440/155776416) for valid values.    |
| `amount`              | String | Yes                    | The total transaction amount. Example: `"10.50"`.                                                                                      |
| `currency`            | String | Yes                    | The 3-letter ISO currency code for the transaction amount. For PIX transactions, this must be `BRL`.                                   |
| `exchangeCurrency`    | String | Conditionally Required | The currency code for settlement. Valid values: `BRL`, `USD`, `EUR`. Required for PIX transactions. Currently only `BRL` is supported. |
| `documentNumber`      | String | Conditionally Required | The customer's tax identification number (e.g., CPF or CNPJ). Required for PIX transactions.                                           |
| `socialName`          | String | Conditionally Required | The full name of the customer. Required for PIX transactions.                                                                          |
| `dynamicPixExpiresAt` | String | No                     | The expiration timestamp for a dynamic PIX QR code in ISO 8601 format: `YYYY-MM-DDTHH:mm:ssZ`.                                         |
| `productDesc`         | String | No                     | A brief description of the product(s) or service(s).                                                                                   |
| `notifyUrl`           | String | No                     | The callback URL where you will receive the transaction result notification.                                                           |

## **Request Example**

```json
{
    "clientId": "825429536610058240",
    "transIndexCode": "12313254654120",
    "payChannel": "PIX",
    "amount": "0.01",
    "currency": "BRL",
    "exchangeCurrency": "USD",
    "documentNumber": "12345678900",
    "socialName": "John Doe",
    "dynamicPixExpiresAt": "2025-06-25T16:30:09.845Z",
    "notifyUrl": "https://oversea.hs1c.cn/xxx/thirdNotify/callback"
}
```

***

## **Response Body**

The response object contains the status of the request and, upon success, the data needed to display the payment QR code.

| Parameter             | Type    | Description                                                                                     |
| --------------------- | ------- | ----------------------------------------------------------------------------------------------- |
| `code`                | Integer | The HTTP status code. `200` indicates success. Any other value indicates an error.              |
| `msg`                 | String  | A human-readable message describing the result. "success" on successful requests.               |
| `timestamp`           | String  | The UTC timestamp of the response. Format: `YYYY-MM-DD HH:mm:ss`.                               |
| `data`                | Object  | A container for the successful response data. Null on error.                                    |
| `data.mid`            | String  | The merchant ID.                                                                                |
| `data.paywizardId`    | String  | The unique platform ID for the transaction.                                                     |
| `data.checkoutId`     | String  | The unique transaction ID generated by the payment platform.                                    |
| `data.transIndexCode` | String  | The original third-party order ID from the request.                                             |
| `data.qrCode`         | String  | The raw data string for the payment QR code. This should be used to generate the QR code image. |
| `data.amount`         | String  | The transaction amount.                                                                         |

## **Success Response Example**

```json
{
    "code": 200,
    "msg": "success",
    "timestamp": "2024-08-12 14:45:54",
    "data": {
        "mid": "10800000003",
        "paywizardId": "1000000011",
        "checkoutId": "768878984749514752",
        "transIndexCode": "202504011341223232135",
        "qrCode": "00020101021226990014br.gov.bcb.pix2577pix.bancogenial.com/qrs1/v2/017si5czJTt4zOys319ukH9l1UD8m94JJ0xnElX3Bc6rMK3ug52040000530398654041.005802BR5923FACILITA PAGAMENTOS S/A6009SAO PAULO62070503***6304B8B8",
        "amount": "100.21"
    }
}
```

