Iniciar un pago

Aprende a iniciar y aceptar pagos

Para aceptar pagos necesitas crear un objeto Checkout desde tu backend, redirigir al usuario hacia Venti y tomar acciones después de autorizado o rechazado el pago.

El siguiente ejemplo utiliza cURL para simulas las llamadas a nuestra API, pero también puedes hacerlo utilizando nuestro SDK para Node.js.

Crear un objeto Checkout

El primer paso es un crear un objeto de tipo Checkout utilizando tu API Key secreta. En este ejemplo crearemos una intención de pago por CLP $1.000.

curl --request POST \
     --url https://api.ventipay.com/v1/checkouts \
     --header 'Authorization: Bearer TU_API_KEY_SECRETA' \
     --header 'Accept: application/json' \
     --header 'Content-Type: application/json' \
     --data-raw 
'{
  "currency": "clp",
  "items": [
    {
      "unit_price": 1000,
      "quantity": 1
    }
  ],
  "description": "Order #0000",
  "success_url": "https://example.com/success",
  "cancel_url": "https://example.com/failure",
  "notification_url": "https://api.example.com/webhooks",
  "metadata": {
    "OrderId": "0000"
  }
 }'

Respuesta a la creación de un objeto Checkout

Si la solicitud es exitosa, recibirás un objeto Checkout similar a este.

{
  "id": "chk_ELAIMqhH92Y1XaafN0qNSOcR",
  "amount": 1000,
  "available_for_refund": 1000,
  "cancel_url": "https://example.com/failure",
  "cancel_url_method": "post",
  "currency": "clp",
  "fee": 0,
  "items": [
    {
      "sku": "",
      "name": "",
      "unit_price": 1000,
      "quantity": 1,
      "total": 1000,
      "metadata": {}
    }
  ],
  "live": true,
  "merchant_id": "mer_EHcwG3GTQXl6JrLKOSGo6jUi",
  "metadata": {
    "OrderId": "0000"
  },
  "original_amount": 1000,
  "reference": "6461644741116451139",
  "refunded": false,
  "refunded_amount": 0,
  "settlement_amount": 0,
  "source": null,
  "status": "unpaid",
  "subtotal": 1000,
  "success_url": "https://example.com/success",
  "success_url_method": "post",
  "url": "https://ventipay.com/checkout/chk_ELAIMqhH92Y1XaafN0qNSOcR",
  "object": "checkout",
  "created_at": "2025-10-29T21:28:53.224Z",
  "updated_at": "2025-10-29T21:28:53.224Z"
}

Toma nota del atributo url ya que es la URL a la cual debes redirigir al usuario.

Redirigir al usuario

Una vez creado el objeto Checkout, utiliza la URL entregada en el atributo url y redirige al usuario a esta dirección para que complete el proceso de pago. En este ejemplo redirigiremos al usuario utilizando Express.js.

server.post('/checkout', async (req, res) => {
  // Acá va tu lógica para crear el objeto Checkout

  const { url } = checkout;
  return res.redirect(url);
});

Acciones post-pago en tu backend

Una vez que el usuario haya autorizado o cancelado el pago en Venti, debes tomar acciones en tu backend como, por ejemplo, confirmar una compra en tu sistema.

Para hacerlo debes estar atento a la recepción de los eventos checkout.paid o checkout.canceled enviados como Webhook.

Redirección post-pago

Al crear un Checkout, puedes asignarles una URL de éxito y otra de cancelación. Venti redirigirá al usuario a una de estas URLs