Breb Payment Flow
Breb enables payments via bank transfer using a QR code or transfer key. The buyer scans the QR or enters the key in their banking app to complete the payment.How it works
1
Create order
Call
POST /v1/orders with the amount and the Breb gateway ID. The shopper object is optional for Breb.2
Display QR code and key
The response includes a
qr_code (base64-encoded image) and a key (text string). Display both to the buyer — the QR code for scanning, and the key as a fallback for manual entry.3
Buyer completes transfer
The buyer opens their banking app, scans the QR code or enters the transfer key, and confirms the payment.
4
Payment confirmed
Once the transfer is completed, the order status changes to
confirmed. You receive a webhook notification, or you can poll for the status.Shopper data
Theshopper object is optional for Breb. The QR code and key are generated from the order, not from the buyer’s data, so you can create a Breb order without any shopper information.
- You can omit
shopperentirely or send only the fields you have. Fields you do send are validated for format (an invalidemailreturns422), but none of them is required. - Shopper fields you did not send arrive as
nullin webhooks and when reading the order; the wholeshopperobject can benull. - Nequi and Daviplata are not affected: they still require the full shopper (see Creating orders).
Payer data
Breb reports who actually paid only after the transfer is confirmed, and the data is best-effort:- Name and document (masked, last digits only) of the payer, as reported by the payer’s bank. When present, Wava stores them on the order after confirmation, so
shopper.first_nameandshopper.last_namemay be filled even if you created the order without shopper. - Email and phone number are never guaranteed for Breb payers.
- The payer is whoever completed the transfer, which may not be the shopper you sent when creating the order.
confirmed) is what confirms the payment.
Example request
The minimal Breb order, without shopper:Example response
Displaying the QR code
Theqr_code field contains a base64-encoded PNG image. To display it in HTML:
key value as text alongside the QR code so the buyer can copy and paste it if they prefer not to scan.
Important notes
- The buyer completes payment asynchronously (like Nequi), so you must rely on webhooks or polling for confirmation.
- Breb does not use any shopper data to generate the QR code or key, so
shopperis optional. Payer data arrives after confirmation and is best-effort (see Payer data). - The QR code and key have a limited validity window. If expired, cancel the order and create a new one.