Sviluppatori

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

Acquista un numero di telefono selezionato

Invia un numero e un prezzo approvati con controlli sul preventivo, quindi verifica la titolarità e l’attivazione prima di riprovare.

Su questa pagina
  1. Scegli insieme il numero e il prezzo
  2. POST per inviare una richiesta di acquisto con controlli di protezione
  3. Registrazione e attivazione
  4. Evita la sostituzione del piano senza preavviso
  5. Avanzate: impostazioni di instradamento predefinite dell’account
  6. Risposta
  7. Errori e risultati incerti
  8. Verifica la situazione prima di riprovare

Scegli insieme il numero e il prezzo

Acquista un singolo numero specifico selezionato da una nuova ricerca di numeri disponibili. Usa il valore info.uuid della voce selezionata come ID del numero e uno dei valori price[].uuid della stessa voce come ID del prezzo. La rotta accetta anche il numero completo memorizzato, ma l’ID di un paese, di un’area o di un prefisso non sostituisce la selezione di un numero.

La ricerca o la consultazione dei prezzi salvati non riserva un numero né ne blocca il prezzo. Conferma il costo di attivazione, il canone mensile, la tariffa al minuto in entrata, i minuti e i canali inclusi dell’opzione selezionata, oltre alle autorizzazioni di acquisto dell’account e ai requisiti di registrazione. Nella funzione ausiliaria esaminata, l’importo base iniziale è la somma del costo di attivazione e del canone mensile; occorre confermare tutti gli addebiti e le condizioni specifici del fornitore per il piano selezionato.

POST per inviare una richiesta di acquisto con controlli di protezione

Usa un account API abilitato tramite HTTPS da un indirizzo IP di origine consentito. Il comando seguente effettua un acquisto, non un preventivo o una simulazione. Imposta tutte le variabili a partire dalla stessa nuova selezione di numero e prezzo. I campi dei limiti massimi mantengono il prefisso storico restore_quote_; anche il portale attuale li usa per gli acquisti di numeri specifici con controlli di protezione.

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"

Usa POST con dati di modulo come mostrato. La funzione ausiliaria supporta anche l’analisi di JSON e di un involucro di opzioni, ma questa revisione non ne dimostra la piena equivalenza per tutti i percorsi relativi a preventivi e fornitori. Non usare GET per gli acquisti, anche se questo coordinatore preesistente non dispone di un controllo esplicito sul metodo.

Percorso di acquisto e campi del preventivo
CampoSignificato
NUMBER_IDUUID del numero selezionato nella ricerca oppure numero completo memorizzato. Un solo numero per richiesta.
PRICE_IDUUID del prezzo associato al numero selezionato e al tuo account. Forniscilo sempre esplicitamente.
restore_quote_price_idDeve corrispondere all’ID del prezzo risolto. Fornire questo campo abilita i controlli sul preventivo; non è una chiave di idempotenza.
restore_quote_setupCosto di attivazione massimo accettato, espresso come valore numerico finito non negativo.
restore_quote_monthlyCanone mensile massimo accettato, espresso come valore numerico finito non negativo.
restore_quote_per_minuteTariffa massima accettata al minuto in entrata, espressa come valore numerico finito non negativo.
restore_quote_channelsIl numero intero esatto di canali dell’opzione di prezzo selezionata, non una richiesta di un piano con un numero diverso di canali.

Fornisci tutti i campi numerici del preventivo ogni volta che fornisci l’ID del prezzo del preventivo. Un ID modificato, un prezzo superiore a un limite massimo, un limite mancante o non valido, un numero di canali modificato o un blocco del preventivo occupato restituisce il codice API 409 prima che la richiesta di noleggio venga inoltrata al fornitore selezionato. I confronti ammettono una piccola tolleranza in virgola mobile; usa i valori effettivi visualizzati per il piano anziché un prezzo arrotondato manualmente.

I controlli di protezione non trasformano l’intero flusso in una simulazione o in una transazione. La ricerca dei profili di registrazione, il provisioning delle identità o altre attività della funzione ausiliaria possono avvenire prima di questi controlli. Inoltre, non bloccano la disponibilità dei numeri presso fornitori esterni né sostituiscono le restrizioni di acquisto a livello di account.

Registrazione e attivazione

Quando richiesto, aggiungi il campo del modulo RegistrationID contenente l’UUID del profilo di registrazione appartenente al cliente. Non è l’ID di un documento giustificativo caricato, di un indirizzo del fornitore o di un’entità di identità separata. La funzione ausiliaria risolve il profilo rispetto all’account autenticato e rifiuta i profili mancanti o non disponibili.

Alcuni numeri tra quelli supportati possono essere acquistati prima che la registrazione sia completa; altri richiedono un profilo prima dell’acquisto. Potrebbero comunque essere necessari una convalida o un provisioning specifici dell’operatore. Non interpretare un acquisto riuscito o l’assenza di un controllo preliminare come un’esenzione dalla registrazione o un’attivazione immediata.

Quando presente, il campo della risposta registration_requirements identifica la ricerca strutturata dei requisiti in base al paese e al tipo di numero. Usa il catalogo di registrazione e il flusso di presentazione dei documenti giustificativi per soddisfare i requisiti applicabili. Il testo e i metadati restituiti non costituiscono di per sé l’approvazione di un profilo.

Evita la sostituzione del piano senza preavviso

Il coordinatore preesistente può dedurre un prezzo omesso dai dati del numero memorizzati nella cache. Può anche ripiegare sul prezzo più recente dell’account per un prefisso memorizzato nella cache quando un ID di prezzo fornito esplicitamente non esiste più, e aggiornare la selezione dei prezzi consentiti nella cache. Non affidarti a questi meccanismi di ripiego per selezionare il piano approvato dal cliente.

Fornisci esplicitamente il prezzo selezionato e i corrispondenti campi di protezione del preventivo. Il controllo sull’ID del preventivo rifiuta il ripiego su un altro ID prima dell’inoltro della richiesta di noleggio. Dopo un conflitto dovuto a un prezzo non più aggiornato, aggiorna la ricerca e ottieni l’approvazione di una nuova selezione, anziché rimuovere i controlli per forzare l’acquisto.

Non esiste un periodo di prenotazione garantito né una durata della cache applicata universalmente a tutti i percorsi. La disponibilità del numero, i limiti di prezzo dell’account e le politiche di acquisto vengono ricontrollati durante il flusso, ma il comportamento completo specifico di ciascun fornitore è ancora in fase di revisione.

Avanzate: impostazioni di instradamento predefinite dell’account

Un acquisto può ereditare le destinazioni voce, le destinazioni di failover, la destinazione SMS e la preferenza per il trunk di origine già presenti nell’account. Esamina queste impostazioni predefinite prima di ordinare; omettere le opzioni di instradamento non garantisce che il numero sia privo di configurazione. La funzione ausiliaria esaminata abilita il rinnovo automatico per impostazione predefinita.

Opzioni di instradamento riconosciute dalla funzione ausiliaria condivisa
OpzioneComportamento di risoluzione
uri, uri2, uri3I valori omessi ereditano le corrispondenti impostazioni predefinite dell’account. I valori esplicitamente vuoti cancellano il valore della funzione ausiliaria invece di ereditarlo. Usa destinazioni valide adatte alla modalità di instradamento selezionata.
smsuriUn valore omesso eredita la destinazione SMS dell’account; un valore esplicitamente vuoto la cancella nella funzione ausiliaria.
origintrunkUn ID di trunk esplicito riconosciuto ha la precedenza. Un valore non risolto può comportare il ripiego sulla preferenza dell’account o sull’impostazione predefinita preesistente anziché generare un errore.
forward_destination, forwarding_destination, typeAlias non vuoti della modalità di instradamento, in questo ordine di precedenza. Usa valori supportati dalla configurazione di instradamento dell’account, non una modalità numerica ipotizzata.
RegistrationIDRicerca del profilo di registrazione limitata al cliente; è distinta dalle destinazioni di instradamento.
autorenewIl valore predefinito è 1. La funzione ausiliaria controlla che il valore non sia vuoto, quindi 0 non disabilita in modo affidabile il rinnovo tramite questo campo di acquisto. Usa le funzionalità supportate per la gestione dei rinnovi dell’account e verifica l’impostazione salvata.

Queste regole descrivono il comportamento della funzione ausiliaria condivisa e non garantiscono che tutti i fornitori salvino ogni impostazione facoltativa allo stesso modo. Esistono altri campi preesistenti per voce, segreteria telefonica, fax e SMS, ma richiedono ancora una revisione completa specifica per ciascun fornitore. Verifica la configurazione salvata del numero acquistato tramite il flusso dell’account prima di fare affidamento su chiamate o messaggi.

Risposta

Esempio fittizio di un acquisto senza complicazioni; i valori e le funzionalità variano in base al piano selezionato.

{
  "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
  }
}

Il coordinatore usa i propri campi status.code/status.msg e l’involucro response, senza garantire la presenza del campo status.results. In caso di errore, l’elenco della risposta è generalmente vuoto. In caso di successo, esamina il numero e il prezzo restituiti, quindi verifica che l’inventario dell’account e lo stato di registrazione siano coerenti con l’acquisto. L’accettazione da parte del fornitore non costituisce un test reale di voce, SMS o fax.

Errori e risultati incerti

Principali codici di risultato del coordinatore
Codice APISignificato
403Le restrizioni di prezzo o di acquisto dell’account, una selezione di prezzo non disponibile o un profilo di registrazione inaccessibile possono bloccare l’elaborazione.
404Selezione di numero, prezzo o prefisso mancante o non disponibile.
409Il numero è già attivo, un controllo di protezione del preventivo non trova più corrispondenza oppure un’altra operazione protetta detiene il blocco.
422Le informazioni di registrazione sono obbligatorie, incomplete oppure non possono essere predisposte tramite provisioning nei percorsi di registrazione esaminati.
500 e altri codici del fornitore o dell’accountErrore del fornitore, dell’elaborazione locale o relativo alle politiche. Questi codici non dimostrano in tutti i casi che non sia avvenuto alcun acquisto o addebito.

Leggi il corpo effettivo della risposta API oltre allo stato HTTP. Un fornitore esterno può accettare un noleggio prima che la notifica locale, la registrazione o un’altra elaborazione non vadano a buon fine. Alcune assegnazioni di numeri dall’inventario locale usano transazioni del database, ma non esiste un annullamento universale degli ordini presso fornitori esterni. Questo coordinatore non dispone di una chiave di idempotenza del client.

Verifica la situazione prima di riprovare

  1. Conserva il numero, il prezzo e i limiti massimi del preventivo approvati nel record dell’ordine della tua applicazione prima di inviare la richiesta una sola volta.
  2. Dopo la richiesta, consulta l’inventario dei numeri acquistati e i dettagli del numero per lo stesso account, anche in caso di timeout o errore.
  3. Se il numero è presente, verificane il prezzo, il rinnovo, l’instradamento e lo stato di registrazione invece di inviare un’altra richiesta di acquisto.
  4. Se il risultato è ancora incerto, chiedi all’assistenza di verificare la corrispondenza tra l’ordine presso il fornitore e la fatturazione dell’account prima di riprovare. Un messaggio di errore o un indicatore di successo nei registri del sistema preesistente, da solo, non costituisce una prova sufficiente.
  5. Dopo aver confermato la titolarità e l’attivazione, completa i normali controlli di instradamento e i test del servizio previsti per l’account.