# Pix and QR Codes
Pix uses QR Codes—specifically the BR Code format adhering to Europay Mastercard Visa (EMV) standards—to embed payment details such as recipient account, Pix key, and in the case of dynamic codes, transaction amount and metadata.
## Static QR Codes
* Contain only recipient’s account or Pix key.
* Suitable for recurring or fixed‑amount payments—like at small shops or service stations.
* Payer must enter the amount manually.
## Dynamic QR Codes
* Unique per transaction.
* Includes recipient, amount, due date, fines/discounts, and transaction ID.
* Automatically expires after a set time.
* Built to facilitate seamless automation and reconciliation for merchants.
# Consumer and merchant flow
1. Merchant generates a QR Code (static or dynamic) and displays it on-screen, printed receipt, or mobile app.
2. Customer opens their banking or wallet app, chooses Pix, scans the QR Code.
3. The app extracts payment data (amount if dynamic), shows the details, the user confirms, and taps “pay.”
4. Funds are transferred in seconds, any time of day.
## Use cases
* **Person-to-Merchant (P2M)**—QR codes are widely adopted in Brazil for merchant payments—over 30% of Pix volume is P2M.
* **E-commerce and online checkout**—Users scan QR or copy-paste a Pix code to pay instantly.
* **Small businesses and service vendors**—Use static QR Codes on stickers, receipts, or booths for simple payments.
* **Large merchants**—Use dynamic QR Codes tied to back-end billing systems so that each transaction is uniquely identifiable and settled quickly.
# Security and architecture
Pix keys (CPF/CNPJ, email, phone number, or random UUID) provide identity linkage via the Central Bank’s DICT database .
BR Codes conform to EMV QR‑code standards and may embed a link to fetch dynamic charge data via a secure endpoint, often encoded as a JWT payload including amount; banks validate the digital signature before proceeding.
## Why QR Codes are essential to Pix
* **Interoperability**—Any Pix‑enabled app across any bank or fintech can scan the same code format.
* **No new hardware needed**—Merchants don’t need card terminals—just display the code. Consumers just need a smartphone.
* **Speed and automation**—Dynamic codes support automatic reconciliation and fast settlements; static codes simplify frequent small-value payments.
* **Low costs**—Especially beneficial for merchants and micro‑businesses, who otherwise face card‑processing fees.
# Dynamic QR Code types
## COB—immediate payment request
COB is short for ***cobranca***, which means "charge" in Portuguese.
**Purpose**: Generates a request for a one-time, immediate payment.\
**Key points**:
* Includes a fixed amount and expiration date.
* Can contain fields like `payer_solicitation`(payee text sent to payer) and `allows_value_change`(payer can change payment values).
* Ideal for one-off transactions such as e-commerce or in-person payments.
* When combined with a COBR in a composite QR Code, it triggers [Pix Automatic Journey 3](https://developers.pismo.io/pismo-docs/docs/pix-automatic#pix-automatic-use-cases-journeys) (`AUT3`).
## COBV—due date payment request
**Purpose**: Payment request with a due date, supporting interest, fines, and discounts.\
**Key points**:
* Supports fields like `due_date`(payment due date) and `charges`(charge information).
* Enables automatic reconciliation and delinquency control.
* Commonly used as a replacement for traditional boletos.
* When combined with a COBR in a composite QR Code, it triggers [Pix Automatic journey 4](https://developers.pismo.io/pismo-docs/docs/pix-automatic#pix-automatic-use-cases-journeys) (`AUT4`).
## COBR—recurring payment request
**Purpose**: Used to configure recurring payment authorizations in Pix Automatic.\
**Key points**:
* Identified with `recurrence_id`field.
* Can be used:
* Standalone ([journey 2](https://developers.pismo.io/pismo-docs/docs/pix-automatic#pix-automatic-use-cases-journeys)).
* With COB ([journey 3](https://developers.pismo.io/pismo-docs/docs/pix-automatic#pix-automatic-use-cases-journeys)).
* With static QR or COBV ([journey 4](https://developers.pismo.io/pismo-docs/docs/pix-automatic#pix-automatic-use-cases-journeys)).
* Always part of a composite QR Code structure.
## Withdrawal—cash withdrawal
**Purpose**: Enables cash withdrawal via Pix at authorized commercial establishments.\
**Key points**:
* The customer makes a Pix payment and receives the equivalent amount in cash.
* Can be used with dynamic or static QR Codes.
* Requires accreditation as a Cash Withdrawal Service Facilitator (FSS) with the Central Bank of Brazil (BCB)—a Pix-participating financial or payment institution authorized to enable cash withdrawals and cash back during purchases.
* Content structure in the QR Code payload:
```json
"withdraw": {
"agent_modality": "AGTEC",
"ispb_service_provider": "85478745",
"amount": 10.0,
"allows_value_change": true
}
```
## Change
**Purpose**: Enables cashback transactions via Pix.\
**Key points**:
* The customer pays more than the purchase amount and receives the difference in cash.
* Used in commercial environments accredited for this service.
* Requires accreditation as a Cash Withdrawal Service Facilitator (FSS)
* Content structure in the QR Code payload:
```json
"change": {
"agent_modality": "AGTEC",
"ispb_service_provider": "85478745",
"amount": 10.0,
}
```
# Using QR Codes
* Call [Validate QR Code](https://developers.pismo.io/pismo-docs/reference/post-qr-code) to validate a QR Code for a [Pix-out transfer](https://developers.pismo.io/pismo-docs/reference/post-pix-out-transfer).
* Pay immediately a COB, COBV, Charge and Withdrawal QR Code for a [Pix-out transfer](https://developers.pismo.io/pismo-docs/reference/post-pix-out-transfer) payment.
* Schedule payment for a COB and COBV QR Code using [Schedule transfer(s) V2 \[beta\]](ref:post-schedule-pix-payment).
**Note:** Pismo automatically identifies the `transaction_id `when a Pix -in is received and changes a QR Code status to `COMPLETED`.
# API endpoints and sample payloads
## Create dynamic COB QR Code
[Create dynamic COB QR Code](https://developers.pismo.io/pismo-docs/reference/post-create-cob) —Generate a new dynamic COB QR Code and EMV (Europay Mastercard Visa) string.
COB is short for ***cobranca***, which means "charge" in Portuguese. A COB QR Code has an expiration date while a COBV QR Code has a due date, fine, interest, and rebates.
Sample payload
```json
curl -X POST "https://sandbox.pismolabs.io/qrcode/v1/pix/qrcode/cob" \
-H "Authorization: Bearer Sample payload
```json
curl -X POST "https://sandbox.pismolabs.io/qrcode/v1/pix/qrcode/cobv" \
-H "Authorization: Bearer Sample payload
```json
curl -X POST "https://sandbox.pismolabs.io/qrcode/v1/pix/qrcode/recurrence" \
-H "Authorization: Bearer Sample payload
```json
curl -X POST "https://sandbox.pismolabs.io/qrcode/v1/pix/qrcode/cob/recurrence" \
-H "Authorization: Bearer Sample payload
```json
curl -X POST "https://sandbox.pismolabs.io/qrcode/v1/pix/qrcode/cobv/recurrence" \
-H "Authorization: Bearer Sample payload
```json
curl -X POST "https://sandbox.pismolabs.io/qrcode/v1/pix/qrcode/static/recurrence" \
-H "Authorization: Bearer
| QR Code Type | Embedded Data | Use Case/Advantages |
|---|---|---|
| Static | Pix key or account (no amount) | * Regular small payments * Reusable, simple, ideal for small vendors * Natural and legal person can create * Normal transfer and buy purpose |
| Dynamic | Pix key + amount + txID + expiry | * Automated merchant billing * Precise, traceable, suited to e‑commerce and larger businesses * Legal person can create * Always have buy/charge purpose |