Actualizar un checkout o modificar sus items

Actualiza campos del checkout y agrega, modifica o elimina filas individuales sin reenviar el carrito completo. `items` es una lista de **mutaciones sparse**. Las filas que no aparecen permanecen sin cambios: - Para agregar, envía `price_id`, `quantity` absoluta y metadata opcional. Solo se pueden agregar precios activos del catálogo de la cuenta; no se aceptan detalles inline en este endpoint. - Para modificar, envía el `id` de item con prefijo `it_` y una nueva `quantity` absoluta o `metadata`. La metadata reemplaza el objeto completo; `{}` la limpia. - Para eliminar, envía el `id` de item y `deleted: true` sin otros campos. Varias filas pueden compartir el mismo `price_id`: cada una conserva su propio `id`, cantidad y metadata. Una solicitud puede mezclar las tres operaciones y se aplica atómicamente; si cualquier mutación o validación del checkout falla, no se guarda ningún cambio. La respuesta exitosa siempre contiene el checkout completo y su colección `items` autoritativa. Solo un checkout `unpaid` y sin un pago en proceso puede modificarse. Eliminar el último item deja el checkout abierto y vacío, pero no se puede pagar hasta agregar un item válido. Usa `Idempotency-Key` al agregar filas para que un retry de red devuelva la respuesta original sin duplicarlas.

Authentication

X-SECRET-KEYstring
Tu clave secreta de API

Path parameters

idstringRequired
ID del checkout

Headers

Idempotency-KeystringOptional

Clave de idempotencia para reintentos seguros de operaciones críticas, especialmente las que mueven dinero o cambian estado operativo. Reintentar con la misma clave y el mismo cuerpo devuelve la respuesta original (header Idempotency-Replayed: true); reusarla con parámetros distintos devuelve 409.

Request

This endpoint expects an object.
success_urlstringOptionalformat: "uri"

Nueva URL de éxito

cancel_urlstringOptionalformat: "uri"

Nueva URL de cancelación

metadatamap from strings to stringsOptional
Metadata personalizada
expires_atdatetimeOptional

Nueva fecha de expiración

discount_codestringOptional

Código de descuento/cupón a aplicar al checkout

itemslist of objects or maps from strings to anyOptional

Mutaciones sparse que se aplican atómicamente al carrito existente. Un arreglo vacío no modifica los items.

Response

Checkout actualizado con la colección completa y autoritativa de items

idstring

ID único del checkout

statusenum
Estado del checkout
itemslist of objects

Colección completa de filas mutables del checkout. No incluye descuentos, envío, fees ni prorrateos derivados.

total_in_centsinteger

Monto total en centavos (después de descuentos)

subtotal_in_centsinteger

Monto subtotal en centavos (antes de descuentos)

discountobject or null

Descuento aplicado al checkout (null si no hay descuento)

currencyenum
Moneda del checkout
payment_method_typeslist of enums

Métodos de pago que se le ofrecerán al comprador en este checkout, ya resueltos según la configuración del producto/cuenta, la moneda y el tipo de cobro: card (tarjeta, pago de contado), bank_transfer (transferencia bancaria), stablecoins (dólares digitales), balance (Balance Recurrente). Las cuotas se exponen por separado en available_installments; card indica pago de contado, así que un checkout puede ofrecer cuotas (available_installments no vacío) sin incluir card.

available_installmentslist of integers

Opciones de cuotas (en meses) disponibles en este checkout, independientes de payment_method_types. Vacío si no se ofrecen cuotas.

live_modeboolean

Si el checkout está en modo producción (true) o prueba (false)

success_urlstring

URL de redirección en caso de pago exitoso

cancel_urlstring

URL de redirección en caso de cancelación

expires_atdatetime

Fecha de expiración del checkout

created_atdatetime

Fecha de creación

metadatastring or double or boolean
Metadata personalizada del checkout
custom_fieldslist of objects

Valores recolectados de los campos personalizados. Si el checkout tiene múltiples productos, cada producto contribuye sus propias entradas — la key puede repetirse entre productos. Usa field_id como identificador canónico al reconciliar valores.

transfer_setupslist of objects
Configuraciones de transferencia asociadas
latest_intentobject or null

Último payment intent asociado

paymentobject or null

Información del pago (si está pagado)

payment_methodobject or null

Método de pago utilizado

Errors

400
Bad Request Error
409
Conflict Error
422
Unprocessable Entity Error