> ## Documentation Index
> Fetch the complete documentation index at: https://docs.notifique.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# SMS con número propio y precios por país

> Envía SMS con el número que contrataste (from): el cliente ve tu línea; precio según país de destino.

<Tip>
  **Número propio** = el SMS sale del **número que contrataste** en el workspace. El cliente ve tu prefijo o tu número internacional — no un remitente genérico de la plataforma. Pasa el campo **`from`** en la API o elige la línea en el panel.
</Tip>

## Dos formas de enviar SMS

|              | **Compartido** (sin `from`)                         | **Número propio** (con `from`)                    |
| ------------ | --------------------------------------------------- | ------------------------------------------------- |
| Remitente    | Línea compartida de la plataforma                   | **Tu** número contratado                          |
| Precio       | Fijo por tipo de envío (`full`, `standard`, `slow`) | **Por país** del destinatario                     |
| Campo en API | Omite `from`; usa `options.speed`                   | `from` obligatorio; `speed` **no** aplica         |
| Uso típico   | OTP masivo, campañas en escala                      | Marca con prefijo fijo, soporte, 2FA con tu línea |

Analogía: **compartido** es correo con remitente genérico del transportista; **número propio** es correo con el **nombre y dirección de tu empresa** en el sobre.

El número debe estar **ACTIVE**, con SMS habilitado, contratado en [Números de teléfono](/es/phone-numbers-api/como-funciona/quick-start).

***

## Enviar con número propio

```http theme={null}
POST /v1/sms/messages
Content-Type: application/json
Authorization: Bearer sk_live_xxxxx
```

Con E.164:

```json theme={null}
{
  "from": "+5511987654321",
  "to": ["5511999887766"],
  "type": "text",
  "payload": {
    "message": "Tu pedido #8842 salió para entrega. Seguimiento: https://tienda.com/r/8842"
  }
}
```

Con ID interno del número (equivalente):

```json theme={null}
{
  "from": "clxx_phone_1",
  "to": ["5511999887766"],
  "type": "text",
  "payload": {
    "message": "Código de verificación: 739201. No lo compartas."
  }
}
```

**Respuesta (202)**

```json theme={null}
{
  "success": true,
  "data": {
    "status": "QUEUED",
    "count": 1,
    "messageIds": ["clsms_abc..."],
    "smsIds": ["clsms_abc..."]
  }
}
```

<Note>
  Con `from` definido, **`options.speed` se ignora**. Full, Standard y Slow existen solo en envío **compartido** — con tu línea, el precio depende del **país del destino**, no del tipo de envío.
</Note>

***

## Cómo se calcula el precio

1. La API identifica el **país** del número en `to`.
2. Consulta la tarifa en `smsOwnNumber.rates` (`GET /v1/pricing`).
3. Debita créditos (plan) o importe pay-as-you-go **por SMS** enviado.

Ejemplo de fila en la tabla pública:

```json theme={null}
{
  "country": "BR",
  "countryName": "Brasil",
  "callingCode": "55",
  "credits": 24,
  "paygCents": 3,
  "available": true,
  "unavailableReason": null
}
```

País sin fila específica → usa `smsOwnNumber.fallbackCountry` (ej.: `ZZ` para resto del mundo).

Consulta la tabla completa:

```bash theme={null}
curl -s https://api.notifique.dev/v1/pricing | jq '.data.smsOwnNumber.rates[] | select(.country=="BR")'
```

Detalles: [Consulta de precios](/es/guides/precos/api-de-precos).

***

## SMS recibido en tu número

Cuando el cliente **responde** a tu número, el mensaje entra como inbound:

```http theme={null}
GET /v1/sms/inbound?page=1&limit=20
Authorization: Bearer sk_live_xxxxx
```

Webhook: `sms.received` / `sms.replied` — [Eventos de webhook](/es/sms-api/como-funciona/eventos-do-webhooks).

***

## Errores comunes

| Situación                         | HTTP | `code`                      |
| --------------------------------- | ---- | --------------------------- |
| `from` inválido o no ACTIVE       | 400  | `INVALID_FROM`              |
| Número sin SMS habilitado         | 400  | —                           |
| Destino no disponible en la tabla | 400  | `DESTINATION_NOT_AVAILABLE` |
| Saldo/créditos insuficiente       | 402  | `INSUFFICIENT_BALANCE`      |

***

## Próximos pasos

* [Introducción SMS](/es/sms-api/como-funciona/introducao): compartido vs número propio
* [Quick Start](/es/sms-api/como-funciona/quick-start): primer envío
* [Números de teléfono](/es/phone-numbers-api/como-funciona/quick-start): contratar línea con SMS
