Números de teléfono

Números de WhatsApp activos: certificación, perfil, soft-delete.

Base path: /organizations/:orgId/phone-numbers·11 endpoints·Source: mosend-wb-backend/src/modules/phone-numbers/phone-numbers.controller.ts
POST/organizations/:orgId/phone-numbers
bearer

Agrega un nuevo número de teléfono a la WABA via Meta Cloud API.

Path params

  • orgIdstringrequerido

Body (JSON)

  • wabaIdstringrequerido
  • ccstringrequerido
  • phoneNumberstringrequerido
  • verifiedNamestringrequerido

Respuestas

  • 201
curl -X POST 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/phone-numbers' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>' \
  -H 'Content-Type: application/json' \
  -d '{"wabaId": "00000000-0000-0000-0000-000000000000","cc": "<cc>","phoneNumber": "<phoneNumber>","verifiedName": "<verifiedName>"}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
GET/organizations/:orgId/phone-numbers
bearer

Lista los números de teléfono de la organización.

Path params

  • orgIdstringrequerido

Query params

  • wabaIdstringrequerido
  • includeArchivedstringrequerido

Respuestas

  • 200
curl -X GET 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/phone-numbers' \
  -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/phone-numbers/:id
bearer

Obtiene el detalle de un número de teléfono.

Path params

  • orgIdstringrequerido
  • idstringrequerido

Respuestas

  • 200
curl -X GET 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/phone-numbers/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"
}
PATCH/organizations/:orgId/phone-numbers/:id
bearer

Actualiza ajustes del canal en el panel (hoy: el color con el que se distingue en el inbox).

Path params

  • orgIdstringrequerido
  • idstringrequerido

Body (JSON)

  • colorstring
    emeraldskyvioletamberroseindigotealfuchsiaorangelimecyanpinkslate

    Clave de la paleta, o null para volver al color automático.

Respuestas

  • 200
curl -X PATCH 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/phone-numbers/00000000-0000-0000-0000-000000000000' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>' \
  -H 'Content-Type: application/json' \
  -d '{"color": "emerald"}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
DELETE/organizations/:orgId/phone-numbers/:id
bearer

Archiva (soft-delete) el número.

Path params

  • orgIdstringrequerido
  • idstringrequerido

Respuestas

  • 200
curl -X DELETE 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/phone-numbers/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/phone-numbers/sync
bearer

Sincroniza con Meta: archiva números que ya no existen ahí y restaura los que volvieron.

Path params

  • orgIdstringrequerido

Respuestas

  • 200
curl -X POST 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/phone-numbers/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/phone-numbers/:id/username
bearer

Reserva o cambia el username de negocio del número (WhatsApp usernames). force_transfer lo mueve desde otro número del portfolio.

Path params

  • orgIdstringrequerido
  • idstringrequerido

Body (JSON)

  • usernamestringrequerido

    Formato de username de negocio de Meta: letras/números/punto/guion bajo.

  • transferActionobject

    'force_transfer' lo mueve desde otro número del portfolio (error 147005 sin él).

Respuestas

  • 201
curl -X POST 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/phone-numbers/00000000-0000-0000-0000-000000000000/username' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>' \
  -H 'Content-Type: application/json' \
  -d '{"username": "<username>","transferAction": {}}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/organizations/:orgId/phone-numbers/:id/restore
bearer

Restaura un número archivado.

Path params

  • orgIdstringrequerido
  • idstringrequerido

Respuestas

  • 200
curl -X POST 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/phone-numbers/00000000-0000-0000-0000-000000000000/restore' \
  -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/phone-numbers/:id/coexistence/sync
bearer

Coexistencia: pide a Meta los contactos y el historial de la app WhatsApp Business (ventana de 24 h desde el registro, una sola vez).

Path params

  • orgIdstringrequerido
  • idstringrequerido

Respuestas

  • 200
curl -X POST 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/phone-numbers/00000000-0000-0000-0000-000000000000/coexistence/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/phone-numbers/:id/reconnect
bearer

Re-verifica el número contra Meta y sana la marca de desconexión si volvió a responder; si no, indica rehacer la conexión.

Path params

  • orgIdstringrequerido
  • idstringrequerido

Respuestas

  • 200
curl -X POST 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/phone-numbers/00000000-0000-0000-0000-000000000000/reconnect' \
  -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"
}
DELETE/organizations/:orgId/phone-numbers/:id/purge
bearer

HARD delete del número. Bloquea si hay cargos pendientes.

Path params

  • orgIdstringrequerido
  • idstringrequerido

Body (JSON)

  • confirmboolean

    Debe venir en true para confirmar el borrado definitivo.

Respuestas

  • 204
curl -X DELETE 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/phone-numbers/00000000-0000-0000-0000-000000000000/purge' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>' \
  -H 'Content-Type: application/json' \
  -d '{"confirm": true}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}