Ordinare da un prefisso
Usa questa operazione quando il catalogo dei prefissi indica di ordinare una quantità di numeri da un prefisso anziché scegliere singoli numeri disponibili. Inizia da paesi, aree o stati e prefissi. Conserva l'identificatore del prefisso e il piano tariffario provenienti dallo stesso risultato aggiornato. Per un numero specifico selezionato da un elenco di numeri disponibili, usa Acquistare un numero di telefono selezionato.
Questa richiesta può acquistare numeri e comportare addebiti. Non è un preventivo, una prenotazione o una simulazione. Prima dell'invio, esamina i costi di attivazione e i canoni mensili, le tariffe al minuto per le chiamate in entrata, i minuti inclusi, i canali, i requisiti di registrazione e i limiti di acquisto dell'account. Un risultato del catalogo non riserva i numeri disponibili né blocca i prezzi. Le verifiche relative al finanziamento dell'account possono avvenire prima dell'evasione; un errore, da solo, non dimostra che non sia avvenuto alcun acquisto o finanziamento dell'account.
Inviare l'acquisto
Usa un account API abilitato tramite HTTPS da un indirizzo IP di origine consentito. Imposta le variabili in base alla selezione corrente nel catalogo e alla configurazione di recapito approvata. Il comando seguente acquista un numero.
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"Sopra è mostrata una richiesta POST con dati di modulo. Il coordinatore legge anche un oggetto JSON quando Content-Type è application/json. I campi JSON prevalgono sui campi corrispondenti del modulo o della richiesta. Usa una sola codifica in modo coerente; non inviare valori in conflitto tra i parametri di query e il corpo.
| Parametro | Significato |
|---|---|
| identificatore del prefisso nel percorso | L'UUID del prefisso restituito dal catalogo. Non può essere sostituito da un identificatore di paese, area, prezzo o singolo numero. |
| quantity | Invia un numero intero da 1 a 100. Il valore predefinito è 1. I valori inferiori a 1 vengono convertiti a 1; questa non è una richiesta di sola convalida. I valori superiori a 100 generano un'eccezione prima della normale gestione della risposta da parte di questo coordinatore, quindi non fare affidamento sulla consueta struttura JSON per tale input non valido. |
| price_id | L'identificatore pubblico del prezzo del piano selezionato. priceid è un alias precedente. Un identificatore non corrispondente può portare alla selezione di un piano diverso senza alcuna segnalazione; questo campo non blocca rigorosamente il prezzo. Conferma i massimali di prezzo dell'account prima dell'acquisto e controlla il prezzo restituito dopo l'acquisto. |
| channels | Il numero di canali del piano selezionato. Quando non viene usata una corrispondenza esatta del prezzo, un numero di canali corrispondente può influire sulla selezione del piano alternativo. Da solo, non garantisce l'acquisto di un piano specifico. |
| reference | La tua etichetta per l'acquisto o il lotto. Usa un valore ASCII breve, di massimo 255 byte; i valori più lunghi vengono troncati. Se fornito, viene conservato con gli acquisti riusciti e incluso nelle callback. Ordini distinti possono condividere lo stesso riferimento. Non è una chiave di idempotenza: inviare nuovamente questa operazione può comportare l'acquisto e l'addebito di ulteriori numeri, anche con lo stesso riferimento e campi identici. |
| webhook_url | URL facoltativo per le callback. Usa un endpoint HTTPS sotto il tuo controllo. Gli URL HTTP e HTTPS superano l'attuale validatore di base; un URL non valido viene ignorato, anziché causare il rifiuto dell'acquisto. Una callback è una notifica aggiuntiva, non una prova che una richiesta possa essere ripetuta in sicurezza. |
Impostazioni di recapito e rinnovo
Scegli le stesse impostazioni di recapito che useresti per il numero nel portale. Si tratta di valori di configurazione avanzata, non di istruzioni per creare un centralino PBX ospitato o un trunk di originazione. Riutilizza una configurazione dell'account di cui conosci il corretto funzionamento e verifica il numero salvato dopo l'acquisto. La sola accettazione di un acquisto non verifica che il recapito delle chiamate vocali o degli SMS funzioni.
| Campo | Uso e compatibilità |
|---|---|
| uri, uri2, uri3 | Destinazioni vocali principale e aggiuntive. Fornisci destinazioni adatte alle modalità di inoltro e di squillo selezionate. |
| forward_destination | Modalità di inoltro delle chiamate vocali. forwarding_destination e type sono alias precedenti. Se il campo viene omesso, viene usato il valore predefinito del percorso di acquisto; un campo vuoto non è un modo affidabile per cancellare una preferenza esistente. |
| ring_type | Modalità di squillo per le chiamate vocali; ringtype è un alias. Usa un valore supportato dalla configurazione dei numeri del tuo account. |
| sms_forward_destination, sms_uri | Modalità e destinazione di recapito degli SMS. Gli alias precedenti sono smsringtype e smsuri. Alcuni percorsi di acquisto applicano la destinazione SMS predefinita dell'account quando questo valore è vuoto. La disponibilità degli SMS dipende dal numero selezionato e dalla sua attivazione o registrazione. |
| overflow | Impostazione di trabocco richiesta. Il supporto dipende dalla disponibilità del piano e dal percorso di acquisto. |
| force_codec, force_dtmf | Impostazioni richieste per codec e DTMF. Gli alias precedenti sono forcecodec e forcedtmf. Verifica la configurazione salvata per i numeri selezionati tra quelli disponibili. |
| origination_trunk_id | L'identificatore di una configurazione trunk esistente, ove applicabile. Non crea un trunk. Se il campo viene omesso, viene usato il valore predefinito della procedura di acquisto. |
| autorenew | Impostazione di rinnovo richiesta. Non presumere che 0 disabiliti il rinnovo: alcuni percorsi di acquisto interpretano un valore assimilabile a vuoto, incluso 0, come l'impostazione predefinita abilitata. Controlla e, se necessario, modifica il rinnovo del numero acquistato nel portale. |
Questi campi vengono normalizzati e trasmessi alla procedura di acquisto, ma la loro persistenza varia in base ai percorsi di gestione dei numeri disponibili. L'attuale rotta di ordinazione non espone, come protezioni equivalenti, i campi che impongono limiti rigorosi al preventivo descritti nella guida all'acquisto di un numero selezionato. Usa le autorizzazioni di acquisto e i limiti di prezzo dell'account e controlla la configurazione risultante del numero.
Leggere il risultato completo
Analizza il corpo JSON e controlla status.code e status.msg anche quando la richiesta HTTP ha esito positivo. Questa rotta scrive la propria risposta JSON e neppure la funzione condivisa di supporto alle risposte associa necessariamente il codice applicativo allo stato HTTP. I codici applicativi possono essere numeri JSON o stringhe numeriche. Non richiedere la presenza di status.results; non è presente nel normale risultato di un ordine.
{
"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
}
}L'identificatore, il numero e i prezzi riportati sopra sono fittizi. Tratta l'ID dell'ordine come un valore opaco. numbers elenca i numeri che questa risposta indica come acquistati; confronta la lunghezza dell'elenco con la quantità richiesta. Gli importi dei prezzi sono stringhe e questa risposta arrotonda le tariffe monetarie a due cifre decimali, incluso per_minute; usa il catalogo aggiornato per la precisione originale delle tariffe. I minuti inclusi e i canali possono essere ricevuti come valori numerici o stringhe numeriche.
Il blocco dei prezzi descrive il piano selezionato usato per costruire la risposta, non una fattura dettagliata per ciascun numero né il totale dell'ordine. Più numeri candidati tra quelli disponibili possono avere piani diversi. Riconcilia i singoli numeri acquistati e le transazioni dell'account, anziché moltiplicare gli importi di questo blocco presumendo che dimostrino il totale finale.
Acquisti parziali ed esiti incerti
Un codice applicativo 200 può essere accompagnato da un avviso e da un numero di numeri inferiore a quello richiesto. Un errore successivo non annulla i numeri già acquistati. Conserva l'ID dell'ordine, i numeri e il messaggio restituiti. Riconcilia quei numeri nell'inventario e nelle transazioni del tuo account prima di decidere se ordinare la quantità rimanente.
Un timeout, l'interruzione della connessione durante la richiesta, una risposta malformata o un errore dopo l'invio non dimostrano che non sia accaduto nulla. Non inviare automaticamente un altro acquisto, neppure con lo stesso riferimento. Conserva la richiesta originale, il riferimento e l'eventuale ID dell'ordine restituito, controlla l'inventario e le transazioni dell'account e contatta l'assistenza se l'esito resta incerto.
Un ordine non confermato può restituire il codice applicativo 400 con un messaggio che indica che la conferma è ancora in corso. Conserva l'ID dell'ordine restituito e riconcilia quell'acquisto; non è un invito a inviarlo nuovamente. Il recupero degli ordini registrati tiene traccia internamente dell'ordine originale. Una nuova richiesta a questa operazione crea un tentativo di acquisto distinto, anziché riprendere un ordine tramite il tuo riferimento, e può quindi acquistare e addebitare altri numeri. Non usare richieste di acquisto ripetute per controllare lo stato o cercare nell'inventario.
Registrazione e attivazione
Un numero acquistato o assegnato potrebbe ancora richiedere la registrazione o l'attivazione. Se needs_registration è 1, controlla restrictions e registration_requirements. Quest'ultimo campo può indicare v3/get_requirements con i valori country e number_type. Completa la procedura applicabile per l'identità e l'indirizzo e conferma lo stato del numero prima di fare affidamento sulle chiamate in entrata o sulla messaggistica.
features descrive le funzionalità dichiarate; non verifica l'instradamento effettivo, l'approvazione delle campagne, il recapito degli SMS o la ricezione dei fax. Controlla le impostazioni di recapito salvate ed esegui il test di servizio appropriato quando il numero è attivo.
Callback degli ordini
Le callback inviano tramite POST dati JSON contenenti lo stato e la risposta dell'ordine, con l'aggiunta del tuo riferimento se fornito. Vengono inviate per gli acquisti segnalati, inclusi i risultati parziali. Una callback non riuscita non annulla l'acquisto. Il recapito può essere ritentato, quindi gestisci i duplicati in base all'ID dell'ordine e riconcilia i numeri anziché effettuare un altro acquisto.
Questa rotta non aggiunge una firma crittografica alla callback. Tratta una callback come una notifica da riconciliare con il tuo inventario consultato tramite autenticazione, non come un'autorizzazione indipendente a effettuare addebiti, attivare risorse o concedere accesso. Non inserire credenziali API nell'URL della callback. Inviare un altro acquisto con un URL di callback diverso non aggiorna l'ordine originale; crea un tentativo di acquisto distinto. Conserva l'ID dell'ordine originale quando chiedi all'assistenza di indagare sulla relativa callback.
Errori da gestire
| Esito | Cosa fare |
|---|---|
| 400 e messaggio di prefisso non valido | Consulta nuovamente il catalogo dei prefissi e usa l'identificatore attuale. Distingui questo messaggio da quello che indica che la conferma di un ordine originale è ancora in corso. |
| 403 o errore relativo alle regole o al saldo dell'account | Esamina l'autorizzazione di acquisto, i massimali di prezzo dell'account, i limiti di quantità e il finanziamento. Da queste verifiche possono essere inoltrati altri codici applicativi; conserva il messaggio effettivo. |
| 404 o nessun numero disponibile | Aggiorna la disponibilità. Non effettuare ripetuti acquisti per un prefisso i cui numeri sono esauriti. |
| 409 e messaggio relativo alla conferma dell'acquisto, al rifiuto del fornitore o all'annullamento dell'ordine | Conserva l'ID dell'ordine restituito e il messaggio effettivo. Riconcilia la richiesta con l'inventario, le transazioni dell'account e l'assistenza prima di inviare un altro acquisto. Riutilizzare lo stesso riferimento non rende sicura un'altra richiesta. |
| 200 con avvisi o meno numeri | Alcuni numeri sono stati acquistati. Riconcilia l'assegnazione restituita e le transazioni prima di ordinarne altri. |
| Errore del server o di trasporto, oppure risposta illeggibile | Considera il risultato potenzialmente incerto finché l'inventario e le transazioni non chiariscono cosa è accaduto. |