Ecommerce

Pagos cripto para el comercio electrónico

Cómo agregar cripto como método de pago en una tienda online: lugar en el checkout, estados del pedido, pagos parciales, reembolsos, contabilidad en dólares y qué está listo hoy.

Para una tienda online, la cripto es un método de pago adicional junto a las tarjetas, no un sustituto. Llega a clientes cuyas tarjetas no funcionan en tu tienda, elimina los contracargos de tarjeta y te permite recibir stablecoins en dólares. Esta guía explica dónde encaja en el checkout, cómo relacionar los estados del pago con los del pedido, cómo manejar los casos complicados y qué está listo, y qué no, en Qvard hoy.

Qué aporta la cripto a una tienda y qué no

Sé concreto sobre lo que esperas, porque la cripto no es un interruptor de crecimiento.

  • Clientes que tus vías de tarjeta no alcanzan. Compradores cuyas tarjetas bancarias se rechazan en tiendas extranjeras, o que están en países que tu procesador no atiende, aun así pueden pagar con una stablecoin en dólares.
  • Sin contracargos de tarjeta. El remitente no puede revertir una transferencia cripto, así que los pagos con tarjeta disputados no son un riesgo para esos pedidos. Un reembolso pasa a ser una transferencia que decides enviar.
  • Ventas transfronterizas sin fricción de tarjeta. La misma página de pago sirve para un cliente en cualquier lugar.
  • Una parte modesta de los pedidos. Trátala como una opción adicional en la página de pago. En la mayoría de tiendas no sustituirá a las tarjetas y no debe complicar el flujo de tarjeta.

Si vendes bienes digitales, lee pagos cripto para tiendas de bienes digitales; las reglas de entrega de allí valen para cualquier producto instantáneo.

Dónde encaja en el checkout

Añade «Pagar con cripto» como un método de pago más, junto a los existentes, no como una tienda aparte. Una ubicación ordenada:

  1. El cliente arma el carrito e ingresa la dirección como siempre y elige «Pagar con cripto».
  2. Tu servidor crea el pedido en estado pendiente y un pago para él.
  3. Rediriges al cliente a la página de pago alojada, donde elige un activo y una red y paga desde su billetera.
  4. Cuando el pago se completa, tu servidor recibe un webhook y hace avanzar el pedido.

Muestra el precio en la moneda de tu tienda y cobra en dólares estadounidenses: el pago se crea en dólares y el cliente paga el equivalente en el activo que elija, a un tipo de cambio fijado durante una hora. Si tu tienda no tiene precios en dólares, convierte el total del pedido antes de crear el pago.

Crea el pago y usa tu número de pedido

Crea el pago desde tu backend con un único POST a https://api.qvard.com/api/v1/payment. La solicitud lleva tu clave en el encabezado Authorization: Bearer y un JSON con el número de pedido como id, el monto como price en dólares estadounidenses y, opcionalmente, un paymentSystemId para abrir la página con un activo y una red ya seleccionados. La respuesta es 201 con un redirectUrl.

Usa tu propio número de pedido como id: vuelve en el webhook, así que es la clave que une el pago con el pedido. Si la solicitud se repite con el mismo id para el mismo método de pago, recibes el pago existente, de modo que un doble clic o una solicitud reintentada no crea dos. El recorrido completo con código está en cómo aceptar pagos cripto en un sitio web.

Asocia los estados del pago con los del pedido

Un pago tiene cuatro estados, y tu pedido necesita una regla clara para cada uno:

  • wait: el pago está creado y el cliente no ha pagado. El pedido espera el pago.
  • partial: llegó menos del monto total. Mantén el pedido en espera, indica cuánto falta y deja que el cliente envíe el resto, o cancela y reembolsa.
  • completed: llegó el monto total. Este es el estado que activa el webhook, y el único que debe liberar mercancía.
  • rejected: el pago fue rechazado. Ofrece otra forma de pago.

El ejemplo muestra la correspondencia como una pequeña tabla. Dos reglas la mantienen segura: nunca devuelvas un pedido pagado a un estado anterior y nunca despaches un pedido en ningún estado que no sea completed. El manejador del webhook debe además ser idempotente y responder exactamente HTTP 200; consulta cómo proteger los webhooks de pagos cripto.

Node.jsorder-status.js
// Qvard payment status -> your order state. Only "completed" releases goods.
const ORDER_STATE = {
  wait:      'pending_payment',   // created, the customer has not paid yet
  partial:   'on_hold',           // less than required arrived: ask for the rest or refund
  completed: 'paid',              // full amount arrived: start fulfilment
  rejected:  'payment_failed'     // rejected: offer another way to pay
};

function nextState(current, qvardStatus) {
  const target = ORDER_STATE[qvardStatus];
  if (!target) return current;                    // unknown status: change nothing
  if (current === 'paid') return current;         // never move a paid order backwards
  return target;
}

Pagos parciales, pedidos caducados y reembolsos

Son los casos que más tiempo les quitan a las tiendas:

  • Clientes que pagan menos. A menudo se descuenta del monto una comisión de retiro de un exchange, y el pago llega incompleto. Decide si pides la diferencia o reembolsas, y muéstralo en la página del pedido.
  • Clientes que pagan tarde. El tipo de cambio se fija durante una hora. Si un pago llega mucho después de que se abandonó el pedido, trátalo como un caso de soporte en lugar de automatizarlo.
  • Inventario. Si reservas inventario para pedidos sin pagar, libéralo cuando el pedido caduque.
  • Reembolsos. Un pago cripto tampoco lo puedes retirar tú; un reembolso es una transferencia que envías a la billetera del cliente. Pon la regla en tus condiciones y pide la dirección de reembolso al cliente, no la tomes del pago.
  • El regreso al sitio. Todavía no hay URL de retorno tras el pago, así que el cliente vuelve a tu sitio por su cuenta. Dale una página de pedido que muestre el estado real en lugar de una página de agradecimiento que da el éxito por hecho.

Precios, comisiones y contabilidad

Mantén sencilla la parte del dinero.

  • Precio en dólares, cobro en dólares. Registra el valor del pedido en dólares en el momento del pedido y guarda junto a él el id del pago para la conciliación.
  • Cuánto cuesta. No hay cuota de suscripción. La comisión es individual para tu proyecto y, según la página de precios, parte de 1% y puede bajar hasta el 0,1%.
  • Cómo sacar el dinero. Los fondos quedan en tu saldo de Qvard y los retiras a tu propia billetera; el retiro cuesta solo la comisión de red. El retiro a una cuenta bancaria en moneda fiat no está disponible, así que, si necesitas efectivo, planifica una salida mediante un servicio que ya uses.
  • Impuestos y contabilidad. El tratamiento de los cobros en cripto depende de tu país; consúltalo con tu contador antes de lanzar.

Qué está listo hoy

Qvard funciona a través de su API: tu tienda crea el pago y recibe el webhook. Todavía no hay un plugin listo para plataformas de tiendas, los enlaces de pago y un sandbox independiente están en desarrollo, y los clientes vuelven a tu sitio por su cuenta. Si tu plataforma es WordPress, consulta pagos cripto en WordPress para ver código funcional. Para los activos y redes aceptados, consulta las monedas admitidas; para los formatos de solicitud, la documentación para desarrolladores; y para ver lo que verá tu cliente, abre una factura de demostración.

FAQ

¿Sustituirá la cripto a las tarjetas en mi tienda?

No. Funciona mejor como opción adicional para clientes cuyas tarjetas no funcionan en tu tienda o que prefieren stablecoins. Deja el flujo de tarjeta como está.

¿Cuándo debo marcar un pedido como pagado?

Solo cuando Qvard envíe el webhook con el estado completed. Que el cliente vuelva a tu sitio no es prueba de pago, y un estado partial significa que llegó menos de lo requerido.

¿Cómo funcionan los reembolsos con cripto?

El remitente no puede revertir un pago cripto, así que un reembolso es una transferencia que envías a la billetera del cliente. Define la regla en tus condiciones y pide al cliente la dirección de reembolso.

¿Hay un plugin para mi plataforma de tienda?

Todavía no. Hoy la integración se hace por la API: una solicitud crea un pago y un webhook recibe el resultado.

Artículos relacionados

Artículos relacionados