Saltar al contenido principal

Endpoints

Todos los endpoints de negocio requieren autenticacion y estan bajo el prefijo:

/integrations/stores/{store_id}/...

Donde {store_id} es el ID de la tienda a la que tu integracion tiene acceso. Si intentas acceder a una tienda no autorizada, recibiras un error 403.


Consulta de Saldo y Beneficios

Consulta los datos de un cliente, su tipo de cliente, puntos acumulados y el beneficio vigente para el dia de hoy.

GET /integrations/stores/{store_id}/clients/{dni}
Authorization: Bearer {access_token}

Parametros de ruta:

ParametroTipoDescripcion
store_idintID de la tienda
dnistringDNI/Identificacion del cliente

Response 200:

{
"client": {
"subscription_id": 1234,
"identification": "12345678",
"email": "cliente@email.com",
"card_number": "0001-0001-1234",
"name": "Juan",
"last_name": "Perez",
"points": 150.5,
"cash": 150.5
},
"client_type": {
"id": 1,
"name": "Gold"
},
"today_benefit": {
"points_percentage": 10,
"discount_percentage": 5
}
}
CampoDescripcion
client.pointsPuntos acumulados del cliente
client.cashSaldo en efectivo acumulado
client_type.nameCategoria del cliente (ej: Regular, Gold, VIP)
today_benefit.points_percentagePorcentaje de puntos que gana hoy por compra
today_benefit.discount_percentagePorcentaje de descuento que tiene hoy

Registrar Transaccion

Registra una compra del cliente. El sistema automaticamente:

  • Calcula los puntos a sumar segun el tipo de cliente y dia de la semana
  • Aplica descuentos configurados
  • Procesa recompensas (si aplica)
  • Otorga estampas (si aplica)
  • Envia emails de transaccion, encuestas, sorteos (si estan configurados)
  • Evalua si el cliente debe subir de categoria
POST /integrations/stores/{store_id}/transactions
Authorization: Bearer {access_token}
Content-Type: application/json

{
"identification": "12345678",
"amount": 5000.00,
"ticket_id": "FAC-001-00123",
"branch_id": 5,
"idempotency_key": "unique-key-123"
}

Campos del body:

CampoTipoRequeridoDescripcion
identificationstringSiDNI del cliente
amountfloatSiMonto de la compra (debe ser > 0)
ticket_idstringNoNumero de factura/ticket
branch_idintNoID de la sucursal (para beneficios por sucursal)
idempotency_keystringNoClave unica para evitar transacciones duplicadas

Response 201:

{
"transaction_id": 5678,
"points_added": 50.5,
"cash_added": 0,
"discount_pct": 5,
"final_amount": 4750.00
}
CampoDescripcion
transaction_idID de la transaccion creada
points_addedPuntos otorgados al cliente
cash_addedCash otorgado (por recompensas)
discount_pctPorcentaje de descuento aplicado
final_amountMonto final despues del descuento
Idempotencia

Usa idempotency_key para evitar transacciones duplicadas. Si mandas el mismo key dos veces, la segunda llamada devuelve la transaccion original sin crear una nueva.


Canje de Puntos

Permite al cliente canjear puntos acumulados.

POST /integrations/stores/{store_id}/swap
Authorization: Bearer {access_token}
Content-Type: application/json

{
"identification": "12345678",
"amount": 50.0
}

Campos del body:

CampoTipoRequeridoDescripcion
identificationstringSiDNI del cliente
amountfloatSiCantidad de puntos a canjear (debe ser > 0)

Response 200:

{
"transaction_id": 5679,
"points_used": 50.0,
"new_points": 100.5,
"new_cash": 100.5
}
CampoDescripcion
transaction_idID de la transaccion de canje
points_usedPuntos canjeados
new_pointsPuntos restantes del cliente
new_cashCash restante del cliente