Desarrolladores

POST/v3/rentnumber/{number_id}/{price_id}

Comprar un número de teléfono seleccionado

Envíe un número y un precio aprobados con controles de cotización y, antes de reintentar, concilie la titularidad y la activación.

En esta página
  1. Elija el número y el precio conjuntamente
  2. Envíe una solicitud de compra con controles mediante POST
  3. Registro y activación
  4. Evite la sustitución del plan sin aviso
  5. Avanzado: valores predeterminados de enrutamiento de la cuenta
  6. Respuesta
  7. Errores y resultados inciertos
  8. Concilie antes de reintentar

Elija el número y el precio conjuntamente

Compre un número concreto seleccionado en una búsqueda reciente de números disponibles. Utilice info.uuid de la entrada seleccionada como ID del número y uno de los valores price[].uuid de esa misma entrada como ID del precio. La ruta también acepta el número completo almacenado, pero un ID de país, zona o prefijo no sustituye a la selección de un número.

Buscar o consultar precios guardados no reserva un número ni congela su precio. Confirme el precio de alta, el precio mensual, la tarifa por minuto entrante y los minutos y canales incluidos de la opción seleccionada, además de los permisos de compra y los requisitos de registro de la cuenta. El importe base inicial en la función auxiliar revisada es la suma del precio de alta y el precio mensual; deben confirmarse todos los cargos y condiciones específicos del proveedor para el plan seleccionado.

Envíe una solicitud de compra con controles mediante POST

Utilice una cuenta de API habilitada a través de HTTPS desde una dirección IP de origen permitida. El siguiente comando realiza una compra, no una cotización ni una simulación. Establezca todas las variables a partir de la misma selección reciente de número y precio. Los campos de límites conservan el prefijo heredado restore_quote_; el portal actual también los utiliza para compras de números concretos con controles.

curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
  --data-urlencode "restore_quote_price_id=$PRICE_ID" \
  --data-urlencode "restore_quote_setup=$SETUP_PRICE" \
  --data-urlencode "restore_quote_monthly=$MONTHLY_PRICE" \
  --data-urlencode "restore_quote_per_minute=$PER_MINUTE_PRICE" \
  --data-urlencode "restore_quote_channels=$CHANNELS" \
  "https://api.multitel.net/v3/rentnumber/$NUMBER_ID/$PRICE_ID"

Utilice POST con datos de formulario como se muestra. La función auxiliar también permite analizar JSON y estructuras contenedoras de opciones, pero esta revisión no establece una equivalencia completa para todas las rutas de cotización y de proveedores. No utilice GET para comprar, aunque este coordinador heredado no tenga un control explícito del método.

Ruta de compra y campos de cotización
CampoSignificado
NUMBER_IDUUID del número seleccionado en la búsqueda, o el número completo almacenado. Un número por solicitud.
PRICE_IDUUID del precio asociado al número seleccionado y a su cuenta. Indíquelo siempre de forma explícita.
restore_quote_price_idDebe coincidir con el ID del precio resuelto. Proporcionar este campo habilita las comprobaciones de cotización; no es una clave de idempotencia.
restore_quote_setupPrecio de alta máximo aceptado, como valor numérico finito no negativo.
restore_quote_monthlyPrecio mensual máximo aceptado, como valor numérico finito no negativo.
restore_quote_per_minuteTarifa máxima aceptada por minuto entrante, como valor numérico finito no negativo.
restore_quote_channelsCantidad entera exacta de canales de la opción de precio seleccionada, no una solicitud de un plan de canales diferente.

Proporcione todos los campos numéricos de cotización siempre que proporcione el ID del precio de la cotización. Un ID modificado, un precio superior a un límite, un límite ausente o no válido, un cambio en la cantidad de canales o un bloqueo de cotización ocupado provoca la devolución del código de API 409 antes de que se envíe la solicitud al proveedor de alquiler seleccionado. Las comparaciones permiten una pequeña tolerancia de coma flotante; utilice los valores reales mostrados del plan en lugar de un precio redondeado manualmente.

Los controles no convierten todo el flujo de trabajo en una simulación ni en una transacción. Las consultas de registro, el aprovisionamiento de identidades u otras tareas de la función auxiliar pueden realizarse antes de estas comprobaciones. Tampoco congelan el inventario externo ni sustituyen las restricciones de compra de la cuenta.

Registro y activación

Cuando sea necesario, añada el campo de formulario RegistrationID con el UUID del perfil de registro perteneciente al cliente. No es el ID de un justificante cargado, de una dirección del proveedor ni de una entidad de identidad independiente. La función auxiliar resuelve el perfil en el contexto de la cuenta autenticada y rechaza los perfiles ausentes o no disponibles.

Parte del inventario admitido permite comprar antes de completar el registro; otra parte exige un perfil antes de la compra. Aun así, puede ser necesaria una validación o un aprovisionamiento específicos del operador. No interprete una compra satisfactoria ni la omisión de una comprobación previa como una exención de registro o una activación inmediata.

Cuando está presente, el campo de la respuesta registration_requirements identifica la consulta estructurada de requisitos con el país y el tipo de número. Utilice el catálogo de registro y el flujo de presentación de justificantes para cumplir los requisitos aplicables. El texto y los metadatos devueltos no aprueban por sí solos un perfil.

Evite la sustitución del plan sin aviso

El coordinador heredado puede deducir un precio omitido a partir de los datos del número almacenados en caché. También puede recurrir al precio más reciente de la cuenta para un prefijo almacenado en caché cuando un ID de precio proporcionado explícitamente ya no existe, y actualizar la selección de precios permitidos almacenada en caché. No confíe en estas alternativas para seleccionar el plan que aprobó un cliente.

Proporcione explícitamente el precio seleccionado y los campos de control de cotización correspondientes. El control del ID de cotización rechaza el recurso a otro ID antes de enviar la solicitud de alquiler. Tras un conflicto por un precio desactualizado, actualice la búsqueda y obtenga una nueva selección aprobada en lugar de eliminar los controles para forzar la compra.

No hay un período de reserva garantizado ni un tiempo de vigencia de la caché que se aplique de forma universal a todas las rutas. Durante el flujo de trabajo se vuelven a comprobar la disponibilidad del número, los límites de precio de la cuenta y las políticas de compra, pero el comportamiento completo específico de cada proveedor sigue en revisión.

Avanzado: valores predeterminados de enrutamiento de la cuenta

Una compra puede heredar los destinos de voz, los destinos de respaldo, el destino de SMS y la preferencia de troncal de originación existentes en la cuenta. Revise esos valores predeterminados antes de realizar el pedido; omitir las opciones de enrutamiento no garantiza que el número quede sin configurar. La función auxiliar revisada habilita la renovación automática de forma predeterminada.

Opciones de enrutamiento reconocidas por la función auxiliar compartida
OpciónComportamiento de resolución
uri, uri2, uri3Los valores omitidos heredan los valores predeterminados correspondientes de la cuenta. Los valores explícitamente vacíos borran el valor en la función auxiliar en lugar de heredarlo. Utilice destinos válidos adecuados para el modo de enrutamiento seleccionado.
smsuriSi se omite el valor, se hereda el destino de SMS de la cuenta; un valor explícitamente vacío lo borra en la función auxiliar.
origintrunkUn ID de troncal explícito y reconocido tiene prioridad. Un valor que no se pueda resolver puede dar lugar al uso de la preferencia de la cuenta o del valor predeterminado heredado en lugar de producir un error.
forward_destination, forwarding_destination, typeAlias no vacíos del modo de enrutamiento, en ese orden de prioridad. Utilice valores admitidos de la configuración de enrutamiento de la cuenta, no un modo numérico supuesto.
RegistrationIDConsulta del perfil de registro, limitada al cliente; es independiente de los destinos de enrutamiento.
autorenewEl valor predeterminado es 1. La función auxiliar comprueba que el valor no esté vacío, por lo que 0 no deshabilita de forma fiable la renovación mediante este campo de compra. Utilice los mecanismos admitidos para gestionar la renovación de la cuenta y verifique el ajuste guardado.

Estas son las reglas de funcionamiento de la función auxiliar compartida, no una garantía de que todos los proveedores guarden todos los ajustes opcionales de la misma manera. Existen otros campos heredados de voz, buzón de voz, fax y SMS, pero aún requieren una revisión completa específica de cada proveedor. Verifique la configuración guardada del número comprado mediante el flujo de trabajo de la cuenta antes de depender de las llamadas o los mensajes.

Respuesta

Ejemplo ficticio de una compra sin complicaciones; los valores y las prestaciones varían según el plan seleccionado.

{
  "status": {
    "code": 200,
    "msg": ""
  },
  "response": {
    "number": "12025550123",
    "price": {
      "per_minute": "0.0100",
      "free_minutes": "100",
      "setup_price": "2.00",
      "monthly_price": "4.00",
      "channels": "2",
      "overflow": "0"
    },
    "features": [
      "voice"
    ],
    "needs_registration": 0,
    "registration_requirements": null
  }
}

El coordinador utiliza sus propios status.code/status.msg y la estructura contenedora response, sin que se garantice el campo status.results. Un error suele tener una lista de respuesta vacía. Si la operación se completa correctamente, examine el número y el precio devueltos y después concilie el inventario de la cuenta y el estado de registro. La aceptación del proveedor no constituye una prueba real de voz, SMS o fax.

Errores y resultados inciertos

Principales códigos de resultado del coordinador
Código de APISignificado
403Las restricciones de precio o de compra de la cuenta, una selección de precio no disponible o un perfil de registro inaccesible pueden bloquear el procesamiento.
404Selección de número, precio o prefijo ausente o no disponible.
409El número ya está activo, un control de cotización ya no coincide o una operación distinta sujeta a controles mantiene el bloqueo.
422La información de registro es obligatoria, está incompleta o no se puede aprovisionar en las rutas de registro revisadas.
500 y otros códigos del proveedor o de la cuentaFallo del proveedor, del procesamiento local o de las políticas. Estos resultados no demuestran en todos los casos que no se haya realizado una compra o un cargo.

Lea el cuerpo real de la respuesta de la API además del estado HTTP. Un proveedor externo puede aceptar un alquiler antes de que falle la notificación local, el registro u otro procesamiento. Algunas asignaciones de inventario local utilizan transacciones de base de datos, pero no existe una reversión universal de los pedidos a proveedores externos. Este coordinador no dispone de una clave de idempotencia para el cliente.

Concilie antes de reintentar

  1. Guarde el número, el precio y los límites de cotización aprobados en el registro del pedido de su aplicación antes de enviar la solicitud una sola vez.
  2. Consulte el inventario de números comprados y los detalles del número de la misma cuenta después de la solicitud, incluso si se agota el tiempo de espera o se produce un error.
  3. Si el número existe, verifique su precio, renovación, enrutamiento y estado de registro en lugar de enviar otra solicitud de compra.
  4. Si el resultado sigue siendo incierto, pida al servicio de soporte que concilie el pedido al proveedor y la facturación de la cuenta antes de reintentar. Un mensaje de error o un indicador de éxito de un registro heredado no constituyen por sí solos pruebas suficientes.
  5. Una vez confirmadas la titularidad y la activación, complete las comprobaciones habituales de enrutamiento y las pruebas de servicio de la cuenta.