| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Misma consulta que /ext/query/discounts. Una fila por descuento aplicado a una compra, no una fila por compra: una compra con un regalo y una giftcard aparece dos veces. En tipo 4 (giftcard) promocionId y giftcardId son el id de la gift card (cp_giftcards.id), no un regalo: NO sirven para promociones_obtener; el historial de esa tarjeta sale de giftcards_eventos con giftcard_id. En tipo 4 tambien vienen giftcardCodigo (enmascarado: **** + ultimos 4) y saldoActual (saldo de hoy, no el del momento del uso). Montos en unidades monetarias (no centavos). El periodo filtra por fecha de la compra; una fecha YYYY-MM-DD es el dia completo en la zona horaria del negocio. montoDescuento es null cuando el monto no quedo registrado en la base (pasa sobre todo con regalos canjeados por app o de porcentaje); paginacion.descuentosSinMonto cuenta esos casos. Los montos son brutos: las devoluciones no se restan.
| Scope requerido | promociones:read |
| Método | GET /ext/v3/promociones/descuentos |
Query
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
tipo | string | no | 1 regalos, 2 beneficios, 3 pago con puntos, 4 giftcards. Acepta lista separada por comas. Omitir = los cuatro |
tienda | string | no | Identificador exacto de la tienda de la compra (compra_tienda_id) |
fecha_inicio | string | no | YYYY-MM-DD o ISO 8601, inclusiva, sobre la fecha de la compra |
fecha_fin | string | no | YYYY-MM-DD o ISO 8601, inclusiva |
page_size | integer | no | Registros por pagina Default 100. |
page | integer | no | Numero de pagina Default 1. |
orden | enum: asc | desc | no | Orden por fecha de compra Default "asc". |
Ejemplo
curl -X GET 'https://api3.clau.io/ext/v3/promociones/descuentos' \
-H 'apikey: ck_1_...'Respuesta 200
{
"codigoRespuesta": 0,
"msj": "Exito",
"data": {
"descuentos": [
{
"descuentoId": "regalo-1234",
"tipoPromocion": 1,
"tipoPromocionNombre": "regalo",
"promocionId": "uid-abc",
"promocionNombre": "2x1 Cafe",
"promocionCodigo": "VERANO20",
"montoDescuento": 2.5,
"montoDescuentoDisponible": true,
"puntosUsados": null,
"fechaCanje": "2026-08-15 12:30:00",
"compra": {
"compraId": 88123,
"transaccionId": "POS-000123",
"tiendaId": "SUCURSAL-1",
"fecha": "2026-08-15 12:30:00",
"montoTotal": 25.5,
"estadoId": 1,
"estado": "Procesada"
},
"cliente": {
"clauId": "uid-7",
"numId": "8-888-888",
"email": "[email protected]",
"nombre": "Ana",
"apellido": "Perez",
"extId": "EXT-7"
}
},
{
"descuentoId": "giftcard-9012",
"tipoPromocion": 4,
"tipoPromocionNombre": "giftcard",
"promocionId": "310",
"promocionNombre": "rechargeable",
"promocionCodigo": null,
"montoDescuento": 18,
"montoDescuentoDisponible": true,
"puntosUsados": null,
"fechaCanje": "2026-08-15 12:30:00",
"compra": {
"compraId": 88123,
"transaccionId": "POS-000123",
"tiendaId": "SUCURSAL-1",
"fecha": "2026-08-15 12:30:00",
"montoTotal": 25.5,
"estadoId": 1,
"estado": "Procesada"
},
"cliente": {
"clauId": "uid-7",
"numId": "8-888-888",
"email": "[email protected]",
"nombre": "Ana",
"apellido": "Perez",
"extId": "EXT-7"
},
"giftcardId": 310,
"giftcardCodigo": "****4321",
"saldoActual": 7.5
}
],
"paginacion": {
"pagina": 1,
"tamanoPagina": 100,
"totalRegistros": 2,
"totalPaginas": 1,
"descuentosSinMonto": 0
}
},
"meta": {
"requestId": "5f1c…",
"appId": 1,
"scope": "promociones:read"
}
}Errores: 401 key inválida (9501), 403 sin scope (9503, meta.requiredScope), 400 parámetros (details), 429 límite de tasa. Agregue ?help=true para la ayuda en texto plano.
