Skip to content
KrokoPay

Pix · Products

Accept Pix and know when it is paid

Create a charge, send the payer to a checkout with the QR code and the copy-and-paste code, and get a webhook when it is paid or expires. The checkout confirms the payment on screen in real time.

Test mode only on this site: every charge is fictional and no money moves.

  • QR code + copy-and-paste code
  • Expiry countdown
  • charge.paid and charge.expired webhooks

What the payer sees

Estúdio Jacarandá

Checkout by KrokoPay

Test mode

Order summary

Visual identity course

Lifetime access · 32 lessons

R$497.00

TotalR$497.00
Generating your Pix code…

What your system receives

Step 1 of 4

Created

Your system creates a charge through the API, a payment link or the dashboard. The payer is sent to the checkout.

Charge status
Pending
Reference
chg_9Qs5MbT2kXn8Vd

Webhook event

{
  "type": "charge.created",
  "data": { "object": {
    "id": "chg_9Qs5MbT2kXn8Vd",
    "status": "pending"
  } }
}

Times shown are demo values, not commercial terms.

New to Pix?

Pix in one minute

Pix is Brazil's instant payment method. The payer opens their bank app, scans a QR code or pastes a code, and confirms. There is no card number, no form to fill in and no redirect to a third-party page.

  • If you already sell in Brazil

    Your customers know Pix. What changes is your side: one charge object, one checkout and the same webhooks you use for card.

  • If your team has never used Pix

    Think of it as a payment request with a deadline. You create it, the payer approves it in their own bank app, and you receive an event. The payer never types sensitive data on your site.

Estúdio Jacarandá

Checkout by KrokoPay

Test mode

Order summary

Visual identity course

Lifetime access · 32 lessons

R$497.00

TotalR$497.00

Scan the QR code to pay

Open your bank app, choose Pix and scan the code, or copy the code below.

Waiting for paymentExpires in 14:52
KROKOPAY-DEMO|PIX|chg_9Qs5MbT2kXn8Vd|BRL|49700|NOT-A-REAL-PIX-CODE|F597D6CD
Static preview. The QR code is fictional and cannot be paid.

What the payer sees in the checkout

  1. QR code

    For paying from another device: the payer points the bank app's camera at the screen.

  2. Copy-and-paste code

    The same payment as text, for when the payer is already on their phone. One tap copies it.

  3. Expiry countdown

    Every Pix charge has a deadline. When it runs out, the code stops working and the charge expires.

  4. Confirmation on screen

    As soon as the charge is paid, the checkout turns into a confirmation. The payer does not need to refresh or send a receipt.

States and events

Four moments, one charge

A Pix charge moves through a short, predictable path. Your code reacts to webhook events instead of polling.

  1. Created

    You create the charge with the API, a payment link or the dashboard. It starts as pending.

    Status
    Pending
    Event
    charge.created
  2. Waiting

    The checkout shows the QR code, the code and the countdown. Nothing to do on your side yet.

    Status
    Pending
    Event
    No event
  3. Paid

    The payer confirmed in their bank app. Release the order, the access or the download.

    Status
    Paid
    Event
    charge.paid

    or

    Expired

    Nobody paid before the deadline. The code stops working. Create a new charge if the buyer comes back.

    Status
    Expired
    Event
    charge.expired

Refunds of paid charges are reported with charge.refunded.

curl -X POST https://api.krokopay.app/v1/charges \  -H "Authorization: Bearer kp_test_sk_4f9a2c7e1b8d4a6f9c3e5d7b" \  -H "Idempotency-Key: order_1042" \  -H "Content-Type: application/json" \  -d '{    "amount": 49700,    "currency": "BRL",    "description": "Curso Identidade Visual do Zero",    "customer_id": "cus_8Hq2LmZr4TxN1a",    "methods": [      "pix"    ]  }'
charge.paid delivered to your endpointJSON
{  "id": "evt_6Ff7Gg8Hh9Ii0J",  "object": "event",  "type": "charge.paid",  "api_version": "2026-11-01",  "created_at": "2026-11-03T14:23:41.000Z",  "data": {    "object": {      "id": "chg_4Fp9KzW1xQm7Rt",      "object": "charge",      "amount": 49700,      "currency": "BRL",      "status": "paid",      "method": "pix",      "description": "Curso Identidade Visual do Zero",      "expires_at": "2026-11-03T14:37:05.000Z",      "paid_at": "2026-11-03T14:23:41.000Z"    }  }}

Provisional API contract proposal. These are examples, not an operational endpoint.

How webhooks are signed and retried

In the dashboard

Every Pix charge, traceable

Each charge appears in Payments with its status, customer and method. Open one to see the events it went through and the webhook deliveries it triggered.

  • Filter payments by status: pending, paid, expired, refunded.
  • Each detail page shows the event history with timestamps.
  • Webhook deliveries and their HTTP responses are listed under Developers.
Open the demo dashboard

Address: krokopay.app/dashboard/payments

Recent payments (fictional)
DescriptionMethodStatusAmount
Curso Identidade Visual do Zerochg_9Qs5MbT2kXn8VdNot chosen yetPendingR$497.00
Curso Identidade Visual do Zerochg_7Lc3PvN8yHd2WsVisa ending in 0002FailedR$497.00
Curso Identidade Visual do Zerochg_4Fp9KzW1xQm7RtPixPaidR$497.00
Clube Jacarandá — Mensalchg_2Rz6TnB4mKw9PcMastercard ending in 5100PaidR$49.00
Pack de Templates — Completochg_8Mx1WqH5dVr3LsPixPaidR$149.00

Event historychg_4Fp9KzW1xQm7Rt

PixR$497.00Paid
  1. charge.created

    Nov 3, 2026, 11:22 AM
    evt_1Aa2Bb3Cc4Dd5E
  2. charge.paid

    Nov 3, 2026, 11:23 AM
    evt_6Ff7Gg8Hh9Ii0J

Pix questions, answered plainly

Short answers, including what is not defined yet.

Still undefined

  • FeesTo be announced
  • When funds become availableTo be announced
  • Default expiry in productionTo be announced

Shown as “To be announced” until the terms are final.

See pricing

No. They pay from their own bank app by scanning the QR code or pasting the code. The checkout only shows the charge and confirms it.

Your endpoint receives the charge.paid webhook, and the charge shows as paid in the dashboard and in the API. In the checkout, the payer sees the confirmation on screen in real time.

Every Pix charge has an expiry, shown as a countdown in the checkout. When it runs out, the charge moves to expired and you receive charge.expired. The production default is still to be announced.

Commercial terms, including fees and when funds become available, are still to be announced. The pricing page shows what is defined so far, and we do not quote numbers before they are final.

Yes, fully or partially, from the dashboard or with the refunds endpoint of the API proposal. Each refund is reported with the charge.refunded event.

Yes. Everything on this site runs in test mode with fictional data. In the demo dashboard you can create a Pix charge, open its checkout and simulate the payment or let it expire.

Run your first Pix charge in test mode

Create an account, create a charge in the demo dashboard and watch it go from pending to paid.

No real payment is made.