Bestellen op basis van een prefix
Gebruik deze bewerking wanneer de prefixcatalogus aangeeft dat u een aantal nummers op basis van een prefix moet bestellen in plaats van afzonderlijke beschikbare nummers te kiezen. Begin met landen, gebieden of deelstaten, en prefixen. Bewaar de prefixidentificatie en het tariefplan uit hetzelfde actuele resultaat. Gebruik voor een specifiek nummer dat u uit een lijst met beschikbare nummers hebt geselecteerd Een geselecteerd telefoonnummer kopen.
Dit verzoek kan nummers kopen en kosten veroorzaken. Het is geen prijsopgave, reservering of proefuitvoering. Controleer vóór het indienen de eenmalige en maandelijkse kosten, tarieven voor inkomende belminuten, inbegrepen minuten, kanalen, registratievereisten en aankooplimieten van het account. Een catalogusresultaat reserveert geen voorraad en zet prijzen niet vast. Controles voor het aanvullen van het accountsaldo kunnen vóór de uitvoering plaatsvinden; een fout bewijst op zichzelf niet dat er geen aankoop heeft plaatsgevonden of geen accountsaldo is aangevuld.
De aankoop indienen
Gebruik een ingeschakeld API-account via HTTPS vanaf een toegestaan bron-IP-adres. Stel de variabelen in op basis van uw huidige catalogusselectie en uw goedgekeurde afleverconfiguratie. Met de volgende opdracht koopt u één nummer.
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"Hierboven staat een formulierverzoek met POST. De coördinator leest ook een JSON-object wanneer Content-Type gelijk is aan application/json. JSON-velden hebben voorrang op overeenkomstige formulier- of verzoekvelden. Gebruik consequent één codering; stuur geen tegenstrijdige waarden in de query en de body.
| Parameter | Betekenis |
|---|---|
| prefixidentificatie in het pad | De UUID van de prefix die de catalogus retourneert. Een identificatie van een land, gebied, prijs of afzonderlijk nummer is geen vervanging. |
| quantity | Stuur een geheel getal van 1 tot 100. De standaardwaarde is 1. Waarden onder 1 worden omgezet naar 1; dit verzoek dient niet uitsluitend voor validatie. Waarden boven 100 veroorzaken een uitzondering voordat de normale antwoordverwerking van deze coördinator plaatsvindt. Vertrouw bij die ongeldige invoer dus niet op de gebruikelijke JSON-structuur. |
| price_id | De openbare prijsidentificatie van het geselecteerde tariefplan. priceid is een verouderde alias. Bij een niet-overeenkomende identificatie kan zonder melding worden teruggevallen op een ander tariefplan; dit veld zet de prijs niet strikt vast. Controleer vóór aankoop de prijsplafonds van het account en controleer daarna de geretourneerde prijs. |
| channels | Het aantal kanalen uit het geselecteerde tariefplan. Wanneer geen exacte prijsovereenkomst wordt gebruikt, kan een overeenkomend aantal kanalen de keuze van een alternatief beïnvloeden. Dit garandeert op zichzelf niet dat een bepaald tariefplan wordt gekocht. |
| reference | Uw label voor de aankoop of batch. Gebruik een korte ASCII-waarde van maximaal 255 bytes; langere waarden worden afgekapt. De waarde wordt bij geslaagde aankopen bewaard en, indien opgegeven, in callbacks opgenomen. Afzonderlijke bestellingen mogen dezelfde referentie hebben. Het is geen idempotentiesleutel: door deze bewerking opnieuw in te dienen, kunnen extra nummers worden gekocht en in rekening worden gebracht, zelfs met dezelfde referentie en identieke velden. |
| webhook_url | Optionele callback-URL. Gebruik een HTTPS-eindpunt dat u beheert. Zowel HTTP- als HTTPS-URL's worden door de huidige basisvalidator geaccepteerd; een ongeldige URL wordt genegeerd in plaats van dat de aankoop wordt afgewezen. Een callback is een aanvullende melding, geen bewijs dat een verzoek veilig kan worden herhaald. |
Instellingen voor aflevering en verlenging
Kies dezelfde afleverinstellingen die u voor het nummer in het portaal zou gebruiken. Dit zijn geavanceerde configuratiewaarden, geen instructies om een Hosted PBX of een origination-trunk aan te maken. Gebruik een bestaande accountconfiguratie waarvan u weet dat die werkt en controleer het opgeslagen nummer na aankoop. Een geaccepteerde aankoop alleen bevestigt niet dat de aflevering van spraak of sms werkt.
| Veld | Gebruik en compatibiliteit |
|---|---|
| uri, uri2, uri3 | Primaire en aanvullende spraakbestemmingen. Geef bestemmingen op die passen bij de geselecteerde doorschakel- en belmodi. |
| forward_destination | Doorschakelmodus voor spraak. forwarding_destination en type zijn verouderde aliassen. Bij weglaten wordt de standaardwaarde van het betreffende afrekenproces gebruikt; een leeg veld is geen betrouwbare manier om een bestaande voorkeur te wissen. |
| ring_type | Belmodus voor spraak; ringtype is een alias. Gebruik een ondersteunde waarde uit de nummerconfiguratie van uw account. |
| sms_forward_destination, sms_uri | Aflevermodus en bestemming voor sms. Verouderde aliassen zijn smsringtype en smsuri. Sommige afrekenprocessen gebruiken de standaard-sms-bestemming van het account wanneer dit leeg is. De beschikbaarheid van sms hangt af van het geselecteerde nummer en de activering/registratie ervan. |
| overflow | Aangevraagde overloopinstelling. Of deze wordt ondersteund, hangt af van de beschikbaarheid van het tariefplan en het afrekenproces. |
| force_codec, force_dtmf | Aangevraagde codec- en DTMF-instellingen. Verouderde aliassen zijn forcecodec en forcedtmf. Controleer de opgeslagen configuratie voor de geselecteerde voorraad. |
| origination_trunk_id | Een identificatie van een bestaande trunkconfiguratie, indien van toepassing. Hiermee wordt geen trunk aangemaakt. Bij weglaten wordt de standaardwaarde van het afrekenproces gebruikt. |
| autorenew | Aangevraagde verlengingsinstelling. Ga er niet van uit dat 0 de verlenging uitschakelt: sommige afrekenprocessen behandelen een als leeg beschouwde waarde, waaronder 0, als de standaardinstelling waarbij verlenging is ingeschakeld. Controleer de verlenging voor het gekochte nummer in het portaal en wijzig deze indien nodig. |
Deze velden worden genormaliseerd en aan het afrekenproces doorgegeven, maar de opslag ervan verschilt per voorraadtraject. De huidige bestelroute biedt de strikte velden voor prijsopgaveplafonds uit de handleiding voor het kopen van een geselecteerd nummer niet als gelijkwaardige waarborgen aan. Gebruik de aankooprechten en prijslimieten van het account en controleer de resulterende nummerconfiguratie.
Het volledige resultaat lezen
Verwerk de JSON-body en controleer status.code en status.msg, ook wanneer het HTTP-verzoek slaagt. Deze route schrijft een eigen JSON-antwoord, en ook de gedeelde hulpfunctie voor antwoorden vertaalt de applicatiecode niet noodzakelijk naar de HTTP-status. Applicatiecodes kunnen JSON-getallen of numerieke tekenreeksen zijn. Stel status.results niet verplicht; dit veld ontbreekt in het normale bestelresultaat.
{
"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
}
}De bovenstaande identificatie, het nummer en de prijzen zijn fictief. Ken geen betekenis toe aan de opbouw van de bestel-ID. numbers bevat de nummers die volgens dit antwoord zijn gekocht; vergelijk de lengte van deze lijst met het aangevraagde aantal. Prijsbedragen zijn tekenreeksen en dit antwoord rondt geldtarieven af op twee decimalen, ook voor per_minute; gebruik de actuele catalogus voor de oorspronkelijke tariefprecisie. Inbegrepen minuten en kanalen kunnen als numerieke waarden of numerieke tekenreeksen worden aangeleverd.
Het prijsblok beschrijft het geselecteerde tariefplan dat is gebruikt om het antwoord op te bouwen, niet een gedetailleerde factuur voor elk nummer of het totaal van de bestelling. Verschillende kandidaten uit de voorraad kunnen verschillende tariefplannen hebben. Controleer de afzonderlijke gekochte nummers aan de hand van de accounttransacties in plaats van de bedragen uit dit blok te vermenigvuldigen en aan te nemen dat dit het uiteindelijke totaal bewijst.
Gedeeltelijke aankopen en onzekere uitkomsten
Een applicatiecode van 200 kan samengaan met een waarschuwing en minder nummers dan aangevraagd. Een latere fout maakt reeds gekochte nummers niet ongedaan. Bewaar de geretourneerde bestel-ID, nummers en melding. Controleer deze nummers in uw voorraad en aan de hand van uw accounttransacties voordat u beslist of u het resterende aantal bestelt.
Een time-out, verbroken verzoek, ongeldig opgebouwd antwoord of fout na het indienen is geen bewijs dat er niets is gebeurd. Dien niet automatisch nog een aankoop in, ook niet met dezelfde referentie. Bewaar het oorspronkelijke verzoek, de referentie en een eventueel geretourneerde bestel-ID, controleer de voorraad en accounttransacties en neem contact op met de ondersteuning als de uitkomst onzeker blijft.
Een onbevestigde bestelling kan applicatiecode 400 retourneren met een melding dat de bevestiging nog bezig is. Bewaar de geretourneerde bestel-ID en controleer die aankoop aan de hand van uw gegevens; dit is geen instructie om deze opnieuw in te dienen. Het herstelmechanisme voor vastgelegde bestellingen volgt de oorspronkelijke bestelling intern. Een nieuw verzoek aan deze bewerking maakt een afzonderlijke aankooppoging aan in plaats van een bestelling op basis van uw referentie te hervatten, en kan dus meer nummers kopen en in rekening brengen. Gebruik geen herhaalde aankoopverzoeken om de status te controleren of de voorraad te doorzoeken.
Registratie en activering
Een gekocht of toegewezen nummer moet mogelijk nog worden geregistreerd of geactiveerd. Als needs_registration gelijk is aan 1, controleert u restrictions en registration_requirements. Het laatstgenoemde veld kan verwijzen naar v3/get_requirements met waarden voor country en number_type. Doorloop de toepasselijke procedure voor identiteit en adres en bevestig de status van het nummer voordat u vertrouwt op inkomende oproepen of berichten.
features beschrijft de aangeboden mogelijkheden; het bevestigt niet dat de routering in de praktijk werkt, dat een campagne is goedgekeurd, dat sms wordt afgeleverd of dat faxen worden ontvangen. Controleer de opgeslagen afleverinstellingen en voer de passende diensttest uit zodra het nummer actief is.
Callbacks voor bestellingen
Callbacks versturen via POST JSON met de bestelstatus en het antwoord, aangevuld met uw referentie als u die hebt opgegeven. Ze worden verstuurd voor gemelde aankopen, inclusief gedeeltelijke resultaten. Een mislukte callback draait de aankoop niet terug. De aflevering kan opnieuw worden geprobeerd. Verwerk dubbele meldingen daarom op basis van de bestel-ID en controleer de nummers aan de hand van uw gegevens in plaats van nog een aankoop in te dienen.
Deze route voegt geen cryptografische handtekening aan callbacks toe. Behandel een callback als een melding die u moet controleren aan de hand van uw via authenticatie geraadpleegde voorraad, niet als een zelfstandige autorisatie om kosten in rekening te brengen, diensten in te richten of toegang te verlenen. Neem geen API-inloggegevens op in de callback-URL. Een nieuwe aankoop indienen met een andere callback-URL werkt de oorspronkelijke bestelling niet bij; hiermee wordt een afzonderlijke aankooppoging aangemaakt. Bewaar de oorspronkelijke bestel-ID wanneer u de ondersteuning vraagt de bijbehorende callback te onderzoeken.
Fouten om af te handelen
| Uitkomst | Wat u moet doen |
|---|---|
| 400 en een melding over een ongeldige prefix | Raadpleeg de prefixcatalogus opnieuw en gebruik de huidige identificatie. Maak onderscheid tussen deze melding en een melding dat een oorspronkelijke bestelling nog wordt bevestigd. |
| 403 of een fout met betrekking tot accountbeleid of saldo | Controleer de aankooprechten, prijsplafonds van het account, aantalslimieten en het aanvullen van het saldo. Deze controles kunnen andere applicatiecodes doorgeven; bewaar de daadwerkelijke melding. |
| 404 of geen beschikbare voorraad | Vernieuw de beschikbaarheidsgegevens. Dien niet herhaaldelijk aankopen in voor een prefix waarvan de voorraad is uitgeput. |
| 409 en een melding over aankoopbevestiging, afwijzing door de provider of een geannuleerde bestelling | Bewaar de geretourneerde bestel-ID en de daadwerkelijke melding. Controleer het verzoek aan de hand van de voorraad en accounttransacties en stem het af met de ondersteuning voordat u nog een aankoop indient. Dezelfde referentie opnieuw gebruiken maakt een volgend verzoek niet veilig. |
| 200 met waarschuwingen of minder nummers | Er zijn enkele nummers gekocht. Controleer de geretourneerde toewijzing aan de hand van de transacties voordat u meer bestelt. |
| Server- of transportfout of een onleesbaar antwoord | Beschouw het resultaat als mogelijk onzeker totdat de voorraad en transacties duidelijk maken wat er is gebeurd. |