Skip to main content
A collection (cobrança) is a dynamic, single-use Pix charge that requests a specific payment. The Pix Indirect Plugin (BTG) supports two types. Both types use a dynamic QR Code:
  • Immediate (COB)cobrança imediata: a short-lived charge for a fixed amount. Use it for checkout and one-time payments.
  • Due-date (COBV)cobrança com vencimento: a boleto-like charge with a due date and optional fine, interest, discount, and abatement. Use it for bills, installments, and B2B invoicing.
This guide covers the collection lifecycle and the payment flow. For QR Code generation details and field-by-field validation, see the QR Codes guide.

Lifecycle


Both collection types share the same status model: A collection moves from ACTIVE to COMPLETED when the payer pays it. It moves to REMOVED_BY_PSP when it expires, or to REMOVED_BY_RECEIVER when the merchant deletes it. Each type has its own validity window:
  • Immediate (COB): the charge expires after expirationSeconds.
  • Due-date (COBV): the charge expires at dueDate plus validAfterDue days.
After a collection expires or reaches COMPLETED, the payer can no longer pay it. The plugin also rejects any attempt to delete or update a COMPLETED collection (PIX-0704).

Key fields


For COBV, the final value depends on payment timing. Early payment applies discounts. On-time payment uses the original amount. Late payment adds fine and interest, minus any abatement.

Creating, retrieving, updating, deleting


All requests require the X-Account-Id header. You can update or delete a collection only while it is ACTIVE.

Payment flow


The payer settles a collection with an incoming Pix (cash-in) that carries the collection’s txId:
  1. The merchant creates a collection and presents its QR Code (or txId) to the payer.
  2. The payer settles the charge. BTG notifies the plugin of the inbound cash-in.
  3. The plugin links the cash-in to the collection by matching the payment’s txId against the collection’s txId and the receiver document. (FindByTxID(txID, receiverDocument).)
  4. On a match, the collection moves to COMPLETED and the plugin posts the cash-in to Midaz as a ledger transaction.
  5. The plugin emits a collection-paid webhook to notify your system in real time.
When you set a debtor on the collection, the charge records the expected payer’s CPF/CNPJ. The plugin does not block a different payer at settlement.

Webhook event when paid


After a payment settles a collection, the plugin queues an outbound webhook. The webhook describes the payment and the new COMPLETED status. The outbound webhook worker delivers it asynchronously. Configure the destination through the cash-in webhook URLs (WEBHOOK_TRANSFER_CASHIN_URL, with WEBHOOK_DEFAULT_URL as the fallback). For event types, payloads, retries, and URL resolution, see the Webhooks guide.

Error cases


Reference


Immediate (COB): Create · List · Retrieve · Update · Delete Due-date (COBV): Create · List · Retrieve · Update

Next steps