HomeGuíasAPI ReferenceChangelog
Log In
API Reference

Cobrar en un terminal POS

Cobra en un terminal POS físico y devuelve la transacción que quedó esperando a que el cliente final pase la tarjeta.

El 201 no significa que el cliente pagó: significa que el terminal tomó la venta y todavía tiene que operarla. El resultado del cobro llega por el webhook de transacción —transaction.success o transaction.failed—, que devuelve el external_id con el que la caja correlaciona la operación. Ese mismo estado se puede consultar con GET /transactions/{public_id_transaction}: el cobro POS no tiene un endpoint de estado propio.

Se envía una de tres formas, nunca más de una: ids_invoice, para saldar deudas ya creadas; amount junto con currency e id_account, para cobrar un monto suelto; o invoice_data junto con id_account y un Customer (id_customer o customer_data), para crear la deuda y saldarla en el mismo paso. No se envía medio de pago: la tarjeta la lee el terminal.

Abre una Checkout Session en estado OPEN y despacha la venta al terminal. Esa sesión es el contenedor del intento de cobro y se cierra sola cuando el cobro termina: a diferencia de los demás productos, no es una página que se renderice ni tiene una url a la que derivar al cliente. Si el terminal no toma la venta, la sesión queda EXPIRED y no se cobra nada.

El terminal y las deudas tienen que pertenecer a la organización autenticada, y hoy los únicos terminales habilitados son los chilenos (country_code = cl).

Cualquier campo que no esté en el contrato se rechaza con 422: la caja no cobra distinto de lo que pidió.

Si se envía idempotency_key, ese valor no puede repetirse dentro de la organización: un reintento por timeout se rechaza con 409 en vez de cobrar dos veces.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Path Params
string
enum
required

País de la organización sobre la que se opera, como primer segmento de la ruta: cl (Chile), mx (México) o br (Brasil).

Allowed:
Body Params

Datos con los que la caja cobra en un terminal POS.

object | null

Datos propios de la organización que se guardan junto a la Checkout Session.

Indica si el cliente final puede abonar solo una parte del total.

Monto que se cobra en la Checkout Session. Excluyente con ids_invoice y con invoice_data, y cuando se envía, currency e id_account son obligatorios.

CurrencyIso | null

Moneda en la que se expresan los montos de la operación. Solo se envía junto con amount.

CustomerDataRequest | null

Datos con los que se busca o se crea el Customer de la operación.

length ≤ 128

Identificador que entrega la organización para reconocer después la operación. Vuelve en el webhook de transacción como external_id: es con lo que la caja correlaciona el resultado del cobro.

Flow con el que se crea la Checkout Session. Determina la configuración de POS que se aplica en el terminal.

Identificador de la Account. Si se omite, se resuelve desde las deudas.

Identificador del Customer. Si se omite, se resuelve desde las deudas.

string
required

Terminal POS en el que se cobra. Tiene que pertenecer a la organización autenticada.

length ≤ 128

Identificador propio de la organización que, si se envía, no puede repetirse: un reintento por timeout se rechaza con 409 en vez de cobrar dos veces.

array | null

Identificadores de las deudas que se cobran en la Checkout Session. Excluyente con amount y con invoice_data: se envía una de las tres.

InvoiceDataRequest | null

Datos de la deuda que se crea junto con la Checkout Session. Excluyente con ids_invoice y con amount, y exige id_account y un Customer, sea id_customer o customer_data.

Responses

Language
Credentials
Header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json