Implementación de la API de Cart

En esta guía, se proporciona la referencia técnica de la API y los esquemas de cargas útiles para integrar la API de Cart del Protocolo de Universal Commerce (UCP) en la versión 2026-04-08.

Antes de compilar tus extremos, asegúrate de haber revisado la descripción general de la API de Cart para conocer los conceptos y requisitos previos de alto nivel.

Crear carrito

Este extremo permite la creación de una nueva sesión de carrito. Para realizar la integración, implementa el extremo CreateCart (POST /carts). Cuando un usuario elige transferir su carrito, Google llama a este extremo con los detalles del elemento. Tu sistema debe responder con una continue_url que dirija al usuario a su carrito precargado en tu sitio.

  • Endpoint: POST /carts
  • Activador: El usuario hace clic en "Agregar al carrito" en un producto y agrega el primer artículo al carrito del comercio.

Solicitud: Google envía el array de line_items que se agregará al carrito.

Ejemplo de solicitud:

{
  "line_items": [
    {
      "item": {
        "id": "item_123"
      },
      "quantity": 2
    }
  ]
}

Respuesta: Devuelves la sesión de carrito inicializada, incluidos los detalles del artículo de una sola línea, los totales y una continue_url. El campo continue_url de la respuesta debe dirigir al usuario a una página de tu sitio en la que pueda seguir administrando el carrito. Por lo general, esto se vincula a tu carrito o página de confirmación de compras con la sesión identificada por id precargada.

Ejemplo de respuesta:

{
  "ucp": {
    "version": "2026-04-08",
    "capabilities": {
      "dev.ucp.shopping.cart": [{"version": "2026-04-08"}]
    }
  },
  "id": "cart_abc123",
  "line_items": [
    {
      "id": "li_1",
      "item": {
        "id": "item_123",
        "title": "Red T-Shirt",
        "price": 2500
      },
      "quantity": 2,
      "totals": [
        {"type": "subtotal", "amount": 5000},
        {"type": "total", "amount": 5000}
      ]
    }
  ],
  "currency": "USD",
  "totals": [
    {
      "type": "subtotal",
      "amount": 5000
    },
    {
      "type": "total",
      "amount": 5000,
      "display_text": "Estimated total (taxes calculated at checkout)"
    }
  ],
  // Used for redirecting the user back to the merchant's cart experience from Google surfaces.
  "continue_url": "https://business.example.com/checkout?cart=cart_abc123",
  // Indicate the timestamp at which the cart session will expire and become invalid.
  "expires_at": "2026-01-16T12:00:00Z"
}

Manejo de errores

Para obtener lineamientos completos sobre cómo dar formato a los mensajes de error y la distinción entre los errores de protocolo y de lógica empresarial, consulta la sección Códigos de error.