Correos transaccionales

Descargar tipos de TypeScript

SDK

Además de la API REST, ofrecemos SDKs oficiales para TypeScript y JavaScript que encapsulan las solicitudes HTTP, el manejo de errores y la autenticación. Son la forma recomendada de integrar este servicio en tu código.

Instalación

Instala el SDK del servicio de correos transaccionales desde npm. Si solo necesitas este servicio, instala únicamente @ircg/tes; si vas a usar varios servicios de IRCG, puedes instalar el meta-paquete @ircg/sdk que los incluye todos.

typescript
	# Solo este servicio
	npm install @ircg/tes
	# O el meta-paquete
	npm install @ircg/sdk

Uso básico

Inicializa el cliente con tu API key y utiliza cualquiera de los métodos disponibles para enviar correos. El cliente maneja automáticamente la autenticación, el idioma y el filtrado de campos.

typescript
	import { TESClient } from '@ircg/tes'
	
	const tes = new TESClient({ apiKey: API_KEY, lang: 'es' })
	const result = await tes.send({
		sender: '[email protected]',
		recipients: ['[email protected]'],
		subject: 'Confirmed order',
		text: 'Your order was confirmed',
		fields: ['id', 'sender', 'recipients', 'subject'],
	})
	if (result.error) throw new Error(result.error.message)
	console.log(result.email_sent.id)

Cuerpo

CampoTipoRequeridoPor defectoDescripción
apiKeystring-Tu API key del servicio de correos transaccionales.
baseUrlstringNohttps://ircg.devURL base de la API. Útil para apuntar a un entorno distinto al de producción.
lang'es' | 'en'No-Idioma de los mensajes de error. es para español; cualquier otro valor (o no enviarlo) para inglés.
dryRunbooleanNofalseSi es true, el cliente no realiza ninguna solicitud HTTP. Devuelve una respuesta exitosa simulada con los campos solicitados.

Modo dry-run (sin envío real)

Al pasar dryRun: true al constructor del cliente, no se realizan solicitudes HTTP a la API. En su lugar, el cliente devuelve una respuesta exitosa simulada, construida a partir de los datos enviados, devolviendo únicamente los campos solicitados en fields.

Útil cuando quieres ejercitar el flujo de envío de correos sin gastar créditos: durante el desarrollo local, en pruebas de integración o en suites de tests automatizados donde el envío real no es deseable.

La validación de html o text sigue ejecutándose aunque el modo dry-run esté activo, para que errores de programación se detecten también en tests.

typescript
	import { TESClient } from '@ircg/tes'
	
	const tes = new TESClient({ apiKey: 'unused', dryRun: true, lang: 'es' })
	const result = await tes.send({
		sender: '[email protected]',
		recipients: ['[email protected]'],
		subject: 'Preview',
		text: 'Preview content',
		fields: ['id', 'subject'],
	})
	if (result.error) throw new Error(result.error.message)
	console.log(result.email_sent.id) // "dry-run"

API REST

MétodoRutaDescripción
POST/api/v1/emailsEnviar un correo.

Enviar correo POST

typescript
	import { TESClient } from '@ircg/tes'
	
	const tes = new TESClient({ apiKey: API_KEY, lang: 'es' })
	const result = await tes.send({
		sender: '[email protected]',
		recipients: ['[email protected]'],
		subject: 'Confirmed order',
		html: '

Order confirmed

', fields: ['id', 'sender', 'recipients'], lang: 'es', }) if (result.error) throw new Error(result.error.message) console.log(result.email_sent.id) const payload = { sender: '[email protected]', recipients: ['[email protected]'], subject: 'Confirmed order', html: '

Order confirmed

', } const response = await fetch('https://ircg.dev/api/v1/emails?fields=%5B%22id%22%2C%22sender%22%2C%22recipients%22%5D', { method: 'POST', headers: { Authorization: `Bearer ${API_KEY}`, 'Content-Type': 'application/json', 'Accept-Language': 'es', }, body: JSON.stringify(payload), }) if (!response.ok) throw new Error(`Email request failed: ${response.status}`) const data = await response.json() console.log(data.email_sent.id)

Parámetros opcionales

https://ircg.dev/api/v1/emails?fields=["id","sender","recipients"]

ParámetroTipoValores permitidosPor defectoDescripción
fieldsstringArreglo JSON de nombres de camposTodos los campos

Especifica qué campos incluir en la respuesta. Campos disponibles: id, sender, recipients, subject, createdAt, serviceId, domainId, carbonCopy, replyTo, sesMessageId y customerId.

Ejemplo: ?fields=["id","sender","recipients"]

Cuerpo

CampoTipoRequeridoPor defectoDescripción
senderstring-

La dirección de correo electrónico que envía el correo electrónico.

El dominio de correo electrónico debe estar verificado.

subjectstring-El asunto del mensaje: un breve resumen del contenido, que aparece en la bandeja de entrada del destinatario.
recipients

string

string[]

-Los destinatarios que se colocarán en la línea Para: del mensaje.
htmlstringNo-

El contenido del mensaje, en formato HTML. Úsalo para clientes de correo electrónico que puedan procesar HTML.

Puede incluir enlaces en los que se puede hacer clic, texto formateado y mucho más en un mensaje HTML.

Es obligatorio cuando no se proporciona text.

textstringNo-

El contenido del mensaje, en formato de texto.

Úselo para clientes de correo electrónico basados en texto o clientes en redes de alta latencia (como dispositivos móviles).

Es obligatorio cuando no se proporciona html.

carbon_copy

string

string[]

No-Los destinatarios a colocar en la línea CC: del mensaje.
reply_to

string

string[]

No-

Las direcciones de correo electrónico de respuesta del mensaje.

Si el destinatario responde al mensaje, cada dirección de respuesta recibe la respuesta.

Debes proporcionar al menos uno de los campos html o text.

Respuestas

Límites y costos

  • Cada dirección en recipients o carbon_copy consume 10 créditos; carbon_copy corresponde a CC.
  • Una llamada con dryRun: true no realiza el envío y no consume créditos.
  • El límite predeterminado es de 60 solicitudes por 60 segundos y 2,000 por 3,600 segundos por API key; ambas ventanas se aplican de forma independiente. Puedes solicitar cambios a esos límites desde el panel.

Reportar abuso