Skip to content
KrokoPay

For e-commerce

Orders paid by Pix or card, confirmed in your store

An order stuck in "awaiting payment" is a support ticket waiting to happen. KrokoPay's checkout takes Pix or card and tells your store the moment the order is paid, or when the Pix expired unpaid.

Try the checkout on the right: choose Pix or card.

Casa Maré

Checkout by KrokoPay

Test mode

Order summary

2 stoneware mugs + 1 serving plate

R$189.00

TotalR$189.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|18900|NOT-A-REAL-PIX-CODE|E0B78FDD

Demo control: marks this fictional charge as paid.

From cart to shipping

One charge per order, one event back

Your store keeps the cart and the stock. KrokoPay handles the payment page and the confirmation.

  1. Customer checks out

    Your store creates a charge with the order amount.

  2. Opens the checkout

    Redirect to the charge's checkout_url.

  3. Pays by Pix or card

    The QR code or the card form, in KrokoPay's own checkout.

  4. Your store is notified

    charge.paid arrives and the order moves to ready to ship.

What the buyer sees

A Pix that pays and confirms itself

The buyer scans the QR code or copies the code, pays in their bank's app and the checkout updates on its own. No receipt to upload, no manual check on your side.

  • The Pix has an expiry; when it passes, the charge expires and you get an event.
  • Card is in the same checkout, on the tab next to it.
  • Your store's name appears on the checkout.

What the payer sees

Casa Maré

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.

Your store, in sync

The webhook marks the order paid

Create the charge with the order's own Idempotency-Key, then handle two events: paid ships, expired releases the stock. Simulate both on the order below.

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": 18900,    "currency": "BRL",    "description": "Casa Maré #1042",    "methods": [      "pix",      "card"    ]  }'

Provisional API contract proposal — not an operational endpoint. verifySignature stands for the signature check described in the webhooks docs. Contract proposal, subject to change.

Your system

Interactive demo

Order #1042

Customer
Ana Ribeiro
Total
R$189.00
Charge
chg_8Mr3EcQ7wT2nVb
Status
Awaiting payment

Event received by your endpoint

No event yet. Fire one of the buttons to see what reaches your endpoint.

The awkward cases

What happens when it does not go smoothly

Each of these has its own status or field, so your store does not have to guess.

  • The Pix was never paid

    charge.expiredExpired

    After the expiry the charge becomes expired and charge.expired is sent. Release the stock and, if you want, offer a new charge.

  • The card was declined

    failure_codeFailed

    The charge becomes failed and carries a failure_code so your store can explain the problem and suggest another method.

  • The customer clicked twice

    Idempotency-Key

    Send the order number as the Idempotency-Key. Retrying the same request returns the same charge instead of a second one.

  • The order was returned

    charge.refundedRefunded

    Refund from the dashboard. The charge becomes refunded and charge.refunded tells your store to update the order.

Transparency

What is ready and what is not yet

Before you plan a launch, here is where things stand. No invented numbers.

Already in the product

  • Hosted checkout with Pix and card.
  • Charge events: created, paid, failed, expired, refunded.
  • Idempotency-Key to avoid duplicate charges.
  • Refunds from the dashboard.

Still being defined

  • Card installments.To be announced
  • Ready-made plugins for store platforms.To be announced
  • Fees and payout times.To be announced
See what is defined on pricing

Questions from online stores

What store owners usually ask before integrating.

Did not find your question?

What is defined on pricingTalk to us

Not yet. The integration is done through the API and webhooks, which any store with a backend can call.

Your endpoint receives charge.paid with the charge id. Mark the order paid there instead of trusting the buyer's return to your site.

The charge expires and you receive charge.expired. You can release the stock and cancel or reopen the order.

Card installments are still to be announced. Today the card is charged in full.

Payout times are still being defined and will be published on the pricing page.

Yes. The checkout shows your business name and the order description, so the buyer knows who they are paying.

Put your first order through the checkout

Create your account, generate a test charge and watch your store receive charge.paid.

No real payment is made.