Comprar a partir de un prefijo
Utilice esta operación cuando el catálogo de prefijos le indique que compre una cantidad de números de un prefijo en lugar de elegir números disponibles individualmente. Comience por países, áreas o estados, y prefijos. Conserve el identificador del prefijo y el plan de precios de un mismo resultado recién obtenido. Para un número concreto seleccionado de una lista de números disponibles, utilice Comprar un número de teléfono seleccionado.
Esta solicitud puede comprar números y generar cargos. No es una cotización, una reserva ni una simulación. Antes de enviarla, revise los cargos de alta y mensuales, las tarifas por minuto entrante, los minutos incluidos, los canales, los requisitos de registro y los límites de compra de la cuenta. Un resultado del catálogo no reserva inventario ni fija los precios. Las comprobaciones de financiación de la cuenta pueden realizarse antes de completar la compra; un error no demuestra por sí solo que no se haya realizado una compra o una aportación de fondos a la cuenta.
Enviar la compra
Utilice una cuenta de API habilitada a través de HTTPS desde una dirección IP de origen permitida. Defina las variables según su selección actual del catálogo y su configuración de entrega aprobada. El siguiente comando compra un número.
curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
--data-urlencode 'quantity=1' \
--data-urlencode "price_id=$PRICE_ID" \
--data-urlencode "channels=$CHANNELS" \
--data-urlencode "reference=$ORDER_REFERENCE" \
--data-urlencode "uri=$VOICE_URI" \
"https://api.multitel.net/v3/order/$PREFIX_ID"Arriba se muestra un envío de formulario mediante POST. El coordinador también lee un objeto JSON cuando Content-Type es application/json. Los campos JSON prevalecen sobre los campos correspondientes del formulario o de la solicitud. Utilice una sola codificación de forma coherente; no envíe valores contradictorios en los parámetros de consulta y en el cuerpo.
| Parámetro | Significado |
|---|---|
| identificador del prefijo en la ruta | El UUID del prefijo devuelto por el catálogo. No puede sustituirse por un identificador de país, área, precio o número individual. |
| quantity | Envíe un entero de 1 a 100. El valor predeterminado es 1. Los valores inferiores a 1 se convierten en 1; esta solicitud no se limita a realizar una validación. Los valores superiores a 100 provocan una excepción antes del procesamiento normal de respuestas de este coordinador, por lo que no debe contar con su estructura JSON habitual para esa entrada no válida. |
| price_id | El identificador público de precio del plan seleccionado. priceid es un alias heredado. Si el identificador no coincide, puede seleccionarse otro plan como alternativa sin avisar; este campo no garantiza de forma estricta un precio fijo. Confirme los límites de precio de la cuenta antes de comprar y revise el precio devuelto después. |
| channels | La cantidad de canales del plan seleccionado. Cuando no se utiliza una coincidencia exacta de precio, una cantidad de canales coincidente puede influir en la selección del plan alternativo. Por sí sola no garantiza que se compre un plan concreto. |
| reference | Su etiqueta para la compra o el lote. Utilice un valor ASCII corto, de un máximo de 255 bytes; los valores más largos se truncan. Se conserva con las compras realizadas correctamente y se incluye en las notificaciones de retorno si se proporciona. Distintos pedidos pueden compartir la misma referencia. No es una clave de idempotencia: volver a enviar esta operación puede comprar números adicionales y generar cargos por ellos, incluso con la misma referencia y campos idénticos. |
| webhook_url | URL opcional para las notificaciones de retorno. Utilice un punto de conexión HTTPS que usted controle. Las URL HTTP y HTTPS superan el validador básico actual; si una URL no es válida, se ignora en lugar de rechazar la compra. Una notificación de retorno es un aviso adicional, no una prueba de que sea seguro repetir una solicitud. |
Configuración de entrega y renovación
Elija la misma configuración de entrega que utilizaría para el número en el portal. Estos son valores de configuración avanzada, no instrucciones para crear una centralita alojada o una troncal de originación. Reutilice una configuración de cuenta que sepa que funciona y compruebe el número guardado después de la compra. La aceptación de una compra, por sí sola, no verifica que la entrega de voz o SMS funcione.
| Campo | Uso y compatibilidad |
|---|---|
| uri, uri2, uri3 | Destinos de voz principal y adicionales. Proporcione destinos adecuados para los modos de desvío y timbrado seleccionados. |
| forward_destination | Modo de desvío de voz. forwarding_destination y type son alias heredados. Si se omite, se utiliza el valor predeterminado del flujo de compra; dejar el campo vacío no es una forma fiable de borrar una preferencia existente. |
| ring_type | Modo de timbrado de voz; ringtype es un alias. Utilice un valor admitido de la configuración de números de su cuenta. |
| sms_forward_destination, sms_uri | Modo y destino de entrega de SMS. Los alias heredados son smsringtype y smsuri. Algunos flujos de compra aplican el destino de SMS predeterminado de la cuenta cuando este valor está vacío. La disponibilidad de SMS depende del número seleccionado y de su activación o registro. |
| overflow | Configuración de desbordamiento solicitada. La disponibilidad del plan y el flujo de compra determinan si se admite. |
| force_codec, force_dtmf | Configuración solicitada de códec y DTMF. Los alias heredados son forcecodec y forcedtmf. Compruebe la configuración guardada para el inventario seleccionado. |
| origination_trunk_id | Un identificador de configuración de una troncal existente, cuando corresponda. Esto no crea una troncal. Si se omite, se utiliza el valor predeterminado del proceso de compra. |
| autorenew | Configuración de renovación solicitada. No dé por hecho que 0 desactiva la renovación: algunos flujos de compra interpretan los valores equivalentes a vacío, incluido 0, como la configuración predeterminada de renovación activada. Compruebe la renovación del número comprado en el portal y cámbiela cuando sea necesario. |
Estos campos se normalizan y se pasan al proceso de compra, pero su persistencia varía según el flujo de inventario. La ruta actual de pedidos no ofrece los campos de límites estrictos de cotización de la guía de compra de un número seleccionado como protecciones equivalentes. Utilice los permisos de compra y los límites de precio de la cuenta, y revise la configuración resultante del número.
Leer el resultado completo
Analice el cuerpo JSON y revise status.code y status.msg incluso cuando la solicitud HTTP se complete correctamente. Esta ruta genera su propia respuesta JSON, y la función auxiliar compartida de respuestas tampoco asigna necesariamente el código de aplicación al estado HTTP. Los códigos de aplicación pueden ser números JSON o cadenas numéricas. No exija status.results; no está presente en el resultado normal de un pedido.
{
"status": {"code": "200", "msg": ""},
"response": {
"id": "o_fictional_example",
"numbers": ["12025550123"],
"price": {
"per_minute": "0.01",
"free_minutes": 0,
"setup_price": "1.25",
"monthly_price": "2.50",
"channels": 2
},
"features": ["voice"],
"needs_registration": 0,
"restrictions": "",
"registration_requirements": null
}
}El identificador, el número y los precios anteriores son ficticios. Trate el ID del pedido como un valor opaco. numbers enumera los números que esta respuesta indica como comprados; compare su longitud con la cantidad que solicitó. Los importes de los precios son cadenas y esta respuesta redondea las tarifas monetarias a dos decimales, incluida per_minute; utilice el catálogo recién obtenido para consultar la precisión original de las tarifas. Los minutos incluidos y los canales pueden recibirse como valores numéricos o cadenas numéricas.
El bloque de precios describe el plan seleccionado utilizado para generar la respuesta, no una factura detallada de cada número ni el total del pedido. Los distintos candidatos del inventario pueden tener planes diferentes. Concilie cada número comprado y las transacciones de la cuenta en lugar de multiplicar los valores de este bloque y suponer que demuestran el total final.
Compras parciales y resultados inciertos
Un código de aplicación 200 puede ir acompañado de una advertencia y de menos números de los solicitados. Un fallo posterior no revierte la compra de los números ya adquiridos. Conserve el ID del pedido, los números y el mensaje devueltos. Concilie esos números con su inventario y las transacciones de la cuenta antes de decidir si compra la cantidad restante.
Un tiempo de espera agotado, una solicitud desconectada, una respuesta mal formada o un error después del envío no demuestran que no haya ocurrido nada. No envíe automáticamente otra compra, ni siquiera con la misma referencia. Conserve la solicitud original, la referencia y cualquier ID de pedido devuelto, compruebe el inventario y las transacciones de la cuenta, y contacte con soporte si el resultado sigue siendo incierto.
Un pedido sin confirmar puede devolver el código de aplicación 400 con un mensaje que indique que aún se está confirmando. Conserve el ID del pedido devuelto y concilie esa compra; esto no es una indicación de que deba enviarla de nuevo. La recuperación de pedidos registrados realiza un seguimiento interno del pedido original. Una nueva solicitud a esta operación crea un intento de compra independiente en lugar de reanudar un pedido mediante su referencia, por lo que puede comprar más números y generar cargos por ellos. No utilice solicitudes de compra repetidas para comprobar el estado o buscar en el inventario.
Registro y activación
Un número comprado o asignado aún puede necesitar registro o activación. Si needs_registration es 1, revise restrictions y registration_requirements. Este último campo puede indicar v3/get_requirements con valores de country y number_type. Complete el procedimiento de identidad y dirección que corresponda y confirme el estado del número antes de contar con las llamadas entrantes o la mensajería.
features describe las capacidades anunciadas; no verifica el enrutamiento real, la aprobación de campañas, la entrega de SMS ni la recepción de fax. Compruebe la configuración de entrega guardada y realice la prueba de servicio correspondiente cuando el número esté activo.
Notificaciones de retorno del pedido
Las notificaciones de retorno envían mediante POST un JSON con el estado y la respuesta del pedido, al que se añade su referencia si la proporcionó. Se envían para las compras notificadas, incluidos los resultados parciales. Un fallo en la notificación de retorno no revierte la compra. La entrega puede reintentarse, por lo que debe gestionar los duplicados por ID de pedido y conciliar los números en lugar de realizar otra compra.
Esta ruta no añade una firma criptográfica a las notificaciones de retorno. Trate una notificación de retorno como un aviso para conciliar los datos con su inventario consultado mediante autenticación, no como una autorización independiente para cobrar, aprovisionar o conceder acceso. No incluya credenciales de API en la URL de notificación de retorno. Enviar otra compra con una URL de notificación de retorno diferente no actualiza el pedido original; crea un intento de compra independiente. Conserve el ID del pedido original cuando solicite a soporte que investigue su notificación de retorno.
Fallos que debe gestionar
| Resultado | Qué hacer |
|---|---|
| 400 y un mensaje de prefijo no válido | Vuelva a consultar el catálogo de prefijos y utilice su identificador actual. Distinga este caso de un mensaje que indique que un pedido original aún se está confirmando. |
| 403 o un fallo relacionado con las políticas o el saldo de la cuenta | Revise el permiso de compra, los límites de precio de la cuenta, los límites de cantidad y la financiación. Estas comprobaciones pueden propagar otros códigos de aplicación; conserve el mensaje recibido. |
| 404 o ausencia de inventario disponible | Actualice la información de disponibilidad. No intente comprar repetidamente con un prefijo cuyo inventario esté agotado. |
| 409 y un mensaje sobre confirmación de compra, rechazo del proveedor o pedido cancelado | Conserve el ID del pedido devuelto y el mensaje recibido. Concilie la solicitud con el inventario, las transacciones de la cuenta y soporte antes de enviar otra compra. Reutilizar la misma referencia no hace que otra solicitud sea segura. |
| 200 con advertencias o menos números | Se compraron algunos números. Concilie la asignación devuelta y las transacciones antes de comprar más. |
| Fallo del servidor o del transporte, o respuesta ilegible | Considere que el resultado puede ser incierto hasta que el inventario y las transacciones permitan determinar lo ocurrido. |