PSE collection
Collect a payment from a customer's Colombian bank account using PSE.
PSE (Pagos Seguros en Línea) is Colombia's standard system for paying from a bank account on a website — the local equivalent to Pix in Brazil or ACH Direct Debit in the United States. A PSE collection is the flow your business runs when you want a customer to pay you from their bank account: you generate a payment link, the customer follows it to their bank, the bank authorizes the payment, and Mono notifies you of the result.
This flow is the core of Banking's payin capability. Use it for e-commerce checkout, invoice settlement, subscription top-ups, or any scenario where the payer initiates the payment.
This page is a flow scaffold and will be expanded with code samples per step, expected webhooks, and common errors. Track progress in the documentation roadmap.
Before you start
You will need:
- A Mono account with Banking enabled and an API key for the environment you are calling. See Authentication.
- A receiving bank account configured in your Mono dashboard.
- A webhook endpoint that can receive collection-link events.
- Familiarity with the collection-links concept.
Sequence overview
- Create a collection intent — your backend calls Mono to generate a payment intent with the amount, currency, and a reference you control. Mono returns a redirect URL pointing to the PSE-backed payment form.
- Redirect the payer — your frontend sends the customer to that URL. PSE handles bank selection and authorization.
- Receive the result — Mono fires a
collection_intent_creditedwebhook to your endpoint when the payment settles, orcollection_intent_failedif it is rejected. - Reconcile — your system updates the order and credits the customer.
Steps
The full step-by-step (with curl, Node.js, and Python examples) is pending. Until it is published, see:
- The collection-links concept page for the data model and lifecycle.
- The collection-links webhook page for the
collection_intent_creditedandcollection_intent_failedevent payloads.
Next steps
- Sending transfers — the payout counterpart of this flow.
- Banking webhooks — the events that drive reconciliation.
- Sandbox — test the flow without moving real money.