# Quickpay

**Quickpay** is a powerful feature designed to streamline user onboarding through a single, simple transaction. It allows you to create a deposit and sign up a new customer without collecting their personal details upfront.

The merchant initiate a payment with minimal information, and once the user pays, their full details (like name and document number) can be obtained via API.

{% hint style="success" %}

### Quickpay coverage

This product is currently only available for:

* Transferencias **SPEI** in Mexico
* **Pix** bank transfers in Brazil
  {% endhint %}

***

### How It Works

{% stepper %}
{% step %}

#### **Create a deposit**

You send a request to our standard **`POST`** **`/deposits`** endpoint.\
The key difference is that you provide minimal or no information in the **`payer[]`** object.

> For more information regarding the deposit creation endpoint, please visit the API Reference <a href="https://app.gitbook.com/s/VNE8t2FopKfzgQzTjlBb/deposits-api/manage-payments/create-deposit" class="button primary" data-icon="pencil">Create deposit</a>

{% tabs %}
{% tab title="Example request" %}

```json
{
    "invoice_id" : "1000000001",
    "amount": "10",
    "country": "BR",
    "currency": "BRL",
    "payment_method": "IX",
    "description": "test description",
    "client_ip": "123.123.123.123",
    "device_id": "00000000-00000000-01234567-89ABCDEF",
    "notification_url": "https://www.merchant.com/pandablue/notify",
    "test": false,
    "mobile": true,
    "language": "pt"
}
```

{% endtab %}

{% tab title="Example response" %}

```json
{
  "checkout_type": "ONE_SHOT",
  "redirect_url": "https://checkout-stg.pandablue.com/v1/gateway/show?id_payment=56578849&signature=fff0e0a6a98066c19caf",
  "deposit_id": 300000025,
  "user_id": "11",
  "merchant_invoice_id": "1000000001",
  "payment_info\"": {
    "type": "BANK_TRANSFER",
    "payment_method": "IX",
    "payment_method_name": "Pix",
    "amount": 10,
    "currency": "BRL",
    "expiration_date": "2020-06-17T07:04:16Z",
    "created_at": "2020-06-16T19:04:16Z",
    "metadata": {
      "digitable_line": "00190.00009 03141.056030 01870.806179 8 83180000016564",
      "qr_code": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAH0AAAB9AQAAAACn+1GIAAACMUlEQVR4Xt3UMZKsIBAGYEjkCkOCV1sTuQIkioleQRK4miRyhSahH6Uzr2qRucASflXa0Pw0wd8LyJ8CIEKwUwentKFNSGi3tLlu3haf2rB4mHqjlAw7/wI2Rsc9HvIreKeoefFz/gZozWC9Rev/7+M3AOH2vT5nqQAxMyD9TtF++lEBUMOSIZ0gapRNSOeQGYZohui+AV9fMwjphLq3XgOuetmyXHaJRjcBRtEJac+Rm942IW0Jo5tGnuW77AOMGLJMIVMzXT99AIZDdUInM2fShpQp/NC4uaG0uwlZSfRYKsu4XmWfwFYdfHTzTtT10wckGF9TJ0HJ8122BhjsVgLjSlz80oaXUorazI9J3DdXQzI0hJKEg+7vKjVgSE6R3hpp4Qske+rFrtOPttfxH5BsCuvst/1Hw132ASVTYiQMLdDUBOgz3UI49Bbyffwa0kpI+UT0dqV32RowphDdi3nM9/EfUK4y4WYk8O0O3RPW+RyFtscM7wTVkBXzaZ8YmmG5yj4A95F0E7U263zvowbQPqZVsQhjx5uQ1ZCnjsJwknFuAhpmSxzwLB26y9ZQHnqnSKcYzD62YXr1B3caBLsHyhNYeX8h2kPC9I52BdCbrowtloeD+iaUMcM39Isv2brKPqCMLScm7oHbe/Q9IKEbbPJliCYY2rDYQ0jDYgB6PY8WlAbJoz+0+XzygKU0aSzZxWvrT8BdSY/p4NHd+agByEsMRskYYrqfaQ2/19+GfwmGnDkcom5PAAAAAElFTkSuQmCC"
    }
  }
}
```

{% endtab %}
{% endtabs %}
{% endstep %}

{% step %}

#### **User completes the payment**

Your customer uses the generated payment instructions (e.g., a PIX QR code or SPEI transfer details) to complete the transaction
{% endstep %}

{% step %}

#### Obtain payer information

Once the payment is confirmed, you'll receive a webhook notification to your **`notification_url`**.

> For more information on this point, please visit <a href="../create-deposits/notifications" class="button primary" data-icon="message-medical">Notifications</a>

This notification is your signal to query the deposit status endpoint .\
The response from this endpoint will be enriched with the payer's full details (name, document number, etc.).

> For more information on retrieving deposit status please visit the API Reference <a href="https://app.gitbook.com/s/VNE8t2FopKfzgQzTjlBb/deposits-api/manage-payments/get-deposit-status" class="button primary" data-icon="magnifying-glass">Get deposit status</a>

You can then use this data to create or update their account in your system.
{% endstep %}
{% endstepper %}

***

### **Country specific requirements**

* **Pix** ( :flag\_br: Brazil): The **`payer`** object is not required and should be completely omitted from the request body.
* **SPEI** (🇲🇽 Mexico): The **`payer`** object is required, but it only needs one field: **`payer.id`**.\
  This `id` must be a unique reference for the user within your system, not the customer's official document number (e.g., CURP).

#### Example requests

{% tabs %}
{% tab title="PIx (Brazil)" %}

```json
{
    "invoice_id": "1000000001",
    "amount": "10.00",
    "country": "BR",
    "currency": "BRL",
    "payment_method": "IX",
    "description": "Onboarding deposit",
    "client_ip": "123.123.123.123",
    "device_id": "00000000-00000000-01234567-89ABCDEF",
    "notification_url": "https://your-domain.com/notifications",
    "test": false
}
```

{% endtab %}

{% tab title="SPEI (Mexico)" %}

<pre class="language-json"><code class="lang-json">{
    "invoice_id": "1000000001",
    "payer": {
<strong>        "id": "USR-74662347"
</strong>    },
    "amount": "100.00",
    "country": "MX",
    "currency": "MXN",
    "payment_method": "SE",
    "description": "Onboarding deposit",
    "client_ip": "123.123.123.123",
    "device_id": "00000000-00000000-01234567-89ABCDEF",
    "notification_url": "https://your-domain.com/notifications",
    "test": false
}
</code></pre>

{% endtab %}
{% endtabs %}
