Crear, listar y consultar órdenes. Elige un SDK o integra con cURL; todos los ejemplos usan la misma autenticación HMAC.
Crea una orden de pago y devuelve payment_url, public_token y estado inicial. Opcionalmente envía items[] para calcular el monto desde el catálogo sin crear un sales_order.
Parámetros
merchant_referencerequeridostringIdentificador único de tu sistema.
amount_in_centsopcionalnumberMonto en centavos. Obligatorio sin items[]; opcional con items[] para validar el total calculado.
currency_idopcionaluuidUUID de la moneda. Obligatorio sin items[]; con items[] se deriva del catálogo.
country_idrequeridouuidUUID del país (elegibilidad y envío con items[]).
itemsopcionalarrayLíneas { variant_id, quantity }. Calcula precios en servidor; guarda detalle en metadata.
shipping_in_centsopcionalstringSolo con items[]. Override de envío; si se omite se calcula.
tax_in_centsopcionalstringSolo con items[]. Impuestos en centavos.
discount_in_centsopcionalstringSolo con items[]. Descuento en centavos.
descriptionopcionalstringTexto visible en el checkout.
customer_emailopcionalstringCorreo del pagador.
success_urlopcionalstringRedirección tras pago exitoso.
cancel_urlopcionalstringRedirección si el usuario cancela.
expires_atopcionalstringFecha límite ISO 8601 (UTC).
metadataopcionalobjectDatos arbitrarios JSON (se fusionan con catalog_items si hay items[]).
const order = await client.createPaymentOrder({
merchant_reference: 'orden-124',
amount_in_cents: 50000,
currency_id: process.env.HANIX_CURRENCY_ID!,
country_id: process.env.HANIX_COUNTRY_ID!,
description: 'opcional',
customer_email: 'opcional@email.com',
success_url: 'https://tu-tienda.com/ok',
cancel_url: 'https://tu-tienda.com/cancel',
expires_at: '2026-05-16T12:00:00.000Z',
metadata: { sku: 'ABC' },
});
// order.payment_url → enlace de checkoutLista órdenes con filtros por estado, referencia, fechas y paginación.
const { items, pagination } = await client.listPaymentOrders({
status: 'pending',
page: 1,
limit: 20,
sort: 'created_at_desc',
});Consulta una orden por UUID.
const order = await client.getPaymentOrder('uuid-orden');Intentos de pago: initiated, processing, succeeded, failed, expired, abandoned.
const attempts = await client.listPaymentOrderAttempts(
'uuid-orden',
{ status: 'succeeded', page: 1, limit: 10 },
);