Ir al contenido

Comprar

POSThttps://api.lavitrina-online.com/api/storefront/purchasesToken del cliente (su inicio de sesión en tu sitio).

Crea la compra del cliente en tu tienda y cobra en el momento. Antes, el cliente debe haber aceptado los términos y guardado una tarjeta.

La tienda sale del token del cliente (inició sesión en tu sitio), y el precio sale siempre del ítem: el cliente solo elige qué y cuántos.

Campo Tipo Descripción
Items lista, 1 a 50 [{ "ItemId": 42, "Quantity": 2 }]. Quantity de 1 a 10000.
Delivery.Method texto Por ahora solo AgreeWithSeller: la tienda acuerda la entrega con el cliente.
Delivery.ContactPhone texto, 7 a 20 Teléfono para coordinar la entrega.
Delivery.Notes texto, hasta 500 Opcional. Indicaciones del cliente.
Payment.AcceptanceTokenId entero El de Aceptar los términos, ya aceptado.
Payment.CardId entero Una de sus tarjetas.
Ventana de terminal
curl -X POST "https://api.lavitrina-online.com/api/storefront/purchases" \
-H "Authorization: Bearer $TOKEN_CLIENTE" \
-H "Content-Type: application/json" \
-d '{"Items":[{"ItemId":42,"Quantity":2}],"Delivery":{"Method":"AgreeWithSeller","ContactPhone":"3001234567","Notes":"Entregar en la tarde"},"Payment":{"AcceptanceTokenId":57,"CardId":12}}'
{
"Id": "4a3045a9-419e-4dc6-9b31-cb4e5265f8e4",
"Code": "4A3045",
"StoreId": "4d7fc800-a6ba-4686-8775-6a29919b3060",
"CustomerId": "daec07a3-4fc2-4db5-ad30-c343c76ecddc",
"CustomerEmail": "[email protected]",
"CustomerName": "Laura Gómez",
"Lines": [
{ "ItemId": 42, "ItemName": "Camisa de lino", "UnitPriceInCents": 8990000, "Quantity": 2, "SubtotalInCents": 17980000 }
],
"TotalInCents": 17980000,
"Currency": "COP",
"Status": "Paid",
"Delivery": { "Method": "AgreeWithSeller", "Status": "Pending", "ContactPhone": "3001234567", "Notes": "Entregar en la tarde" },
"CreatedAt": "2026-10-21T16:41:54.463Z",
"UpdatedAt": "2026-10-21T16:41:55.010Z"
}
Campo Descripción
Code Código corto para mostrar al cliente y hablar con la tienda.
Status Paid (pagada) o PendingPayment (el banco aún no responde). Ver valores.
Delivery.Status Estado de la entrega. Lo avanza la tienda desde el dashboard.
Código Qué pasó Qué hacer
201 Compra creada, pagada o en proceso. Si es PendingPayment, consulta luego con Actualizar el pago.
402 El banco rechazó el pago. El cuerpo trae la compra con Status: PaymentFailed y las unidades vuelven al inventario. Pide otra tarjeta y crea una compra nueva.
404 Algún ítem no existe o es de otra tienda. Revisa los ItemId.
409 No hay unidades suficientes de algún ítem. Actualiza el carrito.
502 La compra quedó guardada (PendingPayment) pero el servicio de pagos no respondió. El cuerpo trae la compra. No la repitas: consulta con Actualizar el pago.