# API de DoneTalk

La API permite que su sistema (ERP, CRM, sitio, automatización) haga en DoneTalk lo que se hace en pantalla: crear y enviar campañas de WhatsApp, registrar y actualizar contactos, enviar mensajes, seguir y cerrar conversaciones, agendar citas y recibir avisos de todo lo que pasa.

- **Dirección:** `https://api.donetalk.com/v1/c/{empresa}`, donde `{empresa}` es el identificador de su empresa en DoneTalk.
- **Formato:** JSON, fechas en ISO 8601 (UTC), ids en UUID, dinero en micros (1.000.000 = 1 unidad de moneda).
- **Especificación completa:** [OpenAPI](https://api.donetalk.com/v1/openapi.json?lang=es), para generar código o importar en Postman.

## Primeros pasos

1. Un administrador crea la clave en **Configuración › API** en DoneTalk y marca qué puede hacer. Para empezar sin riesgo, elija **Prueba**: lo simula todo y no envía nada.
2. Verifique la clave:

```bash
curl https://api.donetalk.com/v1/c/{empresa}/me \
  -H "Authorization: Bearer $DONETALK_KEY"
```

3. Cree una campaña con la lista de contactos en la propia llamada, revise el costo y envíela. La guía [Campañas, de principio a fin](/es/desarrolladores/campanas/) muestra cada paso.
4. Registre una dirección de su sistema para recibir los [avisos](/es/desarrolladores/avisos/): entregado, leído, respondido, conversación concluida con su desenlace.

## Pruébelo ahora, sin cuenta

La empresa de demostración `demo` acepta la clave de prueba pública de abajo. Todo es simulado: las respuestas tienen el formato real, con datos de ejemplo, y nada se guarda ni se envía.

```bash
export DONETALK_KEY=dt_test_demo_zRZ6twAhj4u9dZT0hEBrNFzr
curl -X POST https://api.donetalk.com/v1/c/demo/campaigns \
  -H "Authorization: Bearer $DONETALK_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "Primera campaña", "audience": {"kind": "contacts", "people": [{"phone": "+5548999990001", "name": "Ana"}]}}'
```

## Qué cubre la API

| Área                                                                                             | Qué se puede hacer                                                                                                                             |
| ------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| [Campañas](/es/desarrolladores/referencia/campaigns/)                                                       | crear, revisar costo y reglas, probar, enviar o programar, pausar, reanudar, cancelar, reenviar fallas, ver cada destinatario y los resultados |
| [Segmentos](/es/desarrolladores/referencia/segments/)                                                       | grupos de contactos por condiciones, contar y buscar                                                                                           |
| [Contactos](/es/desarrolladores/referencia/contacts/)                                                       | crear, actualizar o importar hasta 1.000 a la vez, etiquetas, consentimiento, fichas de contexto, borrar a pedido del titular                  |
| [Campos](/es/desarrolladores/referencia/contact-fields/)                                                    | ver y crear los campos de los contactos                                                                                                        |
| [Plantillas](/es/desarrolladores/referencia/templates/)                                                     | las plantillas aprobadas por Meta, con variables y botones                                                                                     |
| [Mensajes](/es/desarrolladores/referencia/messages/) y [conversaciones](/es/desarrolladores/referencia/conversations/) | enviar una plantilla a un teléfono, texto y archivos en la ventana de 24 h, cerrar con desenlace                                               |
| [Números, equipos y etiquetas](/es/desarrolladores/referencia/numbers-teams-and-tags/)                      | para elegir el número que envía y el equipo que recibe las respuestas                                                                          |
| [Agenda](/es/desarrolladores/referencia/scheduling/)                                                        | horarios libres, agendar, reprogramar y cancelar                                                                                               |
| [Avisos](/es/desarrolladores/referencia/webhooks/)                                                          | crear y seguir las direcciones que reciben los eventos                                                                                         |

## Antes de pasar a producción

- Use una clave por sistema, solo con los alcances que necesita ([Claves y alcances](/es/desarrolladores/claves-y-alcances/)).
- Envíe `Idempotency-Key` en creaciones y envíos y respete el límite de 600 llamadas por minuto ([Errores y límites](/es/desarrolladores/errores-y-limites/)).
- Verifique la firma de cada aviso ([Avisos](/es/desarrolladores/avisos/)).
