Templates

CRUD de plantillas de WhatsApp. Sincroniza estado con Meta (PENDING / APPROVED / REJECTED).

Base path: /organizations/:orgId/templates·7 endpoints·Source: mosend-wb-backend/src/modules/templates/templates.controller.ts
GET/organizations/:orgId/templates
bearer

Lista las plantillas de la organización, opcionalmente filtradas por WABA.

Path params

  • orgIdstringrequerido

Query params

  • wabaIdstring

Respuestas

  • 200
curl -X GET 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/templates' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>'
Response · 200
{
  "data": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "createdAt": "2026-05-01T03:42:18.123Z"
    }
  ],
  "timestamp": "2026-05-01T03:42:18.123Z"
}
GET/organizations/:orgId/templates/:id
bearer

Obtiene el detalle de una plantilla por su id.

Path params

  • orgIdstringrequerido
  • idstringrequerido

Respuestas

  • 200
curl -X GET 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/templates/00000000-0000-0000-0000-000000000000' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "createdAt": "2026-05-01T03:42:18.123Z"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/organizations/:orgId/templates
bearer

Crea una plantilla y la envía a Meta para aprobación.

Path params

  • orgIdstringrequerido

Body (JSON)

  • wabaIdstring · uuidrequerido
  • namestringrequerido
  • languagestringrequerido
  • categorystringrequerido
    MARKETINGUTILITYAUTHENTICATION
  • componentsTemplateComponentDto[]requerido

Respuestas

  • 201
curl -X POST 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/templates' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>' \
  -H 'Content-Type: application/json' \
  -d '{"wabaId": "00000000-0000-0000-0000-000000000000","name": "<name>","language": "<language>","category": "MARKETING","components": []}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "bienvenida_v1",
    "language": "es_CO",
    "category": "MARKETING",
    "components": []
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
PATCH/organizations/:orgId/templates/:id
bearer

Meta solo permite editar plantillas aprobadas o rechazadas; name/language/category no son editables. Cuotas de Meta: 1 edición/24h, máximo 10/mes por plantilla.

Path params

  • orgIdstringrequerido
  • idstringrequerido

Body (JSON)

  • componentsTemplateComponentDto[]requerido

Respuestas

  • 200
curl -X PATCH 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/templates/00000000-0000-0000-0000-000000000000' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>' \
  -H 'Content-Type: application/json' \
  -d '{"components": []}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "bienvenida_v1",
    "language": "es_CO",
    "category": "MARKETING",
    "components": []
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
DELETE/organizations/:orgId/templates/:id
bearer

Borra una plantilla — primero en Meta y luego en la BD local.

Path params

  • orgIdstringrequerido
  • idstringrequerido

Respuestas

  • 200
curl -X DELETE 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/templates/00000000-0000-0000-0000-000000000000' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "createdAt": "2026-05-01T03:42:18.123Z"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/organizations/:orgId/templates/sync
bearer

Sincroniza plantillas desde Meta para todos los WABA de la organización

Path params

  • orgIdstringrequerido

Respuestas

  • 201
curl -X POST 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/templates/sync' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "createdAt": "2026-05-01T03:42:18.123Z"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/organizations/:orgId/templates/upload-header-media
bearer

Sube imagen/video/PDF para usar como Header de plantilla. Devuelve header_handle.

Path params

  • orgIdstringrequerido

Respuestas

  • 200
curl -X POST 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/templates/upload-header-media' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "createdAt": "2026-05-01T03:42:18.123Z"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}