API · Campañas

Envíos recurrentes programados.

Base: https://api.pushhub.daertec.com. Todas las respuestas usan { errCode, errMsg, data, meta }. Autenticación y llaves · Catálogo de errores

GET/v1/campaigns

Campanas recurrentes (notifications:read)

Llave: sk_

Respuestas: 200

curl -X GET "https://api.pushhub.daertec.com/v1/campaigns" \
  -H "Authorization: Bearer sk_test_TU_LLAVE_SECRETA"

POST/v1/campaigns

Crear campana recurrente (notifications:send)

Llave: sk_

Cuerpo

CampoTipoDescripción
appIdstring
name*string
notification*object
notification.contentType"alert" | "data_only" | "silent"
notification.contentobjectPor idioma, ej. { es: { title, subtitle, body } }
notification.variablesobjectReemplazan {{nombre}} en el texto
notification.dataobject
notification.deepLinkstringmáx. 500 caracteres
notification.badgeinteger
notification.soundstringdefault o un sonido registrado en la app (2002 si no existe)
notification.ttlSecondsinteger0–2419200
notification.priority"high" | "normal"
notification.androidobject
notification.iosobject
notification.appIdstring
notification.target*object
notification.platforms"android" | "ios"[]
notification.category"transactional" | "marketing"
notification.scheduleobjectnow; at {sendAt, timezone}: hora fija (sin offset = en timezone; por defecto la de la empresa); local_time {date, time}: esa hora en la zona de cada dispositivo (~26 h). Maximo 365 dias. Errores 2011 / 2012.
notification.validateOnlyboolean
notification.templateIdstringPlantilla: lo enviado en la peticion tiene prioridad; exige sus variables (2001)
notification.mediaobjectSolo la URL viaja en el payload. Android: imagen grande (o poster de GIF/video); iOS: mutable-content + _ph.media para la extension. Un archivo en proceso solo se acepta en programadas (4009 si es inmediata).
notification.largeIconobjectImagen (Android, via SDK)
notification.actionsobject[]máx. 3 elementos
recurrence*object
recurrence.freq*"daily" | "weekly" | "monthly"
recurrence.intervalinteger1–52
recurrence.weekdays"mon" | "tue" | "wed" | "thu" | "fri" | "sat" | "sun"[]
recurrence.monthDayintegerSi el mes no lo tiene, el ultimo dia · 1–31
recurrence.monthWeekobject
recurrence.time*string
recurrence.timezonestring
recurrence.startDatestring
recurrence.endDatestring
recurrence.countinteger1–1000

Respuestas: 201422

curl -X POST "https://api.pushhub.daertec.com/v1/campaigns" \
  -H "Authorization: Bearer sk_test_TU_LLAVE_SECRETA" \
  -H "Content-Type: application/json" \
  -d '{
  "appId": "ID_DE_TU_APP",
  "name": "Recordatorio semanal",
  "notification": {
    "target": {
      "type": "topic",
      "name": "ofertas"
    },
    "content": {
      "es": {
        "title": "Ofertas de la semana",
        "body": "Mira lo nuevo"
      }
    },
    "category": "marketing"
  },
  "recurrence": {
    "freq": "weekly",
    "weekdays": [
      "mon"
    ],
    "time": "09:00",
    "timezone": "America/Santo_Domingo"
  }
}'

GET/v1/campaigns/{id}

Detalle: proximas 5 ocurrencias y notificaciones creadas

Llave: sk_

Parámetros

NombreEnTipoDescripción
id*pathstring

Respuestas: 200

curl -X GET "https://api.pushhub.daertec.com/v1/campaigns/ID_ID" \
  -H "Authorization: Bearer sk_test_TU_LLAVE_SECRETA"

PATCH/v1/campaigns/{id}

Editar nombre, notificacion o recurrencia

Llave: sk_

Parámetros

NombreEnTipoDescripción
id*pathstring

Respuestas: 200

curl -X PATCH "https://api.pushhub.daertec.com/v1/campaigns/ID_ID" \
  -H "Authorization: Bearer sk_test_TU_LLAVE_SECRETA"

DELETE/v1/campaigns/{id}

Cancelar

Llave: sk_

Parámetros

NombreEnTipoDescripción
id*pathstring

Respuestas: 200

curl -X DELETE "https://api.pushhub.daertec.com/v1/campaigns/ID_ID" \
  -H "Authorization: Bearer sk_test_TU_LLAVE_SECRETA"

POST/v1/campaigns/{id}/pause

Pausar

Llave: sk_

Parámetros

NombreEnTipoDescripción
id*pathstring

Respuestas: 200

curl -X POST "https://api.pushhub.daertec.com/v1/campaigns/ID_ID/pause" \
  -H "Authorization: Bearer sk_test_TU_LLAVE_SECRETA"

POST/v1/campaigns/{id}/resume

Reanudar (no envia las ocurrencias perdidas durante la pausa)

Llave: sk_

Parámetros

NombreEnTipoDescripción
id*pathstring

Respuestas: 200

curl -X POST "https://api.pushhub.daertec.com/v1/campaigns/ID_ID/resume" \
  -H "Authorization: Bearer sk_test_TU_LLAVE_SECRETA"