Before you start
You need:- An API credential. See Creating your first API credential.
- The
idof the bank account that receives the funds. List your accounts withGET /v2/bank_accounts.
https://api.sandbox.trio.com.br.
Create the QR code
Send aPOST to the Create a dynamic QR code endpoint:
Coming from V1?
allow_change_the_amount_on_payment and show_qrcode_image now live inside options and both are required. The response has no stages, virtual_account_id or pix_key_id.Read the response
Share the BR code
If you did not request the image, share thehash with the payer: it is the BR code they paste into their banking application. To render the image on your side, encode the hash as a QR code, or fetch it ready-made from GET /v2/in/pix/qrcodes/{id}/image, which returns it in Base64.
What happens next
Once the QR code is paid, the deposit shows up as an in document with its ownstatus and stages. List deposits with GET /v2/documents/in or read one with GET /v2/documents/in/{id}, and follow each status change through webhook events. The Document lifecycle guide describes the statuses.
Next steps
- QR code types: static, dynamic and dynamic-with-due-date codes.
- Simulate a successful deposit: pay your QR code in the sandbox.
- Fees and Split payments: charge extra or distribute the amount.
- Create a boleto: receive by boleto instead of Pix.

